this print for content only—size & color not accurate spine = 0.894" 472 page count EMPOWERING PRODUCTIVITY FOR THE JAVA ™ DEVELOPER Ajay Vohra US $39.99 Shelve in Java ™ Programming User level: Intermediate–Advanced Vohra, Vohra XML Development with Java ™ Technology THE EXPERT’S VOICE ® IN JAVA ™ TECHNOLOGY Ajay Vohra and Deepak Vohra Pro XML Development with Java ™ Technology CYAN MAGENTA YELLOW BLACK PANTONE 123 CV ISBN 1-59059-706-0 9 781590 597064 53999 6 89253 59706 4 Companion eBook Available All the essential techniques you need to know to develop powerful XML applications using Java ™ technology! Supports Java ™ versions up to 6! Supports Java ™ versions up to 6! Deepak Vohra www.apress.com SOURCE CODE ONLINE Companion eBook See last page for details on $10 eBook version forums.apress.com FOR PROFESSIONALS BY PROFESSIONALS ™ Join online discussions: THE APRESS ROADMAP Pro XML Development with Java ™ Technology Beginning XSLT, 2nd edition Java ™ 6 Platform Revealed Beginning Java ™ Objects, Second Edition Beginning XML with DOM Scripting and Ajax Foundations of Ajax Pro XML Development with Java ™ Technology Dear Reader, To say that XML and Java™ technologies are pervasive is to state the obvious, as you might verify from your own experience. Working with these technologies over the years, we found excellent books focused on specific XML technologies, such as XSLT, XPath and XML Schema. We also found very well written sources that covered Java APIs related to various XML technologies and discussed spe- cific topics in depth, such as Web Services. Unfortunately, developing enterprise applications requires applied knowledge spanning many of these topics, so we often found ourselves flipping through more books than we would have liked to whilst working in a busy, professional setting. We also struggled with the fact that many of the XML-centric books were too abstract and did not provide practical examples to illustrate theoretical concepts, and many of the Java-centric books on XML technologies did not explain the underlying XML concepts. We wrote this book to help us and all the other professional Java developers out there who face the same problems. Our main objective was to consolidate the theory and practice of XML and Java technologies in a single, up-to-date source, that is firmly grounded in underlying XML concepts, which can be consulted time and again to rapidly speed up enterprise application development! We have strived to cover all the essential XML topics, including XML Schema based schemas, addressing of XML documents through XPath, transformation of XML documents using XSLT stylesheets, storage and retrieval of XML content in native XML and relational databases, web applications based on AJAX, and SOAP/HTTP and WSDL based Web Services. These XML topics are covered in the applied context of up-to-date Java technologies, including JAXP, JAXB, XMLBeans, and JAX-WS. We are confident that you will find this book useful in building contemporary, service-oriented enterprise applications. Ajay Vohra and Deepak Vohra Pro Pro XML Development with Java TM Technology ■■■ Ajay Vohra and Deepak Vohra Vohra_706-0FRONT.fm Page i Tuesday, August 15, 2006 9:01 AM Pro XML Development with Java TM Technology Copyright © 2006 by Ajay Vohra and Deepak Vohra All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. ISBN-13 (pbk): 978-1-59059-706-4 ISBN-10 (pbk): 1-59059-706-0 Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Apress, Inc. is not affiliated with Sun Microsystems, Inc., and this book was written without endorsement from Sun Microsystems, Inc. Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1 Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. Lead Editor: Chris Mills Technical Reviewer: Bharath Gowda Editorial Board: Steve Anglin, Ewan Buckingham, Gary Cornell, Jason Gilmore, Jonathan Gennick, Jonathan Hassell, James Huddleston, Chris Mills, Matthew Moodie, Dominic Shakeshaft, Jim Sumser, Keir Thomas, Matt Wade Project Manager: Elizabeth Seymour Copy Edit Manager: Nicole LeClerc Copy Editor: Kim Wimpsett Assistant Production Director: Kari Brooks-Copony Senior Production Editor: Laura Cheu Compositor: Susan Glinert Stevens Proofreader: Kim Burton Indexer: Carol Burbo Artist: Susan Glinert Stevens Cover Designer: Kurt Krames Manufacturing Director: Tom Debolski Distributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax 201-348-4505, e-mail orders-ny@springer-sbm.com, or visit http://www.springeronline.com. For information on translations, please contact Apress directly at 2560 Ninth Street, Suite 219, Berkeley, CA 94710. Phone 510-549-5930, fax 510-549-5939, e-mail info@apress.com, or visit http://www.apress.com. The information in this book is distributed on an “as is” basis, without warranty. Although every precaution has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in this work. The source code for this book is available to readers at http://www.apress.com in the Source Code section. Vohra_706-0FRONT.fm Page ii Tuesday, August 15, 2006 9:01 AM Dedicated to our parents Vohra_706-0FRONT.fm Page iii Tuesday, August 15, 2006 9:01 AM Vohra_706-0FRONT.fm Page iv Tuesday, August 15, 2006 9:01 AM v Contents at a Glance About the Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xv About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii PART 1 ■ ■ ■ Parsing, Validating, and Addressing ■CHAPTER 1 Introducing XML and Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 ■CHAPTER 2 Parsing XML Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 ■CHAPTER 3 Introducing Schema Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 ■CHAPTER 4 Addressing with XPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 ■CHAPTER 5 Transforming with XSLT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 PART 2 ■ ■ ■ Object Bindings ■CHAPTER 6 Object Binding with JAXB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 ■CHAPTER 7 Binding with XMLBeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 PART 3 ■ ■ ■ XML and Databases ■CHAPTER 8 Storing XML in Native XML Databases: Xindice . . . . . . . . . . . . . . . 215 ■CHAPTER 9 Storing XML in Relational Databases . . . . . . . . . . . . . . . . . . . . . . . . . 249 PART 4 ■ ■ ■ DOM Level 3.0 ■CHAPTER 10 Loading and Saving with the DOM Level 3 API . . . . . . . . . . . . . . . . 267 PART 5 ■ ■ ■ Utilities ■CHAPTER 11 Converting XML to Spreadsheet, and Vice Versa . . . . . . . . . . . . . . 289 ■CHAPTER 12 Converting XML to PDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 Vohra_706-0FRONT.fm Page v Tuesday, August 15, 2006 9:01 AM vi PART 6 ■ ■ ■ Web Applications and Services ■CHAPTER 13 Building Web Applications with Ajax . . . . . . . . . . . . . . . . . . . . . . . . . 329 ■CHAPTER 14 Building XML-Based Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . 353 ■INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 Vohra_706-0FRONT.fm Page vi Tuesday, August 15, 2006 9:01 AM vii Contents About the Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xv About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii PART 1 ■ ■ ■ Parsing, Validating, and Addressing ■CHAPTER 1 Introducing XML and Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Scope of This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Overview of This Book’s Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 XML 1.0 Primer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 XML Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Processing Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 DOCTYPE Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Entities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Complete Example XML Document . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Namespaces in XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 XML Schema 1.0 Primer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Schema Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Built-in Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Element Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Complex Type Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Complex Content. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Simple Type Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Schema Example Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Vohra_706-0FRONT.fm Page vii Tuesday, August 15, 2006 9:01 AM viii ■CONTENTS Introducing the Eclipse IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Creating a Java Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Setting the Build Path. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Creating a Java Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Creating a Java Class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Running a Java Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Importing a Java Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 ■CHAPTER 2 Parsing XML Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Objectives of Parsing XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Overview of Parsing Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 DOM Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Push Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Pull Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Comparing the Parsing Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Setting Up an Eclipse Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Example XML Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 J2SE, Packages, and Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Parsing with the DOM Level 3 API . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Parsing with SAX 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 JAXP Pluggability for SAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 SAX Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 SAX Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 SAX Handlers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 SAX Parsing Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 SAX API Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Parsing with StAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Cursor API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Iterator API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 ■CHAPTER 3 Introducing Schema Validation . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Schema Validation APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Configuring JAXP Parsers for Schema Validation . . . . . . . . . . . . . . . 66 Setting Up the Eclipse Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Vohra_706-0FRONT.fm Page viii Tuesday, August 15, 2006 9:01 AM ■CONTENTS ix JAXP 1.3 DOM Parser API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Create a DOM Parser Factory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Configure a Factory for Validation. . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Create a DOM Parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Configure a Parser for Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Validate Using the Parser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Complete DOM API Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 JAXP 1.3 SAX Parser API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Create a SAX Parser Factory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Configure the Factory for Validation . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Create a SAX Parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Configure the Parser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Validate Using the Parser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Complete SAX API Validator Example . . . . . . . . . . . . . . . . . . . . . . . . . 78 JAXP 1.3 Validation API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Create a Validator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Set an Error Handler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Validate the XML Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Complete JAXP 1.3 Validator Example. . . . . . . . . . . . . . . . . . . . . . . . 81 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 ■CHAPTER 4 Addressing with XPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Understanding XPath Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Simple Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 XPath Expression Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Datatypes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Location Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Applying XPath Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Comparing the XPath API to the DOM API . . . . . . . . . . . . . . . . . . . . . 94 Setting Up the Eclipse Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 JAXP 1.3 XPath API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Explicitly Compiling an XPath Expression . . . . . . . . . . . . . . . . . . . . . 97 Evaluating a Compiled XPath Expression. . . . . . . . . . . . . . . . . . . . . . 97 Evaluating an XPath Expression Directly . . . . . . . . . . . . . . . . . . . . . . 99 Evaluating Namespace Nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 JAXP 1.3 XPath Example Application . . . . . . . . . . . . . . . . . . . . . . . . 102 JDOM XPath API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 JDOM XPath Example Application. . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Vohra_706-0FRONT.fm Page ix Tuesday, August 15, 2006 9:01 AM [...]... Tuesday, August 15 , 2006 9: 01 AM x ■C O N T E N T S ■CHAPTER 5 Transforming with XSLT 11 1 Overview of XSLT 11 2 Simple Example 11 2 XSLT Processing Algorithm 11 4 XSLT Syntax and Semantics 11 5 Setting Up the Eclipse Project ... exchanging data among disparate applications XML defines precise syntactic rules for what constitutes a well-formed 10 XML 1. 0 is a W3C Recommendation (http://www.w3.org/TR/2004/REC -xml- 20040204/), and XML 1. 1 is a W3C Recommendation (http://www.w3.org/TR /xml1 1/ ) 5 Vohra_706-0C 01. fm Page 6 Wednesday, June 28, 2006 6:27 AM 6 CHAPTER 1 ■ INTRODUCING XML AND JAVA XML document This primer is a non-normative... (http://www.w3.org/TR/xmlschema -1/ ) and XML Schema Part 2: Datatypes (http://www.w3.org/TR/xmlschema-2/) for more information 11 Vohra_706-0C 01. fm Page 12 Wednesday, June 28, 2006 6:27 AM 12 CHAPTER 1 ■ INTRODUCING XML AND JAVA Schema Declarations The root element of a schema is schema, and it is defined in the XML Schema namespace xmlns:xsd="http://www.w3.org/20 01/ XMLSchema"... using the Apache FOP API • Chapter 13 discusses Asynchronous JavaScript and XML (Ajax) web programming techniques for creating highly interactive web applications • Chapter 14 discusses SOAP 1. 1, SOAP 1. 2, and WSDL 1. 1 and discusses the JAX-WS 2.0 Java API, which is included in J2EE 5.0 Chapter 14 brings together a lot of the material covered in this book XML 1. 0 Primer XML1 0 is a text-based markup language... (JAXP) 1. 3 in J2SE 5.0 is its corresponding Java API In addition, Streaming API for XML 1. 0 (StAX) in J2SE 6.0 is relevant for processing XML documents • XML Schema 1. 0 (http://www.w3.org/TR/xmlschema -1/ ) describes a language that can be used to specify the precise structure of an XML document and constrain its contents JAXP 1. 3 in J2SE 5.0 and Java XML Architecture for XML Binding (JAXB) 2.0 in Java. .. XML 1. 0 specification at http://www.w3.org/TR/2004/ REC -xml- 20040204/#sec-well-formed 3 http:/ /java. sun.com/javaee/ 3 Vohra_706-0C 01. fm Page 4 Wednesday, June 28, 2006 6:27 AM 4 CHAPTER 1 ■ INTRODUCING XML AND JAVA • XSL Transformations (XSLT) 1. 0 (http://www.w3.org/TR/xslt) describes a language for transforming an XML document into other XML or non -XML documents Transformation API for XML (TrAX) within... Chapter 1 reviews XML 1. 0 and XML Schema 1. 0 • Chapter 2 discusses the parsing of XML documents using JAXP 1. 3 in J2SE 5.0 and StAX 1. 0 in J2SE 6.0 • Chapter 3 discusses validating an XML document with an XML Schema, and in this context, we cover the following APIs: JAXP 1. 3 APIs: SAX parser, DOM parser, and the Validation API • Chapter 4 reviews XPath 1. 0 and discusses the JAXP 1. 3 and JDOM 1. 0 XPath... 16 4 XML Schema Binding to Java Representation 16 5 Example Use Case 16 9 Downloading and Installing Software 16 9 Creating and Configuring Eclipse Project 16 9 Binding Catalog Schema to Java Classes 17 1 Marshaling an XML Document 17 4 Unmarshaling an XML. .. ■ INTRODUCING XML AND JAVA < ?xml version= '1. 0' encoding='UTF-8' ?> This... applications Therefore, at the heart of it, XML is about interoperability XML 1. 0 was made a W3C1 Recommendation in 19 98 Sun formally introduced the Java programming language in 19 95, and within a few years Java had cemented its status as the preferred programming and execution platform for a dizzyingly diverse set of applications Incidentally, both Java and XML were shaped with an eye toward the Internet Therefore, . Deepak Vohra Pro Pro XML Development with Java TM Technology ■■■ Ajay Vohra and Deepak Vohra Vohra_706-0FRONT.fm Page i Tuesday, August 15 , 2006 9: 01 AM Pro XML Development with Java TM Technology Copyright. Beginning Java ™ Objects, Second Edition Beginning XML with DOM Scripting and Ajax Foundations of Ajax Pro XML Development with Java ™ Technology Dear Reader, To say that XML and Java technologies. EXPERT’S VOICE ® IN JAVA ™ TECHNOLOGY Ajay Vohra and Deepak Vohra Pro XML Development with Java ™ Technology CYAN MAGENTA YELLOW BLACK PANTONE 12 3 CV ISBN 1- 59059-706-0 9 7 815 90 597064 53999 6