- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.DTD的声明方式分为内部声明与外部声明
内部声明的格式是
!DOCTYPE?根元素?[!ELEMENT?根元素?(元素1,元素2)!ELEMENT?元素1?(#PCDATA)!ELEMENT?元素2?(#PCDATA)]
外部声明的格式分两种,对应的关键字为SYSTEM与PUBLIC
!DOCTYPE?根元素?SYSTEM?外部DTD文件!--?这里的外部DTD文件,若不指明 绝对路径,则必须是和xml文件在同一目录,否则无效?--?
PUBLIC声明的DTD文件通常是一个由权威机构制订的,提供给特定行业或公众使用的DTD。
!DOCTYPE?根元素?PUBLIC?外部DTD的标示名?外部DTD文件路径
2.元素类型声明
!ELEMENT?元素名?元素内容描述
?DTD中使用的元素内容类型有:EMPTY、ANY、Mixed、Elements
EMPTY是指元素不能有任何的内容,但可以有属性:
!--?DTD声明部分?--?!ELEMENT?元素1?EMPTY!ATTLIST?元素1?性别?(男|女)?男?!--?XML文件部分?--元素1?性别=女?/?!--?这里若是以元素1/元素1的形式出现,即使里面没有任何数据,也会产生错误?--
?ANY说明元素可以有任何类型的子元素,也可以是纯文本,还可以为空
!ELEMENT?元素2?ANY?
?这里需要特别注意的是,虽然用ANY定义的元素可以包含其它元素,但必须遵循XML文件的有效的原则,即XML文件规定文件中所使用的任何元素都必须在DTD中给出定义
看下面这段非法的文件:
?
?xml?version=1.0?encoding=gb2312?!DOCTYPE?图书信息?[!ELEMENT?图书信息?ANY]图书信息书名新概念英语/书名/图书信息
编译器会提示这样一条错误信息
This file is not valid: Element 书名 has not been declared.
就是提示书名这个元素没有经过定义,要纠正这个错误,只要在DTD定义部分加入定义语句!ELEMENT 书名 (#PCDATA)就可以了
Mixed允许混合内容使得字符数据和其他元素能在元素内共存,它并不是以关键字的形式存在的
!ELEMENT?元素3?(#PCDATA|子元素1|子元素2)
?
?xml?version=1.0?encoding=gb2312?!DOCTYPE?图书信息?[!ELEMENT?图书信息?(#PCDATA|书名|价格)*!ELEMENT?书名?(#PCDATA)!ELEMENT?价格?(#PCDATA)]图书信息今日新到图书:书名XML实用教程/书名价格¥26.00/价格/图书信息
Elements规定特定子元素必须按规则与顺序出现,子元素后可以用各种元字符来说明出现的次数
!ELEMENT 元素4 (子元素1,子元素2,子元素3)
可能出现的元字符:
元字符 含义 + 出现1次或多次 * 出现0次或多次 ? 出现0次或1次 无符号 只能出现1次 下面的例子中,IT求职的各项子元素必须按顺序和元字符说明的次数来出现
?xml?version=1.0?encoding=gb2312?!DOCTYPE?IT求职?[!ELEMENT?IT求职?(招聘信息)+!ELEMENT?招聘信息?(公司名,招聘职位+,公司网站?,联系方式*)!ELEMENT?公司名?(#PCDATA)!ELEMENT?招聘职位?(#PCDATA)!ELEMENT?公司网站?(#PCDATA)!ELEMENT?联系方式?(#PCDATA)]IT求职招聘信息公司名中兴通讯/公司名!--这里招聘职位出现了2次--招聘职位1.Java高级工程师/招聘职位招聘职位2.C++高级工程师/招聘职位!--这里公司网站出现了1次--公司网站//公司网站!--这里联系方式出现了2次--联系方式地址:深圳市南山区高新技术产业园科技南路中兴通讯大厦/联系方式联系方式电话:0755联系方式/招聘信息招聘信息公司名阿里巴巴/公司名!--这里招聘职位出现了1次--招聘职位软件测试工程师/招聘职位!--没有出现公司网站--!--没有出现联系方式--/招聘信息/IT求职
3.定义有效的元素属性
在DTD中定义属性时,我们采用下面的格式:
!ATTLIST 元素名 属性名 (属性值 属性类型 缺省值)*
例如:
!ATTLIST 作者
姓名 CDATA #REQUIRED
性别 (男|女) 男
联系方式 CDATA #IMPLIED
文档评论(0)