我正在尝试创建一个用于验证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