システム データ (xml 形式) を定義済みの出力 xml ファイルに変換しようとしています。
この出力 xml を作成するには、XSLT バージョン 2.0 を使用する予定です。そのため、Saxon EE 評価版 (SaxonEE9-5-1-2 バージョン) を使用しています。
私は、このソフトウェアをチームにデモンストレーションして、ソフトウェアを購入し、XSLT 2.0、XQuery などの機能を使用しようとしています。
現在、私はプロトタイプ プロジェクトに取り組んでいます。ここで問題が発生しています。
VB.NET 変換コードは次のとおりです。
Dim strXSLT As String = String.Empty
Dim strXML As String = String.Empty
'Retrieve data from database as string
strXML = GetData()
Dim processor As Saxon.Api.Processor = New Saxon.Api.Processor()
Dim builder As Saxon.Api.DocumentBuilder = processor.NewDocumentBuilder()
'Retrieve XSLT file content from database as string
strXSLT = GetXSLT()
'Convert XSLT string data as memorystream
Dim byteDataXSLT() As Byte
byteDataXSLT = System.Text.Encoding.UTF8.GetBytes(strXSLT)
Dim msXSLT As New System.IO.MemoryStream(byteDataXSLT,0, byteDataXSLT.Length)
'Convert XML string data as memorystream
Dim byteDataXML() As Byte
byteDataXML = System.Text.Encoding.UTF8.GetBytes(strXML)
Dim msXML As New System.IO.MemoryStream(byteDataXML,0, byteDataXML.Length)
'Save the xml file before processing
Dim fsXML As New System.IO.FileStream("C:\Temp\XML.xml", System.IO.FileMode.OpenOrCreate)
Dim byteFileXML() As Byte
byteFileXML = msXML.ToArray()
fsXML.Write(byteFileXML, 0, byteFileXML.Length)
'Save the xsl file before processing
Dim fsXSLT As New System.IO.FileStream("C:\Temp\XSL.xslt", System.IO.FileMode.OpenOrCreate)
Dim byteFileXSLT() As Byte
byteFileXSLT = msXSLT.ToArray()
fsXSLT.Write(byteFileXSLT, 0, byteFileXSLT.Length)
Dim sURI As New Uri("file:///C:/")
builder.BaseUri = sURI
Dim input As Saxon.Api.XdmNode = builder.Build(msXML)
Dim transformer As Saxon.Api.XsltTransformer = processor.NewXsltCompiler().Compile(msXSLT).Load()
transformer.InitialContextNode = input
Dim serializer As New Saxon.Api.Serializer()
serializer.SetOutputFile(strOutputFileName)
transformer.Run(serializer)
プログラムを実行した場合にのみ、以下の行で以下のエラーが発生します。手動で変換を行うと、このエラーが発生しません。
Dim transformer As Saxon.Api.XsltTransformer = processor.NewXsltCompiler().Compile(msXSLT).Load()
エラーメッセージ:
saxon9ee javax.xml.transform.TransformerConfigurationException: Failed to compile stylesheet.
しかし、xml と xslt のメモリ ストリームをファイル ストリームに保存し、手動で変換を行うと、目的の出力が得られます。
この問題の根本原因を突き止めようとしていますが、うまくいきません。
このエラー メッセージの詳細は非常に役に立ち、非常に高く評価されます。
さらに情報が必要な場合はお知らせください。
よろしくお願いします
ラグー