【发布时间】:2014-02-12 06:05:27
【问题描述】:
这是我尝试针对架构 B.xsd 进行验证时得到的结果:
使用 XML 模式验证当前文件:错误:元素 '{http://NamespaceTest.com/OrderTypes/}University':没有匹配的全局 可用于验证根的声明。
XML:
<p:University xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://NamespaceTest.com/B B.xsd"
xmlns:p="http://NamespaceTest.com/B/"
xmlns:cmn="http://NamespaceTest.com/A/">
<cmd:College>
<cmd:Dept>
<cmd:Course>
<cmd:Teacher>a</cmd:Teacher>
<cmd:Student>b</cmd:Student>
</cmd:Course>
</cmd:Dept>
</cmd:College>
</p:University>
B.XSD(大学):
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:c="http://NamespaceTest.com/A" elementFormDefault="qualified" targetNamespace="http://NamespaceTest.com/B" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import schemaLocation="A.xsd" namespace="http://NamespaceTest.com/A" />
<xs:complexType name="University">
<xs:sequence>
<xs:element name="Col" type="c:College" />
</xs:sequence>
</xs:complexType>
</xs:schema>
A.XSD(大学):
<xs:schema targetNamespace="http://NamespaceTest.com/A" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified">
<xs:complexType name="College">
<xs:sequence>
<xs:element name="Dept">
<xs:complexType>
<xs:sequence>
<xs:element name="Course">
<xs:complexType>
<xs:sequence>
<xs:element name="Teacher" type="xs:string" />
<xs:element name="Student" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
我想尝试这样的事情(作为练习):University(B) 使用 College(A) 及其子元素。我做错了什么?
【问题讨论】:
标签: xml validation xsd xml-namespaces