XML的基础和DOCTYPE字段的解析

转载 2015年11月20日 19:06:20
DTD——文档类型定义(Document Type Definition)/
由于XML可以自定义标签,那么自然各人编写的标签不一样,这样同步数据便成了问题,因为其它人不知道某个标签应该怎么用,表示什么意思.DTD就是为了解决此问题的!

DTD是一种保证XML文档格式正确的有效方法,可以比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。

DTD分为内部DTD与外部DTD,内部DTD包含在XML文档中,外部DTD则通过URL引用.一个DTD文件是以.dtd结尾的文本文件

在XML中引入DTD DOCTYPE 文档类型声明
内部DTD,可以将standalone设置成yes.

Xml代码
Java代码
  1. <?xml version="1.0" standalone="yes"?>     
  2. <!DOCTYPE root [      
  3. <!ELEMENT root EMPTY>     
  4. ]>    
  1. <?xml version="1.0" standalone="yes"?>    
  2. <!DOCTYPE root [     
  3. <!ELEMENT root EMPTY>    
  4. ]>    



外部DTD,需要将standalone设成no

Java代码
  1. <?xml version="1.0" standalone="no"?>     
  2. <!DOCTYPE root SYSTEM "http://www.test.org/test.dtd">   
  1. <?xml version="1.0" standalone="no"?>    
  2. <!DOCTYPE root SYSTEM "http://www.test.org/test.dtd">   


DOCTYPE分析
DTD声明始终以!DOCTYPE开头,空一格后跟着文档根元素的名称,如果是内部DTD,则再空一格出现[],在中括号中是文档类型定义的内容. 而对于外部DTD,则又分为私有DTD与公共DTD,私有DTD使用SYSTEM表示,接着是外部DTD的URL. 而公共DTD则使用PUBLIC,接着是DTD公共名称,接着是DTD的URL.下面是一些示例

公共DTD,DTD名称格式为"注册//组织//类型 标签//语言","注册"指示组织是否由国际标准化组织(ISO)注册,+表示是,-表示不是."组织"即组织名称,如:W3C; "类型"一般是DTD,"标签"是指定公开文本描述,即对所引用的公开文本的唯一描述性名称,后面可附带版本号。最后"语言"是DTD语言的ISO 639语言标识符,如:EN表示英文,ZH表示中文,在下面的地址有完整的ISO 639语言标识符列表[url]http://ftp.ics.uci.edu/pub/ietf/http/related/iso639.txt [/url]

Java代码
  1. <!DOCTYPE root SYSTEM "http://www.test.org/test.dtd">  
  1. <!DOCTYPE root SYSTEM "http://www.test.org/test.dtd">  

 


下面是XHTML 1.0 Transitional的DTD.以!DOCTYPE开始,html是文档根元素名称,PUBLIC表示是公共DTD,后面是DTD名称,以-开头表示是非ISO组织 组织名称是W3C,EN表示DTD语言是英语,最后是DTD的URL

Java代码
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"       
  2.     "http://www.w3.org/TR/xhtml/DTD/xhtml1-transitional.dtd">    
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"      
  2.     "http://www.w3.org/TR/xhtml/DTD/xhtml1-transitional.dtd">    




注意:虽然DTD的文件URL可以使用相对URL也可以使用绝对URL,但推荐标准是使用绝对URL.另一方面,对于公共DTD,如果解释器能够识别其名称,则不去查看URL上的DTD文件

XML的基础和DOCTYPE字段的解析

DTD——文档类型定义(Document Type Definition)/  由于XML可以自定义标签,那么自然各人编写的标签不一样,这样同步数据便成了问题,因为其它人不知道某个标签应该怎么用,表...
  • tuolaji8
  • tuolaji8
  • 2015年08月31日 09:08
  • 340

jdom dom4j解析xml不对dtd doctype进行验证

 一、写在所有之前:因为dom4j和jdom在这个问题上处理的方法是一模一样的,只是一个是SAXBuilder 一个SAXReader,这里以jdom距离,至于dom4j只需要同理替换一下就可以了。二...
  • youlianying
  • youlianying
  • 2010年09月26日 21:49
  • 4689

java w3c DOM生成XML文件时怎么加如DOCTYPE声明部分

[ ]>  PEK  SHA    2011-06-19 怎么用w3c创建[ ]>呢
  • caojiapingaccp
  • caojiapingaccp
  • 2011年06月10日 16:15
  • 941

python中解析xml

转自:http://jordy.easymorse.com/?p=442 通过MiniDom库解析xml文件 通过ElementTree库解析xml文件 MiniDo...
  • shanliangliuxing
  • shanliangliuxing
  • 2012年12月18日 22:39
  • 1939

XML中DOCTYPE字段的解析

DTD声明始终以!DOCTYPE开头,空一格后跟着文档根元素的名称,如果是内部DTD,则再空一格出现[],在中括号中是文档类型定义的内容. 而对于外部DTD,则又分为私有DTD与公共DTD,私有DTD...
  • PurpleGalaxy
  • PurpleGalaxy
  • 2015年07月26日 11:31
  • 338

JDom解析和生成XML文档

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本人声明。否则将追究法律责任。 作者:永恒の_☆ 地址:http://blog.csdn.net/chenghui0317...
  • ch656409110
  • ch656409110
  • 2013年09月28日 18:58
  • 7514

Dom4J --- 使用dom4j解析XML时候忽略DTD文件

原文:http://www.blogjava.net/rain1102/archive/2009/08/06/290063.html 要这么做是因为Server返回给我们的X...
  • lan861698789
  • lan861698789
  • 2014年03月04日 23:12
  • 2167

SQL读取XML字段

最近要对一套老系统进行数据迁移,这样苦逼的工作就来了,需要新旧两套系统数据表字段进行对比,最终将老系统的数据迁移到新系统中来。 尽管数据结构不一致、部分字段不一致,也只是恶心一点麻烦一点,勉勉强强速度...
  • ewqewqqwe
  • ewqewqqwe
  • 2015年05月20日 18:30
  • 1383

XML中定位字段修改、读取[原创]

function saveFile(fileName,xmlStr)//保存文本文件{   var fso, tf,f;   fso = new ActiveXObject("Scripting.Fi...
  • zxub
  • zxub
  • 2004年10月01日 19:52
  • 1121

xml entity

entity entity翻译为"实体"。它的作用类似word中的"宏",也可以理解为DW中的摸板,你可以预先定义一个entity,然后在一个文档中多次调用,或者在多个文档中调用同一个entity。...
  • Eric_Hxy
  • Eric_Hxy
  • 2015年03月21日 06:52
  • 1930
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:XML的基础和DOCTYPE字段的解析
举报原因:
原因补充:

(最多只允许输入30个字)