我想表达在XSD中重复发生的无序强制和可选标记。 任何人都能说出如何解决这个问题吗? 如果不可行,可以采取什么方法。
更新
<xs:element name="Tag1" type="xs:string" />
<xs:element name="Tag2" type="xs:string" />
<xs:element name="Tag3" type="xs:string" maxoccurs="Unbounded"/>
所有这些标签都显示在Complext类型下,tag1和tag2是必需的。 tag3是可选的,可以发生任意次。 tag1,tag2和tag3可以按任何顺序出现
答案 0 :(得分:1)
您可以使用“all”组选择器并使用minOccurs来表示强制性。
<xs:schema xmlns="http://Message1" targetNamespace="http://Message1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Root">
<xs:complexType>
<xs:all>
<xs:element name="TheValue" type="xs:string" />
<xs:element name="TheValue2" type="xs:string" minOccurs="0" />
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
这是正确的:
<ns0:Root xmlns:ns0="http://BizTalk_Server_Project1.Message1">
<TheValue2>somevalue</TheValue2>
<TheValue>somevalue</TheValue>
</ns0:Root>
所以:
<ns0:Root xmlns:ns0="http://BizTalk_Server_Project1.Message1">
<!--<TheValue2>somevalue</TheValue2>-->
<TheValue>somevalue</TheValue>
</ns0:Root>
但不是这样:
<ns0:Root xmlns:ns0="http://BizTalk_Server_Project1.Message1">
<!--<TheValue2>somevalue</TheValue2>-->
<!--<TheValue>somevalue</TheValue>-->
</ns0:Root>