父元素的子元素必须具有一个元素(不属于组),后跟另一个特定元素。
<xsd:element name="elementContainer">
<xsd:element name="element1">
<xsd:element name="element2">
<xsd:element name="element3">
<xsd:element name="element4">
<xsd:element name="element5">
<xsd:element name="element6">
<xsd:element name="proceedingElement">
</xsd:element>
我想修改上面的XSD,以便必须有一个element(1-6),后跟进行性元素。
我试过围绕元素1到6进行选择,但这并没有被验证接受。
<xsd:element name="elementContainer">
<xsd:choice minOccurs="1">
<xsd:element name="element1">
<xsd:element name="element2">
<xsd:element name="element3">
<xsd:element name="element4">
<xsd:element name="element5">
<xsd:element name="element6">
</xsd:choice>
<xsd:element name="proceedingElement">
</xsd:element>
对于以下两个示例,我希望第一个通过验证,第二个通过失败。
<elementContainer>
<element2/>
<proceedingElement/>
</elementContainer>
<elementContainer>
<proceedingElement/>
</elementContainer>
如果有帮助,甚至可以忽略存在一个进行中元素的事实,因此只需确保六个元素中至少有一个存在就行了。
您有关于的正确基本概念xsd:choice
,但是XSD存在许多问题:
xsd:element
元素未关闭。xsd:complexType
并xsd:sequence
失踪。经过对上述问题的更正,并删除了默认的xsd:choice/@minOccurs = 1
XSD,
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
<xsd:element name="elementContainer">
<xsd:complexType>
<xsd:sequence>
<xsd:choice>
<xsd:element name="element1"/>
<xsd:element name="element2"/>
<xsd:element name="element3"/>
<xsd:element name="element4"/>
<xsd:element name="element5"/>
<xsd:element name="element6"/>
</xsd:choice>
<xsd:element name="proceedingElement"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
将要求按要求element1
在element6
后面加一个proceedingElement
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句