xml是什么( 四 )


</地址>
</联系人>
【xml是什么】<联系人>
<姓名>李四</姓名>
<ID>002</ID>
<公司>B公司</公司>
<EMAIL>li@bbborg</EMAIL>
<电话>(021)87654321</电话>
<地址>
<街道>南京路9876号</街道>
<城市>上海</城市>
<省份>上海</省份>
<ZIP>200002</ZIP>
</地址>
</联系人>
</联系人列表>
这一段代码是一个非常简单的XML文件 。看上去它和HTML非常相象,但细心的人会发现这里的标签代表的不再是显示格式,而是对于客户信息数据的语意解释 。
事实上,用XML定义的置标语言可以根据标记描述的侧重点不同分为两大类 。一类偏重于语意描述,正如上面这个例子 。还有一类偏重于显示方式的描述,象现在已经出炉的XHTML、SVG、SMIL,后面我们还会详细讲解 。值得一提的是 , 这里对于显示方式的描述不仅限于对文本的描述 , 还可以包括矢量图形、图象、声音 。比如 , 一个形如〈EMPHASIZE〉的标签在描述文本时可能是要求将文本加粗,而在描述声音时则要求将音量加大 。
不过,正如我们上节所述,仅仅将数据置标还不够 。为了让别人读懂这些数据,置标语言中的置标标准还需包括:
置标的语法
每个置标的含义
换句话说 , 如果想让计算机应用程序读懂并能处理这段数据,它还必须知道什么是一个有效的置标(如标签) , 如何处理一个有效的置标 。具体地说,Netscape浏览器如何知道怎样显示上面的这段XML文件?标签〈电话〉是什么含义?它究竟是不是一个合法的标签?它又应该以什么方式表现?因此,我们的置标语言必须能够告诉应用程序它所采用的置标的语法,以便于应用程序对其处理 。
在XML中,置标的语法是通过文件类型定义DTD(Document Type Definition)来描述的 。也就是说,我们通过DTD来描述什么是有效的标签,从而进一步定义置标语言的结构 。在用XML定义的置标语言中 , DTD与数据文件是分离的部分 。第三章我们将详细讨论DTD的定义方法 。这里我们先给出关于上例的DTD描述,让大家先睹为快:
fclmldtd:
<xml version="10" encoding="GB2312">
<!ELEMENT 联系人列表 (联系人)>
<!ELEMENT 联系人 (姓名,ID,公司,EMAIL,电话,地址)>
<!ELEMENT 地址 (街道,城市,省份)>
<!ELEMENT 姓名 (#PCDATA)>
<!ELEMENT ID (#PCDATA)>
<!ELEMENT 公司 (#PCDATA)>
<!ELEMENT EMAIL (#PCDATA)>
<!ELEMENT 电话 (#PCDATA)>
<!ELEMENT 街道 (#PCDATA)>