XML文档结构
一,XML文档结构
XML文档是由一组使用唯一名称标识的实体组成。也是由数据和描述数据的标记组成。
文档的组成部分包括:声明,元素,注释,字符引用和处理命令。
二,创建XML文档
XML声明始终是任何XML文档的第一行。
1,陈述XML声明:为XML文档匹配合适的解析器。
XML声明语法:
<? xml version = "XML版本号" standalone = “no或yes” encoding = “UTF-8或UTF-16或GB2321或GBK”?>
<?和?>:表处理指令的开始和结束;
version :XML版本,默认1.0;
standalone:是否使用外部声明;
encoding:字符编码;
2,创建根元素:有且只有一个,用于描述文档的功能。
语法:
<? xml version = "1.0" ?>
<根元素名>
根元素内容
</根元素名>
3,创建XML代码:创建自定义元素(elements)和属性(attributes)。
1,元素是XML内容的基本单元,包含标签(tags)和内容。
2,所有的XML元素必须合理包含嵌套。
3,XML标记都是大小写敏感的。
4,标记可以指定3种含义:结构的,语义的或样式的。
结构指定文档中不同元素之间关系;
语义将单个元素与文档之外的现实世界联系;
样式指定如何现实一个元素;
5,属性值必须使用引号""
语法:
<标签名 属性名 = “属性值”>
数据
</标签名>
三,XML中的注释
语法:
<!-- 这是一个注释 -->
1,注释文本不应包含“-”。
2,不能在标签内使用,可用于标签集。
3,不能放在实体声明中,也不能放在XML声明之前。
四,处理指命
为使用该XML文档的应用提供一则信息。
格式:
<? xml:应用名 指令信息 ?>
位置在在XML声明和根元素之间
在将一个样式表附加到XML文档中时,需要提供一个处理指令:
<?xml version ="1.0" endcoding="GB2321"?>
<?xml : stylesheet type = "text/xsl" href = "top.css"?>
<根元素>数据</根元素>
五,标签之间的字符数据分类
1,PCDATA
表示已解析的字符数据。
2,CDATA
表示不通过解析器parsing进行解析的文本。便于包含特殊字符。
格式:
<根元素>
<![CDATA[
<标记1>
<子标记1>#$%特殊字符</子标记1>
<子标记2>$%^特殊字符</子标记2>
.....
</标记1>
]]>
<标记2>
....
</标记2>
</根元素>
注意:不可写为<![Cdata[ 或 <![Cdata[
六,XML 对空白和换行的处理
1,空白部分不会被解析器自动删除。
2,新行总是被标识为 LF(Line Feed,换行)。
在Windows应用程序中,文本中的新行通常标识为 CR, LF (carriage return, line feed,回车,换行)。
在Unix应用程序中,新行通常标识为 LF。还有一些应用程序只使用CR来表示一个新行。
七,实体
1,实体是XML的存储单元,是用于定义常见文本的快捷方式的变量,代替字符数据。
2,内部实体:仅存于声明的文档中;
外部实体:使用标识符指向文档外的存储单元;
系统(SYSTEM)外部实体:引用本地计算机或网络;
公共(PUBLIC)外部实体:引用公共计算机或网络;
3,实体按在文档出现位置分为:
①,一般实体:任何位置
内部实体:
<! ENTITY 实体名 "替换内容">
外部实体:
<!ENTITY 实体名 SYSTEM "test.txt(替换文件名)">
<!ENTITY 实体名 PUBLIC "test.txt(替换文件名)">
②,参数实体:DTD中
不能在文档中使用,只能在DTD中使用。
<! ENTITY % 实体名 "替换内容">
4,实体的声明
实体必须在文档DOCTYPE声明中声明
语法:
<?xml version = "1.0" endcoding = "gb2321"?>
<!DOCTYPE DOCTYPE名[
实体声明
....
]>
<根元素>
</根元素>
5,实体的引用:
①,一般实体:
引用前必须声明该实体,可以在属性中引用内部实体。
语法:
&实体名;
例子:
...
<! ENTITY name "张三">
...
<MSG>
&name;
<BODY>
你好!
</BODY>
<FIRST>
&name;
</FIRST>
</MSG>
②,参数实体:
语法:
%实体名;
八,XML文档规范
1,所有XML文档至少有一个元素。
2,XML标签区分大小写。
3,所有的XML文档标签必须有一个结束标记
4,正确嵌套标签。
5,标签命名规则:字符 下划线 冒号开头,由字符,数字,句号,冒号,下划线,连接符(-)组合,不能有空格,不以保留字开头。
6,属性不能重复,值用引号分开。名字规则和标签相同。
7,应验证文档。
等