XML
语法
▪ XML Declaration
或者称为prolog, version是必需的,encoding不是必须的,如果省略的话,墨认为Unicode,以UTF-8/16编码,例子:
<? xml version=”1.0” encoding=”GB2312” ?>
▪ Tags
包含了element和attribute,顶层的元素称为root element
▪ Comment
使用<!--……-->
▪ XML parser 解析XML文档,供下游程序使用
▪ 大小写敏感
▪ CDATA区
以
<![CDATA[为起始,以
]]>为结尾。CDATA区中的信息,会全部交给下游程序,包括空白和换行。
▪ PI
全称:Process Instruction, 指的是以
<?开头,
?>结尾的标注,(declaration 不算)。是用来传递信息给parser下游程序的。例如:
<? xml-stylesheet href=”style.css” type=”text/css”?>
xml-stylesheet称为PI的target,告诉浏览器去抓取一个叫style.css的CSS稳当。
名字空间
▪ Name space
标示代码的范围,避免名称冲突,
▪ URL,URN,URI
URI: 用于name space, 全名为universal resource identifier, 参见RFC-2396, 范围很广,泛指以字符串标示的网络资源
URL: 全名为universal resource locator,指标有通信协议的字符串。
URN: 全名为universal resource name, 用来表示持久地、有专门机构负责的资源,如图书馆的图书总目等等。
DTD
▪ 类别Declaration (ELEMENT)
例子:<!ELEMENT 名称 (#PCDATA)>
即ELEMENT之后为元素名称,再之后为它的内容模型。
#PCDATA是XML的预设标记,表示Parsable Character Data, 就是说其中的内容可以让parser去解读,所以对于XML的保留字符<、>、&,需要用<、>、& 来代替。
▪ 量词Quantifier
最常用是:
”?” :表示零个或一个
”*” :表示0~无限多个
”+” :表示至少要有一个
▪ 属性类别Declaration
例子:<!ATTLIST 售价
货币单位 ( 新台币 | 人民币 | 港币 | 美元 ) ‘美元’>
最重要的是”货币单位”这行,称为”属性定义”,这需要三个要件:
u 属性名
u 属性类别
u 默认值
▪ 文件的Declaration
使用DTD有两种方式:
n 外接式:
将所有的DTD内容放入一个dtd文档中,使用时,只要加上应用就可以了,例子:
<?xml version=”1.0” encoding=”GB2312”?>
<!DOCTYPE 推荐丛书 SYSTEM “book.dtd”>
n 内嵌式:
将DTD嵌入XML文件中,例如:
<?xml version=”1.0” encoding=”GB2312”?>
<!DOCTYPE 推荐丛书 [
<!ELEMENT 推荐图书 (书籍*)>
……
]>
<推荐丛书>
……