2014-02-13 72 views
2

我想做什麼:我想在架構中指定的選項標籤,例如:如何使用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

回答

2

簡單元素可能具有默認值或指定的固定值。

當沒有指定其他值時,默認值會自動分配給元素。

在以下例子中的默認值是「紅」:

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

的固定值也被自動分配給元件,並且不能指定另一值。

在下面的例子中,固定值「紅色」:

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

如果我在XML中添加一個沒有值的元素,它可以有一個默認值。但我的問題:如果元素在XML文件中根本不可用,那麼我需要一個默認值。我在配置文件中使用它來向後兼容。 – lumbric