学习笔记——XML的DTD语义约束

Document Type Definition(DTD,文档类型定义)

 

引入DTD的3种方式:内部,外部,公用。

 

内部DTD格式

 

<?xml version="1.0" encoding="GBK" standalone="yes" ?>  
<!DOCTYPE 根元素名[
	元素描述
]>
文档主体

 

外部DTD格式

 

<!DOCTYPE 根元素名
SYSTEM “外部DTD的URL”>


公用DTD格式

 

<!DOCTYPE 根元素名
PUBLIC “DTD的标识名" "公用DTD的URL”>

DTD文档结构

 

DTD使用的元素:

<!ELEMENT...>:定义一个XML元素。

<!ATTLIST...>:定义一个属性。

<!ENTITY...>:定义一个实体。

<!NOTATION...>定义一个符号。

 

元素的类型:

ANY:任意。

(#PCDATA):字符串。

EMPTY:空元素。

混合类型

e,g,

 

<!ELEMENT 元素名 ANY>
<!ELEMENT 元素名 (#PCDATA)>
<!ELEMENT 元素名 EMPTY>
<!ELEMENT 元素名 (#PCDATA | 子元素1 | 子元素2...)

 

定义子元素

 

有序的子元素

<!ELEMENT 元素名 (子元素1,子元素2,子元素3)>


互斥的子元素

<!ELEMENT 元素名 (子元素1|子元素2|子元素3)>


可在子元素后跟随一个表示频率的特殊标记(+、*、?)

 

定义元素的属性

格式如下

 

<!ATTLIST 所属的元素 属性名 属性类型 [属性的约束] [默认值]>

 

属性的类型

CDATA:字符串数据。

(en1 | en2 | en3):一系列枚举值之一。

ID:标识符。

IDREF:引用另一个ID。

IDREFS:引用多个已有的ID,空格为分隔符。

NMTOKEN:必须是合法的XML名称,只能由字母、数字、_、-、.、:组成。

NMTOKENS:多个NMTOKEN,空格为分隔符。

ENTITY:外部实体。

ENTITIES:多个外部实体,空格为分隔符。

NOTATION:声明过的符号,少用。

xml:预定义的XML值。

 

属性的约束规则

#REQUIRED:必须属性。

#IMPLIED:非必须属性。

#FIXED:值固定属性。

 
定义一个实体

实体就是一个字符串代替另一个字符串。

普通实体定义格式:

<!ENTITY 实体名 "实体值">

 

普通实体使用格式:

&实体名;

 

定义参数实体格式:

<!ENTITY % 实体名 "实体值">

 

使用参数实体格式:

%实体名:

 

外部实体定义格式:

<!ENTITY 实体名 SYSTEM|PUBLIC "实体值所在文件的URL">

 

外部参数实体格式:

<!ENTITY % 实体名 SYSTEM|PUBLIC "实体值所在文件的URL">

 

定义符号

XML文档只是一个文本文件,它无法处理复杂的数据类型,比如声音、图片等,符号正是用于标识这些数据。

标识后的数据可以由相应的外部程序处理。

定义普通符号的格式:

<!NOTATION notation SYSTEM "value">

 

定义公共符号的格式:

<!NOTATION notation PUBLIC "name" "value">

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值