XML标记语法 :
(1)标记的命名规则
作为标记名字的字符串必须满足以下要求:
①名称的开头必须是字母或“_”;
②标记名称中不能有空格;
③名称的字符串只能包含“英文字母”、“数字”、“_”、“-”、“.”等字符。
例如下面的标记就是合法标记:
<Name> <name> <_name> <li_name><li.name>
而下面是非法的标记:
<.name> <li/name> <li%name> <li*name>
(2)标记的使用规则
①必须具有根标记且根标记必须惟一
②开始标记和结束标记需配对使用
③标记不能交错使用
所谓标记的交错使用就是指如下情形的标记使用:
<publisher> <ISBN>7-04-0147688</publisher> </ISBN>
在XML中这种标记的交错使用是非法的。应改成:
<publisher> <ISBN>7-04-014768-8</ISBN> </publisher>
④空标记的使用
所谓空标记指的是标记只有开始没有结束,又叫孤立标记。这种标记有的表示一种格式信息,例如
<hr>
在HTML中代表了一条直线,有的则保存一些数据信息。空标记可写成“<标记名/>”的形式。⑤标记对大小写敏感
在XML中相配对的标记大小写需相同。如程序中出现
</bookinfo>
标记和</BOOKINFO>
标记,则被认为是两个不同的标记,所以</bookinfo></BOOKINFO>
被认为是两个不配对的标记。
XML文档语法和数据结构 :
XML是一种语法要求十分严格的标记语言,因此语法有严格的限制。有关XML的基本语法一共有4条:
(1) 文件的第一条语句必须是有关版本的声明;
(2) 标记的使用必须遵循”标记语法”节中的各规则;
(3) 属性的值必须用双引号括起来;
(4) 特殊字符必须使用XML中特定的编码来表示。
处理指令:
处理指令是包含XML文档中的一些命令性语句,目的是告诉XML处理一些信息或执行一定的动作。
【格式】:
<?……?>
【例如有关版本信息的声明指令】:
<?xml version=”1.0”?>
“<?”和“?>”
:是开始和结束的界定符号;
“xml”
:是处理指令的命令名字;
“version”
:命令中的属性,通常描述处理指令一个特定的细节;
“1.0”
是属性的值,代表了对属性进行的某一方面的设定;
XML的属性:
XML允许为元素设置属性,用来为元素附加一些额外信息,这些信息与元素本身的信息内容有所不同。
对于非空元素,属性的基本使用格式为:
<开始标记 属性名称1=”属性值” 属性名称2=”属性值”…></结束标记>
对于空元素,属性的基本使用格式为:
<空标记 属性名称1=”属性值” 属性名称2=”属性值”…/>
特殊字符的使用:
在XML文档中有些字符是特殊字符,这些字符的特殊之处就在于这些字符在XML标记语言中已经被赋予了特殊的意义。如果现在要求将字符“<”显示在页面上,则需使用定义的特殊编码,特殊字符所对应的编码如下表所示:
& :
&
:每一代表符号的开头字符
>
:>
:标记的结束字符
<
:<
:标记的开始字符
"
:"
:设定属性的值
‘
:'
:设定属性的值
XML文档中的注释:
格式:
<!--
.........
-->
程序中的文字CDATA标记:
CDATA标记的作用:
通知XML语法解析器,该标记中代码包括文字和标记都要当作纯文本来解析,并原封不动的将这段代码传给下一个XML应用程序。
界定该段代码的开始和结束标记为:
<![CDATA[
……
]]>
XML文档的数据结构:
构成:文档头、文档体
文档体:
是指文档中内容信息所在的部分
例如:根标记及其以内的所有元素、脚本等
文档头:
头部通常是一些声明信息或控制信息
例如:处理指令和文档类型定义,其中文档类型定义不是必须的,但合法的XML文档必须具有该部分。
【文档的“体”部是真正的数据信息,“头”部的信息都是为体部的信息服务的。】
代码演示:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE bookinfo [
<!--
<!ELEMENT bookinfo ((title|author)*)>
-->
<!ELEMENT bookinfo ((title,author+,publish,price))>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT publish (publisher,pubdate)>
<!ELEMENT publisher (#PCDATA)>
<!ELEMENT pubdate (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ATTLIST bookinfo isbn CDATA "0000000000">
]>
<bookinfo isbn="7-04-014768-8">
<title>计算机导论</title>
<author>Jack</author>
<author>张三</author>
<publish>
<publisher>高等教育出版社</publisher>
<pubdate>2004.6</pubdate>
</publish>
<price>19.7</price>
</bookinfo>