Схема XSD: ограничение на атрибут, унаследованный другим элементом - PullRequest
0 голосов
/ 20 января 2019

У меня проблема с моей схемой XSD. У меня есть элемент с именем id атрибута типа xsd: string, и он не должен иметь никаких ограничений. Затем есть еще один элемент, который расширяется и имеет еще несколько атрибутов, НО унаследованный атрибут «id» должен состоять только из букв и цифр. Вот мой код:

Я пытался добавить оба атрибута и присвоить атрибуту id новый тип, но он не работает.

<xsd:complexType name="BaseElement">
    <xsd:attribute name="id" type="xsd:string" />
</xsd:complexType>

<xsd:complexType name="Element">
    <xsd:complexContent>
    <xsd:restriction base="BaseElement">
        <xsd:attribute name="id" type="xsd:idNewType" />
    </xsd:restriction>
    <xsd:extension base="identifiedEntityType">
           <xsd:attribute name="attr2" type="xsd:string"/>
           <xsd:attribute name="attr3" type="xsd:string"/>
          </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

1 Ответ

0 голосов
/ 20 января 2019

Вы не можете определить ограничение и расширение за один шаг, но вы можете определить X как ограничение Y, а Y как расширение Z, поэтому шаг расширения будет добавлять два атрибута, а шаг ограничения будетзатем ограничить один из них.

...