【笔记】XML学习笔记

前言

可扩展标记语言(英语:Extensible Markup Language,简称:XML)是一种标记语言和用于存储、传输和重构松散数据的文件格式。(维基百科

XML文件的文档类型定义(Document Type Definition)可以看成一个或者多个XML文件的模板,在这里可以定义XML文件中的元素、元素的属性、元素的排列方式、元素包含的内容等等。(维基百科

定义XML文件

  • 将DTD定义在XML文件中
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE father [
<!ELEMENT father (son, daughter)>
<!ELEMENT son (#PCDATA)>
<!ELEMENT daughter (#PCDATA)>
]>

<father>
<son></son>
<daughter></daughter>
</father>

定义通用实体

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE father [
<!ELEMENT father (son)>
<!ELEMENT son (#PCDATA)>
<!ENTITY key "value">
]>

<father>
<son>&key;</son>
</father>

定义参数实体

1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE father [
<!ELEMENT father (son, daughter)>
<!ENTITY % key "(#PCDATA)">
<!ELEMENT son %key;>
<!ELEMENT daughter %key;>
]>

<father>
<son></son>
<daughter></daughter>
</father>

定义DTD和XML文件

  • 将DTD定义在外部文件中
father.dtd
1
2
3
4
<!ELEMENT father (son, daughter)>
<!ENTITY % key "(#PCDATA)">
<!ELEMENT son %key;>
<!ELEMENT daughter %key;>
  • 在XML文件中引入.dtd文件
1
2
3
4
5
6
7
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE father SYSTEM "father.dtd">

<father>
<son></son>
<daughter></daughter>
</father>

完成