我对XML模式中的targetNamespace
属性如何影响元素的命名感到困惑。我收到错误验证以下内容:
<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
属性。我尝试在各个方面将testSubType
更改为test:testSubType
,但这似乎不起作用。
答案 0 :(得分:6)
将xmlns="test"
属性添加到schema元素,以声明此架构的默认命名空间为“test”或添加xmlns:t="test"
以声明t
是“{1}}的前缀测试“命名空间并在引用您在此命名空间中定义的类型时使用type=t:testSubType
之类的前缀(您通过将test称为targetNamespace来执行此操作)。