2016-09-25 7 views
2

Я работаю на очень простой схеме XML и я получаюXSD ошибка: Элемент простого типа, так что не должно быть элемент информации [детей]

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

в NetBeans при попытке проверки 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> 

ответ

0

Заменить

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

с

  <xs:element ref="creator"/> 

для повторного использования глобальной декларации element в контентной модели gallery. Поскольку у вас был XSD, creator в пределах gallery допускал бы простой контент xs:string, в отличие от вашего XML, который имеет сложный контент, включая дочерний элемент name.

+0

Вы ясно дали мне понять. Спасибо, что поделились своими знаниями! :) –