Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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