Xml的语法

一个XML文件分为如下几部分内容:

文档声明

元素

属性

注释

CDATA区、特殊字符

处理指令(processing instruction

Xml的声明

最简单声明

<?xml version=”1.0”?>

Encoding属性:字符编码如果没有指定默认的是UTF-8编码

常见的字符集

简体中文:GBK GB2312

繁体中文: BIG5

西欧字符:ISO8859-1

通用的国际编码:Unicode UTF-8

演示案例:

<?xml version="1.0" encoding="UTF-8"?>

<中国></中国>

引起错误的原因是:编码的错误




解码成字符

字符集错误时的xml文档




新建是一个.txt文档

保存的是.xml UTF-8

默认的编码ANSI

中国


写入到硬盘

编码成二进制码

00 11


磁盘文件

Standalone:指定该文档是否需要引用其它资源,属性值只有:yesno

Yes:独立 No:不独立

XML文件和HTML文件一样,实际上是一个文本文件。

显然大家立刻就会明白,创建XML文件最普通的工具和HTML一样,就是"记事本"了。

除了"记事本"之外,当然还有一些更加方便的工具,如XML Notepad、XML Pro、CLIP!XML Editor等,

这些工具的一大特点是:能够检查你所建立的XML文件是否符合XML规范。不过,现在这些工具都只有英文版的,并且需要付费使用。

当然,你仍然能够使用FrontPage、DreamWeaver等工具,不过使用起来不是很方便。

随着XML的逐渐普及,相信在不久后,也会出现非常好用的创建XML文件的工具。
现在我们暂且使用"记事本"来创建我们的XML文件吧。先看一个XML文件:


例1


〈?xml version="1.0" encoding="gb2312" ?〉
〈参考资料〉
〈书籍〉
〈名称〉XML入门精解〈/名称〉
〈作者〉张三〈/作者〉
〈价格 货币单位="人民币"〉20.00〈/价格〉
〈/书籍〉
〈书籍〉
〈名称〉XML语法〈/名称〉
〈!--此书即将出版--〉
〈作者〉李四〈/作者〉
〈价格 货币单位="人民币"〉18.00〈/价格〉
〈/书籍〉
〈/参考资料〉


这是一个典型的XML文件,编辑好后保存为一个以.xml为后缀的文件。我们可以将此文件分为文件序言(Prolog)和文件主体两个大的部分。

在此文件中的第一行即是文件序言。该行是一个XML文件必须要声明的东西,而且也必须位于XML文件的第一行,它主要是告诉XML解析器如何工作。

其中,version是标明此XML文件所用的标准的版本号,必须要有;encoding指明了此XML文件中所使用的字符类型,可以省略,在你省略此声明的时候,后面的字符码必须是Unicode字符码(建议不要省略)

。因为我们在这个例子中使用的是GB2312字符码,所以encoding这个声明也不能省略。在文件序言部分还有一些声明语句,我们在后面给予介绍。


文件的其余部分都是属于文件主体,XML文件的内容信息存放在此。

我们可以看到,文件主体是由开始的〈参考资料〉和结束的〈/参考资料〉控制标记组成,这个称为XML文件的"根元素";〈书籍〉是作为直属于根元素下的"子元素";在〈书籍〉下又有〈名称〉、〈作者〉、〈价格〉这些子元素。货币单位是〈价格〉元素中的一个"属性","人民币"则是"属性值"。


首先,XML文件的第一行必须是声明该文件是XML文件以及它所使用的XML规范版本。在文件的前面不能够有其它元素或者注释。


第二,在XML文件中有且只能够有一个根元素。我们的第一个例子中,〈参考资料〉... 〈/参考资料〉就是此XML文件的根元素。


第三,在XML文件中的标记必须正确地关闭,也就是说,在XML文件中,控制标记必 须有与之对应的结束标记。如:〈名称〉标记必须有对应的〈/名称〉结束标记,不像HTML,某些标记的结束标记可有可无。如果在XML文件中遇到自成一个单元的标记,就是类似于HTML 中的〈img src=http://www.php.cn/〉的这些没有结束标记的时候,XML把它称为"空元素",必须用这样的写法:〈空元素名/〉,如果元素中含有属性时写法则为:〈空元素名 属性名="属性值"/〉。


第四,标记之间不得交叉。在以前的HTML文件中,可以这样写:
〈B〉〈H〉XXXXXXX〈/B〉〈/H〉,〈B〉和〈H〉
标记之间有相互重叠的区域,而在XML中,是严格禁止这样标记交错的写法,标记必须以规则性的次序来出现。


第五,属性值必须要用" "号括起来。如第一个例子中的"1.0"、"gb2312"、"人民币"。都是用" "号括起来了的,不能漏掉。


第六,控制标记、指令和属性名称等英文要区分大小写。与HTML不同的是,在HTML中, 类似〈B〉和〈b〉的标记含义是一样的,而在XML中,类似〈name〉、〈NAME〉或〈Name〉这样的标记是不同的


第七,我们知道,在HTML文件中,如果我们要浏览器原封不动地将我们所输入的东西显示出来,可以将这些东西放到〈pre〉〈/pre〉或者〈xmp〉〈/xmp〉标记中间。这对于我们创建HTML教学的网页是必不可少的,因为网页中要显示HTML的源代码。而在XML中,要实现这样的功能,就必须使用CDATA标记。在CDATA标记中的信息被解析器原封不动地传给应用程序,并且不解析该段信息中的任何控制标记。CDATA区域是由:"〈![CDATA["为开始标记,以">〉"为结束标记。例如:例2中的源码,除了"〈![CDATA["和">〉"符号,其余的内容解析器将原封不动地交给下游的应用程序,即使CDATA区域中的开始和结尾的空白以及换行字符等,都同样会被转交(注意CDATA是大写的字符)。


Xml元素的基本规则

元素是xml文档的基本单元,xml文档就是一个一个层层嵌套的元素组成的。整个的xml文档从根元素开始,根元素包含若干个子元素,而每个子元素又可以包含若干个子元素,从而可以组成一个xml文档。

Xml标签语法:

1Xml的标签分为两类:

单标记:<中国/>

双标记:<中国></中国>

2xml标签的要求:

1、标签名可以有字母(包括非西欧字符)、数字、下划线(_)、中划线(-)、冒号(:)和点号(.)组成,但不能以数字、中划线和点号开头。

2、标签名不能包含<>、,、$等符号

3、标签名种尽量不要出现英文的冒号(:),除非在使用命名空间。

4、标签名不能以字符xmlXML等任意大小写组合开始。

5、标签名不能包含空格。

6、标签名区分大小写

3xml标签嵌套子元素:xml允许深度嵌套子元素,只要保证元素之间合理的嵌套即可.而且xml元素可以嵌套多个重名的子元素,这多个子元素之间是有序的。

第一个:xml

<中国>

<北京>

<海淀/>

<朝阳></朝阳>

<朝阳></朝阳>

</北京>

</中国>

第二个xml

<中国>

<北京>

<朝阳></朝阳>

<朝阳></朝阳>

<海淀/>

</北京>

</中国>

4、空元素:空元素不可以接受子元素,也不可以接受字符串内容。

第三个xml

<book>

<name>redarmy</name>

<content/> :备注:空元素但可以接受属性,而且可以接受多个属性

</book>

<book>

<name>redarmy</name>

<content></content> :备注它包好的是一个空格空格也是字符

</book>

例如空元素接受属性:

<book name=”Java建议” price=”30”/>

5、字符数据

<book>

<computer>Struts2开发详解</computer>

<computer>

Struts2开发详解

</computer>

</book>

对于XML标签中出现的所有空格和换行,XML解析程序都会当作标签内容进行处理

如果文本字符中包含了一些特殊的字符,例如<&由于这些字符都有特殊的含义,因此直接在xml文档中使用该字符串将引起文档的混乱。

<表达式>

<比较符>1+3<6</比较符>

</表达式>

代表的是文本字符串中包含了特殊的字符

有以下两种方法解决:

1、 使用实体引用:用另一个特殊符号代替这些特殊符号

2、使用CDATA标记:将整个文档定义成字符串。

1、 使用实体引用

<?xml version="1.0" encoding="UTF-8"?>

<表达式>

<比较符>1+3&<6</比较符>

</表达式>

上面的红色的<产生了干扰

解决如下:

<?xml version="1.0" encoding="UTF-8"?>

<表达式>

<比较符>1+3&lt;6</比较符>

</表达式>

2、 使用CDATA标记

在特殊标记CDATA,所有的特殊字符,甚至是有效的元素都将被当成简单的字符串处理。实体引用也会失去作用,变成直接的文本。

CDATA的语法格式如下:

<![CDATA[文本内容]]>

<?xml version="1.0" encoding="UTF-8"?>

<表达式>

<比较符>

<![CDATA[

1+3<6

]]>

</比较符>

</表达式>

备注:由于xml文档根本不会对CDATA标记内容进行任何解析,因此在CDATA内可以放置任何内容,其中的内容永远不会出错。

1、 注释

Xml文档还可以加入解释用的字符数据,这些解释用的字符串不会被xml解析器处理。这些解释用的文本称为注释。Xml的文档注释与html完全一致。

Xml注释的语法格式如下:

<!--注释字符串 -->

Xml的注释允许包含元素和标签。

注意:

1、 Xml的注释不能够放在标签体内。

2、 不要把xml文档放在xml文档声明之前 xml文档的声明永远在第一行

3、 不在注释中使用双中划线(--)

…..

2、 处理指令

处理指令,简称PI processing instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。

处理指令用于给处理xml文档的应用程序提供信息,告诉处理程序应该如何处理该文档。一个完备的xml文档的处理程序,可以读取xml文档的处理指令,并根据处理指令进行相应处理,或将它传给下一个程序。

Xml处理指令的格式如下:

<?处理指令名处理指令信息?>

3、 属性

xml属性的特征:

1、 xml元素的属性必须有属性值,属性值必须用引号引起来。

2、 同一个xml元素里不能有多个同名的属性

3、 Xml元素里的多个属性之间没有先后顺序。

<book>     <isbn>123456780</isbn>     <book_name>Java讲义</book_name>      <price>99</price></book>


比如说这个book本身就有 isbn book_name price的属性

那么

<book isbn=”” book_name=”” price=””/>


Xml必须有一个根元素。

Xml文档的整体结构

1、 必须有一个根元素(有且只有一个)

2、 元素必须合理结束

3、 元素之间必须合理嵌套

4、 元素的属性必须有属性值

只要不满足上面的条件就是一个格式不良好的xml文档

只要满足上面的条件就是一个格式良好的xml文档

并且遵守了dtd或者schema就是一个有效的xml文档。

Xml文档是一种标准的结构化文档,可以转换成DOM(Document Object Model),其根节点对应DOM树的根节点。

<book>    <computer>       <name>网上介绍</name>       <author>redarmy</author>    </computer>    <computer>        <name>网上介绍</name>       <author>redarmy</author>    </computer></book>




book


computer


computer


………


computer


name


author

注意:

必须具有根标记且根标记必须唯一

开始标记和结束标记需配对使用

标记不能交错使用

空标记可写成“<标记名/>”的形式

标记对大小写敏感

更多相关文章

  1. XML标记的语义
  2. XML中的标签与元素的使用具体介绍
  3. XML标记语言的基本概念及语法的入门教程介绍(图)
  4. XML学习(一)元素,属性,读取详解
  5. 详解在XML文档中替换元素名称的方法(图)
  6. XML开发基础-XML元素
  7. 详解使用XML Schema定义元素的基本知识(图文)
  8. jscript和vbscript对XML元素属性进行操作的方法
  9. 分享一个jscript与vbscript操作XML元素属性的方法

随机推荐

  1. Android定时器实现的几种方法
  2. Android 修改开机动画(bootanimation)
  3. Android 支持网络协议以及简单用法
  4. Android 基础知识点(持续更新)
  5. android强制隐藏软键盘以及取消EditText
  6. Android Studio 导入so
  7. uiautomatorviewer.bat的使用
  8. 获取apk信息工具(android SDK的aapt工具)
  9. android多框架实现短视频应用、3D手势旋
  10. 自定义Dialog的几种实现方式