2012-08-05 1、XML:eXtensible Markup Language,可扩展元
标记语言。 2、DTD:Document Type Definition,文档类型定义,用于规范XML的语法要求,XML常通过DTD文档来验证XML的语法是否符合对应DTD的要求。 3、XML描述的是结构和语义,注重的是
内容,而不是单纯的强调格式化(如HTML),不决定文档的
内容应该怎样
显示。 4、XML中每一个元素都是成对出现的,开始元素
标签和结束元素
标签的区别在于结束元素
标签名前多了一个正斜杠“/”,如果不成对则出现基本的语法
错误。元素的开始和结束
标签之间为元素值,元素值可以是其他元素集合(即元素的嵌套),也可以是具体类型值。 5、XML元素嵌套的时候,必须遵循嵌套顺序,内部元素必须先结束之后,才能结束外部元素。 6、一个XML文档有且只有一个顶层元素,即根元素,一个XML中除了根元素之外,其它元素都必须被嵌套在根元素中。 7、嵌套其它元素的元素叫做父元素,被嵌套的元素元素叫做子元素,同一个父元素下并列的子元素叫做兄弟元素。 8、目前浏览器都很好的
支持XML文档,使用浏览器打开XML文档,浏览器会在XML文档的每个元素前
添加“+或-”
标签,用于打开或收缩元素的具体
内容。 9、目前XML的标准为1.0。 —————————————————————————————————————————— 2012-08-06 1、XML的树形结构:一个XML文档根据文档中元素的嵌套关系可以形成一颗关系树,这种树形结构可以
支持面向对象编程。XML元素的树形结构信息通常保存在DTD文档中,作为XML的规范。 2、XML与HTML比较: 1)可扩展性:HTML不具有扩展性,只有固定的几个
标签;而XML是元
标记语言,可以定义新的
标记语言。 2)侧重点:HTML侧重于如何变现信息,即
显示信息的格式;而XML侧重于如何结构化地描述信息。 3)语法要求:HTML不要求
标记的嵌套、配对等,不要求
标记之间具有一定的顺序;而XML严格要求嵌套、配对,和遵循DTD的树形结构。 4)可读性和可维护性:HTML难于阅读和维护;而XML结构清晰,便于阅读、维护。 5)数据和
显示关系:HTML的
内容描述与
显示方式整合为一体;而XML
内容描述和
显示方式向分离,XML只注重结构化的描述信息,如何
显示这些信息需要通过外部部件来确定。 6)保值性:HTML不具有保值性;而XML具有保值性。 3、XML提供了将不同来源的结构化数据集成的强大
功能,通过XML可以实现数据在不同软件、不同
数据库、异构语言和异构平台上进行交互。比如一个C++程序需要
调用以一个Java程序的
方法,C++程序可以通过XML文档将要
调用的
方法名和参数等信息发送给Java程序,Java程序收到XML文档后从中
提取信息执行
方法,并将结果再以XML发送回去。基本每一种语言都提供了对XML
支持的组件,每一种语言都提供了对XML文档解析的机制。Java中提供了DOM和SAX两种接口用于XML编程。 4、XML解放了一些只能在服务器端运行的高端软件:服务器将XML格式的数据发送给客户端,并允许客户端通过使用XML文档对象DOM用脚本语言或其它编程语言处理,从而数据不需要返回服务器就能在本地进行计算处理。 5、由于XML
支持的
显示模式和数据
内容分开,所以只要客户的
显示配置不同就可以产生不同的
显示方式,从而实现同一个XML文档的个性化
显示。 6、XML在web
上传递可以像HTML一样发送数据,所以传递XML文档不需要对现有网络做任何变化。 7、XML可以根据需求定义一套适合的标准在适合的范围里使用。 8、XML文档的第一行是XML声明,用XML的处理指令进行声明。XML的处理指令放置在<? ?>之中,“<?”问号之后接指令名(如xml),指令名后空格接指令对应的参数值。XML对指令的语法要求很严格,每条指令必须顶格写,即“<”之前不允许有任何空白和其它字符,并且指令中“<”之后的“?”前后也不允许有空格,否则语法
错误。XML的所有处理指令都放在文档首,处理指令写完后才能写XML文档元素。 9、xml指令<?xml version="1.0" encoding="UTF-8" standalone="yes"?>:version指定XML版本(目前只有1.0版本)。encoding指定XML的编码方式,该
属性必须放置在standalone之前,否则语法
错误;当XML文档中的字符不能完全转换为指定的编码方式时也会产生语法
错误,推荐使用UTF-8编码方式可以涵盖所有语言的字符,并且不指定encoding
属性时默认也为UTF-8编码方式。standalone
属性当值为yes时表示不需要外部文档
支持,当为no时表示需要外部文档
支持,比如DTD。没有
添加standalone
属性时默认其值为yes。需要外部文档DTD时,XML解析器会先分析XML文档语法是否符合XML指定版本规范,除此之外还要分析XML文档是否也符合指定DTD文档规范,如DTD文档中树形结构包含的元素必须有,没有包含的元素不能出现等。 10、XML元素可以具有
属性,跟在元素
标签名后,用空格隔开,
属性采用“
属性名=
属性值”的格式,
属性值用双引号或者单引号包围(当
属性值中有单引号时
属性值用双引号,当
属性值中有双引号时
属性值用单引号),多个
属性使用一个或多个空格隔开,同一个
属性在同一个元素中最多只能出现一次,并且
属性值不能
包括<,>,&等符号。 11、XML中的元素名严格区分大小写!! 12、类似于css样式表可以定义HTML
标签的
显示样式,同样css样式表也能够定义XML元素的
显示样式,编写css的时候将XML的元素当做HTML
标签一样定义就可以了。另外,还要将css样式表
文件关联到XML文档上,在XML文档
添加处理指令<?xml-stylesheet type="text/css" href="..."?>。其中,xml-stylesheet为指令名,type为指定关联样式
文件的类型(text/css,表示样式
文件类型为css
文件类型),href为关联的样式
文件地址。使用了CSS样式表的XML文档,浏览器
显示的时候将以CSS定义的样式
显示,因为此时浏览器已经知道每个元素的
显示方式,由此可见XML的
显示格式与XML
内容是分离的。 13、另一种定义XML
显示样式的
方法是使用XSL文档,XSL即eXtendable style language,是专为
显示XML开发的样式语言。使用时同样需要处理指令声明<?xml-styleshell type="text/xsl" href="..."?>。 14、XML只有一种注释<?-- -->,注释不能写在元素尖括号中,注释也不能嵌套。 15、当XML的元素没有
内容的时候,可以将起始
标签与结束
标签合并为一个
标签表示一个空元素,
方法是在起始
标签名后加“/”。 16、实体:XML中的变量。XML中定义了5个常用实体,<表示符号<,>表示符号>,&表示符号&,"表示符号",'表示符号',在XML中不能使用以上符号的地方可以使用它们的实体代替。 17、定义实体的
方法: <!DOCTYPE 根元素[ <!ENTITY 实体名 实体值> <!ENTITY 实体名 实体值> ... ]> 18、
调用实体的
方法:在根元素内
调用实体,只要使用“&实体名;”的格式就能
调用相应实体的值,在
显示的时候会使用实体值代替。 19、CDATA节:即使用<![CDATA[ 数据 ]]>,XML会把CDATA节中的数据都当做纯文本字符处理,也就是对于任意字符都能能在CDATA节中出现而不会出现语法
错误(除了]]之外),该
标记对于大量使用<>%等字符特别方便。另外CDATA节也不能互相嵌套。 20、DOCTYPE:文档类型声明,紧跟在XML声明之后,包含了所有实体的声明,语法间实体的定义。 21、格式正规(wellformed)的XML文档,即符合以下规则的XML文档: 1)必须由XML声明语句<?xml version="1.0"?> 2)必须只有一个根元素 3)
标记必须大小写敏感 4)
属性值使用引号 5)
标记成对出现 6)空
标记关闭 7)元素正确嵌套 22、格式正规的XML文档不一定是符合逻辑的文档,也就是文档的实现逻辑不一定就是
用户需要的逻辑。 23、XML的元素命名:元素名可以由字母、数字或者其它字符组成,但是不能用数字和XML/xml/Xml/等开头,并且
名称中也不能有空格和冒号(冒号是给命名空间使用的)。 24、有效的XML文档:满足对应DTD要求的格式正规的XML文档。 25、DTD与XML的关系类似于面向对象语言的类与对象的关系,XML是堆DTD的一个具体实现。 26、DTD文档的声明与使用: 1)内部DTD文档:在XML文档内部使用<!DOCTYPE 根元素[定义
内容]> 2)外部DTD文档:<!DOCTYPE 根元素 SYSTEM "DTD
文件路径"> 3)内外部DTD文档结合(用的很少):<!DOCTYPE 根元素 SYSTEM "DTD
文件路径"[定义
内容]> 27、无论是使用内部还是外部还是内外部结合的DTD文档,它们在本质上都是一样的,完成DTD声明的语法都是一样,区别只是声明语句的位置不一样而已(其中,内外部就是内部和外部的声明进行组合,但根元素的声明在内外部都必须有)。 28、外部DTD文档格式:同样需要<?xml version="1.0" encoring="utf-8"?>语句的声明,声明自后写入符合DTD声明语法的语句就可以了。 29、DTD声明元素语法:<!ELEMENT 元素名 元素类型>。 30、ELEMENT的元素类型有:EMPTY表示一个空元素,即元素不能包含
内容,但可以有
属性;ANY表示可以包含任何在DTD中定义的元素类型,使用ANY类型的元素包含的子元素
数量和类型都不受限制,一般不常用,使用了跟不定义DTD没什么区别;#PCDATA表示字符串类型,使用此类型的元素不能再包含其它子元素,即此元素的
内容只能是一个字符串,不能再嵌套其它元素;纯元素类型,表示
内容只有元素,除了元素之外没有其它文本;混合类型,表示既包含子元素和文本数据。 31、DTD声明中可用的修饰符号:“()”,用于给元素分组,如括号将(apple,pear),banana分成了两组;“|”,使用它分隔的多个对象中必须并且只能出现其中的一个,如(man|woman)中只能出现man或者woman;“+”,表示修饰的对象至少要出现一次,可以出现一次到多次,如(member+)中member至少需要出现一次;“*”,表示修饰的对象可以出现零到任意多次,爱出现多少次就出现多少次,如(爱好*)中爱好可以出现任意次;“?”,表示修饰的对象要么不出现,要么只能出现一次,也就是最多只能出现一次,如(id?)中id最多只能出现一次;“,”,用将对象分隔并且要求对象必须按照指定的顺序出现,如(apple,pear,banana)中出现的顺序只能是apple然后pear然后banana。 32、ELEMENT声明举例: <!ELEMENT poem (author,title,context)> <!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT context (#PCDATA)> 以上定义了一个poem元素,元素中包含三个子元素author、title、context,每个子元素都是一个包含字符串的元素。XML文档中定义poem元素的时候必须定义它的三个子元素,而且子元素的定义顺序只能是author、title、context。 33、DTD声明元素
属性语法:<!ATTLIST 元素名
属性名
属性类型
属性特点
属性名
属性类型
属性特点
属性名...>。 34、DTD
属性语法-元素名:元素名指定该
属性是哪个元素的
属性。 35、DTD
属性语法-
属性名:
属性名指定元素某
属性的
名称。 36、DTD
属性语法-
属性类型:指定该
属性对应的数据类型。主要有: 1)CDATA,任意字符串类型(与#PCDATA不同,它是修饰元素的); 2)NMTOKEN是CDATA的一个子集,表示
属性值必须是由英
文字母、数字、句号、破折号、下划线或冒号组成,并且不能出现空格; 3)NMTOKENS,与NMTOKEN一样,区别在于可以包含由多个空格分隔的字符; 4)ID,表示该
属性值在XML文档中相同的元素中取值必须是唯一的; 5)IDREF,表示该
属性值必须是文档中其它元素已经定义的ID
属性值; 6)IDREFS,表示该
属性是可以具有由空格分隔开的多规格文档中其它元素已经定义的ID
属性值; 7)Enumerated枚举类型,表示
属性值必须在实现定义好的一些值范围内,使用格式为:<!ATTLIST 元素名
属性名 (
属性值1|
属性值2|
属性值3|...)
属性特点>。 37、DTD
属性语法-
属性特点:指定该
属性是必须出现还是可省略等一些特性。主要有: 1)#
required,指定该
属性必须出现; 2)#IMPLIED,指定该
属性可以出现也可以不出现; 3)#FIXED value,指定该
属性的值必须时value; 4)value,指定该
属性的默认值为value,如果该
属性出现但不提供值,则默认值为value。
原文链接:https://www.f2er.com/xml/298466.html