XML


  • 简介

XML,可扩展标记语言,Extensible Markup Language

XML的设计宗旨是传输数据,而非显示数据。XML被设计用来结构化,存储以及传输消息。XML的标签没有预定义,需要自行定义标签,被设计为具有自我描述性。

XML可以使用CSS来进行显示。(不是常用的方法,W3C推荐使用XSLT

<?xml-stylesheet type="text/css" href="cd_catalog.css"?>


  • 用途

XML应用于web开发的许多方面,常用于简化数据的存储和共享。

1. XML把数据从HTML中分离,XML用于存储数据,HTML用于页面布局和显示数据;

2. XML简化数据共享,以纯文本格式存储,提供了独立于软件和硬件的数据存储方法;

3. 简化数据传输,在不兼容的系统之间轻松交换数据;

4. 简化平台的变更,更容易扩展或升级到新的操作系统、应用程序或浏览器;

5. 使数据更有用,独立于硬件、软件以及应用程序;

6. 用于创建新的Internet语言,如WSDLRSSWAPRDF等;

  • XML语法规则

1. 所有XML元素必须有关闭标签;

2. XML标签对大小写敏感;

3. XML必须正确的嵌套;

4. XML文档必须有根元素;

5. 属性值须加引号;

6. 实体引用;

一些字符拥有特殊的意义。例如,“<”不能放在XML元素中,可以用实体引用来&lt;代替。XML5个预定义的实体引用:


&lt;

<

小于

&gt;

>

大于

&amp;

&

和号

&apos;

'

单引号

&quot;

"

引号


7. XML中的注释

<!--This is a comment-->

8. XML中的空格会被保留

9. XMLLF存储换行

  • XML元素

1. XML命名规则:

名称可以包含字母,数字以及其他字符;

名称不能以数字或者标点符号开始;

名称不能以字符“xml”开始;

名称不能包含空格;

尽量避免”-”,”.”,”:”

2. XML元素是可扩展的

可以在不中断应用程序的情况下进行扩展。

  • XML属性

XML属性必须加引号,属性值中的双引号可使用单引号包围或者实体引用。

  • 属性VS元素

例子:

<person sex="female">   <firstname>Anna</firstname>   <lastname>Smith</lastname> </person>  <person>   <sex>female</sex>   <firstname>Anna</firstname>   <lastname>Smith</lastname> </person>

没有规矩告诉什么时候使用属性,什么时候使用子元素。建议XML中,尽量避免使用属性,尽量用元素来描述数据,用属性提供与数据无关的信息;元数据应当存储为属性,例如元素id

  • XML验证

拥有正确语法的XML叫做“形式良好”的XML,通过DTD验证的XML是“合法”的XML

1. 形式良好的XML文档

XML 文档必须有根元素 ;

XML 文档必须有关闭标签 ;

XML 标签对大小写敏感 ;

XML 元素必须被正确的嵌套;

XML 属性必须加引号 ;

2. 验证XML

<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE note SYSTEM "Note.dtd">

DOCTYPE声明是对外部DTD文件的引用。

3. XML DTDXML Schema


  • XMLHttpRequest对象

XMLHttpRequest对象用于在后台与服务器交换数据。

  • XML解析器

解析器把XML转换为XML DOM对象,可通过JavaScript操作。

  • XML DOM

DOMDocument Object Model,文档对象模型),定义了访问和操作文档的标准方法。

  • XML命名空间

当两个不同的文档使用相同的元素名时,就会发生命名冲突,而XML解析器无法确定如何处理这类冲突。

1. 使用前缀来避免命名冲突;

此文档带有某个表格中的信息:

<h:table>    <h:tr>    <h:td>Apples</h:td>    <h:td>Bananas</h:td>    </h:tr> </h:table>

XML 文档携带着有关一件家具的信息:

<f:table>    <f:name>African Coffee Table</f:name>    <f:width>80</f:width>    <f:length>120</f:length> </f:table>

2.  使用命名空间

这个 XML 文档携带着某个表格中的信息:

<h:table xmlns:h="http://www.w3.org/TR/html4/">    <h:tr>    <h:td>Apples</h:td>    <h:td>Bananas</h:td>    </h:tr> </h:table>

XML 文档携带着有关一件家具的信息:

<f:table xmlns:f="http://www.w3school.com.cn/furniture">    <f:name>African Coffee Table</f:name>    <f:width>80</f:width>    <f:length>120</f:length> </f:table> 3. xmlns属性  被放置在元素的开始标签中,并使用一下语法 xmlns:namespace-prefix="namespaceURI"  当命名空间被定义在元素的开始标签时,所有带有相同前缀的子元素会与同一个命名空间相关联。命名空间中的地址不会被解析器用于查找信息,唯一作用是赋予命名空间一个唯一的名称。不过很多公司常会作为指针来使用命名空间指向实际存在的网页,这个网页包含关于命名空间的信息。 4. 统一资源标识符(URI)  是一串可以标识因特网资源的字符,如URL。 5. 默认的命名空间(Default Namespaces)  为元素定义默认的命名空间可以省去在所有的子元素中使用前缀。  xmlns="namespaceURI"
  • XML CDATA

所有XML文档中的文本都会被解析器解析,除了CDATA区段中的文本。

1. PCDATA

被解析的字符数据;

<name><first>Bill</first><last>Gates</last></name>

被解析为响应的子元素:

<name>    <first>Bill</first>    <last>Gates</last> </name>

2. CDATA

不应由XML解析器进行解析的文本数据。

CDATA部分由“<![CDATA[开始,由”]]>结束;

CDATA部分不能包含字符串”]]>,也不允许嵌套CDATA部分。结尾的”]]>不能包含空格或折行。

  • XML编码

XML文档可以包含非ASCII字符,比如法语。

为了避免错误,需要规定XML编码,或者将XML文档存为Unicode

可能的错误消息:

1. 在文本内容中发现非法字符:如果XML文档中某个字符与编码属性不匹配;

2. 将当前编码切换为不被支持的指定编码;

  • XML注意事项

使用XML时应该尽量避免使用的技术

1. IE-XML数据岛,是嵌入HTML页面中的XML数据;只支持IE,可用JavaScriptXML DOM来解析和显示XML;

2. IE-行为,通过使用CSS样式向XML元素添加行为的方法,只支持IE





转载于:https://my.oschina.net/sayitok/blog/209455

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值