XML和DTD学习1

DTD实际就是一种定义XML格式的语法。

DTD中所有关键字必须大写

DTD定义格式如下:<!DOCTYPE 根元素名称 [

   <!ELEMENT  根元素名称 (子元素 | 数据类型)>

   <!ELEMENT  子元素名称 (相对子元素 | 数据类型)>

]>

DTD文件可以和xml文件在同一个文件中,亦可以不在同一文件中,可以在xml文件引进外部DTD文件,在这里我先介绍前面一种情况。

在这里我写了一个xml格式的个人简历和其DTD定义

<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE resume[
<!ELEMENT resume (BasicMessage,skills+,interest*,enducation_experience+,train_experience*,project_experience*)>
<!ELEMENT BasicMessage (name,age,sex,educational,school,professional,spouse?,contact_way,address?)>
<!ELEMENT skills (#PCDATA)>
<!ELEMENT interest (#PCDATA)>
<!ELEMENT enducation_experience (date_to_date,school_name)>
<!ELEMENT date_to_date (#PCDATA)>
<!ELEMENT school_name (#PCDATA)>
<!ELEMENT train_experience (date_to_date,train_name,train_company)>
<!ELEMENT date_to_date (#PCDATA)>
<!ELEMENT train_name (#PCDATA)>
<!ELEMENT train_company (#PCDATA)>
<!ELEMENT project_experience (project_name,how_long,tool,language,project_description)>
<!ELEMENT project_name (#PCDATA)>
<!ELEMENT how_long (#PCDATA)>
<!ELEMENT tool (#PCDATA)>
<!ELEMENT language (#PCDATA)>
<!ELEMENT project_description (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ELEMENT educational (#PCDATA)>
<!ELEMENT school (#PCDATA)>
<!ELEMENT professional (#PCDATA)>
<!ELEMENT spouse (#PCDATA)>
<!ELEMENT contact_way (telephone | cellphone)>
<!ELEMENT address (#PCDATA)>
]>
<resume>
	<!-- 个人的基本信息在DTD中要求是必须有的 -->
	<BasicMessage>
		<!--在xml中子元素出现顺序必须和DTD中定义子元素顺序相一致,其中'#PCDATA'表示字符数据 -->
		<name>凤清华</name>
		<age>26</age>
		<sex>男</sex>
		<school>皖江学院</school>
		<professional>电子信息</professional>
		<educational>本科</educational>
		<spouse>李元利</spouse>
		<!--在该子元素定义中有定义了两个子元素,但这两个子元素只能有一个出现,使用'|'来分隔两个子元素定义的 -->
		<contact_way>
			<cellphone>12345677890</cellphone>
		</contact_way>
		<!-- 家庭住址在DTD中是以'?'定义的,表示该元素可以出现一个或者0个-->
		<address>安徽</address>
	</BasicMessage>
	<!--个人技能在DTD中以'+'形式结尾,表示该元素可以有一个和多个 -->
	<skills>java</skills>
	<skills>ejb</skills>
	<!--个人兴趣爱好在DTD中以'*'结尾,表示该元素可以有任意个(也包括0个) -->
	<interest>篮球</interest>
	<interest>泡妞</interest>
	<!--教育经历与个人技能相似,但其内部具有子元素,子元素出现顺序必须和DTD中声明元素顺序相一致 -->
	<enducation_experience>
		<date_to_date>2005-9~2009-7</date_to_date>
		<school_name>皖江学院</school_name>
	</enducation_experience>
	<!--培训经历 -->
	<train_experience>
		<date_to_date>2008-12~2009-5</date_to_date>
		<train_name>java培训</train_name>
		<train_company>达内科技</train_company>
	</train_experience>
	<!--项目经验 -->
	<project_experience>
			<project_name>项目名称</project_name>
			<how_long>持续时间</how_long>
			<tool>使用工具</tool>
			<language>开发语言</language>
			<project_description>项目描述</project_description>
	</project_experience>
	<!--在 xml的DTD中每个元素都应当加以声明 DTD定义形式<!DOCTYPE 根元素 [在这里定义DTD元素类型,在DTD中声明一个元素必须以<!ELEMENT 元素名称 (类型或者子元素)> DTD中所有关键字必须是大写]>,它必须出现在xml声明之后-->
</resume>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值