Download Xerces

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Xerces
The Apache XML Project
Yvonne Yao
Introduction


Set of libraries that provides functionalities
to parse XML documents
Promotes the use of XML


Why?
Two types of parsers


DOM (Document Object Model) parsers
SAX (Simple API for XML) parsers
DOM & SAX

DOM




Implements the DOM API
Creates a DOM tree in memory
Good for small XML files, or traverse the document
back and forth
SAX



Implements SAX API
Event driven interface
Good for huge XML files
Xerces


Implements both DOM and SAX parsers
3 subprojects



Xerces C++
Xerces Java
Xerces Perl
Xerces C++



Current version 2.7.0
Provides functionalities to read, write,
parse, and validate XML documents
Conforms with



XML 1.0 and XML 1.1
SAX 1.0 and SAX 2.0
DOM Level 1 and 2
Xerces Perl



Current version 2.7.0
Implemented using the Xerces C++ API
Provides access to most of the C++ API, except



Functions in the C++ API which have better Perl
counterparts (such as file I/O), or
Functions that manipulate internal C++ information
that has no role in the Perl module
Conforms to the same set of Standards as
Xerces C++
Xerces Java

Xerces Java


Current version 1.4.4
Conforms with




XML 1.0
SAX 1.0 and 2.0
DOM Level 2
Xerces2 Java


Current version 2.9.0
Includes Xerces Native Interface, a new framework
for building parser components and configurations
Example 1 - DOM
<?xml version="1.0" encoding="UTF-8"?>
<Personnel>
<Employee type="permanent">
<Name>Seagull</Name>
<Id>3674</Id>
<Age>34</Age>
</Employee>
<Employee type="contract">
<Name>Robin</Name>
<Id>3675</Id>
<Age>25</Age>
</Employee>
<Employee type="permanent">
<Name>Crow</Name>
<Id>3676</Id>
<Age>28</Age>
</Employee>
</Personnel>
Example 1 - DOM



Create a DOM object
DocumentBuilderFactory dbf =
DocumentBuilderFactory.newInstance();
DocumentBuilder db =
dbf.newDocumentBuilder();
dom = db.parse("employees.xml");
Get a list of employee elements from DOM
Element docEle = dom.getDocumentElement();
NodeList nl =
docEle.getElementsByTagName("Employee");
Get node value from element
element.getFirstChild().getNodeValue();
Example 2 - SAX

SAX parsing is event based modeling, it calls a
tag handler whenever it encounters a tag
public void startElement(String uri,
String localName, String qName,
Attributes attributes)
public void endElement(String uri, String
localName, String qName)
Example 2 - SAX

Create a SAX parser
SAXParserFactory spf =
SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
sp.parse("employees.xml", this);

Create Employee object when <Employee> is found
if(qName.equalsIgnoreCase("Employee"))
tempEmp = new Employee();

Set Employee properties when an end tag is found
if (qName.equalsIgnoreCase("Name"))
tempEmp.setName(tempVal);
Thank You