XML约束详解

本文详细介绍了XML约束的概念、重要性,包括DTD(Document Type Definition)和Schema两种约束方式。阐述了DTD的导入、元素内容和属性定义,以及Schema的特性,如名称空间的使用。学习目标是理解并能应用XML约束来规范XML文档。
摘要由CSDN通过智能技术生成

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语法结构。

DOMSAXXML API很容易解析出XML Schema文档中的内容。

XML Schema名称空间支持得非常好。

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值