我正在使用以下XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="root">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="value" minOccurs="1" maxOccurs="5" type="new_type"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="new_type" mixed="true">
<xs:choice>
<xs:element name="function"/>
<xs:element name="something_else"/>
</xs:choice>
</xs:complexType>
</xs:schema>以下XML文件在网上失败: abc
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="test.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<value><function/></value>
<value><function/></value>
<value>abc</value>
abc
</root>尽管XML第11行中的mixed=为complexType new_type“true”,但这个XML文件的验证失败了,因为它需要在xs:new_type中指定一个元素。
除了元素之外,我还需要指定一个值。
如何更改XSD文件?
谢谢,
鲍里斯
发布于 2014-03-09 11:28:14
如果将minOccurs="0"添加到<xsd:choice>中,它将验证:
<xs:complexType name="new_type" mixed="true">
<xs:choice minOccurs="0">
<xs:element name="function"/>
<xs:element name="something_else"/>
</xs:choice>
</xs:complexType>否则,除了可能包含的任何字符数据之外,还需要有一个元素。
https://stackoverflow.com/questions/22278463
复制相似问题