Определить перечисление xsd один раз для использования в нескольких местах? - PullRequest
2 голосов
/ 27 сентября 2011

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

<xs:complexType name="MessageType">
    <xs:sequence>
        <xs:element name="Control" type="ControlType" minOccurs="1" maxOccurs="1" />
        <xs:element name="LOS" type="LOSTYPE" minOccurs="0" maxOccurs="1" />
        <xs:element name="UID" type="UIDTYPE" minOccurs="1" maxOccurs="1"  />
        <xs:element name="RS" type="RSTYPE" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="BL" type="xs:string" use="optional"></xs:attribute>
    <xs:attribute name="BLM" use="optional">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="One" />
                <xs:enumeration value="Two"/>
                <xs:enumeration value="Three"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:attribute>         
</xs:complexType>

По сути, я хочу извлечь атрибут перечисления BLM, чтобы я мог определить его один раз и использовать его в нескольких местах, если это необходимо, поэтому мне не нужно повторять его. СУХОЙ в двух словах:)

1 Ответ

4 голосов
/ 29 сентября 2011

Вы можете создать из него имя xs:simpleType.

<xs:simpleType name="myEnum">
    <xs:restriction base="xs:string">
        <xs:enumeration value="One" />
        <xs:enumeration value="Two"/>
        <xs:enumeration value="Three"/>
    </xs:restriction>
</xs:simpleType>

А затем используйте его с

<xs:attribute name="BLM" use="optional" type="myEnum"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...