COM 経由で mxsml 6 を使用して変換を実行しています。ソース スタイルシートには 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