J2EE05DTD

1.什么是DTD?
文档类型定义 (document type definition) (用来约束XML文档)规定子元素的名称以及顺序,元素的属性等

2.什么是XML?
HTML:超文本标记语言
XML:可扩展标记语言

3.XML的两种文档约束
DTD(主要要学的)和Schema

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

   

5.使用DTD
    5.1 在XML中加入DTD申明
        1)内部申明:<!DOCTYPE root[]>
        2)外部申明:<!DOCTYPE 文档根节点 SYSTEM(PUBLIC) “DTD文件名”>

    5.2 元素定义语法(DTD对元素的限制)
        基本语法:<!ELEMENT 元素名称 元素类型 >

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

      元素限制:, 逗号(顺序)

                        | 竖条(或,多选一)

                        ? 问号(0或1次)

                        * 星号(1*0=0,0次或多次)

                        + 加号(1+0=1,1次或多次)

    5.3 属性定义语法(DTD对属性的限制)
    基本语法:<!ATTLIST 元素名称 属性名称 属性类型 设置说明>
    
    属性类型:ID 唯一确定的属性值

                      CDATA 字符数据

                      ENUM (男|女) "男"  枚举类型

                      IDREF 属性值是一个id的引用,引用一个标识的唯一元素

    设置说明:#REQUIRED(必须)

                      #IMPLIED(可选)

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

代码如下:

<!DOCTYPE persons[
	<!ELEMENT persons (person+) >
	<!ELEMENT person (name,age,contact,br?) >
	<!ELEMENT name (#PCDATA) >
	<!ELEMENT age (#PCDATA) >
	<!ELEMENT contact (phone | email) >
	<!ELEMENT phone (#PCDATA) >
	<!ELEMENT email (#PCDATA) >
	<!ELEMENT br EMPTY >
]>
<persons>
	<person>
		<name>张小明</name>
		<age>10</age>
		<contact>
			<phone>1234567</phone>
		</contact>
		<br/>
	</person>
	<person>
		<name>张大明</name>
		<age>35</age>
		<contact>
			<email>123@qq.com</email>
		</contact>
	</person>
</persons>

<!DOCTYPE persons[
	<!ELEMENT persons (person+) >
	<!ELEMENT person (name,age,contact,br?) >
	<!ELEMENT name (#PCDATA) >
	<!ELEMENT age (#PCDATA) >
	<!ELEMENT contact (phone | email) >
	<!ELEMENT phone (#PCDATA) >
	<!ELEMENT email (#PCDATA) >
	<!ELEMENT br EMPTY >
	
	<!ATTLIST person
		 pid ID #REQUIRED
		 sex (男|女) "男"
		 qq CDATA #IMPLIED
		 parent IDREF #IMPLIED
		 
		 >
]>
<persons>
	<person pid="p1" sex="男" qq="aaa" parent="p2">
		<name>张小明</name>
		<age>10</age>
		<contact>
			<phone>1234567</phone>
		</contact>
		<br/>
	</person>
	<person pid="p2">
		<name>张大明</name>
		<age>35</age>
		<contact>
			<email>123@qq.com</email>
		</contact>
	</person>
</persons>

思维导图:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值