Description

Book Synopsis
This book is primarily a practical reference book for professional XSLT developers. It assumes no previous knowledge of the language, and many developers have used it as their first introduction to XSLT; however, it is not structured as a tutorial, and there are other books on XSLT that provide a gentler approach for beginners.

Table of Contents

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 Element 98

The 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

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 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: XMLSpec 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

Collations 1207

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

XSLT 2.0 and XPath 2.0 Programmers Reference

    Product form

    £54.62

    Includes FREE delivery

    RRP £57.50 – you save £2.88 (5%)

    Order before 4pm today for delivery by Sat 4 Jul 2026.

    A Hardback by Michael Kay

    4 in stock

      Trusted by thousands of customers. See 2,385+ Customer Reviews

      View other formats and editions of XSLT 2.0 and XPath 2.0 Programmers Reference by Michael Kay

      Publisher: John Wiley & Sons Inc
      Publication Date: 03/06/2008
      ISBN13: 9780470192740, 978-0470192740
      ISBN10: 0470192747

      Description

      Book Synopsis
      This book is primarily a practical reference book for professional XSLT developers. It assumes no previous knowledge of the language, and many developers have used it as their first introduction to XSLT; however, it is not structured as a tutorial, and there are other books on XSLT that provide a gentler approach for beginners.

      Table of Contents

      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 Element 98

      The 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

      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 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: XMLSpec 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

      Collations 1207

      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

      Recently viewed products

      © 2026 Book Curl

        • American Express
        • Apple Pay
        • Diners Club
        • Discover
        • Google Pay
        • Maestro
        • Mastercard
        • PayPal
        • Shop Pay
        • Union Pay
        • Visa

        Login

        Forgot your password?

        Don't have an account yet?
        Create account