2011-07-02 25 views
1

JAXBを使用してXMLオブジェクトにXML-SOAP文字列をアンマーシャルする必要があります。 XMLには、属性が埋め込まれた空のタグが多数含まれています。たとえば、メッセージのほとんどの情報は次のように中継されます。jaxb umarshalling問題:空のxmlタグの属性を取得できません

<ID code="123" codeSystem="12.12.12"/> 

属性に興味があります。

問題:アンマーシャリング後にオブジェクトを検査すると、空のタグ(上記のようなもの)はすべてJavaオブジェクトに表現されません(nullなど)。埋め込まれたタグのみ(例:123がJavaオブジェクトに追加されました。) この動作はxml標準に準拠している可能性がありますが、属性にはまだ興味があります 属性を取得する方法があるかどうかを誰かに教えてください?

可能な回避策:そのバインディング・ファイルを使用してアダプタにそれを結合することにより、ヌルしかし、私は唯一の単純なタイプのためにこれを行うことに成功したとき(「」)の各要素にデフォルト値を与えるために

に使用されたバージョン。 :Java 1.6でjaxb実装を使用しています

多くのありがとう

Wybrand。

答えて

1

私は問題を解決しました。しかし、問題はJAXBではありませんでした。

私はumarshallする必要がありますxmlを送信するパーティーは、要素の宣言に 'null名前空間'を置きます。

XMLフラグメントは:

id要素は= "" その宣言のxmlnsに有しています。 (これはバグだと思われます)、ルートタグの宣言はxmlns:ns3 = "urn:hl7-org:v3"

です。この理由から、jaxb unmarshallerにはid要素が一部表示されませんメッセージの

関連する問題