DTD .xml文件约束

 什么是DTD?


文档类型定义 (document type definition) (约束)

 什么是XML?


HTML:超文本标记语言
XML:可扩展标记语言

 XML的两种文档约束


DTD和Schema

 XML格式要求(合法XML)


    1)有且只有一个根节点;
    2)由开始标签和结束标签组成;
    3)XML标签区分大小写;
    4)正确嵌套标签;
    5)使用合法的标签名,不能使用特殊符号;
    6)定义有效的属性;

<persons><!-- 有且只有一个根节点 -->
    <person pid="p1" sex="男" qq="aaa" parent="p2">
        <name>张小明</name><!-- 由开始标签和结束标签组成 -->
        <Age>10</Age><!-- XML标签区分大小写,前面大写后面就得大写 -->
        <contact>
            <_phone>1234567</_phone><!-- 使用正确的标签名,不能使用特殊符号,能用下划线 -->
        </contact>
        <br/>
    </person>
    <person pid="p2">
        <name>张大明</name>
        <Age>35</Age>
        <contact>
            <email>123@qq.com</email>
        </contact>
    </person>
</persons>

 使用DTD



在XML中加入DTD申明:

        外部申明:<!DOCTYPE 文档根节点 SYSTEM(PUBLIC) “DTD文件名”>

        内部申明:<!DOCTYPE root[]>

元素定义语法(DTD对元素的限制)

        基本语法:<!ELEMENT 元素名称 元素类型 >

        

        元素分类:EMPTY     空元素      <br/>
                         (#PCDATA)  文本元素   
                         (e1,e2)    混合元素

        元素限制:,(顺序)、|(或,多选一)、?(0或1次),*(1*0=0,0次或多次),                                  +(1+0=1,1次或多次)

属性定义语法(DTD对属性的限制)

        基本语法:<!ATTLIST 元素名称 属性名称 属性类型 设置说明>
        属性类型:ID/CDATA/ENUM (男|女) "男" IDREF

        设置说明:#REQUIRED(必须)/#IMPLIED(可选)

(代码接上一段)

<!DOCTYPE persons[
    <!ELEMENT persons (person+) >
    <!ELEMENT person (name,Age,contact,br?) >
    <!ELEMENT name (#PCDATA) >
    <!ELEMENT Age (#PCDATA) >
    <!ELEMENT contact (email | _phone) >
    <!ELEMENT _phone (#PCDATA) >
    <!ELEMENT br EMPTY >
    <!ELEMENT email (#PCDATA) >
    
    <!ATTLIST person
     pid CDATA #REQUIRED
     sex (男|女) #IMPLIED
     qq CDATA #IMPLIED
     parent CDATA #IMPLIED
    >
]>


特殊符号转义
    &(逻辑与)      -->  &amp;
    >(大于)     -->  &gt;
    <(小于)     -->  &lt;
    ‘(单引号)     -->  &apos;
    “(双引号)     -->  &quot;

<!-- 例如 -->

<property name="connection.url">jdbc:mysql://localhost:3306/t207?useUnicode=true&amp;characterEncoding=UTF-8</property>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值