コマンドラインから xjc を使用して、XSD から POJO を生成しています。私が実行するコマンドは次のとおりです。
"%java_home%\bin\xjc" -p com.etc.etc.etc.etc ConsolidatedAlert.xsd
生成された POJO の一部では、POJO のプロパティは次のように返されます。
@XmlElement(name = "UnparsedTelephone", namespace="")
protected String unparsedTelephone;
私が知る限り、これらの要素を「名前空間」属性を持たない他の要素と異なるように指定していません。
XSD の関連セクションは次のとおりです。
型宣言:
<xs:complexType name="TelephoneType">
<xs:choice>
<xs:element name="UnparsedTelephone" type="xs:string"/>
<xs:element name="ParsedTelephone" type="ParsedTelephoneType"/>
</xs:choice>
</xs:complexType>
要素宣言:
<xs:element name="Telephone" type="TelephoneType"/>
「電話」が使用される場所:
<xs:complexType name="CompanyContactType">
<xs:sequence>
<xs:element ref="Telephone"/>
</xs:sequence>
</xs:complexType>
「CompanyContact」が使用される場所:
<xs:complexType name="AmountType">
<xs:sequence>
<xs:element ref="CompanyContact" minOccurs="0" />
<xs:element name="TriggerAmount" type="xs:string"/>
</xs:sequence>
</xs:complexType>
各 POJO から namespace="" を単純に削除できますが、それには少し時間がかかる可能性があり、そもそもなぜそれが起こっているのかをよりよく理解したいと思います。
また、これは約 8 つの XSD がすべてリンクされています。それらはすべてスキーマ定義で同じ targetNamespace と xmlns を持っていますが、それらのいくつかは elementFormDefault="unqualified" を持ち、他のものは elementFormDefault="qualified" を持っています。これが問題の原因でしょうか?
何か案は?