Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JAXB属性顺序_Java_Jaxb_Xjc_Xjb - Fatal编程技术网

Java JAXB属性顺序

Java JAXB属性顺序,java,jaxb,xjc,xjb,Java,Jaxb,Xjc,Xjb,我有一个XSD文件。我使用xjc从中生成类如何在生成的类中更改XmlType注释中的propOrder值?我不想更改XSD文件,只要我不是该文件的所有者,也不想更改从此架构生成的类。有没有办法通过自定义绑定文件(xjb)实现这一点?问题是比例值对我来说并不理想。作为最后一个解决方案,我考虑使用PalMeMyoD/PrrtTrand这个类,但这太棘手了。 我正在处理FpML(XML基本格式),下面是一个XSD元素: <xsd:complexType name="TradeIdentifier

我有一个XSD文件。我使用xjc从中生成类如何在生成的类中更改XmlType注释中的propOrder值?我不想更改XSD文件,只要我不是该文件的所有者,也不想更改从此架构生成的类。有没有办法通过自定义绑定文件(xjb)实现这一点?问题是比例值对我来说并不理想。作为最后一个解决方案,我考虑使用PalMeMyoD/PrrtTrand这个类,但这太棘手了。

我正在处理FpML(XML基本格式),下面是一个XSD元素:

<xsd:complexType name="TradeIdentifier">
    <xsd:sequence>
        <xsd:choice>

            <xsd:sequence>
                <xsd:element name="issuer" type="IssuerId"></xsd:element>
                <xsd:element name="tradeId" type="TradeId"></xsd:element>
            </xsd:sequence>

            <xsd:sequence>
                <xsd:group ref="PartyAndAccountReferences.model">
                </xsd:group>
                <xsd:element name="reportingRole" type="ReportingRole" minOccurs="0"></xsd:element>
                <xsd:choice maxOccurs="unbounded">
                    <xsd:element name="tradeId" type="TradeId"></xsd:element>
                    <xsd:element name="versionedTradeId" type="VersionedTradeId"></xsd:element>
                </xsd:choice>
            </xsd:sequence>

        </xsd:choice>
    </xsd:sequence>
</xsd:complexType>
当我在object partyReference和tradeId中设置时,生成的xml是:

<partyTradeIdentifier>
    <tradeId>NONREF</tradeId>
    <partyReference href="Party2"/>
</partyTradeIdentifier>
解决方案是将partyReference元素放在tradeId之前。当我手动操作时,一切正常。但我不想手动更改生成的类,因为在模式更改的情况下,我必须重复这样的操作。这是通往地狱的路


我试图重命名一个tradeId,因此将有两个字段。但只重命名了一个tradeId字段,问题仍然存在。

binding.xml

xjc -extension -b binding.xml schema.xsd
尝试使用以下绑定文件从XML架构生成类:


XJC呼叫

xjc -extension -b binding.xml schema.xsd

如果更改
proporter
,您将失去针对XML模式进行验证的能力。目前的订单为何不可取?您可以始终使用XSLT来控制输出:我正试图实现的是根据模式进行验证的能力。我还没有找到任何解决办法。这很有效!你在哪里找到的?我在“定制JAXB绑定”教程中没有发现任何关于它的内容。@Noofiz-您可以在上找到关于它的信息。我会提供具体的链接,但我认为java.net目前正在停止维护。
xjc -extension -b binding.xml schema.xsd