在我的XSD中,我希望能够指定元素的顺序无关紧要。这就是我所拥有的:
<xs:element name="ADT_A08_231_GLO_DEF">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="EVN_EventTypeSegment" type="xs:string" />
<xs:element minOccurs="1" maxOccurs="1" name="PID_PatientIdentificationSegment" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="PD1_PatientAdditionalDemographicSegment" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
如何使EVN和PID元素在XML文件中随机出现(首先是EVN,然后是PID或第一个PID元素,然后是EVN元素)?
<EVN_EventTypeSegment>Test</EVN_EventTypeSegment>
<PID_PatientIdentificationSegment>PIDTest</PID_PatientIdentificationSegment>
或:
<PID_PatientIdentificationSegment>PIDTest</PID_PatientIdentificationSegment>
<EVN_EventTypeSegment>Test</EVN_EventTypeSegment>
答案 0 :(得分:25)
使用xs:all
代替xs:sequence
。
答案 1 :(得分:10)
将架构文档中的xs:sequence
更改为xs:all
。当且仅当A,B和C以某种顺序存在时,才满足包含对元素A,B和C的引用(或声明)的全组。这些元素可能会将minOccurs
设置为0以使其可选(例如您的PD1_PatientAdditionalDemographicSegment
元素)。
在XSD 1.0中,一个全组的孩子必须有maxOccurs
的1,有些人会发现这种情况令人不舒服,但在你的情况下,这就是你想要的。在XSD 1.1中,解除了限制。
答案 2 :(得分:-1)
我通过使用选择组使这成为可能:D