一、XML
1.1XML简介
XML,eXtensible Markup Language,可扩展标记语言,是一种标记语言。
XML是一种灵活的语言,没有固定的标签,所有标签都可以自定义。
通常,XML被用于信息的记录和传递,常被用于充当配置文件。
1.2格式良好的XML
①声明信息,用于描述XML的版本和编码方式。
例:
<?xml version="1.0" encoding="UTF-8"?>
②XML有且仅有一个根元素。
例:
<scorse> </scorse>
③XML是大小写敏感的。
④标签是成对出现的,并且要正确嵌套。
⑤属性值要使用双引号。
⑥注释的写法
。
二、DTD
2.1DTD简介
①DTD,Document Type DEfinition,文档类型定义。
②DTD用于约束XML文档格式,保证XML是一个有效的XML。
③DTD可以分为内部DTD和外部DTD。
2.2 使用DTD
2.2.1 内部DTD
①内部DTD的定义
<!DOCTYPE 根元素 [元素声明]>
<!DOCTYPE scores [
<!ELEMENT scores (student)>
<!ELEMENT student (name,course,score)>
]>
②元素声明语法:
<!ELEMENT 元素名 (子元素,子元素,子元素...)>
<!ELEMENT student (name,course,score)>
③数量词:
+:表示出现1次或者多次(至少一次);
?:表示出现0次或1次;
*:任意次。
④属性声明语法:
属性类型:CDATA,表示字符数据(character data)
默认值:#REQUIRED 表示必须出现
#IMPLIED 表示不是必须的
<!ATTLIST 元素名称 属性名称 属性类型 默认值>
<!ATTLIST payment type CDATA "check">
⑤带DTD的完整XML代码:
scores.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- 声明内部DTD -->
<!DOCTYPE scores [
<!ELEMENT scores (student+)>
<!ELEMENT student (name,course,score)>
<!ATTLIST student id CDATA #REQUIRED>
<!--限制内部数据为文本使用‘PCDATA’-->
<!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
① 创建一个独立的DTD文件
scores.dtd
<!xml version="1.0" encoding="utf-8"?>
<!ELEMENT scorse (student+)>
<!ELEMENT student (name,course,score)>
<!ATTLIST student id CDATA #REQUTRED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT course (#PCDATA)>
<!ELEMENT score (#PCDATA)>
② 引入外部DTD
在文件中加入:
<!DOCTYPE scorse SYSTEM "scores.dtd">