zoukankan      html  css  js  c++  java
  • DTD简单使用

    DTD:Document Type Definition

      DTD是一种简单的XML约束模式语言

      DTD文档必须以utf-8或unicode编码

      注释方式与HTML、XML文档相同

    DTD文档的引用:紧跟XML声明语句之后,有两种方式(外部引入及内部嵌入)

    <?xml ... standalone="no"?>
    <!
    DOCTYPE ...>

    外部引入DTD方式:

    有如下两种引用方式:第一种方式为引用本地DTD文件,第二种为公共DTD文件方式(doctype-name一般使用根元素命名)

    1 <!DOCTYPE doctype-name SYSTEM "dtd-url">
    2 <!DOCTYPE doctype-name  PUBLIC "dtd-name" "dtd-url">

    内部嵌入DTD方式:

    1 <!DOCTYPE doctype-name [
    2    ... ... 
    3 ]>

    一个简单的DTD文档如下:

    1 <!ELEMENT bookshelf(book+)>
    2     <!ELEMENT book(name,author,price)>
    3         <!ELEMENT name(#PCDATA)>
    4         <!ELEMENT author(#PCDATA)>
    5         <!ELEMENT price(#PCDATA)>

     

    DTD元素定义

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

    使用规则如下:

    EMPTY: 定义空元素

    ANY: 任何形式

    (#PCDATA): 普通文本

    (<ELE1> <ELE2> <ELE3> ...): 无序元素组

    (<ELE1>,<ELE2>,<ELE3> ...): 有序元素组(要求子元素必须以<ELE1>、<ELE2>、<ELE3>...的顺序出现)

    (<ELE1>|<ELE2>|<ELE3> ...): 仅一个元素

    其中后三种中元素后可以添加通配符(+:出现一次或多次;?:出现0次或一次;*:0或多次;什么都没有表示有且仅有一次)

     

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

     

    DTD属性定义

    <!ATTLIST 元素名称

    Att1 属性类型 设置说明

    ...

    >

    属性类型如下:

    CDATA:字符串

    ENUMERATED

    ID

    ...

    设置说明如下:

    #REQUIRED: 必须设置

    #IMPLIED: 可有可无

    #FIXED "fixed": 固定值

    "default":设置默认值

     

    如:<!ATTLIST Meat kind(chicken|beaf|fish|...) "fish">

     

    DTD实体定义

    实体:即是为一段文本起别名,方便在XML中或DTD中随时引用。分为引用实体和参数实体。

    引用实体在XML中的引用方式为:&实体名;

      <!ENTITY 实体名 "内容">

      <!ENTITY 实体名 SYSTEM "外部XML的URL">  <!-- 将外部XML内容作为实体 -->

    参数实体在DTD中的引用方式为:%实体名;

      <!ENTITY %实体名 "内容">

     

    例如:

      <!ENTITY %TAG "name|email|telephone|address">

      <!ELEMENT Info (%TAG;|birthday)>

    参数实体就是进行严格地替换,可以简化元素、属性的定义

     

  • 相关阅读:
    c语言中的数据变量类型,大小
    表达式* ptr ++和++ * ptr是否相同?
    再论i++ ++i
    Chapter 1 First Sight——2
    如何修改博客样式
    PAT1011
    Chapter 1 First Sight——1
    Preface
    L11,one good turn deserves another
    PAT1010
  • 原文地址:https://www.cnblogs.com/joshua-aw/p/6012078.html
Copyright © 2011-2022 走看看