使用jaxb将xsd转换为java时删除xsd元素
我将从xsd生成java代码。我想知道在使用jaxb将xsd转换为java时如何删除xsd元素。我的目标是忽略信息 例: 在这里,您可以看到消息元素被删除。我想知道怎么做?你能修改.xsd吗? 当前元素“note”表示“name”和“message”都是必需的。如果希望“消息”是有条件的,则可能需要添加minOccurs=“0”属性:使用jaxb将xsd转换为java时删除xsd元素,java,xml,xsd,jaxb,Java,Xml,Xsd,Jaxb,我将从xsd生成java代码。我想知道在使用jaxb将xsd转换为java时如何删除xsd元素。我的目标是忽略信息 例: 在这里,您可以看到消息元素被删除。我想知道怎么做?你能修改.xsd吗? 当前元素“note”表示“name”和“message”都是必需的。如果希望“消息”是有条件的,则可能需要添加minOccurs=“0”属性: <xs:element name="note"> <xs:complexType> <xs:sequence>
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="name"/>
<xs:element type="xs:string" name="message" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
如果我理解正确,总结起来,您希望忽略一个强制元素,并且仍然希望结果正确验证。我的简短回答是,这是矛盾的,没有意义。JAXB是为了正确地执行而构建的,而您希望错误地执行它(?) 你有几个选择
- 使用额外的构造函数参数李>
- 改为不生成参数构造函数李>
- 不生成,但手工编写JAXB注释类。也许关闭一些验证李>
- 不要使用JAXB,使用其他东西(dom4j等)或手工制作xml
- 可能您可以在绑定文件甚至插件中添加一些重写,但我认为这不值得李>
@XmlElement
protected String name;
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="name"/>
<xs:element type="xs:string" name="message" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>