我有三个元素A,B&amp; C.我想创建一个XSD,应该选择模式 [A] 或 [B &amp; C] 或 [A &amp; B &amp; < / strong> C]
Can anyone please help me to create an xsd for the above option.
先谢谢。 MK
答案 0 :(得分:1)
你可以创建三个独立的元素组,如[A],[B&amp; C]和[A,B&amp; C]。 C]。并定义一个在这些组之间选择的类型,类似于XSD。不确定它是否有效。我没有XSD创作工具来验证它是否存在。
<xs:group name="Group1">
<xs:sequence>
<xs:element name="A"/>
</xs:sequence>
</xs:group>
<xs:group name="Group2">
<xs:sequence>
<xs:element name="B"/>
<xs:element name="C"/>
</xs:sequence>
</xs:group>
<xs:group name="Group3">
<xs:sequence>
<xs:element name="A"/>
<xs:element name="B"/>
<xs:element name="C"/>
</xs:sequence>
</xs:group>
<xs:complexType name="choice1">
<xs:choice minOccurs="1" maxOccurs="1">
<xs:group ref="Group1" />
<xs:group ref="Group2"/>
<xs:group ref="Group3"/>
</xs:choice>
</xs:complexType>
答案 1 :(得分:1)
满足您的要求;想你可能会问的原因,它可能与独特粒子归因有关;下面的可选序列充当“虚拟”选择。
<?xml version="1.0" encoding="utf-8" ?>
<!--XML Schema generated by QTAssistant/XML Schema Refactoring (XSR) Module (http://www.paschidev.com)-->
<xsd:schema targetNamespace="http://tempuri.org/XMLSchema.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/XMLSchema.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="root">
<xsd:complexType>
<xsd:choice>
<xsd:sequence>
<xsd:element name="A"/>
<xsd:sequence minOccurs="0">
<xsd:element name="B"/>
<xsd:element name="C"/>
</xsd:sequence>
</xsd:sequence>
<xsd:sequence>
<xsd:element name="B"/>
<xsd:element name="C"/>
</xsd:sequence>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>