2017-05-28 63 views
0

我已经经历了同样的问题其他peopla有这个,但没有消失的声明似乎工作XSD错误:找不到元素

这里是我的XML文件:

<Livraria xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:x="x:livro.xsd" 
     xsi:schemaLocation="livro.xsd LivrariaScheme.xsd"> 
<Secção nome="Não Ficção"> 
    <Livros> 
     <Livro Secção="Não Ficção"> 

这里是我的XSD:

<?xml version="1.0" encoding="UTF-8"?> 

<xs:schema version="1.0" 
     attributeFormDefault="unqualified" 
     elementFormDefault="qualified" 
     xmlns:xs="http://www.w3.org/2001/XMLSchema" 
     targetNamespace="x:livro.xsd" 
     xmlns:x="livro.xsd" 

>

<xs:element name="Livraria" type="x:TLivraria"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="Secção" type="x:Secção"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

<xs:complexType name="TSecção"> 
    <xs:sequence> 
     <xs:element name="Livros" type="x:TLivros"/> 
    </xs:sequence> 
</xs:complexType> 

<xs:complexType name="TLivros"> 
    <xs:sequence> 
     <xs:element name="Livro" type="x:TLivro" maxOccurs="unbounded"/> 
    </xs:sequence> 
</xs:complexType> 

我不断收到此错误:

cvc-elt.1: Cannot find the declaration of element 'Livraria'.[6] 

我缺少什么?

回答

0

一个XSD这样

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema version="1.0" 
      attributeFormDefault="unqualified" 
      elementFormDefault="qualified" 
      targetNamespace="remove_me" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

    <xs:element name="Livraria" type="TLivraria"/> 

    <xs:complexType name="TLivraria"> 
     <xs:sequence> 
      <xs:element name="Secção" type="TSecção"/> 
     </xs:sequence> 
    </xs:complexType> 

    <xs:complexType name="TSecção"> 
     <xs:sequence> 
      <xs:element name="Livros" type="TLivros"/> 
     </xs:sequence> 
     <xs:attribute name="nome" type="xs:string"/> 
    </xs:complexType> 

    <xs:complexType name="TLivros"> 
     <xs:sequence> 
      <xs:element name="Livro" type="TLivro" maxOccurs="unbounded"/> 
     </xs:sequence> 
    </xs:complexType> 

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

</xs:schema> 

将支持这样的

<Livraria xmlns="remove_me"> 
    <Secção nome="Não Ficção"> 
     <Livros> 
      <Livro> 
       <name>Funny book</name> 
      </Livro> 
     </Livros> 
    </Secção> 
</Livraria> 

的主要问题是,你的XSD没有目标名称和您的XML不引用它(使用了“xmlns一个XML '属性)。但是你的XML和XSD是完全破碎的。