XML+Schema+命名空间.没有可用于验证根的匹配全局声明



在使用命名空间时引用架构时,正确的语法是什么?

问题

使用给定的模式创建XML文档。

错误


    .xml:9.20: Element '{http://example/buildings/1.0}old_buildings': No matching global declaration available for the validation root.
    oldbuildings.xml - invalid
    Problem

XML文档

<?xml version="1.0" encoding="UTF-8"?>
<buildings:old_buildings xmlns:buildings="http://example/buildings/1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://example/buildings/1.0 oldbuildings_schema.xsd">
    <building>
        <name>Name</name>
        <year_built era="BC">2000</year_built>
        <story>...<story>
    </building>
</buildings:old_buildings>

XSD文档

<?xml版本="1.0"编码="UTF-8"><xs:schema targetNamespace="http://example/buildings/1.0/">
xmlns:xs="http://www.w3.org/2001/XMLSchema">
xmlns="http://example/buildings/1.0/"><xs:element name="old_buildings"><xs:complexType><xs:sequence><xs:element ref="building"/><xs:sequence><xs:complexType><xs:element><xs:element name="building"type="buildingType">lt/xs:element><xs:complexType name="buildingType"><xs:sequence><xs:element name="name"type="xs:string"/><xs:element name="year_builted"type="yearType"/><xs:element name="story"type="xs:string"/><xs:sequence><xs:complexType><xs:complexType name="yearType"><xs:simpleContent><xs:extension base="xs:ppositiveInteger"><xs:attribute name="era"type="xs:string"/><xs:extension><xs:simpleContent><xs:complexType><xs:schema>

在您的xml文件中,尝试使用

xmlns:buildings="http://example/buildings/1.0/">

带有/final,如xsd声明中所示:xs:schema targetNamespace="http://example/buildings/1.0/"

来自xml文档缺少关闭标签

 <story>...<story>

<story>...</story>

最新更新