gpt4 book ai didi

xml - 如何使用 xsd 命名空间

转载 作者:行者123 更新时间:2023-12-04 17:00:10 24 4
gpt4 key购买 nike

我搜索了很多地方的命名空间,但没有得到满意的答案

对于以下 xsd 文件

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/schema"
xmlns="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">

<xs:element name="product"/>

</xs:schema>

对于上面的代码,以下是我的理解。如果我错了,请纠正我。我也有一些关于相同的查询:
  • xmlns:xs="http://www.w3.org/2001/XMLSchema" 是存储我在当前文档中使用的所有元素和数据类型的定义的地方。
  • targetNamespace="http://www.example.org/schema 实际上是要存储当前文件的包名称。
  • xmlns="http://www.w3.org/2001/XMLSchema" : 不知道这是什么
  • ** xmlns:tns**与 targetNamespace 相同。那我们为什么要单独使用呢?
  • 第一行和第三行有什么用
  • 最佳答案

    首先是两个声明:

    xmlns:xs="http://www.w3.org/2001/XMLSchema"  
    xmlns="http://www.w3.org/2001/XMLSchema"

    表示前缀为“xs”的名称和无前缀的名称均表示其含义在 W3C XSD 规范中定义的名称。这让您可以选择写作 <xs:element>或者干脆 <element> .声明两者没有特别的理由;最好始终使用一种形式或另一种形式。

    属性 targetNamespace="http://www.example.org/schema"表示此模式正在定义 namespace http://www.example.org/schema 中元素(可能还有属性)的结构。 ,这大概是一个命名空间,你是它的设计控制(我的意思是,你不应该使用那个特定的命名空间,除非在一个例子中,因为它不是你的命名空间)。

    看到这样的声明很常见
    xmlns:tns="http://www.example.org/schema"

    将前缀(在本例中为“tns”)绑定(bind)到模式的目标命名空间。如果您有一个架构组件引用同一目标命名空间中的另一个架构组件(例如,引用一种类型的元素声明),则有两种方法可以做到:
    (1) <xs:element name="e" type="t"/>

    当“xs”前缀绑定(bind)到“ http://www.w3.org/2001/XMLSchema”并且默认命名空间与目标命名空间相同时,这会起作用。
    (2) <element name="e" type="tns:t"/>

    当默认命名空间为“ http://www.w3.org/2001/XMLSchema”并且“tns”前缀绑定(bind)到目标命名空间时,此方法有效。

    关于xml - 如何使用 xsd 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36571183/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com