Wiley.com
Print this page Share

XSLT 2.0 and XPath 2.0 Programmer's Reference, 4th Edition

ISBN: 978-0-470-19274-0
Hardcover
1368 pages
May 2008
List Price: US $75.00
Government Price: US $48.00
Enter Quantity:   Buy
XSLT 2.0 and XPath 2.0 Programmer's Reference, 4th Edition (0470192747) cover image
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

Related Titles

More By This Author

General Programming & Software Development

by Michael Rosen, Boris Lublinsky, Kevin T. Smith, Marc J. Balcer
by Joezer Cookey-Gam, Brendan Keane, Jeffrey Rosen, Jonathan Runyon, Joel Stidley
by Nick Randolph, David Gardner
by Karama Kanoun, Lisa Spainhower
Back to Top