admin 管理员组

文章数量: 1184232


2024年1月17日发(作者:神剪辑下载)

1 Xml命名空间

1.1 XML命名空间XML Namespaces

XML 命名空间提供避免元素命名冲突的方法。XML命名空间属性被放置于元素的开始标签之中,并使用以下的语法:

xmlns:namespace-prefix="namespaceURI"

举例

当命名空间被定义在元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。

注释:标示命名空间的地址不会被解析器用于查找信息。其惟一的作用是赋予命名空间一个惟一的名称。不过,很多公司常常会作为指针来使用命名空间指向实际存在的网页,这个网页包含关于命名空间的信息。

1.2 默认的命名空间(Default Namespaces)

为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作。

xmlns="namespaceURI"

举例

2 Xml Schema命名空间

2.1 常用命名空间

schema元素引用了三个最常使用的命名空间:

xmlns="/2001/XMLSchema"

xmlns:xsd="/2001/XMLSchema-datatypes"

xsd是XML Schema datatypes的意思

xmlns:xsi="/2001/XMLSchema-instances"

xsi是XML Schema Instances的意思

第二和第三个属性用XML命名空间来标识W3C中的两个XML schema规范。第二个xmlns属性定义了标准的XML schema属性类型例如string, float, integer等。第三个 xmlns属性包含基本的XML schema元素,如element, attribute, complexType, group,simpleType等。

2.2 默认命名空间(default namespaces)

每一个Schema可以有且只有一个默认命名空间

xmlns="/2001/XMLSchema"

xmlns=””

在文档中所有的名字前面如果没有前缀的,就是由默认命名空间进行定义和解析的。使用默认命名空间,可以不加空间前缀。

2.3 元素

该元素是每一个 XML Schema 的根元素。对于任何一个XML Schema定义文档(XSD)都有一个最顶层的schema (XSD)元素。而且该schema (XSD)元素定义必须包含标准命名空间作为命名空间的标识符(在声明中作为元素或属性的前缀),你也可以不使用xsd或xsi。

一个有命名空间 schema 声明往往看上去类似这样:

targetNamespace=""

xmlns=""

elementFormDefault="qualified">

...

无命名空间schema 声明

elementFormDefault="qualified">

引入其他

对于标准名字空间和目标名字空间,我们不需要指定它的SchemaLocation。因为对于目标名字空间来讲,SchemaLocation就是文档自己。对于标准名字空间来讲,它是众所周知的,也不需要指定。而对于源目标空间来讲,就需要指定它的SchemaLocation。

xmlns="/1999/xmlSchema"

xmlns:ACC="/Account"

xmlns:PART="/PartsCatalog">

schemaLocation="/repository/"/>

2.4 元素属性说明:

2.4.1 源命名空间(source namespaces):带前缀名的

在Schema中的定义和声明也可以引用其他的命名空间,我们可以把这种命名空间取名为源命名空间(source namespaces)。每一个Schema可以有多个源命名空间。

xmlns:xs=/2001/XMLSchema

xmlns:xsi=/2001/XMLSchema-instance

2.4.2 目标命名空间(target namespace)

每一个Schema可以有且只有一个目标命名空间。Xml Schema定义文档中(XSD)定义的一系列元素名称,类型名称,属性名称和属性组名称等的有效作用范围就是在他们的目标名字空间(target namespace)中。实际上,在一个给定的Schema中,每一个名称都是属于一个特定的名字空间的。

argetNamespace属性表示了该shema对应的命名空间的URI。也就是说在引用该Schema的其它文档中要声明命名空间的URI应该是targetNamespace的属性值。

2.4.3 elementFormDefault

有效值是 qualified 和unqualified,如果该值是 qualified,实例xml根元素及其下所有子元素都必须通过命名空间前缀限定目标命名空间。这个命名空间必须是schema中定义的targetNameSpace。可以看到引用了的XML文件中声明了

xmlns="urn:MyNamespace",声明中没有使用前缀,元素前也就不用添加前缀;如果该值是

unqualified,实例xml的根元素必须有命名空间的的限定,这个命名空间必须是schema中定义的targetNameSpace。但是其下子元素无须也不允许用命名空间前缀限定目标命名空间。

子元素的命名空间为空命名空间。

3 Xml使用xsd

XML文件和XSD文件没有直接的联系,他们之间通过namespace关联,即

add element use element

XSD文件-------------------------->namepsae--------------------------->XML文件

3.1 Xsd指定目标命名空间

Xsd文件:

targetNamespace=””

xmlns=”” elementFormDefault="qualified">

xml引用

xmlns:xsi=”/2001/XMLSchema-instance”

xsi:schemaLocation=" ">

xml缺省命名空间声明xmlns="值"就是和声明的XML Schema的命名空间相结合来规定该XML文档。

xmlns:xsi=”/2001/XMLSchema-instance”定义一个Schema的实例命名空间。只有作了这个定义才能使用schemaLocation属性。

使用小结

文件中targetNamespace="urn:MyNamespace"

Xml引用

xmlns:xsi=”/2001/XMLSchema-instance” xmlns="urn:MyNamespace"

xsi:schemaLocation="urn:MyNamespace空格">

3.2 Xsd没指定目标命名空间

Xsd文件:

< schema xmlns =”/2001/XMLSchema”

elementFormDefault="qualified">

xml引用

xsi:noNamespaceSchemaLocation="">

与xml在同一目录或者相对路径目录。

3.3 Xml引用xsd实例

此文件包含对 XML Schema 的引用:

xmlns:xsi="/2001/XMLSchema-instance"

xsi:schemaLocation=" ">

下面代码片段

xmlns=""

规定了XML默认命名空间的声明。此声明告知schema验证器,在此XML文档中使用的所有元素都被声明于 "" 这个命名空间。

下面代码片段

xmlns:xsi="/2001/XMLSchema-instance"

定义一个Schema的实例命名空间,(只有作了这个定义才能使用schemaLocation属性)您就可以使用 schemaLocation 属性了。

xsi:schemaLocation=" "

因为我们已经定义了xsi命名空间所以可以使用schemaLocation属性了。此属性有两个值。第一个值是需要使用的命名空间。第二个值是供命名空间使用的 XML schema 的位置。schemaLocation属性由成对的值组成可以有多对。(因为一个XML文档可以有多个命名空间,所以schemaLocation值可以有多对)

方式一

xsi:schemaLocation=

方式二

xsi:schemaLocation="/schema/beans

/schema/beans/">

方式三

xsi:noNamespaceSchemaLocation="E:">

3.4 小结

主要区别一:指定命名空间

带命名空间的XSD文件要指定命名空间targetNamespace的值。同样xml文件也要设置该命名空间xmlns;不带命名空间时XSD文件和xml文件都不用设置。

主要区别二:xml设置XSD验证的方式不一样

带命名空间的xml用 schemaLocation="命名空间 xsd文件" 设置不带命名空间的使用noNamespaceSchemaLocation="xsd"文件设置。

小结:无论是xsi :schemaLocation="命名空间 xsd文件" 还是noNamespaceSchemaLocation="xsd文件"都是指的是相对路径。但是不管有没有自定义命名空间,xml和xsd文件都建议放在同一目录下。

找不到xsd文件报错如下:

Unable to load a schema with target namespace '' from ''.


本文标签: 空间 命名 元素 属性 使用

更多相关文章

Win8应用商店应用设置详解:轻松保存和读取本地设置

18天前

ApplicationData有一个静态属性——Current,不用多解释,指的自然是 我们当前运行的应用程序。因此,我们就知道,要得到当前应用程序的ApplicationData, 就通过该属性。 好的,第一个

老毛桃装机教程实测:面对失败,如何寻找问题的关键点?

18天前

目的 就是用老毛桃安装win10系统。好久不用这些东西了,因为系统装了之后,就很少动了;今天新同事要重装系统,我就帮助重新装了一下,顺便记录一下用法。过程很简单,重点说一下装机过程中遇上的问

释放你的电脑潜能:一招解决Adobe Flash Player中的垃圾问题

18天前

1、手动清理 (1)打开资源管理器,右键-属性,点击“磁盘清理”,然后选中要清理的文件,点击确定即可; (2)对于一些软件的卸载残留,可以打开注册表,找到各目录下的software子目录,从里面找那些你已经卸载过的软件

Linux 中如何查询默认网关_linux查看默认网关

17天前

在之前的文章中我们介绍过如何查找 IP 地址,今天我们了解一下如何在行中查找默认网关。 网关是两个网络之间的入口,路由器就是网关的一个例子。你的网络中所有的流量都是流向路由器,然后再通过路由器流向

简单介绍WiFi模块ESP8266的使用方法及如何使用TCP协议连接巴法云物联网平台。_wifi connected wifi got ip

16天前

首先不要慌张,8266模块不像你想象的那么难,只要简单掌握一些AT指令还是很好操作的,下面步入正题。目录2、 1、模块及管脚介绍 ESP8266模块是深圳安信可公司基于ESP8266芯片研发,特

破解XP开机密码方法

16天前

如何破解XP开机密码当Windows XP登录密码丢失时,我们可以针对不同的情况采用不同的办法来解决: (1)如果在安装Windows XP时,Administrator密码设置为空。大家可以在系统引导的时候

实现Win7 Aero弹出窗口效果的完整代码项目

16天前

简介:本文详细介绍了如何使用JavaScript实现Windows 7 Aero风格的弹出窗口效果。依赖于 jquery-AeroWindow.js和 jquery-1.4.2.min.js

如何轻松强制删除电脑上的文件_强制删除电脑文件

15天前

有时,文件无法通过常规方法删除,可能是因为它们正在使用、已损坏或受到保护。遇到这种情况,您需要强制删除文件的方法。别担心,本指南将通过以下分步说明,告诉您如何在 Windows 或 Mac 电脑上强制删除文件。 第一部分:如何

mysql 删除用户_mysql删除用户的命令是什么

15天前

要删除MySQL数据库中的用户,您可以按照以下步骤进行: 使用root用户或具有管理员权限的账号登录到MySQL数据库中。 使用root用户或具有管理员权限的账号登录到MySQL数据库中。

使用python-pptx修改幻灯片背景:设置或更改幻灯片的背景颜色和图片_python-pptx设置背景图片

12天前

哈喽,大家好,我是木头左!一个美观、专业的背景可以让整个PPT看起来更加高级,更能吸引观众的注意力。那么,如何使用Python来修改PPT的背景呢?本文将介绍如何使用python-pptx库来设置或更改幻灯片的背景颜

Niagara——Sprite烟雾_niagara烟雾

12天前

目录Niagara实现Sprite烟雾效果 前言 一些特效的视觉手段是在始终朝向摄像机的2D平面上渲染纹理和材质。这些平面称被为 Sprite。本篇记录了Niagara内实现Spr

Centos LVM磁盘合并方法_centos合并硬盘

11天前

Centos LVM磁盘合并方法 使用fdisk -l命令查看机器增加了2块物理磁盘,一块40G另一块50G 需要将这两块盘的空间合并在一起,而且还需要动态扩展即在不关机的情况下操作 使用pvcreate将两块

[Windows编程] 使用AttachThreadInput 来捕捉其它窗口的键盘输入

10天前

在一些情况下(比如屏幕软键盘或者输入法程序),自己的窗口没有输入焦点但是想要当前焦点窗口的键盘输入消息,可以使用Win32 API函数来解决这个问题。AttachThreadInput把一个线程( idAtta

本地连接丢失解决指南

10天前

<script src="" type=textjavascript> <script> 或者本地连接丢失都是是我们常见的一种计算机故障,没有了本地连接,有的时候能正常上网,可有的

电脑卡顿解决方法大全(2025终极版)| 开机慢、运行卡、游戏掉帧?14种快速修复方案+长期优化指南_电脑卡顿反应慢怎么处理

10天前

前言 你的电脑卡顿属于哪种类型?快速诊断指南: 开机卡:开机时间>1分钟,桌面加载慢→启动项过多硬盘性能差 运行卡:开几个软件就卡,切换程序慢→内存不足CPU性能低 游戏卡:游戏掉帧、画

【C++STL基础入门】list的增、删_c++ list删除指定元素

10天前

前言 在C++中,STL(Standard Template Library)是一个功能强大且常用的程序库,它为我们提供了许多容器和算法,使得编写高效且可维护的代码变得更加容易。其中,list是STL中的一个双向链表容器,它可

掌握192.168.1.1:家庭网络中的基础配置与管理

9天前

虽然前面小编也发布过关于的相关信息,但是都是解释相关的问题的,没有好好介绍关于的信息,今天小编星期八就给大家介绍一下的详细信息! 是什么? 192.168.0.1属于IP地址的

双系统启动菜单问题?NTBOOTautofix帮你快速解决!

8天前

简介:双系统启动菜单工具NTBOOTautofix是一款专业软件,用于管理和修复双系统或多系统的启动菜单问题。它特别适用于Windows系列操作系统,并提供修复启动菜单、恢复MBR、修复BCD、数据备份与恢复、命令行模式操作、安全扫描

如何利用192.168.1.1优化你的家庭网络体验

8天前

虽然前面小编也发布过关于的相关信息,但是都是解释相关的问题的,没有好好介绍关于的信息,今天小编星期八就给大家介绍一下的详细信息! 是什么? 192.168.0.1属于IP地址的

192.168.1.1的秘密通道:探索家庭网络的入口

8天前

虽然前面小编也发布过关于的相关信息,但是都是解释相关的问题的,没有好好介绍关于的信息,今天小编星期八就给大家介绍一下的详细信息! 是什么? 192.168.0.1属于IP地址的

发表评论

全部评论 0
暂无评论