XML(eXtensible Markup Language,可扩展标记语言)多用于数据交换和数据存储的一种多用途文本格式语言。XML是由万维网作为SGML的一种代替品开发的。它的语法和HTML相似,不过XML是一种用于语言分析的语言,他并没有要求专门的标记符号、属性或条目。
“GB2312“ standalone=“yes”?>
stylesheet type=“text/xsl”href=“mystyle.xsl”?>
<联系人列表>
<联系人>
<姓名>张三姓名>
<公司>A公司公司>
<电话>(010)62345678电话>
<地址>
<街道>五街1234号街道>
<城市>北京市城市>
<省份>北京省份>
地址>
联系人>
联系人列表>
上面的就是一个经典的XML文档。一个XML文档基本包含&#xff1a;XML声明、处理指令、注释、XML元素等等。
1、MXL的声明&#xff1a;
通知处理软件这是一个XML文档&#xff0c;并通知XML的版本号、字符编码、是否为独立文档。
XML声明由“”结束。XML的声明中必须要指明”version”的属性值&#xff0c;同时&#xff0c;声明中还有两个可选的属性&#xff0c;分别是”enconding“和”standalone”。
一个最简单的XML声明&#xff1a;
一个完整的XML声明&#xff1a;
顺序千万不能弄错了。
版本属性&#xff08;version&#xff09;:他必须在属性类表中排第一位&#xff0c;通常为1.0.
字符编码&#xff08;enconding&#xff09;&#xff1a;常见的字符编码有&#xff1a;GB2312&#xff0c;BIG5&#xff0c;UTF—8.
独立文档属性&#xff08;standalone&#xff09;&#xff1a;yes为没有&#xff0c;no表示有
2、处理指令&#xff1a;
处理指令&#xff08;Process Instruction,简称PI&#xff09;&#xff0c;其格式为&#xff1a;&#xff0c;如&#xff1a;
该处理指令來指定与XML文件配套使用的样式单的类型及文件名。
3、注释&#xff1a;XML注释以结束。注释不要在文档的第一行或标记中&#xff0c;不能嵌套注释。
4、元素&#xff1a;
1&#xff09;、标记是”<”和”>”之间的文本。标记是以字母或下划线开始的字符串。”< />”为结束标记。
2&#xff09;、元素包括开始标记、结束标记和二者之间的所有内容。元素中还可以有子元素。形式&#xff1a;
<标记>数据结束标记>。
空元素&#xff1a;<标记>标记>或 <标记 />
3&#xff09;、属性&#xff1a;是一个元素的开始标记中的名称&#61;值对。一个元素可以有多个属性。例如&#xff1a;
例&#xff1a;
例&#xff1a;
<地址>
<街道>前进大街2699号街道>
<城市 邮编&#61;“130012”>长春城市>
<省份>吉林省份>
地址>
4&#xff09;根元素&#xff1a;XML文档必须包含在一个单一元素中&#xff0c;这个单一元素称为根元素。
示例1&#xff1a;正确的XML示例&#xff1a;
示例2&#xff1a;错误的XML示例
5&#xff09;XML元素不能交叉重叠&#xff1a;子元素的开始标记必须在父元素开始标记之后&#xff0c;子元素的结束标记必须在父元素的结束标记之前。
I really
love XML.
I really
love
XML.
6&#xff09;、结束标记是必须的&#xff0c;不能省去。
Yadayadayada...
Yadayadayada...
...
7)、XML严格区分大小写的。
在 HTML 中&#xff0c;
和 是相同的&#xff1b;但是在XML 中&#xff0c;它们是不同的。
8&#xff09;、属性必须有用引号括起来的值&#xff0c;可以是双引号&#xff0c;也可以是是单引号&#xff0c;但是必须配对。
9&#xff09;、特殊实体&#xff1a;<、>、&、’、”是XML的保留字&#xff0c;要在XML中使用这些字符&#xff0c;就必须使用如下的特殊实体&#xff1a;
特殊实体 | 保留字符 |
&it | < |
> | > |
" | “ |
&apos | ‘ |
& | & |
10)、CDATA&#xff1a;在此标记下&#xff0c;所有的标记、XML的保留字都会被忽视&#xff0c;而被XML处理程序当成字符数据看待。CDATA形式&#xff1a;
11&#xff09;实体&#xff1a;是XML中用来指代其他复杂结构的机制。
实体声明&#xff1a;实体的声明应该放在XML声明之后&#xff0c;XML根元素之前。这样一来&#xff0c;XML文件就变为下面的形式&#xff1a;
<文件根元素名>
具体数据内容
文件根元素名>
12&#xff09;名称空间&#xff1a;解决命名重复性问题。
XML是一种元标记语言&#xff0c;允许用户定义自己的标记&#xff0c;因此&#xff0c;很可能产生名字重复的情况。为了解决这个问题&#xff0c;W3C在1999年1月颁布了名称空间&#xff08;NameSpace&#xff09;标准。
名称空间是用保留属性来声明。例子里的头一条语句中&#xff0c;以“xmlns:”为前缀的两个属性&#xff0c;就是名称空间的声明。
<联系人:联系人列表
xmlns:联系人 &#61;"http://jlu.edu.cn/联系人列表.dtd"
xmlns:企业经理 &#61;"http://jlu.edu.cn/企业经理.dtd">
其中&#xff0c;等号前的属性名部分定义了名称空间前缀&#xff0c;如“联系人”和“企业经理”。 等号后的属性值部分定义了名称空间名&#xff0c;如“http://jlu.edu.cn/企业经理.dtd”。名称空间前缀和名称空间名通过名称空间声明联系起来。特别需要指出的是&#xff0c;这个名称空间名并不是一个真实的地址&#xff0c;而只是一个修饰。例如&#xff1a;前述的http://jlu.edu.cn完全可以写作http://jlu.eee.cc。虽然这里并没有jlu.eee.cc这个真实的地址。
名称空间声明有两种方式:直接定义方式和缺省定义方式:
直接定义 xmlns:名称空间前缀 &#61; “名称空间名”
缺省定义 xmlns &#61; “名称空间名”
在遵循名称空间规范的XML文档中&#xff0c;标记不能包含这样的两个属性:
(1)属性名完全相同&#xff0c;
(2)或属性的本地部分完全相同&#xff0c;并且其前缀被绑定到相同的名称空间名。
但是&#xff0c;属性中使用缺省名称空间与元素有一点小小的区别:缺省名称空间不直接应用到属性。
注意事项&#xff1a;
在编写XML文档时必须严格遵守XML的基本规定。这样的XML文档被称为格式良好的XML文档。格式良好的XML文档应该满足以下几个主要条件&#xff1a;