XML 技术讲座之四 XML DTD的建立与使用(下)
2005-05-17 16:34
225 查看
DTD中元素属性的声明
在DTD中定义属性时,我们使用下面的格式来给一个元素定义一组合适的属性,同时指定这些属性的类型和缺省值:
元素名是属性所属的元素的名字。
属性名是属性的命名。
缺省值是属性的初值。有以下四种类型:
这里,给出一个完整的例子:
属性类型用来指定该属性是属于十个有效属性类型中的哪种类型。这十种类型是:
这十种类型,又可分为三个大类。第一大类是字符串类型,指的是CDATA,它的值可以是任何合法的字符串。第二大类是枚举类型,包括Enumerated和NOTATION,需要在DTD中为它们声明可取值的列表。剩下的七个类型都属于第三大类,又称为记法类型,含有不同的词法及语意限定。
参数实体
最后再来说一说参数实体。前面说过,参数实体专门用于DTD,它可以方便元素和属性的声明。在下面这个例子中,参数实体简化了本科生信息和研究生信息中相同部分的录入工作:
虽然从理论上讲参数实体所代表的内容可以为任何文本,但由于它专门用于DTD中,出现在元素定义的正则表达式里,所以对它有一些特殊的规定。参数实体的替换文本中括号必须成对出现,并且,它不能以连接符"|"或","结尾,因为这样常常会留有错误隐患。
在DTD中定义属性时,我们使用下面的格式来给一个元素定义一组合适的属性,同时指定这些属性的类型和缺省值:
<!ATTLIST 元素名 (属性名 属性类型 缺省值)*> |
属性名是属性的命名。
缺省值是属性的初值。有以下四种类型:
名称 | 定义 | 说明方式 |
必须赋值的属性 | XML文档中必须为这个属性给出一个属性值 | <!ATTLIST 元素名 属性名 属性类型 #REQUIRED> |
属性值可有可无的属性 | 不要求在XML文档中给该属性赋值,而且也无须在DTD中为该属性提供缺省值 | <!ATTLIST 元素名 属性名 属性类型 #IMPLIED> |
固定取值的属性 | 需要为一个特定的属性提供一个缺省值,并且不希望XML文档中另外给出元素值把这个缺省值替代掉 | <!ATTLIST 元素名 属性名 属性类型 #FIXED "缺省值"> |
事先定义了缺省值的属性 | 需要在DTD中提供一个缺省值,在XML文档中可以为该属性给出新的属性值,也可以不另外给出属性值,采用DTD中给出的缺省值。 | <!ATTLIST 元素名 属性名 属性类型 "缺省值"> |
<!ATTLIST 页面作者 姓名 CDATA #IMPLIED 年龄 CDATA #IMPLIED 联系信息 CDATA #REQUIRED 网站职务 CDATA #FIXED "页面作者" 个人爱好 CDATA "上网" > |
类型 | 含义 |
CDATA | 纯文本,由可显示字符组成的字符串 |
Enumerated | 取值来自一组可接受的取值的列表 |
ID | 以属性值的方式为文档中的某个元素定义唯一的标识,用以区分具有相同结构相同属性的不同元素 |
IDREF | 属性值引用已定义的ID值,方法是把那个元素的ID标识值作为该属性的取值;IDREFS是IDREF的复数形式,取值可以是若干个ID标识 |
IDREFS | |
ENTITY | 取值为一个已定义的实体 |
ENTITIES | |
NMTOKEN | 面向处理程序的类型 |
NMTOKENS | |
NOTATION | 取值为一个DTD中声明的符号,这个类型对于使用非XML格式的数据非常有用。 |
参数实体
最后再来说一说参数实体。前面说过,参数实体专门用于DTD,它可以方便元素和属性的声明。在下面这个例子中,参数实体简化了本科生信息和研究生信息中相同部分的录入工作:
<!ENTITY % GENERAL_INFO "姓名 | 学号 | 性别 | 出生日期 "> <!ELEMENT 本科生 (%GENERAL_INFO;)> <!ELEMENT 研究生 (%GENERAL_INFO; | 导师)> |
相关文章推荐
- XML技术讲座之三 XML DTD的建立与使用(上)
- 使用dom4j技术对xml文档进行增删改练习(一)
- MySQL查询优化技术系列讲座之使用索引
- ajax核心技术1---XMLHttpRequset对象的使用
- MySQL查询优化技术系列讲座之使用索引【转】
- 使用XmlDocument类加载XML文件时如何忽略DTD验证
- DTD - XML 建立 blocks
- 超越学XML&DTD笔记技术总结(之一)
- 不允许使用内部子集 DTD 分析 XML。请将 CONVERT 与样式选项 2 一起使用,以启用有限的内部子集 DTD 支持
- MySQL查询优化技术系列讲座之使用索引
- [阅读报告]揭示XProc——使用管道技术支持XML应用环境
- 【技术】使用原生XHR(XMLHttpRequest)对象来获取并包括HTML片段
- XML技术学习(一):DTD语法概述及简单应用举例
- XML约束技术之一:DTD约束
- XML约束技术-DTD约束
- Alax技术实现的基本原理——XMLHttpRequest对象的使用
- 在XML里的XSD和DTD以及standalone的使用
- 如何使用JXTA技术建立P2P网络
- 使用C++和XML建立智能文档