我喜欢做的事情:我想在模式中指定一个选项标签,例如:
<xsd:element name="my_element" type="my_type" minOccurs="0" maxOccurs="1"/>
如果元素根本没有出现,这个参数应该有一个默认值。当然,我可以在调用 XML 解析器的代码中定义此默认值。但我认为指定默认值的正确位置是在 *.xsd 架构文件中(因为默认值是架构定义的接口(interface)的一部分)。
不幸的是,这似乎并不容易。 “default”属性有不同的效果:“如果没有出现,则不提供;如果出现但为空,则其值为默认值”(来自 http://www.w3.org/TR/xmlschema-0/#ref36)。
我找到的讨论此问题的其他链接:
- http://codesynthesis.com/pipermail/xsd-users/2006-February/000209.html
- http://codesynthesis.com/projects/xsd/documentation/cxx/tree/manual/#A
这个问题有解决办法吗?还是我应该放弃?
最佳答案
简单元素可能有默认值或指定的固定值。
当没有指定其他值时,默认值会自动分配给元素。
在以下示例中,默认值为“红色”:
<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/