gpt4 book ai didi

xml - 单个 XML 元素可以有多个值吗?

转载 作者:数据小太阳 更新时间:2023-10-29 02:29:40 26 4
gpt4 key购买 nike

一个产品可以符合零个或多个标准,例如STD1、STD2、STD3。

XML 有一个可选字段,我们称它为complies

我可以做这样的东西吗? (这里我用逗号。)

<complies>STD1,STD3</complies> or <complies>STD2</complies>

我该如何定义这个 XSD 类型?

最佳答案

为具有多个值的元素设计 XML 结构的正确方法是单独标记每个这样的值,在这种情况下为 standard 元素:

<complies>
<standard>STD1</standard>
<standard>STD2</standard>
</complies>

这将允许 XML 模式(XSD、DTD 等)直接验证。这是这种结构的普通 XSD:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="complies">
<xs:complexType>
<xs:sequence>
<xs:element name="standard" minOccurs="0" maxOccurs="unbounded">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="STD1"/>
<xs:enumeration value="STD2"/>
<xs:enumeration value="STD3"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

这种方法还允许您直接利用 XML 解析器,从而避免必须对 complies 元素进行微解析。


更新

或者,如果您不想引入单独的 standard 元素,

<complies>STD1 STD2</complies>

您可以使用 XSD 的 xs:list 结构:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="complies">
<xs:simpleType>
<xs:list>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="STD1"/>
<xs:enumeration value="STD2"/>
<xs:enumeration value="STD3"/>
</xs:restriction>
</xs:simpleType>
</xs:list>
</xs:simpleType>
</xs:element>
</xs:schema>

感谢 John Saunders 提出的这个有用的建议。

关于xml - 单个 XML 元素可以有多个值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30192448/

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