You are previewing Java & XML Data Binding.
O'Reilly logo
Java & XML Data Binding

Book Description

More Java developers today want to work with XML, the technology that enables data to be transported intact over the Internet, but they don't have time to become XML experts. If this describes you, then you'll appreciate data binding, the new way of converting XML documents into Java objects, so those documents can be worked on and manipulated like any other Java object, then converted back to XML

This new title provides an in-depth technical look at XML Data Binding. The book offers complete documentation of all features in both the Sun Microsystems JAXB API and popular open source alternative implementations (Enhydra Zeus, Exolabs Castor and Quick). It also gets into significant detail about when data binding is appropriate to use, and provides numerous practical examples of using data binding in applications.

As Author Brett McLaughlin says "Too many books are written about technologies by people who barely understand them. I've already written two data binding implementations (Zeus, and a previous one for IBM DeveloperWorks.) I've actually used data binding for longer than the official specification has been in existence, and I've really been able to dig into what it takes to code an effective data biding implementation, as well as use one correctly. This book is part user guide, part under-the-hood manual, and part use-case. It's a powerful combination, and one I think people need."

Table of Contents

  1. Java and XML Data Binding
    1. Preface
      1. Organization
      2. Conventions Used in This Book
      3. Comments and Questions
      4. Acknowledgments
    2. 1. Introduction
      1. Low-Level APIs
        1. Streamed Data
        2. Modeled Data
        3. Abstracted Data
      2. High-Level APIs
        1. Mapped Data
        2. Messaged Data
      3. What Is Data Binding?
        1. Class Generation
        2. Unmarshalling
        3. Marshalling
        4. Binding Schemas
      4. What You’ll Need
        1. Packages
        2. Tools
    3. 2. Theory and Concepts
      1. Foundational APIs
        1. SAX
        2. DOM
      2. Dependent APIs
        1. SOAP
        2. UDDI
      3. Constraint-Modeled Data
        1. DTDs
        2. XML Schema
        3. And More ...
      4. API Transparence
        1. Independence
          1. API independence
          2. Version independence
        2. Integration
        3. Interoperation
    4. 3. Generating Classes
      1. Process Flow
        1. Constraints
        2. Binding Schema
        3. Generation
        4. Source Code
      2. Creating the Constraints
        1. JAXB and DTDs
        2. Deterministic Modeling
        3. Simple Elements
        4. Constraint Naming
      3. Binding Schema Basics
        1. The Minimum Binding Schema
        2. Global Options
      4. Generating Java Source Files
        1. Getting Set Up
        2. Supplying Output
        3. Verifying Output
    5. 4. Unmarshalling
      1. Process Flow
        1. XML Data
        2. Java Conversion
        3. Result Objects
      2. Creating the XML
        1. Authoring an Instance Document
        2. Validation
      3. Converting to Java
        1. XML Input
        2. Java Output
        3. Intermediate Objects
      4. Using the Results
        1. Business Objects
        2. Data Objects
    6. 5. Marshalling
      1. Process Flow
        1. Java Objects
        2. XML Conversion
        3. Resultant XML
      2. Validating Java Objects
        1. Java Validation
        2. Non-JAXB Objects
      3. Converting to XML
        1. Java Input
          1. The server
          2. The client
        2. XML Output
      4. Process Loops
        1. Continuity
        2. Equivalence
    7. 6. Binding Schemas
      1. The Basics
        1. XML to Java
        2. Intermediary Transformations
      2. Structure and Global Options
        1. Packaging
        2. Collection Types
        3. Properties
        4. Marshalling and Unmarshalling
      3. Elements and Attributes
        1. Elements
        2. Content Specification
          1. Element references
          2. Choices
          3. Sequences
          4. Rests
        3. Attributes
      4. And More...
        1. Enumerations
        2. Conversions
        3. Constructors
        4. Interfaces
    8. 7. Zeus
      1. Process Flow
        1. Class Generation
        2. Marshalling and Unmarshalling
      2. Installation and Setup
      3. Class Generation
        1. DTDs
        2. Future Constraint Models
      4. Unmarshalling and Marshalling
        1. Unmarshalling
        2. Marshalling
      5. Additional Features
        1. Self-Containment
        2. Ant Taskdef
    9. 8. Castor
      1. Process Flow
      2. Installation and Setup
      3. Class Generation
        1. DTDs
        2. XML Schema
      4. Unmarshalling and Marshalling
        1. Unmarshalling
        2. Marshalling
        3. Mapping Files
      5. Additional Features
        1. Database and Directory Server Mappings
        2. JDO
    10. 9. Quick
      1. Process Flow
        1. Quick Versus JAXB
        2. Performance Considerations
      2. Installation and Setup
      3. Unmarshalling and Marshalling
        1. Unmarshalling
          1. Have Java classes on hand
          2. Converting DTDs to QDML
          3. Converting QDML to QJML
          4. More conversion
          5. Unmarshalling
        2. Marshalling
        3. Format Conversion
      4. Additional Features
        1. Class Generation
        2. QDML to DTD
    11. 10. Looking Forward
      1. JAXB
        1. Final Release
        2. Schema Support
      2. Alternate Implementations
        1. JAXB Conformance
        2. Overlaying Functionality
      3. J2EE
        1. Data Binding in Enterprise Applications
        2. Related APIs
    12. A. Tools Reference
      1. JAXB
      2. Zeus
      3. Castor
      4. Quick
        1. cfgDtd2Qdml
        2. cfgQdml2Qjml
        3. cfgQjml2Java
        4. cfgQdml2Dtd
    13. B. Quick Source Files
    14. Index
    15. Colophon