search for books and compare prices
Tables of Contents for Beginning Xslt
Chapter/Section Title
Page #
Page Count
Introduction
1
1
Welcome
1
1
Who is this Book For?
1
1
What's Covered in this Book
1
3
Part 1: Theory
1
2
Part 2: Practice
3
1
What You Need to Use this Book
4
1
Conventions
4
1
Downloading the Source Code
5
1
Tell Us What You Think
5
1
Errata & Updates
6
1
Technical Support
6
3
p2p.wrox.com
6
3
Beyond HTML
9
16
HTML and Markup
9
6
Presentational Elements
10
1
Separating Content and Presentation
11
1
Using Stylesheets to Add Presentation
11
2
Generating HTML Pages Using Scripts
13
2
The TV Guide Site
15
8
Sample Page
16
2
Adding CSS
18
4
Adding XSLT
22
1
Summary
23
2
Introducing XML
25
44
Markup Languages
25
4
Extending HTML
26
2
Meta-Markup Languages
28
1
XML: The Extensible Markup Language
28
1
XML Rules
29
17
XHTML
31
1
Naming Conventions
32
1
Elements in XML
33
1
End Tags
33
1
Empty Elements
33
1
Nested Elements
34
1
The Document Element
34
1
Attributes in XML
35
1
Entities, Characters, and Encodings
36
2
The XML Declaration
38
3
Other Components of XML
41
1
Comments
41
1
Processing Instructions
42
1
CDATA Sections
42
2
Moving to XHTML
44
2
Creating Markup Languages
46
16
Designing Markup Languages
46
3
Deciding Our Criteria
49
1
Deciding on a Naming Convention
50
2
Mapping to Elements and Attributes
52
1
Representing Relationships
53
3
TV Guide XML Document
56
1
Validating Markup Languages
57
1
Document Type Definitions
57
4
Schemas
61
1
Presenting XML
62
3
Presenting XML with CSS
62
1
Associating Stylesheets with XML
63
1
Limitations of CSS
64
1
Summary
65
1
Review Questions
66
3
Creating HTML from XML
69
34
XSL: The Extensible Stylesheet Language
70
1
Using XSLT Processors
71
6
Using MSXML
72
3
Using Saxon
75
1
Using Xalan
76
1
Simplified Stylesheets
77
4
Literal Result Elements
80
1
The <xsl:value-of> Instruction
81
1
The XSLT Namespace
81
6
Generating HTML Pages
87
12
Iterating Over Elements
89
2
The< xsl:for-each> Element
91
1
Absolute and Relative Paths
91
5
Generating Attribute Values
96
1
Attribute Value Templates
97
2
Summary
99
1
Review Questions
100
3
Templates
103
50
XSLT Stylesheet Structure
103
5
Stylesheet Document Elements
104
1
Defining Templates
105
3
The Node Tree
108
5
XSLT Processing Model
113
8
The Starting Template
113
1
Matching Elements with Templates
114
4
The Built-in Templates
118
2
Extending Stylesheets
120
1
Templates as Mapping Rules
121
23
Processing Document-Oriented XML
122
6
Context-Dependent Processing
128
1
Patterns
129
1
Identifying Elements in Different Contexts
130
2
Unnecessary Templates
132
4
Resolving Conflicts Between Templates
136
1
Template Priority
136
1
Default Priorities
136
4
Processing with Push and Pull
140
1
Processing with Push
140
2
Processing with Pull
142
1
When to Use Push and Pull
143
1
Using Moded Templates
144
4
Built-in Moded Templates
146
2
Summary
148
1
Review Questions
149
4
Conditions
153
38
Conditional Processing
153
12
Processing Optional Elements
154
1
Using the Ancestry of Source XML
155
1
Using the Location of Result XML
156
4
Conditional Elements in XSLT
160
1
if Statements
160
3
choose Statements
163
2
Testing Elements and Attributes
165
16
Testing for Attributes
165
3
Comparing Values
168
1
Comparison Operators
169
1
Comparing Node Sets and Values
170
2
Testing with Functions
172
1
Testing Strings and Numbers
173
3
Testing the Contents of Strings
176
2
Combining Tests
178
3
Filtering XML
181
5
Testing Positions
184
2
Summary
186
1
Review Questions
187
4
Variables, Expressions and Parameters
191
50
Defining Variables
192
22
Referring to Variables
193
3
Variable Scope
196
1
Global Variables
196
1
Local Variables
196
5
Loops and Counters
201
3
Result Tree Fragments
204
2
Converting from Result Tree Fragments
206
2
Outputting Result Tree Fragments
208
3
Conditional Variables
211
3
String and Number Expressions
214
14
Manipulating Strings
214
1
Splitting and Recombining Strings
214
3
Reformatting Strings
217
4
Manipulating Numbers
221
4
Formatting Numbers
225
3
Using Parameters
228
8
Declaring and Referring to Parameters
229
1
Stylesheet Parameters
230
3
Template Parameters
233
3
Summary
236
1
Review Questions
237
4
Paths
241
48
Node Trees Revisited
242
17
Accessing Information About Nodes
243
3
Namespaces in the Node Tree
246
1
Qualified Names
247
4
Namespace Nodes
251
2
Whitespace in Node Trees
253
3
Stripping Whitespace-Only Text Nodes
256
2
Preserving Whitespace-Only Text Nodes
258
1
Matching Nodes
259
12
Location Path Patterns
259
1
Step Patterns
260
1
Axes in Step Patterns
260
1
Predicates in Step Patterns
261
5
Name Tests and Namespaces
266
1
Matching Elements in Namespaces
267
4
Template Priorities
271
1
Selecting Nodes
271
14
Axes
272
4
Evaluating Location Paths
276
9
Summary
285
1
Review Questions
285
4
The Result Tree
289
42
Generating Nodes
290
26
Generating Elements
292
1
Dynamic Element Names
293
4
Element Namespaces
297
5
Generating Text Nodes
302
1
Managing Whitespace
303
5
Generating Attributes
308
1
Creating Optional Attributes
309
2
Creating Attributes with Conditional Values
311
2
Attribute Sets
313
1
Generating Comments and Processing Instructions
314
1
Copying Nodes and Branches
315
1
Controlling Output
316
10
Output Methods
317
1
The xml Output Method
317
1
The html Output Method
318
1
The text Output Method
318
1
Disabling Output Escaping
319
2
Declaring Content Type Information
321
1
Controlling Output Formats
322
4
Summary
326
1
Review Questions
327
4
Sorting and Numbering
331
30
Sorting
331
12
Sorting in Different Orders
334
1
Sorting Numerically
335
2
Multiple Sorts
337
2
Flexible Sorting
339
1
Flexible Sort Orders
340
2
Flexible Sort Values
342
1
Numbering
343
14
Getting the Number of an Item
343
4
Numbering Sorted and Filtered Items
347
4
Changing the Starting Number
351
1
Formatting Numbers
352
1
Formatting Large Numbers
353
1
Formatting Numbers with Different Alphabets
353
2
Numbering Across a Document
355
1
Generating Hierarchical Numbers
356
1
Summary
357
1
Review Questions
358
3
IDs, Keys, and Groups
361
34
Searching
361
18
IDs
362
1
Declaring ID Attributes
363
1
Accessing Elements by ID
364
3
Resolving Multiple References
367
2
Keys
369
1
Using Keys Instead of IDs
369
4
Key Spaces
373
1
Choosing What to Index
373
1
Indexing by XPaths
374
1
Multiple Key Values
375
4
Generating IDs
379
3
Grouping
382
10
Creating Grouping Keys
383
1
Identifying Groups
383
5
Multi-level Grouping
388
4
Summary
392
1
Review Questions
393
2
Named Templates and Recursion
395
46
Named Templates
396
6
Recursion
402
31
Recursive Principles
402
2
Recursing with Numbers
404
1
Repeating
404
4
Numbering
408
6
Calculating
414
2
Recursing with Strings
416
1
Splitting Strings
416
2
Searching and Replacing
418
5
Iterating Over the Alphabet
423
3
Summarizing Strings
426
1
Recursing with Nodes
427
6
Tail Recursion
433
3
Summary
436
1
Review Questions
437
4
Building XSLT Applications
441
42
Splitting Up Stylesheets
442
5
Reusing Stylesheets
447
6
Accessing XML Data
453
20
Accessing External Documents
455
5
Putting Data in Stylesheets
460
3
Using Keys in External Documents
463
4
Accessing Customization Information
467
5
Including Content from External Documents
472
1
Retrieving Referenced Information
473
6
Resolving Relative URLs
473
5
Accessing Multiple Documents
478
1
Summary
479
1
Review Questions
480
3
Extensions
483
48
Extensions to XSLT and XPath
484
24
Extension Functions
484
1
Identifying Extension Functions
485
3
Testing Function Availability
488
3
Extensions to Attribute Values
491
1
Extending Sort Data Types
492
1
Additional Output Methods
493
3
Extension Attributes
496
2
Extension Elements
498
4
Identifying Extension Elements
502
1
Preventing Errors with Extension Elements
502
4
Testing Element Availability
506
2
Top-Level Elements
508
1
Example Extensions
508
20
Turning Result Tree Fragments into Node Sets
509
4
Creating Multiple Result Documents
513
1
Creating Multiple Output Documents with Saxon
514
1
Creating Multiple Output Documents with Xalan
515
3
Writing Your Own Extension Functions
518
1
Defining Extension Functions in Scripting Languages
518
6
Defining Extension Functions in XSLT
524
4
Summary
528
1
Review Questions
529
2
Dynamic XSLT
531
50
Dynamic Transformations
532
3
Server Side Transformations
532
1
Client Side Transformations
533
2
Client Side or Server Side?
535
1
Server Side Transformations Using Cocoon
535
24
Installing Cocoon
536
3
Pipelines
539
1
Generating
539
1
Transforming
540
1
Serializing
540
1
Matching and Selecting Pipelines
540
1
Configuring Cocoon
541
1
Defining Components
542
1
Defining Pipelines
543
1
Creating Sub-sitemaps
544
4
Different Stylesheets for Different Browsers
548
5
Using Parameters
553
1
Setting Parameters in the Sitemap
553
3
Passing Parameters from the URL
556
3
Client Side Transformations Using MSXML
559
17
Creating DOMs
560
1
Creating Document Objects
560
1
Setting Flags on the Document Object
561
1
Loading the XML Document
562
1
Checking for Parse Errors
562
4
Performing Transformations
566
1
Creating a Compiled Stylesheet
566
1
Doing the Transformation
567
4
Handling Output
571
1
Replacing Part of the Page
571
1
Continuing Processing
571
1
Passing Parameters
572
4
Summary
576
1
Review Questions
577
4
Creating SVG
581
46
Introducing SVG
581
21
Lengths and Coordinates
585
2
Graphic Elements
587
2
Lines
589
1
Polylines
590
1
Rectangles
591
1
Circles
592
1
Ellipses
593
1
Polygons
593
1
Paths
594
2
Text
596
2
Images
598
1
Container Elements
599
1
Grouping Graphics
599
2
Linking from SVG
601
1
Generating SVG with XSLT
602
19
SVG Design
602
2
Constructing the Stylesheet
604
1
Basic Stylesheet
604
1
Creating the SVG Element
605
1
Creating Timeline Markers
606
3
Creating Vertical Gridlines
609
1
Creating Horizontal Gridlines
610
1
Creating Groups for Channels
611
2
Creating Groups for Programs
613
3
Displaying the Series Title
616
1
Displaying the Program Title
617
1
Completed Stylesheet
617
4
Embedding SVG in HTML Pages
621
1
Summary
622
1
Review Questions
623
4
Validating XML with Schematron
627
36
Introducing Schematron
628
8
Validating with Schematron
629
4
Constructing Schematron Schemas
633
3
Testing XML with XPath
636
20
Checking the Document Element
636
1
Checking Element Content
637
1
Checking Empty Elements
637
2
Checking Elements with Text Content
639
1
Checking Elements with Element Content
639
7
Checking Attributes
646
2
Validating String Values
648
1
Ignoring Whitespace
648
1
Testing Enumerated Values
649
1
Testing String Data
649
3
Testing Numerical Data
652
1
Validating Co-occurrence Constraints
652
2
Validating IDs and References
654
1
Generating Identifiers
654
1
Testing Uniqueness
655
1
Checking References
655
1
Creating Validators for Schematron
656
3
Summary
659
1
Review Questions
660
3
Interpreting RSS with XSLT
663
30
RDF Basics
663
5
Statements, Resources, and Properties
664
1
Representing Statements in XML
665
1
Describing Resources
665
1
Making Statements
666
2
Bags, Sequences, and Alternatives
668
1
Introducing RSS
668
8
RSS Markup Language
669
1
Describing Channels
669
1
Describing Items
670
1
Example RSS Page
670
2
RSS Modules
672
1
Dublin Core Module
672
2
Syndication Module
674
1
Other Modules
675
1
Transforming RSS
676
14
Sample Documents
677
2
Basic Stylesheet
679
1
Managing Namespaces
679
1
Managing Whitespace
680
1
Managing Output
681
1
Creating the Program Listing
681
2
Adding Duration Information
683
4
Adding Rating Information
687
2
Final Result
689
1
Summary
690
1
Review Questions
690
3
Appendix A: XPath Quick Reference
693
14
Node Types
693
1
Object Types
693
2
Paths
695
1
Axes
695
1
Node Tests
696
1
Abbreviated Syntax
696
1
Operators
696
2
Logical Operators
697
1
Comparisons
697
1
Numerical Operators
698
1
Node Set Operator
698
1
Functions
698
9
boolean()
698
1
ceiling()
698
1
concat()
699
1
contains()
699
1
count()
699
1
current()
699
1
document()
699
1
element-available()
699
1
false()
700
1
floor()
700
1
format-number()
700
1
function-available()
700
1
generate-id()
700
1
id()
701
1
key()
701
1
lang()
701
1
last()
701
1
local-name()
701
1
name()
702
1
namespace-uri()
702
1
normalize-space()
702
1
not()
702
1
number()
702
1
position()
702
1
round()
703
1
starts-with()
703
1
string()
703
1
string-length()
703
1
substring()
703
1
substring-after()
704
1
substring-before()
704
1
sum()
704
1
system-property()
704
1
translate()
704
1
true()
705
1
unparsed-entity-uri()
705
2
Appendix B: XSLT Quick Reference
707
20
XSLT Elements
707
16
xsl:apply-imports
707
1
xsl:apply-templates
708
1
xsl:attribute
708
1
xsl:attribute-set
709
1
xsl:call-template
709
1
xsl:choose
710
1
xsl:comment
710
1
xsl:copy
710
1
xsl:copy-of
711
1
xsl:decimal-format
711
1
xsl:element
712
1
xsl:fallback
713
1
xsl:for-each
713
1
xsl:if
713
1
xsl:import
713
1
xsl:include
714
1
xsl:key
714
1
xsl:message
715
1
xsl:namespace-alias
715
1
xsl:number
715
1
xsl:otherwise
716
1
xsl:output
717
1
xsl:param
717
1
xsl:preserve-space
718
1
xsl:processing-instruction
718
1
xsl:sort
718
1
xsl:strip-space
719
1
xsl:stylesheet
719
1
xsl:template
720
1
xsl:text
720
1
xsl:transform
721
1
xsl:value-of
721
1
xsl:variable
722
1
xsl:when
722
1
xsl:with-param
722
1
XSLT Attributes
723
4
xsl:extension-element-prefixes
723
1
xsl:exclude-result-prefixes
723
1
xsl:use-attribute-sets
724
1
xsl:version
724
3
Appendix C: Tools
727
12
XSLT Processors
727
2
Saxon
727
1
Xalan-J
727
1
MSXML
728
1
Other XSLT Processors
728
1
XSLT Editors
729
4
Extensions to Other Editors
729
1
Visual XSLT
729
1
XSLAtHome
729
1
XSlide
729
1
XSLT-Process
730
1
Mapping Tools
730
1
CapeStudio
730
1
Whitehill <xsl>Composer
730
1
XMapper
730
1
XSLWiz
730
1
XSLerator
730
1
Basic Editors
731
1
XFinity Designer
731
1
XL-Styler
731
1
XTrans
731
1
Integrated Development Environments
731
1
Cooktop
731
1
Komodo
731
1
MarrowSoft Xselerator
732
1
Stylus Studio
732
1
XMLOrigin
732
1
XML Spy
733
1
XSLT Support Tools
733
2
XPath Constructors
733
1
XPath 1.0: Interactive Expression Builder
733
1
XPath Tester
733
1
XPath Visualizer
733
1
XSLT Debuggers
733
1
XSLDebugger
733
1
XSL Trace
734
1
Zvon XSL Tracer
734
1
XSLT Profilers
734
1
CatchXSL
734
1
XSL Lint
734
1
XSLT Test Tool
734
1
XSLTMark
734
1
XSLTUnit
735
1
Documentation Generation
735
1
XSLDoc
735
1
XSLTDoc
735
1
XSLTDoc
735
1
XSLT-Enabled Browsers
735
1
Antenna House XSL Formatter
735
1
Internet Explorer
735
1
Mozilla
736
1
Netscape
736
1
XSmiles
736
1
Server-Side Support
736
3
AxKit
736
1
Cocoon
736
1
UWOBO
737
1
XSQL
737
2
Index
739
1
A Guide to the Index
739
<