gpt4 book ai didi

java - 如何使用 xsd :sequence? 允许元素按任意顺序排列

转载 作者:行者123 更新时间:2023-12-02 01:19:32 24 4
gpt4 key购买 nike

我有一个包含以下代码的 XSD:

<xsd:complexType name="SupplierProfileType">
<xsd:sequence>
<xsd:element name="Subscriber" type="BIS_SubscriberType"/>
<xsd:element name="BusinessApplicant" type="BusinessApplicantType"/>
<xsd:element name="AddOns" type="SupplierProfile_AddOnsType" minOccurs="0"/>
<xsd:element name="OutputType" type="BusinessProfile_OutputType"/>
<xsd:element name="Vendor" type="Business_VendorType" minOccurs="0"/>
<xsd:element name="Options" type="BISOptions3_OptionsType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>

我想使用 xsd:sequence 但想以任何顺序接受元素。我可以为此更改 Java 代码。我正在使用 JAXB 来解码 XML。

尝试过 xsd:all,但我不想更改 XSD,因为它已被客户使用。

最佳答案

不要更改 xsd:sequence 的语义

Tried xsd:all, but I don't want to change the XSD as it is used by customers.

这根本就是错误的。您当前的 XSD 使用 xsd:sequence,它显式限制要排序的元素。如果您希望顺序不再重要,则可以通过将 xsd:sequence 更改为 xsd:all 来更改 XSD。通过 XSD 说一件事(顺序很重要)并通过代码做不同的事情(顺序无关紧要)是一个非常糟糕的主意。

基本负责任的版本控制

您的首要任务应该是维护 XSD 中表达的现有契约(Contract)。如果不可能,请以保留向后兼容性的方式进行更新。如果不可能,请弃用旧界面并为不兼容的界面提供充足的过渡时间。

以任何与其关联的 XSD 相矛盾的方式更改已发布接口(interface)的实现都不应该被考虑。

关于java - 如何使用 xsd :sequence? 允许元素按任意顺序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57978695/

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