XML
XML代表Extensible Markup Language(eXtensible Markup Language的缩写,意为可扩展的标记语言)。XML 被设计用来传输和存储数据。XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。XML特点
∙标记需要自己去创建!一个最大的特殊处(与HTML不同处),它可以创建标签,包括使用中文标签
∙语法更严格!标签必需成对嵌套,并且属性必须有属性值,属性值也必须包含在引号中
∙XML仅仅用来存储数据,不包含与数据显示相关的样式信息(这部分信息可以通过CSS等语言来传递),XML是具有语义的
书写XML
weekender
(本文规约,XML注释为了方法而不使用<!---->,而使用//,推荐使用XMLSpy编辑及验证XML)
一个完整的XML必须包含XML声明与一个文档根元素!XML声明必须包含版本信息,文档根元素可以是空元素,但一个XML文档只能有一个根元素!
Xml代码
1.<?xml version="1.0"?>
2.<root/>
注意:XML目前存在1.0与1.1两个版本,但浏览器只支持1.0版. XML声明的version属性是必须的. XML声明之前不能有任何东西,比如空格及注释(XML注释和HTML注释是一样的).XML文档只能且必须包含一个根元素,当元素是空元素时需要闭合XML 声明还有其它两个属性:standalone与ding属性用来指明XML 文档所使用的字符编码,如指定为gbk或 gb2312则可以使用中文本,standalone属性指明XML文档是否独立不依赖于外部文档,默认值是yes,当使用外部XML DTD时需要将这个属性设为no
格式良好的XML与有效的XML
格式良好的XML(Well-formed XML)是指文档格式符合XML语法规范的XML,解释器在解释一个Not Well-formed XML的时会出现错误而停止!
一个遵守XML语法规则,并遵守相应DTD文件规范的XML文档称为有效的XML文档(Valid XML)。注意我们比较"Well-formed XML"和"Valid XML",它们最大的差别在于一个完全遵守XML规范,一个则有
showgirl是什么意思自己的"文件类型定义(DTD)"。将XML文档和它的DTD文件进行比较分析,看是否符合DTD规则的过程叫validation(确认)。这样的过程通常我们是通过一个名为parr 的软件来处理的。
DTD ——文档类型定义(Document Type Definition) 由于XML可以自定义标签,那么自然各人编写的标签不一样,这样同步数据便成了问题,因为其它人不知道某个标签应该怎么用,表示什么意思.DTD就是为了解决此问题的! DTD是一种保证XML文档格式正确的有效方法,可以比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。
DTD分为内部DTD与外部DTD,内部DTD包含在XML文档中,外部DTD则通过URL引用.一个DTD文件是以.dtd结尾的文本文件
在XML中引入DTD DOCTYPE 文档类型声明
内部DTD,可以将standalone设置成yes.
英语六级听力
Xml代码
1.<?xml version="1.0"standalone="yes"?>dig的过去式
2.<!DOCTYPE root [
3.<!ELEMENT root EMPTY>
4.]>
外部DTD,需要将standalone设成no
Xml代码
1.<?xml version="1.0"standalone="no"?>
2.<!DOCTYPE root SYSTEM "st/test.dtd"> DOCTYPE分析
DTD声明始终以!DOCTYPE开头,空一格后跟着文档根元素的名称,如果是内部DTD,则再空一格出现[],在中括号中是文档类型定义的内容. 而对于外部DTD,则又分为私有
DTD与公共DTD,私有DTD使用SYSTEM表示,接着是外部DTD的URL. 而公共DTD则使用PUBLIC,接着是DTD公共名称,接着是DTD的URL.下面是一些示例
公共DTD,DTD名称格式为"注册//组织//类型标签//语言","注册"指示组织是否由国际标准化组织(ISO)注册,+表示是,-表示不是."组织"即组织名称,如:W3C; "类型"一般是DTD,"标签"是指定公开文本描述,即
对所引用的公开文本的唯一描述性名称,后面可附带版本号。最后"语言"是DTD语言的ISO 639语言标识符,如:EN表示英文,ZH表示中文,在下面的地址有完整的ISO 639语言标识符列表
ftp.ics.uci.edu/pub/ietf/http/
Xml代码
1.<!DOCTYPE root SYSTEM "st/test.dtd">
下面是XHTML 1.0 Transitional的DTD.以!DOCTYPE开始,html是文档根元素名称,PUBLIC表示是公共DTD,后面是DTD名称,以-开头表示是非ISO组织组织名称是W3C,EN表示DTD语言是英语,最后是DTD的URL
经济学人英文版
Xml代码
1.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//
EN"
2. "www.w
3/TR/xhtml/DTD/xhtml1-transitional.dtd
">
注意:虽然DTD的文件URL可以使用相对URL也可以使用绝对URL,但推荐标准是使用绝对URL.另一方面,对于公共DTD,如果解释器能够识别其名称,则不去查看URL上的DTD 文件
开始编写DTD
XML 文档构建模块
所有的 XML 文档(以及 HTML 文档)均由以下简单的构建模块构成:∙元素 , 元素即所说的自定义标签,它是 XML 以及 HTML 文档的主要构建模块。
∙属性 , 属性可提供有关元素的额外信息。属性总是被置于某元素的开始标签中。
boer属性总是以名称/值的形式成对出现的。
∙实体 , 实体是用来定义普通文本的变量。实体引用是对实体的引用。如HTML文档中的 ;即是一个实体引用当文档被 XML 解析器解析时,实体就会被展开。
∙PCDATA , PCDATA 的意思是被解析的字符数据(pard character data)。
可把字符数据想象为 XML 元素的开始标签与结束标签之间的文本。PDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记。文本中的标签会被当作标记来处理,而实体会被展开。不过,被解析的字符数据不应当包含任何&、< 或者 > 字符;需要使用 &、< 以及 > 实体来分别替换它们。
∙CDATA , CDATA 的意思是字符数据(character data)。CDATA 是不会被解析器解析的文本。在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开。
CDATA
PCDATA 是指会被解析的字符串,这解析是指将其中的实体引用换成对应的实体内容.也就是说,一般的XML中的文本节点都是PCDATA,当这些文本中要包含一些 XML特殊字符时,需要使用实体引用,当这些字符很少时,使用实体引用还不是很麻烦,而当特殊字符很多时,则需要使用CDATA,即不解析字符串. CDATA 区段开始于 "<![CDATA[",结束于"]]>",CDATA段中可以包含除CDATA限定符之外的任何字符
元素声明
轻松背单词
元素声明使用<!ELEMENT 元素名称 (元素内容)>或<!ELEMENT 元素名称类别>的语法
swellXml代码
1.<!ELEMENT root EMPTY> //EMPTY关键字表示元素是个空元素brake是什么意思
2. <!ELEMENT root ANY> //ANY关键字表示元素中可以出现任何内容,也
可以为空
3. //下面这个声明表示root中可以有文本,也可以是空
4. <!ELEMENT root (#PCDATA)> //()表示一个分组,其中是放的允许在
元素出现的内容,#PCDATA表示文本
5. <!ELEMENT root (child)> //child是子元素的名称,这个声明表示
root中必须且只能有一个child元素
6. <!ELEMENT root (child1,child2)> //以逗号分隔,表示子元素依次
出现
7. <!ELEMENT root (child1|child2)> //竖线与"OR"的意思相近,表示
root元素中只能出现child1或child2
8. <!ELEMENT root (child?)> //root中child子元素可以出现一次,
也可以不出现
9. <!ELEMENT root (child+)> //root中child子元素至少出现一
次
10. <!ELEMENT root (child*)> //root中child子元素可以出现任意次
数或不出现
11. <!ELEMENT root (child,(a,b))> //()还可以嵌套,这里表示root
元素中第一次子元素必须是child ,紧接着是a或b
12. <!ELEMENT root (child,(a,b)+)> //*,?,+这些量词可作用于分组,
这里表示root元素中第一次子元素必须是child 紧接着是a或b出现一次或多次
Xml代码
1.<![CDATA[
2. ABC-abc-ABC><&//&;这个不并被替换成& ]]>
属性声明
属性声明使用<!ATTLIST 元素名称属性名称属性类型默认值>的语法.示Xml代码
1.<!ATTLIST input type CDATA "text">
上面的属性声明表示:元素input的type属性值是文本,默认值是text;以下是属性类型表
默认值参数可以使用下列值
元字符
重庆在职研究生实体引用