天天看点

XML知识点滴(3)

XML知识点滴(3)

(引用文章,版权归作者,如需删除请联系我)

XML声明

XML声明部分 含义
<?xml XML声明的起始标记。
Version=”1.0” 版本声明。
Encoding=”gb2312” 编码声明。如果忽略编码声明,XML处理器将尝试使用UTF-8、UTF-16等Unicode编码规则解析文档。
standalone=”yes” 无依赖性声明。表示XML文档的内容不以来外部信息(如DTD)。此声明部分可以忽略,使用此声明,必须写在XML声明的最后。
?> XML声明的结束标记。

n         XML声明在文档中只能出现一次,且必须位于文档的第一行,前面不能有任何字符。

n         文件采用的编码方式要和XML的编码声明保持一致。

n         XML文档总是以一个XML声明开始,其中指明所用XML版本、文档的编码、文档的独立性信息。其格式如下:

              <?xml 版本信息 [编码信息] [文档独立性信息]?>

       中括号([])中的的部分表示是可选信息。

n         版本声明<?xml version=”1.0”?>

n         文档编码声明

       在XML声明中加上文档编码信息,默认是UTF-8,如果要使用中文,我们可以在声明  中加上encoding=”gb2312”,如下所示:

              <?xml version=”1.0” encoding=”gb2312”?>

n         独立文档声明

       如果我们的文档不依赖于外部文档,在XML声明中,我们可以通过standalone=”yes”来声明这个文档是独立的文档。如果文档以来于外部文档,可以通过standalone=”no” 来声明。完整的XML声明如下所示:

              <?xml version=”1.0” encoding=”gb2312” standalone=”yes”?>

文档类型声明

n         DTD(Document Type Definition)文档类型定义。

n         XML从SGML继承了用于定义语法规则的DTD机制,但DTD本身并不要求遵循XML规则,几乎所有的XML应用都是使用DTD来定义的。HTML就有一个标准的DTD文件,所有其组织结构和所有的标签都是固定的。DTD文件也是一个文本文件,通常用”.dtd”作为其扩展名。

n         通过文档类型声明,指出XML文档所用的DTD。文档类型声明有两种形式,一种是声明DTD在一个外部的文件中,如下:

              <!DOCTYPE greeting SYSTEM “hello.dtd”>

       一种是直接在XML文档中给出DTD,如下:

              <?xml version=”1.0” encoding=”gb2312” standalone=”yes”?>

              <!DOCTYPE greeting[<!ELEMENT greeting(#PCDATA)>]>

元素

n         元素(Element)是每个XML文档中不可或缺的部分。每个XML文档至少要有一个元素。

n         在XML中,元素由开始标签(Start tag)、元素内容和结束标签(End tag)构成,对于空元素,由空元素标签构成。

n         在元素开始标签和结束标签之间的文本内容是元素的值。

n         如果一个元素的值为空字符串,也就是开始标签和结束标签之间没有内容,这种元素称为空元素(Empty element)。

n         结束标签和开始标签的大小写必须一致,因为XML是严格区分大小写的。

n         在元素标签左尖括号“<”后面必须紧跟元素名称,不能留有空白。结束标签名称前也不能留有空白。

n         每一个元素有一个用名字标识的类型,同时它可以有一个属性说明集,每一个属性说明有一个名字和一个值。

n         在给元素命名的时候要注意,以“xml”或其他任何匹配((‘X’|‘x’)(‘M‘|‘m’)(‘L’|‘l’))的字符串开头的名字,被保留用于XML规范的当前版本或后续版本的标准化。此外,在给元素命名时,还要遵循下列规范:

1)        名称只能以字符或下划线(_)开头。

2)        名称中可以包含字母、数字、下划线以及其他在XML标准中允许的字符。

3)        名称中不能包含空格。

4)        名称中尽可能不要使用冒号(:),因为冒号在名称空间中被用于分隔名称前缀和本地部分。

n         “元素”和“标签”这两个词具有不同的含义。元素是指开始标签、结束标签以及两者之间的一切内容,包括属性、文本、注释、以及子元素。标签是一对尖括号(<>)和两者之间的内容,包括元素名和所有属性。例如:<font color=”blue”>是一个标签,</font>也是一个标签;而<font color=”blue”>Hello World</font>则是一个元素。

元素的四种形式

n         空元素

              <student/>

n         带有属性的空元素

              <student name=”张三” age=”18”/>

n         带有内容的元素

       <student>

              这是一个学生的信息

              <name>张三</name>

              <age>18</age>

       </student>

n         带有内容和属性的元素

       <student name=”张三”>

              <age>18</age>

       </student>

元素的内容构成

n         元素的内容可以包含子元素、字符数据、字符引用和实体引用、CDATA段。

n         当一个元素仅包含子元素,而没有文本内容时,称其有元素内容(Element content),如元素既包含子元素,又包含文本内容,则称其具有混合内容(Mixed content)。

根元素

n         不被其他元素包含的元素就是文档的根元素(Root element)。或称文档元素(Document element)。

n         一个文档必须有且只有一个根元素。

子元素

n         子元素本身也是元素,被嵌套在上层元素之内。子元素是相对于父元素而言的,如果子元素还嵌套了其他元素,那么它同时也是父元素。

              <students>

                     <student>

                            <name>张三</name>

                            <age>18</age>

                     </student>

              </students>

字符数据

n         在一个元素的内容中,字符数据可以是不包括任何标记的起始定界符和CDATA段的结束定界符的任意字符串,也就是说在元素内容中,字符数据不能有和号(&)和小于号(<),也不能有字符串“]]>”。

n         在CDATA段中,字符数据可以是不包括CDATA段的结束定界符的任意字符串。

n         判断下列元素内容是否合法

              <data>&</data>            错

              <data>/</data>              对

              <data>/></data>            对

              <data><</data>             错

              <data>]]></data>          错