一:XML基础
XML是什么:
可扩展的标记语言
XML能干什么:
描述数据、存储数据、传输(交换)数据。
XML与HTML区别:
目的不一样
XML 被设计用来描述数据,其焦点是数据的内容。
HTML 被设计用来展示数据,其焦点是数据的外观。
HTML可以不关闭标签(即标签可以不成对出现),但XML必须关闭标签(即标签必须成对出现)。
HTML中的标签标识文本如何展示,而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、声明:<?xmlversion="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、实体:&实体;
Xml约束
1.XML DTD 约束
DTD(DocType Definition 文档类型定义)的作用是定义 XML 文档的合法构建模块。
它使用一系列的合法元素来定义文档结构。用于约定XML格式。
1、DTD引用方式
1、内部 <!DOCTYPE 根元素 [元素声明]>
例如:
<?xml version="1.0"encoding="UTF-8" standalone="yes"?>
<!DOCTYPE 书架 [
<!ELEMENT 书架 (书+)>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
]>
<书架>
<书>
<书名>Java就业培训教程</书名>
<作者>张孝祥</作者>
<售价>39.00元</售价>
</书>
...
</书架>
2、外部私有的 SYSTEM 一般是我们自己定义的,可能只是一个公司内部使用
<!DOCTYPE 根元素 SYSTEM "dtd文件位置">
例如:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
<书>
<书名>java编程思想</书名>
<作者>Brnee</作者>
<售价>80</售价>
</书>
</书架>
3、外部公有的 PUBLIC 一般是一些标准,可能非常多的人用
<!DOCTYPE 根元素 PUBLIC "命名空间""dtd文件位置">
首先根据“命名空间”去问环境要相应的dtd文件,如果有,直接提供,如果没有再根据dtd文件位置找。
例如:<!DOCTYPE web-app PUBLIC
"-//SunMicrosystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
2、例子:
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend</body>
</note>
2.XML Schema 约束
XML Schema 是基于 XML 的 DTD 替代者。XML Schema 描述 XML 文档的结构。XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。
DTD不是通过XML语法定义文档结构, 不能定义数据类型和限制Schema通过XML语法定义文档结构,可以定义数据类型和限制
约定XML格式
- 定义可出现在文档中的元素
- 定义可出现在文档中的属性
- 定义哪个元素是子元素
- 定义子元素的次序
- 定义子元素的数目
- 定义元素是否为空,或者是否可包含文本
- 定义元素和属性的数据类型
- 定义元素和属性的默认值以及固定值
1、为何使用Schema
XML Schema 是 DTD 的继任者
- XML Schema 可针对未来的需求进行扩展
- XML Schema 更完善,功能更强大
- XML Schema 基于 XML 编写
- XML Schema 支持数据类型和限制
- XML Schema 支持命名空间
2、Schema引用方式
<users xmlns="命名空间"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="命名空间 Schema位置">
如何找Schema,和DTD一样,首先根据命名空间问环境要,找不到再根据Schema位置找。