XSD错误:元素是一个简单的类型,所以它必须没有元素信息项[儿童]

问题描述:

我工作的一个非常基本的XML模式,我在NetBeans接收XSD错误:元素是一个简单的类型,所以它必须没有元素信息项[儿童]

cvc-type.3.1.2: Element 'creator' is a simple type, so it must have no element information item [children]. [8]

,当我尝试验证XML。我遵循W3学校教程,看起来我的代码与他们的代码很相似。我很困惑,当我宣称它是复杂的时,错误状态创建者是如何简单的。我是否错误地将创建者元素声明为复杂类型?

XML文档:

<?xml version="1.0" encoding="UTF-8" ?> 
<gallery 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="Proj1Schema.xsd"> 
    <creator> 
     <name>John Doe</name> 
    </creator> 
</gallery> 

模式:

<?xml version="1.0"?> 

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:tns="http://xml.netbeans.org/schema/gallery" 
    elementFormDefault="qualified"> 

    <xs:element name="creator"> 
      <xs:complexType> 
       <xs:sequence> 
        <xs:element name="name" type="xs:string"/> 
       </xs:sequence> 
      </xs:complexType> 
    </xs:element> 

    <xs:element name="gallery"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="creator" type="xs:string"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 

</xs:schema> 

更换

  <xs:element name="creator" type="xs:string"/> 

  <xs:element ref="creator"/> 

重新使用gallery的内容模型中的全局声明element。由于您拥有XSD,gallery内的creator仅允许使用简单的xs:string内容,这与您的XML具有复杂内容(包括name子元素)相反。

+0

你已经向我说清楚了。感谢您分享你的知识! :) –