1.xml
1.1xml简介
XML 指可扩展标记语言(eXtensible Markup Language),是一种标记语言
XML 被设计用来传输和存储数据,传递性很好,xml经常被用于配置文件
XML非常灵活,没有固定的标签,所有的标签都可以自定义
1.2格式良好的xml
- 声明信息
<?xml version="1.0" encoding="UTF-8"?>
- XML有且仅有一个根元素
- 大小写敏感
- 标签值成对
- 属性值要属于双引号
- 注释
<!--这里是注释 -->
<?xml version="1.0" encoding="UTF-8"?>
<!--这里是注释 -->
<books>
<book id="b01">
<name>java编程</name>
<author>张三</author>
<price>50.5</price>
</book>
<book id="b02">
<name>java基础</name>
<author>王五</author>
<price>12.5</price>
</book>
</books>
2.DTD
2.1DTD简介
- DTD 为英文Document Type Definition,中文意思为“文档类型定义”。
- DTD用于约束xml的文档格式,保证xml是一个有效的xml
- DTD分为内部DTD和外部DTD
2.2使用DTD
内部DTD的定义,语法如下
<!DOCTYPE 根元素 [元素声明]>
元素声明语法:
<!ELEMENT 元素名 (子元素[, 子元素...])>
数量词
- +:出现1次或者多次,至少一次
- ?:表示出现0次或1次
- *:表示出现任意次
属性声明
- 属性类型:CDATA表示字符数据
- 默认值:
- #REQUIRED 表示必须出现
- #IMPLIED 表示不是必须出现
<?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 class (#PCDATA)>
<!ELEMENT score (#PCDATA)>
]>
<scores>
<student id ="1">
<name>王彤</name>
<class>java</class>
<score>89</score>
</student>
<student id ="2">
<name>李佳</name>
<class>sql</class>
<score>49</score>
</student>
<student id ="3">
<name>刘雪</name>
<class>Python</class>
<score>79</score>
</student>
</scores>
外部DTD的定义
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT scores (student+)>
<!ELEMENT student (name,class,score)>
<!ATTLIST student id CDATA #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT class (#PCDATA)>
<!ELEMENT score (#PCDATA)>
外部DTD的引入
<?xml version="1.0" encoding="UTF-8"?>
<!-- 引入外部DTD -->
<!DOCTYPE scores SYSTEM "scores.dtd">
<scores>
<student id ="1">
<name>王五</name>
<class>javascript</class>
<score>67</score>
</student>
<student id ="2">
<name>李佳</name>
<class>sql</class>
<score>49</score>
</student>
<student id ="3">
<name>刘雪</name>
<class>Python</class>
<score>79</score>
</student>
</scores>