内容模型 - XSD不允许使用字符数据

时间:2017-02-27 23:25:07

标签: xml xsd

尝试验证一个小的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>

我无法找到错误的地方且代码看起来不错......

1 个答案:

答案 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>