Javawebday9

XML是Extensible Markup Language的缩写,它是一一种类似于HTML的标记语言,称为可扩展标记语言。所谓可扩展,指的是用户可以按照XML规则自定义标记。
HTTP是HyperText Transfer Protocol的缩写,即超
文本传输协议。它是一种请求/响应式的协议,客户端在与
服务器端建立连接后,就可以向服务器端发送请求,这种
请求破称作HTTP请求,服务器端接收到请求后会做出响
应,称为HTTP响应,客户端与服务器端在HTTP下的交互过程
DTD约束是早期出现的一种XML约束模式语言,根据它的语法创建的文件称为DTD文件。
在一个DTD文件中,可以包含元素的定义、元素之间关系的定义、元素属性的定义以及实体符号的定义
DTD 语法在编写 XML 文档时,需要掌握 XML 语法。同理,在编写 DTD 文档时,也需要遵循一定的语法。DTD 的结构一般由元素类型定义、属性定义、实体定义、记号(Notation)定义等构成一个典型的文档类型定义会把将来要创建的 XML 文档的元素结构、属性类型、实体引用等预先进行定义。接下来,针对 DTD 结构中所涉及的语法进行详细讲解。(1)元素定义元素是 XML 文档的基本组成部分,在 DTD 定义中,每一条<IELEMENT…>语句用于定义-个元素,其基本的语法格式如下所示。<!ELEMENT 元素名称元素内容>在上面元素的定义格式中,包含了“元素名称”和“元素内容”。其中,“元素名称”是自定义的名称,它用于定义被约束 XML 文档中的元素;“元素内容”是对元素包含内容的声明,包括数据类型和符号两部分,它共有 5 种内容形式,具体如下。1 )#PCDATA:表示元素中嵌套的内容是普通文本字符串,其中,关键字 PCDATA 是 ParsedCharacter Data 的简写。例如,<!ELEMENT 书名(#PCDATA)>表示书名所嵌套的内容是字衔串类型。2)子元素:说明元素包含的元素。通常用一对圆括号()将元素中要嵌套的一组子元素括起来例如,<!ELEMENT 书(书名,作者,售价)>表示元素书中要嵌套书名、作者、售价等子元素。3)混合内容:表示元素既可以包含字符数据,也可以包含子元素。混合内容必须被定义看个或多个,例如,<IELEMENT 书(#PCDATAI书名)*>表示书中嵌套的子元素书名包含零个乳多个,并且书名是字符串文本格式。4)EMPTY:表示该元素既不包含字符数据,也不包含子元素,是一个空元素。如果在文科中元素本身已经表明了明确的含义,就可以在 DTD 中用关键字 EMPTY 表明空元素。例如,,其中,br是一个没有内容的空元素。5)ANY;表示该元素可以包含任何的字符数据和子元素。例如,<IELEMENT 联系人 ANYh表示联系人可以包含任何形式的内容。但在实际开发中,应该尽量避免使用 ANY,因为除了机元素外,其他使用 ANY 的元素都将失去 DTD 对 XML 文档的约束效果。需要注意的是,在定义元素时,元素内容中可以包含一些符号,不同的符号具有不同的作用

<?xml version="1.0" encoding="UTF-8"?>
<中国>
	<河北>
		<城市>张家口</城市>
		<城市>石家庄</城市>
	</河北>
	<山西>
		<城市>太原</城市>
		<城市>大同</城市>
	</山西>
</中国>

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

<?xml version="1.0" encoding="UTF-8"?>
<!-- 外部引入DTD -->
<!DOCTYPE 书架 SYSTEM "book.dtd">
<!-- 内部引入DTD 
<!DOCTYPE 书架 [
	<!ELEMENT 书架 (+)>
	<!ELEMENT 书 (书名,作者,售价)>
	<!ELEMENT 书名 (#PCDATA)>
	<!ELEMENT 作者 (#PCDATA)>
	<!ELEMENT 售价 (#PCDATA)>
]>
-->
 <书架>
 	<>
 		<书名>Java就业培训教程</书名>
 		<作者>张孝祥</作者>
 		<售价>58.00</售价>
 	</>
 	<>
 		<书名>EJB3.0入门经典</书名>
 		<作者>黎活明</作者>
 		<售价>39.00</售价>
 	</>
 </书架>

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE 购物篮 [
    <!ELEMENT 购物篮 ANY>
    <!ELEMENT 肉 EMPTY>
    <!ATTLIST 肉 品种 (鸡肉|牛肉|猪肉|鱼肉) "鸡肉">
]>
    <购物篮>
        <肉 品种="鱼肉"/>
        <肉 品种="牛肉"/>
        </>
    </购物篮>

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE 联系人列表[
    <!ELEMENT 联系人列表 ANY>
    <!ELEMENT 联系人 (姓名,EMAIL)>
    <!ELEMENT 姓名 (#PCDATA)>
    <!ELEMENT EMAIL (#PCDATA)>
    <!ATTLIST 联系人 编号 ID #REQUIRED>
]>
   <联系人列表>
        <联系人 编号="id1">
             <姓名>张三</姓名>
             <EMAIL>zhang@itcast.cn</EMAIL>
        </联系人>
       <联系人 编号="id2">
             <姓名>李四</姓名>
             <EMAIL>li@itcast.cn</EMAIL>
       </联系人>
</联系人列表>


<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE 联系人列表[
    <!ELEMENT 联系人列表 ANY>
    <!ELEMENT 联系人 (姓名,EMAIL)>
    <!ELEMENT 姓名 (#PCDATA)>
    <!ELEMENT EMAIL (#PCDATA)>
    <!ATTLIST 联系人
                编号 ID #REQUIRED
               上司 IDREF #IMPLIED>
     ]>
<联系人列表>
	<联系人 编号="id1">
		<姓名>张三</姓名>
		<EMAIL>zhang@itcast.org</EMAIL>
	</联系人>
	<联系人 编号="id2" 上司="id1">
		<姓名>李四</姓名>
		<EMAIL>li@itcast.org</EMAIL>
	</联系人>
</联系人列表>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE library[
     <!ELEMENT libarary (books,records)>
     <!ELEMENT books (book+)>
     <!ELEMENT book (title)>
     <!ELEMENT title (#PCDATA)>
     <!ELEMENT records (item+)>
     <!ELEMENT item (data,person)>
     <!ELEMENT data (#PCDATA)>
 	    <!ELEMENT person EMPTY>
 	    <!ATTLIST book bookid ID #REQUIRED>
 	    <!ATTLIST person name CDATA #REQUIRED>
 	    <!ATTLIST person borrowed IDREFS #REQUIRED>
 	]>
<library>
	<books>
			<book bookid="b0101">
				<title>Java就业培训教材</title>
			</book>
			<book bookid="b0102">
				<title>Java Web开发内幕 </title>
			</book>
			<book bookid="b0103">
				<title>Java开发宝典</title>
			</book>
	</books>
	<records>
		<item>
			<data>2013-03-13</data>
			<person name="张三" borrowed="b0101 b0103" />
		</item>
		<item>
			<data>2013-05-23</data>
			<person name="李四" borrowed="b0101 b0102 b0103" />
		</item>
	</records>
</library>

在这里插入代码片
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值