`

XML的基础和DOCTYPE字段的解析

阅读更多
或者看下面的网址

http://msdn.microsoft.com/zh-cn/library/ms256059(VS.80).aspx

本文摘自http://www.iteye.com/topic/517520
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代码
<?xml version="1.0" standalone="yes"?>  
<!DOCTYPE root [   
<!ELEMENT root EMPTY>  
]>  


外部DTD,需要将standalone设成no
<?xml version="1.0" standalone="no"?>  
<!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]

<!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

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



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

相关推荐

    Having Fun with XML Hacking.docx

    防范XML攻击的关键在于限制XML解析器的功能,避免解析不安全的外部实体,对用户输入进行严格过滤和验证,以及及时更新和修补可能存在的XML解析库漏洞。在开发过程中,应遵循最小权限原则,只允许解析器处理预期的...

    XML.rar_dtd xml_xml dtd_xml schema_xml 设计

    在实际应用中,`www.pudn.com.txt`可能包含了有关这些概念的更多详细信息,例如如何在XML文档中引用DTD或XML Schema,以及如何解析和验证遵循这些规范的XML文档。而"设计一种表示图书信息的XML文档"可能是提供了一个...

    Hibernate使用hbm.xml配置映射关系解析

    Hibernate 使用 hbm.xml 配置映射关系解析 Hibernate 是一个流行的对象关系映射(ORM)工具,它提供了使用 XML 文件(hbm.xml)来配置映射关系的方式。这种方式可以将 Java 类与数据库表进行映射,使得开发者可以更...

    java使用commons-betwixt 实现bean与xml互转

    Java中的Apache Commons Betwixt库提供了一个简单的方法来映射Java Bean对象和XML文档之间的数据,使得在处理数据交换时能轻松地实现bean到XML的转换和XML到bean的反转换。本篇文章将深入探讨如何使用Commons ...

    hibernate。hbm.xml配置详解

    `hbm.xml` 文件的开头通常包含 XML 声明和 DTD 引用,确保解析器知道如何处理文件内容。下面是一个基本的配置示例: ```xml &lt;?xml version="1.0" encoding='UTF-8'?&gt; &lt;!DOCTYPE hibernate-mapping PUBLIC "-//...

    hibernate.hbm.xml详解

    这篇文章将深入解析`hibernate.hbm.xml`的结构和主要元素,帮助开发者更好地理解和运用。 `hibernate.hbm.xml`文件的结构通常如下所示: ```xml &lt;?xml version="1.0" encoding='UTF-8'?&gt; &lt;!DOCTYPE hibernate-...

    hibernate.cfg.xml文件

    而`hibernate.cfg.xml`是Hibernate的核心配置文件,它定义了数据库连接、实体类映射以及其它关键设置,是理解和使用Hibernate的基础。 一、文件结构 `hibernate.cfg.xml`文件主要由以下几个部分组成: 1. **XML...

    05、第四部分:XML高阶.pdf

    XML文档具有自描述性,并且能够方便地被解析和处理,这使得它成为一种理想的存储和传输数据的格式。 ##### XML与传统数据库的相似性 XML文档在很多方面与传统的关系数据库和对象数据库非常相似。例如,XML文档通过...

    视频文件文件头解析--mkv

    在给定的 MKV 文件片段中,可以看到 EBML 元素如 DocType 和 DocTypeVersion 的解析过程。DocType 的 ID 是 42 82,解码后得到 "matroska",表明这是 MKV 文件。接着,DocTypeVersion 的 ID 是 42 87,其值为 01,...

    structs的配置文件hbm.xml

    #### 二、HBM.XML文件解析 HBM.XML文件是Hibernate用于配置实体类和数据库表之间的映射关系的文件,其全称为Hibernate Mapping XML。在本例中,HBM.XML文件的具体结构如下: ```xml &lt;?xml version="1.0" encoding=...

    web前端面试题集锦及答案解析

    通过上述知识点的总结,我们可以看到这些基础概念和技术细节对于前端开发者来说是非常重要的。在实际项目开发过程中,了解并掌握这些技术能够帮助开发者编写出更加高效、安全、易于维护的代码。此外,对于SEO优化的...

    DOCTYPE 文档类型声明(网页爱好者必看)

    DOCTYPE声明对于CSS的影响在于,它决定了浏览器的渲染模式,这可能影响CSS的解析和应用。在怪癖模式下,一些CSS规则可能不会生效,或者表现与标准模式不同。对于JavaScript,不正确的DOCTYPE可能导致某些JavaScript...

    金蝶全渠道二开帮助文档.docx

    - **列表页面开发引入XML约束**:在所有列表XML文件的开头添加DOCTYPE声明,以便IDE提供自动补全和提示功能。 - **列表页面一般格式**:XML文件包含`&lt;pageview&gt;`根节点,其下有`&lt;datasource&gt;`和`&lt;view&gt;`子节点。`...

    解析一个简单的hibernate

    ### 解析一个简单的Hibernate #### Hibernate简介与特点 Hibernate是一个开放源码的对象关系映射(ORM)框架,它为Java应用程序提供了一种解决方案,用以处理面向对象编程语言与关系型数据库之间的不匹配问题。...

    struts2基础.txt

    以下是对这些信息的详细解析与扩展: ### Struts2框架基础 #### 一、Struts2中的类型转换机制 Struts2框架提供了一种强大的类型转换机制,能够自动将请求参数转换为Action类属性的类型。这一机制主要通过两个核心...

    Struts配置文件详解

    #### 四、`struts-config.xml`的元素解析 `struts-config.xml`文件的根元素是`&lt;struts-config&gt;`,它包含了多个子元素,这些子元素分别用于不同的配置目的。下面详细介绍这些子元素及其用途: 1. **`&lt;data-sources&gt;...

    Hibernate 配置详解 (一)

    本文将详细解析Hibernate配置中的两个关键文件——`hibernate.cfg.xml`和`*.hbm.xml`,并探讨它们在Hibernate运行机制中的作用。 #### hibernate.cfg.xml:全局配置的核心 `hibernate.cfg.xml`文件作为Hibernate的...

    Mybatis Generator最完整配置详解

    本文将详细解析`generatorConfig.xml`中的各项配置参数及其作用,帮助开发者更好地理解和应用这些配置。 #### 二、`generatorConfig.xml`配置详解 ##### 1. XML声明与DTD引用 ```xml &lt;?xml version="1.0" encoding...

    hibernate配置

    这是XML文档的标准开头部分,用于告诉解析器如何处理后续内容。 ##### 2. DOCTYPE声明 ```xml &lt;!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" ...

Global site tag (gtag.js) - Google Analytics