* 扩展名:*.xml
* 作用:存储、配置
* 语法:
* 文档声明
* 格式:<?xml version="1.0"?>
* version:设置当前xml文档内容使用的版本
* encoding:设置当前xml文档内容使用的编码
* 元素
* 格式:<x></x> or <x />
* 名称自定义
* 建议字母开头
* 区分大小写
* 不能包含空格 <a b>
* 不能包含冒号 <a:b>
* 注意:
* 不能嵌套
* 格式良好的xml文档只有一个根
* 属性
* 前提:在某元素的基础上,确定相应的属性
* 格式:<x attribute="attrValue" />
* 注释
* 格式:<!--注释内容-->
* 转义字符
* 格式: &xx; --> {
* CDATA区
* 在xml文档中存放任意内容的区域
* 格式:<![CDATA[ cdata内容 ]]>
* 处理指令
* 可以引入css文件等
* 格式:<?xml-stylesheet type="text/css" href="uri" ?>
* type:类型,内容是MIME类型 image/jpeg
* href:确定引用文件的位置。
* uri:统一资源标识符,1.html news/m.html
* url:统一资源定位符,http://www.fengjie.com/news/m.html
* xml乱码
* 文档内容编码:UTF-8
* 文件编码:window默认GBK
* 解决文件的方法
* 统一不同编码
2、编码、字符集
UTF-8:万国码,(1-6字符)
GB2312:国标码(简体)
GBK:国标码(简体、繁体),GB2312升级版
GB18030:国标码(简体、繁体、少数名族),GBK升级版
BIG5:大5码(繁体)
ISO-8859-1:英文编码
3、约束
* 书写一个文档对当前的xml文档进行限制
* 分类:
* DTD
* 文档关联
* 内部关联
* 格式:<!DOCTYPE 根元素 [语法]>
* 外部关联
* 格式:<!DOCTYPE 根元素 SYSTEM "URI">
* 公共关联
* 格式:<!DOCTYPE 根元素 PUBLIC "文档名称" "文档URL">
* 元素
* 格式:<!ELEMENT 元素名称 约束>
* 符号:
? : 0 1
+ : >=1
* : >=0
(): 分组
| : 选择
,: 顺序
* 类型:
#PCDATA,只能书写字符,不能包含子元素,注意: (#PCDATA)
EMPTY,元素内容为空
AND,元素内容任意
* 属性:
* 格式:<!ATTLIST 元素名称 [属性名称 属性类型 约束 ...]>
* 类型
* CDATA,字符
* (),选择
* ID,设置唯一标识,注意,必须字母开头
* IDREF,引用又存在的ID值
* 约束
* #required,必须填写
* #IMPLIED,可选
* #FIXED value,固定值
* defaultValue,默认值
* 实体
* 内部实体
* 引用实体
* 格式:<!ENTITY 实体名称 "内容">
* 使用位置:在xml文档中使用
* 使用格式:&实体名称;
* 参数实体
* 格式:<!ENTITY % 实体名称 "内容">
* 使用位置:在DTD文档中使用
* 使用格式:%实体名称;
* 外部实体
* 格式:<!ENTITY 实体名称 SYSTEM "URI">
* 使用位置:在xml文档中使用
* 使用格式:&实体名称;
* 要求:(作业)
* 通过别人书写的DTD文档,写出相应的XML文档(w3cschool.chm,3选择一个)
** 通过xml文档书写相应的DTD文档(PPT5片段)【可选】
* schema
* 扩展名:*.xsd
* schema文档来说是基于xml
* schema文档,根元素是schema,在http://www.w3.org/2001/XMLSchema定义
* 要求:(作业)
* 通过别人书写的schema文档,写出相应的XML文档(w3cschool.chm)
** 通过xml文档书写相应的schema文档(PPT5片段)【可选】
总结:
1、JAXP DOM * I --> document * DocumentBuilderFactory --> newInstance() * DocumentBuilder -- factory.newDocumentBuilder() * Document -->builder.parse("xml") * NodeList --> getLength() item(n); * O * TransformerFactory --> newInstance() * Transformer --> facotry.newTransformer() * transform(Source,Result); * DomSource -- dom * StreamResult -- file 2、JAXP SAX * SAXParserFactory --> newInstance() * SaxParser --> factory.newSaxPareser * parser.parse("xml",DefaultHandler); --默认基类 3、Dom4j * I SaxReader -- reader("xml") * o XMLWriter("file") -- writer(document) 4、目标:解析xml,将需要的内容添加到xml中(dom4j --> jaxp dom --> jaxp sax) * 读取xml --> 获得解析器 --document * 读取指定内容 --> 遍历 * 将所有获得的数据封装