注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

快乐的机器猫 大桥加加网易分站

要有更宽广的视野和胸怀

 
 
 

日志

 
 

[原创][技术]XML学习笔记(1)------XML 基础  

2009-06-29 16:14:49|  分类: 计算机软件学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

XML 简介
XML 用途
XML 树结构
XML 语法
XML 元素
XML 属性
XML 验证
XML 验证器
XML 浏览器
XML 查看
XML CSS
XML XSLT

 ---------------------------------------------------------------------------------------------------------------

什么是 XML?

  • XML 指可扩展标记语言(EXtensible Markup Language)
  • XML 是一种标记语言,很类似 HTML
  • XML 的设计宗旨是传输数据,而非显示数据
  • XML 标签没有被预定义。您需要自行定义标签。
  • XML 被设计为具有自我描述性。
  • XML 是 W3C 的推荐标准

XML 与 HTML 的主要差异

XML 不是 HTML 的替代。

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

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

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

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

XML 是不作为的。

也许这有点难以理解,但是 XML 不会做任何事情。XML 被设计用来结构化、存储以及传输信息。

下面是 John 写给 George 的便签,存储为 XML:

<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

通过 XML 您可以发明自己的标签

上例中的标签没有在任何 XML 标准中定义过(比如 <to> 和 <from>)。这些标签是由文档的创作者发明的。

这是因为 XML 没有预定义的标签。

在 HTML 中使用的标签(以及 HTML 的结构)是预定义的。HTML 文档只使用在 HTML 标准中定义过的标签(比如 <p> 、<h1> 等等)。

XML 允许创作者定义自己的标签和自己的文档结构。

 

---------------------------------------------------------------------------------

XML 的用途

 

XML 用于创建新的 Internet 语言
很多新的 Internet 语言是通过 XML 创建的:

其中的例子包括:

XHTML - 最新的 HTML 版本
WSDL - 用于描述可用的 web service
WAP 和 WML - 用于手持设备的标记语言
RSS - 用于 RSS feed 的语言
RDF 和 OWL - 用于描述资源和本体
SMIL - 用于描述针针对 web 的多媒体

--------------------------------------------------------------------------------------------

XML 树结构

 <bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>

--------------------------------------------------------------------------------------------

 XML 语法

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

XML 标签对大小写敏感

XML 必须正确地嵌套

XML 文档必须有根元素
<root>
  <child>
    <subchild>.....</subchild>
  </child>
</root>

XML 的属性值须加引号
<note date="08/08/2008">
<to>George</to>
<from>John</from>
</note>

实体引用
<message>if salary &lt; 1000 then</message>
在 XML 中,有 5 个预定义的实体引用:
&lt; < 小于
&gt; > 大于
&amp; & 和号
&apos; ' 单引号
&quot; " 引号

XML 中的注释(同HTML的方式)

在 XML 中,空格会被保留

XML 以 LF 存储换行

--------------------------------------------------------------------------------------------

 XML 元素

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

XML 元素是可扩展,以携带更多的信息, X就是eXtended扩展的意思嘛

例如原来有这样一个XML

<note>
<to>George</to>
<from>John</from>
<body>Don't forget the meeting!</body>
</note>

之后要扩展,成了
<note>
<date>2008-08-08</date>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

在扩展之后,并不影响之前的标记,所以以前以这个XML为操作的应用程序仍然可以兼容

 

-----------------------------------------------------------------------------

 XML属性

 

XML的属性 和 元素是2个概念,以下面的例子来说明:

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

 上面例子中, 蓝色的sex="female" 是属性,而<sex>female</sex> 是元素, 推荐更多使用元素而不是属性

 

在有的情况下, 是建议用属性的,例如下面的ID:

<messages>
  <note id="501">
    <to>George</to>
    <from>John</from>
    <heading>Reminder</heading>
    <body>Don't forget the meeting!</body>
  </note>
  <note id="502">
    <to>John</to>
    <from>George</from>
    <heading>Re: Reminder</heading>
    <body>I will not</body>
  </note>
</messages>

在此我们极力向您传递的理念是:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素

-----------------------------------------------------------------------------

 XML 验证

 XML应该有正确的语法,也应该有一些东西来对格式做限定,

DTD是一种形式, 即"文档类型定义"

另一种是Schema 可以代替DTD

-----------------------------------------------------------------------------

 XML 验证器

一方面,有在浏览器运行的脚本框,可以放入其中做验证,另一方面内置在XML中的DTD也可以验证,如下代码

 

<?xml version="1.0" ?>
<!DOCTYPE note [
  <!ELEMENT note (to,from,heading,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]>
<note>
<to>George</to>
<from>John</Ffrom>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

 

亲自试过,IE和Firefox都支持DTD, 这样如果以上代码出现错误,我们看到</from>被错写成了</Ffrom>

在IE下是这样显示错误:

[原创][技术]XML学习笔记(1)------XML 基础 - huasoft - 快乐的机器猫 小桥加加网易分站

 

而在Firefox下这样显示:

 [原创][技术]XML学习笔记(1)------XML 基础 - huasoft - 快乐的机器猫 小桥加加网易分站

-----------------------------------------------------------------------------

XML 浏览器

 关于各浏览器对XML的支持情况,似乎Firefox和IE都还不错。

随着发展,相信会不断支持更多的特性

-----------------------------------------------------------------------------

XML 查看

 是的,在浏览器如IE或Firefox中,是可以查看XML的:

<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE note [
  <!ELEMENT note (to,from,heading,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]>
<note>

<to>lily</to>
<from>张兰</from>
<heading>友情提醒</heading>
<body>别忘了今天上午10点的会议</body>

<to>王雅静</to>
<from>赵小刚</from>
<heading>很重要的事</heading>
<body>去财务还款</body>

</note>

在IE中查看结果如下:

[原创][技术]XML学习笔记(1)------XML 基础 - huasoft - 快乐的机器猫 小桥加加网易分站

在Firefox中查看结果是这样:

[原创][技术]XML学习笔记(1)------XML 基础 - huasoft - 快乐的机器猫 小桥加加网易分站

-----------------------------------------------------------------------------

 

 XML CSS

是的,支持CSS.比如我们建一个XML ,内部有这样的文字:

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

 

再建一个CSS文件(cd_catalog.css):

CATALOG
{
background-color: #ffffff;
width: 100%;
}
CD
{
display: block;
margin-bottom: 30pt;
margin-left: 0;
}
TITLE
{
color: #FF0000;
font-size: 20pt;
}
ARTIST
{
color: #0000FF;
font-size: 20pt;
}
COUNTRY,PRICE,YEAR,COMPANY
{
display: block;
color: #000000;
margin-left: 20pt;
}

 显示效果:

[原创][技术]XML学习笔记(1)------XML 基础 - huasoft - 快乐的机器猫 小桥加加网易分站

-----------------------------------------------------------------------------

XML XSLT

 XSLT 是首选的 XML 样式表语言

 

-----------------------------------------------------------------------------

 

 

  评论这张
 
阅读(220)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017