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>
本文通过一个具体的个人简历示例,介绍了如何使用DTD(Document Type Definition)来定义XML文档的结构和格式。详细展示了DTD的基本语法及如何在XML文档中进行引用。
1494

被折叠的 条评论
为什么被折叠?



