У меня есть этот xsd, и я хочу сделать дополнительный элемент, это возможно? - PullRequest
0 голосов
/ 07 июня 2011

У меня есть XSD:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="UploadXSD"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/UploadXSD.xsd"
    xmlns:mstns="http://tempuri.org/UploadXSD.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="video">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="title" minOccurs="1" type="xs:string"></xs:element>
        <xs:element name="description" type="xs:string"></xs:element>
        <xs:element name="contributor" type="xs:string"></xs:element>
        <xs:element name="cateogry" type="xs:string"></xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

</xs:schema>

Последний элемент может быть:

<category>
</category>

Или это может быть:

<subject>
</subject>

Но как мне представить его как необязательный (категория | субъект) в XSD?

Ответы [ 2 ]

3 голосов
/ 07 июня 2011

Вы можете использовать элемент xs:choice для обозначения альтернатив:

<xs:choice>
    <xs:element name="category" type="xs:string"/>
    <xs:element name="subject" type="xs:string"/>
</xs:choice>
1 голос
/ 07 июня 2011

Попробуйте это:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="UploadXSD"
elementFormDefault="qualified"
xmlns="http://tempuri.org/UploadXSD.xsd"
xmlns:mstns="http://tempuri.org/UploadXSD.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="video">
<xs:complexType>
  <xs:sequence>
    <xs:element name="title" minOccurs="1" type="xs:string"></xs:element>
    <xs:element name="description" type="xs:string"></xs:element>
    <xs:element name="contributor" type="xs:string"></xs:element>
    <xs:choice>
       <xs:element name="category" type="xs:string"/>
       <xs:element name="subject" type="xs:string"/>
    </xs:choice>       
  </xs:sequence>
</xs:complexType>
</xs:element>

</xs:schema>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...