可选择XSD架构

时间:2016-11-09 16:04:41

标签: xml xsd xsd-validation xml-validation

我需要验证以下数组中的XML请求数据:

<studyYear></studyYear>
<orgID></orgID>
<originID></originID>
<providerID></providerID>
<userOID></userOID>

问题 - 我必须同时获得(orgID)或(userOID)或(originIDproviderID)。 'studyYear'将永远存在。我怎么能实现它?如果需要更多信息,请写。我引用了这个link,以便尝试在xs:choice内使用xs:all,但无法使其正常工作。

1 个答案:

答案 0 :(得分:1)

此XSD,

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="r">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="studyYear" type="xs:string"/>
        <xs:choice>
          <xs:element name="orgID" type="xs:string"/>
          <xs:element name="userOID" type="xs:string"/>
          <xs:sequence>
            <xs:element name="orginID" type="xs:string"/>
            <xs:element name="providerId" type="xs:string"/>
          </xs:sequence>
        </xs:choice>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

将需要studyYear后面的一个案例,

  • orgID
  • userOID
  • originIDproviderID

按要求。