2

次のシナリオがあります。XMLデータバインディングを使用して、スキーマAから作成されたオブジェクトと、スキーマBを使用して作成された別のオブジェクトがあります。ただし、スキーマBは、Aタイプの子ノードを定義するためにスキーマAをインポートします。

だから、今私は持っています:

  • unit1、objectA(スキーマAから)
  • unit2、objectB(スキーマBから)、objectA(スキーマAをインポートするスキーマBから)

もちろん、このunit2.objectAクラスはと互換性がありませんunit1.objectA。unit2の定義も異なります。これは、いくつかの名前空間属性が含まれていないためです(これは重要です。親ノードにも属性があるため、これらは暗黙的だと思います)。

そして、これが私の問題です。これらは単なるオブジェクトであるため、多くのことができますが、からIXMLDocument作成できるようにしたいと考えています。unit1.objectAunit2.objectA

私の最初の考えは、ドキュメントからノードをエクスポートできる必要があり、正しいスキーマに従ってこのエクスポートされたノードを「コーシャ」にするオプションがあるはずだということでした(したがって、ドキュメントB内のタイプAのノードはエクスポートする必要があります)スキーマAに対して検証します。)これはあまりにも多くのことを望んでいる可能性があることを理解しているので、私の質問は言い換えることができます。

エクスポートされたノード/ドキュメントで名前空間属性(、、)を追加/オーバーライドしながら、ノードをオブジェクトから新しいオブジェクトにIXMLDocumentエクスポートするにはどうすればよいですか?IXMLDocumentxmlnsxmlns:xsixsi:schemaLocation

4

1 に答える 1

0

本当に難しい問題であることが判明しました。私の XML ライブラリーから低レベルの DOM 関数を使用することに頼り、多くの労力を費やしました。必要なフラグメントをエクスポートし、スキーマと名前空間を手動で調整してから、すべてを再フォーマットする必要がありました。

于 2012-12-22T17:52:53.303 に答える