Как добавить максимальную длину, обязательные атрибуты: Да, в схеме XML? - PullRequest
0 голосов
/ 01 июня 2011

Я знаю, что есть два способа определения простых элементов в XML-схеме. Как я могу добавить только maxlength и обязательный атрибут YES к простому определению элемента. в следующих двух примерах.

<xs:element name="Xyz">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="4"/>
        </xs:restriction>
    </xs:simpleType>
</xs:element>

<xs:element name="Xyz" type="xs:string" minOccurs="0" maxOccurs="1"/>

1 Ответ

2 голосов
/ 01 июня 2011

Определите ограниченный текстовый контент как глобальный (= named) <xs:simpleType>, затем используйте его как базовый тип для <xs:extension>, который вам понадобится при создании нового типа по расширению, чтобы добавить атрибут.

Определение типа элемента, который имеет атрибуты, должно быть <xs:complexType>. С другой стороны, если содержимое элемента может быть только текстом или атрибутами, но не элементами, содержимое должно быть определено как <xs:simpleContent>. Пример кода ниже.

  <!-- definition of the restricted string -->
  <xs:simpleType name="restrictedLength">
    <xs:restriction base="xs:string">
      <xs:maxLength value="4" />
    </xs:restriction>
  </xs:simpleType>

  <!-- definition for the element with an attribute and text content -->
  <xs:element name="Xyz">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="restrictedLength">
          <xs:attribute name="YES" use="required"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>

Более полное объяснение расширения простых элементов содержимого с помощью атрибута см. Здесь:
http://www.xml.com/pub/a/2001/08/22/easyschema.html

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