Схема XSD с выбором

Мне нужно проверить данные запроса XML в приведенном ниже массиве:

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

Проблема-я должен получить или ( orgID) Или (userOID) Или (originIDиproviderID) вместе. ‘studyYear’ всегда будет там. Как я могу это осознать? Если нужно больше информации просто напишите. Я ссылался на эту ссылку, чтобы использовать, чтобы попробовать использовать xs:choiceвнутриxs:all, но не мог заставить его работать.

1 ответ

  1. Это XSD,

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema >
      <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, или
    • оба originIDи providerID

    как спрошено.