did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780764570773

Beginning XML, 3rd Edition

by ; ; ; ; ; ; ; ;
  • ISBN13:

    9780764570773

  • ISBN10:

    0764570773

  • Edition: 3rd
  • Format: Paperback
  • Copyright: 2004-09-01
  • Publisher: Wrox
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $39.99

Summary

What is this book about?Beginning XML, 3rd Edition, like the first two editions, begins with a broad overview of the technology and then focuses on specific facets of the various specifications for the reader. This book teaches you all you need to know about XML: what it is, how it works, what technologies surround it, and how it can best be used in a variety of situations, from simple data transfer to using XML in your Web pages. It builds on the strengths of the first and second editions, and provides new material to reflect the changes in the XML landscape _ notably RSS and SVG.

Author Biography

David Hunter is a Senior Technical Consultant for CGI, the largest Canadian independent information technology (IT) services firm and the fifth largest in North America.

Table of Contents

Introduction xxv
Part I: Introduction
1(88)
What Is XML?
3(20)
Of Data, Files, and Text
3(4)
Binary Files
4(1)
Text Files
5(1)
A Brief History of Markup
6(1)
So What Is XML?
7(11)
What Does XML Buy Us?
10(3)
HTML and XML: Apples and Red Delicious Apples
13(1)
Hierarchies of Information
14(3)
What's a Document Type?
17(1)
What Is the World Wide Web Consortium?
18(2)
What Are the Pieces That Make Up XML?
19(1)
Where Is XML Used, and Where Can It Be Used?
20(1)
Reducing Server Load
20(1)
Web Site Content
20(1)
Remote Procedure Calls
20(1)
e-Commerce
20(1)
Summary
21(1)
Exercise Questions
21(2)
Question 1
21(1)
Question 2
21(2)
Well-Formed XML
23(42)
Parsing XML
23(1)
Tags and Text and Elements, Oh My!
24(14)
Rules for Elements
30(8)
Attributes
38(6)
Why Use Attributes?
41(3)
Comments
44(3)
Empty Elements
47(2)
XML Declaration
49(5)
Encoding
49(3)
Standalone
52(2)
Processing Instructions
54(3)
Is the XML Declaration a Processing Instruction?
55(2)
Illegal PCDATA Characters
57(5)
Escaping Characters
58(1)
CDATA Sections
59(3)
Errors in XML
62(1)
Summary
63(1)
Exercise Questions
63(2)
Question 1
64(1)
Question 2
64(1)
XML Namespaces
65(24)
Why Do We Need Namespaces?
65(4)
Using Prefixes
66(2)
So Why Doesn't XML Just Use These Prefixes?
68(1)
How XML Namespaces Work
69(13)
Default Namespaces
72(6)
Do Different Notations Make Any Difference?
78(2)
Namespaces and Attributes
80(2)
What Exactly Are URIs?
82(4)
URLs
83(1)
URNs
84(1)
Why Use URLs for Namespaces, Not URNs?
84(1)
What Do Namespace URIs Really Mean?
85(1)
RDDL
85(1)
When Should I Use Namespaces?
86(1)
Summary
87(1)
Exercise Questions
87(2)
Question 1
87(1)
Question 2
87(1)
Question 3
88(1)
Part II: Validation
89(168)
Document Type Definitions
91(58)
Running the Samples
92(9)
Preparing the Ground
92(5)
The Document Type Declaration
97(4)
Sharing Vocabularies
101(1)
Anatomy of a DTD
102(43)
Element Declarations
103(14)
Attribute Declarations
117(12)
Entities
129(13)
Notation Declarations
142(3)
Developing DTDs
145(1)
DTD Limitations
146(1)
DTD Syntax
146(1)
XML Namespaces
146(1)
Data Typing
146(1)
Limited Content Model Descriptions
147(1)
Summary
147(1)
Exercise Questions
147(2)
Question 1
147(1)
Question 2
148(1)
Question 3
148(1)
XML Schemas
149(72)
Benefits of XML Schemas
150(1)
XML Schemas Use XML Syntax
150(1)
XML Schema Namespace Support
150(1)
XML Schema Data Types
150(1)
XML Schema Content Models
151(1)
Do We Still Need DTDs?
151(1)
XML Schemas
151(56)
The XML Schema Document
152(1)
Running the Samples
152(5)
<schema> Declarations
157(2)
<element> Declarations
159(10)
<complexType> Declarations
169(1)
<group> Declarations
170(2)
Content Models
172(10)
<attribute> Declarations
182(6)
<attributeGroup> Declarations
188(4)
Data Types
192(8)
<simpleType> Declarations
200(6)
Creating Elements with <simpleType> Content and Attributes
206(1)
Creating a Schema from Multiple Documents
207(9)
<import> Declarations
208(4)
<include> Declarations
212(4)
Documenting XML Schemas
216(3)
Comments
216(1)
Attributes from Other Namespaces
217(1)
Annotations
218(1)
Summary
219(1)
Exercise Questions
220(1)
Question 1
220(1)
Question 2
220(1)
Question 3
220(1)
RELAX NG
221(36)
Basic RELAX NG Patterns
222(12)
Introduction to Patterns and Element Patterns
222(3)
Attribute Patterns
225(2)
Enumerated Values
227(1)
Co-Occurrence Constraints
228(1)
Mixed Content Pattern
229(1)
The Empty Pattern
229(1)
Connector Patterns and Grouping
230(1)
The Interleave Pattern
231(3)
Combining and Reusing Patterns and Grammars
234(13)
Named Patterns
234(3)
assignMethod and Combining Named Pattern Definitions
237(1)
Schema Modularization Using the Include Directive
238(1)
Redefining Included Named Patterns
239(1)
Removing Patterns with the notAllowed Pattern
240(1)
Extending Schemas with Composition
241(1)
Extensibility in RELAX NG
242(1)
Nested Grammars and the RELAX NG Grammar Pattern
243(4)
Additional RELAX NG Features
247(8)
Namespaces
247(2)
Name-Classes
249(3)
Data Types
252(2)
List Patterns
254(1)
Comments and Divisions
255(1)
Useful Resources
255(1)
Summary
256(1)
Exercise Questions
256(1)
Question 1
256(1)
Question 2
256(1)
Part III: Processing
257(72)
XPath
259(32)
Ways of Looking at an XML Document
260(1)
Serialized Document
260(1)
XPath Data Model
261(1)
The Document Object Model
261(1)
The XML Information Set
261(1)
Visualizing XPath
261(6)
Context
262(1)
What Is a Node?
263(3)
XPath 1.0 Types
266(1)
Abbreviated and Unabbreviated Syntax
267(1)
XPath 1.0 Axes
268(14)
Child Axis
269(1)
attribute Axis
270(2)
ancestor Axis
272(1)
ancestor-or-self Axis
273(1)
descendant Axis
273(1)
descendant-or-self Axis
274(1)
following Axis
274(2)
following-sibling Axis
276(1)
namespace Axis
276(3)
parent Axis
279(1)
preceding Axis
279(1)
preceding-sibling Axis
280(1)
self Axis
281(1)
XPath 1.0 Functions
282(2)
Boolean Functions
282(1)
Node-Set Functions
283(1)
Numeric Functions
283(1)
String Functions
284(1)
Predicates
284(1)
Structure of XPath Expressions
285(2)
Looking Forward to XPath 2.0
287(1)
Revised XPath Data Model
288(1)
W3C XML Schema Data Types
288(1)
Additional XPath 2.0 Functions
288(1)
Summary
288(1)
Exercise Questions
288(3)
Question 1
289(1)
Question 2
289(2)
XSLT
291(38)
What Is XSLT?
291(1)
Restructuring XML
292(1)
Presenting XML Content
292(1)
How Does an XSLT Processor Work?
292(1)
Running the Examples
293(2)
Introducing the Saxon XSLT Processor
293(1)
Installing the Saxon XSLT Processor
293(2)
Procedural versus Declarative Programming
295(2)
Procedural Programming
296(1)
Declarative Programming
296(1)
Foundational XSLT Elements
297(4)
The <xsl:stylesheet> Element
299(1)
The <xsl:template> Element
300(1)
The <xsl:apply-templates> Element
300(1)
Getting Information from the Source Tree
301(8)
The <xsl:value-of> Element
301(2)
The <xsl:copy> Element
303(4)
The <xsl:copy-of> Element
307(2)
Influencing the Output with the <xsl:output> Element
309(1)
Conditional Processing
310(4)
The <xsl:if> Element
310(1)
The <xsl:choose> Element
311(3)
The <xsl:for-each> Element
314(2)
The <xsl:sort> Element
316(2)
XSLT Modes
318(5)
XSLT Variables and Parameters
323(2)
Named Templates and the <xsl:call-template> Element
325(1)
XSLT Functions
325(1)
Looking Forward to XSLT 2.0
326(1)
Summary
326(1)
Exercise Questions
326(3)
Question 1
327(1)
Question 2
327(2)
Part IV: Databases
329(72)
XQuery, the XML Query Language
331(34)
Why XQuery?
332(3)
Historical Factors
332(1)
Technical Factors
333(1)
Current Status
333(2)
XQuery Tools
335(3)
Saxon
336(1)
X-Hive.com Online
337(1)
X-Hive Database
338(1)
Tamino Database
338(1)
SQL Server 2005
338(1)
Oracle
338(1)
Some XQuery Examples
338(14)
Input Functions
339(1)
Retrieving Nodes
340(3)
Element Constructors
343(4)
The XQuery Prolog
347(2)
Computed Constructors
349(2)
Syntax
351(1)
The XQuery Data Model
352(1)
Shared Data Model with XPath 2.0 and XSLT 2.0
352(1)
Node Kinds
352(1)
Sequences cf Node-Sets
352(1)
Document Order
353(1)
Comparing Items and Nodes
353(1)
Types in XQuery
353(1)
Axes in XQuery
353(1)
XQuery Expressions
353(7)
FLWOR Expressions
353(7)
XQuery Functions
360(1)
The concat() Function
360(1)
The count() Function
361(1)
Using Parameters with XQuery
361(1)
Proprietary Extensions to XQuery
362(1)
Insert Functionality
362(1)
Delete Functionality
363(1)
Update Functionality
363(1)
Looking Ahead
363(1)
Update Functionality (as Part of XQuery)
363(1)
Full-Text Search
364(1)
Summary
364(1)
Exercise Questions
364(1)
Question 1
364(1)
Question 2
364(1)
XML and Databases
365(36)
The Need for Efficient XML Data Stores
365(3)
Increase in Amount of XML
366(1)
Comparing XML-Based Data and Relational Data
367(1)
Approaches to Storing XML
368(1)
Producing XML from Relational Databases
368(1)
Moving XML to Relational Databases
368(1)
Native XML Databases
368(1)
Using Native XML Databases
369(11)
Obtaining and Installing Xindice
370(4)
Adding Information
374(4)
Retrieving Information
378(1)
Searching for Information
379(1)
Programming Xindice
380(1)
XML in RDBMS
380(19)
XML Functionality in SQL Server 2000
381(8)
XML Functionality in SQL Server ``Yukon''
389(10)
Choosing a Database to Store XML
399(1)
Looking Ahead
399(1)
Summary
399(1)
Exercise Questions
400(1)
Question 1
400(1)
Question 2
400(1)
Part V: Programming
401(78)
The XML Document Object Model (DOM)
403(36)
What Is an XML Document Object Model For?
403(2)
Interfaces and Objects
404(1)
The Document Object Model at the W3C
405(1)
XML DOM Implementations
406(1)
Two Ways to View DOM Nodes
406(1)
Overview of the XML DOM
407(1)
Tools to Run the Examples
408(4)
The Node Object
412(22)
Properties of the Node Object
413(4)
Methods of the Node Object
417(1)
Loading an XML Document
418(9)
The NamedNodeMap Object
427(5)
The NodeList Object
432(1)
The DOMException Object
432(2)
The Document Interface
434(2)
How the XML DOM Is Used in InfoPath 2003
436(1)
Summary
437(1)
Exercise Questions
438(1)
Question 1
438(1)
Question 2
438(1)
Simple API for XML (SAX)
439(40)
What Is SAX and Why Was It Invented?
439(2)
A Simple Analogy
440(1)
A Brief History of SAX
440(1)
Where to Get SAX
441(1)
Setting Up SAX
442(1)
Receiving SAX Events
442(32)
ContentHandler Interface
443(19)
ErrorHandler Interface
462(5)
DTDHandler Interface
467(1)
EntityResolver Interface
467(1)
Features and Properties
468(4)
Extension Interfaces
472(2)
Good SAX and Bad SAX
474(1)
Consumers, Producers, and Filters
475(1)
Other Languages
475(1)
Summary
476(1)
Exercise Questions
476(3)
Question 1
477(1)
Question 2
477(2)
Part VI: Communication
479(122)
RSS and Content Syndication
481(50)
Syndication and Meta Data
481(15)
Syndication Systems
482(2)
The Origin of RSS Species
484(5)
RSS-DEV and RSS 1.0
489(3)
Userland and RSS 2.0
492(2)
Atom
494(2)
Working with News Feeds
496(2)
Newsreaders
497(1)
Data Quality
497(1)
A Simple Aggregator
498(30)
Modeling Feeds
498(3)
Program Flow
501(1)
Implementation
501(17)
Transforming RSS with XSLT
518(10)
Useful Resources
528(1)
Summary
529(1)
Exercise Questions
530(1)
Question 1
530(1)
Question 2
530(1)
Web Services
531(28)
What Is an RPC?
531(2)
RPC Protocols
533(2)
DCOM
533(1)
IIOP
534(1)
Java RMI
535(1)
The New RPC Protocol: Web Services
535(14)
XML-RPC
536(3)
The Network Transport
539(10)
Taking a REST
549(3)
The Web Services Stack
552(5)
SOAP
552(1)
WSDL
553(1)
UDDI
554(1)
Surrounding Specifications
555(2)
Summary
557(1)
Exercise Questions
557(2)
Question 1
557(1)
Question 2
558(1)
SOAP and WSDL
559(42)
Laying the Groundwork
559(3)
The New RPC Protocol: SOAP
562(6)
Just RESTing
568(1)
Basic SOAP Messages
568(8)
<Envelope>
569(1)
<Body>
570(1)
Encoding Style
570(6)
More Complex SOAP Interactions
576(11)
<Header>
576(2)
<Fault>
578(9)
Defining Web Services: WSDL
587(11)
<definitions>
588(8)
Other Bindings
596(2)
Summary
598(1)
Exercise Questions
599(2)
Question 1
599(1)
Question 2
599(2)
Part VII: Display
601(144)
XHTML
603(26)
Separating Style from Content
604(1)
Learning XHTML 1.0
605(17)
The Strict, Transitional, and Frameset DTDs of XHTML 1.0
606(1)
Basic Changes in Writing XHTML
607(11)
Stricter Documents Make Faster and Lighter Processors
618(1)
XHTML Tools
618(1)
Validating XHTML Documents
619(1)
Validation Pitfalls
620(2)
Modularized XHTML
622(4)
Module Implementations
624(1)
XHTML 1.1
624(1)
XHTML Basic
625(1)
Summary
626(1)
Exercise Questions
627(2)
Question 1
628(1)
Question 2
628(1)
Cascading Style Sheets (CSS)
629(42)
Why Style Sheets?
630(1)
Introducing CSS
631(6)
CSS Properties
632(1)
Inheritance
633(4)
Using CSS with XHTML versus Other XML Vocabularies
637(1)
Attaching the Style Sheet to an XML Document
637(1)
Selectors
638(1)
Using CSS for Layout of XML Documents
639(17)
Understanding the Box Model
640(4)
Positioning in CSS
644(12)
Laying Out Tabular Data
656(2)
Links in XML Documents
658(4)
XLink Support in Netscape
659(3)
Forcing Links Using the HTML Namespace
662(1)
Images in XML Documents
662(1)
Using CSS to Add Content to Documents
663(3)
Attribute Content
666(2)
Attribute Selectors
666(1)
Using Attribute Values in Documents
666(2)
Summary
668(1)
Exercise Questions
669(2)
Question 1
669(1)
Question 2
670(1)
Question 3
670(1)
Question 4
670(1)
Scalable Vector Graphics (SVG)
671(38)
What Is SVG?
671(3)
Scalable, Vector, Graphics
672(1)
Putting SVG to Work
672(1)
An SVG Toolkit
673(1)
Getting Started
674(14)
The Painter's Model
677(2)
Grouping
679(1)
Transformations
679(1)
Paths
680(3)
Images
683(1)
Text
683(1)
Comments, Annotation, and Meta Data
684(2)
Scripting
686(2)
SVG on Your Website
688(1)
Tangram: A Simple Application
688(14)
XHTML Wrapper
689(1)
SVG Shapes
690(4)
Tangram Script
694(8)
The SVG Specification
702(4)
Useful Resources
706(1)
Summary
706(1)
Exercise Questions
707(2)
Question 1
707(1)
Question 2
708(1)
XForms
709(36)
How Does XForms Improve on HTML Forms?
709(1)
XForms Tools
710(4)
XForms Viewers
710(3)
XForms Designers
713(1)
An Illustrative XForms Example
714(8)
The XForms Model
716(5)
XML Namespaces in XForms Documents
721(1)
XForms Form Controls
722(10)
The xforms:input Element
722(1)
The xforms:secret Element
723(1)
The xforms:textarea Element
723(1)
The xforms:output Element
723(1)
The xforms:upload Element
724(1)
The xforms:range Element
724(1)
The xforms:trigger Element
724(1)
The xforms:submit Element
724(1)
The xforms:select Element
725(1)
The xforms:select1 Element
726(6)
XForms Model Item Properties
732(5)
The xforms:bind Element
732(5)
XForms Events
737(1)
The XForms Action Module
737(4)
The xforms:action Element
738(1)
The xforms:dispatch Element
738(1)
The xforms:load Element
738(1)
The xforms:message Element
738(1)
The xforms:rebuild Element
739(1)
The xforms:recalculate Element
739(1)
The xforms:refresh Element
739(1)
The xforms:reset Element
739(1)
The xforms:revalidate Element
739(1)
The xforms:send Element
740(1)
The xforms:setfocus Element
740(1)
The xforms:setvalue Element
740(1)
Developing and Debugging XForms
740(1)
Commercial Alternatives to XForms
741(2)
Microsoft InfoPath 2003
741(1)
Adobe XML/PDF Forms Designer
742(1)
Summary
743(1)
Exercise Questions
743(2)
Question 1
743(1)
Question 2
743(2)
Part VIII: Case Studies
745(54)
Case Study 1: .NET XML Web Services
747(24)
The XML Web Service
747(10)
Consuming the Web Service
757(11)
The Web Page Client
757(8)
The .NET Client
765(3)
Summary
768(3)
Case Study 2: XML and PHP
771(28)
Elementary Programming in PHP
772(1)
Basic Information about PHP
773(14)
Programming Principles
773(4)
Constants and Variables
777(2)
Operators
779(3)
Getting Data from the Browser Screen
782(3)
Getting Data from a File
785(2)
Building a Program
787(10)
Useful Resources
797(1)
Summary
798(1)
Part IX: Appendixes
799(162)
Appendix A: Exercise Solutions
801(56)
Appendix B: The XML Document Object Model
857(14)
Appendix C: XPath 1.0 Reference
871(12)
Appendix D: XSLT 1.0 Reference
883(28)
Appendix E: XML Schema Element and Attribute Reference
911(30)
Appendix F: Schema Data Types Reference
941(20)
Index 961

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program