1.什么是XML?
xml全称Extensible Markup Language (可扩展标记语言),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
1998年2月,W3C正式批准了可扩展标记语言的标准定义,可扩展标记语言可以对文档和数据进行结构化处理,从而能够在部门、客户和供应商之间进行交换,实现动态内容生成,企业集成和应用开发。可扩展标记语言可以使我们能够更准确的搜索,更方便的传送软件组件,更好的描述一些事物。例如电子商务交易等。
作用:1.它被设计用来传输和存储数据。
2.超文本标记语言被设计用来显示数据。
3.它们都是标准通用标记语言的子集。
2.什么是可扩展语言?
可扩展语言是一种很像超文本标记语言的标记语言。
它的设计宗旨是传输数据,而不是显示数据。
它的标签没有被预定义,你需要自行定义标签。
它被设计为具有自我描述性。
它是W3C的推荐标准。
3.可扩展标记语言和超文本标记语言之间的差异
它不是超文本标记语言的替代。
它是对超文本标记语言的补充。
它和超文本标记语言为不同的目的而设计。
它被设计用来传输和存储数据,其焦点是数据的内容。
超文本标记语言被设计用来显示数据,其焦点是数据的外观。
超文本标记语言旨在显示信息,而它旨在传输信息。
对它最好的描述是:它是独立于软件和硬件的信息传输工具。
4.XML语法
1.文档声明:声明XML文档的类型(<?xml version="1.0" encoding="UTF-8"?>)(必须写在xml的第一行)
2.标签:
a.文件有且仅有一个根标签,其他标签都必须封装在根标签中
b.非空标签必须由“开始标签”和“结束标签”组成,空标签没有“开始标签”和“结束标签”
c.XML全体标签必须形成树形,即标签不允许交叉。
d.命名规范:
字母,数字等。
1.严格区分大小写。
2.不能以数字,下划线,XML等开头
3.不能包含空格。
4.名字中间不能包含。
3.属性
a.一个标签可以允许有多个属性
b.属性值一定要用“或者”引起来
4.注释:
a.格式:<!--注释内容-->
b.文档声明之前不能有注释
c.注释不能嵌套
5.CDATA区:
放在CDATA区的内容,会原封不动的输出
语法:<![CDATA[内容]]>
6.特殊字符:< <
> >
' '
" "
& &
代码实现xml类,含有dtd约束:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persons SYSTEM "my.dtd">---------引入本地的dtd约束
<persons>
<person pid="G160628">
<pname>张三</pname>
<page>3</page>
</person>
<person pid="G160618">
<pname>张三疯</pname>
<page>33</page>
</person>
</persons>
5.XML约束?
1.什么是XML约束?
另外一个文档用来约束XML文档的书写规范。
约束技术:xml DTD xml Schema
DTD是什么?
Document Type Definition 文档类型定义
引入DTD文件:
本地:<!DOCTYPE 文档根节点 SYSTEM "dtd文件名">
公共:<!DOCTYPE 文档根节点 PUBLIC "dtd文件名" "DTD文件URL">
代码实现DTD类
<!ELEMENT persons (person*)>
<!ELEMENT person (pname,page)>
<!ELEMENT pname (#PCDATA)>
<!ELEMENT page (#PCDATA)>
<!ATTLIST person pid ID #REQUIRED>
2.DTD语法
元素ELEMENT
格式:<!ELEMENT 元素名称 元素类型>
元素类型:EMPTY:表示定义空元素
ANY:表示元素内容为任意类型
也可以写元素内容
元素内容:1.用逗号隔开:表示内容的出现顺序必须与声明时一致
2.用 | 隔开:表示任选其一,即多个只能出现一个
出现次数:+:一次或多次
-:0次或1次
?:0次或多次
属性ATTLIST
格式:<!ATTLIST 元素名 属性名1 属性值类型 设置说明>
属性值类型:CDATA 普通文本字符串
ENUMERATED 枚举
ID 唯一(不能以数字开头)
ENTITY
实体ENTITY
格式:<!ENTITY >
为内容取名
类型:引用类型(XML引用)
格式:<!ENTITY 实体名称 “实体内容”>
引用:&实体名称
参数实体(DTD引用)
格式:<!ENTITY % 实体名称 “实体内容”>
引用:%实体名称