Добавить ограничение XSD-атрибута - PullRequest
0 голосов
/ 14 марта 2019

У меня есть XSD вроде этого:

<xs:complexType name="ItemBase" abstract="true">
</xs:complexType>

<xs:complexType name="ContentItemBase" abstract="true">
  <xs:complexContent>
    <xs:extension base="ItemBase">
        <xs:attributeGroup ref="path" />
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:attributeGroup name="path">
  <xs:attribute name="path" type="xs:string" use="required" />
  [...]
</xs:attributeGrou>

+ Various complex types derived from ContentItemBase, especially this one:
<xs:complexType name="FileItem">
  <xs:complexContent>
    <xs:extension base="ContentItemBase">
      <xs:sequence>
        [...]
      </xs:sequence>
  </xs:extension>
</xs:complexContent>

Теперь я хочу добавить ограничение атрибута для атрибута «путь», НО только для FileItem, а не для других производных сложных типовContentItemBase.

Как добавить ограничения атрибутов в группу атрибутов, которая была определена далее в иерархии сложных типов?

1 Ответ

0 голосов
/ 14 марта 2019

Вы не можете расширять и ограничивать за один шаг.Вам необходимо определить FileItem0 как расширение ContentItemBase, а затем определить FileItem как ограничение FileItem0;Вы можете ограничить атрибут, просто повторно объявив его с новым типом, при условии, что новый тип является допустимым ограничением базового типа.

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