rent-now

Rent More, Save More! Use code: ECRENTAL

5% off 1 book, 7% off 2 books, 10% off 3+ books

9780764569104

XPathTM 2.0 Programmer's Reference

by
  • ISBN13:

    9780764569104

  • ISBN10:

    0764569104

  • 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: $34.99

Summary

What is this book about?XPath 2.0 Programmer's Reference is the only authoritative reference on XPath, a sub-language within XSLT that determines which part of an XML document the XSLT transforms. Written for professional programmers who use XML every day but find the W3C XPath specifications tough to slog through, this book explains in everyday language what every construct in the language does and how to use it. It also offers background material on the design thinking behind the language, gentle criticism of the language specification when appropriate, and a diverse range of interesting examples in various 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, and is a joint editor of the XPath 2.0 specification. 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, 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 xiv
Introduction xvi
Chapter 1: XPath 2.0 in Context 1(26)
What Is XPath?
1(14)
Path Expressions
3(1)
Composability
4(1)
What's New in XPath 2.0?
4(5)
XPath 2.0 Processors
9(6)
Where XPath fits in the XML Family
15(7)
XPath and XSLT
15(1)
XPath and the InfoSet
16(1)
XML Namespaces
17(1)
XPath and XPointer
18(1)
XPath and XQuery
19(1)
XPath and XML Schemas
20(1)
XPath, the DOM, and Java
21(1)
XPath 2.0 as a Language
22(4)
The Syntax of XPath
22(1)
An Embedded Language
23(1)
A Language for Processing Sequences
24(1)
Types Based on XML Schema
25(1)
Summary
26(1)
Chapter 2: The Data Model 27(34)
Changes in 2.0
27(1)
Sequences
28(2)
Atomic Values
30(3)
Nodes and Trees
33(27)
XML as a Tree
33(12)
Completing the UML Class Diagram
45(1)
Names and Namespaces
45(5)
IDs
50(2)
Characters in the Data Model
52(1)
What Does the Tree Leave Out?
53(3)
From Textual XML to a Data Model
56(1)
Controlling Serialization
57(2)
Document Order
59(1)
Summary
60(1)
Chapter 3: The Type System 61(54)
What Is a Type System?
61(2)
XML Schema: An Overview
63(13)
Simple Type Definitions
63(2)
Elements with Attributes and Simple Content
65(1)
Elements with Mixed Content
66(1)
Elements with Element-Only Content
67(2)
Defining a Type Hierarchy
69(4)
Substitution Groups
73(3)
Atomic Types
76(29)
The Major Atomic Types
78(15)
The Minor Atomic Types
93(4)
Derived Numeric Types
97(3)
Derived String Types
100(3)
Untyped Atomic Values
103(1)
NMTOKENS, IDREFS, and ENTITIES
104(1)
Schema Types and XPath Types
105(2)
The Type Matching Rules
107(2)
Static and Dynamic Type Checking
109(4)
Summary
113(2)
Chapter 4: The Evaluation Context 115(18)
The Static Context
115(11)
XPath 1.0 Compatibility Mode
116(1)
In-Scope Namespaces
117(1)
Default Namespaces
118(1)
In-Scope Schema Definitions
119(2)
In-Scope Variables
121(1)
In-Scope Functions
122(1)
Collations
123(2)
Base URI
125(1)
Statically Known Documents and Collections
125(1)
The Dynamic Context
126(6)
The Focus
126(3)
Dynamic Variables
129(1)
Function Implementations
129(1)
Current Date and Time
129(1)
Implicit Timezone
130(1)
Available Documents and Collections
131(1)
Summary
132(1)
Chapter 5: Basic Constructs 133(36)
Notation
134(2)
Where to Start
136(1)
Expressions
136(4)
Examples
139(1)
Lexical Constructs
140(12)
Comments
141(1)
Numeric Literals
142(2)
String Literals
144(2)
Names
146(4)
Operators
150(2)
Primary Expressions
152(1)
Examples
153(1)
Variable References
153(2)
Usage
153(2)
Examples
155(1)
Parenthesized Expressions
155(1)
Changes in XPath 2.0
156(1)
Context Item Expressions
156(2)
Changes in XPath 2.0
157(1)
Usage
157(1)
Function Calls
158(7)
Identifying the Function to be Called
159(1)
Converting the Arguments and the Result
160(2)
Changes in XPath 2.0
162(1)
Side Effects
163(1)
Examples
164(1)
Conditional Expressions
165(2)
Changes in XPath 2.0
166(1)
Examples
167(1)
Summary
167(2)
Chapter 6: Operators on Items 169(32)
Arithmetic Operators
169(12)
Syntax
170(1)
Type Promotion
170(1)
Changes in XPath 2.0
171(1)
Effect
172(1)
Arithmetic Using Numbers
173(2)
Examples of Numeric Arithmetic
175(1)
Arithmetic Using Durations
176(5)
Value Comparisons
181(7)
Permitted Operand Types
182(4)
Type Checking for Value Comparisons
186(2)
Examples of Value Comparisons
188(1)
General Comparisons
188(8)
Changes in XPath 2.0
189(1)
Rules for General Comparisons
190(1)
Comparing Sequences
191(4)
Examples of General Comparisons
195(1)
Node Comparisons
196(2)
The [[is]] Operator 196
The operators «[[» and «>>» 197
Changes in XPath 2.0
198(1)
Boolean Expressions
198(2)
Examples
199(1)
Summary
200(1)
Chapter 7: Path Expressions 201(38)
Examples of Path Expressions
201(2)
Changes in XPath 2.0
203(1)
Full Path Expressions
204(7)
Syntax
204(2)
The Root Expression [[/]] 205
Absolute Paths
206(2)
Relative Paths
208(3)
Steps
211(15)
Syntax of Steps
212(3)
Axes
215(5)
Node Tests
220(1)
Name Tests
221(3)
Kind Tests
224(2)
Abbreviations
226(4)
Defaulting the Axis Name in a Step
226(4)
The [[@» Abbreviation 227
The [[..]] Abbreviation 227
The [[//» Abbreviation 228
Predicates
230(4)
Combining Sets of Nodes
234(3)
Syntax
235(1)
Examples
236(1)
Usage
236(1)
Set Intersection and Difference in XPath 1.0
237(1)
Summary
237(2)
Chapter 8: Sequence Expressions 239(22)
The Comma Operator
240(3)
Examples
242(1)
Numeric Ranges: The [[to]] Operator 242
Examples
243(1)
Filter Expressions
244(4)
Examples
246(2)
The [[for]] Expression 247
Mapping a Sequence
248(1)
Examples
249(1)
For Expressions and Path Expressions
249(1)
Combining Multiple Sequences
250(1)
Example
251(1)
Examples in XMLSpy
252(5)
The [[some]] and [[every]] Expressions 254
Examples
257(2)
Quantification and the [[=]] Operator 257
Errors in [[some]] and [[every]] Expressions 258
Summary
259(2)
Chapter 9: Type Expressions 261(30)
Converting Atomic Values
262(15)
Converting between Primitive Types
264(12)
Converting between Derived Types
276(1)
Sequence Type Descriptors
277(13)
Atomic Types
278(1)
Matching Nodes
279(2)
Matching Elements and Attributes
281(9)
The [[instance of ]] operator 287
The [[treat as]] Operator 288
Summary
290(1)
Chapter 10: XPath Functions 291(156)
A Word about Naming
292(1)
Functions by Category
292(2)
Boolean Functions
292(1)
Numeric Functions
292(1)
String Functions
292(1)
Date and Time Functions
293(1)
Duration Functions
293(1)
Aggregation Functions
293(1)
Functions on URIs
293(1)
Functions on QNames
293(1)
Functions on Sequences
293(1)
Functions that Return Properties of Nodes
293(1)
Functions that Find Nodes
294(1)
Functions that Return Context Information
294(1)
Diagnostic Functions
294(1)
Functions that Assert a Static Type
294(1)
Notation
294(2)
Function Definitions
296(149)
abs
296(1)
adjust-date-to-timezone, adjust-dateTime-to-timezone, adjust-time-to-timezone
297(4)
avg
301(1)
base-uri
302(2)
boolean
304(2)
ceiling
306(2)
code points-to-string
308(1)
collection
309(1)
compare
310(2)
concat
312(2)
contains
314(2)
count
316(2)
current-date, current-dateTime, current-time
318(2)
data
320(2)
day-from-date, day-from-dateTime
322(1)
days-from-duration
323(1)
deep-equal
323(3)
default-collation
326(1)
distinct-values
327(2)
doc
329(3)
document-uri
332(1)
empty
333(1)
ends-with
334(2)
error
336(1)
escape-uri
337(3)
exactly-one
340(1)
exists
341(1)
expanded-QName
342(1)
false
343(1)
floor
344(2)
hours-from-dateTime, hours-from-time
346(1)
hours-from-duration
347(1)
id
347(3)
idref
350(2)
implicit-timezone
352(1)
index-of
353(1)
in-scope-prefixes
354(2)
insert-before
356(1)
lang
357(2)
last
359(4)
local-name
363(2)
local-name-from-QName
365(1)
lower-case
366(2)
matches
368(2)
max
370(1)
min
371(2)
minutes-from-dateTime, minutes-from-time
373(1)
minutes-from-duration
374(1)
month-from-date, month-from-dateTime
374(1)
months-from-duration
375(1)
name
376(3)
namespace-uri
379(2)
namespace-uri-for-prefix
381(1)
namespace-uri-from-QName
382(1)
pilled
383(1)
node-name
384(2)
normalize-space
386(2)
normalize-unicode
388(3)
not
391(2)
number
393(2)
one-or-more
395(1)
position
396(3)
remove
399(1)
replace
400(3)
resolve-QName
403(2)
resolve-uri
405(3)
reverse
408(1)
root
408(1)
round
409(2)
round-half-to-even
411(2)
seconds-from-dateTime, seconds-from-time
413(1)
seconds-from-duration
414(1)
starts-with
415(1)
string
416(2)
string-join
418(1)
string-length
419(2)
string-to-codepoints
421(1)
subsequence
422(1)
substring
423(2)
substring-after
425(2)
substring-before
427(2)
subtract-dates, subtract-dateTimes
429(2)
sum
431(2)
timezone-from-date, timezone-from-dateTime, timezone-from-time
433(1)
tokenize
434(2)
trace
436(1)
translate
437(2)
true
439(1)
unordered
440(2)
upper-case
442(1)
year-from-date, year-from-dateTime
443(1)
years-from-duration
443(1)
zero-or-one
444(1)
Summary
445(2)
Chapter 11: Regular Expressions 447(12)
Branches and Pieces
448(1)
Quantifiers
448(1)
Atoms
449(1)
Character Groups
450(1)
Character Ranges
450(1)
Character Class Escapes
451(2)
Character Blocks
453(2)
Character Categories
455(2)
Disallowed Constructs
457(1)
Summary
457(2)
Appendix A: XPath 2.0 Syntax Summary 459(8)
Appendix B: Operator Precedence 467(2)
Appendix C: Compatibility with XPath 1.0 469(6)
Appendix D: Error Codes 475(12)
Glossary 487(18)
Index 505

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