• DTD技术


    DTD技术
    文档类型定义----Document Type Definition
    用来描述XML文档的结构,一个DTD文档包含:
    1、元素的定义规则
    2、元素之间的关系规则
    3、属性的定义规则

    使用DTD可以:
    每个XML文件可以携带一个自身格式的描述
    不同组织的人可以使用一个通用DTD用来交换数据
    应用程序可以使用一个标准DTD校验从外部接受的XML数据是否有效

    DTD文档的声明以及引用:

    内部DTD
    <!DOCTYPE 根元素 [定义内容]>

    外部DTD文档
    <!DOCTYPE 根元素 SYSTEM "DTD文件路径">

    内外部DTD文档结合
    <!DOCTYPE根元素 SYSTEM "DTD文件路径 [定义内容]>

    ---------------------------
    元素的定义:
    <!ELEMENT NAME CONTENT>
    <!关键字 元素名称 元素类型>

    元素类型:
    EMPTY ---不能包含子元素和文本,但可以有属性(空元素)
    #PCDATA---可以包含任何字符数据,但是不能在其中包含任何子元素
    纯元素类型---只包含子元素,并且这些子元素外没有文本
    ANY----------可以包含任何在DTD中定义的元素内容


    <!ELEMENT 元素名称 EMPTY>

    <!ELEMENT 元素名称 (#PCDATA)>

    <!ELEMENT 元素名称 (人+,家电*)>

    <!ELEMENT 元素名称 ANY> ----将根元素设置为ANY,元素出现的次数和顺序不受限制
    通常一般用在子元素里面

    () 给元素分组
    | 在列出的对象中选择一个
    , 对象按照指定顺序出现
    * 0-多次
    ? 0-1次
    + 1-多次

    <!DOCTYPE CCTV-6 [
    <!ELEMENT CCTV-6(电影+)>
    <!ELEMENT 电影(名称,主演+,类型?,片长)>
    <!ELEMENT 名称 (#PCDATA)>
    <!ELEMENT 主演 (#PCDATA)>
    <!ELEMENT 类型 (#PCDATA)>
    <!ELEMENT 片长 (#PCDATA)>
    ]>

    定义属性的语法:
    <!ATTLIST 元素名称 属性名称 属性类型 属性特点...>

    属性类型——----------------------------------------------
    CDATA --- <!ATTLIST 元素名称 CDATA #REQUIRED>
    表示属性值可以是任何字符(包括数字和中文)
    <木偶 姓名="Pi Luocao"/>
    <木偶 姓名="匹诺曹"/>
    ID----------<!ATTLIST 公司职员
    编号 ID #REQUIRED
    姓名 CDATA #REQUIRED>
    该属性的取值是唯一的

    IDREF/IDREFS----<!ELEMENT 家庭 (人+)>
    <!ELEMENT 人 EMPTY>
    <ATTLIST 人
    relID ID #REQUIRED
    parentID IDREFS #IMPLIED
    name CDATA #REQUIRED
    >
    IDREF属性的值只向文档中其他地方声明的ID类型的值
    IDREFS,同IDREF,但是可以具有由空格分开的多个引用

    Enumerated------<!ATTLIST person
    婚姻状态 (未婚|结婚|离婚) #IMPLIED>
    <!ATTLIST person 性别(男|女) #REQUIRED>
    预定义一些值,属性的值必须在所在的值范围内

    属性特点——
    #REQUIRED
    #IMPLIED
    #FIXED value
    Default value

  • 相关阅读:
    速查快递
    浅谈C#中常见的委托<Func,Action,Predicate>(转)
    C#用扩展方法进行自动生成添加删除对象转换的功能
    sql字符串分组
    PowerDesigner连接SQL Server
    老程序员的下场(转)
    界面设计:一个像素之差产生的距离(转)
    程序员如何活得明白(转)
    真实死锁案例记录
    分享java常用技术教程:dubbo、zookeeper、ActiveMq、多线程、Redis、PowerDesigner等
  • 原文地址:https://www.cnblogs.com/javaxiaodoufu/p/7524042.html
Copyright © 2020-2023  润新知