XML targetNamespace和元素的非限定声明

hol*_*c87 3 xml xsd xml-validation xsd-validation

关于targetNamespaceXML模式中的属性如何影响元素的命名,我有点困惑.我收到错误验证以下内容:

<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>
Run Code Online (Sandbox Code Playgroud)

XMLSpy说明了Cannot resolve the unqualified declaration or definition 'testSubType'.如何解决这个问题?我需要保留targetNamespace属性.我试着改变testSubType,以test:testSubType在各个领域,但是这似乎并没有工作.

sho*_*222 6

xmlns="test"属性添加到schema元素,以声明此模式的默认命名空间为"test",或者添加xmlns:t="test"为声明这t是"test"命名空间的前缀,并使用该前缀,就像type=t:testSubType引用在此命名空间中定义的类型一样(你在说test是你的targetNamespace.