繁体   English   中英

XSD错误:找不到元素的声明

[英]XSD error: Cannot find the declaration of element

我经历过其他peopla遇到的相同问题,但似乎没有任何效果

这是我的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]

我想念什么?

像这样的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>

将支持这样的XML

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

主要问题是您的xsd没有targetNameSpace,并且您的XML没有引用它(“ xmlns”属性)。 但是您的整个XML和XSD都损坏了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM