alfresco用到了大量的第三方的工具或者项目。本文列举并介绍这些项目和工具,以便在使用和分析alfresco的时候能够有一些帮助。
1、XPP3 也叫MXP1
XPP —— XML Pull Parser,XPP3是一个非常快的XML解析器,是第三版的XPP。
XPP2是XPP的第二版。
XPP3只能用于解析XML,不支持节点树的增加操作。
看到有人做的对比测试,XPP3 比DOM4J 快6倍,也就是使用了1/6时间。
XPP3使用的是Apache 1.1 variant License 协议。
http://www.extreme.indiana.edu/xgws/xsoap/xpp/mxp1/index.html
http://mvnrepository.com/artifact/xpp3/xpp3
http://www.xmlpull.org/
使用举例:http://www.xmlpull.org/v1/download/unpacked/doc/quick_intro.html
MyXmlPull.java
============
import java.io.FileReader;
import java.io.IOException;
import java.io.StringReader;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
/**
* An example of an application that uses XMLPULL V1 API.
*
* @author <a href="http://www.extreme.indiana.edu/~aslom/">Aleksander Slominski</a>
*/
public class MyXmlPullApp
{
public final static String SAMPLE_XML =
"<?xml version=\"1.0\"?>\n"+
"\n"+
"<poem xmlns=\"http://www.megginson.com/ns/exp/poetry\">\n"+
"<title>Roses are Red</title>\n"+
"<l>Roses are red,</l>\n"+
"<l>Violets are blue;</l>\n"+
"<l>Sugar is sweet,</l>\n"+
"<l>And I love you.</l>\n"+
"</poem>";
public static void main (String args[])
throws XmlPullParserException, IOException
{
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
System.out.println("parser implementation class is "+xpp.getClass());
MyXmlPullApp app = new MyXmlPullApp();
if(args.length == 0) {
System.out.println("Parsing simple sample XML");//:\n"+ SAMPLE_XML);
xpp.setInput( new StringReader( SAMPLE_XML ) );
app.processDocument(xpp);
} else {
for (int i = 0; i < args.length; i++) {
System.out.println("Parsing file: "+args[i]);
xpp.setInput ( new FileReader ( args [i] ) );
app.processDocument(xpp);
}
}
}
public void processDocument(XmlPullParser xpp)
throws XmlPullParserException, IOException
{
int eventType = xpp.getEventType();
do {
if(eventType == xpp.START_DOCUMENT) {
System.out.println("Start document");
} else if(eventType == xpp.END_DOCUMENT) {
System.out.println("End document");
} else if(eventType == xpp.START_TAG) {
processStartElement(xpp);
} else if(eventType == xpp.END_TAG) {
processEndElement(xpp);
} else if(eventType == xpp.TEXT) {
processText(xpp);
}
eventType = xpp.next();
} while (eventType != xpp.END_DOCUMENT);
}
public void processStartElement (XmlPullParser xpp)
{
String name = xpp.getName();
String uri = xpp.getNamespace();
if ("".equals (uri)) {
System.out.println("Start element: " + name);
} else {
System.out.println("Start element: {" + uri + "}" + name);
}
}
public void processEndElement (XmlPullParser xpp)
{
String name = xpp.getName();
String uri = xpp.getNamespace();
if ("".equals (uri))
System.out.println("End element: " + name);
else
System.out.println("End element: {" + uri + "}" + name);
}
int holderForStartAndLength[] = new int[2];
public void processText (XmlPullParser xpp) throws XmlPullParserException
{
char ch[] = xpp.getTextCharacters(holderForStartAndLength);
int start = holderForStartAndLength[0];
int length = holderForStartAndLength[1];
System.out.print("Characters: \"");
for (int i = start; i < start + length; i++) {
switch (ch[i]) {
case '\\':
System.out.print("\\\\");
break;
case '"':
System.out.print("\\\"");
break;
case '\n':
System.out.print("\\n");
break;
case '\r':
System.out.print("\\r");
break;
case '\t':
System.out.print("\\t");
break;
default:
System.out.print(ch[i]);
break;
}
}
System.out.print("\"\n");
}
}
java源文件下载地址:http://download.csdn.net/detail/teamlet/4399658
分享到:
相关推荐
总结来说,XPP3是一个快速、轻量级的XML解析库,适用于资源受限或对性能有较高要求的环境。通过Pull解析模式,它实现了对XML文档的高效处理,降低了内存消耗,并提供了灵活的API供开发者使用。在处理大型XML文件或在...
赠送jar包:xpp3-1.1.4c.jar; 赠送原API文档:xpp3-1.1.4c-javadoc.jar; 赠送源代码:xpp3-1.1.4c-sources.jar; 赠送Maven依赖信息文件:xpp3-1.1.4c.pom; 包含翻译后的API文档:xpp3-1.1.4c-javadoc-API文档-...
接着是"xpp3_min-1.1.4c.jar",这是一个小型版本的XML Pull Processing(XPULL)库,名为XPP3。XPP3是用于读取XML流的轻量级解析器,它不需要DOM(文档对象模型)或SAX(简单API for XML)解析器。XPP3的主要特点有...
这个小型的JAR文件包含了XPP3解析器的精简版,旨在提供一个备用的、高效的XML解析机制,以确保XStream能正常运行,即使在面对挑战性的情况时也能保持稳定。 XPP3采用了XML拉式解析(Pull Parsing)模式,与传统的推...
赠送jar包:xpp3-1.1.4c.jar; 赠送原API文档:xpp3-1.1.4c-javadoc.jar; 赠送源代码:xpp3-1.1.4c-sources.jar; 赠送Maven依赖信息文件:xpp3-1.1.4c.pom; 包含翻译后的API文档:xpp3-1.1.4c-javadoc-API文档-...
XStream简化了对象和XML之间的转换,而XPP3则提供了一个快速且低内存占用的XML解析器。如果你需要在Java项目中处理XML,这两个库是值得考虑的。在使用前,确保正确地导入它们,并根据项目需求配置好相应的安全设置。
总的来说,"xpp3_min-1.1.4c.jar.zip"是一个包含XPP3解析器的小型化版本,用于支持XStream库在Java项目中高效地处理XML数据。XStream的易用性和灵活性使得它在处理Java对象与XML之间的转换时成为了一个受欢迎的选择...
XPP3(XML Pull Processing Library version 3)是一个轻量级的XML解析器,它实现了XML Pull API。在Java中,XPP3作为解析XML文档的一种高效方式,比DOM(Document Object Model)和SAX(Simple API for XML)更节省...
**XPP3_min 1.1.4c** 是一个基于Pull解析器的XML解析库,它是XPack项目的一部分,适用于Android和Java平台。XPP3提供了一个轻量级、高性能的XML解析器,可以与XMLPull API一起使用。XPP3_min是XPP3的一个精简版本,...
MyXmlPullApp.java 一个使用XPP3解析XML的例子。 An example of an application that uses XMLPULL V1 API.
XPP3是一个高性能的XML Pull解析器,它基于PULL解析模型,提供了比SAX更简洁的API,同时在性能上优于DOM。XPP3的核心是它的解析器实现,名为XPP3_min,这个版本优化了内存使用,适合处理大型XML文件。另外,xpp3_...
赠送jar包:xpp3_min-1.1.4c.jar; 赠送原API文档:xpp3_min-1.1.4c-javadoc.jar; 赠送源代码:xpp3_min-1.1.4c-sources.jar; 赠送Maven依赖信息文件:xpp3_min-1.1.4c.pom; 包含翻译后的API文档:xpp3_min-1.1.4...
其中,xpp3是一个著名的开源XML解析器,而xpp3-1.1.5.jar则是这个解析器的一个版本。本文将详细介绍xpp3-1.1.5.jar的特性、工作原理及其在实际应用中的价值。 xpp3全称为“XML Pull Parser for Java”,它是一种...
xpp3_min-1.1.4c.jar,xstream实例见http://download.csdn.net/detail/jnsunw/3750332
DOM4J是一个非常灵活的用于处理XML的Java库,它是基于DOM(Document Object Model)模型的,但提供了比标准DOM更多的功能。DOM4J提供了一种简单而高效的方式来创建、修改和查询XML文档。它支持XPath表达式,可以...
XPP3的设计理念是基于事件驱动的,即在解析XML文档的过程中,每当遇到XML的元素、属性或其他结构时,都会触发一个事件。开发者可以通过注册事件处理器来响应这些事件,从而实现对XML数据的解析和处理。这种方式避免...
“xpp3_min”这个名字暗示这是一个轻量级的解析器,可能用于处理XML数据。XPP3(XML Pull Parser for Java version 3)是一个高性能、轻量级的XML解析库,它实现了XML 1.0和1.1的pull解析API。Pull解析API允许开发者...
赠送jar包:xpp3_min-1.1.4c.jar; 赠送原API文档:xpp3_min-1.1.4c-javadoc.jar; 赠送源代码:xpp3_min-1.1.4c-sources.jar; 赠送Maven依赖信息文件:xpp3_min-1.1.4c.pom; 包含翻译后的API文档:xpp3_min-1.1.4...
XPP3是XML Pull解析器的一个实现,它基于XMLPullParser API,并提供了更丰富的功能和更好的性能。XPP3_min-1.1.4c.jar是XPP3的一个精简版本,包含必要的类和方法,用于处理XML输入流。它支持处理命名空间、处理指令...
xpp3_min-1.1.4c, xstream 使用