一、XML是什么?作用是什么?
1、XML是指可扩展标记语言(eXtensible Markup Language),用户自定义的标签.相对于HTML来讲的。2、XML被设计的宗旨是表示数据。HTML是用来显示数据的。目前经常使用的XML版本是1.03、XML除了表示数据外。在实际的企业开发中,主要用XML作为程序的配置文件。二、XML的基本语法1、文档声明:作用:用于标识该文档是一个XML文档。注意事项:声明必须出现在文档的第一行(之前连空行都不能有,也不能有任何的注释)最简单的XML声明:<?xml version="1.0"?>声明中的encoding属性:说明解析当前XML文档时所使用的编码。默认是UTF-8声明中的standalone属性:说明XML文档是否是独立的。(了解)2、元素结束标签不能省略一个XML文档必须且只能有一个根标签XML文档中不会忽略回车和换行及空格标签的命名规范:元素(标签)的名称可以包含字母、数字、减号、下划线和英文句点。严格区分大小写。3、元素的属性元素的属性取值一定要用引号引起来(单引号或双引号)4、注释与HTML中的注释完全一致:<!--这是注释-->注释不能嵌套5、CDATA区CDATA是Character Data的缩写。作用:CDATA区中的东东都是文本。语法: <![CDATA[ 文本内容 ]]>6、特殊字符& &< < (less than)> >: (great than)" "' '7、处理指令(PI:Processing Instruction)处理指令,简称PI(Processing Instruction)。作用:用来指挥软件如何解析XML文档。语法:必须以“<?”作为开头,以“?>”作为结尾。三、XML的约束1、格式良好的XML文档:符合XML语法的。2、有效的XML文档:遵循约束规范的。格式良好的不一定是有效的,但有效的必定格式良好。四、DTD的基本语法(看懂即可)1、DTD:Document Type Definition2、作用:约束XML的书写规范。3、DTD文件保存到磁盘时,必须使用UTF-8编码4、如何引入外部的DTD文档来约束当前的XML文档DTD文件在本地:<!DOCTYPE 根元素名称 SYSTEM "DTD文件的路径">DTD文件在网络上:<!DOCTYPE 根元素名称 PUBLIC "DTD名称" "DTD的路径URL">5、DTD的语法细节 5.1定义元素 语法:<!ELEMENT 元素名称 使用规则> 使用规则: (#PCDATA):指示元素的主体内容只能是普通的文本.(Parsed Character Data) EMPTY:指示元素的不能有主体内容。 ANY:用于指示元素的主体内容为任意类型 (子元素):指示元素中包含的子元素 如果子元素用逗号分开,说明必须按照声明顺序去编写XML文档 如果子元素用“|”分开,说明任选其一。 用+、*、?来表示元素出现的次数 5.2定义元素的属性(attribute) 语法:<!ATTLIST 哪个元素的属性 属性名1 属性值类型 设置说明 属性名2 属性值类型 设置说明> 属性值类型: CDATA:说明该属性的取值为一个普通文本 ENUMERATED (DTD没有此关键字): 语法:<!ATTLIST 元素名称 (值1|值2) "值1"> ID:属性的取值不能重复 设置说明: #REQUIRED:表示该属性必须出现 #IMPLIED:属性可有可无 #FIXED:表示属性的取值为一个固定值 语法:#FIXED "固定值" 直接值:表示属性的取值为该默认值 5.2定义实体 关键字ENTITY 实体的定义分为引用实体和参数实体 引用实体: 作用:在DTD中定义,在XML中使用 语法:<!ENTITY 实体名称 "实体内容"> 在XML中使用:&实体名称; 参数实体: 作用:在DTD中定义,在DTD中使用 语法:<!ENTITY % 实体名称 "实体内容"> 在DTD中使用:%实体名称; 五、XML解析方式概述1、常用XML的解析方式:DOM和SAXDOM:Document Object Model是W3C推荐使用的解析方式SAX:Simple API for XML。非官方标准。2、常用解析开发包:JAXP:SUN推出的实现,能进行DOM和SAX方式解析Dom4JJDom等六、JAXP进行DOM解析JAXP的API都在JavaSE中。org.w3c.dom:提供DOM方式解析XML的标准接口org.xml.sax:提供SAX方式解析XML的标准接口javax.xml:提供了解析XML文档的类
七、Schema约束(看懂即可)
1、Schema约束文档本身就是一个XML文档,扩展名为xsd2、重点:根据Schema写出XML文档难点:XML文档的根元素怎么写?a、首先看Schema文档,找到根元素<?xml version="1.0" encoding="UTF-8"?><书架></书架>b、思考:书架来自于哪个名称空间?看Schema文档,targetNamespace就是名称空间。用xmlns关键字(xmlns名称空间声明)来声明我的元素来自哪个名称空间(xmlns:xml namespace)<?xml version="1.0" encoding="UTF-8"?><itcast:书架 xmlns:itcast="http://www.itcast.cn"></itcast:书架>c、思考:名称空间与哪个xsd文件对应呢?使用schemaLocation关键字来关联名称空间和xsd的对应关系<?xml version="1.0" encoding="UTF-8"?><itcast:书架 xmlns:itcast="http://www.itcast.cn" schemaLocation="http://www.itcast.cn book.xsd"></itcast:书架>d、schemaLocation来自哪里?来自一个标准的名称空间(http://www.w3.org/2001/XMLSchema-instance)<?xml version="1.0" encoding="UTF-8"?><itcast:书架 xmlns:itcast="http://www.itcast.cn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.itcast.cn book.xsd"></itcast:书架>