XML targetNamespace 和元素的非限定声明

发布于 2024-12-09 06:03:51 字数 778 浏览 1 评论 0原文

我对 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

森林迷了鹿 2024-12-16 06:03:51

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 add xmlns:t="test" to declare that t is the prefix for the "test" namespace and use that prefix like type=t:testSubType when referencing types that you defined in this namespace (which you're doing by saying test is your targetNamespace).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文