错误:元素必须没有字符或元素信息项[children],因为类型的内容类型为空

时间:2016-03-13 07:20:09

标签: xml xsd xsd-validation xml-validation

我无法理解这位在线验证员告诉我的内容:

  

cvc-complex-type.2.1:元素' characterPower'必须没有字符或元素信息项[children],因为类型的内容类型为空。

(我也得到了'弱点'元素的相同错误代码)

    <xs:element name="characterPower" type="xs:string">
        <xs:complexType>
            <xs:attribute name="origin" type="originType" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="weakness">
        <xs:complexType>
            <xs:attribute name="lethality" type="lethalType" use="required"/>
        </xs:complexType>
    </xs:element>

    <xs:simpleType name="originType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="alien" />
            <xs:enumeration value="radiation" />
            <xs:enumeration value="mutant" />
            <xs:enumeration value="skill" />
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="lethalType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="major" />
            <xs:enumeration value="minor" />
        </xs:restriction>
    </xs:simpleType>

这是与之相关的XML文档

        <characterPower origin="mutant">Weapon Expertise, Healing Factor, Master Martial Artist and Assassin</characterPower>
        <weakness lethality="minor">Poor Mental State</weakness>

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

要允许characterPower同时拥有origin属性字符串内容,请通过xs:string扩展xs:simpleContent,如下所示:

  <xs:element name="characterPower">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="origin" type="originType" use="required"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>

您可以对weakness元素执行类似操作。