Наследование XSD - PullRequest
       5

Наследование XSD

0 голосов
/ 23 декабря 2009

Я ищу вид наследования XSD, в котором я не совсем уверен, что это возможно, поэтому я хочу убедиться в этом:)

Дело в том, что у меня есть сложный тип A и другой сложный тип B, который отличается от A только тем, что его атрибут имеет фиксированное значение.

пример:

<xs:complexType name="A">
    <xs:attribute name="AAtrr" type="xs:string"/>
  </xs:complexType>

<xs:complexType name="B">
    <xs:attribute name="AAtrr" type="xs:string" fixed="Something"/>
  </xs:complexType>

Это, конечно, упрощенный пример, но для начала мне интересно, может ли B наследовать A и просто добавить фиксированное значение для атрибута.

Ответы [ 2 ]

2 голосов
/ 29 декабря 2009

Вот один способ, с некоторыми деталями:

<xs:complexType name="A">
    <xs:attribute name="AAttr" type="xs:string"/>
</xs:complexType>
<xs:complexType name="B">
     <xs:complexContent>
         <xs:restriction base="A">
              <xs:attribute name="AAttr" type="Restricted"/>
         </xs:restriction>
     </xs:complexContent>
</xs:complexType>
<xs:simpleType name="Restricted">
    <xs:restriction base="xs:string">
        <xs:enumeration value="Something"/>
    </xs:restriction>
</xs:simpleType>
0 голосов
/ 23 декабря 2009

В XSD вы можете сделать это, но B - это не расширение A, а ограничение A.

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