Secondary menu

Main menu

About the Book

Extensible Markup Language (XML) is a general-purpose markup language. It is classified as an extensible language because it allows its users to define their own elements. Its primary purpose is to facilitate the sharing of structured data across different information systems, particularly via local networks and the Internet.

In this 2nd Edition of Elizabeth Castro's best-selling "XML for the World Wide Web (Visual QuickStart Guide)," I use concise instructions and substantive screen shots to teach beginning users all they need to know to write XML, XSL, DTD, XML Schema, and more. For anyone wanting to learn XML and its related technologies, this book is the most current, comprehensive and easy-to-follow tutorial you'll find today.

If you would like to read the first Chapter of my book, I've included a link to it below.

Table of Contents


What is XML?
The Power of XML
Extending XML
XML in Practice
About This Book
What This Book is Not

Part 1: XML

Chapter 1: Writing XML (download a PDF of Chapter 1)

An XML Sample
Rules for Writing XML
Elements, Attributes, and Values
How to Begin
Creating the Root Element
Writing Child Elements
Nesting Elements
Adding Attributes
Using Empty Elements
Writing Comments
Predefined Entities - Five Special Symbols
Displaying Elements as Text

Part 2: XSL

Chapter 2: XSLT

Transforming XML with XSLT
Beginning an XSLT Style Sheet
Creating the Root Template
Outputting HTML
Outputting Values
Looping Over Nodes
Processing Nodes Conditionally
Adding Conditional Choices
Sorting Nodes Before Processing
Generating Output Attributes
Creating and Applying Templates

Chapter 3: XPath Patterns and Expressions

Locating Nodes
Determining the Current Node
Referring to the Current Node
Selecting a Node's Children
Selecting a Node's Parent or Siblings
Selecting a Node's Attributes
Conditionally Selecting Nodes
Creating Absolute Location Paths
Selecting All of the Descendants

Chapter 4: XPath Functions

Comparing Two Values
Testing the Position
Multiplying, Dividing, Adding, Subtracting
Counting Nodes
Formatting Numbers
Rounding Numbers
Extracting Substrings
Changing the Case of a String
Totaling Values
More XPath Functions

Chapter 5: XSL-FO

The Two Parts of an XSL-FO Document
Creating an XSL-FO Document
Creating and Styling Blocks of Page Content
Adding Images
Defining a Page Template
Creating a Page Template Header
Using XSLT to Create XSL-FO
Inserting Page Breaks
Outputting Page Content in Columns
Adding a New Page Template

Part 3: DTD

Chapter 6: Creating a DTD

Working with DTDs
Defining an Element That Contains Text
Defining an Empty Element
Defining an Element That Contains a Child
Defining an Element That Contains Children
Defining How Many Occurrences
Defining Choices
Defining an Element That Contains Anything
About Attributes
Defining Attributes
Defining Default Values
Defining Attributes with Choices
Referencing Attributes with Unique Values
Restricting Attributes to Valid XML Names

Chapter 7: Entities and Notations in DTDs

Creating a General Entity
Using General Entities
Creating an External General Entity
Creating Entities for Unparsed Content
Embedding Unparsed Content
Creating and Using Parameter Entities
Creating an External Parameter Entity

Chapter 8: Validation and Using DTDs

Creating an External DTD
Declaring an External DTD
Declaring and Creating an Internal DTD
Validating XML Documents Against a DTD
Naming a Public External DTD
Declaring a Public External DTD
Pros and Cons of DTDs

Part 4: XML Schema

Chapter 9: XML Schema Basics

Working with XML Schema
Beginning a Simple XML Schema
Associating an XML Schema with an XML Document
Annotating Schemas

Chapter 10: Defining Simple Types

Defining a Simple Type Element
Using Date and Time Types
Using Number Types
Predefining an Element's Content
Deriving Custom Simple Types
Deriving Named Custom Types
Specifying a Range of Acceptable Values
Specifying a Set of Acceptable Values
Limiting the Length of an Element
Specifying a Pattern for an Element
Limiting a Number's Digits
Deriving a List Type
Deriving a Union Type

Chapter 11: Defining Complex Types

Complex Type Basics
Deriving Anonymous Complex Types
Deriving Named Complex Types
Defining Complex Types That Contain Child Elements
Requiring Child Elements to Appear in Sequence
Allowing Child Elements to Appear in Any Order
Creating a Set of Choices
Defining Elements to Contain Only Text
Defining Empty Elements
Defining Elements with Mixed Content
Deriving Complex Types from Existing Complex Types
Referencing Globally Defined Elements
Controlling How Many
Defining Named Model Groups
Referencing a Named Model Group
Defining Attributes
Requiring an Attribute
Predefining an Attribute's Content
Defining Attribute Groups
Referencing Attribute Groups
Local and Global Definitions

Part 5: Namespaces

Chapter 12: XML Namespaces

Designing a Namespace Name
Declaring a Default Namespace
Declaring a Namespace Name Prefix
Labeling Elements with a Namespace Prefix
How Namespaces Affect Attributes

Chapter 13: Using XML Namespaces

Populating an XML Namespace
XML Schemas, XML Documents, and Namespaces
Referencing XML Schema Components in Namespaces
Namespaces and Validating XML
Adding All Locally Defined Elements
Adding Particular Locally Defined Elements
XML Schemas in Multiple Files
XML Schemas with Multiple Namespaces
The Schema of Schemas as the Default
Namespaces and DTDs
XSLT and Namespaces

Part 6: Recent W3C Recommendations

Chapter 14: XSLT 2.0

Extending XSLT
Creating a Simplified Style Sheet
Generating XHTML Output Documents
Generating Multiple Output Documents
Creating User Defined Functions
Grouping Output Using Common Values
Validating XSLT Output

Chapter 15: XPath 2.0

XPath 1.0 and XPath 2.0
Averaging Values in a Sequence
Finding the Minimum or Maximum Value
Formatting Strings
Testing Conditions
Quantifying a Condition
Removing Duplicate Items
Looping Over Sequences
Using Today’s Date and Time
Writing Comments
Processing Non-XML Input

Chapter 16: XQuery 1.0

XQuery 1.0 vs. XSLT 2.0
Composing an XQuery Document
Identifying an XML Source Document
Using XPath Expressions
Writing FLWOR Expressions
Testing with Conditional Expressions
Joining Two Related Data Sources
Creating and Calling User Defined Functions
XQuery and Databases

Part 7: XML in Practice

Chapter 17: Ajax, RSS, SOAP, and More

Ajax Basics
Ajax Examples
RSS Basics
RSS Schema
Extending RSS
SOAP and Web Services
SOAP Message Schema
KML Basics
A Simple KML File
eBooks, ePub, and More
Tools for XML in Practice


Appendix A: XML Tools

XML Editors
Additional XML Editors
XML Tools and Resources

Appendix B: Characters Sets and Entities

Specifying the Character Encoding
Using Numeric Character References
Using Entity References
Unicode Characters

© 2009 - 2022 Kevin Howard Goldberg