包含属性和文本的XML元素和XSD验证
我正在努力弄清楚如何构造XSD验证,以便正确验证XML文件 我的元素包含属性和文本的XML元素和XSD验证,xml,xsd,Xml,Xsd,我正在努力弄清楚如何构造XSD验证,以便正确验证XML文件 我的元素languages包含元素language,其中既包含文本,也包含id字段 我的验证器告诉我有:验证错误:元素“languages”的子元素“language”无效。 如何正确地构造这个?我的language元素是否需要complexType XSD XML C C++ 以下XSD将验证您的XML: <?xml version="1.0" encoding="ISO-8859-1"?> <xs:schem
languages
包含元素language
,其中既包含文本,也包含id
字段
我的验证器告诉我有:验证错误:元素“languages”的子元素“language”无效。
如何正确地构造这个?我的language
元素是否需要complexType
XSD
XML
C
C++
以下XSD将验证您的XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="dataset">
<xs:complexType>
<xs:sequence>
<xs:element name="languages">
<xs:complexType>
<xs:sequence>
<xs:element name="language" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id">
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
注意事项:
- 错误消息与基数有关(
)maxOccurs=“unbounded”
- 您可能不希望使用
,除非mixed=“true”
语言 可能的标记在其内容中与文本混合
所以我忘了:maxOccurs=“unbounded”。。天哪。。。谢谢:黛雅,我不能告诉你有多少次我把一个错误错误归咎于我最担心的问题,而不是真正导致这个问题的简单问题。
<?xml version="1.0" encoding="ISO-8859-1"?>
<dataset>
<languages>
<language id="0">C</language>
<language id="1">C++</language>
</languages>
</dataset>
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="dataset">
<xs:complexType>
<xs:sequence>
<xs:element name="languages">
<xs:complexType>
<xs:sequence>
<xs:element name="language" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id">
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>