目录
Extensible Markup Language(可扩展标记语言),简称XML,类似于HTML,用来传输和存储数据。
可扩展标记语言是什么?
有一个根元素(根元素就像HTML中的<html></html>标签一样,所有的其他标签都是写在该标签中的,所有该标签只能有一个)
- DTD的全称为Document Type Definition,是一种文件定义格式。
- DTD规定了XML文件结构为XML文件提供了语法与规则。
- 在DTD中定义XML文件的结构,然后按照DTD的声明来编写XML文件。就好像编程语言中的函数定义,在使用函数时要根据函数声明的格式进行来引用。
PS:简而言之,DTD就是用来约束XML文档的,使其在一定的规范下使用,除了DTD技术外,还有Schema技术,也是用于约束XML文档的。
在XML中加入DTD声明 <!DOCTYPE root[]>,root---->根元素
例如:
该代码中的根元素为<persons></persons>,那么我们语句改为<!DOCTYPE persons[]>。
然后我们定义规范时的代码都是写在DTD声明语句中的。
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE persons[]>
- <persons>
- <person pid="p1" sex="男" qq="aaa" parent="p2">
- <name>张小明</name>
- <age>10</age>
- <contact>
- <phone>1234567</phone>
- </contact>
- <br/>
- </person>
- <person pid="p2">
- <name>张大明</name>
- <age>35</age>
- <contact>
- <email>123@qq.com</email>
- </contact>
- </person>
- </persons>
3.1 <ELEMENT 元素名称 EMPTY>空元素
什么是为空元素?
- 没有内容的标签就被称为空元素。
- 由于HTML元素的内容是开始标签与结束标签之间的内容。而某些 HTML 元素具有空内容。(empty content),那些含有空内容的HTML元素,就是空元素。空元素是在开始标签中关闭的。
ps:我随便定义一个标签<abc/>这就是一个空元素,我们常见的html的一些标签也是空元素,例如<br><hr><input>这些都是空元素。
3.2 <ELEMENT 元素名称 (#PCDATA)> 文本元素
所谓文本元素,就是在该标签体中可以放入文本型的数据
例如:
<name>张小明</name>
3.3 <ELEMENT 元素名称 (e1,e2)> 混合元素
混合元素指的是该元素下面还有别的子元素。
例如:
<persons><contact>元素下面就有很多子元素
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE persons[ ]> <persons> <person pid="p1" sex="男" qq="aaa" parent="p2"> <name>张小明</name> <age>10</age> <contact> <phone>1234567</phone> </contact> <br/> </person> <person pid="p2"> <name>张大明</name> <age>35</age> <contact> <email>123@qq.com</email> </contact> </person> </persons>
- 元素符号
1.与( ,)
2.非( | )
- 元素出现次数
1. 0或1:?
2. 0-N: *
3. 1-N:+
元素定义代码实操:
打好了详细的备注啦,都是上面刚刚所涉及到的内容
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE persons[
- <!ELEMENT persons (person+)> <!--persons有1-N个person元素-->
- <!ELEMENT person (name,age,contact,br*)> <!--person元素下有name,age,contact,br这些子元素-->
- <!ELEMENT name (#PCDATA)> <!--name为文本元素-->
- <!ELEMENT age (#PCDATA)> <!--age为文本元素-->
- <!ELEMENT contact (phone|email*)> <!--contact下面可以有phone元素或者email元素-->
- <!ELEMENT phone (#PCDATA)> <!--phone为文本元素-->
- <!ELEMENT email (#PCDATA)> <!--email为文本元素-->
- <!ELEMENT br EMPTY> <!--br为空元素-->
- ]>
- <persons>
- <person>
- <name>张小明</name>
- <age>10</age>
- <contact>
- <phone>1234567</phone>
- </contact>
- <br/>
- </person>
- <person>
- <name>张大明</name>
- <age>35</age>
- <contact>
- <email>123@qq.com</email>
- </contact>
- </person>
- </persons>
<!ATTLIST 元素名字 属性名称 类型 描述>
3.属性描述
属性定义代码实操
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE persons[
- <!ELEMENT persons (person+)> <!--persons有1-N个person元素-->
- <!ELEMENT person (name,age,contact,br*)> <!--person元素下有name,age,contact,br这些子元素-->
- <!ELEMENT name (#PCDATA)> <!--name为文本元素-->
- <!ELEMENT age (#PCDATA)> <!--age为文本元素-->
- <!ELEMENT contact (phone|email*)> <!--contact下面可以有phone元素或者email元素-->
- <!ELEMENT phone (#PCDATA)> <!--phone为文本元素-->
- <!ELEMENT email (#PCDATA)> <!--email为文本元素-->
- <!ELEMENT br EMPTY> <!--br为空元素-->
- <!--属性描述代码实操-->
- <!ATTLIST person
- pid ID #REQUIRED
- sex (男|女) "男"
- qq CDATA #IMPLIED
- parent IDREF #IMPLIED
- >
- ]>
- <persons>
- <person pid="p1" sex="男" qq="193968" parent="p2">
- <name>张小明</name>
- <age>10</age>
- <contact>
- <phone>1234567</phone>
- </contact>
- <br/>
- </person>
- <person pid="p2">
- <name>张大明</name>
- <age>35</age>
- <contact>
- <email>123@qq.com</email>
- </contact>
- </person>
- </persons>
我们设置规范就是为了让我们没有按照规范写时,立马提示我们有问题,但是如果怎么写都没有问题的话,大家按照下面步骤来设置。
先打开Window ==> Preferences ==>Validation,然后勾选图片所选中的。在点击应用,然后重启eclipse。

今天的学习就到这里啦。