[英]XSD validate element name as variable
我有一個XML元素列表,我正在嘗試編寫一個XSD進行驗證。 我的目標是雙重的。 首先,我希望元素的名稱是一個變量(這樣,我就不會強迫用戶輸入特定的值)。 但是,此后應根據可能的值池檢查此變量(元素名稱)。
<List>
<Elem name="this_should_be_a_variable">
<SomeProperty name="X"></Property>
</Elem>
<Elem name="this_should_be_a_variable">
<SomeProperty name="X"></Property>
</Elem>
</List>
因此,例如,我希望能夠給出<Elem>來檢查其名稱是否為[Blue,Red,White],否則拒絕XML。
編輯
我的XSD到目前為止是這樣的:
<xsd:complexType name="List">
<xsd:sequence>
<xsd:element name="here_i_dont_want_to_force_the_name" type="elem" />
</xsd:sequence>
</xsd:complexType>
我的問題是我怎么沒有明確設置它的XSD驗證名稱:元素?
您可以使用xsd:choice
元素 。 由於已經為內部元素定義了可重用類型,因此可以在xsd:choice
元素(其中xsd:choice
表示需要顯示其中一個元素)中聲明多個元素,並使用不同的名稱,始終引用同一類型(如果需要的話):
<xsd:complexType name="List">
<xsd:sequence>
<xsd:choice>
<xsd:element name="Blue" type="elem" />
<xsd:element name="Red" type="elem" />
<xsd:element name="White" type="elem" />
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
由於xsd:choice
元素包裝在xsd:sequence
元素中,因此可以重復選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.