1. 引言
什么是约束?
在XML技术里,可以编写一个文档来约束一个XML文档的书写规范(与xml语法无关),这称之为XML约束。
为什么需要XML约束?
为了保证数据的规范性和安全性。
2. 约束
DTD约束:语法简洁,共能比较单一。
Schema约束:语法复杂,功能比较强大。
3. 学习目的
要求能看懂,并且能根据约束写出正确的xml文档。
4. DTD
4.1导入
(1)内部导入
DTD约束和xml写在一个文件中。
<!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note> |
(2)外部导入
<!DOCTYPE 根元素 SYSTEM "文件名">
SYSTEM 本地文件系统
PUBLIC DTD文件为网络文件,url
4.2语法
(1) 元素内容
<!ELEMENT 元素名称 (元素内容)>
EMPTY:内容只能为空
(#PCDATA):普通文本,不能写标签。
ANY:是任何内容。
(2) 子元素
<!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,.....)>
(子元素名称 1,子元素名称 2,.....)
该语法规定了子元素的顺序和个数。
顺序:从左到右
个数:+(1次或多次)
*(0次或多次)
?(0次或1次)
默认:1次
(3) 属性
<!ATTLIST 元素名称 属性名称 属性类型 默认值>
属性类型
CDATA | 值为字符数据 (character data) |
(en1|en2|..) | 此值是枚举列表中的一个值 |
ID | 值为唯一的 id(属性值不能是“”或有相同的值) |
默认值
#REQUIRED | 属性值是必需的 |
#IMPLIED | 属性不是必需的 |
#FIXED value | 属性值是固定的 |
5. Schema
5.1XML Schema VS DTD:
XML Schema符合XML语法结构。 DOM、SAX等XML API很容易解析出XML Schema文档中的内容。 XML Schema对名称空间支持得非常好。 XML Schema比XML DTD支持更多的数据类型,并支持用户自定义新的数据类型。 XML Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制。 XML Schema不能像DTD一样定义实体,比DTD更复杂,但Xml Schema现在已是w3c组织的标准,它正逐步取代DTD。
|
5.2名称空间
概念:一个标识,标识一个xml文档被哪个Schema文档约束。
5.3关系图解
5.4默认名称空间
xmlns="URI"
5.5 无名称空间
直接引用schema文件
xsi:noNamespaceSchemaLocation="xmlbook.xsd"
本文详细介绍了XML约束的概念、重要性,包括DTD(Document Type Definition)和Schema两种约束方式。阐述了DTD的导入、元素内容和属性定义,以及Schema的特性,如名称空间的使用。学习目标是理解并能应用XML约束来规范XML文档。
290

被折叠的 条评论
为什么被折叠?



