xml - 如何使用 XSD 为选项元素定义默认值?

标签 xml xsd

我喜欢做的事情:我想在模式中指定一个选项标签,例如:

<xsd:element name="my_element" type="my_type" minOccurs="0" maxOccurs="1"/>

如果元素根本没有出现,这个参数应该有一个默认值。当然,我可以在调用 XML 解析器的代码中定义此默认值。但我认为指定默认值的正确位置是在 *.xsd 架构文件中(因为默认值是架构定义的接口(interface)的一部分)。

不幸的是,这似乎并不容易。 “default”属性有不同的效果:“如果没有出现,则不提供;如果出现但为空,则其值为默认值”(来自 http://www.w3.org/TR/xmlschema-0/#ref36)。

我找到的讨论此问题的其他链接:

这个问题有解决办法吗?还是我应该放弃?

最佳答案

简单元素可能有默认值或指定的固定值。

当没有指定其他值时,默认值会自动分配给元素。

在以下示例中,默认值为“红色”:

<xs:element name="color" type="xs:string" default="red"/>

固定值也会自动分配给元素,您不能指定其他值。

在以下示例中,固定值为“红色”:

<xs:element name="color" type="xs:string" fixed="red"/>

关于xml - 如何使用 XSD 为选项元素定义默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21755856/

相关文章:

xml - 无法在 Swift 中使用 SWXMLHash 返回解析 XML 的值

java - 用于大型 xml 文件的快速 xml 解析器

xsd - 在 XML Schema 中避免匿名类型的原因是什么

java - 无法将名称解析为 (n) 'element declaration' 组件

c# - 如何将这些嵌入元素转换为父元素的属性?

xml - XSD 选项可以为空吗?

c# - 我需要在一个元素中使用 XmWriter 的多个 xmlns 元素

xml - Actionscript/flex3 : Escape XML special characters like <, >, "and ' 标签内容内/内

ios - 如何在 UILabel 中显示 XML 解析后的数据

c# - xmlns ='' > 不是预期的。 - XML 文档中存在错误 (2, 2)