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

时间:2013-09-25 23:06:28

标签: xml xsd xml-validation

当我在这个项目上工作时,我不断收到错误说:

  

元素'客户'必须没有字符或元素信息项   [children],因为类型的内容类型为空。

我不确定为什么这不起作用看到我按照说明看起来像这样:

<xs:element name="Customer" type="xs:string">  
  <xs:complexType>  
    <xs:attribute name="id" type="xs:integer" use="required"/>  
  </xs:complexType>  
</xs:element>

我知道它说我不能拥有type="xs:string"但是我怎么能让它必须有一个字符串?

1 个答案:

答案 0 :(得分:10)

您需要修正XSD对Customer的定义:在您的定义(customer.xsd)中使用xs:simpleContent而非xs:complexType而不是xsl:element/@type

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           version="1.0">
  <xs:element name="Customer">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="id" type="xs:integer" use="required"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
</xs:schema>

以上XSD将考虑以下有效内容:

<Customer id="123">This is a string.</Customer>