黑马程序员_XML学习总结(一)

来源:互联网 发布:淘宝怎样设置货到付款 编辑:程序博客网 时间:2024/06/06 00:34

-----------------------------android培训java培训期待与您交流!----详细请查看:http://edu.csdn.net/heima---------------


1.Schema 还可以自定义数据类型。此外,Schema也是一个 XML文件,而 dtd则不是。

2.所有的 schema 文档,其根元素必须为schema。

3.  SimpleType与 ComplexType 的区别: 

 1)  SimpleType类型的元素没有子元素,也没有属性。 

 2)  当需要定义的元素包含了子元素或者属性时,必须要使用 ComplexType。

4.  SimpleContent,用于 ComplexType 元素上,用于限定该 ComplexType 的内容类型,表示该 ComplexType 没有子元素,同时该 ComplexType 需要有属性,否则它就成为 SimpleType 了。 

5.  在DTD中通过 DOCTYPE 可以明确指定文档的根元素,因为 DOCTYPE 后面跟的素就是文档的根元素;通过 Schema 是没法明确指定目标XML 文档的根元素, XmlSpy是通过推断哪个元素包含了其他元素来选择包含其他元素最多的那个元素作为文档的根,但我们可以明确指定文档的根元素而不必按照 XmlSpy的生成来做。 

6.  DOM:Document Object Model  (文档对象模型) 。对于 XML应用开发来说,DOM就是一个对象化的 XML数据接口,一个与语言无关、与平台无关的标准接口规范 

7.  要严格区分 XML 文档树中的根结点与根元素结点:根节点(Document)代表的是 XML 文档本身,是我们解析 XML 文档的入口,而根元素结点则表示XML 文档的根元素,它对应于 XML 文档的 Root。 

8. 在DOM接口规范中,有四个基本的接口:Document,Node,NodeList以及NamedNodeMap。在这四个基本接口中,Document接口是对文档进行操作的入口,它是从Node接口继承过来的。Node接口是其他大多数接口的父类,象Document,Element,Attribute,Text,Comment等接口都是从Node接口继承过来的。NodeList接口是一个节点的集合,它包含了某个节点中的所有子节点。NamedNodeMap接口也是一个节点的集合,通过该接口,可以建立节点名和节点之间的一一映射关系,从而利用节点名可以直接访问特定的节点。



1.  JAXP(Java API for XML Parsing):用于XML 解析的Java API。

 

SAX(Simple APIs for XML) ,面向XML 的简单 APIs。 使用 DOM 解析 XML 时,首先将XML 文档加载到内存当中,然后可以通过随机的方式访问内存中的 DOM 树;SAX 是基于事件而且是顺序执行的,一旦经过了某个元素,我们就没有办法再去访问它了,SAX 不必事先将整个 XML 文档加载到内存当中,因此它占据内存要比 DOM 小,对于大型的 XML 文档来说,通常会使用 SAX 而不是DOM 进行解析。 SAX 也是使用的观察者模式(类似于GUI中的事件),SAX接口也被称作事件驱动接口 。

XML解析器实际上就是一段代码,它读入一个XML文档并分析其结构。 SAX是事件驱动的,文档的读入过程就是SAX的解析过程。 在读入的过程中,遇到不同的项目,解析器会调用不同的处理方法。 

 分类: 

– 带校验的解析器 

– 不校验的解析器(效率高) 

 

– 支持DOM的解析器(W3C的官方标准 ) 

– 支持SAX的解析器(事实上的工业标准 )

2. JAXP 包含了三个软件包 (用于 XML 语法分析的 Java API)

– org.w3c.dom ,W3C 推荐的用于 XML 标准规划文档对象模型的 Java 工具  

– org.xml.sax ,用于对 XML 进行语法分析的事件驱动的简单 API  

– javax.xml.parsers ,工厂化工具,允许应用程序开发人员获得并配置特殊的语法分析工具. JDOM 能够替换 org.w3c.dom 软件包来有计划地操作 XML 文档

3 JDOM比较:JDOM是一个开源项目,DOM 直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法重载、集合概念等),把SAX和DOM的功能有效地结合起来

4 JDOM 主要用来弥补DOM及SAX在实际应用当中的不足之处。这些不足之处主要在

于SAX没有文档修改、随机访问以及输出的功能,而对于DOM来说,JAVA程序员在使用时来用起来总觉得不太方便。DOM的缺点主要是由于DOM是一个接口定义语言(IDL),它的任务是在不同语言实现中的一个最低的通用标准,并不是为JAVA特别设计的。

5 在 JDOM 中,XML 元素就是 Element 的实例,XML 属性就是 Attribute 的实例,XML 文档本身就是 Document 的实例。JDOM 是作为一种轻量级 API 被制定的最主要的是它是以 Java 为中心的。是 Java 平台专用的。

 JDOM是由以下几个包组成的 

– org.jdom包含了所有的xml文档要素的java类 

– org.jdom.adapters包含了与dom适配的java类 

– org.jdom.filter包含了xml文档的过滤器类 

– org.jdom.input包含了读取xml文档的类 

 org.jdom.output包含了写入xml文档的类 

– org.jdom.transform包含了将jdomxml文档接口转

换为其他xml文档接口 

– org.jdom.xpath包含了对xml文档xpath操作的类

6 org.jdom这个包里的类是你解析xml文件后所要 用到的所有数据类型。 

– Attribute 

– CDATA 

– Coment 

– DocType 

– Document 

– Element 

– EntityRef 

– Namespace 

– ProscessingInstruction 

– Text

7 输入类,一般用于文档的创建工作 

– SAXBuilder 

– DOMBuilder 

– ResultSetBuilder

8 org.jdom.output输出类,用于文档转换输出 

– XMLOutputter 

– SAXOutputter 

– DomOutputter 

– JTreeOutputter

9 比较JDOM中的主要使用方法:

JDOM中Document的操作方法:

Element root = new Element("GREETING"); 

Document doc = new Document(root); 

root.setText("Hello JDOM!"); 

Dom则需要更为复杂的代码,如下:

DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance(); 

DocumentBuilder builder =factory.newDocumentBuilder(); 

Document doc = builder.newDocument(); 

 

Element root =doc.createElement("root"); 

Text text = doc.createText("Hello,DOM!"); 

root.appendChild(text); 

doc.appendChild(root); 

JDOM中可以使用SAXBuilder的build方法来解析一个流从而得到 一个Document对象 

Document build(java.io.File file)

Document build(java.io.InputStream in)

JDOM中XML文档的输出:

XMLOutPutter类: JDOM的输出非常灵活,支持很多种io格式以及风格的输出 

Document doc = new Document(...); 

XMLOutputter outp = new XMLOutputter(); 

outp.output(doc, fileOutputStream); // Raw output 

outp.setTextTrim(true); // Compressed output 

outp.output(doc, socket.getOutputStream()); 

 outp.setIndent(" ");// Pretty output 

outp.setNewlines(true);

outp.output(doc, System.out);
















-----------------------------android培训java培训期待与您交流!----详细请查看:http://edu.csdn.net/heima---------------