以下の様な手順でXMLファイルをJava経由でロードすることができます。
サーバ側にXMLのロードプログラムを作成しておきます。
ImportStream(inp="") ;
Set reader = ##class(%XML.Reader).%New()
Set sc=reader.OpenStream(inp)
If $$$ISOK(sc) {
Do ImportXML(reader)
} Else {
Do ShowError(sc)
}
Quit
ImportXML()のエントリでは、通常の%XML.Readerを使ったXMLのロードを実行してください。
上記のプログラムをJavaから呼び出すためのラッパークラスを作成します。
Class Test.StreamTest Extends %RegisteredObject [ ProcedureBlock ]
{
Projection NewProjection1 As %Projection.Java;
ClassMethod SendStream(inp As %BinaryStream) As %Integer
{
Do ImportStream^AddPerson(inp)
Q 1
}
}
Javaのプログラムを作成します。
XMLファイル名をBinaryStreamのパラメータとして渡します。
Java側のコーディングの例は添付のファイルを参照してください。