关于xml学习(二)——xml的约束之DTD
发布时间:2020-12-16 09:22:04 所属栏目:百科 来源:网络整理
导读:什么是XML约束? 在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束。 常用的约束技术:XML DTD,XML Schema XML DTD : DTD约束即可以作为一个单独的文件编写,也可以在XML文件内编写 XML文件使用 DOCTYPE 声明语句来指明它所遵
什么是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.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">
……
©right;
实例: 内部实体——参数实体:
参数实体被 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: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |