好记性不如烂笔头61-XML文档结构和属性说明
2015-03-12 10:26
519 查看
XML我们使用的非常多,简单的XML文档结构大家也知道,属性呢,好像也马马虎虎都知道,但是在进一步了解XML的时候,发现自己了解的还是不够,把这些资料整理下。
以下是代码片段:
以下是代码片段:
整行统称为元素,其中为标签,XML是可扩展标记语言是字符数据
实体
在XML中出现以上字符的,均需要转义才能通过。
当满足以下条件时,是为格式良好的XML文档:
至少需要一个元素
XML标签区分大小写
应正确使用结束标签
正确的嵌套
应使用合法标签:标签必须以一个字母,下划线,或冒号开始,后面可以跟字母,数字,句号,冒号,下划线,连字符的组合。但不能有空格。也不应以XML开头,因为XML是保留字。
标记名称长度
应定义有效属性
应验证文档
在XML中,所有的值都被被为字符串。
1、 XML声明
xml文档是由一组使用唯一名称标识的实体组成的。始终以一个声明开始,这个声明指定该文档遵循XML1.0的规范。XML也有一种逻辑结构,在逻辑上,文档的组成成部分包括声明,元素,注释,字符引用和处理指令。以下是代码片段:
2、 根元素
每个XML文件都必须有且只能有一个根元素。用于描述文档功能。可以自定义根元素。下例中的root为根元素。 以下是代码片段:[code]<root>...................</root>
3、 XML代码
根据应用需要创建自定义的元素和属性。标签包括尖括号以及尖括号中的文本。元素是XML内容的基本单元。元素包括了开始标签、结束标签和标签之间的内容。以下是代码片段:
[code]<title>XML是可扩展标记语言</title>
整行统称为元素,其中为标签,XML是可扩展标记语言是字符数据
[code]XML的标记有:标签,注释,处理指令,DTD和引用等。 注释 在XML中,注释与HTML的一样,都是用<!-- 注释 -->指定注释。要遵循以下规则: 在注释中不应包含有“-”“—”等字符,以免XML解释器产生混淆。 注释不能放在标签中 注释不能写在第一行。第一行是XML声明。 注释不能嵌套 可跨行注释,与java中的注释块功能一样。 处理指令 凡是以<?开始, ?>结束的都是处理指令。XML声明就是一个处理指令。 标签间的字符数据的分类 标签间的字符数据可以是除了“<”以外的任何合法(Unicode)字符。“<”字符是预留作为标签的开始字符。字符数据分以下两类: PCDATA(是指将要通过解析器进行解析的文本) CDATA (是指不要通过解析器进行解析的文本) 其中不允许中CDATA块之内使用字符串“]]>”,因为它表示CDATA块的结束。
实体
[code]实体可以是常用的短语,键盘字符,文件,数据库记录或任何包含数据的项。在XML中,有时实体内包含了些字符,如&,<,>,",'等。这些均需要对其进行转义,否则会对XML解释器生成错误。 字符 转义后字符 < < > > " " ' ' & &
在XML中出现以上字符的,均需要转义才能通过。
4、 XML实体
[code]<!ENTITY 实体引用名 "引用内容"> 实体又分两类: 1,一般实体(格式:&实体引用名;) 2,参数实体(格式:%实体引用名;) 一般实体,可以在XML文档中的任何位置出现的实体称为一般实体。 实体可以声明为内部实体还是外部实体。外部实体分SYSYTEM及PUBLIC两种。SYSYTEM引用本地计算机,PUBLIC引用公共计算机,外部实体格式如下: <!ENTITY 引用名 SYSTEM(PUBLIC) "URI地址"> 管理实体引用的规则包括: 引用实体前,必须先在XML文档中声明该实体。 实体引用不应含有任空空格。例如:& title; &title ;都是不对的。 实体引用的XML文件必须是格式良好的。 实体引用可以替代常规字符数据,也可以在标签属性中使用实体引用。如 <title value="&titlue" /> DOCTYPE声明 在XML文档中,<!DOCTYPE[...]>声明跟在XML声明的后面。实体也必须在DOCTYPE声明中声明。语法如下: 以下是代码片段: <?xml version="1.0" unicode="UTF-8"> <!DOCTYPE[ .....在此声明实体<!ENTITY 实体引用名 "引用内容"> ]> 代码例子: 以下是代码片段: <?xml version="1.0" encoding="GBK"?> <!DOCTYPE root[ <!ENTITY titlue "引用字符1"> <!ENTITY titlue2 "引用字符2"> ]> <root> <title value="&titlue;"> &titlue; </title> <title2> <value><a>&titlue2;</a></value> </title2> </root> 在IE是打开XML文件显示为: 以下是代码片段: <?xml version="1.0" encoding="GBK" ?> <!DOCTYPE root (View Source for full doctype...)> - <root> <title value="引用字符1">引用字符1</title> - <title2> - <value> <a>引用字符2</a> </value> </title2> </root>
当满足以下条件时,是为格式良好的XML文档:
至少需要一个元素
XML标签区分大小写
应正确使用结束标签
正确的嵌套
应使用合法标签:标签必须以一个字母,下划线,或冒号开始,后面可以跟字母,数字,句号,冒号,下划线,连字符的组合。但不能有空格。也不应以XML开头,因为XML是保留字。
标记名称长度
应定义有效属性
应验证文档
在XML中,所有的值都被被为字符串。
5、 解析器
[code]解析器有两种类型: 1,非验证解析器:它检查文档的格式是否良好 2,验证解析器:使用DTD检查文档的有效性(分别有Apache的Xerces和Oracle XML Parser) DTD:(Document)文档类型结构 DTD的一般结构如下: <!DOCTYPE dtd-name[ <!ELEMENT element-name (element-content type)> <!ATTLIST element-name attribute-name attribute-type default-value> ]> element-name :元素名 element-content type:元素类型 attribute-name :属性名 attribute-type:属性类型 default-value:默认值 空元素:EMPTY,指定该元素没有子元素或字符数据。<!ELEMENT element-name (EMPTY)> 带数据的元素: <!ELEMENT element-name (#CDATA)> 包含有不会通过解析器解析的数据 <!ELEMENT element-name (#PCDATA)> 包含有要通过解析器解析的数据 <!ELEMENT element-name (ANY)> 包含零个或零个以上任何声明类型的子元素以及字符数据 带有子元素的元素 <!ELEMENT element-name (child-element-name1,child-element-name2....)> 多个子元素时用,号分隔 声明相同元素只出现一次 <!ELEMENT element-name (child-element-name)> 声明相同元素只出现零次或一次 <!ELEMENT element-name (child-element-name?)> 声明相同元素只出现一次或多次 <!ELEMENT element-name (child-element-name+)> 声明相同元素只出现零次或多次 <!ELEMENT element-name (child-element-name*)> 属性声明: Default属性值:默认属性值 <!ATTLIST element-name attribute-name CDATA "default-value"> Implied属性值:可有可无 <!ATTLIST element-name attribute-name #IMPLIED> Required属性值:指定属性为必须的 <!ATTLIST element-name attribute-name #REQUIRED> Fixed属性值:属性值是固定的,使作者不能更改 <!ATTLIST element-name attribute-name CDATA(PCDATA) #FIXED "value"> Enumerated属性类型:使属性值成为一组固定合法值的一员 <!ATTLIST element-name attribute-name (1 | 2 | ....) "default-value"> DTD示例: 内部DTD 以下是代码片段: <?xml version="1.0" encoding="GBK"?> <!DOCTYPE root[ <!ELEMENT root (book*)> <!ELEMENT book (name,title,versions,address)> <!ELEMENT name (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT versions (#PCDATA)> <!ELEMENT address (#PCDATA)> <!ATTLIST title value CDATA #REQUIRED> <!ATTLIST address value CDATA #FIXED "中国广东"> <!ATTLIST versions value (1.0 | 2.0 ) "1.0"> <!ENTITY addr "中国广东珠海"> ]> <root> <book> <name>XML</name> <title value="a">xml可扩展语言</title> <versions value="1.0">1.0</versions> <address value="中国广东">&addr;</address> </book> <book> <name>XML</name> <title value="">xml可扩展语言</title> <versions>1.0</versions> <address value="中国广东">&addr;</address> </book> </root> 外部DTD使用语法如下: <?xml version="1.0" encoding="GBK"?> <!DOCTYPE 根元素的名称 SYSTEM "外部DTD文件URI"> <root>........<root> 此处的外部DTD文件内容为: 以下是代码片段: <?xml version="1.0" encoding="GBK"?> <!ELEMENT root (book*)> <!ELEMENT book (name,title,versions,address)> <!ELEMENT name (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT versions (#PCDATA)> <!ELEMENT address (#PCDATA)> <!ATTLIST title value CDATA #REQUIRED> <!ATTLIST address value CDATA #FIXED "中国广东"> <!ATTLIST versions value (1.0 | 2.0 ) "1.0"> <!ENTITY addr "中国广东珠海">
相关文章推荐
- 好记性不如烂笔头42-javaWeb监听对象域属性变化(6)
- testng.xml文件结构组成及节点属性说明
- 好记性不如烂笔头60-利用XMLConfiguration解析XML多节点
- 好记性不如烂笔头88-spring3学习(9)-schema的配置的解读和说明
- [原创]JWFDv0.96工作流系统--流程XML文档结构说明
- 好记性不如烂笔头88-spring3学习(9)-schema的配置的解读和说明
- 好记性不如烂笔头62-HTML中meta 属性和含义
- [原创]JWFDv0.96工作流系统--流程XML文档结构说明
- XML文档的整体结构---2.2.4: 元素的属性必须有值
- lucene结构说明中文文档
- j2me框架教程(3)--xml文档详细说明
- AJAX 学习笔记(5) 处理XML文档的DOM元素属性和遍历DOM元素方法
- ajax--处理XML文档的DOM元素属性
- [整理文档] XML for Analysis结构文档
- 用于处理XML文档的DOM元素属性
- xml文档节点属性的访问
- Hibernate的hbm.xml文件中相关属性说明
- XML文档说明
- 用于处理XML文档的DOM元素属性
- PowerDesigner XML 文件直接生成 VB 实体(包含属性说明)、ibatisNet 代码