XML学习

n XML (EXtensible Markup Language)可扩展标记语言, 是一种标记语言,很类似 HTML

n XML被设计用来传输和存储数据,而非显示数据。

n XML 标签没有被预定义。您需要自行定义标签。

n XML 被设计为具有自我描述性

XML 仅仅是纯文本

n XML 没什么特别的。它仅仅是纯文本而已。有能力处理纯文本的软件都可以处理 XML。

n 不过,能够读懂 XML 的应用程序可以有针对性地处理 XML 的标签。标签的功能性意义依赖于应用程序的特性。

n XML 是对 HTML 的补充。

n XML 不是对 HTML 的替代,理解这一点很重要。在大多数 web 应用程序中,XML 用于传输数据,而 HTML 用于格式化并显示数据。

n 对 XML 的最好的描述是:

XML 是独立于软件和硬件的信息传输工具。

n XML 不是 HTML 的替代。

n XML 和 HTML 为不同的目的而设计:

n XML 被设计为传输和存储数据,其焦点是数据的内容。

n HTML 被设计用来显示数据,其焦点是数据的外观。

n HTML 旨在显示信息,而 XML 旨在传输信息。

XML 文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。

n XML 使用了简单的具有自我描述性的语法:

<?xml version="1.0" encoding="ISO-8859-1"?> <note>

<to>George</to>

<from>John</from>

<heading>Reminder</heading>

<body>Don't forget the meeting!</body> </note>

n XML 文档必须包含根元素。该元素是所有其他元素的父元素。

n XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。

XML 语法规则

n 所有 XML 元素都须有关闭标签

注:XML 声明没有关闭标签。这不是错误。声明不属于XML本身的组成部分。它不是 XML 元素,也不需要关闭标签。

n XML 标签对大小写敏感

Eg. 标签 <Letter> 与标签 <letter> 是不同的。

注:必须使用相同的大小写来编写打开标签和关闭标签:

Eg. <Message>这是错误的。</message>

<message>这是正确的。</message>

n XML 必须正确地嵌套

Eg. <b><i>This text is bold and italic</i></b>

正确嵌套的意思是:由于 <i> 元素是在 <b> 元素内打开的,那么 它必须在 <b> 元素内关闭。

n XML 文档必须有根元素

XML 文档必须有一个元素是所有其他元素的父元素。该元素称为根元素。

<root>

<child>

<subchild>.....</subchild>

</child>

</root>

n XML 的属性值须加引号

n 实体引用

Eg. <message>if salary < 1000 then</message>

发生错误,因为解析器会把它当作新元素的开始。为了避免错误,

用实体引用来代替 "<" 字符:<message>if salary &lt; 1000 then</message>

在 XML 中,有 5 个预定义的实体引用:

&lt; < 小于 &gt; > 大于

&amp; & 和号 &apos; ‘ 单引号

&quot; “ 引号

注:在 XML 中,只有字符 “<” 和 “&” 确实是非法的。大于号是合法的,

但是用实体引用来代替它是一个好习惯。

n XML 中的注释

在 XML 中编写注释的语法与 HTML 的语法很相似:<!-- This is a comment -->

n 在 XML 中,空格会被保留

n XML 以 LF 存储换行

n XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。

n 元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。

n XML 元素可以在开始标签中包含属性,类似 HTML。

n 属性 (Attribute) 提供关于元素的额外信息。

n 属性通常提供不属于数据组成部分的信息。在下面的例子中,文件类型与数据无关,但是对需要处理这个元素的软件来说却很重要:<file type="gif">computer.gif</file>

n 属性值必须被引号包围,不过单引号和双引号均可使用。

n 比如一个人的性别,person 标签可以这样写:<person sex="female">

n 或者这样也可以:<person sex='female'>

n 注释:如果属性值本身包含双引号,那么有必要使用单引号包围它,就像这个例子:

<gangster name='George "Shotgun" Ziegler'>

n 或者可以使用实体引用:

<gangster name="George &quot;Shotgun&quot; Ziegler">

避免 XML 属性?

n 因使用属性而引起的一些问题:

n 属性无法包含多重的值(元素可以)

n 属性无法描述树结构(元素可以)

n 属性不易扩展(为未来的变化)

n 属性难以阅读和维护

请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息。

命名冲突

包含带有不同内容和定义的 <table> 元素,就会发生命名冲突。

XML 解析器无法确定如何处理这类冲突。

现在,命名冲突不存在了,这是由于都使用了不同的名称来命名它们的 <table> 元素 (<h:table> 和 <f:table>)。

通过使用前缀,我们创建了两种不同类型的 <table> 元素。

使用命名空间(Namespaces)

XML Namespace (xmlns) 属性

n XML 命名空间属性被放置于某个元素的开始标签之中,并使用以下的语法:

n xmlns:namespace-prefix="namespaceURI"

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

n 注释:用于标示命名空间的地址不会被解析器用于查找信息。其惟一的作用是赋予命名空间一个惟一的名称。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值