gpt4 book ai didi

xml - 是 xs :choice an equivalent of C++ enumeration?

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

我们通过 MS XML 4 完成了很多序列化。当我们序列化 C++ 枚举时,我们使用一个表将每个可能的值转换为一个字符串,并将该字符串存储为一个属性值。当我们反序列化时,我们读取该属性值,将其与表中的所有项目进行比较并检索相应的枚举值。如果找不到,我们会引发错误。

为了便于通过外部程序创建 XML,我们发布了所有相关数据类型的 XML 架构。枚举的属性定义如下:

<xs:complexType>
//other fields here
<xs:attribute name="Color" type="xs:string"></xs:attribute>
</xs:complexType>

它可以工作,但不包含可能的字符串值的定义。我如何向这个定义添加可能的值?我为此使用 xs:choice 吗?

最佳答案

不,xs:choice 为模式提供信息“在这个地方,你可以有这个或这个或这个,但不能组合”;您可以找到更多关于 xs:choice here 的信息.

要创建枚举,您需要将它们定义为 restricted type 的一部分基于xs:string

例如:

<xs:simpleType name="ColorType">
<xs:restriction base="xs:string">
<xs:enumeration value="white"/>
<xs:enumeration value="black"/>
<xs:enumeration value="blue"/>
</xs:restriction>
</xs:simpleType>

然后您可以像使用任何其他类型一样使用此类型:

<xs:complexType>
<xs:attribute name="Color" type="ColorType" />
</xs:complexType>

有关 using xs:restriction 的更多信息和其他 XSD 元素和属性,查看 www.w3schools.com .他们有很好的引用指南和教程,涉及许多与 Web 相关的主题,例如 XHTML、XSLT、XPath 和 XSD(以及 javascript 和 AJAX)。

关于xml - 是 xs :choice an equivalent of C++ enumeration?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1006874/

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