【XML定义】(2)XML标记语法、文档的语法和数据结构

来源:互联网 发布:战舰建模软件 编辑:程序博客网 时间:2024/06/05 16:52

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标记语言中已经被赋予了特殊的意义。如果现在要求将字符“<”显示在页面上,则需使用定义的特殊编码,特殊字符所对应的编码如下表所示:

& :&amp;:每一代表符号的开头字符
>&gt;:标记的结束字符
<&lt;:标记的开始字符
"&quot;:设定属性的值
&apos;:设定属性的值

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>
原创粉丝点击