我已经经历了其他人对此有同样的问题,但似乎没有任何工作
这是我的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"
&GT;
<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 :(得分: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>
将支持类似
的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都很破碎。