Xml XSD:如何使用minOccurs one&;验证特定元素;所有元素可以是任意顺序&;次数

Xml XSD:如何使用minOccurs one&;验证特定元素;所有元素可以是任意顺序&;次数,xml,xsd-validation,Xml,Xsd Validation,我有一个具体的元素应该至少出现一次的要求&所有元素可以在任何顺序。 例如: ......... ............. 我想测试,因为'PTN'应始终出现在'SCH'中,最小值为'1','PTN'和'ELM'可以以任何顺序出现。 我选中了以下选项: “xs:sequence”将始终检查元素的顺序 “xs:all”允许指定的子元素在包含元素中以任何顺序出现(或不出现),除非它们只能出现一次 “xs:choice”部分解决了我的问题,但它不检查特定元素是否至少存在一次 有效的XM

我有一个具体的元素应该至少出现一次的要求&所有元素可以在任何顺序。 例如:


.........
.............      
我想测试,因为'PTN'应始终出现在'SCH'中,最小值为'1','PTN'和'ELM'可以以任何顺序出现。 我选中了以下选项:

  • “xs:sequence”将始终检查元素的顺序
  • “xs:all”允许指定的子元素在包含元素中以任何顺序出现(或不出现),除非它们只能出现一次
  • “xs:choice”部分解决了我的问题,但它不检查特定元素是否至少存在一次
  • 有效的XML案例:

    <ABC id="000021"><SCH id="" type="aaa"><ELM id="dfg" type="fff"/><PTN id="NA" type="gxgfd"><ELM id="dfg2" type="fff"/></SCH></ABC>
    
    <ABC id="000021"><SCH id="" type="aaa"><PTN id="NA" name="Machine" type="dgdh"><ELM id="dfg" type="fff"/><ELM id="dfg2" type="fff"/><PTN id="NA" type="machine"></SCH></ABC>
    
    <ABC id="000021"><PTN id="NA" type="gdfg"></SCH></ABC>
    
    
    
    上述XML案例是有效的,因为它至少包含一次“PTN”节点。 PTN和ELM可以是任何序列和计数

    无效案例:

    <ABC id="000021"><SCH id="" type="aaa"><ELM id="dfg" type="fff"/><ELM id="dfg2" type="fff"/></SCH></ABC>
    <ABC id="000021"><SCH id="" type="aaa"><ELM id="dfg" type="fff"/></SCH></ABC>
    
    
    

    上述案例无效,因为它没有PTN节点。

    请回答您的问题并添加XML案例,这些案例应该有效,也不应该有效,以澄清您的请求。谢谢。我现在添加了XML案例。您要么需要放宽顺序无关紧要的要求,要么必须使用XSD1.1断言。如果不在XSD 1.0中进行更改,则无法表示约束。
    <ABC id="000021"><SCH id="" type="aaa"><ELM id="dfg" type="fff"/><ELM id="dfg2" type="fff"/></SCH></ABC>
    <ABC id="000021"><SCH id="" type="aaa"><ELM id="dfg" type="fff"/></SCH></ABC>