我有三个元素 A、B 和 C。我想创建一个 XSD,其架构应该是 [A]或[B & C]或[A & B & C]的选择
Can anyone please help me to create an xsd for the above option.
提前致谢。MK
我有三个元素 A、B 和 C。我想创建一个 XSD,其架构应该是 [A]或[B & C]或[A & B & C]的选择
Can anyone please help me to create an xsd for the above option.
提前致谢。MK
您可以创建三个独立的元素组,例如 [A]、[B&C] 和 [A,B & C]。并在这些组之间定义一个compleType,就像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>
这满足您的要求;想一想你为什么会问,这可能与独特的粒子属性有关;下面的可选序列充当“虚拟”选择。
<?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>