Course Catalog
Curriculum Guides
  .NET
  Java/J2EE
  XML
Downloads
Buy Courseware
Customization
News
Authors
Technical Library
FAQ
About Object Innovations
Opportunities
Contact Us
Home

 

 

   
www.objectinnovations.com
info@objectinnovations.com
877-558-7246 (toll free)  
781-466-8012  

542.  XML Programming Using Java

Rev. 1.4

 

This course is now available directly from our partner, Capstone Courseware.

This four-day course builds skills in Java’s XML processing APIs – chiefly parsing using SAX and DOM and transformations using XSLT, all using the Java API for XML Processing, or JAXP.  It also covers the newer Java API for XML Binding, or JAXB, which standardizes serialization according to XML Schema.   The course is intended for students with a working knowledge of XML – and possibly DTDs or XML Schema – who want to build XML applications or components using the Java language.  Everything in the course adheres to W3C and Java standards for completely portable code.

 

The first module introduces the JAXP and the two main Java APIs for parsing XML documents:  SAX and the DOM.  Students learn the basic JAXP architecture and how to create parsers that expose SAX or DOM APIs, and how to configure parsers according to the SAX features and properties specification.  SAX parsing is covered, working from simple SAX event handling through patterns for understanding document content from event sequences, to error handling and document validation.  Students then learn how to read document information using the DOM’s tree model and API, and move on to using the DOM to modify and to create new documents and information nodes.  The final two chapters of this module cover the DOM2 Traversal and Events modules and the JAXB, with a focus on XML serialization and persistence.

 

The second module introduces students to the XPath and XSLT specifications, and how to use JAXP as an interface to XML transformations.  Students learn the basic JAXP Transformer architecture, develop fluency in the exacting but powerful XPath syntax, and then build a number of XSLT transformations.  Study of XSLT is arranged first to develop control over output production, including a solid understanding of the sometimes mysterious built-in template rules, template matching, priority and modes, and control of whitespace production.  Then students turn towards the source document and learn to extract single values, to make shallow and deep copies of source elements, to use variables, and to use flow-control constructs to effect conditional processing and loops.  In the module’s final case study, students build a servlet-based Web application that uses JAXP and XSLT to produce dynamic content based on an XML data source.

 

LEARNING OBJECTIVES

 

·         Understand the use of SAX and DOM APIs for XML parsing.

·         Understand the need for JAXP as an additional layer to the standard contract between applications and parsers.

·         Use JAXP to write entirely portable XML parsing code.

·         Parse element and attribute content, processing instructions, and other document information using SAX.

·         Parse documents using the DOM.

·         Modify, create and delete information in an XML document using the DOM.

·         Use DOM Traversal to simplify and make parsing algorithms more effective.

·         Use DOM Mutation Events to track changes to an XML document.

·         Use the JAXB to generate persistent Java object models based on XML Schema.

·         Implement XML persistence using the JAXB.

·         Write simple and complex queries into XML document content using XPath.

·         Use XSLT for XML-to-XML transformations.

·         Use the built-in template rules correctly to process the right source information.

·         Use mode and priority to control template matching.

·         Control exact production of text, HTML and XML elements, and whitespace.

·         Derive source document content and make copies of node trees.

·         Use looping and conditional processing to manage output production.

·         Build J2SE and Web applications that leverage XSLT transformation logic.

 

Duration:  4 days.

 

Prerequisites:

 

·         Experience in Java Programming, including object-oriented Java and the Java streams model, is essential.  Object Innovations Course 103, “Java Programming,” is excellent preparation.

·         Basic understanding of XML is required.  Object Innovations Course 501, “Introduction to XML,” is recommended.

·         XML Schema is used peripherally in the course, and knowledge of this technology will be helpful, but is not required.

 

Module 1 – XML Parsing Using Java

 

1.      The Java API for XML Processing (JAXP)

Parsing XML

SAX and DOM

What the W3C Says

What the W3C Doesn't Say

Sun and Apache

JAXP

Parser Factories

Pluggable Parsers

Parser Features and Properties

 

2.      The Simple API for XML (SAX)

Origins of SAX

The SAX Parser

The SAX Event Model

Reading Document Content

Handling Namespaces

SAX Features for Namespaces

Parsing Attributes

Error Handling

DTD Validation

Schema Validation

Handling Processing Instructions

 

3.      The Document Object Model (DOM)

Origins of the DOM

DOM Levels

DOM2 Structure

The Document Builder

DOM Tree Model

DOM Interfaces

Document, Node and NodeList Interfaces

Element and Text Interfaces

Finding Elements By Name

Walking the Child List

The Attribute Interface

Traversing Associations

The JAXP Transformer Class

Sources and Results

Combining SAX and DOM Processing

Namespaces and the DOM

 

4.      Manipulating XML Information with the DOM

Modifying Documents

Modifying Elements

Modifying Attributes

Managing Children

Seeking a Document Location

The ProcessingInstruction Interface

Creating New Documents

 

5.      DOM Level 2 Modules

DOM Traversal

The DocumentTraversal Interface

Node Filters

The NodeIterator Interface

The TreeWalker Interface

DOM Ranges

DOM Events

Mutation Events

Handling Events

Event Flow

Capturing and Bubbling

Cancelable Events

 

6.      XML Serialization and the Java API for XML Binding (JAXB)

XML for Object Persistence

Persistence Strategies

The Memento Pattern

Deserialization with SAX

Object Persistence with the DOM

Adapting Object Models to the DOM

The Java API for XML Binding

Marshalling, Unmarshalling, and Validation

Schema as Object Models

UML for XML

Mapping XML to Java:  Simple Types, Complex Types, and Collections

Object Factories

Customizing JAXB Bindings

The DOM vs. JAXB

JAXB for Persistence

Automatic Translation

 

Module 2 – XML Transformations Using Java

 

1.      Using the JAXP for Transformations

XPath, XSLT and Java

The Transformer Class

The TransformerFactory Class

Sources and Results

Identity Transformations

Creating Transformations from Stylesheets

Template Parameters

Output Methods and Properties

 

2.      XPath

Use of XPath in Other XML Technologies

XPath Expressions

The Axis

The Node Test

The Predicate

XPath Types

XPath Functions

Implied Context

Querying with XPath

XPath and the DOM

 

3.      Templates and Production

Rule-Based Transformations

Templates and Template Matching

Built-In Template Rules

Recursion Through Templates

Template Context

Output Methods

Controlling Whitespace

Literal Replacement Elements

Formalizing Text, Elements and Attributes

Defining Target Vocabulary

Generating Processing Instructions

 

4.      XSLT:  Dynamic Content and Flow Control

Web Applications Using XSLT

J2EE and JAXP

Deriving Source Content

Getting Source Values

Attribute Value Templates

Copying Source Elements and Trees

Looping

Conditionals

 

 

Appendix A. Learning Resources

 

Appendix B. Quick Reference:  W3C Namespaces

 

Appendix C. UML for XML Schema

 

Appendix D. Quick Reference:  XML and DTD Grammar

 

Appendix E. Quick Reference:  XPath and XSLT

 

 

System Requirements

 

Hardware – minimal:                     Pentium 500MHz, 256 meg RAM, 500 meg HD.

Hardware – recommended:           Pentium 1.5gHz, 512 meg RAM, 1 gig HD.

 

Operating system:                          Tested on Windows XP Professional.  The course software should be viable on all Windows which support J2SE 5.0.

 

Software:         All free downloadable tools