gpt4 book ai didi

xml - 在 XSD 中扩展复杂类型的示例?

转载 作者:行者123 更新时间:2023-12-03 21:23:23 24 4
gpt4 key购买 nike

我试图在不破坏此元素现有契约(Contract)的情况下使用元素内的数据。
让我们简化一下我的案例:

<xs:element name="ExistingContract">
<xs:complexType>
<xs:sequence>
<xs:element name="first" type="FirstType"/>
<xs:element name="second" type="SecondType"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="NewContract">
<xs:complexType>
<xs:sequence>
<xs:element name="first" type="FirstType"/>
<xs:element name="second" type="SecondType"/>
<xs:element name="additionalData" type="AdditionalDataType"/>
</xs:sequence>
</xs:complexType>
</xs:element>

这两种内部类型是重复的,我想避免它。由于没有任何现有的包装 xs:complexType对于内部数据,我可以从 ExistingContract中取出并在我的 NewContract 中使用它.但是我会打破第一份契约(Contract)(我不想这样做)。

你熟悉任何 XSD 方法,我可以保持第一个合约相同并将其内部数据提取到我的新合约中吗?

最佳答案

您可以使用 xs:extension延长 NewContractType来自 ExistingContractType :

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="ExistingContract" type="ExistingContractType"/>

<xs:complexType name="ExistingContractType">
<xs:sequence>
<xs:element name="first" type="FirstType"/>
<xs:element name="second" type="SecondType"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="NewContractType">
<xs:complexContent>
<xs:extension base="ExistingContractType">
<xs:sequence>
<xs:element name="additionalData" type="AdditionalDataType"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>

<xs:element name="NewContract" type="NewContractType"/>

<xs:complexType name="FirstType"/>
<xs:complexType name="SecondType"/>
<xs:complexType name="AdditionalDataType"/>

</xs:schema>

关于xml - 在 XSD 中扩展复杂类型的示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50785402/

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