zoukankan      html  css  js  c++  java
  • DTD总结

    DTD 可以检测 XNM 文档的结构是否正确,就好像文章中用来保证结构正确的语法规则一样。

    引入 DTD

    1、引入私有的 DTD 文件,URI 可以使相对地址或绝对地址

    <!DOCTYPE 根元素的名称 SYSTEM "外部 DTD 文件的 URI">

    2、引入公共的 DTD 文件

    <!DOCTYPE 根元素的名称 PUBLIC "DTD 的名称" "外部 DTD 文件的 URI">

    DTD 名称只能包含 ASCII 字母和数字字符、空格、回车符、换行符和一些标点符号:-'()+,./?=;!@#$%*_ 。规则是:

    a//DTD 所有者名称 //DTD 文档类型 //ISO639 语言标识符

      若 DTD 是 ISO 标准则 a=ISO,若是非 ISO 的标准组织批准的 DTD 则 a=+,若非标准组织批准的 DTD 则 a=-。

    DTD 元素定义

    语法格式:

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

    举例:

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

    使用规则:

    (#PCDATA)
    普通文本 parsed character data 的简写
    (书名, 作者, 售价)
    表示元素当中嵌入一堆子元素
    (书名, #PCDATA)
    子元素 和普通文本字符串
    EMPTY
    表示元素中的内容为空
    例如:<!ELEMENT HR EMPTY>定义的元素形式为<HR />
    ANY
    表示可以为上述任何情况

    定义元素出现的顺序:
    每条元素定义语句的顺序是无关紧要的
    具有不同用途的元素不能使用相同的元素名
    一个元素的各个组成成份之间可以有各种关系:
    <!ELEMENT MYFILE (TITLE AUTHOR EMATL)> 表示 xml 中子元素的出现顺序可以是随机的,只要最终出现即可
    <!ELEMENT MYFILE (TITLE,AUTHOR,EMATL)> 表示 xml 中子元素的出现顺序必须按照定义的顺序出现
    <!ELEMENT MYFILE (TITLE|AUTHOR|EMATL)> 表示 xml 中子元素只能出现其中一个
    在元素的使用规则中可以定义子元素的出现的次数:
    (MYFILE+) 表示此元素可以出现一次或者多次
    (MYFILE?) 表示此元素可以出现一次或者零次
    (MYFILE*) 表示此元素可以出现零次或者多次
    (MYFILE) 表示此元素必须且只能出现一次
    一对圆括号可用于将括在其中的内容组合成一个可统一操作的分组,分组可以嵌套更小的分组
    例如 : <!ELEMENT MYFILE ((TITLE*, AUTOHOR?,EMATL)* | COMMENT)>

    属性定义

    语法格式:
    <!ATTLIST 元素名
    属性名 1 属性类型 设置说明
    属性名 2 属性类型 设置说明
    ……
    >
    此语法只能定义一个元素的属性,该语法定义的属性都属于一个元素

    <!ATTLIST MYFILE
    NAME CDATA #IMPLIED
    AGE CDATA #IMPLIED
    INFO CDATA #REQUIRED
    JOB CDATA #FIXED "MYFILE"
    LIKE CDATA "INTER"
    >
    设置说明:
    #REQUIRED 表示这个属性必须被设置
    #IMPLIED 表示可有可无
    #FIXED 表示属性取值总是为固定值 需要为其设置固定值例如"MYFILE"
    直接使用默认值 也可以设置这个属性也可以不设置,例如 LIKE 若不设置则默认为"INTER"

    类型:
    CDATA 表示类型为普通文本字符串
    ENUMENRATED 表示为枚举类型,属性的类型为固定几个
    ID 唯一的用于标识某一元素
    IDREF IDREFS

    实体定义

    实体的根本作用是为一段文本内容创建一个别名,以后在 xml 文档中就可以多次引用这个别名,
    xml 解析器程序将把 xml 文档中出现的别名引用转变成其所对应的文本内容。
    实体分为引用引用实体和参数实体
    引用实体:

    在 dtd 文件中定义,在 xml 文件中引用
    语法格式:
    <!ENTITY 实体名称 "实体内容"> 直接替换实体内容
    <!ENTITY 实体名称 SYSTEM "外部 xml 文档的 URL"> 将引用的 xml 文件插入引用的位置
    引用方式:
    & 实体名称 ;

    参数实体:
    在 dtd 文件中定义,在 dtd 文件中引用
    语法格式:
    <!ENTITY % 实体名称 "实体内容" >
    引用方式:
    % 实体名称 ;
    可将参数实体用于定义属性中
    <!ENTITY % common.attributes
    ' id ID #IMPLIED
    account CDATA #REQUIRED
    >
    <!ATTLIST purchaseOrder %common.attributes;>
    <!ATTLIST item %common.attributes;>

  • 相关阅读:
    kibana简单使用
    全文检索 高亮显示 数据库同步添加
    算法: Reverse Bits 反转位收藏
    算法:Number of 1 Bits 收藏
    JS创建二维数组
    查询状态在1,2,5,7的记录-oracle
    oracle 修改某字段,判断是否为空,如果为空赋默认值
    在运筹学中什么样的解决方案是最优的
    项目开发失败
    筛选符合条件的数据后,如何做数据源,绑定repeater
  • 原文地址:https://www.cnblogs.com/freeabyss/p/3217156.html
Copyright © 2011-2022 走看看