在 XML 架构 (XSD) 中引用多个 ID

发布于 2024-12-02 09:27:41 字数 1011 浏览 2 评论 0原文

我想知道是否可以区分 XML 模式中的 ID 字段。我有以下架构:

<element name="define_apple">
    <complexType>
        <attribute name="colour" type="ID"/>
    </complexType>
</element>

<element name="define_orange">
    <complexType>
        <attribute name="colour" type="ID"/>
    </complexType>
</element>

<element name="reference_apple">
    <complexType>
        <attribute name="colour" type="IDREF"/>
    </complexType>
</element>

<element name="reference_orange">
    <complexType>
        <attribute name="colour" type="IDREF"/>
    </complexType>
</element>

但是,引用并不唯一链接到相应的定义。我仍然可以编写以下无意义但有效的 XML:

<define_apple colour="green"/>
<define_orange colour="orange"/>

<reference_apple colour="orange"/>
<reference_orange colour="green"/>

有没有办法使用 ID 和 IDREF 正确链接字段,例如使用命名空间?我知道我可以只使用 key 和 keyref,但 ID 的东西对我更有吸引力。

I was wondering whether it's possible to differentiate between ID fields in an XML schema. I'm having the following schema:

<element name="define_apple">
    <complexType>
        <attribute name="colour" type="ID"/>
    </complexType>
</element>

<element name="define_orange">
    <complexType>
        <attribute name="colour" type="ID"/>
    </complexType>
</element>

<element name="reference_apple">
    <complexType>
        <attribute name="colour" type="IDREF"/>
    </complexType>
</element>

<element name="reference_orange">
    <complexType>
        <attribute name="colour" type="IDREF"/>
    </complexType>
</element>

However, the references are not uniquely linked to the respective definitions. I can still write the following nonsense but valid XML:

<define_apple colour="green"/>
<define_orange colour="orange"/>

<reference_apple colour="orange"/>
<reference_orange colour="green"/>

Is there a way to link the fields correctly using ID and IDREF, for instance using namespaces? I know I could just use key and keyref, but the ID thing is a bit more appealing to me.

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

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

发布评论

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

评论(1

も星光 2024-12-09 09:27:41

不,我认为这是不可能的。 http://www.w3.org/TR/xmlschema-2/#ID 和 http://www.w3.org/TR/xmlschema-2/# IDREF 表示 ID 和IDREF 属性类型来自 XML 标准,并且 http:// /www.w3.org/TR/2000/WD-xml-2e-20000814#NT-TokenizedType 表示对 IDREF 的有效性约束只是匹配 文档。我猜想 ID 和 IDREF 主要在 XML Schema 中,以便向后兼容 DTD。

No, I don't think this is possible. http://www.w3.org/TR/xmlschema-2/#ID and http://www.w3.org/TR/xmlschema-2/#IDREF say that the ID and IDREF attributes types come from the XML standard, and http://www.w3.org/TR/2000/WD-xml-2e-20000814#NT-TokenizedType says that the validity constraints on IDREF is only to match some ID in the document. I guess ID and IDREF are mostly in XML Schema for backwards compatibility with DTDs.

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