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

前端之家收集整理的这篇文章主要介绍了关于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:
原文链接:https://www.f2er.com/xml/297451.html

猜你在找的XML相关文章