Расширение XSD-файлов - PullRequest
       11

Расширение XSD-файлов

3 голосов
/ 10 июня 2009

У меня есть XSD-файл перечислимого типа. Я хотел бы создать «расширенный» файл XSD, который добавляет некоторые дополнительные перечисления, но в остальном ведет себя так же, как основной XSD.

Например, основной файл XSD содержит это:

<xsd:simpleType name="color">
    <xsd:restriction base="xsd:string">
        <xsd:enumeration value="red"></xsd:enumeration>
        <xsd:enumeration value="orange"></xsd:enumeration>
        <xsd:enumeration value="yellow"></xsd:enumeration>
    </xsd:restriction>
</xsd:simpleType>
...
<xsd:element name="myColor" type="color" />

Мой воображаемый расширенный XSD-файл просто добавил бы «золото» к «цветному» типу. Существующий элемент «myColor» теперь мог бы содержать «золото», если бы он использовал этот XSD вместо основного.

Возможно ли это?

1 Ответ

4 голосов
/ 10 июня 2009

Как насчет этого?

<!-- Your base enumeration -->
<xsd:simpleType name="color">
    <xsd:restriction base="xsd:string">
        <xsd:enumeration value="red"/>
        <xsd:enumeration value="orange"/>
        <xsd:enumeration value="yellow"/>
    </xsd:restriction>
</xsd:simpleType>

<!-- You extended enumeration -->
<xsd:simpleType name="colorEx">
    <xsd:restriction base="xsd:string">
        <xsd:enumeration value="gold"/>
    </xsd:restriction>
</xsd:simpleType>


<xsd:simpleType name="color_union">
     <xsd:union memberTypes="colorEx color"/>
</xsd:simpleType>

<xsd:element name="myColor" type="color_union"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...