XML DTD

XML约束

在XML技术里,我们可以编写一个文档约束一个XML文档的书写规范

常用的XML约束

XML DTD

XML Schema


XML DTD:Document Type Definition   文档类型定义

实例如下:

book.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 书架 SYSTEM "checkbook.dtd">
<书架>
	<书>
		<书名>JAVA思想</书名>
		<作者>aa</作者>
		<价格>32.2</价格>
	</书>
	
	<书>
		<书名>JSP</书名>
		<作者>bb</作者>
		<价格>12.3</价格>
	</书>
</书架>


checkbook.xml

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT 书架 (书+)>
<!ELEMENT 书 (书名,作者,价格)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 价格 (#PCDATA)>
此两处代码也可放置同一文件里。跟html和css一样。如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 书架[
	<!ELEMENT 书架 (书+)>
	<!ELEMENT 书 (书名,作者,价格)>
	<!ELEMENT 书名 (#PCDATA)>
	<!ELEMENT 作者 (#PCDATA)>
	<!ELEMENT 价格 (#PCDATA)>
]>
<书架>
	<书>
		<书名>JAVA思想</书名>
		<作者>aa</作者>
		<价格>32.2</价格>
	</书>
	
	<书>
		<书名>JSP</书名>
		<作者>bb</作者>
		<价格>12.3</价格>
	</书>
</书架>

XML中DTD的引用分为两种:

一种引用本地的DTD文档

<!DOCTYPE 文档根结点 SYSTEM "文件名称">

另一种是引用公共的文件

<!DOCTYPE 文档根结点 PUBLIC "DTD名称" "DTD文件的URL">

元素定义

<!ELEMENT 元素名称 元素类型>

元素类型:可以是元素内容,或类型。如:

<!ELEMENT 书架(书+)>

<!ELEMENT 书名(PCDATA)>

元素类型如下几种:EMPTY:用于定义空元素,如<br/> <hr/>,ANY:元素内容为任意值

元素内容用逗号分隔,表示内容的出现顺序必须与声明时一致

<!ELEMENT MYFILE (TITLE,AUTHOR,EMAIL)>
元素内容用 | 分隔,表示任选其一。多个中选择一个

<!ELEMENT MYFILE (TITLE|AUTHOR|EMAIL)>
也可以用*,?,+来表示元素出现的次数

+:一次或多次,?:0次或一次,* :0次或多次,如果没有任何附号则表示必须要出现一次

()批量设置,如下:

<!ELEMENT MYFILE((TITILE*,AUTHOR?,EMAIL)*|COMMENT)>

属性定义 attribute
通过ATTLIST为其设置属性

语法格式:

<!ATTLIST 元素名

属性名1 属性值类型 设置说明

属性名 属性值类型 设置说明

............

>

设置说明:

#REQUIRED:必须设置该属性

#IMPLIBD:可以设置也可以不设置

#FIXED:固定为一个值

默认值:可以设置也可不设置,不设置则为默认值

如下:

<!ATTLIST 页面作者
    姓名 CDATA #IMPLIBD
    年龄 CDATA #IMPLIBD
    联系方式 CDATA #REQUIRED
    网站职务 CDATA #FIXED "页面作者"
    个人兴趣 CDATA "上网"
>


属性值类型

CDATA:字符串

ENUMERATED:枚举

ID:唯一值,只能以字母,下划线开始。建议:以后开发中ID要以字母开头

ENTITY:实体,用于为一段内容创建一个别名,以后在XML文档中就可以用别名来使用。

实体分为两种:引用实例,参数实体

引用实体:用于给XML用

语法格式:<!ENTITY 实体名称 “实体内容”>

引用方式:&实体名称;

参数实体:被DTD文件自身使用

语法格式

<!ENTITY % 实体名称 "实体内容">

引用方式:%实体名称; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值