我正在嘗試創建一個用於驗證XML文件的XSD,並且一些元素需要具有屬性,但沒有文本。XML架構:如何允許具有屬性但沒有文本的元素?
例如這應該被認爲是有效的:
<DEPRECATED value="blah"/>
這是無效的:
<DEPRECATED>blah</DEPRECATED>
<DEPRECATED value="blah">bad text</DEPRECATED>
我試圖宣佈一個複雜的空元素描述here,但無論我解釋的例子不正確或例子本身就是錯的(見下面的錯誤):
<xs:element name="DEPRECATED" type="stringValue" minOccurs="0" maxOccurs="1"/>
<xs:complexType name="stringValue">
<xs:complexContent>
<xs:restriction base="xs:integer">
<xs:attribute name="value" type="xs:string"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
錯誤:複雜類型定義描述誤差爲類型 'stringValue的'。何時使用,基本類型必須是complexType。 'integer'是一個simpleType。
我也試圖定義複雜類型是這樣的:
<xs:complexType name="stringValue">
<xs:attribute name="value" type="xs:string"/>
</xs:complexType>
但是,考慮以上爲有效無效的例子。 [編輯:校正,上述確實工作]
我也打得四處的答案類似的問題(Define an XML element that must be empty and has no attributes,Prevent Empty Elements in XML via XSD),但沒有運氣。
如何驗證元素具有屬性,但沒有文本?
哎呀 - 答案是問題。上面定義的complexType工作,我的XML文件存在問題。 – Sasha 2015-02-11 20:37:42