zoukankan      html  css  js  c++  java
  • XML学习总结二——DTD

    主要用处是约束XML。

    1.DTD分为内部DTD外部DTD两类;

    内部DTD:将DTD定义在XML文档的内部

    <!DOCTYPE  根元素名  [
        元素描述
    ]>

    外部DTD

    <!DOCTYPE 根元素名  SYSTEM  “DTD文件名">

    外部DTD的优势:
    定义一份DTD文档,就可以方便地被多个XML文档共享
    当语义约束需要改变时,无需为每份XML文档改变DTD定义,只需改变它们共享的外部DTD即可

    2.声明元素:DTD必须定义XML文档中允许出现的所有元素
    <!ELEMENT 元素名称  元素类别>

    或者

    <!ELEMENT 元素名称  (元素内容)>

    元素类别/元素内容:
    ANY:定义任意类型元素,这种元素可以是字符串,也可以包含子元素,也可以是空元素
    EMPTY:定义空元素,不能包含子元素,也不可以包含字符串值
    #PCDATA:定义元素的内容只能是字符串,不能包含其他子元素,也不可以是空元素
    包含子元素:定义元素的子元素之间的顺序和出现的频率等
    混合类型:定义元素的取值是几个确定的类型的混合

    3.定义子元素

    <!ELEMENT 元素名称  (子元素名)>

    子元素的出现频率
    通过在元素声明后加上特殊标记,可以定义元素出现的频率:
    +:表明子元素可以出现1次或多次
    *:表明子元素可以出现0次或多次
    ?:表明子元素 可以出现0次或1次
    无标记:表明子元素只能且必须出现一次

    4.定义元素属性

    <!ATTLIST 所属的元素名  属性名称  属性类型  属性默认值>

    语法

    描述

    “属性值”

    设置属性默认值

    #REQUIRED

    属性值是必需的

    #IMPLIED

    属性不是必需的

    #FIXED value

    属性值是固定的

    5.实体
    DTD中允许用户自定义实体,所谓实体定义类似于C语言的宏变量,即为一段字符串数据提供一个别名,实体被声明后,就可在其它地方被引用
    DTD中定义的实体,可以在XML文档中引用,也可以在DTD中引用
    实体类别

    image

    实体的作用:
    提高代码复用,方便维护
    XML中使用一些特殊符号时,会使XML解析器混淆,因此需要为这些符号定义为实体,例如大于或小于符号等,系统已定义好这些实体
    对于长度较长并且需要反复使用到的字符串,为了减少字符输入量,可以将其定义为实体

    定义内部实体:只能在XML中引用

    <!ENTITY  实体名称   “实体值”>

    XML中使用实体

    &实体名;


    定义外部实体:不在DTD中定义,在外部文件中指定

    <!ENTITY  实体名称  SYSTEM   “实体所在文件的URI/URL">

    引用

    &实体名;

    定义参数实体:只能在DTD中引用

    <!ENTITY  %  实体名称   “实体值”>

    DTD中引用参数实体

    %实体名;

    6.定义命名空间
    通过使用xmlns或xmlns:prefix属性来定义命名空间
    命名空间定义在元素的开始标签之中

    定义:xmlns[:prefix] = "namespaceURI“
    使用:<prefix:元素名/属性名>

  • 相关阅读:
    sql 表连接
    easyui datagrid 列的内容超出所定义的列宽时,自动换行
    MySQL中函数CONCAT及GROUP_CONCAT
    第6章 Selenium2-Java 自动化测试模型
    第4章 Selenium2-java WebDriver API (三)
    第4章 Selenium2-java WebDriver API (二)
    第4章 Selenium2-java WebDriver API (一)
    第2章 Selenium2-java 测试环境搭建
    jsp导入外部样式
    第一章 Slenium2-Java 自动化测试基础
  • 原文地址:https://www.cnblogs.com/zjp1997/p/6648936.html
Copyright © 2011-2022 走看看