XML快速学习(3)
四. XML语法
(一)XML语法规则
规则1:必须有XML声明语句
规则2:是否有DTD文件
规则3:注意你的大小写:在 XML文档中,大小写是有区别的。
规则4:给属性值加引号:和HTML不一样
规则5:所有的标识必须有相应的结束标识
规则6:所有的空标识也必须被关闭
例如:
br应写为br /;
META name="keywords" content="XML, SGML, HTML"应写为META name="keywords" content="XML, SGML, HTML" /;
IMG src= "cool.gif"应写为IMG src= "cool.gif" /
(二)元素的语法
1.名称中可以包含字母、数字以及其它字母;
2.名称不能以数字或"_" (下划线)开头;
3.名称不能以字母 xml(或 XML 或 Xml ..)开头
4.名称中不能包含空格
5.名称中间不能包含":"(冒号)
(三)注释的语法
!-- 这里是注释信息 --
(四)CDATA的语法
CDATA全称character data,翻译为字符数据。我们在写XML文档时,有时需要显示字母,数字和其它的符号本身,比如"",而在XML中,这些字符已经有特殊的含义,这就需要用到CDATA语法。语法格式如下:
![CDATA[这里放置需要显示的字符]]
例如:
![CDATA[AUTHOR sex="female"ajie/AUTHOR]]
在页面上显示的内容将是"AUTHOR sex="female"ajie/AUTHOR"
(五)Namespaces的语法
当我们在一个XML文档中使用他人的或者多个DTD文件时,标识名可能相同但表示的含义不同。这个时候需要使用Namespaces来区别。
Namespaces需要在XML文档的开头部分声明,声明的语法如下:
document xmlns:yourname='URL'
举例:
document xmlns:zhuozi='http://www.zhuozi.com'
然后在后面的标识中使用定义好的名字空间:
zhuozi:tablewood table/table
注意的是:设置URL并不是说这个标识真的要到那个网址去读取,仅仅作为一种区别的标志而已。
(六)entity的语法
entity的作用类似word中的"宏",也可以理解为DW中的摸板,你可以预先定义一个entity,然后在一个文档中多次调用,或者在多个文档中调用同一个entity。
entity的定义语法为:
!DOCTYPE filename [
!ENTITY entity-name "entity-content"
]
举例:
?xml version="1.0" encoding="GB2312"?
!DOCTYPE copyright [
!ENTITY copyright "Copyright 2001, Ajie. All rights reserved"
]
myfile
titleXML/title
authorajie/author
emailajie@aolhoo.com/email
date20010115/date
©right;
/myfile
(七)DTD语法
1、设置元素
元素是XML文档的基本组成部分。你要在DTD中定义一个元素,然后在XML文档中使用。元素的定义语法为:!ELEMENT DESCRIPTION (#PCDATA, DEFINITION)*
说明:
"!ELEMENT" 是元素的声明,说明你要定义的是一个元素;
声明后面的"DESCRIPTION",是元素的名称;
"(#PCDATA, DEFINITION)*"则是该元素的使用规则。规则定义了元素可以包含的内容以及相互的关系。
2、元素规则表
总结前四章学习的内容,写一个包含DTD,XML,以及Script的简单实例,便于读者理解
a.将下面文件存为myfile.dtd
!ELEMENT myfile (title, author)
!ELEMENT title (#PCDATA)
!ELEMENT author (#PCDATA)
b.然后建立XML文档myfile.xml:
?xml version="1.0" encoding="GB2312"?
!DOCTYPE myfile SYSTEM "myfile.dtd"
myfile
titleXML轻松学习手册/title
authorajie/author
/myfile
c.建立HTML文档myfile.html
html
head
script language="javascript" for="window" event="onload"
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("myfile.xml");
nodes = xmlDoc.documentElement.childNodes;
title.innerText = nodes.item(0).text;
author.innerText = nodes.item(1).text;
/script
title在HTML中调用XML数据/title
/head
body bgcolor="#FFFFFF"
b标题: /b
span id="title"/spanbr
b作者: /b
span id="author"/spanbr
/body
/html
d.用IE5.0以上浏览器打开myfile.html就可以看到效果。