北京酒店团购网站建设wordpress静态化链接
北京酒店团购网站建设,wordpress静态化链接,包装设计网上接单,大型网一、DTD介绍 Document Type Definition#xff1b; DTD是一种XML的约束方式#xff0c;除了此种约束方式外#xff0c;还有XSchema#xff0c;XSchema比DTD的约束能力还要强#xff0c;因此DTD正在逐渐淘汰#xff1b; DTD的目的就是约束XML标签的写法#xff1b;比如在…一、DTD介绍 Document Type Definition DTD是一种XML的约束方式除了此种约束方式外还有XSchemaXSchema比DTD的约束能力还要强因此DTD正在逐渐淘汰 DTD的目的就是约束XML标签的写法比如在我们struts2开发当中编写struts.xml时需要遵循的规则就是通过DTD进行约束的因此我们在开发当中通过Eclipse导入DTD文件便于开发提示如果在开发中开发人员不遵循DTD的规范则会出现错误提示
strutspackage name namespace extendsaction/action /package/struts XML约束的重要性在编写XML时对于XML进行约束是非常重要的因为如果对于XML不约束则会让开发人员很难掌握 而DTD通常是由框架设计人员定义的一般的开发人员只需要在XML中遵循DTD规范编写XML即可
二、导入DTD 如果要导入DTD可以通过两种方式 (1)在XML中直接编写 (2)在专门的DTD文件中编写然后在XML中通过特定的语句导入DTD文件 1、在XML中直接编写语法如下 [html] view plaincopy !DOCTYPE 根节点[ ......... ] 2.XML文件中导入DTD文件 此种方式需要考虑两个情况 (1)如果是本地文件则 [html] view plaincopy !DOCTYPE 根节点 SYSTEM dtd的URL 此处的URL指的是比如 F:\1.dtd (2)如果是共享文件则 [html] view plaincopy !DOCTYPE 根节点 PUBLIC dtd名称 dtd的URL 三、DTD语法 在DTD中可以定义XML标签的顺序、个数属性的值实体 1.XML元素定义 语法如下
!ELEMENT 元素名称 元素类型 //定义元素的类型但是只能是 ANY表示任意类型或EMPTY空元素
!ELEMENT 元素名称 (元素内容) //定义元素的内容一定要加上 对于元素内容
----可以定义子元素的名称比如
!ELEMENT 元素名称 (子元素1子元素2子元素3) 表示3个子元素只能出现一次并且按照此顺序出现
!ELEMENT 元素名称 (子元素1|子元素2|子元素3) 表示3个子元素中只能出现一个
我们还可以定义子元素的个数比如
(1)1次或多次比如 (name)表示此name元素只能出现1次或多次。
(2)?0次或1次比如(name)表示此name元素只能出现0次或1次。
(3)*0次或多次比如(name*)表示此name元素任意出现几次。
(4)无只能一次比如(name)表示此name元素只能出现1次。
对于元素内容
----也可以定义子元素内容的类型比如#PCDATA表示字符串 举例 [html] view plaincopy !DOCTYPE personlist [ !-- 根节点为personlist-- !ELEMENT personlist (person) !-- personlist的子元素为person并且可以出现1次或多次-- !ELEMENT person (name,age,salary) !-- person的子元素是nameagesalary并且可以出现一次并且出现顺序以此顺序为准-- !ELEMENT name ANY !--name可以使任意类型 -- !ELEMENT age (#PCDATA) !-- age可以是字符串-- !ELEMENT salary (#PCDATA) !-- salary可以是字符串-- ] 从以上可以看出DTD不可以定义数字等类型此为DTD的缺陷 2.XML属性定义 语法如下
!ATTLIST 标签名 属性名1 属性类型 属性说明 属性名2 属性类型 属性说明 属性类型可以是
(1)CDATA最普通的字符串
(2)枚举即值1|值2|值3需要括号
(3)ID属性值需要以字母或下划线开头
属性说明可以是
(1)#REQUIRED必须设置
(2)#IMPLED可选值即此属性可以设置也可以不设置
(3)#FIXED固定值通常语法为#FIXED 固定值
(4)默认值 举例 [html] view plaincopy !DOCTYPE personlist [ !ELEMENT personlist (person) !ELEMENT person (name,age,salary) !ELEMENT name ANY !ELEMENT age (#PCDATA) !ELEMENT salary (#PCDATA) !ATTLIST person aaa CDATA #REQUIRED !-- -- bbb CDATA #IMPLIED !-- 可选属性-- ccc CDATA #FIXED xiazdong !--固定值不需要设置 -- ddd CDATA XZDONG !--默认值为XZDONG, 可以自己设置 -- eee ID #REQUIRED !--ID -- fff (1|2|3) 1 !--枚举值默认为1 -- ] 3、XML实体定义 实体类似于一个可重用常量或者说是ant中的classpath可以被引用
语法如下
!ENTITY 实体名称 实体内容
引用实体语法 实体名称 注意最后的“”一定需要 注意引用实体必须在XML中引用 举例 [html] view plaincopy !DOCTYPE personlist [ !ENTITY constant aaaa !ELEMENT personlist (person) !ELEMENT person (name,age,salary) !ELEMENT name ANY !ELEMENT age (#PCDATA) !ELEMENT salary (#PCDATA) ] personlist person nameconstant;/name !-- 引用constant实体-- ageaaa/age salaryaaa/salary /person /personlist 小知识点根据XML自动生成DTD
因为一般我们写的XML基本都是没有DTD的如果要自己写DTD又很麻烦因此我们可以通过工具来自动生成trang
功能能够完成如下转换
(1)XML --- DTD
(2)XML ---XSchema
(3)DTD---XSchema 使用方法
java -jar trang.jar -I xml -O dtd input.xml output.dtd 即可
-I xml 表示输入为xml
-O dtd表示输出为dtd文件
input.xml表示输入文件
output.dtd表示输出文件
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/88824.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!