XML基础介绍

说起XML,大家都会想起HTML,连接中是我HTML的简单总结,这篇我将重点总结一下XML的基础知识。

首先:HTMLHyperText Markup Language,超文本标记语言,是用于描述网页文档的一种描述标记语言XMLExtensible Markup Language,是一种类似HTML可扩展标记语言,它的标记都是自定义的,其设计宗旨是包含和传输数据。


下边我们看一下他们的历史发展:



这里我简单列一下HTMLXML的差异:

1XML不是用来替换HTML的技术;

2XMLHTML为不同的目的而设计;

3XML设计的核心是包含和传输数据,而HTML设计的核心是显示数据。


下边我来重点总结一下XML的相关知识:

先看一个XML的实例:


从上边这个实例,我们可以看出XML的组成:声明,标签,元素,子元素,父元素,注释等等。

这里重点说一下XML中字符和实体应用:


还有一种方法就是使用CDATA:<![CDATA[文本内容]]>。文本内容就是可以直接使用。

例如:


再者,我们说一下XML的语法要求:

1XML文档必须有一个顶层元素,即文档元素,所有其他元素必须嵌入在文档元素中。

2,元素嵌套要正确,即如果一个元素在另一个元素中开始,那么必须在同一个元素中结束。

3,每个元素必须同时拥有起始标记和结束标记。

4,起始标记中的元素类型名必须与相应结束标记中的名称完全匹配。

5,元素类型名区分大小写。

6,元素类型名称中可以包含字母,数字以及其他字母元素类型,也可以使用非英文字符,但名称 不能以数字或者符号“-”开头,另外,名称中不能包含空格和冒号“:”。

上边是XML语言本身的相关知识,下边我讲述一下XML的两种语法规则:XML文档是一种结构化的标记文档,XML文档结构有两种描述数据的方法,分别为文档类型定义(Document Type Definition,DTDSchema模式。

先说DTD

1DTD的概述:

DTDDocument 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开始,后面是混合类型中可能出现的子元素类型,在右括号之后加符号“*”)

一些符号的含义:

符号

符号类型

描述

示例

()

括号

用来给元素分组

(古龙|金庸|梁羽生),(王朔|余杰),毛泽东

|

竖条

表明在列出的对象中选择一个

(男人|女人)

+

加号

表示该对象最少出现一次,可以出现多次

(成员+

*

星号

表示该对象允许出现任意多次,也可以是零次

(爱好*

问号

表示该对象可以出现,但只能出现一次

(菜鸟?

逗号

表示对象必须按指定的顺序出现

(西瓜、苹果、香蕉)

4DTD属性:

1),属性声明参数及说明

参数

说明

ATTLIST

ATTLIST关键字用于定义元素所具有的属性

Element_name

元素名称

Attribute_name

元素所具有的属性名

Type

属性的类型

Default_value

属性的默认值

2),属性类型:

类型

具体的含义说明

CDATA

这个类型表明该属性只能包含字符数据,

ID

该属性的取值必须是唯一的。

IDREF,IDREFS

这个属性的值实际上就象C++中的指针一样,它是一个指向文档中其他地方声明的ID值。所以如果具体的文档中该属性的取值和它所指向的ID值不匹配的话,就会返回错误。IDREFSIDREF类似,但是可以具有由空格分隔的多个引用。

NMTOKEN,NMTOKENS

NMTOKENCDATA非常类似,不同之处在于它是CDATA的一个子集。它所使用的字符必须是字母、数字、句点、破折号、下划线或冒号。NMTOKENSNMTOKEN类似,不同之处在于它可以包含多个值,每个值之间用空格进行分隔

NOTATION

NOTATION属性的值必须引用在文档中其他地方声明的某个注解的名称

POSTTION

枚举属性类型,指定属性值为定义的文本字符串中的一个。

举例说明:上边一个XML例子的DTD文档。

  1. <!DOCTYPEResume
  2. [
  3. <!--说明Resume元素中包含子元素Name,Email,HomePage,Publication-->
  4. <!ELEMENTResume(Name,Publication)>
  5. <!--说明Name,Emal,HomePage元素只能包含字符数据,不能包含子元素-->
  6. <!ELEMENTName(#PCDATA)>
  7. <!ELEMENTEmail(#PCDATA)>
  8. <!ELEMENTHomePage(#PCDATA)>
  9. <!--说明Publication包含Book子元素-->
  10. <!ELEMENTPublication(Book)>
  11. <!ELEMENTBook(Title,Pages)>
  12. ]>

最后我们简单介绍一下Schema模式:

1,概述:Schema模式使用的是一种类似于XML的语言,该模式中既有全局声明也有局部声明。Schema模式具有一套完整的数据类型系统,以便对数据类型进行详细定义,Schema模式文档是一个独立于XML文档的文本文件,其扩展名为.xsd

2,举例:




综上为XML学习的基础知识简单总结!暂时还没有用到,理解还不是很深!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇