2012-06-16 52 views
0

我在XSD文件中的兩個元素:條件的XSD

<element name="accountnumber" type="" /> 
<element name="accounttype" type="" /> 

有兩種類型的帳戶:1)保存2)當前

的賬戶號碼的格式應該是保存和不同當前帳戶類型。

我該如何在XSD中實現這一目標?是否可以在XSD中編寫ifs?

+0

只是爲了確認你所問的問題,你基本上提出了兩個問題,首先是如何定義'accounttype'爲「Savings」或「Checking」並拒絕其他任何事情。第二,你正在尋找基於'accounttype'中的值來定義'accountnumber'的格式? – psubsee2003

+0

@ psubsee2003第一個問題可以使用我知道的限制來完成......但是我提出了第二個問題,您提到 –

回答

0

如果<SavingsAccount><CurrentAccount>是不同的元素名稱,那麼他們可以有不同的類型,這兩種類型可以包括<AccountNumber>元素,這些可以有不同的類型 - 只要確保在各種情況下賬戶號碼是本地元素聲明,而而不是對全局元素聲明的引用。

如果您通過屬性(例如<account type="current"><account type="savings">)阻止帳戶類型,那麼該解決方案不起作用。在這種情況下,您將需要使用名爲Conditional Type Assignment的XSD 1.1功能,其中元素的類型可能取決於其屬性的值。 XSD 1.1目前在Xerces和Saxon中實施。

+0

當屬性是xsi:type時,可以使用屬性進行區分。 –