2016-08-18 4 views
1

У меня есть следующий элемент Languages. Для каждого языка я хочу, чтобы атрибут был либо «Subbed», либо «Dubbed». Например:Добавить ограничение строки на XSD

<Languages> 
    <Language Type="Subbed">EN</Language> 
    <Language Type="Dubbed">FR</Language> 
</Languages> 

Вот XSD я в настоящее время - как бы я добавить в «подкровать | окрестили» ограничение?

<xs:element name="Languages"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="Language" maxOccurs="unbounded" minOccurs="0"> 
     <xs:complexType> 
      <xs:simpleContent> 
      <xs:extension base="xs:string"> 
       <xs:attribute type="xs:string" name="Type" use="optional"/> 
      </xs:extension> 
      </xs:simpleContent> 
     </xs:complexType> 
     </xs:element> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 

ответ

1

Вы можете достичь своей цели с перечислениями:

Заменить

<xs:attribute type="xs:string" name="Type" use="optional"/> 

с

<xs:attribute type="LanguageType" name="Type" use="optional"/> 

и добавить

<xs:simpleType name="LanguageType"> 
    <xs:restriction base="xs:string"> 
    <xs:enumeration value="Subbed"/> 
    <xs:enumeration value="Dubbed"/> 
    </xs:restriction> 
</xs:simpleType> 

ограничить Language/@Type одним из Subbed или Dubbed.


Здесь выше корректировка применяется к полной XSD:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      version="1.0"> 
    <xs:element name="Languages"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="Language" maxOccurs="unbounded" minOccurs="0"> 
      <xs:complexType> 
      <xs:simpleContent> 
       <xs:extension base="xs:string"> 
       <xs:attribute type="LanguageType" name="Type" use="optional"/> 
       </xs:extension> 
      </xs:simpleContent> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    <xs:simpleType name="LanguageType"> 
    <xs:restriction base="xs:string"> 
     <xs:enumeration value="Subbed"/> 
     <xs:enumeration value="Dubbed"/> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:schema> 

Это будет проверять ваш XML, в соответствии с просьбой.

+0

спасибо за это. Вы могли бы показать весь блок xml для этого? Я не уверен, где должно быть помещено ограничение. – David542

+0

Добавлен весь XSD, который будет проверять ваш XML по вашему запросу. – kjhughes

 Смежные вопросы

  • Нет связанных вопросов^_^