今天我给大家介绍一种xml的约束技术,dtd,这个技术在现在的程序中的框架中多见,但是在开发中通常使用schema,为了读懂框架,我们必备的知识之一。废话就不多说了,直接入门
一、一个关于产品的dtd
product.dtd
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT products (product+)>
<!ELEMENT product (name,price,number,description)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT number (#PCDATA)>
<!ELEMENT description (#PCDATA)>
这是一个引用了product.dtd的xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE products SYSTEM "product.dtd">
<products>
<product>
<name>冰箱</name>
<price>3000</price>
<number>20</number>
<description>冷藏食品</description>
</product>
<product>
<name>手机</name>
<price>1999</price>
<number>50</number>
<description>可以通讯</description>
</product>
</products>
经过上面的入门,应该能掌握一点点规律了,在dtd中,有三种引用方式
分别是:
1.内部引用 示例:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE 书架 [
<!ELEMENT 书架 (书+)>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
]>
<书架>
<书>
<书名>Java就业培训教程</书名>
<作者>张孝祥</作者>
<售价>39.00元</售价>
</书>
</书架>
2.外部引用
当引用的文件在本地时(外部DTD),采用如下方式:
<!DOCTYPE 文档根结点 SYSTEM "dtd文件的路径">
例如: <!DOCTYPE products SYSTEM “c:\product.dtd”>。* DTD文件路径 本地的。
3.公共dtd的引用
当引用的文件是一个公共的文件时(公共DTD)采用如下方式:
<!DOCTYPE 文档根结点 PUBLIC "DTD名称" "DTD文件的URL">
例如:<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
二、dtd中的元素定义
细心可以发现,这个+号,我们常用,用+类比,其他的元素的用法
三、属性:
属性声明举例
<!ATTLIST 商品
类别 CDATA #REQUIRED 必须的
颜色 CDATA #IMPLIED 可选的
>
示例:<?xml version="1.0" encoding="UTF-8"?>
<!-- 内部DTD -->
<!DOCTYPE products [
<!ELEMENT products (product+)>
<!ELEMENT product (name,price,number,description)>
<!ELEMENT name (#PCDATA) >
<!ELEMENT price (#PCDATA) >
<!ELEMENT number EMPTY >
<!ELEMENT description (#PCDATA) >
<!ATTLIST product id ID #REQUIRED>
]>
<products>
<product id="p001">
<name>冰箱</name>
<price>3000</price>
<number></number>
<description>冷藏食品</description>
</product>
<product id="p002">
<name>手机</name>
<price>1999</price>
<number />
<description>可以通讯</description>
</product>
</products>
数据类型:
<!ATTLIST 商品
类别 CDATA #REQUIRED 必须的
颜色 CDATA #IMPLIED 可选的
>
四、实体(ENTITY)定义
实体用于为一段内容创建一个别名,以后在XML文档中就可以使用别名引用这段内容了。
在DTD定义中,一条<!ENTITY …>语句用于定义一个实体。
<?xml version="1.0" encoding="UTF-8"?>
<!-- 教师的company 都一样,将重复部分抽取出来 定义实体 -->
<!DOCTYPE teachers [
<!ELEMENT teachers (teacher+)>
<!ELEMENT teacher (name,company)>
<!ELEMENT name (#PCDATA) >
<!ELEMENT company (#PCDATA)>
<!ENTITY cmy "传智播客2012" >
]>
<teachers>
<teacher>
<name>老王</name>
<company>&cmy;</company>
</teacher>
<teacher>
<name>老李</name>
<company>&cmy;</company>
</teacher>
<teacher>
<name>老赵</name>
<company>&cmy;</company>
</teacher>
</teachers>
五、约束的四种形式
- 大小: 73.4 KB
- 大小: 55.7 KB
- 大小: 18.1 KB
- 大小: 140.8 KB
分享到:
相关推荐
DTD约束是XML文档规范的一种方式,它允许我们定义元素、属性以及它们之间的关系,以实现对XML文档内容的有效控制。 DTD的主要组成部分包括: 1. 元素定义:在DTD中,每个元素都有一个唯一的名称,可以指定元素是否...
综上所述,了解和正确使用MyBatis的DTD约束文件对于编写有效的、无错的XML映射文件至关重要。这不仅可以保证与数据库交互的顺利进行,也有助于提升开发效率和维护性。通过深入理解DTD,开发者可以更好地控制和优化...
总的来说,理解Hibernate3.0的DTD约束文件对于有效管理和优化Hibernate配置至关重要。它们不仅规范了配置文件的结构,还提供了开发工具中的智能感知功能,使得在处理复杂的对象关系映射和数据库配置时,能更轻松地...
MyBatis3DTD约束是MyBatis框架中用于定义XML映射文件的一种规范,它描述了XML文件的结构和元素。DTD(Document Type Definition)是XML文档类型定义,用于规定XML文档的合法构建块,包括元素、属性以及它们之间的...
dwr20.dtd约束文件。 <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd" >
DTD约束文档的作用在于为XML文档提供了一个验证的标准,使得XML解析器能够检查文档是否符合规定的模式,从而保证数据的准确性和一致性。 在Servlet 2.3规范中,DTD的使用是为了定义Web应用的部署描述符(Deployment...
在实际开发中,正确理解和使用这些DTD约束至关重要。例如,如果不正确地设置了`<property>`的`type`属性,可能导致数据类型转换异常;如果忽视了`<id>`的设置,Hibernate可能无法正确识别和操作实体。同时,对于复杂...
这是一个jdom解析xml的小例子、里面还有dtd文件的编写以及dtd文件约束xml文件。这是一个jdom解析xml的小例子、里面还有dtd文件的编写以及dtd文件约束xml文件。这是一个jdom解析xml的小例子、里面还有dtd文件的编写...
在IT行业中,尤其是Java Web开发领域,Spring、Struts2、Hibernate和MyBatis这四大框架都有各自的DTD约束文件,它们在构建应用时起到了重要的配置作用。 首先,Spring框架的DTD文件主要用于Spring配置文件,例如`...
首先,让我们深入了解一下`MyBatis`的DTD约束。MyBatis的配置文件(mybatis-config.xml)中,DTD定义了诸如数据库环境、事务管理器、数据源、映射文件等元素。例如,`<environments>`元素用来设置数据库环境,其中...
2. **DTD约束模式**: - DTD是用来定义XML文档结构和元素类型的规范,它规定了元素的名称、属性、出现次数等,确保XML文档符合特定的语法规则。 - DTD可以内嵌在XML文档中,也可以作为外部引用,提供了一种验证XML...
此XML Schema与上面的DTD具有相同的功能,但使用了更丰富的语法和数据类型。 在实际应用中,XML文档通常会引用对应的DTD或XML Schema,以便在解析时进行验证。例如,XML文档的开头可能会有以下引用: ```xml <!...
DTD约束是XML文档规范的早期形式,它定义了XML文档的结构和元素之间的关系。一个DTD文件包含了关于XML文档合法元素的声明,以及这些元素如何组合的规则。例如,在一个书籍管理系统中,我们可能会有如下的DTD约束: ...
通过定义元素、属性、元素间的顺序和数量,DTD为XML文档设定了约束,防止了无效数据的输入。 DOM4J提供了一个名为`DocumentType`的类,用于处理DTD。验证XML文档是否符合其关联的DTD,我们可以遵循以下步骤: 1. *...
其中,XML配置是Spring早期版本中常见的配置方式,它使用DTD(Document Type Definition)来定义XML文档的结构和规则。本文将深入探讨Spring框架中的约束DTD,以及与之相关的各个子模块的xsd文件。 首先,DTD是一种...
- **XML文档标准**:如SVG(可缩放矢量图形)和RSS(简易信息聚合)等标准都使用了DTD来定义文档结构。 - **Web应用程序**:在Web开发中,DTD用于确保服务器返回的数据遵循预期格式。 总之,DTD是XML文档的重要...
- 使用符合当前版本的DTD来编写配置文件,以充分利用框架提供的所有功能。 - 学习并理解每个版本的DTD变化,有助于更好地理解和优化应用配置。 总之,Struts2的不同版本的DTD代表了框架在不同阶段的发展和进步,...
在构建Java应用程序,特别是使用Spring和Spring MVC框架时,正确配置和引用约束文件是至关重要的。这些约束文件主要分为两种类型:DTD(Document Type Definition)和XSD(XML Schema Definition)。它们都是用来...
5. **文档验证**:描述如何使用DTD进行XML文档的验证,包括使用XML解析器进行验证的过程和可能出现的错误消息。 6. **CHM文件的结构**:解释CHM文件的内部结构,包括如何通过索引和目录快速访问内容,以及如何使用...