006_02XML约束之DTD

  XML技术中,可以编写一个文档来约束一个XML的书写规范,这个文档称之为约束。

常用的约束技术:

  XML DTD

  XDR

  SOX

  XML Schema

DTD快速入门:

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

  

DTD文档的语法主要涉及以下内容的定义:

  定义元素

    在DTD文档中使用ELEMENT关键字来声明一个XML元素。

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

      使用规则:

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

        EMPTY:用于指示元素的主体为空。比如<br/>

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

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

          定义子元素及描述它们的关系:

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

               如: <!ELEMENT FILE (TITLE,AUTHOR,EMAIL)

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

              如:<!ELEMENT FILE (TITLE|AUTHOR|EMAIL)

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

              如果元素后面没有+*?:表示必须且只能出现一次

              +:表示至少出现一次,一次或多次

              *:表示可有可无,零次、一次或多次

              ?:表示可以有也可以无,有的话只能有一次。零次或一次

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

  定义属性

    在DTD文档中使用ATTLIST关键字来为一个元素声明属性。

    语法:<!ATTLIST 元素名 属性名1 属性值类型 设置说明 属性名2 属性值类型 设置说明 … >

      属性值类型:

        CDATA:表示属性的取值为普通的文本字符串

        ENUMERATED (DTD没有此关键字):表示枚举,只能从枚举列表中任选其一,如(鸡肉|牛肉|猪肉|鱼肉)

        ID:表示属性的取值不能重复

      设置说明

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

        #IMPLIED:表示该属性可有可无

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

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

    定义实体

      定义实体就是为一段内容指定一个名称,使用时通过这个名称就可以引用其所代表的内容。

      在DTD文档中使用ENTITY关键字来声明一个实体。

      实体可分为:引用实体和参数实体,两者的语法不同

      引用实体

        概念:在DTD中定义,在XML中使用

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

        引用方式(注意是在XML中使用):&实体名称;

      参数实体

        概念:在DTD中定义,在DTD中使用

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

        引用方式(注意是在DTD中使用):%实体名称;

物随心转,境由心造,一切烦恼皆由心生。
原文地址:https://www.cnblogs.com/woodrow2015/p/4554945.html