zoukankan      html  css  js  c++  java
  • 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中使用):%实体名称;

    物随心转,境由心造,一切烦恼皆由心生。
  • 相关阅读:
    Python开发——数据类型【字典】
    Python开发——数据类型【元祖】
    Python开发——数据类型【列表】
    Python开发——基础
    Python开发——数据类型【运算符】
    c#中IList<T>与List<T>
    观察者模式(Observer Pattern)
    中介者模式(Mediator Pattern)
    策略模式(Strategy Pattern)
    命令模式
  • 原文地址:https://www.cnblogs.com/woodrow2015/p/4554945.html
Copyright © 2011-2022 走看看