定义一次 xsd 枚举即可在多个地方使用?

发布于 2024-12-06 18:25:50 字数 1106 浏览 0 评论 0原文

我想在多个地方使用以下枚举,但正如您现在所看到的,它与一种复杂类型相关联,如何将其提取出来,以便我可以定义一次并在多个地方使用它。

<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 枚举属性,这样我就可以定义它一次,并在需要时在多个地方使用它,这样我就不必重复它。简而言之,干燥:)

I want to use the following enumaration in multiple places, but as you can see now, it is tied to one complex type, how do I extract it out so I can define it once and use it in multiple places.

<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>

Basically, I want to extract the BLM enumeration attribute out so I can define it once and use it multiple places if need so I don't have to repeat it. DRY in a nutshell :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云醉月微眠 2024-12-13 18:25:50

您可以用它创建一个名为的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"/>

You can create a named xs:simpleType out of it.

<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>

And then use it with

<xs:attribute name="BLM" use="optional" type="myEnum"/>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文