XML基础介绍

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

 

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


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

XML基础介绍


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

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

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

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

 


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

          先看一个XML的实例:

XML基础介绍


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

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

XML基础介绍


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

     例如:

XML基础介绍


   再者,我们说一下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. <!DOCTYPE Resume  
  2. [  
  3.   <!--说明Resume元素中包含子元素Name,Email,HomePage,Publication-->  
  4.   <!ELEMENT Resume (Name,Email,HomePage,Publication)>  
  5.   <!--说明Name,Emal,HomePage元素只能包含字符数据,不能包含子元素-->  
  6.   <!ELEMENT Name (#PCDATA)>  
  7.   <!ELEMENT Email (#PCDATA)>  
  8.   <!ELEMENT HomePage (#PCDATA)>  
  9.   <!--说明Publication包含Book子元素-->  
  10.   <!ELEMENT Publication (Book)>  
  11.   <!ELEMENT Book (Title,Pages)>   
  12. ]>  

  

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

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

       2,举例:

XML基础介绍


XML基础介绍


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