根据dtd编写xml的小例子

DTD约束标签

<!ELEMENT 元素名称 类别>   或<!ELEMENT 元素名称 (元素内容)>

 

类别:约束标签的内容

          EMPTY:空标签

          PCDATA:普通字符串(没有子标签)

          ANY : 可以是任何内容(包含子标签)

 

(元素内容): 标签包含子标签的情况

         顺序问题:

                   (A,B,C,D):  按顺序依次出现

                   (A|B|C|D): 任意出现一个(枚举式出现)

         数量问题:

             A: 必须出现1次

             A*: 可以出现0或多次

                   A+:可以出现1或多次

             A?:  可以出现0或1次

约束属性

         <!ATTLIST元素名称 属性名称 属性类型 默认值>

 

默认值:属性是否必须填写

         #REQUIRED属性值是必需的

         #IMPLIED属性不是必需的

    #FIXED value

 

属性类型: 约束属性值

         CDATA值为字符数据 (character data)

         (en1|en2|..)此值是枚举列表中的一个值

         ID  值是唯一的


现在有一个DTD的文件,内容如下:

<!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文件如下:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TVSCHEDULE SYSTEM "test.dtd">
<TVSCHEDULE NAME="one">	<!-- #REQUIRED必须出现的属性 -->
	<CHANNEL CHAN="001"> <!--因为有“+”表示一个或多个  -->
		<BANNER>just do it</BANNER>		<!--#PCDATA: 字符串 -->
		<DAY>			<!--因为有“+”表示一个或多个  -->
			<DATE></DATE>
			<HOLIDAY>暑假</HOLIDAY>	<!-- 二者出现一个 -->
		</DAY>
		<DAY>			<!--因为有“+”表示一个或多个  -->
			<DATE></DATE>
			<HOLIDAY>暑假</HOLIDAY>	<!-- 二者出现一个 -->
		</DAY>
	</CHANNEL>
	<CHANNEL CHAN="002"> 
		<BANNER>just do it</BANNER>
		<DAY>
			<DATE></DATE>
			<HOLIDAY>暑假</HOLIDAY>
			<PROGRAMSLOT VTR="v"> <!-- 属性可以选择要或不要 -->
				<TIME >2016.7.13</TIME>
				<TITLE RATING="r" LANGUAGE="l">今天学习DTD</TITLE> <!-- 属性可以选择要或不要 -->
				<DESCRIPTION></DESCRIPTION>	<!-- ?为可以出现0次或1次 -->
			</PROGRAMSLOT>
		</DAY>
	</CHANNEL>
</TVSCHEDULE>


 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值