xml之DTD约束

一、什么是DTD约束

DTD(Document Type Definition):定义xml文件的结构,为xml文件提供语法与规则。内容既可以定义在xml文件中,也可以定义在xml文件之外。使用xml进行数据交换的行业或组织可以定义自己的DTD。DTD对于xml是可选的内容。

二、为什么要使用DTD

为了正确交换数据,xml文件需要确定的结构。

三、DTD约束的使用

以下是一个xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE store SYSTEM "store.dtd">    本地引用

<!DOCTYPE store PUBLIC "//UNKNOWN/" "unknown.dtd"> 互联网引用

<store> <product category="手机数码"> <pid>100</pid> <pname>OPPO手机</pname> <price>2500</price> </product> <product category="电脑办公"> <pid>1000</pid> <pname>联想笔记本</pname> <price>3500</price> </product> <product category="大型家电"> <pid>600</pid> <pname>全自动洗衣机</pname> <price>6500</price> </product> </store>

以下是约束它的DTD文件:

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT store (product+)>
<!ELEMENT product (pid,pname,price)>
<!ELEMENT pid (#PCDATA)>    代表普通文本
<!ELEMENT pname (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ATTLIST product category CDATA #REQUIRED>  必须写属性


我们来分析一下上述DTD文件:

(1)使用ELEMENT描述一个元素

<!ELEMENT store (product+)>
子标签出现的次数:

   +:一次或多次   最少一个

   ?:0次或1次

   * :0次或多次

(2)子标签出现的顺序:

<!ELEMENT product (pid,pname,price)>   子标签有顺序,使用逗号隔开
另一种情况:

<!ELEMENT product(name|price),price>   竖线代表或者

(3)属性

<!ATTLIST product category CDATA #REQUIRED>


格式:

ATTLIST 属性所属的标签 属性名称 属性值的类型 属性是否必须写

属性值的类型:CDATA:文本类型;

属性是否必须:必须:#REQUIRED   不必须:#IMPLED

四、总结:

上文讲述了什么是DTD约束,为什么要使用DTD约束,以及DTD约束的一个实际应用的小例子。大千世界,没有规矩不成方圆,xml中的标签可以自定义,但是这种自定义是需要在一种规则的约束下才能更好的发挥它的作用。




评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值