【发布时间】:2016-06-30 10:44:03
【问题描述】:
我正在使用 XJC 从模式生成 java 模型类,我不希望 elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED 出现在我的 package-info.java 中。我尝试了两种不同的 XML-
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns="http://www.google.com/Protocol" elementFormDefault="unqualified"
targetNamespace="http://www.google.com/Protocol" xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<xs:element name="A">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="User" type="xs:string"/>
<xs:element name="Attr" type="xs:string"/>
<xs:element ref="A1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="A1">
<xs:complexType>
<xs:sequence>
<xs:element name="Attr" type="xs:string"/>
<xs:element minOccurs="0" maxOccurs="1" name="Attr2" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Root">
<xs:complexType>
<xs:choice>
<xs:element ref="A" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Xml 以上生成包信息如下-
@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.google.com/Protocol")
package com.google;
而另一方面在 Xml-
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns="http://www.google.com/Protocol" elementFormDefault="unqualified"
targetNamespace="http://www.google.com/Protocol" xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<xs:element name="A">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="User" type="xs:string"/>
<xs:element ref="A1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="A1">
<xs:complexType>
<xs:sequence>
<xs:element name="Attr" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Root">
<xs:complexType>
<xs:choice>
<xs:element ref="A" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
在 package-info.java 下生成
@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.google.com/Protocol", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package com.google;
我不希望 elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED 出现在我的 java 文件中。目前,一旦生成模型,我必须手动将其编辑为 elementFormDefault = javax.xml.bind.annotation.XmlNsForm.UNQUALIFIED。
任何人都可以请帮助为什么 elementFormDefault="unqualified" 在第二个 xml 中被忽略。
【问题讨论】: