XML网课笔记1——认识XML、使用DTD

XML

1.1 xml简介

(1)xml,eXtensible Markup Language,可扩展标记语言
(2)xml是一种非常灵活的语言,没有固定的标签,所有的标签都可以自定义
(3)通常,xml被用于信息的记录和传递。因此,xml经常被用于充当配置文件。(比Oracle数据库方便,用记事本就可以打开)

1.2 有效的xml文档

1、标题格式良好的xml

在这里插入图片描述

(1)声明信息,用于描述xml的版本和编码方式

<?xml version="1.0" encoding="UTF-8"?>

(2)xml有且仅有一个根元素
(根元素:根元素的上面没有其他元素了,即没有被其他元素包围起来)

(3)xml是大小写敏感的

(4)标签是成对的,而且要正确嵌套

(5)属性值要使用双引号

(6)注释的写法:

<!-- 这里是注释 -->

2、使用DTD和XSD(XML Schema)定义语义约束

DTD

2.1 DTD简介

(1)DTD,Document Type Definition,文档类型定义

(2)DTD用于约束xml的文档格式,保证xml是一个有效的xml

(3)DTD可以分为两种,内部DTD(定义在xml里面),外部DTD(相对xml,是另一个单独的文件)

2.2 使用DTD

2.2.1 内部DTD的定义

(1)语法如下:

<!DOCTYPE 根元素 [元素声明]>

(2)元素声明语法:

<!ELEMENT 元素名 (子元素[, 子元素...]>

(#PCDATA) 表示元素内容只能是文本,不能再在里面设置子元素

(3)数量词

 +   表示出现1次或多次,至少一次
 ?   表示出现0次或1*   表示出现任意次

(4)属性声明语法:

<!ATTLIST 元素名称 属性名称 属性类型 默认值>

属性类型:CDATA,表示字符数据(character data)
默认值:

  • #REQUIRED 表示必须出现
  • #IMPLIED 表示不是必须的

(5)带DTD的完整xml代码举例:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 声明内部DTD -->
<!DOCTYPE scores [
	<!ELEMENT scores (student+)>
	<!ELEMENT student (name, course, score)>
	<!ATTLIST student id CDATA #REQUIRED>
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT course (#PCDATA)>
	<!ELEMENT score (#PCDATA)>
]>
<scores>
	<student id="1">
		<name>王同</name>
		<course>java</course>
		<score>89</score>
	</student>
	
	<student id="2">
		<name>李佳</name>
		<course>sql</course>
		<score>58</score>
	</student>
</scores>

2.2.2 外部DTD的定义

(1)创建一个独立的DTD文件

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT scores (student+)>
<!ELEMENT student (name, course, score)>
<!ATTLIST student id CDATA #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT course (#PCDATA)>
<!ELEMENT score (#PCDATA)>

(2)在xml中引入外部DTD文件

<!-- 引入外部DTD文件 -->
<!DOCTYPE scores SYSTEM "scores.dtd">

约束和验证XML

XSD

  • XML Schema 是DTD的替代者
  • 不仅可以定义XML文档的结构,还可以规范文档的内容
  • XSD本身也是XML文档
  • XSD采用XML文档来定义语义约束,比DTD要复杂一些,但是功能强大的多
    • 支持丰富的数据类型
    • 允许开发者自定义数据类型
    • 可读性强
    • 可针对未来需求进行扩展

猜你喜欢

转载自blog.csdn.net/weixin_45550460/article/details/105928018