JavaへのXML名前空間、どのように「選択」をモデル化するには?
-
23-08-2019 - |
質問
Javaで「選択」名前空間のタグを表現するための最良の方法は何ですか? すなわちます。
<xs:complexType name="MyType">
<xs:sequence>
<!-- common elements here -->
<xs:element type="xs:string" name="name" ... />
</xs:sequence>
<xs:choice>
<xs:element name="stringValue" type="xs:string"></xs:element>
<xs:element name="intValue" type="xs:int"></xs:element>
</xs:choice>
</xs:complexType>
どのように私はJavaでこれをモデル化するのですか?私のようなものを考えていた。
public class MyType
String name;
String stringValue;
int intValue;
...
が、これは確かに最善の方法ではないか、私は間違っていますか?プラス、私はそのタイプを使用するのAxis2でサービスを公開したい場合は、私はいくつかのカスタムメッセージ受信機を実装する必要があるのですか?
解決
私たちは通常、JAXBまたは(あなたがAxis2の中に、いくつかを持っている)いくつかの他の結合機構をJavaオブジェクトにXSDを翻訳します。それらはあなたが示しているように、正確にオブジェクトを生成します。つまり、選択肢のすべての属性があり、あなたはそれらの一方のみが存在することができることを示して何も表示されません。あなたが戻ってXMLにものを翻訳している場合は、検証に切り替えた場合、これが唯一気づいたことでしょう。あなたはJavaで同時に両方のバリアントを設定してはならないことをご承知場合の選択肢には問題はありません - 結果は、時にはそれらのどれもが、生成されたXMLにそれをしないことをすることができます。
。所属していません StackOverflow