XML Schema元素的顺序

Ris*_*nst 15 xsd

在我的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>
Run Code Online (Sandbox Code Playgroud)

我怎样才能使EVN和PID元素在XML文件中随机出现(首先是EVN,然后是PID或第一个PID元素,然后是EVN元素)?

<EVN_EventTypeSegment>Test</EVN_EventTypeSegment>
<PID_PatientIdentificationSegment>PIDTest</PID_PatientIdentificationSegment>
Run Code Online (Sandbox Code Playgroud)

要么:

<PID_PatientIdentificationSegment>PIDTest</PID_PatientIdentificationSegment>
<EVN_EventTypeSegment>Test</EVN_EventTypeSegment>
Run Code Online (Sandbox Code Playgroud)

Yar*_*aro 29

xs:all而不是xs:sequence.


C. *_*een 12

xs:sequence将架构文档更改为xs:all.当且仅当A,B和C以某种顺序存在时,才满足包含对元素A,B和C的引用(或声明)的全组.元素可能已minOccurs设置为0以使它们可选(如您的PD1_PatientAdditionalDemographicSegment元素).

在XSD 1.0中,一个全组的孩子必须有maxOccurs1,有些人发现这种情况令人不舒服,但在你的情况下,这就是你想要的.在XSD 1.1中,解除了限制.


Ris*_*nst -4

我通过使用选择组使这成为可能:D

  • 举个例子会更有帮助 (9认同)