dtd的约束规则(下)

dtd定义属性

语法

  • <!ATTLIST 元素名称 属性名称 属性类型 属性的约束 >

属性类型

  • CDATA: 字符串
  • <!ATTLIST birthday ID1 CDATA #REQUIRED >
  • 枚举 : 表示只能在一定的范围内出现值,但是只能每次出现其中的一个。
  • <!ATTLIST age ID2 (AA|BB|CC) #REQUIRED >
  • ID:值只能是字母或者下划线开头
  • <!ATTLIST name ID3 ID #REQUIRED >

属性的约束

  • #REQUIRED:属性必须存在。
  • #IMPLIED:属性可有可无。
  • #FIXED: 表示一个固定值 #FIXED “AAA”,属性的值必须是设置的这个固定值。<!ATTLIST sex ID4 CDATA #FIXED "ABC" >
  • 直接值:不写属性,使用直接值,写了属性,使用设置那个值。<!ATTLIST school ID5 CDATA "WWW" >

实体的定义

  • 语法<!ENTITY 实体名称 "实体的值">
  • <!ENTITY TEST "HAHAHEHE"> 使用实体 &实体名称; 比如 &TEST;
  • 定义实体需要写在内部dtd里面, 如果写在外部的dtd里面,有某些浏览器下,内容得不到。

根据dtd文件编写xml示例

<!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 version="1.0" encoding="UTF-8"?>
<!DOCTYPE TVSCHEDULE SYSTEM "TV.dtd">
<TVSCHEDULE NAME="">
	<CHANNEL CHAN="">
		<BANNER></BANNER>
		<DAY>
			<DATE>2022-3-30</DATE>
			<HOLIDAY></HOLIDAY>
			<HOLIDAY></HOLIDAY>
			<HOLIDAY></HOLIDAY>
			<PROGRAMSLOT VTR="">
				<TIME></TIME>
				<TITLE LANGUAGE="" RATING=""></TITLE>
				<DESCRIPTION></DESCRIPTION>
			</PROGRAMSLOT>
		</DAY>
		
	</CHANNEL>
</TVSCHEDULE>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值