微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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,price)>   子标签有顺序,使用逗号隔开
另一种情况:

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

(3)属性

<!ATTLIST product category CDATA #required>


格式:

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

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

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

四、总结:

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

原文地址:https://www.jb51.cc/xml/294133.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。