XML文档使用的是自描述的和简单的语法,一个
XML文档最基本的构成包括:声明,处理指令(可选)和元素。以下是一个简单的
XML文档:
一。文档的声明:
XML标记说明它是一个 XML 文档,后面两个属性值表明了它的版本号和编码标准,standalone取yes表明该文件未引明其他外部 XML文件。
二。处理指令
格式:<?处理指令名 处理指令信息 ?> 三。注释:
格式:
1.注释不能出现在 XML声明之前;
2.注释不能出现在标记中;
3.注释中不能出现连续两个连字符,即"--" 如:<!--this is a bad document.--do you know!-->;
4.注释中可包含元素,但元素中不能包含"--"包含的元素解析时被忽略;
5.注释不能嵌套;
四。元素与标记:
所有的 XML元素必须合理包含,且所有的 XML文档必须有一个根元素。如同 HTML一样, XML元素同样也可以拥有属性。 XML元素的属性以名字/值成对的出现。 XML语法规范要求 XML元素属性值必须用引号引着。请看下面的两个例子,第一个是错误的,第二个是正确的。
XML元素是可以扩展的,它们之间有关联, XML元素有简单的命名规则:
1<?XML version ="1.0" encoding ="GB2312" standalone="yes" ?>
2<?XML-stylesheet type="text/xsl" href="yxfqust.xsl" ?>
3<!--以下是一个学生名单-->
4<学生名单>
5 <学生>
6 <学号>2003081205</学号>
7 <姓名>田淋</姓名>
8 <班级>计03.2班</班级>
9 </学生>
10 <学生>
11 <学号>2003081232</学号>
12 <姓名>杨雪锋</姓名>
13 <班级>计03.2班</班级>
14 </学生>
15</学生名单>
第1行是
XML声明,第2行是处理指令,第3行是注释,4到15就是文档的各个元素。(注:
XML标记都是大小写敏感的).
2<?XML-stylesheet type="text/xsl" href="yxfqust.xsl" ?>
3<!--以下是一个学生名单-->
4<学生名单>
5 <学生>
6 <学号>2003081205</学号>
7 <姓名>田淋</姓名>
8 <班级>计03.2班</班级>
9 </学生>
10 <学生>
11 <学号>2003081232</学号>
12 <姓名>杨雪锋</姓名>
13 <班级>计03.2班</班级>
14 </学生>
15</学生名单>
一。文档的声明:
XML标记说明它是一个 XML 文档,后面两个属性值表明了它的版本号和编码标准,standalone取yes表明该文件未引明其他外部 XML文件。
二。处理指令
格式:<?处理指令名 处理指令信息 ?> 三。注释:
格式:
<!--
以下是一个学生名单
-->
注释应注意的问题:
1.注释不能出现在 XML声明之前;
2.注释不能出现在标记中;
3.注释中不能出现连续两个连字符,即"--" 如:<!--this is a bad document.--do you know!-->;
4.注释中可包含元素,但元素中不能包含"--"包含的元素解析时被忽略;
5.注释不能嵌套;
四。元素与标记:
所有的 XML元素必须合理包含,且所有的 XML文档必须有一个根元素。如同 HTML一样, XML元素同样也可以拥有属性。 XML元素的属性以名字/值成对的出现。 XML语法规范要求 XML元素属性值必须用引号引着。请看下面的两个例子,第一个是错误的,第二个是正确的。
<?
XML version="1.0" encoding="ISO-8859-1"
?>
< note date =12/11/2002>
<to > Tove </ to >
< from > Jani </ from >
</ note >
---------------------------
<? XML version="1.0" encoding="ISO-8859-1" ?>
< note date ="12/11/2002" >
< to > Tove </ to >
< from > Jani </ from >
</ note >
格式:<标记 属性名1="值1".......>数据内容
< note date =12/11/2002>
<to > Tove </ to >
< from > Jani </ from >
</ note >
---------------------------
<? XML version="1.0" encoding="ISO-8859-1" ?>
< note date ="12/11/2002" >
< to > Tove </ to >
< from > Jani </ from >
</ note >
XML元素是可以扩展的,它们之间有关联, XML元素有简单的命名规则:
- Names can contain letters, numbers, and other characters (元素的名字可以包含子母,数字和其他字符。)
- Names must not start with a number or punctuation character (元素的名字不能以数字或者标点符号开头。)
- Names must not start with the letters XML (or XML or XML ..) (元素的名字不能以XML(或者XML,XML,XML...)开头。)
- Names cannot contain spaces(元素的名字不能包含空格。)
元素是XML文档的灵魂,它构成了文档的主要内容。XML元素则是由标记来定义的,同时标记分为非空标记和空标记。
1.非空标记格式:
<标记>元素内容 如:< 学号 > 2003081205 </ 学号 >
< 姓名 > 田淋 </ 姓名 >
< 班级 > 计03.2班 </ 班级 >2.空标记格式:
<标记名 属性名="属性值", 属性名="属性值"......> 如:<田淋 学号="2003081205">同时元素也支持合理的嵌套,如上面的文档例子,学生名单与学生就是一层嵌套。嵌套需满足以下规则:
1.所有XML文档都从一个根节点开始,根节点包含了一个根元素;
2.文档内所有其他元素必须包含在根元素中;
3.嵌套在内的为子元素,同一层的互为兄弟元素;
4.子元素还可以包含子元素;
5.包含子元素的元素称为分支,没有子元素的元素称为树叶;
数据既可以存储在子元素中也可以存储在属性中,应尽量使用子元素而避免使用属性。原因如下: - attributes cannot contain multiple values (child elements can) (属性不能包含多个值(子元素可以))
- attributes are not easily expandable (for future changes) (属性不容易扩展)
- attributes cannot describe structures (child elements can) (属性不能够描述结构(子元素可以))
- attributes are more difficult to manipulate by program code (属性很难被程序代码处理)
- attribute values are not easy to test against a Document Type Definition (DTD) - which is used to define the legal elements of an XML document(属性值很难通过DTD进行测试)