Register your product to gain access to bonus material or receive a coupon.
As XML continues to mature, developers need to understand how this standard and its related technologies are revolutionizing software development. XML Family of Specifications: A Practical Guide, now a two-volume set, provides a complete roadmap for understanding how XML, XSL, XML Schema, and related specifications interlink to create powerful, real-world applications.
XML Syntax and Parsing Concepts
Click below for Sample Chapter(s) related to this title:
Sample Chapter
3
List of Figures.
List of Tables.
Preface.
Acknowledgments.
INTRODUCTION.
1. History of the Web and XML.Ancient History (1945 to 1985).
Hypertext and Early User Interfaces.
GML and SGML: Content vs. Presentation.
ARPANET and the Internet: Infrastructure.
Medieval History (1986 to 1994).
Berners-Lee, the Web, and HyperText Markup Language.
Historic Timelines.
Premodern History (1994 to 1998).
Ultramodern History (1998 to 2001).
Summary.
For Further Exploration.
Notes.
I. Fundamental XML Concepts, Syntax, and Modeling.
2. Overview of the XML Family of Specifications .Fixing the Web.
HTML Standards Change Too Slowly.
Browser-Specific Extensions Are Problematic.
No Meaningful Markup of Data.
Presentation Is Often Fixed for Monitors.
Content Changes Cause Problems.
Browser Paradigm Is Too Constraining.
Search Engines Need Better Focusing.
Can't Specify Collections of Related Pages.
One-Way Linking Is Too Limited.
Enter XML and Its Many Benefits.
What Does XML Look Like?
Presentation vs. Structure.
XML Representation with a DTD.
Document-centric vs. Data-centric.
Processing XML with XSLT.
XPath Language.
Benefits and Applications.
Domain-Specific Vocabularies.
XML Can Describe User Interfaces.
XML Complements HTML.
Validated, Self-Describing Data.
Metadata.
Search Engines.
Distributed Applications.
Granular Updates.
User-Selected and User-Specific View of Data.
Device-Dependent Display of Data.
Resolution-Independent Graphics in a Text Format.
Rendering with Formatting Objects.
Unicode and Alternate Character Set Support.
The Big Picture and the Role of the W3C.
W3C Recommendation Process.
W3C Domains, Activities, and Working Groups.
The Big Picture.
Summary.
For Further Exploration.
3. XML Syntax and Parsing Concepts.Elements, Tags, Attributes, and Content.
XML Document Structure.
XML Declaration.
Document Type Declaration.
Document Body.
Markup, Character Data, and Parsing.
XML Syntax Rules.
Well-Formedness.
Legal XML Name Characters.
Elements and Attributes Are Case-Sensitive.
Uppercase Keywords.
Case Conventions or Guidelines.
Root Element Contains All Others.
Start and End Tags Must Match.
Empty Elements.
Proper Nesting of Start and End Tags.
Parent, Child, Ancestor, Descendant.
Attribute Values Must Be Quoted.
White Space Is Significant.
Comments.
Processing Instructions.
Entity References.
CDATA Sections.
Well-Formed vs. Valid Documents.
Validity.
Well-Formed or Toast?
Validating and Nonvalidating Parsers.
Event-Based vs. Tree-Based Parsing.
Event-Based Parsing.
Tree-Based Parsing.
Summary.
For Further Exploration.
4. DTD Syntax.What Is a DTD and When Is It Needed?
Elements and Content Models.
Element Content Model.
Sequencing and Choosing Elements.
Occurrence Indicators.
Mixed Content Model.
EMPTY Content Model.
ANY Content Model.
Expressions: The Good, the Bad, and the Ugly.
Deterministic Content Models.
Comments.
Attributes, Attribute Types, and Default Values.
Attribute-List Declaration.
Attribute Types.
Attribute Default Values.
Elements vs. Attributes: Guidelines.
Example DTD and XML Instance.
Invoice DTD.
Invoice XML Instance.
External and Internal DTD Subsets.
External Subsets.
Internal Subsets.
External Subset with Internal Subset.
Entities and Notations.
Document Entity.
General Entities.
Parameter Entities.
Notations.
Generating DTDs and XML Instances.
Generating a DTD from an XML Instance.
Generating XML Instances from a DTD.
Overall DTD Structure.
Summary.
For Further Exploration.
5. Namespaces, XML Infoset, and Canonical XML.Namespaces.
Why Namespaces Are Needed: Resolving Name Conflicts.
Qualified Names, Prefixes, Local Names, and Other Terminology.
Declaring Namespaces in XML Documents.
Default Namespace.
Handling Namespaces in a DTD or XML Schema.
Validating Documents with Namespaces.
What Does a Namespace Point To?
Namespace Support and Use.
Special Attributes: xmlns, xml:space, xml:lang, and xml:base.
Common Namespaces.
XML Information Set.
What's in the Infoset?
What's Not in the Infoset?
Canonical XML.
Why Is Canonical XML Needed?
Canonical XML Terminology.
Canonical XML Example: Different but Equal.
Summary.
For Further Exploration.
6. XML Schema: DTDs on Steroids.The Need for Schemas: Why DTDs Aren't Always Enough.
Document-centric.
No Metadata Access.
Limited Datatypes.
Hard-to-Define Ranges or Sets.
No Subclassing.
Order of Children Is Too Rigid.
Limited Way to Express Number of Repetitions.
Lacks Namespace Support.
Enter XML Schema.
Historical Perspective: Forerunners of XML Schema.
XML-Data and XML-Data Reduced.
Document Content Description.
Schema for Object-Oriented XML.
Document Definition Markup Language.
Relevant Specifications.
Basic Example.
Address DTD and Instance.
Address Schema and Instance.
What Have We Gained?
Collection Schema Example.
Collection DTD.
Collection XML Schema.
Collection Schema Instance.
Key Concepts and Terminology.
Schema Components.
Keywords: DTD vs. XML Schema.
Elements, Declarations, and Definitions.
Element Repeatability: minOccurs and maxOccurs.
XML Representation Summary of xsd:element.
Local vs. Global Scope.
Attribute Declarations and Occurrence.
Content Model and Model Groups: Introduction.
Creating and Using Datatypes.
Definition of Datatype.
Object-Oriented Analogy: A Brief Detour.
Simple Types, Complex Types, Simple Content, Complex Content, and Derivation.
Built-in Datatypes.
Derivation by Constraining a Simple Type with Facets.
Regular Expressions for Pattern Facet.
Derivation by List.
Derivation by Union.
More about Complex Types.
Adding and Constraining Attribute Values.
Restricting a User-Defined Type.
Adding Element Children.
Adding Elements to a User-Defined Type.
Extension of Complex Types with Complex Content.
Restriction of Complex Types with Complex Content.
Empty Elements with and without Attributes.
Summary of Type Definition Cases.
Limiting Derivation.
More about Content Models and Model Groups.
Mixed Content Model.
Generic xsd:any Content Model.
Group Element.
Attribute Groups.
Miscellaneous XML Schema Topics.
Annotations.
Namespaces and XML Schema.
Import and Include.
Working with XML Schema.
XML Schema Software.
Converting DTDs to XML Schema.
Converting with TurboXML by TIBCO Extensibility.
Converting with XML Spy IDE by Altova.
Schema Validation.
Validation Using XSV by Henry Thompson.
Validation Using XML Spy.
Schema Repositories and Registries.
XML.org.
BizTalk.
Open Applications Group.
More Miscellaneous Topics.
Shortcomings of XML Schema.
When to Use DTDs Instead of XML Schema.
XML Schema Topics Not Covered in Detail.
XML Schema Alternatives.
RELAX.
TREX.
RELAX NG.
Schematron.
Summary.
For Further Exploration.
II. PARSING AND PROGRAMMING APIS.
7. Parsing with SAX.Overview of Parsing and Processing XML.
Parsing, Validation, APIs, and Consumers.
Different Approaches: SAX and DOM, JDOM, and JAXP.
XML Infoset and Its Relation to Parsing.
Recommended Java Parsers and Non-Java Support.
Development of SAX.
SAX: Event Handler Model.
SAX2 Interfaces and Classes.
Major Interfaces and Classes.
Overall SAX Application Sequence.
ContentHandler and Context Tracking.
XMLReader.
ErrorHandler: Well-Formedess and Validation.
Features and Properties.
SAX1 vs. SAX2.
Using SAX with Java.
Determining the Parser Driver Classname.
Compiling and Running a SAX Application.
Minimal SAX Example.
More Robust SAX Example.
Valid Parse Results.
Error Results.
More Representative Input.
SAX Filters.
Writing XML Using SAX.
Summary.
For Further Exploration.
8. Parsing with the DOM.Overview of the DOM.
Historical Perspective.
Tree vs. Event Model.
@BHEADS = Generic Interfaces: Good or Bad?
DHTML Comparison.
Relevant Specifications and Key Resources.
DOM Levels.
DOM Level 2 Specifications.
DOM Level 3 Specifications.
Testing for Feature Support.
Collection DTD and Instance Revisited.
DOM Nodes and How the DOM Works.
Node Interface.
NodeList and NamedNodeMap.
Node IDL Definition.
Node Java Binding.
Overview of DOM Interfaces and Their Methods.
Core DOM Level 2 Interfaces and Methods.
Document Interface.
Using the DOM.
Compiling and Running a DOM Application.
Overview of Apache Xerces Packages.
Minimal DOM Application.
Handling Additional DOM Processing Requirements.
Error Handling.
Checking for Feature Availability.
Accessing Node Type-Specific Properties.
DOM2 Output with Valid Input.
Examples of Well-Formedness and Validation Error Handling.
Accessing Attributes.
Filtering Nodes of Interest.
Adding, Changing, and Removing DOM Nodes.
Serializing DOM Trees.
Script Access to the DOM.
Microsoft's DOM.
DOM-Related Markup Languages.
DOM for MathML 2.0.
DOM for SMIL Animation.
DOM for SVG 1.0.
Complete DOM Code Example.
Summary.
For Further Exploration.
9. Processing with JDOM and JAXP.Overview of Java XML APIs.
JDOM: A Java-centric Parsing Approach.
How JDOM Differs from the DOM.
JDOM Packages.
Using JDOM.
Reading and Writing with JDOM.
JDOM Output with Valid Input.
Examples of Well-Formedness and Validation Error Handling.
JDOM Summary.
Sun's XML APIs: The Java XML Pack.
JAXP: Sun's Java API for XML Processing.
JAXP 1.1 Components and Packages.
Specifications Supported by JAXP.
Using JAXP 1.1.
Enabling Validation.
Using SAX with JAXP.
Using DOM with JAXP.
Java System Properties for JAXP.
JAXP Code Example.
TrAX Overview and Basic Example.
JAXP Summary.
SAX vs. DOM vs. JDOM vs. JAXP--Who Wins?
For Further Exploration.
III. TRANSFORMING AND DISPLAYING XML.
10. Styling XML Using CSS2.What Is CSS?
CSS Basics: Declarations, Selectors, and Use with HTML.
Rules, Declarations, Selectors, Properties, and Values.
Embedded CSS Style Sheet in HTML.
External CSS Style Sheet.
Associating External CSS with HTML.
CSS2 Selectors.
Netscape 6 vs. Internet Explorer 5.5.
Style Sheet or Stylesheet?
Using CSS with XML.
Associating CSS with XML.
Element Names and the Display Property.
Rendering Example of XML with CSS.
Improved CSS Style Sheet for XML.
Robust CSS Style Sheet with Generated Text.
CSS with Internet Explorer 5.5.
Limitations of Using CSS for XML.
Summary.
For Further Exploration.
11. Transforming XML with XSLT and XPath.Overview of XSLT and XPath.
What Is XSL? XSLFO? XSLT? XPath?
XSLT Processing Model.
Historical Perspective.
Relevant Specifications.
Using XSLT.
Server-Side Transformations.
XSLT and XSLFO Software Lists.
Functional Capabilities of XSLT.
Advantages of XSL/XSLT Compared to CSS.
@BHEADS = Choosing and Using XSLT Processors.
Running the Xalan XSLT Processor.
Hello XSLT Example.
XSLT Concepts and Examples.
Example XML Document: collection6.xml.
Central Concepts.
Value of a Node or Expression.
Default Built-in Template Rules and Node Tests.
The <xsl:stylesheet> Element.
Namespaces for XSLT, XPath, and XSLFO.
Stylesheet Structure.
Implicit vs. Explicit Stylesheets and Push vs. Pull.
Conditionals and Variables.
More about Setting Variables.
Multiple Decisions.
Generating an HTML Table.
Accessing Attributes.
Attribute Sets for Reuse.
XML to XML: Shallow Copies.
XML to XML: Deep Copies and Creating Elements.
More XML to XML Transformations.
Reader Challenge: Invoice XML to XML Transformation.
Iterating and Sorting.
Primary and Secondary Sort Keys.
Associating XSL with XML: Processing Instruction or Element.
Special Characters: Disabling Output Escaping.
Output Methods Revisited: XML, HTML, Text.
Reuse: Named Templates and Passing Parameters.
Attribute Value Templates.
Reuse: Including and Importing.
XPath Concepts and Examples.
The XPath Model.
Location Paths and Steps.
XPath Axes.
Node Types, Node Values, and Node Tests.
@BHEADS = Data Types.
XPath Expressions vs. XSLT Patterns.
XPath Operators.
XPath Functions.
Node-Set Functions in XPath.
String Functions in XPath.
Boolean Functions in XPath.
Numeric Functions in XPath.
XSLT Elements and Instructions.
Root and Top-Level Elements.
XSLT Instructions.
XSLT Functions.
Examples of XSLT Functions.
Case Study: Generating Link Pages from This Book's “For Further Exploration” Sections.
Problem Statement and Goals.
Examining the Generated XML Structure.
Basic Structure and Pitfalls.
Extracting the Links.
Adding Chapter Information.
Sorting the Links.
Adding Style.
Final Solution.
Additional XSLT Topics.
Microsoft XSL: Old and in the Way.
@BHEADS = Topics Not Covered in Detail.
Beyond XSLT 1.0: XSLT 2.0, XPath 2.0, EXSLT, and XSLTSL.
Summary.
For Further Exploration.
12. Practical Formatting Using XSLFO.Introduction.
The Context of XSLFO.
Extensible Markup Language.
The XML Family of Recommendations.
Examples.
Basic Concepts of XSLFO.
Basic Concepts.
Area and Page Basics.
Page Geometry.
XSLFO Objects Related to Basic Areas and Simple Page Definitions.
Generic Body Constructs.
XSLFO Objects Related to Generic Body Constructs.
Tables.
XSLFO Objects Related to Tables.
Static Content and Page Geometry Sequencing.
XSLFO Objects Related to Static Content and Page Geometry Sequencing.
Floats and Footnotes.
XSLFO Objects Related to Floats and Footnotes.
Keeps, Breaks, Spacing, and Stacking.
Interactive Objects.
XSLFO Objects Related to Dynamic Properties and Dynamic Rendering Sequencing.
Supplemental Objects.
Lesser Used XSLFO Objects.
For Further Exploration.
IV. RELATED CORE XML SPECIFICATIONS.
13. XLink: XML Linking Language.Overview.
Why HTML Linking Isn't Sufficient.
What Is XLink?
Link Types and the xlink:type Attribute.
Terminology and Concepts.
Support for XLink.
Relevant Specifications.
Historical Perspective.
Simple Link: Reinventing the Anchor.
Simple Link Code Example.
Declaring XLinks in DTDs.
Validating Simple XLinks with a Modified DTD.
XLink Attributes.
Attributes by Purpose and Datatype.
Attributes by Link Type.
Link Behavior.
xlink:show Attribute.
xlink:actuate Attribute.
Extended Links: The True Flexibility of XLink.
Basic Extended Link Example.
Locator Link Type.
Resource Link Type.
Arc Link Type.
Title Link Type.
Extended Link Code Example.
Outbound, Inbound, and Third-Party Links.
Third-Party Extended Link Example.
Linkbases.
XML Base Support for Relative URIs.
XLink Implementations.
Summary.
For Further Exploration.
14. XPointer: XML Pointer Language.Overview.
Relevant Specifications.
Relationship to XPath.
Relationship to XLink.
Forms of XPointers.
Terminology and Concepts.
Historical Perspective.
Code Example Modification.
Forms of XPointers.
Full XPointers.
Bare Names.
Child Sequences.
XPointer Functions.
start-point() and end-point().
here() and origin().
range-to().
range() and range-inside().
string-range ().
Node-Points and Character-Points.
Node-Points.
Character-Points.
Escaping in XPointers.
XPointer Implementations.
Summary.
For Further Exploration.
V. SPECIALIZED XML VOCABULARIES.
15. XHTML: HTML for the Present and the Future.The XHTML Family.
Why Do We Need XHTML?
Overlap of XHTML Family.
Relevant Specifications: The XHTML Family.
XHTML 1.0.
Strictly Conforming XHTML Documents.
Simple XHTML Example.
Three Flavors of XHTML 1.0 DTDs: Which Should You Use?
Differences between XHTML 1.0 and HTML 4.01.
Sloppy HTML Example.
Validating HTML 4.01 Transitional and Strict.
HTML Tidy: Converting HTML to XHTML.
Validating XHTML 1.0 Transitional and Strict.
Considerations for Displaying XHTML.
Combining XHTML with Another Vocabulary.
Modularization of XHTML.
Abstract Modules and Implementations.
The Modules.
Anatomy of a Module.
Drivers.
Building DTD Modules (Adding Your Own Module).
XHTML Basic.
RDDL: An Extension of XHTML Basic.
RDDL DTD.
RDDL Qualified Names Module.
RDDL 1.0 Document Model Module.
RDDL Resource Module.
RDDL XLink Module.
Sample RDDL Document.
XHTML 1.1--Module-based XHTML.
XHTML 1.1 Modules and Elements.
Conforming XHTML 1.1 Documents and the Driver.
Document Model Module and Customizing XHTML 1.1.
Near Future XHTML.
XForms: Next Generation Web Forms.
XML Events: An Events Syntax for XML.
Modularization of XHTML in XML Schema.
XHTML 2.0.
Summary.
For Further Exploration.
16. RDF: Resource Description Framework.Overview.
Motivation.
History of RDF.
Model, or “Why Couldn't I Just Use XML?”
RDF Specifications.
Terminology.
Core Data Model of RDF.
Vocabulary for Ontological Description Using RDF.
Qualified Values: Special Case of Structured Values.
Classes and Instances.
Properties, Subproperties, and Property Constraints.
Containers.
Miscellaneous Vocabulary.
XML Serialization Syntax for RDF.
Full Syntax.
Container Syntax.
Abbreviated Syntax.
Parse Types.
Syntactic Conventions for Schemata.
Advanced Topics.
Statements about Statements.
Introducing Additional Constraints.
Model Theory.
For Further Exploration.
APPENDICES.
A. XML Family of Specifications in a Nutshell.XML: It's a cheese spread. No, it's a floor wax. No, it's two--two--two products in one! Or maybe it's everything but the kitchen sink? Say, did you hear the one about the XML Kitchen Sink Language? (see http://blogspace.com/xkitchensink/)
It has been said that XML, the Extensible Markup Language, will become the ASCII of the twenty-first century because it is rapidly becoming ubiquitous. XML is expected to have an impact on both the Web and application development comparable to that of Java and JavaScript because it has opened up a wide variety of new capabilities and has been embraced by so many sectors of human endeavor.
XML is a metalanguage--a syntax for describing other languages. These languages span diverse vertical industries including accounting, advertising, aerospace, agriculture, astronomy, automotive products, biology, chemistry, database management, e-commerce/EDI, education, financial institutions, health care, human resources, mathematics, publishing, real estate, software programs, supply chain management, and many more (for the many more, see http://www.xml.org/ml/industry_industrysectors.jsp). In one sense, XML is really a very trivial thing--just a markup syntax for describing structured text using angle brackets. But in another sense, XML is a basic building block--an enabling technology that makes it possible to develop more complex, more interesting, and more powerful tools.
In the Web arena, XML is facilitating exciting improvements such as user-controllable views and filtering of information, creation of truly device-independent content that can be re-purposed for vastly different devices, highly focused searching based on element hierarchies, and more sophisticated and flexible linking mechanisms. In the business and application arena, XML makes it easier to deliver filtered content from databases, to more readily share data between applications and between companies, and to exchange EDI messages that describe complex transactions. In the scientific arena, XML is a natural fit for describing complex datasets, models, control of instruments, images, chemical compounds, and much more.
Just as Java made data processing platform-independent, XML has done the same for data, making the exchange of information much easier than ever before. But, no, XML is not the kitchen sink; it is not the solution to all of the world's problems in one tidy package; nor is it the solution to all your computer needs either, at least not alone. Rather, XML is a tool, or more accurately, a set of tools from the same toolbox. That toolbox is the XML family of specifications. This book will help you see what XML can and cannot do by describing how to use each tool.
Although XML shares a number of concepts with its ancestor, SGML (Standard Generalized Markup Language), XML is said to yield 80 percent of the benefits of SGML, but with only 20 percent of the complexity. It is precisely this 80/20 rule that has excited countless companies and developers, encouraging them to support the efforts of the World Wide Web Consortium (W3C) in the development of XML. A few of the more than 500 companies and organizations that actively support XML development as members of the W3C include IBM, Sun, Microsoft, Oracle, Commerce One, and NASA.
The book is intended for Web developers, which includes programmers, content writers, and designers. Depending on your background and interests, some chapters may be more relevant to you than others. It's intended for those who may be familiar with particular aspects of XML but who have not been formally exposed to all of the major W3C specifications, as well as those who have never dealt with XML before. Later in this preface, I provide a roadmap to help orient you.
I've assumed that most readers are familiar with HTML elements and syntax, although the XML and DTD syntax discussions in Chapters 3 and 4 pretty much cover the concepts of elements, attributes, types, entities, and content that carry over from HTML to XML. In other words, you can get by without knowing HTML, except the XHTML chapter, which will make much more sense to you if you do. For those who would like to brush up on HTML, see "For Further Exploration: HTML and Java" at the end of this preface.
Some examples require programming knowledge, but for most examples, anyone with general Web development skills will find them beneficial. Generally, scope and breadth of treatment is favored over depth. On the other hand, some readers will find that the depth is more than they expected, but they should still be able to "tread the water." My intent in writing this book was to cover a number of XML-related technologies in varying degrees of detail. I'd like to make it clear that although there are three chapters containing Java examples, this is not a book about Java and XML. You don't need a Java background for the vast majority of what's in this book.
Although I do assume the Windows operating system, this is not a statement of preference. My formative years were spent on UNIX (I still use UNIX utilities to maintain a ski club site) at the office and a Mac at home. Rather, since Windows tends to be somewhat ubiquitous, it seems appropriate to show Windows command lines and mention some Windows-only tools. UNIX and Mac users are encouraged to share their experiences with fellow readers via the book's Web site. Personally, I have found cygwin--a UNIX environment for Windows developed by Red Hat--to be very handy (see http://cygwin.com/).
There are several features that contribute to making this book an invaluable resource for anyone beginning to plunge into the somewhat turbulent "seas" of XML.
This book does not cover XQuery, an XML Query language, nor Scalable Vector Graphics (SVG), except in passing. XQuery was still very much in flux at the time of this writing. As for SVG, with a more than 500-page specification, I felt I could not do the topic justice in the time I had left after writing the rest of this book. Well, there's always the Second Edition, I guess.
All code examples have been developed on a Dell Dimension XPS R450 PC (a paltry 450 MHz) running Windows 98. DOS .bat files are provided to help you configure your environment so that you can run the examples on your own. UNIX developers should be able to study the .bat files and set environment variables accordingly, such as CLASSPATH for Java and variables that point to the location of XML parsers and XSLT processors. I'm afraid I can't say much to Mac developers at this point (sadly, my own ancient PowerMac 7100/80 hasn't been used for the better part of three years), but if you contact me via the Web site and want me to share your experiences with others, I will gladly do so. I'll give you credit and a free copy of this book--it makes a great gift and keeps its flavor longer than fruitcake.
XML and DTD examples are plain text, so they are viewable in their raw form on all platforms using any text editor. To process XML in a browser, however, you'll need the most current generation of browsers, such as Netscape 6.x, Internet Explorer 5.5 or 6.x, Amaya 5.x, or Opera 5.x or higher. If you're not the type of reader who has to try out every example in his or her own browser, then perhaps the many screenshots in this book will be sufficient. Evaluation copies of commercial XML, DTD and XML Schema editors appear on the CD that accompanies this book; XML parsers and XSLT processors also appear there. The CD also contains a page of links to the current versions of all provided software, as well as links to software that couldn't be included on the CD for a variety of reasons.
The Java code examples should compile and run fine with either JDK 1.2.x or 1.3.x, also known by other confusing names and numbers such as Java 2 SDK, J2EE, and J2SE--or their equivalent as provided with your favorite Java IDE (Integrated Development Environment). This book does not attempt to teach Java; on the other hand, you really don't need to know Java to follow most of the discussions. Interested readers who desire a better Java background should refer to the key Java resources listed in "For Further Exploration: HTML and Java" that follows.
I truly hope you enjoy this book and find the XML family of specifications as fascinating as I do.
The typographic conventions used in this book are as follows:
Click below to download the Index file related to this title:
Index