Using DOM, SAX and StaX APIs for XML processing

Document Object Model (DOM), Simple API for XML (SAX) and Streaming API for XML (StAX) are populat APIs for processing XML documents.

 

Document Object Model (DOM)

  1. The Document Object Model (DOM) is a cross-platform and language-independent convention for representing and interacting with objects in HTML, XHTML, and XML documents.

  2. The entire XML document is read into memory and the nodes of the document are organized in a tree structure, called the DOM tree.

  3.  DOM allows for random access to the document.

  4. DOM is bi-directional.

  5. DOM can write XML documents.

 

Simple API for XML (SAX)

  1. SAX (Simple API for XML) is an event-driven online algorithm for parsing XML documents.

  2. SAX parsers operate on each piece of the XML document sequentially; the application registers to receive events as entities are encountered within the source document.

  3. SAX has a small memory footprint and is typically much faster.

  4. SAX is not bi-directional.

  5. SAX cannot write XML documents.

 

Streaming API for XML (StAX)

  1. Streaming API for XML (StAX) is an application programming interface (API) to read and write XML documents, originating from the Java programming language community.

  2. StAX was designed as a median between DOM and SAX.

    • In the StAX metaphor, the programmatic entry point is a cursor that represents a point within the document.

    • The application moves the cursor forward - 'pulling' the information from the parser as it needs.

    • This is different from an event based API - such as SAX - which 'pushes' data to the application - requiring the application to maintain state between events as necessary to keep track of location within the document.

  3. StAX allows clients to start, pause and resume the parsing process.

  4. Stax is bi-directional.

  5. StAX can write XML documents.

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (55) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (9) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (7) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)