XML学习
来源:互联网 发布:centos 7.0 安装cacti 编辑:程序博客网 时间:2024/06/06 02:05
HTML(HyperText Markup Language),即超文本标记语言,是用于描述网页文档的一种描述标记语言,用来显示数据 ;
而XML(Extensible Markup Language),是一种类似HTML的可扩展标记语言,它的标记都是自定义的,其设计宗旨是存储和传输数据。
下边我们看一下他们的历史发展:
这里我简单列一下HTML和XML的差异:
1,XML不是用来替换HTML的技术;
2,XML和HTML为不同的目的而设计;
3,XML设计的核心是包含和传输数据,而HTML设计的核心是显示数据。
下边我来重点总结一下XML的相关知识:
先看一个XML的实例:
从上边这个实例,我们可以看出XML的组成:声明,标签,元素,子元素,父元素,注释等等。
这里重点说一下XML中字符和实体应用:
还有一种方法就是使用CDATA:<![CDATA[文本内容]]>。文本内容就是可以直接使用。
例如:
再者,我们说一下XML的语法要求:
1,XML文档必须有一个顶层元素,即文档元素,所有其他元素必须嵌入在文档元素中。
2,元素嵌套要正确,即如果一个元素在另一个元素中开始,那么必须在同一个元素中结束。
3,每个元素必须同时拥有起始标记和结束标记。
4,起始标记中的元素类型名必须与相应结束标记中的名称完全匹配。
5,元素类型名区分大小写。
6,元素类型名称中可以包含字母,数字以及其他字母元素类型,也可以使用非英文字符,但名称 不能以数字或者符号“-”开头,另外,名称中不能包含空格和冒号“:”。
上边是XML语言本身的相关知识,下边我讲述一下XML的两种语法规则:XML文档是一种结构化的标记文档,XML文档结构有两种描述数据的方法,分别为文档类型定义(Document Type Definition ,DTD)和Schema模式。
先说DTD:
1,DTD的概述:
DTD(Document TypeDefinition),定义了XML文件的结构,为XML文件提供了语法与规则,内容既可以定义在XML文件中,也可以定义在XML文件之外(分为内部DTD和内部DTD(效果一样)),使用XML进行数据教书的行业或组织可定义自己的DTD。
分类:
每个XML文档可单独定义的DTD,也可以推广为一个系统共享的公用DTD。
外部DTD,一个由权威机构制定的,提供给特定行业或公众使用哦的DTD。
语法:
<!ELEMENT NAMECONTENT> ,说明:NAME表示一个标准的XML的标记名称,CONTENT为下边介绍的内容模型。
2,为什么要使用DTD:
(1),通过 DTD,您的每一个 XML 文件均可携带一个有关其自身格式的描述。
(2),通过 DTD,独立的团体可一致地使用某个标准的 DTD 来交换数据。
(3),而您的应用程序也可使用某个标准的 DTD来验证从外部接收到的数据。
(4),您还可以使用 DTD来验证您自身的数据。
总而言之就是给我们规章可循,使XML文件可以按照DTD很好的交换和表现。
3,内容模型介绍:
CONTENT
解释
EMPTY
如果一个元素的CONTENT被声明为EMPTY的话,表示该元素不能包含任何子元素和文本
ANY
表示该元素其中可以包含任何本身有效的元素内容,也就是说,它能够包含在DTD其他位置已经声明过的元素。
#PCDATA
表明该元素可以包含任何字符数据,但是不能在其中包含任何子元素。
子元素类型
表明元素可以包含一系列的子元素
混合模型
指元素既包含子元素,又包含已编译的字符数据。(以#PCDATA开始,后面是混合类型中可能出现的子元素类型,在右括号之后加符号“*”)
一些符号的含义:
符号
符号类型
描述
示例
()
括号
用来给元素分组
(古龙|金庸|梁羽生),(王朔|余杰),毛泽东
|
竖条
表明在列出的对象中选择一个
(男人|女人)
+
加号
表示该对象最少出现一次,可以出现多次
(成员+)
*
星号
表示该对象允许出现任意多次,也可以是零次
(爱好*)
?
问号
表示该对象可以出现,但只能出现一次
(菜鸟?)
,
逗号
表示对象必须按指定的顺序出现
(西瓜、苹果、香蕉)
4,DTD属性:
(1),属性声明参数及说明
参数
说明
ATTLIST
ATTLIST关键字用于定义元素所具有的属性
Element_name
元素名称
Attribute_name
元素所具有的属性名
Type
属性的类型
Default_value
属性的默认值
(2),属性类型:
类型
具体的含义说明
CDATA
这个类型表明该属性只能包含字符数据,
ID
该属性的取值必须是唯一的。
IDREF,IDREFS
这个属性的值实际上就象C++中的指针一样,它是一个指向文档中其他地方声明的ID值。所以如果具体的文档中该属性的取值和它所指向的ID值不匹配的话,就会返回错误。IDREFS和IDREF类似,但是可以具有由空格分隔的多个引用。
NMTOKEN,NMTOKENS
NMTOKEN和CDATA非常类似,不同之处在于它是CDATA的一个子集。它所使用的字符必须是字母、数字、句点、破折号、下划线或冒号。NMTOKENS和NMTOKEN类似,不同之处在于它可以包含多个值,每个值之间用空格进行分隔
NOTATION
NOTATION属性的值必须引用在文档中其他地方声明的某个注解的名称
POSTTION
枚举属性类型,指定属性值为定义的文本字符串中的一个。
举例说明:上边一个XML例子的DTD文档。
最后我们简单介绍一下Schema模式:
1,概述:Schema模式使用的是一种类似于XML的语言,该模式中既有全局声明也有局部声明。Schema模式具有一套完整的数据类型系统,以便对数据类型进行详细定义,Schema模式文档是一个独立于XML文档的文本文件,其扩展名为.xsd。
2,举例:
- XML学习
- XML学习
- XML学习
- XML学习
- XML学习
- XML学习
- xml学习
- 学习xml
- xml 学习
- XML学习
- XML 学习
- 学习XML
- XML学习
- xml学习
- xml学习
- XML学习
- XML学习
- XML学习
- 【问题解决】Centos forever让nodejs应用后台执行
- pl/sql developer 工具栏还原 试用于11.0.2.1766等新版本
- MySQL中 数据类型代表字符个数
- echart 报表统计
- SpTool -> Android系统SharedPreferences进行的封装
- XML学习
- SoftOrbits.Batch.Picture.Resizer.v3.2-Lz0
- android:windowIsTranslucent
- 登录动画,iOS登录窗口,可爱猫登录动画
- ACL框架简介
- Linux 三大文本处理命令之一AWK
- MyBatisSystemException测试类报错
- 三步测试只运行‘Test 3’
- 火狐插件(开发者)清空缓存