XML学习笔记

来源:互联网 发布:淘宝网店名称大全 编辑:程序博客网 时间:2024/06/01 22:27
 

XML属性:

  一个标签可以有u盾讴歌属性,每个属性都有它自己的名称和取值。

  属性值一定要用双引号或者单引号引起来

  定义属性必须遵循与标签相同的明明规范

  在XML技术中,标签属性所代表的信息,也可以被代称用子元素的形式来描述。

XML注释:

格式:采用:<!—注释-->格式。

注意:XML生命之前不能有注释。

  XML的注释不能嵌套。

 

CDATA区:在编写XML文件时,有些内容可能不想让解析引擎解析执行,而是当做原始内容处理,此时,可以把这些内容放入CDATA区里。这些内容,将原封不动地输出。格式如:<![CDATA[]]>

      效果图如下:

     

转义字符:

特殊字符

替代字符

&

&amp;

&lt;

&gt;

&quot;

&apos;

 

XML约束

常用的约束技术:    XML DTD XML schema

DTDDocument Type Definition),全称为文档类型定义。

例:

book.xml

<?xmlversion="1.0" encoding="UTF-8"?>

<!DOCTYPE书架 SYSTEM"book.dtd">

<书架>

      <书>

           <书名>复兴之路</书名>

           <作者>大米</作者>

           <售价>100元</售价>

      </书>

      <书>

           <书名>大米的小米</书名>

           <作者>米粒儿</作者>

           <售价>100元</售价>

      </书>

      <阿毛>小猫咪

      </阿毛>

</书架>

 

 

 

 

book.xml对应的book.dtd

<!ELEMENT书架 (书+)>                      //ELEMENT元素定义

<!ELEMENT书 (书名,作者,售价)>

<!ELEMENT书名 (#PCDATA)>

<!ELEMENT作者 (#PCDATA)>

<!ELEMENT售价 (#PCDATA)>

 

DTD约束语法细节:

n  元素定义

n  属性定义

n  实体定义

元素定义1

在DTD文档中使用ELEMENT声明一个XML元素,语法格式如下所示:

<!ELEMENT  元素名称  元素类型>

元素类型可以是元素内容、或类型

1.    如为元素内容:则需要使用()括起来,如

<!ELEMENT   书架(书名,作者,售价)>

      <ELEMENT   书名(#PCDATA)>

2.    如为元素类型,则直接书写,DTD规范定义了如下几种类型:

l  EMPTY:用于定义空元素,例如:<br/><hr/>

l  ANY:表示元素内容为任意类型。

n        实体定义

元素定义2

l  元素内容中可以使用如下方式,描述内容的组成联系

n  用逗号分隔,表示内容的出现顺序必须与声明时一致。

n  <!ELEMENT   MYFILE(TITLE,AUTHOR,EMAIL)>

n  用|分隔,表示任选其一,即多个只能出现一个

n  <!ELEMENT  MYFILE(TITLE|AUTHOR|EMAIL)>

l  在元素中也可以使用+、*、?等符号表示元素出现的次数:

n  +:一次或多次(书+)

n  ?:零次或一次(书?)

n  *零次或多次(书*)

l  也可以使用圆括号()批量设置,如下:

n  <!ELEMENT MYFILE((TITLE*,AUTHOR?,EMAIL)*|COMMENT)>

 

属性定义:

       XML文档中的标签属性需通过ATTLIST为其设置属性:(ATT----->attribute)

     语法格式:

      <!ATTLIST  元素名

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

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

           …….

      >

        属性声明举例:

  <!ATTLIST  商品

            类别   CDATA  #REQUIRED         意即为:characterDATA   必须写

            颜色   CDATA  #IMPLIED            意即为:可选

      >

      对应的XML文件为:

      <商品  类别=”服装”  颜色=”黄色”>…</商品>

      <商品 类别=”服装”>…</商品>

      <商品>…</商品>

          属性定义中的“设置说明”

l  #REQUIRED;     必须设置该属性

l  #IMPLIED;      可以设置也可以不设置

l  #FIXED;         说明该属性的取值固定为一个值,在XML文件中不恩能够为该属性设置其他值,单需要为该属性提供这个值

l  直接使用默认值:在XML中可以设置该值,也可以不设置该属性值。若没设置,则使用默认值。

       <!ATTLIST  页面作者

      姓名CDATA  #IMPLIED

      年龄  CDATA  #IMPLIED

      联系信息  CDATA  #REQUIRED

      网站职务  CDATA  #FIXED“页面作者“

      个人爱好  CDATA  “上网”

      >

 常用属性值类型

l  CDATA:表示属性值为普通文本字符串。

l  ENUMERATED

l  ID

l  ENTITY(实体)

属性值类型------>ENUMERATED

        属性的类型可以是一组取值的列表,在XML文件中设置的属性值只能是这个列表中的某个值(枚举)

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

        <!DOCTYPE   购物篮 [

           <!ELEMENT  肉  EMPTY>

           <!ATTLIST    肉   品种(鸡肉|牛肉|猪肉|鱼肉|)“鸡肉“>

        ]>

        <购物篮>

           <肉  品种=“鱼肉“/>

           <肉  品种=“牛肉“/>

           <肉/>

        </购物篮>

            属性值类型----->ID

          表示属性的设置值为一个唯一值。

                 ID属性的值只能由字母或下划线开始,不能出现空白字符

                 例如:

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

  <!DOCTYPE  联系人列表 [

        <!ELEMENT  联系人列表  ANY>

        <!ELEMENT    联系人(姓名,EMAIL)>

        <!ELEMENT    姓名(#PCDATA)>

        <!ELEMENT    EMAIL(#PCDATA)>

        <!ATTLIST    联系人  编号 ID    #REQUIRED>

  ]>

<联系人列表>

  <联系人  编号=“a1”>

        <姓名>张三</姓名>

        <EMAIL>YDTECH@sina.com</EMAIL>

  </联系人>

  <联系人  编号=“a2”>

        <姓名>李四</姓名>

        <EMAIL>lisi@sina.com</EMAIL>

  </联系人>

</联系人列表>

实体定义

l  实体用于为一段内容创建别名,以后在XML文档中就可以使用别名引用这段内容了。

l  在DTD定义中,一条<!ENTITY…>语句用于定义一个实体。

l  实体可以分为两种类型:引用实体和参数实体。

1、实体定义------>引用实体

        引用实体主要在XML文档中被应用

        语法格式:

           <!ENTITY   实体名称   “实体内容“>:直接转变成实体内容

        引用方式:

           &实体名称;

        举例:

           <!ENTITY   copyright   “I  am  a programmer”>

           ……

           引用时:&copyright;

 

2、实体定义------>参数实体

        参数实体被DTD文件自身使用

        语法格式:

             <!ENTITY  %   实体名称   “实体内容“>

                 引用方式:  %实体名称;

        举例1:

        <!ENTITY  % TAG_NAMES“姓名|EMAIL|电话|地址“>

        <!ELEMENT  个人信息(%TAG_NAMES;|生日)>

        <!ELEMENT   客户信息(%TAG_NAMES;|公司名)>

        举例2:

        <!ENTITY  %common.attributes”id   ID #IMPLIED    account   CDATA #REQUIRED”

        >

        …

        <!ATTLIST   purchaseOrder   %common.attributes;>

        <!ATTLIST       item  %common.attributes;>

 

如何引用DTD约束?

XML文件使用DOCTYPE声明语句来致命它所遵循的DTD文件,DOCTYPE声明语句有两种形式:

  当引用的文件在本地时,采用如下方式:

<!DOCTYPE   文档根节点   SYSTEM    “DTD文件的URL”>

例如:<!DOCTYPE   书架  SYSTEM   “book.dtd”>

  当引用的文件时一个公共的文件时,采用如下方式:

<!DOCTYPE  文档根节点  PUBLIC   “DTD名称”  “DTD文件的URL”>

例如:<!DOCTYPE  web-app   PUBLIC  “-//Sun microsystem.Inc//DTD……..//EN” http://javasun.com/dtd/web-app_2_3.dtd>