XML + Schema + Namespaces. No matching global declaration available for the validation root
使用命名空间时引用架构时,正确的语法是什么?
问题
使用给定的架构创建XML文档。
误差
1 2 3 | .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文档
1 2 3 4 5 6 7 8 9 10 11 12 13 | </p> [cc lang="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> |
号
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | </P><P>XSD文档</P>[cc lang="xml"] <?xml version="1.0" encoding="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"></xs:element> <xs:complexType name="buildingType"> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="year_built" type="yearType"/> <xs:element name="story" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="yearType"> <xs:simpleContent> <xs:extension base="xs:positiveInteger"> <xs:attribute name="era" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:schema> |
。
在XML文件中,尝试使用
xmlns:buildings="http://example/buildings/1.0/"
号
最后,如您的XSD声明中所述: