XML targetNamespace 和元素的非限定声明
我对 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 正在声明无法解析不合格的声明或定义“testSubType”。
如何解决此问题?我需要将 targetNamespace
属性保留在那里。我尝试在各个领域将 testSubType
更改为 test:testSubType
但这似乎不起作用。
I'm somewhat confused as to how the targetNamespace
attribute in an XML schema affects the naming of elements. I'm getting an error validating the following:
<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 is stating it Cannot resolve the unqualified declaration or definition 'testSubType'.
How can I resolve this? I need to keep the targetNamespace
attribute in there. I've tried changing testSubType
to test:testSubType
in various areas but this doesn't seem to work.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将
xmlns="test"
属性添加到 schema 元素以声明此 schema 的默认命名空间为“test”,或者将xmlns:t="test"
添加到声明t
是“test”命名空间的前缀,并在引用您在此命名空间中定义的类型时使用该前缀,例如type=t:testSubType
通过说 test 是你的 targetNamespace 来完成)。Either add the
xmlns="test"
attribute to the schema element in order declare that default namespace for this schema is "test" or addxmlns:t="test"
to declare thatt
is the prefix for the "test" namespace and use that prefix liketype=t:testSubType
when referencing types that you defined in this namespace (which you're doing by saying test is your targetNamespace).