加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML简介之DTD约束的相关实例

发布时间:2020-12-15 22:22:11 所属栏目:百科 来源:网络整理
导读:这是一个关于Book的DTD约束文件 Book.dtd !ELEMENT book (bookname,bookprice,author) !ELEMENT bookname (#PCDATA) !ELEMENT bookprice (#PCDATA) !ELEMENT author (#PCDATA) 在外部引用该约束的文件 Book.xml ?xml version = "1.0" encoding = "UTF-8" sta

这是一个关于Book的DTD约束文件

Book.dtd

<!ELEMENT book (bookname,bookprice,author)>

<!ELEMENT bookname (#PCDATA)>
<!ELEMENT bookprice (#PCDATA)>
<!ELEMENT author (#PCDATA)>

在外部引用该约束的文件

Book.xml

<?xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?>
<!DOCTYPE bookshelf SYSTEM "Book.dtd">
<book>
<bookname>java程序设计</bookname>
<bookprice>30元</bookprice>
<author>lijizh1013</author>
</book>

再来看一个将约束写到xml文件中的电视时间表的实例:

<?xml version="1.0" encoding="UTF-8"?>

//约束声明部分
<!DOCTYPE TVSCHEDULE [

<!ELEMENT TVSCHEDULE (CHANNEL+)>
<!ELEMENT CHANNEL (BANNER,DAY+)>
<!ELEMENT BANNER (#PCDATA)>
<!ELEMENT DAY (DATE,(HOLIDAY|PROGRAMSLOT+)+)>
<!ELEMENT HOLIDAY (#PCDATA)>
<!ELEMENT DATE (#PCDATA)>
<!ELEMENT PROGRAMSLOT (TIME,TITLE,DESCRIPTION?)>
<!ELEMENT TIME (#PCDATA)>
<!ELEMENT TITLE (#PCDATA)>
<!ELEMENT DESCRIPTION (#PCDATA)>

<!ATTLIST TVSCHEDULE NAME CDATA #REQUIRED>
<!ATTLIST CHANNEL CHAN CDATA #REQUIRED>
<!ATTLIST PROGRAMSLOT VTR CDATA #IMPLIED>
<!ATTLIST TITLE RATING CDATA #IMPLIED>
<!ATTLIST TITLE LANGUAGE CDATA #IMPLIED>

]>
//正式的xml文件部分

<TVSCHEDULE NAME = "LIJIZH">
<CHANNEL CHAN = "1013">
<BANNER>A</BANNER>
<DAY>
<DATE>1991-10-13</DATE>
<HOLIDAY>100 DAY</HOLIDAY>
</DAY>
</CHANNEL>
</TVSCHEDULE>

其他相关实例:

一个新闻报纸的实例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE NEWSPAPER [

<!ELEMENT NEWSPAPER (ARTICLE+)>
<!ELEMENT ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)>
<!ELEMENT HEADLINE (#PCDATA)>
<!ELEMENT BYLINE (#PCDATA)>
<!ELEMENT LEAD (#PCDATA)>
<!ELEMENT BODY (#PCDATA)>
<!ELEMENT NOTES (#PCDATA)>

<!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED>
<!ATTLIST ARTICLE EDITOR CDATA #IMPLIED>
<!ATTLIST ARTICLE DATE CDATA #IMPLIED>
<!ATTLIST ARTICLE EDITION CDATA #IMPLIED>

<!ENTITY NEWSPAPER "Vervet Logic Times">
<!ENTITY PUBLISHER "Vervet Logic Press">
<!ENTITY COPYRIGHT "Copyright 1998 Vervet Logic Press">

]>
<NEWSPAPER>
<ARTICLE AUTHOR = "lijizh">
<HEADLINE>STUDYING</HEADLINE>
<BYLINE>1990-10-12</BYLINE>
<LEAD>lijizh</LEAD>
<BODY>This is a pare of newspaper!</BODY>
<NOTES>Please look at the newspaper!</NOTES>
</ARTICLE>
</NEWSPAPER>

一个关于国家从中央到地方的最高长官的名称的实例:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE country [ <!ELEMENT country (countries+)> <!ELEMENT countries (province+)> <!ELEMENT province (city+)> <!ELEMENT city (countryside+)> <!ATTLIST countries name CDATA #REQUIRED> <!ATTLIST province name CDATA #REQUIRED stadholder CDATA #REQUIRED> <!ATTLIST city name CDATA #REQUIRED mayor CDATA #REQUIRED> <!ATTLIST countryside name CDATA #REQUIRED alcalde CDATA #REQUIRED> ]> <country> <countries name = "China"> <province name ="HeBeiSheng" stadholder = "张三"> <city name = "BaoDingShi" mayor = "李四"> <countryside name ="BaiGouZhen" alcalde = "王五"> lijizh </countryside> </city> </province> <province name ="HeNanSheng" stadholder = "马六"> <city name = "KaiFengShi" mayor = "橫七"> <countryside name = "GaoYangZhen" alcalde = "竖八"> lijizh </countryside> </city> </province> </countries> </country>

其实对于我们这些Java程序员来说,我们只要能够读懂DTD的约束文件,并且能够将简单的约束文件中的信息反映到我们的xml文件中就已经达到学习的目的了,因为,我们主要使用xml文件写配置文件的,另外,由于DTD约束存在一些弊端,所以在以后我们还可能会用到Schema约束来代替DTD约束。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读