3

targetNamespace对于 XML 模式中的属性如何影响元素的命名,我有些困惑。我收到验证以下内容的错误:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="test" version="1.0">
    <xs:element name="testType" type="testType"/>
    <xs:complexType name="testType">
        <xs:sequence>
            <xs:element name="testSubtype" type="testSubType" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="testSubType">
        <!-- some fields -->
    </xs:complexType>
</xs:schema>

XMLSpy 正在说明它Cannot resolve the unqualified declaration or definition 'testSubType'.我该如何解决这个问题?我需要将targetNamespace属性保留在那里。我已经尝试在各个领域进行更改testSubTypetest:testSubType但这似乎不起作用。

4

1 回答 1

6

xmlns="test"属性添加到架构元素以声明此架构的默认命名空间是“test”,或者添加xmlns:t="test"以声明这t是“test”命名空间的前缀并使用该前缀,就像type=t:testSubType引用您在此命名空间中定义的类型时一样(你通过说 test 是你的 targetNamespace 来做到这一点)。

于 2011-10-12T17:29:06.690 回答