尝试验证一个小的xml我收到以下错误:内容模型不允许使用字符数据。
这是我的例子xml:
<?xml version="1.0" encoding="UTF-8"?>
<plats xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="1_e.xsd">
<primer codi='3'>Caldo de verdures</primer>
<segon codi='4'>Pollastre al forn</segon>
<primer codi='7'>Spaguettis</primer>
<segon codi='12'>Llus a la planxa</segon>
</plats>
这是我的xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:complexType name="t_primer">
<xs:choice>
<xs:element name="primer" type="xs:string" />
</xs:choice>
<xs:attribute name="codi" type="xs:string" />
</xs:complexType>
<xs:complexType name="t_segon">
<xs:choice>
<xs:element name="segon" type="xs:string" />
</xs:choice>
<xs:attribute name="codi" type="xs:string" />
</xs:complexType>
<xs:element name="plats">
<xs:complexType>
<xs:choice>
<xs:sequence>
<xs:element name="primer" type="t_primer" />
</xs:sequence>
<xs:sequence>
<xs:element name="segon" type="t_segon" />
</xs:sequence>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
我无法找到错误的地方且代码看起来不错......
答案 0 :(得分:4)
问题解决了:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:complexType name="t_primer">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="codi" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="t_segon">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="codi" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:element name="plats">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="primer" type="t_primer" />
<xs:element name="segon" type="t_segon" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>