admin 管理员组

文章数量: 887021


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 ''.


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

更多相关文章

linux优化空间&amp;完全卸载mysql——centos7.9

2月前

文章目录 ⭐前言⭐linux命令使用&#x1f496; 基础命令&#x1f496; 内存优化&#x1f496; 完全删除mysql ⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c

台式计算机c盘怎么清理空间,练习教你电脑如何清理系统c盘空间

2月前

大家知道电脑系统使用时间长了&#xff0c;系统盘C的空间会变得越来越小&#xff0c;这样容易导致系统出现各种莫名其妙的故障&#xff0c;还有系统运行会卡到不要不要的程度&#xff0c;每次手动清理非常的

电脑c盘空间不足如何清理空间,c盘清理的方法

2月前

关于电脑c盘空间不足&#xff0c;相信是很多人所头疼的问题吧&#xff0c;随着电脑使用次数的增加&#xff0c;那c盘的空间越来越少&#xff0c;一直到完全变红&#xff0c;电脑也变得越来越卡

台式计算机c盘怎么清理空间,电脑c盘变红满了怎么清理(3招彻底清理空间,几分钟就恢复蓝色了)...

2月前

很多不是很懂电脑的小伙伴&#xff0c;在用电脑的时候不会去选择文件存放路径&#xff0c;所以几乎所有的文件全部的默认存放在C盘中了。时间久了&#xff0c;C盘就会提示空间不足&#xff0c;电脑也就越来

这样清理电脑C盘空间,硬盘分分钟多出20G

2月前

电脑用久了会有很多的缓存垃圾&#xff0c; 各种软件的缓存数据还有安装在C盘的微信聊天数据等等&#xff0c;当你发现C盘被占据了大量的存储空间&#xff0c;千万不要慌&#xff0c;给大家分享一下我处理

项目属性的target platform和target platform version到底是什么(vs2015开发windows驱动小记)...

2月前

根据官方对属性页的介绍&#xff08;General Property Page (Project)&#xff09;可了解&#xff1a; target platform是build后的结果会跑在哪个平台&#

计算机中桌面图标构成要素,谁能简述windows桌面的基本组成元素及其功能

2月前

任务栏、桌布(背景)、桌面图标(这些是最基础的)。 任务栏包括开始按钮、中英文切换按钮等&#xff0c;显示正在运行的程序。 桌布就是给你看的。 桌面图标方便你工作。 桌面(英文&#xff1a;Desktop)&#x

快看这里,如何卸载windows11自动更新下载的文件还你C盘空间

2月前

之前一不小心就下载了windows11,因为windows11系统一直都不是很完善所以我一直都不想安装。 但是它的下载包占了我C盘太多空间大概有20多G的样子C:windows文件夹中以$开头和结尾的隐藏文件 &#xff08

iphone相册储存空间已满_iPhone手机提示icloud储存空间已满怎么办?icloud储存空间已满怎么解决?...

2月前

icloud储存空间已满怎么办?icloud储存空间已满怎么解决?当我们的iPhone手机收到icloud储存空间已满的提示时该怎么办呢&#xff0c;怎么解决iPhone手机icloud储存空间已满提示&#xff0c;“i

C盘突然爆满,并且清理空间后,马上又会爆满

2月前

C盘突然爆满&#xff0c;并且清理空间后&#xff0c;马上又会爆满 原因解决 原因 idea本地在跑数据打印日志&#xff0c;导致产生了一个名为idea_test_1.out的文件&#xff0c;这个

计算机c盘空间被虚拟占满,C盘空间总是莫名其妙的满了,又不想重装系统,5招教你如何瘦身...

2月前

我们的电脑C盘内存总是不足这个问题&#xff0c;这或许是让很多不是很懂电脑的朋友头疼的问题&#xff0c;明明给C盘分配固态硬盘专属分区&#xff0c;但是用着用着发现空间不足了&#xff0c;因为我们的W

C盘清理:空间大释放!这里有有效解决方案。(附带流氓软件exe,服务清理方法)

2月前

目录 一、第三方软件助威 二、电脑设置排查大容量软件 三、清除缓存目录 四、将聊天存储文件轰出C盘 五、一些建议 六、常见问题 1.删不掉文件怎么办 ①如果提示进程使用中 方案一&#xff1a;去任务管理器删除进程

c盘怎么扩容 5种方法快速解决c盘空间不足

2月前

C盘是操作系统主要安装和存储系统文件的位置&#xff0c;也是系统盘&#xff0c;对电脑的运行是非常重要的&#xff0c;而c盘扩容操作涉及到系统文件和程序&#xff0c;需要格外小心。下面给大家介绍几个简

(已解决)C盘空间内存不足?C盘爆满怎么清理?C盘如何扩容?

2月前

每次看到C盘红红的一条杆&#xff0c;炒鸡难受&#xff01;这要是手里持有的基金该多好&#xff01; 今天C盘只剩下1个G的时候&#xff0c;成功将C盘扩容&#xff0c;救了命了&#

【C盘大扫除必备神器!】释放C盘空间,让电脑飞起来!

2月前

在数字时代&#xff0c;电脑成为了我们工作与生活的得力助手。然而&#xff0c;随着时间的推移&#xff0c;C盘——这个系统的核心地带&#xff0c;往往被各种临时文件、系统垃圾、无用日志等占据&

c盘怎么清理?这样做可以快速释放电脑空间!

2月前

案例&#xff1a;我电脑c盘可用空间已经不多了&#xff0c;出现了标红的现象&#xff0c;我想清理一下我的c盘。怎么清理c盘才科学和安全&#xff0c;才不会误删重要的文件&#xff1f;有没有

浏览器 header 属性解析

2月前

浏览器 header 属性解析 request head User-AgentAccept:告诉服务端&#xff0c;客户端接收什么类型的响应&#xff0c;** 表示任何类型Accept-Language:客户端

转 -- windows7 C盘空间越来越少?完美解决方案

2月前

win7用到现在&#xff0c;发现C盘空间越来越小。 网上找了一下&#xff0c;有个脚本很管用。原址如下&#xff1a; http:hi.baiduhaohaoxiao2040item510b073d

轻松几步!让你的Windows系统不再占用C盘空间

1月前

是不是经常收到“C盘空间不足”的烦人提示&#xff1f;C盘满了&#xff0c;不仅会影响系统运行速度&#xff0c;还可能导致更新失败或软件崩溃。其实&#xff0c;只需要几步简单设置&#xff0c

Python基础教程第二版 9:魔法方法,属性,迭代器(未完)...

1月前

发表评论

全部评论 0
暂无评论