我对XML Schema等方面还不太熟悉,一直在开发一些XML、Schema和样式表(XSLT)。我已经取得了一些进展,但后来意识到我的Schema停止工作了,所以我将其改回了一个更简单的非描述性示例。
这是我的XML内容:
<?xml version="1.0" encoding="UTF-8"?>
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="Test.Namespace"
schemaLocation="http://myNameSpace.com Test1.xsd">
<element1 id="001">
<element2 id="001.1">
<element3 id="001.1" />
</element2>
</element1>
</Root>
我编写了一个模式,它在这里:
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="Test.Namespace"
elementFormDefault="qualified">
<xsd:element name="Root">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="element1" maxOccurs="unbounded" type="element1Type"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="element1Type">
<xsd:sequence>
<xsd:element name="element2" maxOccurs="unbounded" type="element2Type"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="element2Type">
<xsd:sequence>
<xsd:element name="item" type="element3Type"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="element3Type">
<xsd:attribute name="id" type="xsd:string"/>
</xsd:complexType>
</xsd:schema>
这个Schema代表了我真正的XML文件的结构。
现在,当我尝试验证我的XML时,我遇到了这个错误:
cvc-elt.1: Cannot find the declaration of element 'Root'. [7]
我认为这可能与根元素的命名空间有关,但我不确定。
请问有人能建议我哪里出错了吗?
.
是一个无效的字符),并且添加必需的 NSS 部分,由另一个:
分隔。 schemaLocation 只是一个提示,XSD 感知验证器可以自由忽略它,如果不是出于安全原因-这就是为什么它永远不应该是 XML 无效或有效的原因。 - Petru Gardea