微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

关于xml学习二——xml的约束之DTD


什么是XML约束?

在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束。
常用的约束技术:XML DTD,XML Schema


XML DTD

DTD约束即可以作为一个单独的文件编写,也可以在XML文件内编写
XML文件使用 DOCTYPE 声明语句来指明它所遵循的DTD文件

DTD关联方式

使用内部DTD
使用外部DTD
使用公共DTD

内部DTD:

在xml文件内部书写DTD规范
格式:
<!DOCTYPE 书架 […具体规范内容…]>
例如:

外部DTD

引用的文件在本地
格式:<!DOCTYPE 文档根结点 SYstem "DTD文件的URL">
例如: <!DOCTYPE books SYstem “book.dtd”>
books3.xml:

books3.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约束语法细节:

元素(ELEMENT)

元素的定义:

? : 0 1
* : >=0
+ : >=1
() : 分组
| : 选择
,: 顺序

元素内容的类型:
#PCDATA:只能书写字符,不能包含子元素,注意: (#PCDATA)
EMPTY:元素内容为空
ANY:元素内容任意
例如:




属性(ATTLIST):

属性类型:
* CDATA,字符
* (),选择
* ID,设置唯一标识,注意,必须字母开头
* IDREF,引用又存在的ID值


属性定义:
格式:<!ATTLIST 元素名称 [属性名称 属性类型 约束 ...]>
例如:
<!ATTLIST 商品
类别 CDATA #required
颜色 CDATA #IMPLIED >

属性约束的四种形式:
* #required:必须填写
* #IMPLIED:可选
* #FIXED value:固定值
* defaultValue:认值,如果实例中没有包含该属性,则用认值,如果有包含并且重新赋值,则用重新赋的值
例如:



实体(ENTITY):

实体是变量,用于引用普通文本或特殊字符的快捷方式的变量。
实体分类
* 内部实体:
a .引用实体
b. 参数实体
* 外部实体

内部实体——引用实体:
引用实体主要在 XML 文档中被应用
语法格式:<!ENTITY 实体名称 “实体内容” >
引用方式:&实体名称;
举例:
<!ENTITY copyright “I am a programmer">
……
&copyright;
实例:



内部实体——参数实体:
参数实体被 DTD 文件自身使用
语法格式:<!ENTITY % 实体名称 "实体内容" >
引用方式:%实体名称;
举例:
<!ENTITY %TAG_NAMES "姓名 | EMAIL | 电话 | 地址">
<!ELEMENT 个人信息 (%TAG_NAMES; | 生日)>
<!ELEMENT 客户信息 (%TAG_NAMES; | 公司名)>
实例:


外部实体
语法格式:<!ENTITY 实体名称 SYstem "URI/URL">
引用方式:&实体名称;
举例:
<!ENTITY info SYstem "part.xml">
……
& info;
实例:
books5.xml:

books5.dtd:

part.xml:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类