XML是指可扩展标记语言(eXtensible Markup Language),它是一种标记语言
作用:
它被设计的宗旨是用于表示数据的。
XML还经常作为配置文件
二、XML的语法(记住)
1、XML的声明
必须出现在第一行
最简单的形式:<?xml version="1.0"?>
encoding:指示解析器在解析XML中数据时使用的编码,默认是UTF-8
2、CDATA区:
作用:把标签当做普通的文本对待
语法<![CDATA[文本内容]]>
三、XML的约束(知道)
约束就是一个规定
格式良好的XML:遵循XML语法的XML
有效的XML:遵循约束文档的XML
四、DTD约束(理解)
1、DTD(Document Type Definition):文档类型定义。
2、DTD如果是在一个单独的文件中定义的,文件保存时必须使用UTF-8
3、如何在xml中引入外部的dtd文档(必须会)
3.1dtd文档在本地:<!DOCTYPE 根元素 SYSTEM "DTD文档路径">
3.2dtd文档不在本地:<!DOCTYPE 根元素 PUBLIC "DTD名称" "DTD文档的URL">
4、看懂DTD文档
5、一个简单的DTD约束实例:
* book.dtd:
<!ELEMENT 书架 (书+)>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
<!ATTLIST 书
出版社 (传智|黑马) #required
ISBN ID #IMPLIED
某个属性 CDATA #FIXED "不知道"
再来一个属性 CDATA "默认值">
<!ENTITY copyright "黑马训练营所有">
* book.xml:
<?xml version="1.0" encoding="gbk"?>
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
<书 出版社="传智" ISBN="a1">
<书名>葵花宝典</书名>
<作者>何敬轩</作者>
<售价>1</售价>
</书>
<书 出版社="黑马" ISBN="a2" 某个属性="不知道">
<书名>金瓶梅</书名>
<作者>©right;</作者>
<售价>2</售价>
</书>
</书架>
五、XML的数据解析
DOM和SAX的优缺点
六、DOM解析
Jaxp DOM解析的基本操作(练习:PPT 44 7个练习)
Jaxp SAX解析(练习:把书的信息封装到JavaBean中)
八、DOM4J操作
基本操作(练习:PPT 44 7个练习,不要采用main方法进行测试,请使用单元测试)
八、JUnit单元测试和debug调试
一、Xpath(会查文档,简单有些概念和印象)
二、Dom4J综合案例(练习)
三、Schema约束:目标,根据Schema写出xml文档来,难点在于xml文件如何引入schema约束
xml中引入schema约束的步骤:(王氏独家)
1、查看schema文档,找到根元素,在xml中写出来
<?xml version="1.0" encoding="UTF-8"?>
<书架>
</书架>
2、根元素来自哪个名称空间。使用xmlns指令来声明
名称空间是在schema中定义的,就是targetNamespace的值
<?xml version="1.0" encoding="UTF-8"?>
<itheima:书架 xmlns:itheima="http://www.itheima.com/book">
</itheima:书架>
3、引入的名称空间跟哪个xsd文件对应?
使用schemaLocation来指定:两个取值:第一个为名称空间 第二个为xsd文件的路径
<?xml version="1.0" encoding="UTF-8"?>
<itheima:书架 xmlns:itheima="http://www.itheima.com/book"
schemaLocation="http://www.itheima.com/book book.xsd">
</itheima:书架>
4、schemaLocation哪里来的?它来自一个标准的名称空间
<?xml version="1.0" encoding="UTF-8"?>
<itheima:书架 xmlns:itheima="http://www.itheima.com/book"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.itheima.com/book book.xsd">
</itheima:书架>
5、只要以上4部搞好了,对于子标签eclipse就有提示了
* 一个简单的schemal约束实例:
1、book.xsd
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.itheima.com/book"
elementFormDefault="qualified">
<element name='书架' >
<complexType>
<sequence maxOccurs='unbounded' >
<element name='书' >
<complexType>
<sequence>
<element name='书名' type='string' />
<element name='作者' type='string' />
<element name='售价' type='string' />
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
</schema>
2、book.xml
<?xml version="1.0" encoding="UTF-8"?> <书架> <书 出版社="黑马"> <书名>Java就业培训教程</书名> <作者>张孝祥</作者> <批发价>58.00元</批发价> <售价>39.00元</售价> <内部价>48.00元</内部价> </书> <书 出版社="传智"> <书名>葵花宝典</书名> <作者>陈浩</作者> <售价>0.50元</售价> </书> </书架>