Я использую mxsml 6 через COM для выполнения преобразования. В исходной таблице стилей есть оператор xs:import, который я знаю, как включить, но как я могу заставить MSXML сделать это? Кажется, я не могу найти место, где можно указать IXSLTemplate загрузить разрешенный источник
Подробности:
- Я получаю сообщение об ошибке "Система не может найти указанный объект"
- Я устанавливаю ResolveExternals = true в исходном документе.
- Я пытаюсь выполнить проверку схематрона
- Я использую Delphi, поэтому использование msxml кажется моим единственным вариантом.
- У меня все в памяти в серверной среде, поэтому я очень хочу избежать использования файлов
Код:
var
v: variant;
doc : IXMLDOMDocument2;
xform: IXSLTemplate;
begin
v := CreateOLEObject('MSXML2.FreeThreadedDOMDocument.6.0')
doc := IUnknown(TVarData(v).VDispatch) as IXMLDomDocument2;
doc.async := false;
doc.resolveExternals := true;
doc.loadXML([my source for the first transform below]);
v := CreateOLEObject('MSXML2.XSLTemplate.6.0');
xform := IUnknown(TVarData(v).VDispatch) as IXSLTemplate;
xform.stylesheet := doc;
end;
исходный источник для преобразований:
- http://gforge.hl7.org/gf/project/fhir/scmsvn/?action=browse&path=%2Ftrunk%2Fbuild%2Ftools%2Fschematron%2Fiso_svrl_for_xslt1.xsl&view=markup
- http://gforge.hl7.org/gf/project/fhir/scmsvn/?action=browse&path=%2Ftrunk%2Fbuild%2Ftools%2Fschematron%2Fiso_schematron_skeleton_for_xslt1.xsl&revision=1319&view=markup