XML配置文件(DTD详细讲解)

目录

一.XML介绍

1.什么是XML文件?

2.XML文件的作用

3.XML格式

二.元素定义

1.什么是DTD

2.DTD声明语句

3.元素的分类

3.4.元素限制 

三.属性定义 

1.语法

2.属性类型

四.XML所存在问题


一.XML介绍

1.什么是XML文件?

Extensible Markup Language(可扩展标记语言),简称XML,类似于HTML,用来传输和存储数据。

可扩展标记语言是什么?

  • 在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。例如:table标签,浏览器解析以后,生成一个表格。

2.XML文件的作用

  • 用来保存数据,而且这些数据具有自我描述性
  • 可以作为项目或者模板的配置文件
  • 可以用来做网络传输数据的数据(但是现在用的不多,目前都是使用JSON为主)
  • XML里面的DTD可以定义规范,作用相当于接口,即只有使用这个规范才可以实现XML的功能
  • 为了便于不同应用、不同平台之间的数据共享和通信。

3.XML格式

  • 有一个根元素(根元素就像HTML中的<html></html>标签一样,所有的其他标签都是写在该标签中的,所有该标签只能有一个)

  • XML标签是严格区分大小写的
  • 正确使用结束标签,有始有终(<html></html>就像是这样子有始有终)
  • 正确嵌套标签
  • 使用合法的标签名
  • 定义有效的属性

二.元素定义

1.什么是DTD

  • DTD的全称为Document Type Definition,是一种文件定义格式。
  • DTD规定了XML文件结构为XML文件提供了语法与规则。
  • 在DTD中定义XML文件的结构,然后按照DTD的声明来编写XML文件。就好像编程语言中的函数定义,在使用函数时要根据函数声明的格式进行来引用。

PS:简而言之,DTD就是用来约束XML文档的,使其在一定的规范下使用,除了DTD技术外,还有Schema技术,也是用于约束XML文档的。


2.DTD声明语句

  在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>[email protected]</email>
		</contact>
	</person>
</persons>

3.元素的分类

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>[email protected]</email>
		</contact>
	</person>
</persons>

3.4.元素限制 

  • 元素符号

      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>[email protected]</email>
		</contact>
	</person>
</persons>

三.属性定义 

1.语法

 <!ATTLIST 元素名字 属性名称  类型 描述>

2.属性类型

  •  ID :给节点赋一个id号,id号不可以重复
  • CDATA :文本型
  • IDREF: 引用类型,输入需要引用的元素的ID
  • (男|女):要么是男要么是女,也可以设置别的,比如1|2,要么为1要么为2

3.属性描述

  • #REQUIRED:必填
  • #IMPLED:非必填
  • "默认值",只有像(男|女)类型时,描述才可以用默认值的方式。

属性定义代码实操

<?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>[email protected]</email>
		</contact>
	</person>
</persons>

四.XML所存在问题

我们设置规范就是为了让我们没有按照规范写时,立马提示我们有问题,但是如果怎么写都没有问题的话,大家按照下面步骤来设置。

先打开Window ==> Preferences ==>Validation,然后勾选图片所选中的。在点击应用,然后重启eclipse。

 今天的学习就到这里啦。

猜你喜欢

转载自blog.csdn.net/m0_65725031/article/details/125574886