DTD约束的方式

xml文件使用DOCTYPE声明语句来指明它所遵循的DTD文件,DOCTYPE

声明语句有两中形式:

当引用的文件在本地时:采用如下方式8:

1.<!DOCTYPE 根节点 SYSTEM "DTD文件的URL">

例如:<DOCTYPE 书架 SYSTEM "book.dtd">

2.当引用的文件是一个公共的文件时:采用如下的方式:

<!DOCTYPE 文档根节点 PUBLIC "DTD的名称" "DTD文件的URL">

例如:

<!DOCTYPE web-app PUBLIC "..." "...">

--------------------------------------------------------------------------------------------------

DTD约束语法细节:

元素定义:

在DTD文档中使用ELEMENT声明一个xml元素,语法格式如下所示:

<!ELEMENT 元素名称 元素类型>

元素类型可以是元素内容或类型

<!ELEMENT 书架 (书名,作者,售价)>

<!ELEMENT 书名 (#PCDATA)>

如果元素类型,则直接书写,DTD规范定义了如下几种类型:

EMPTY:用于表示定义空元素,例如<br/> <hr/>

ANY:表示元素内容为任意类型

如果是元素内容可以使用如下方式,描述内容的组成关系

用逗号分隔,表示内容的出现顺序必须与声明是一致,

<ELEMENT MYFILE (TITLE,AUTHOR,EMAIL)>

用|分隔,表示任选其一,即多个只能出现一个

<!ELEMENT MYFILE (TITLE|AUTHOR|EMAIL)>

在元素内容中出现也可以使用+,*?等符号表示元素出现的次数:

+:一次或多次(书+)

?:0次或一次(书+)

*:0次或多次(书*)

特殊(书)必须出现一次

也可以使用圆括号()批量设置例如:

<!ELEMENT MYFILE ((TITLE*,AUTHOR?,EMAIL))*|COMMENT>

----------------------------------------------------------------------------------------------

属性定义:

xml文件中的标签属性需通过ATTLIST为其设置属性

语法格式:

<!ATTLIST 元素名

属性名1 属性值类型 设置说明

属性名2 属性值类型 设置说明

>

属性声明举例:

<!ATTLIST 商品

类别 CDATA #REQUIRED

颜色 CDATA #IMPLIED

>

对应的xml文件

<商品 类别="服饰" 颜色="黄色">...</商品>

<商品 类别="服装">...</商品>

属性设置说明:

#REQUIRED:必须设置属性

#IMPLIED: 可以设置也可以不设置

#FIXED:说明该属性的取值固定位一个数,在xml文件中不能为该属性设置其他值但需要为该属性提供值

直接使用默认值:在xml中可以设置也可以不设置该属性值,若没有设置则使用默认值

举例:

<!ATTLIST 页面作者>

姓名 CDATA #IMPLIED

年龄 CDATA #IMPLIED

联系信息 CDATA #REQUIRED

网站职务 CDATA #FIXED "页面作者"

个人爱好 CDATA "上网"

>

--------------------------------------------------------------------------------------------------------------

常用属性值类型

CDATA :表示属性值为普通文本字符串

ENUMERATED:

属性的类型可以是一组取值的列表,在xml文件中设置的属性值只能是这个列表中的某值枚举(

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE 购物篮[

<!ELEMENT 肉 EMPTY>

<!ATTLIST 肉 品种(鸡肉|牛肉|猪肉|龟肉) "鸡肉">

]>

<购物篮>

<肉 品种 "龟肉"/>

<肉 品种 "牛肉"/>

<肉/>

</购物篮>

ID

表示属性的设置值为一个唯一值

ID属性的值只能有字母,下划线开始,不能出现空白字符,必须以字母开头

ENTITY

1.实体用于为一段内容创建一个别名,以后往xml文档中

就可以使用别名引用这段内容了

2.在DTD定义中,一条<!ENTITY...>语句用于定义一个实体

3.实体可以分为两种类型:引用类型和参数实体

---------------------------------------------------------------------------------------------------

实体定义:

1.引用实体:

引用实体主要在xml文档中被应用

语法格式:

<!ENTITY 实体名称 "实体内容">

直接转变实体内容

引用方式:

&实体名称

举例:

<!ENTITY copyright "i am a programmer">

...

&copyright;

2.参数实体:

参数实体被DTD文件自身使用

语法格式:

<!ENTITY % 实体名称 "实体内容">

引用方式:

%实体名称

举例1:

<!ENTITY % TAG_NAMES "姓名|EMAIL|电话|地址">

<!ELEMENT 个人信息 (%TAG_NAMES;)|生日>

<!ELEMENT 客户信息 (%TAG_NAMES;)|公司名>

举例2:

<!ENTITY % common,attributes

"id ID #IMPLIED">

account CDATA #REQUIRED

>

...

<!ATTLIST purchaseOrder %common.attributes;>

<!ATTLIST item %common.attributes;>

---------------------------------------------------------------------------------------------

时间: 2024-10-13 07:37:14

DTD约束的方式的相关文章

xml语法、DTD约束xml、Schema约束xml、DOM解析xml

今日大纲 1.什么是xml.xml的作用 2.xml的语法 3.DTD约束xml 4.Schema约束xml 5.DOM解析xml 1.什么是xml.xml的作用 1.1.xml介绍 在前面学习的html语言,html是超文本标记语言,使用html语言规定好的标签来封装文本数据.而html使用的标签html语言规定好的,每个标签都有自己特定的功能. xml语言,可扩展的标记语言,这门语言它没有定义任何的标记,而标记是由使用者自己来定义,但是由于标签名称以及属性名称都由用户自己来命名,导致别人在使

xml技术DTD约束定义

XML约束 在XML技术中,可以编写一个文档来约束一个xml文档的书写规范,这称之为XML约束为什么需要XML约束? class.xml <stu><面积>?人怎么会有面积元素? xml 文件标签可以随便写,dtd可以对其有所要求按照合理的需求写 xml文件约束--dtd document type definition 文档类型定义作用: 定义xml标签约束,使开发者按照定义书写,也可以约束html文件 使用: 在项目中如需要一个xml文件,项目经理 可定义一个dtd文件,要求所

DTD约束XML

XML引用DTD约束: 1. 内部引用,内部定义DTD: <!DOCTYPE    根元素    [ 各种元素声明 ]> 2. 引用系统本地DTD: <!DOCTYPE    根元素    SYSTEM    "DTD文件的URL.dtd"> 3. 引用公共DTD <!DOCTYPE    根元素    PUBLIC    "DTD名称"    "DTD文件的URL"> 例子: 我们在创建XHTML时,就有这种

xml之dtd约束

DTD:Document Type Definition 文档定类型定义. 作用:是用来约束XML的书写规范. 写法: 内部声明: 假如 DTD 被包含在您的 XML 源文件中,它应当通过下面的语法包装在一个 !DOCTYPE 声明中:<!DOCTYPE根元素 [元素声明]> 外部声明: 本地: <!DOCTYPE 根元素 SYSTEM "dtd文件名"> 外地(网上): <!DOCTYPE 根元素 PUBLIC "dtd的名称" &q

DTD约束

XML文档声明: <?xml version="1.0" encoding="UTF-8"> XMl约束: 在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束. 常用的XML约束: 1.XML DTD 2.XML Schema DTD约束:(Document Type Definition) 引用DTD约束: 1.当引用在本地时,采用如下方式: <!DOCTYPE 文档根节点 SYSTEM "DTD文件的U

Java 模拟servlet执行、DTD约束、Schema约束、dom4j解析(读写xml)

模拟servlet执行 浏览器请求WEB服务器上的资源,WEB服务器返回给浏览器 浏览器的入口不同(访问路径),访问的资源也不同. 我们需要使用xml约束(DTD或schema);为了获得xml的内容,我们需要使用dom4j进行解析. XML(不同路径(/hello)执行不同的资源( HeIIoMyServlet)) XML可扩展的标记语言  标签可自定义的 包下创建xml 文件   new → other  →  XMLFile 粘贴web-app_ 2_ 3.dtd文件 复制web-app_

【代码笔记】XML深入学习:DTD约束与DTD语法(1)

2015-12-27 文件名    student.xml 1 <?xml version="1.0" encoding="GB2312" standalone="no"?> 2 <!--大家好,我是注释--> 3 <!--2015.12.27--> 4 <!DOCTYPE students SYSTEM "student.dtd"> 5 <!--这里没写盘符,及表示当前目

XML内部DTD约束

<?xml version="1.0" encoding="UTF-8"?> <!-- 内部DTD --> <!-- XML:extensible markup language 可扩展标记语言 --> <!-- DTD约束:document type definition 文档类型定义 --> <!-- + 1~n * 0~n ? 0~1 --> <!-- The markup declaratio

XML的DTD约束

DTD约束:DTD的声明和引用 1.内部DTD文档 <!DOCTYPE 根元素 [定义内容]> 2.外部DTD文档 <!DOCTYPE 根元素 SYSTEM "DTD文件路径"> 或者 <!DOCTYPE 根元素 PUBLIC "DTD名称" "DTD文件的URL">  3.DTD元素基本语法: <!ELEMENT 元素名称  类别> 或 <!ELEMENT 元素名称 (元素内容)> -