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

问题描述:

我想做什么:我想在架构中指定的选项标签,例如:如何使用XSD为选项元素定义默认值?

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

如果元素完全不发生,应该有这个参数的默认值。当然,我可以在调用XML解析器的代码中定义这个默认值。但是我认为指定默认值的正确位置应该在* .xsd模式文件中(因为默认值是模式定义的接口的一部分)。

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

其他链接我发现在讨论这个问题:

是否有一个解决这个问题?或者我应该放弃?

+0

的可能的复制[XSD:一个缺失要素的默认值](https://stackoverflow.com/questions/18694988/xsd-缺省值的缺失元素) – binki

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

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

在以下例子中的默认值是“红”:

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

的固定值也被自动分配给元件,并且不能指定另一值。

在下面的例子中,固定值“红色”:

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

如果我在XML中添加一个没有值的元素,它可以有一个默认值。但我的问题:如果元素在XML文件中根本不可用,那么我需要一个默认值。我在配置文件中使用它来向后兼容。 – lumbric