XML学习

来源:互联网 发布:石油计量表软件 编辑:程序博客网 时间:2024/06/03 21:09

一、什么是XML?

1XML是指可扩展标记语言(eXtensible Markup Language),用户自定义的标签.相对于HTML来讲的。

2XML被设计的宗旨是表示数据。HTML是用来显示数据的。目前经常使用的XML版本是1.0

3XML除了表示数据外。在实际的企业开发中,主要用XML作为程序的配置文件。


二、XML的基本语法

   1、文档声明:

作用:用于标识该文档是一个XML文档。

注意事项:声明必须出现在文档的第一行(之前连空行都不能有,也不能有任何的注释)

最简单的XML声明:<?xml version="1.0"?>

声明中的encoding属性:说明解析当前XML文档时所使用的编码。默认是UTF-8

声明中的standalone属性:说明XML文档是否是独立的。

2、元素:

结束标签不能省略 ;

一个XML文档必须且只能有一个根标签;

XML文档中不会忽略回车和换行及空格;

标签的命名规范:元素(标签)的名称可以包含字母、数字、减号、下划线和英文句点。严格区分大小写。

  3、元素的属性:

元素的属性取值一定要用引号引起来(单引号或者双引号)。

    4、注释:

与HTML中的注释完全一致:<!--这是注释--> 。注意: 注释不能嵌套。

  5、CDATA区:

CDATACharacter Data的缩写。作用:CDATA区中的内容都是文本。

语法格式如下:

<![CDATA[

文本内容

]]>

6、处理指令:

处理指令,简称PI(Processing Instruction)。

作用:用来指挥软件如何解析XML文档。

语法:必须以“<?”作为开头,以“?>”作为结尾。

四、XML的约束

1、格式良好的XML文档:符合XML语法的。

2、有效的XML文档:遵循约束规范的。

格式良好的不一定是有效的,但有效的一定是格式良好的。

五、DTD的基本语法

1、DTD:Document Type Definition(文档类型定义)。

2、作用:约束XML的书写规范。

3、DTD文件保存到磁盘时,必须使用UTF-8编码。

      4、如何引入外部的DTD文档来约束当前的XML文档?

(1)DTD文件在本地:<!DOCTYPE 根元素名称 SYSTEM "DTD文件的路径">

      (2)DTD文件在网络上:<!DOCTYPE 根元素名称 PUBLIC "DTD名称" "DTD的路径URL">

5、定义元素:

语法:<!ELEMENT 元素名称 使用规则>

使用规则:

(#PCDATA):指示元素的主体内容只能是普通的文本.(Parsed Character Data)

EMPTY:指示元素的不能有主体内容。

ANY:用于指示元素的主体内容为任意类型

(子元素):指示元素中包含的子元素

如果子元素用逗号分开,说明必须按照声明顺序去编写XML文档

如果子元素用“|”分开,说明任选其一。

+*、?来表示元素出现的次数

6、定义元素的属性(attribute):

语法:<!ATTLIST 哪个元素的属性

属性名属性值类型 设置说明

属性名属性值类型 设置说明>

属性值类型:

CDATA:说明该属性的取值为一个普通文本

ENUMERATED (DTD没有此关键字)

语法:<!ATTLIST 元素名称 (1|2) "1">

ID:属性的取值不能重复

设置说明:

#REQUIRED:表示该属性必须出现

#IMPLIED:属性可有可无

#FIXED:表示属性的取值为一个固定值 语法:#FIXED "固定值"

直接值:表示属性的取值为该默认值

7、定义实体:

关键字ENTITY

实体的定义分为引用实体和参数实体

引用实体:

作用:在DTD中定义,在XML中使用

语法:<!ENTITY 实体名称 "实体内容">

XML中使用:&实体名称;

参数实体:

作用:在DTD中定义,在DTD中使用

语法:<!ENTITY % 实体名称 "实体内容">

DTD中使用:%实体名称;

如下为定义一个文档约束的例子:

<!ELEMENT 书架 (书+)><!ELEMENT 书 (书名,作者,售价)><!ELEMENT 书名 (#PCDATA)><!ELEMENT 作者 (#PCDATA)><!ELEMENT 售价 (#PCDATA)>
下面是一个按照约束写的一个XML文件:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE 书架 SYSTEM "book.dtd"><书架><书><书名>XXX</书名><作者>XXX</作者><售价>99元</售价></书><书><书名>XXXXX</书名><作者>XXX</作者><售价>50元</售价></书></书架>



0 0