0
假設我有一個這樣的XML:是否可以在XSD中將屬性的默認值設置爲其他屬性的值?
<foo ...>
<bar a="s1" b="s2" />
<bar a="s3" />
</foo>
我想是在XSD定義是屬性b
的默認值應該是屬性a
的價值。那可能嗎?
在此先感謝!
假設我有一個這樣的XML:是否可以在XSD中將屬性的默認值設置爲其他屬性的值?
<foo ...>
<bar a="s1" b="s2" />
<bar a="s3" />
</foo>
我想是在XSD定義是屬性b
的默認值應該是屬性a
的價值。那可能嗎?
在此先感謝!
簡答:沒有。
根據「XML Schema第1部分:結構第二版」中的「3.2.1屬性聲明模式組件」部分中的回答:「默認指定該屬性無條件出現在後模式驗證信息集·使用提供的值,只要該屬性實際上不存在「
長而實用的答案:關鍵是」後模式驗證信息集「。那麼問問自己,你需要哪些模式文檔?
use="required"
的屬性b
XmlSerializer
),那麼你必須明確地添加一些後處理這satisifies這個「型模式後確認,信息集」一詞 - 你應該如果沒有設置的b
值檢測和自己設置它 - 這是你的業務需求b
與a
具有相同的值)添加文檔。 XML Schema沒有這樣的概念。使用外推法 - 這與「b
的價值將爲當前美元/歐元比率」的要求相同 - 它只是計算值
感謝您的澄清和詳細的答案。 – rlegendi