XSLT 2.0 and XPath 2.0 Programmer's Reference, 4th EditionISBN: 978-0-470-19274-0
Hardcover
1368 pages
May 2008
This is a Print-on-Demand title. It will be printed specifically to fill your order. Please allow an additional 15-20 days delivery time. The book is not returnable.
|
Introduction xxix
List of Examples xxxix
Part I: Foundations
Chapter 1: XSLT in Context 3
What Is XSLT? 3
How Does XSLT Transform XML? 7
The Place of XSLT in the XML Family 21
The History of XSL 26
XSLT 2.0 as a Language 33
Summary 40
Chapter 2: The XSLT Processing Model 41
XSLT: A System Overview 41
The XDM Tree Model 45
The Transformation Process 67
Error Handling 80
Variables and Expressions 80
Summary 88
Chapter 3: Stylesheet Structure 89
Changes in XSLT 2.0 90
The Modular Structure of a Stylesheet 90
The <xsl:stylesheet>Element 98
The <?xml-stylesheet?>Processing Instruction 99
Embedded Stylesheets 102
Declarations 104
Instructions 108
Simplified Stylesheets 125
Writing Portable Stylesheets 127
Whitespace 141
Summary 148
Chapter 4: Stylesheets and Schemas 151
XML Schema: An Overview 151
Declaring Types in XSLT 161
Validating the Source Document 165
Validating the Result Document 170
Validating a Temporary Document 174
Validating Individual Elements 176
Validating Individual Attributes 179
The default-validation Attribute 180
Importing Schemas 180
Using xsi:type 181
Nillability 182
Summary 183
Chapter 5: Types 185
What Is a Type System? 185
Changes in 2.0 186
Sequences 187
Atomic Values 189
Atomic Types 191
Schema Types and XPath Types 217
The Type Matching Rules 219
Static and Dynamic Type Checking 221
Summary 224
Part II: XSLT and XPath Reference
Chapter 6: XSLT Elements 227
xsl:analyze-string 230
xsl:apply-imports 237
xsl:apply-templates 240
xsl:attribute 254
xsl:attribute-set 266
xsl:call-template 271
xsl:character-map 280
xsl:choose 282
xsl:comment 285
xsl:copy 287
xsl:copy-of 292
xsl:decimal-format 298
xsl:document 303
xsl:element 306
xsl:fallback 316
xsl:for-each 322
xsl:for-each-group 326
xsl:function 344
xsl:if 353
xsl:import 357
xsl:import-schema 368
xsl:include 372
xsl:key 376
xsl:matching-substring 386
xsl:message 386
xsl:namespace 390
xsl:namespace-alias 394
xsl:next-match 399
xsl:non-matching-substring 402
xsl:number 403
xsl:otherwise 420
xsl:output 420
xsl:output-character 424
xsl:param 425
xsl:perform-sort 437
xsl:preserve-space 439
xsl:processing-instruction 442
xsl:result-document 445
xsl:sequence 452
xsl:sort 455
xsl:strip-space 465
xsl:stylesheet 465
xsl:template 483
xsl:text 492
xsl:transform 495
xsl:value-of 495
xsl:variable 500
xsl:when 515
xsl:with-param 517
Summary 519
Chapter 7: XPath Fundamentals 521
Notation 522
Where to Start 523
Expressions. 524
Lexical Constructs 527
Primary Expressions 539
Variable References 540
Parenthesized Expressions 542
Context Item Expressions 543
Function Calls 544
Conditional Expressions 551
Changes in XPath 2.0 552
Examples 553
The XPath Evaluation Context 553
Summary 568
Chapter 8: XPath: Operators on Items 571
Arithmetic Operators 571
Value Comparisons 581
General Comparisons 588
Node Comparisons 593
Boolean Expressions 594
Summary 596
Chapter 9: XPath: Path Expressions 599
Examples of Path Expressions 600
Changes in XPath 2.0 601
Document Order and Duplicates 602
The Binary «⁄» Operator 602
Axis Steps 606
Rooted Path Expressions 625
The «⁄ ⁄» Abbreviation 626
Combining Sets of Nodes 628
Summary 632
Chapter 10: XPath: Sequence Expressions 633
The Comma Operator 634
Numeric Ranges: The «to» Operator 636
Filter Expressions 638
The «for» Expression 640
Simple Mapping Expressions 644
The «some» and «every» Expressions 646
Summary 651
Chapter 11: XPath: Type Expressions 653
Converting Atomic Values 654
Sequence Type Descriptors 668
The «instance of» Operator 677
The «treatas» Operator 678
Summary 680
Chapter 12: XSLT Patterns 681
Patterns and Expressions 681
Changes in XSLT 2.0 682
The Formal Definition 683
An Informal Definition 685
Conflict Resolution 686
Matching Parentless Nodes 688
The Syntax of Patterns 689
Summary 708
Chapter 13: The Function Library 709
A Word about Naming 710
Functions by Category 710
Notation 712
Code Samples 714
Function Definitions 714
Summary 913
Chapter 14: Regular Expressions 915
Branches and Pieces 916
Quantifiers 916
Atoms 917
Subexpressions 918
Back-References 918
Character Groups 919
Character Ranges 919
Character Class Escapes 920
Character Blocks 922
Character Categories 924
Flags 925
Disallowed Constructs 927
Summary 927
Chapter 15: Serialization 929
The XML Output Method 929
The HTML Output Method 936
The XHTML Output Method 939
The Text Output Method 940
Using the <xsl:output> declaration 940
Character Maps 941
Disable Output Escaping 945
Summary 949
Part III: Exploitation
Chapter 16: Extensibility 953
What Vendor Extensions Are Allowed? 954
Extension Functions 955
Keeping Extensions Portable 970
Summary 971
Chapter 17: Stylesheet Design Patterns 973
Fill-in-the-Blanks Stylesheets 973
Navigational Stylesheets 976
Rule-Based Stylesheets 980
Computational Stylesheets 985
Summary 1000
Chapter 18: Case Study: XML Spec 1001
Formatting the XML Specification 1002
Preface 1004
Creating the HTML Outline 1008
Formatting the Document Header 1012
Creating the Table of Contents 1019
Creating Section Headers 1023
Formatting the Text 1024
Producing Lists 1028
Making Cross-References 1029
Setting Out the Production Rules 1033
Overlay Stylesheets 1041
Stylesheets for Other Specifications 1044
Summary 1047
Chapter 19: Case Study: A Family Tree 1049
Modeling a Family Tree 1050
Creating a Data File 1058
Displaying the Family Tree Data 1072
Summary 1098
Chapter 20: Case Study: Knight’s Tour 1099
The Problem 1099
The Algorithm 1100
Placing the Knight 1104
Displaying the Final Board 1105
Finding the Route 1106
Running the Stylesheet 1112
Observations 1112
Summary 1113
Part IV: Appendices
Appendix A: XPath 2.0 Syntax Summary 1117
Whitespace and Comments 1118
Tokens 1118
Syntax Productions 1119
Operator Precedence 1122
Appendix B: Error Codes 1123
Functions and Operators (FO) 1124
XPath Errors (XP) 1126
XSLT Errors (XT) 1127
Appendix C: Backward Compatibility 1139
Stage 1: Backward-compatibility Mode 1140
Stage 2: Setting version=‘‘2.0’’ 1142
Stage 3: Adding a Schema 1145
Summary 1145
Appendix D: Microsoft XSLT Processors 1147
MSXML 1147
System.Xml 1158
Summary 1161
Appendix E: JAXP: The Java API for Transformation 1163
The JAXP Parser API 1164
The JAXP Transformation API 1169
Examples of JAXP Transformations 1187
Summary 1193
Appendix F: Saxon 1195
Using Saxon from the Command Line 1196
Using Saxon from a Java Application 1199
Using Saxon from a NET Application 1203
Saxon Tree Models 1205
Extensibility 1205
Extensions 1208
The evaluate() Extension 1210
Summary 1214
Appendix G: Altova 1215
Running from within XMLSpy 1215
Conformance 1216
Extensions and Extensibility 1217
The Command Line Interface 1217
Using the API 1218
Summary 1220
Appendix H: Glossary 1221
Index 1233