XSD 问题 - 找不到根元素的声明
XSD problem - cannot find the declaration of root element
我在根据我的 XML 模式验证我的 XML 文件时遇到问题。一切正常,除了它显示找不到 countries
根元素的声明。
这是我的 XML 文件的一部分:
<?xml version="1.0" encoding="UTF-8"?>
<countries xmlns="https://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="kraje.xsd">
<!-- I don't paste everything that's inside the countries element
since it's not causing errors -->
</countries>
这是我的 XSD 文件的一部分:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="countries" type="countriesType"/>
<xs:complexType name="countriesType">
<xs:sequence>
<xs:element ref="country"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
XML
由于您的 XML 在 https://www.w3schools.com
命名空间中,更改
xsi:schemaLocation="kraje.xsd"
到
xsi:schemaLocation="https://www.w3schools.com kraje.xsd"
XSD
添加一个匹配的 targetNamespace
,
targetNamespace="https://www.w3schools.com"
到 xs:schema
根元素。
另见
- How to link XML to XSD using schemaLocation or noNamespaceSchemaLocation?
我在根据我的 XML 模式验证我的 XML 文件时遇到问题。一切正常,除了它显示找不到 countries
根元素的声明。
这是我的 XML 文件的一部分:
<?xml version="1.0" encoding="UTF-8"?>
<countries xmlns="https://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="kraje.xsd">
<!-- I don't paste everything that's inside the countries element
since it's not causing errors -->
</countries>
这是我的 XSD 文件的一部分:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="countries" type="countriesType"/>
<xs:complexType name="countriesType">
<xs:sequence>
<xs:element ref="country"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
XML
由于您的 XML 在 https://www.w3schools.com
命名空间中,更改
xsi:schemaLocation="kraje.xsd"
到
xsi:schemaLocation="https://www.w3schools.com kraje.xsd"
XSD
添加一个匹配的 targetNamespace
,
targetNamespace="https://www.w3schools.com"
到 xs:schema
根元素。
另见
- How to link XML to XSD using schemaLocation or noNamespaceSchemaLocation?