XML是什么
可扩展的标记语言
XML能干什么
描述数据、存储数据、传输(交换)数据。
XML有什么
- 元素
- 属性
- 实体
- PCDATA :被解析的字符数据(parsed character data),PDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记
- CDATA :字符数据(character data),CDATA 是不会被解析器解析的文本
XML与HTML区别:目的不一样
XML 被设计用来描述数据,其焦点是数据的内容。
HTML 被设计用来展示数据,其焦点是数据的外观。
HTML可以不关闭标签(即标签可以不成对出现),但XML必须关闭标签(即标签必须成对出现)。
HTML中的标签标识文本如何展示,而XML中的标签标识文本是什么含义(什么类型的文本)。
XML注意
XML是无作为的,不会做任何事情,只用于描述数据、存储数据、传输(交换)数据。
如何展示和使用XML数据就需要程序员根据需求来做解析数据并展示和使用。
XML文档节点类型
u 文档(document)
u 元素(element)
u 属性(attribute)
u 文本(PCDATA--parsed character data)
u 注释(comment)
u DOCTYPE :主要验证文档内容的正确性
u 实体(ENTITIES)
u CDATA(character data)
XML语法
1、声明:<?xml version="1.0" encoding="UTF-8"?>
2、根节点:必须有一个根节点
3、标签:标签必须有结束且区分大小写,标签必须顺序嵌套
4、属性:必须引号引起值
5、空格会被保留,HTML空格最多保留一个
6、命名规则:命名必须见名知意
a) 名字可包含字母、数字以及其他的字符
b) 名字不能以数字或者标点符号开始
c) 名字不能以字符“xml”(或者XML、Xml)开始
7、名字不能包含空格
8、 不应在 XML 元素名称中使用 ":" ,这是由于它用于命名空间(namespaces)的保留字。
9、标签优先于属性。
10、XML 命名空间可提供避免元素命名冲突的方法。
11、CDATA:字符数据,<![CDATA[字符数据]]> ,字符数据不进行转义
12、实体:&实体;
DTD
是什么
DTD(DocType Definition 文档类型定义)的作用是定义 XML 文档的合法构建模块。
它使用一系列的合法元素来定义文档结构。
能干什么
DTD(文档类型定义)的作用是约定XML格式。
主要有什么
元素、属性、实体定义
DTD引用方式
内部
<!DOCTYPE 根元素 [元素声明]>
外部私有的 SYSTEM 一般是我们自己定义的,可能只是一个公司内部使用
<!DOCTYPE 根元素 SYSTEM "dtd文件位置">
外部公有的 PUBLIC 一般是一些标准,可能非常多的人用
<!DOCTYPE 根元素 PUBLIC "命名空间" "dtd文件位置">
首先根据“命名空间”去问环境要相应的dtd文件,如果有,直接提供,如果没有再根据dtd文件位置找。
格式
<!ELEMENT> 描述元素之间关系
定义
<!ELEMENT 元素名称 (元素内容)>
顺序:(seq1,se2) 必须按顺序
(or1|or2) 两个选一个
个数:? 零个或一个
标签 必须一个
* 零个或多个
+ 一个或多个
<!ATTRLIST> 描述元素属性
格式:
<!ATTLIST 元素名称 属性名称 属性类型 默认值>
属性类型:
CDATA |
值为字符数据 (character data) |
(en1|en2|..) |
此值是枚举列表中的一个值 |
ID |
值为唯一的 id |
IDREF |
值为另外一个元素的 id |
IDREFS |
值为其他 id 的列表 |
NMTOKEN |
值为合法的 XML 名称 |
NMTOKENS |
值为合法的 XML 名称的列表 |
ENTITY |
值是一个实体 |
ENTITIES |
值是一个实体列表 |
#PCDATA |
定义文本元素,没有子元素 |
默认值:
值 |
解释 |
值 |
属性的默认值 |
#REQUIRED |
属性值是必需的 |
#IMPLIED |
属性不是必需的 |
#FIXED value |
属性值是固定的 |
实体:
<!ENTITY 实体名称 "实体的值">
Schema
是什么
XML Schema 是基于 XML 的 DTD 替代者。XML Schema 描述 XML 文档的结构。XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。
DTD不是通过XML语法定义文档结构, 不能定义数据类型和限制
Schema通过XML语法定义文档结构,可以定义数据类型和限制
能干什么
约定XML格式
- 定义可出现在文档中的元素
- 定义可出现在文档中的属性
- 定义哪个元素是子元素
- 定义子元素的次序
- 定义子元素的数目
- 定义元素是否为空,或者是否可包含文本
- 定义元素和属性的数据类型
- 定义元素和属性的默认值以及固定值
为何使用Schema?
XML Schema 是 DTD 的继任者
我们认为 XML Schema 很快会在大部分网络应用程序中取代 DTD。
理由如下:
- XML Schema 可针对未来的需求进行扩展
- XML Schema 更完善,功能更强大
- XML Schema 基于 XML 编写
- XML Schema 支持数据类型和限制
- XML Schema 支持命名空间
有什么
元素、属性、限定的定义。
可以约束我们写XML文件。
Schema引用方式
<users xmlns="命名空间"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="命名空间 Schema位置">
如何找Schema,和DTD一样,首先根据命名空间问环境要,找不到再根据Schema位置找。
</