Who You Are
This book is written for
Java developers who want to integrate XML into their systems. Java is the ideal language for processing XML documents. Its strong Unicode support in particular made it the preferred language for many early implementers. Consequently, more XML tools have been written in Java than in any other language. More
source XML tools are written in Java than in any other language. More developers process XML in Java than in any other language.
Processing XML with Java
will teach you how to
Save XML documents from applications written in Java
Read XML documents produced by other programs
Search, query, and update XML documents
Convert legacy flat data into hierarchical XML
Communicate with network servers that send and receive XML data
Validate documents against DTDs, schemas, and business rules
Combine functional XSLT transforms with traditional imperative Java code
This book is intended for Java developers who need to do anything with XML. It teaches the fundamentals and advanced topics, leaving nothing out. It is a comprehensive course in processing XML with Java that takes developers from having little knowledge of XML to designing sophisticated XML applications and parsing complicated documents. The examples cover a wide range of possible uses, including file formats, data exchange, document transformation, database integration, and more.
What You Need to Know
This is not an introductory book with respect to either Java or XML. I assume you have substantial prior experience with Java and preferably some experience with XML. On the Java side, I
use advanced features of the language and its class library without explanation or apology. Among other things, I assume you are thoroughly familiar with the following:
Object-oriented programming, including inheritance and polymorphism.
Packages and the CLASSPATH. You should not be surprised by classes that do not have
or that are not in the default package.
I/O including streams, readers, and writers. You should understand that
is a horrible example of what really goes on in Java programs.
The Java Collections API including hash tables, maps, sets, iterators, and lists.
In addition, in one or two places in this book I use some SQL and JDBC. These sections are relatively independent of the rest of the book, however, and
are if you aren't already familiar with SQL, then you don't need the material in these sections anyway.
What You Need to Have
XML is deliberately architecture, platform, operating system, GUI, and language
(in fact, more so than Java). It works equally well on Mac OS, Windows, Linux, OS/2, various flavors of Unix, and more. It can be
with Python, C++, Haskell, ECMAScript, C#, Perl, Visual Basic, Ruby, and of course Java. No byte-order issues need concern you if you switch between PowerPC, X86, or other architectures. Almost everything in this book should work equally well on any platform that's capable of running Java.
Most of the material in this book is relatively independent of the specific Java version. Java 1.4 bundles SAX, DOM, and a few other useful classes into the
JDK. However, these are easily installed in earlier JVMs as open source libraries from the Apache XML Project and other
. For the most part, I used Java 1.3 and 1.4 when testing the examples; therefore, it's possible that a few of the classes and methods used are not available in earlier versions. In most cases, it should be
obvious how to backport them. All of the basic XML APIs except TrAX should work in Java 1.1 and later. TrAX requires Java 1.2 or later.