【XML】学习笔记第三章-namesapce

简介: 【XML】学习笔记第三章-namesapce

目录

命名空间


命名空间概述

标记中出现了同名不同义的情况,极其容易造成含义混乱。命名空间就是由W3C制定的用于解决这类问题的。

【命名空间的作用】出现标记同名不同义情况时,避免含义混乱

<?xml version="1.0" encoding="UTF-8"?>
<book xmlns:bk="http://www.dlut.edu.cn/xml/book"
      xmlns:au="http://www.dlut.edu.cn/xml/author">
    <bk:name>XML技术及应用</bk:name>
    <author>
        <au:name>唐琳</au:name>
        <age>34</age>
    </author>
</book>

命名空间语法

命名空间的语法格式是: xmlns[:prefix]="命名空间字符串"

xmlns :是XML namespace的缩写即XML命名空间,这个字符串是固定的。

prefix : 表示前缀名称也称为命名空间别名,可以随意指定,通常是一个简短的名字。

注:命名空间别名中不能包括冒号,因为在使用时是采用“命名空间别名:本地标记名”的方式

如果增加冒号就无法区别命名空间别名和本地标记名。

命名空间别名不能使用xml和xmlns。

xml只能用于XML1.0规范定义的xml:space和xml:lang属性

别名xml被定义与名称空间名字http://www.w3.org/XML/1998/namespace绑定

前缀xmlns仅仅用于声明名称空间的绑定,它被定义为与名称空间名字http://www.w3.org/2000/xmlns/绑定。

命名空间的声明

命名空间声明主要包括两种形式:

1.没有前缀限定的命名空间

<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://www.dlut.edu.cn/xml/nonamespace">
    <sub>abc</sub>
</root>

2.有前缀限定的命名空间。

<?xml version="1.0" encoding="UTF-8"?>
<dlut:root xmlns:dlut="http://www.dlut.edu.cn/xml/nonamespace">
    <dlut:sub>abc</dlut:sub>
</dlut:root>

命名空间作用域

命名空间能够作用于声明该命名空间的元素及其子元素中,除非被子元素中其它同别名的命名空间所覆盖

但并不表示作用域内的元素属于该命名空间。

对命名空间的使用

元素对命名空间的使用

虽然在元素中声明了命名空间,命名空间也可以作用于相应的元素,但是并不表示该元素位于所声明的命名空间中。

如果要表示某元素位于某命名空间时,需为该元素指定命名空间。

指定命名空间的语法为:命名空间别名:标记名

属性对命名空间的使用

实际应用中属性很少使用命名空间,但需要读者注意的是如果在属性上没有使用任何命名空间别名,则表示该属性不属于任何命名空间。

注:属性的命名空间是独立的,即无论属性所属的元素属于任何命名空间与属性的命名空间无关。

DTD对命名空间的支持

支持但不推荐使用。但支持太差,就如同不支持一样。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book[
  <!ELEMENT book (bk:name,author)>
  <!ELEMENT bk:name (#PCDATA)>
  <!ELEMENT author (au:name,age)>
  <!ELEMENT au:name (#PCDATA)>
  <!ELEMENT age (#PCDATA)>
  <!ATTLIST book xmlns:bk CDATA #IMPLIED
  xmlns:au CDATA #IMPLIED
  xmln CDATA #IMPLIED>
  <!ATTLIST age xmln  CDATA #IMPLIED>
]>
<book xmlns:bk="http://www.dlut.edu.cn/xml/book"
xmlns:au="http://www.dlut.edu.cn/xml/author"
xmln="http://www.dlut.edu.cn/xml"
>
  <bk:name>XML技术及应用</bk:name>
  <author>
    <au:name>唐琳</au:name>
    <age xmln="">34</age>
  </author>
</book>
相关文章
|
7月前
|
XML 存储 JavaScript
XML 简介及用法详解
XML代表eXtensible Markup Language(可扩展标记语言)。XML是一种与HTML非常相似的标记语言。XML被设计用于存储和传输数据。XML被设计成具有自我描述性。XML不执行任何操作,也许有点难理解,但XML不执行任何操作
146 5
|
XML Java 数据格式
一.Xml建模之入门
一.Xml建模之入门
68 1
|
2月前
|
XML 存储 JavaScript
|
7月前
|
XML 存储 数据格式
xml简介
xml简介
39 0
|
XML 设计模式 数据格式
XML基础入门:关于XML建模
XML基础入门:关于XML建模
46 0
|
XML 存储 数据格式
|
XML 数据格式
XML 简介(下)
XML 简介(下)
XML 简介(下)
|
XML 程序员 数据格式
【XML】学习笔记第四章-schema
【XML】学习笔记第四章-schema
170 0
【XML】学习笔记第四章-schema
|
XML 存储 JSON
XML 教程(一文彻底搞懂XML)
只有启航 才会到达理想的目的地
2872 0
XML 教程(一文彻底搞懂XML)