现在的位置: 首页 > 综合 > 正文

XML学习笔记

2018年05月14日 ⁄ 综合 ⁄ 共 2703字 ⁄ 字号 评论关闭

1.xml:
      EXtensible Markup language,可扩展标记语言.

2.标记的规定:
     <1>标记必须以字母或下划线开头
     <2>标记名称不能包含空格
     <3>标记区分大小写

3.xml文档语法:
     <1>.文件的第一句必须是相关版本的声明
     <2>.属性的值必须使用双引号包含起来
     <3>.特殊字符必须用xml中的特定编码来表示

4.xml声明一般是xml文档的第一行
     <?xml version="1.0" encoding="utf-8" standalone="no"?>

5.xml文件中的元素:
    <1>.一个xml文件中必须有且只有一个根元素
    <2>.子元素都封装在根元素中成树状结构
    <?xml version="1.0" encoding="utf-8"?>
    <books>
         <book>
               <isbn>11111</isbn>
               <name>java</name>
               <price>23</price>
         </book>
         <book>
               <isbn>22222</isbn>
               <name>jsp</name>
               <price>44</price>
         </book>
    </books>

6.DTD:
    Document Type Definition,文档类型定义
    作用:描述xml文档结构
    一个DTD文档包含:
    元素定义规则(ELEMENT)
    元素之间关系规则
    属性的定义规则(ATTLIST)
    可使用的实体(ENTITY)或符号(NOTATION)规则

7.内部DTD(standalone="yes")
   外部DTD(standalone="no")

8.DTD元素定义:
    <!ELEMENT books(book)>
    <!ELEMENT book(isbn,title,price)>
    <!ELEMENT isbn(#PCDATA)>
    <!ELEMENT title(#PCDATA)>
    <!ELENEMT price(#PCDATA)>
     定义一标记元素只含有文本元素
       <!ELEMENT 标记名称 (#PCDATA)>

     定义空标记,不含任何子元素,不含纯文本
       <!ELEMENT 标记名称 EMPTY>

     不对标记做限定,可以是任何纯文本数据,也可以含有子元素
       <!ELEMENT 标记名称 ANY>

9.DTD中特殊的限定符号:
    +:子标记必须出现1次或多次
    *:子标记可以出现0次或多次
    ?:子标记可以出现0次或一次

10.DTD中定义属性:
    <!ATTLIST 元素名称
        属性名称 属性类型 缺省值
        属性名称 属性类型 缺省值
         。。。
    >

    缺省值:可以是字符串或关键字
    关键字:#IMPLED(元素的实例中可以忽略该属性)
                  #REQUIRED(元素的所有实例必须由该属性的值)
                  #FIXED(元素实例中该属性的值必须为指定的固定值)
   字符串:必须有该属性,可以不显示的声明
     属性类型:CDATA(所有属性类型中的其中一种)
     属性值可以是任何字符(包括数字和中文)

    属性命名规则:
       由字母,数字,下划线,点,连接符组成,必须以字母或者下划线开头。

11.一些属性类型介绍:
    CDATA:
       指的是纯文本,即由字符,符号“&”,小于号“<”和引号“""”组成的字符串。

    ID:
       表明该属性的取值必须是唯一的。

    IDREF/IDREFS:
       IDREF类型允许一个元素的属性使用文件中的另一个元素,方法就是把那个元素的ID标识值作为该属性的取值。
       IDREFS同IDREF,但是可以具有由空格分开的多个引用。

    Enumerated:

       事先定义好一些值,属性的值必须在所列出的值的范围内。

12.DTD定义属性实例

    <!ELEMENT 学生信息(学生+)>
    <!ELEMENT 学生(#PCDATA|姓名|年龄|地址)*>
    <!ELEMENT 姓名(#PCDATA)>
    <!ELEMENT 年龄 EMPTY>
    <!ELEMENT 地址(#PCDATA)>
    <!ELEMENT 班级号(#PCDATA)>
    <!ATTLIST 学生
           SID CDATA #REQUIRED
           性别 (男|女) #REQUIRED
           婚姻状态 (已婚|未婚) #IMPLIED
    >

13.DTD实体:
    <1>.定义:
           实体是用于定义引用普通文本或特殊字符的快捷方式的变量。
    <2>.分类:
           按实体内容:可解析实体和不可解析实体
           按逻辑存储:内部实体(DTD文档内定义)和外部实体(外部某个文件)
           按适用范围:一般实体(可出现在xml和dtd中)和参数实体(只可以出现在DTD中)
    <3>.语法:
           定义内部一般实体:(引用方式:&实体名)
           <!ENTITY 实体名 "实体值">
    注意:
           a.不能在元素和属性声明中使用实体
           b.不能产生循环调用
           定义外部一般实体:(引用方式:&实体名)
           <!ENTITY 实体名 SYSTEM "URI/URL">
     注意:
          a.外部实体的文件必须和DTD文件在同一文件夹中
          b.字符编码要统一
          定义内部参数实体:(引用方式:%实体名)
           <!ENTITY %实体名 "文本内容">
          定义外部参数实体:(引用方式:%实体名)
           <!ENTITY %实体名 STYSTEM "外部文件URL地址">
     注意:参数实体只能用于DTD元素和属性的声明中

14.CDATA与PCDATA区别:
           PCDATA是被解析器解析的实体。文本内的标签会被当做标记,实体会被展开,只能用于DTD文档中。
           CDATA是不被解析器解析的实体。文本内的标签不会被当做标记,实体不会被展开,只能用于XML文档中。

15.XML与HTML的比较
    <1>.XML不能替换HTML,是HTML的补充
    <2>.XML标记由架构或文档的作者定义,并且是无限制的。HTML标记则是预定义的,HTML作者只能使用当                     前HTML标准所支持的标记。
    <3>.XML侧重显示数据的结构和关系,HTML数据的形式显示。
    <4>.和HTML相同之处是XML只做显示,不作具体操作。

抱歉!评论已关闭.