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.

9780764569098

XSLT 2.0 Programmer's Reference, 3rd Edition

by
  • ISBN13:

    9780764569098

  • ISBN10:

    0764569090

  • Edition: 3rd
  • Format: Paperback
  • Copyright: 2004-08-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? XSLT 2.0 Programmer's Reference, 3rd Edition, is the authoritative reference guide to the language. Without using the formal and inaccessible language of the W3C specifications, it tells you exactly what every construct in the language does, and how it is intended to be used. This book is a reference rather than a tutorial; it is designed for the professional programmer who is using the language every day. It is the book that people quote when they claim that a particular product is giving the wrong answer, and the book that implementers of the language turn to when they want clarification of the specifications. At the same time, the book is readable. Reviews of the previous editions of the XSLT Programmer's Reference, which this book grew from, show that readers appreciate the background material on the design thinking behind the language, the essay on functional programming, the occasional dry wit, the gentle criticism of the language specification when appropriate, and the fact that the examples stray into a diverse range of interesting application areas.

Author Biography

<b>Michael Kay</b> has been working in the XML field since 1997; he became a member of the XSLWorking Group soon after the publication of XSLT 1.0, and took over as editor of the XSLT 2.0 specification in early 2001. He is also a member of the XQueryWorking Group. He is well known not only through previous editions of this book, but also as the developer of the open-source Saxon product, a pioneering implementation of XSLT 2.0, XPath 2.0, and XQuery 1.0.<br> The author has recently formed his own company, Saxonica Limited, to provide commercial software and services building on the success of the Saxon technology. Previously he spent three years with Software AG, working with the developers of the Tamino XML server, a leading XQuery implementation. His background is in database technology: after leaving the University of Cambridge with a Ph.D., he worked for many years with the (then) computer manufacturer ICL, developing network, relational, and object-oriented database software products as well as a text search engine, and held the position of ICL Fellow.

Table of Contents

Acknowledgments xxiii
Introduction xxvii
List of Examples
xxxv
XSLT in Context
1(42)
What is XSLT?
1(4)
Why Version 2.0?
3(1)
A Scenario: Transforming Music
3(2)
How Does XSLT Transform XML?
5(12)
XSLT and SQL: An Analogy
7(1)
XSLT Processors
8(1)
An XSLT 1.0 Stylesheet
9(6)
An XSLT 2.0 Stylesheet
15(2)
Where to Use XSLT
17(4)
Data Conversion Applications
17(2)
Publishing
19(1)
When to Do the Conversion?
20(1)
The Place of XSLT in the XML Family
21(5)
XSLT and XSL
21(1)
XSLT and XML
22(2)
XSL and CSS
24(1)
XSLT and XML Schemas
25(1)
The History of XSL
26(8)
Prehistory
26(2)
The First XSL Proposal
28(2)
The Microsoft WD-xsl Dialect
30(1)
Saxon
31(1)
Beyond XSLT 1.0
31(1)
XQuery
32(1)
XSLT 2.0 and XPath 2.0
33(1)
XSLT 2.0 as a Language
34(7)
Use of XML Syntax
34(2)
No Side Effects
36(1)
Rule-Based
37(4)
Types Based on XML Schema
41(1)
Summary
41(2)
The XSLT Processing Model
43(40)
XSLT: A System Overview
43(5)
A Simplified Overview
43(1)
Trees, not Documents
44(1)
Different Output Formats
45(2)
Multiple Inputs and Outputs
47(1)
The Tree Model
48(11)
XML as a Tree
48(3)
Nodes in the Tree Model
51(5)
What Does the Tree Leave Out?
56(3)
The Transformation Process
59(12)
Invoking a Transformation
59(1)
Template Rules
60(1)
Sequence Constructors
61(4)
Push Processing
65(3)
Controlling Which Nodes to Process
68(2)
Modes
70(1)
Built-In Template Rules
70(1)
Conflict Resolution Policy
71(1)
Error Handling
71(1)
Variables and Expressions
72(10)
Variables
73(1)
Parameters
74(1)
Data Types
74(2)
Expressions
76(2)
Context
78(1)
Temporary Trees
79(3)
Summary
82(1)
Stylesheet Structure
83(62)
Changes in XSLT 2.0
84(1)
The Modular Structure of a Stylesheet
84(7)
The <xsl:stylesheet> Element
91(2)
The <?xml-stylesheet?> Processing Instruction
93(2)
Embedded Stylesheets
95(3)
Declarations
98(5)
XSLT-Defined Declarations
99(1)
Implementor-Defined Declarations
100(1)
User-Defined Top-Level Elements
101(2)
Instructions
103(16)
XSLT Instructions
103(2)
Extension Instructions
105(1)
Literal Result Elements
106(10)
Attribute Value Templates
116(3)
Simplified Stylesheets
119(2)
Writing Portable Stylesheets
121(15)
Conditional Compilation
122(1)
Version Compatibility
123(5)
Extensibility
128(8)
Whitespace
136(8)
Whitespace Nodes in the Stylesheet
141(1)
The Effect of Stripping Whitespace Nodes
141(1)
Solving Whitespace Problems
142(2)
Summary
144(1)
Stylesheets and Schemas
145(28)
XML Schema: An Overview
145(9)
Simple Type Definitions
146(2)
Elements with Attributes and Simple Content
148(1)
Elements with Mixed Content
149(1)
Elements with Element-Only Content
150(1)
Substitution Groups
151(3)
Declaring Types
154(5)
Validating the Source Document
159(1)
Validating the Result Document
160(3)
Validating a Temporary Tree
163(1)
Validating Individual Elements
164(3)
Validating Individual Attributes
167(1)
The default-validation Attribute
168(1)
Importing Schemas
168(2)
Using xsi:type
170(1)
Nillability
171(1)
Summary
171(2)
XSLT Elements
173(320)
xsl:analyze-string
176(8)
Changes in 2.0
176(1)
Format
177(1)
Effect
178(3)
Usage and Examples
181(3)
See Also
184(1)
xsl:apply-imports
184(3)
Changes in 2.0
184(1)
Format
184(1)
Effect
185(1)
Usage and Examples
185(2)
See Also
187(1)
xsl:apply-templates
187(14)
Changes in 2.0
187(1)
Format
187(1)
Effect
188(5)
Usage and Examples
193(8)
See Also
201(1)
xsl:attribute
201(13)
Changes in 2.0
201(1)
Format
201(1)
Effect
202(6)
Usage
208(3)
Examples
211(3)
See Also
214(1)
xsl:attribute-set
214(6)
Changes in 2.0
214(1)
Format
214(1)
Effect
215(2)
Usage
217(1)
Examples
217(3)
See Also
220(1)
xsl:call-template
220(9)
Changes in 2.0
220(1)
Format
220(1)
Effect
221(1)
Usage and Examples
222(7)
See Also
229(1)
xsl:character-map
229(7)
Changes in 2.0
229(1)
Format
229(1)
Effect
230(2)
Usage and Examples
232(4)
See Also
236(1)
xsl:choose
236(2)
Changes in 2.0
236(1)
Format
236(1)
Effect
236(1)
Usage
237(1)
Examples
237(1)
See Also
238(1)
xsl:comment
238(2)
Changes in 2.0
238(1)
Format
238(1)
Effect
239(1)
Usage
239(1)
Examples
240(1)
xsl:copy
240(5)
Changes in 2.0
241(1)
Format
241(1)
Effect
242(1)
Usage
243(1)
Examples
244(1)
See Also
244(1)
xsl:copy-of
245(6)
Changes in 2.0
245(1)
Format
245(1)
Effect
246(1)
Usage and Examples
247(4)
See Also
251(1)
xsl:decimal-format
251(6)
Changes in 2.0
252(1)
Format
252(1)
Effect
253(2)
Usage
255(1)
Examples
255(2)
See Also
257(1)
xsl:document
257(3)
Changes in 2.0
257(1)
Format
257(1)
Effect
258(2)
Usage and Examples
260(1)
See Also
260(1)
xsl:element
260(11)
Changes in 2.0
260(1)
Format
261(1)
Effect
261(8)
Usage and Examples
269(2)
See Also
271(1)
xsl:fallback
271(5)
Changes in 2.0
271(1)
Format
271(1)
Effect
272(1)
Usage
273(1)
Examples
274(2)
See Also
276(1)
xsl:for-each
276(5)
Changes in 2.0
276(1)
Format
277(1)
Effect
277(2)
Usage and Examples
279(2)
See Also
281(1)
xsl:for-each-group
281(19)
Changes in 2.0
281(1)
Format
281(1)
Effect
282(4)
Usage and Examples
286(14)
See Also
300(1)
xsl:function
300(9)
Changes in 2.0
300(1)
Format
300(1)
Effect
301(2)
Usage and Examples
303(6)
See Also
309(1)
xsl:if
309(3)
Changes in 2.0
309(1)
Format
309(1)
Effect
309(1)
Usage
310(1)
Examples
311(1)
See Also
312(1)
xsl:import
312(12)
Changes in 2.0
312(1)
Format
312(1)
Effect
313(6)
Usage
319(1)
Examples
320(4)
See Also
324(1)
xsl:import-schema
324(4)
Changes in 2.0
324(1)
Format
325(1)
Effect
325(1)
Usage
326(2)
Examples
328(1)
xsl:include
328(4)
Changes in 2.0
328(1)
Format
328(1)
Effect
329(1)
Usage and Examples
330(2)
See Also
332(1)
xsl:key
332(10)
Changes in 2.0
332(1)
Format
332(1)
Effect
333(2)
Usage and Examples
335(7)
See Also
342(1)
xsl:matching-substring
342(1)
Changes in 2.0
342(1)
Format
342(1)
Effect
343(1)
Usage and Examples
343(1)
See Also
343(1)
xsl:message
343(3)
Changes in 2.0
343(1)
Format
343(1)
Effect
344(1)
Usage
344(1)
Examples
345(1)
See Also
346(1)
xsl:namespace
346(4)
Changes in 2.0
347(1)
Format
347(1)
Effect
347(1)
Usage and Examples
348(2)
See Also
350(1)
xsl:namespace-alias
350(5)
Changes in 2.0
350(1)
Format
350(1)
Effect
351(1)
Usage and Examples
352(3)
See Also
355(1)
xsl:next-match
355(3)
Changes in 2.0
355(1)
Format
355(1)
Effect
356(1)
Usage and Examples
357(1)
See Also
358(1)
xsl:non-matching-substring
358(1)
Changes in 2.0
359(1)
Format
359(1)
Effect
359(1)
Usage and Examples
359(1)
See Also
359(1)
xsl:number
359(15)
Changes in 2.0
360(1)
Format
360(1)
Effect
361(6)
Usage and Examples
367(7)
See Also
374(1)
xsl:otherwise
374(1)
Changes in 2.0
374(1)
Format
374(1)
Effect
374(1)
Usage and Examples
375(1)
See Also
375(1)
xsl:output
375(16)
Changes in 2.0
375(1)
Format
375(2)
Effect
377(13)
Usage
390(1)
Examples
391(1)
See Also
391(1)
xsl:output-character
391(1)
Changes in 2.0
391(1)
Format
392(1)
Effect
392(1)
See Also
392(1)
xsl:param
392(13)
Changes in 2.0
393(1)
Format
393(1)
Effect
394(3)
Usage
397(2)
Examples
399(5)
See Also
404(1)
xsl:perform-sort
405(1)
Changes in 2.0
405(1)
Format
405(1)
Effect
405(1)
Usage and Examples
406(1)
See Also
406(1)
xsl:preserve-space
406(5)
Changes in 2.0
406(1)
Format
406(1)
Effect
407(2)
Usage
409(1)
Examples
410(1)
See Also
411(1)
xsl:processing-instruction
411(3)
Changes in 2.0
411(1)
Format
411(1)
Effect
411(1)
Usage
412(1)
Examples
413(1)
xsl:result-document
414(6)
Changes in 2.0
414(1)
Format
414(1)
Effect
415(2)
Usage
417(1)
Examples
417(2)
See Also
419(1)
xsl:sequence
420(3)
Changes in 2.0
420(1)
Format
420(1)
Effect
420(1)
Usage and Examples
421(1)
See Also
422(1)
xsl:sort
423(9)
Changes in 2.0
423(1)
Format
423(1)
Effect
424(5)
Usage
429(2)
Examples
431(1)
See Also
432(1)
xsl:strip-space
432(1)
Changes in 2.0
433(1)
Format
433(1)
Effect, Usage, and Examples
433(1)
See Also
433(1)
xsl:stylesheet
433(17)
Changes in 2.0
434(1)
Format
434(3)
Effect
437(8)
Usage and Examples
445(5)
See Also
450(1)
xsl:template
450(9)
Changes in 2.0
451(1)
Format
451(1)
Effect
452(3)
Usage and Examples
455(4)
See Also
459(1)
xsl:text
459(6)
Changes in 2.0
460(1)
Format
460(1)
Effect
460(1)
Usage
460(5)
See Also
465(1)
xsl:transform
465(1)
Format
465(1)
See Also
465(1)
xsl:value-of
465(6)
Changes in 2.0
465(1)
Format
465(1)
Effect
466(1)
Usage
467(3)
Examples
470(1)
See Also
471(1)
xsl:variable
471(16)
Changes in 2.0
471(1)
Format
471(1)
Effect
472(5)
Usage
477(1)
Examples
477(10)
See Also
487(1)
xsl:when
487(1)
Changes in 2.0
487(1)
Format
487(1)
Effect
487(1)
Usage and Examples
488(1)
See Also
488(1)
xsl:with-param
488(3)
Changes in 2.0
489(1)
Format
489(1)
Effect
489(1)
Usage and Examples
490(1)
See Also
491(1)
Summary
491(2)
Patterns
493(30)
Changes in XSLT 2.0
494(1)
The Format Definition
495(2)
Patterns Containing Predicates
497(1)
An Informal Definition
497(1)
Conflict Resolution
498(2)
Matching Parentless Nodes
500(1)
The Syntax of Patterns
501(21)
Pattern
502(1)
PathPattern
503(2)
RelativePathPattern
505(2)
PatternStep
507(11)
IdKeyPattern
518(4)
Summary
522(1)
XSLT Functions
523(72)
current
526(3)
Changes in 2.0
526(1)
Signature
526(1)
Effect
526(1)
Usage
527(1)
Example
527(2)
current-group
529(1)
Changes in 2.0
529(1)
Signature
530(1)
Effect
530(1)
Usage and Examples
530(1)
See Also
530(1)
current-grouping-key
530(2)
Changes in 2.0
531(1)
Signature
531(1)
Effect
531(1)
Usage and Examples
531(1)
See Also
532(1)
document
532(10)
Changes in 2.0
532(1)
Signature
532(1)
Effect
533(9)
See Also
542(1)
element-available
542(6)
Changes in 2.0
543(1)
Signature
543(1)
Effect
543(1)
Usage and Examples
544(4)
See Also
548(1)
format-date
548(2)
Changes in 2.0
548(1)
Signature
549(1)
Effect
549(1)
Usage and Examples
549(1)
See Also
550(1)
format-date Time
550(8)
Changes in 2.0
550(1)
Signature
550(1)
Effect
551(6)
Usage and Examples
557(1)
See Also
558(1)
format-number
558(4)
Changes in 2.0
558(1)
Signature
558(1)
Effect
559(2)
Usage
561(1)
Examples
561(1)
See Also
562(1)
format-time
562(2)
Changes in 2.0
562(1)
Signature
562(1)
Effect
563(1)
Usage and Examples
563(1)
See Also
564(1)
function-available
564(4)
Changes in 2.0
564(1)
Signature
564(1)
Effect
564(1)
Usage
565(1)
Example 1: Testing for xx:node-set() Extensions
566(2)
Example 2: Testing Availability of a Java Method
568(1)
See Also
568(1)
generate-id
568(4)
Changes in 2.0
569(1)
Signature
569(1)
Effect
569(1)
Usage and Examples
569(3)
See Also
572(1)
key
572(8)
Changes in 2.0
573(1)
Signature
573(1)
Effect
573(1)
Usage and Examples
574(5)
See Also
579(1)
regex-group
580(1)
Changes in 2.0
580(1)
Signature
580(1)
Effect
580(1)
Usage and Examples
580(1)
See Also
581(1)
system-property
581(3)
Changes in 2.0
581(1)
Signature
582(1)
Effect
582(1)
Usage
583(1)
Examples
584(1)
See Also
584(1)
unparsed-entity-public-id
584(1)
Changes in 2.0
584(1)
Signature
584(1)
Effect
584(1)
Usage
585(1)
Examples
585(1)
See Also
585(1)
unparsed-entity-uri
585(2)
Changes in 2.0
585(1)
Signature
586(1)
Effect
586(1)
Usage
586(1)
Examples
587(1)
See Also
587(1)
unparsed-text
587(6)
Changes in 2.0
587(1)
Signature
588(1)
Effect
588(1)
Usage and Examples
589(4)
See Also
593(1)
Summary
593(2)
Extensibility
595(18)
What Vendor Extensions Are Allowed?
595(2)
Extension Functions
597(14)
When Are Extension Functions Needed?
597(1)
When Are Extension Functions not Needed?
598(1)
Calling Extension Functions
598(1)
What Language Is Best?
599(1)
Client-Side Script
599(1)
Binding Extension Functions
599(7)
Calling External Functions within a Loop
606(3)
Functions with Uncontrolled Side Effects
609(2)
Keeping Extensions Portable
611(1)
Summary
612(1)
Stylesheet Design Patterns
613(32)
Fill-in-the-Blanks Stylesheets
613(3)
Navigational Stylesheets
616(4)
Rule-Based Stylesheets
620(5)
Computational Stylesheets
625(18)
Programming without Assignment Statements
625(4)
So Why Are They Called Variables?
629(1)
Cheating
629(1)
Avoiding Assignment Statements
630(11)
Grouping
641(2)
Summary
643(2)
Case Study: XMLSpec
645(46)
Formatting the XML Specification
646(1)
Preface
647(4)
Creating the HTML Outline
651(4)
Formatting the Document Header
655(6)
Creating the Table of Contents
661(5)
Creating Section Headers
666(1)
Formatting the Text
667(3)
Producing Lists
670(2)
Making Cross-References
672(4)
Setting Out the Production Rules
676(8)
Variant Stylesheets
684(5)
diffspec.xsl
685(2)
xslt.xsl
687(1)
funcproto.xsl
688(1)
xsl-query.xsl
688(1)
Summary
689(2)
Case Study: A Family Tree
691(48)
Modeling A Family Tree
692(10)
The GEDCOM Data Model
692(3)
Creating a Schema for GEDCOM 6.0
695(1)
The GEDCOM 6.0 Schema
696(6)
Creating a Data File
702(12)
Converting GEDCOM Files to XML
703(1)
Converting from GEDCOM 5.5 to 6.0
704(10)
Displaying the Family Tree Data
714(24)
The Stylesheet
715(13)
Putting it Together
728(10)
Summary
738(1)
Case Study: Knight's Tour
739(16)
The Problem
739(1)
The Algorithm
740(4)
Placing the Knight
744(1)
Displaying the Final Board
745(1)
Finding the Route
746(6)
Finding the Possible Moves
747(2)
Trying the Possible Moves
749(1)
Selecting the Best Move
750(2)
Running the Stylesheet
752(1)
Observations
752(1)
Summary
753(2)
Appendix A: XPath 2.0 Syntax Summary 755(10)
Appendix B: XPath Function Library 765(34)
Appendix C: Microsoft XSLT Processors 799(16)
Appendix D: JAXP: The Java API for Transformation 815(36)
Appendix E: Saxon 851(14)
Appendix F: Backwards Compatibility 865(4)
Glossary 869(24)
Index 893

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