是否可以在xsd中引用一个元素,以便将其内容写入另一个元素?
我想到诸如“送货地址”和“账单地址”之类的东西。 如果选择“计费地址”与“收货地址”相同,则将字段“收货地址”中的内容写入“计费地址”。
我是xsd / xml的新手,欢迎提出建议和批评。
这是我到目前为止所拥有的...
<xsd:group name="c_Shipping_Adress">
<xsd:element name="shipping_address">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Title"/>
<xsd:element name="First_Name"/>
<xsd:element name="Last_Name"/>
<xsd:element name="Street"/>
<xsd:element name="Zip"/>
<xsd:element name="City"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:group>
<xsd:group name="c_Billing_Adress">
<xsd:element name="billing_address">
<xsd:complexType>
<xsd:choice>
<xsd:element name="is_same_as_shipping_address">
<xsd:group ref="shipping_address"/>
</xsd:element>
<xsd:group name="is_not_same_as_shipping_address">
<xsd:sequence>
<xsd:element name="Title"/>
<xsd:element name="First_Name"/>
<xsd:element name="Last_Name"/>
<xsd:element name="Street"/>
<xsd:element name="Zip"/>
<xsd:element name="City"/>
</xsd:sequence>
</xsd:group>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:group>
答案 0 :(得分:0)
说实话,它不是很清楚您的要求,并且您的XSD的结构不正确,因此很难确定您的意图。但是希望以下内容可以提供足够的基础。
<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid Studio 2019 BETA (https://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element name="ShippingAddress" type="AddressType" />
<xs:element name="BillingAddress" type="AddressType" />
<xs:element name="OtherAddress">
<xs:complexType>
<xs:complexContent>
<xs:extension base="AddressType">
<xs:sequence>
<xs:element name="ExtraThing" type="xs:string" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="AddressType">
<xs:sequence>
<xs:element name="Title" type="xs:string" />
<xs:element name="First_Name" type="xs:string" />
<xs:element name="Last_Name" type="xs:string" />
<xs:element name="Street" type="xs:string" />
<xs:element name="Zip" type="xs:string" />
<xs:element name="City" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:schema>