gpt4 book ai didi

java - 如何配置 Jaxb 以忽略 use 属性?

转载 作者:行者123 更新时间:2023-11-30 04:58:34 25 4
gpt4 key购买 nike

我有一个 XSD 方案,但我无法更改该方案 

<xs:attribute name="zbpName" type="Zbp_NC" use="required"/>
<xs:attribute name="zbpType" type="ZBPTYP_CL" use="required"/

Java 类的生成有效,但我想忽略属性 use="required"。有没有办法忽略它?

我想在编码时得到这个结果。

<protectionPoint zbpName="Protection Point - 0">

但就在我得到这个结果的那一刻......

<protectionPoint zbpNotes="" zbpStation="" zbpInterlockingName="" zbpType="" zbpName="Protection Point - 0">

因为生成的Classes有这个Annotation。

@XmlAttribute(name = "zbpStation", required = true)

但是应该看起来像这样......

@XmlAttribute(name = "zbpStation")

感谢您的帮助;-)

最佳答案

所以您想要required="false"但无法更改架构?您可以使用JAXB2-Basics Annotate Plugin 0.6.3 及更高版本可以实现此目的。定制看起来像:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:annox="http://annox.dev.java.net"
xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
jaxb:extensionBindingPrefixes="xjc annox"
version="2.1">

<!-- org.example.TFreeForm @XmlRootElement -->
<jaxb:bindings schemaLocation="schema.xsd" node="/xs:schema">
<jaxb:bindings node="xs:complexType[@name='MyType']/xs:attribute[@name='test']">
<annox:annotate target="field">
<annox:annotate annox:class="javax.xml.bind.annotation.XmlAttribute" required="false"/>
</annox:annotate>
</jaxb:bindings>
</jaxb:bindings>

</jaxb:bindings>

0.6.3版本尚未发布。快照可用 here .

关于java - 如何配置 Jaxb 以忽略 use 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7695855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com