![c8730cb180e87e7cf929c7f330c6d0bd.png](https://img-blog.csdnimg.cn/img_convert/c8730cb180e87e7cf929c7f330c6d0bd.png)
一个人的伟大之处乃在于他是一座桥梁,而不是目的。By尼采
”一XXE原理0 1XML 简介XML 指可扩展标记语言(EXtensible Markup Language),和HTML很类似,但XML的设计目的是传输数据而非显示数据,且XML没有预定义的标签,因此需要自行定义标签。下面是一个XML文档的实例。
George John Reminder Don't forget the meeting! |
第一行是XML声明,定义XML版本(1.0)和使用的编码(ISO-8859-1 = Latin-1/西欧字符集)。
下一行为文档的根元素(note,说明为一个便签)。
接下来4行描述根的4个子元素(to,from,heading,和body):
George John Reminder Don't forget the meeting! |
最后一行定义根元素的结尾:
在XML中,需要注意:
1、所有的元素都必须有关闭标签。
2、XML 标签对大小写敏感。
3、XML文档必须有根元素。
4、XML 元素必须被正确的嵌套。
5、XML 的属性值须加引号,如。
6、在XML中,"
02DTD 简介文档类型定义(XML Document Type Declaration,DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。
DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。
内部DOCTYPE声明
在使用内部DOCTYPE声明的情况下,DTD包含在XML源文件中,须通过如下语法包装在DOCTYPE声明中:
元素声明]> |
下面是一个带有DTD的XML文档实例:
]> George John Reminder Don't forget the meeting! |
以上DTD解释如下:
!DOCTYPE note(第二行)定义此文档是 note 类型的文档。
!ELEMENT note(第三行)定义 note 元素有四个元素:"to、from、heading,、body"
!ELEMENT to(第四行)定义 to 元素为 "#PCDATA" 类型
!ELEMENT from(第五行)定义 from 元素为 "#PCDATA" 类型
!ELEMENT heading(第六行)定义 heading 元素为 "#PCDATA" 类型
!ELEMENT body(第七行)定义 body 元素为 "#PCDATA" 类型
外部文档声明
在使用外部文档声明的情况下,DTD位于XML源文件的外部,通过如下语法封装在DOCTYPE定义中:
下面的XML文档和上面的XML文档相同,只是有一个外部DTD:
George John Reminder Don't forget the meeting! |
note.dtd内容如下:
DTD实体
所有的XML文档(以及HTML文档)均由以下简单的构建模块构成:
a.元素
b.属性,可提供有关元素的额外信息
c.实体,用来定义普通文本的变量。实体引用是对定义的变量的引用。
d.PCDATA,意思是被解析的字符数据(parsed character data),文本中的标签会被当作标记来处理,而实体会被展开。
e.CDATA,意思是字符数据(character data),是不会被解析器解析的文本,在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开
实体可在内部或者外部进行声明,一个内部声明的实体,语法如下:
DTD 例子:
writer"Bill Gates"> copyright"Copyright W3School.com.cn"> |
XML文档中引用:
&writer;©right; |