При создании XSD, какой правильный синтаксис для simpleType? - PullRequest
1 голос
/ 11 августа 2011

Это правильный синтаксис или мне нужно изменить первый простой тип на сложный?

<xs:simpleType name="t_name">
       <xs:attribute name="a_name" >
          <xs:simpleType>
             <xs:restriction base="xs:hexBinary" >
                <xs:length value="4”/>
             </xs:restriction>
          </xs:simpleType>
       </xs:attribute>
</xs:simpleType>

1 Ответ

1 голос
/ 11 августа 2011

Да, это должен быть комплексный тип

при условии, что xs определен как <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

Из статьи W3Schools " Что такое сложный элемент? "

Сложный элемент - это элемент XML, который содержит другие элементы и / или атрибуты.

Существует четыре вида сложных элементов:

  • пустые элементы
  • элементы, содержащие только другие элементы
  • элементы, содержащие только текст
  • элементы, содержащие как другие элементы, так и текст Примечание. Каждый из этих элементов также может содержать атрибуты!

Так что из-за атрибута <xs:attribute name="a_name" > вам нужно сделать его сложным типом

Если вы сохраните следующее в виде файла и подтвердите его здесь

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="t_name">
       <xs:attribute name="a_name" >
          <xs:simpleType>
             <xs:restriction base="xs:hexBinary" >
                <xs:length value="4"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
     </xs:simpleType>
</xs:schema>

Вы получите следующее

Недопустимо для cvc-complex-type.1.2.4: element {http://www.w3.org/2001/XMLSchema} : атрибут здесь не разрешен (1) в элементе {http://www.w3.org/2001/XMLSchema}:simpleType, Ожидается [{http://www.w3.org/2001/XMLSchema}:annotation,{http://www.w3.org/2001/XMLSchema}:restriction,{http://www.w3.org/2001/XMLSchema}:list,{http://www.w3.org/2001/XMLSchema}:union]:

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