初识xml

来源:互联网 发布:师洋的淘宝店地址 编辑:程序博客网 时间:2024/05/21 08:42

网上对xml的用途争议颇大。xml不能代替html,他的诞生也不是为了替代html 这本身就是个争议了,有专家提出了一大堆理论,也有牛人发表了使用心得,请参考xml给我们带来了什么?

1、初步认识xml

xml和html的对比

(1)使用有意义的标记

html只是进行了数据格式化,,以便提供给浏览器读取,但不能传达数据的语义。而xml标记却能提供语义理解功能

(2)数据的语义与显示方式分开
html定义了数据如何显示,但没有定义每个元素表示什么内容。因此如果获取了html格式的数据,可以立即显示它,但要对数据进行整理和其他操作就非常困难。而xml描述数据内容的语言,本身不决定数据该如何显示,数据的显示由xsl决定.
(3)可自定义的标记
html标记各类有限不能随意添加,而xml 可由用户按需要添加。

(4)严格的语法控制
一直有人说html的语法规则比较多元化,比较松散,对网页编写者来说,比较方便,但对于机器来说,语言的语法越松散,处理起来就越困难,对于传统的计算机来说,还有能力兼容松散语法,但对于许多其他设备,比如手机,难度就比较大。xml有严格的语法要求,文件格式相对紧凑,比较容易被程序处理
xml和xsl
xml
好吧,如果把xml和xsl分离了,那我就只能对xml定位为一个存储数据,交流数据的数据类型了。我们来看一个简单的xml的例子
<?xml version="1.0" ecoding="utf-8"?>//xml声名    <!DOCTYPE student SYSTEM "student.dtd">//文档规则说明   <!--student context--><student>  //根元素,只能有一个                    <name>               //student的子元素,它里面可以嵌套其他元素    <first>e</first>       //里面的“e”是个字符串,是first元素的值    <middle>q</middle>    <last>yun</last> </name>                    //name元素的结束标志  <sex>boy</sex>  <age>22</age>  <address type="office">     //type是对address这个元素的属性声音    <street>earth</street>    <country>china</country>  </address></student>
这个xml就是把一个学生的名字:eqyun,性别:boy,住址:.. 存了起来。就是个复合数据类型嘛

如果你有留意到
<!DOCTYPE student SYSTEM "student.dtd">   
中的"student.dtd",那我就感动了(这么认真看,抱一个~)
DTD
dtd是让xml文件能够成为数据交换标准的保证, 是对xml元素定义的方法,例如以上对student.xml的元素定义 student.dtd
<?xml version="1.0" encoding="utf-8"?>    <!ELEMENT student (name,sex,age,adderss)>   //!ELEMENT 定义了一个元素student ,它里面包含其他元素       <!ELEMENT name (first, middle, last)>            <!ELEMENT first (#PCDATA)>                   //定义了first元素,他的数据类型是#PCDATA            <!ELEMENT middle(#PCDATA)>            <!ELEMENT last(#PCDATA)>        <!ELEMENT sex (#PCDATA)>        <!ELEMENT age(#PCDATA)>        <!ELEMENT address(street,ountry)>            <!ELEMENT address(#PCDATA)>            <!ELEMENT county(#PCDARA)>
dtd也可以在内部定义
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE 文档根元素 [       ....内部dtd内容...]><文档根元素>.......</文档根元素>

DTD的优点:
@使得xml文档保持一致
@DTD可以共享
@DTD提供了对xml语汇的形式化和完整的定义
@每个XML文档都有单个DTD来限制

有了xml和dtd的认识,我们就可以来做个简单的xml了
,


你看,如果不讨论xsl,xml就是一个存储复合数据的文件