关闭

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

标签: xmlsystem文档urlencoding
428人阅读 评论(0) 收藏 举报
分类:

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">

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:65903次
    • 积分:1311
    • 等级:
    • 排名:千里之外
    • 原创:54篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档