最近打算研究一下XML,这段时间会写XML笔记,不是简单的拷贝。是一些理解!

XML

 

什么是置标语言

超文本置标语言HTMLHyperText Markup Language),HTML的精髓在于“置标”(Markup),“置标”的一个精确定义是:就数据本身的信息对数据进行编码的方法(例:黄色荧光笔把课本上的某些句子加亮,就是将语句置标),所有人都遵循着和你一样的置标标准(难道你见过专门挑那些不重要的课文加亮的人吗?)而在HTML中,标记就是所谓的“标签”(tag)。

一段HTML代码,<center><b>天路信息技术有限公司</b></center>

什么是XML

正象HTML一样,可扩展置标语言XMLExtensible Markup Language)也是一种置标语言。功能要强于HTML,“人”如其名,XML的强大功能来自于“X”。XML并非象HTML那样,提供了一组事先已经定义好了的标签,而是提供了一个标准,利用这个标准,你可以根据实际需要定义自己的新的置标语言,并为你的这个置标语言规定它特有的一套标签。准确的说,XML是一种源置标语言。

 

让我们来考虑一个非常简单的例子。如果我们需要定义一个新的置标语言叫做TCLMLTopDigi Company s Client List Markup Language)——TopDigi公司的客户列表置标语言。

<联系人列表>
<
联系人>
<
姓名>张三</姓名>
<ID>001</ID>
<
公司>A公司</公司>
<EMAIL>zhang@aaa.com</EMAIL>
<
电话>(010)62345678</电话>
<
地址>
<
街道>五街1234</街道>
<
城市>北京市</城市>
<
省份>北京</省份>
<ZIP>100001</ZIP>
</
地址>
</
联系人>

<
联系人>
<
姓名>李四</姓名>
<ID>002</ID>
<
公司>B公司</公司>
<EMAIL>li@bbb.org</EMAIL>
<
电话>(021)87654321</电话>
<
地址>
<
街道>南京路9876</街道>
<
城市>上海</城市>
<
省份>上海</省份>
<ZIP>200002</ZIP>
</
地址>
</
联系人>
</
联系人列表>

为了让别人读懂这些数据,置标语言中的置标标准还需包括:

  • 置标的语法
  • 每个置标的含义

XML中,置标的语法是通过文件类型定义DTDDocument Type Definition)来描述的。也就是说,我们通过DTD来描述什么是有效的标签,从而进一步定义置标语言的结构。在用XML定义的置标语言中,DTD与数据文件是分离的部分。

tclml.dtd:
<?xml version="1.0" encoding="GB2312"?>

<!ELEMENT
联系人列表 (联系人)*>
<!ELEMENT
联系人 (姓名,ID,公司,EMAIL,电话,地址)>
<!ELEMENT
地址 (街道,城市,省份)>
<!ELEMENT
姓名 (#PCDATA)>
<!ELEMENT ID (#PCDATA)>
<!ELEMENT
公司 (#PCDATA)>
<!ELEMENT EMAIL (#PCDATA)>
<!ELEMENT
电话 (#PCDATA)>
<!ELEMENT
街道 (#PCDATA)>
<!ELEMENT
城市 (#PCDATA)>
<!ELEMENT
省份 (#PCDATA)>

为了明确各个标签的意义,XML使用与之相连的样式单(style sheet),由它来向应用程序,比如浏览器,提供如何处理显示的指示说明。一个样式单的具体格式我们在第四章再具体描述,现在我们只需知道,样式单所作的规定可能是这样的:

1.      每当看到一个〈联系人〉标签,用一个〈UL〉标签显示它。同样,〈/联系人〉转换为一个〈/UL〉标签。

2.      所有的〈姓名〉标签被转换为〈LI〉标签加以显示。同样,〈/姓名〉转换?LI〉标签。

3.      所有的〈EMAIL〉标签被转换为〈LI〉标签加以显示。同样,〈/EMAIL〉转换为〈/LI〉标签。

这说明我们不但要把三个文件合一,还要制作或购买一个新的应用处理程序。太恐怖了!这些都是值得的。

HTML蕴藏了许多危机

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值