gpt4 book ai didi

xml - GUID 属性作为 xsd 架构中的 IDREF

转载 作者:行者123 更新时间:2023-12-04 05:11:21 25 4
gpt4 key购买 nike

我为我的 xml 元素使用全局唯一标识符 (GUID),架构如下所示:

<xs:simpleType name="guidType">
<xs:restriction base="xs:string">
<xs:pattern value="[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]
{4}-[a-fA-F0-9]{12}"/>
</xs:restriction>
</xs:simpleType>

和这样的 xml 元素:
<point guid="5C815FB2-0731-4E88-9885-CFC49B8E7B92" id="ABC" x="12" y="51" z="0"/>

对应的 xsd 架构:
<xs:complexType name="pointType">
<xs:attribute name="guid" type="guidType" use="required"/>
<xs:attribute name="id" type="xs:token" use="required"/>
<xs:attribute name="x" type="xs:double" use="required"/>
<xs:attribute name="y" type="xs:double" use="required"/>
<xs:attribute name="z" type="xs:double" use="required"/>
</xs:complexType>

我想在另一个元素中引用我的点元素,例如:
<layer>
<pointref guidref="5C815FB2-0731-4E88-9885-CFC49B8E7B92"/>
<pointref guidref="4671EFD4-506F-4A61-BCF0-427875074115"/>
</layer>

我可以使用 ID 和 IDREF 类型更改架构文件中的点类型定义来实现它:
<xs:attribute name="guid" type="xs:ID" use="required"/>

问题:

有没有办法让 xs:ID 类型也成为 GUID 类型?

最佳答案

简短的回答是否定的。 ID 是 NCNAME s,因此在第一个位置带有数字的值会破坏它。虽然看起来有点复杂,但使用 xsd:unique/xsd:key/xsd:keyref 被许多人认为是在使用 XSD 时实现您想要的最佳方式。

以防万一您可能需要引用,您可以开始 right here on SO .

关于xml - GUID 属性作为 xsd 架构中的 IDREF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14891669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com