かなり重い XML 変換を実行できる適切な XML 変換言語/ユーティリティを絞り込もうとしています (ファイル サイズは約 100 kb と予想されます)。ソース ファイルとターゲット ファイルは、顧客の技術的注文を表す最大 3 レベルのオブジェクト ネストを含む約 280 の固有の要素で構成されます。単一の XML ドキュメントに変換する必要がある XML ドキュメントのストリームが 2 ~ 3 あります (例: 2 つの XML ドキュメント、1 つは注文管理システムから、もう 1 つはリソース管理システムからのもので、単一のターゲット ドキュメントを生成するために処理されます)。
変換には、ソース ストリーム内のノードの評価と、それらのノードのターゲット スキーマ ノードへの割り当て、またはターゲット スキーマの変数値の設定などの変換の実行が含まれます。ソース スキーマとターゲット スキーマのノード数は必ずしも同じではありません。理想的には、ルールをコードに埋め込むのではなく、構成可能にすることを望みます (これが実現可能かどうかはわかりません)。
ビジネス ルールとして定義された評価要素と条件要素が混在しています (スクリプトと XPath を組み合わせて使用すると、大まかに次のようになります " If(/OrderData/Servicetype != /ResourceData/ServiceType) then /Target/ServiceType = /OrderData/ServiceType)
"
シングル パス パーサーが変換全体で十分かどうかはまだ評価中です。私の主な目的は次のとおりです。
- 解析ルールを定義できる構成可能なファイルを用意する
- このファイルを読み取り、ルールに従って解析できるエンジン。ほとんどの場合、構成可能にするためには、構成可能性の要件によりコンパイルが自動的にウィンドウから押し出されると考えているため、より多くのインタープリターベースのものが必要になると思います。
- 構成可能なファイルは、評価、関数などの定義された構文で定義できます。
XML スキーマへの追加は、明らかにルールセットへの追加が必要です。
理想的には、ルールセットとinputXMLスキーマを更新して、エンジンを新しい解析ルール/入力に適応させたいだけです。
1 回のパスでスキーマ全体を操作できるようにしたいと考えています。
Target スキーマ全体を解析しようとすると、Java クラス サイズ エラーがスローされました。つまり、スキーマを分割して解析する必要があります。
さらに、この XSLT により、サイズが原因で処理時間が長くなるだけだと思います。これは、XML 文字列解析のオプションを残すだけだと思います。(awk
XML用があればいいのに:))。
誰かが私を助けることができるリソースに私を導くことができればうれしいです. 同等の JAVA ユーティリティはありますか?
これはサンタに書かれたクリスマスのウィッシュリストのように聞こえると思います :) でも、誰かがすでに上記のようなことをしている場合は、私に叫び声または提案をください. 必要に応じて、XML スキーマと、定義されている正確な変換ルールのサンプルを共有できます。