XQuery: The XML Query LanguageAddison-Wesley Professional, 2004 - Broj stranica: 505 "An excellent, early look at the emerging XML Query standard. The chapters on surprises and gotchas alone are worth the price of admission!" --Ashok Malhotra, Architect, Microsoft"XQuery is the most important XML standard to emerge in recent years, and is a language with which anyone using XML on a regular basis should become acquainted. Michael Brundage''s accessible introduction to XQuery provides enough information on all aspects of the standard, including its dark corners, to allow any XML developer to jump right in and start coding." --Damien Fisher, Kernel Team Member, Soda Technologies Pty Ltd"This book does an excellent job of distilling the essentials of XQuery in an understandable, straightforward and easily digestable manner. This book has already become an indispensible part of my library and is a welcome addition to my XML repertoire." --Dare Obasanjo, Program Manager, Microsoft Corporation"Simply put, the emerging XQuery standard adds enormous value to XML data and this book is your key to unlocking that value. Here in one stop you will find an accessible introduction to XQuery and a complete reference. Practitioners will particularly value the sections on XQuery idioms and surprises where Michael shares his tricks of the trade." --Dave Van Buren, Project Manager, Jet Propulsion Laboratory"It''s both a stupendous reference on XQuery and a good read. Michael writes with verve, authority, and an eminently readable style. What a rare delight to discover all this, and in a technical book too! When the sequel comes along, sign me up." --Howard Katz, Owner, Fatdog Software Inc., Editor, XQuery from the Experts (Addison-Wesley, 2003)From corporate IT departments to academic institutions, XML has become the language of choice for storing and transmitting data across diverse application domains. XQuery, an XML Query Language invented by the World Wide Web Consortium, offers a powerful, standardized way to query all of that XML-encapsulated information. With its ability to integrate XML and non-XML data, XQuery seems poised to do for XML what SQL has done for relational data. Written by the Technical Lead for XML query processing at Microsoft, XQuery: The XML Query Language is an invaluable resource for XQuery novices and experts alike. For those new to XQuery, this example-rich text serves as a tutorial that brings readers quickly up to speed on XQuery''s data model, type system, and core language features. More experienced XML and database developers will find an excellent reference on the nuances of various expressions, as well as a guide to using XQuery to accomplish specific tasks. Drawing on his experiences using XQuery, Michael Brundage offers an objective, inside look at this emerging technology. His unique perspective translates into an accessible and authoritative guide for readers using XML for documents, Web services, or databases. Key coverage includes:
The appendixes provide in-depth information on XQuery''s type system, core expressions, built-in functions, regular expressions, and grammar. Meanwhile, the companion Web site offers downloadable source code for all of the examples in the book, the latest on the XQuery standard, answers to readers'' questions, XQuery tips and strategies, and more. XQuery will show developers, programmers, and database administrators how a single line of this deep and powerful new language can accomplish the equivalent of hundreds of lines written in C, C#, Java, and other general-purpose programming languages. |
Sadržaj
A Tour of XQuery | 3 |
13 Notational Conventions | 4 |
14 WhyXQuery? | 5 |
142 XQuery Versus XPath XSLT and SQL | 6 |
15 Documents and Databases | 9 |
16 Typed and Untyped Data | 10 |
162 The Types You Need | 11 |
163 The Types You Dont Need | 13 |
68 Conclusion | 152 |
Constructing XML | 153 |
721 Direct Element Constructor | 154 |
73 Attribute Nodes | 155 |
732 Computed Attribute Constructors | 156 |
74 Text Nodes | 157 |
75 Document Nodes | 158 |
76 Comment Nodes | 159 |
17 A Sample Query | 14 |
18 Processing Model | 15 |
110 Prolog | 16 |
111 Constants | 17 |
1112 String Constants | 18 |
1114 Other Constants | 19 |
113 Builtin Functions | 22 |
114 Operators | 23 |
1141 Logic Operators | 24 |
1142 Arithmetic Operators | 25 |
1144 Comparison Operators | 27 |
115 Paths | 28 |
116 Variables | 30 |
117 FLWOR | 31 |
118 Error Handling | 33 |
119 Conclusion | 34 |
Data Model and Type System | 35 |
221 Two Examples | 36 |
222 The Document Object Model DOM | 37 |
223 The XPath 10 Data Model | 38 |
225 The PostSchemaValidation Infoset PSVI | 39 |
226 The XQuery Data Model | 40 |
232 Atomic Values | 41 |
24 Atomic Types | 42 |
243 Numeric Types | 43 |
244 String Types | 46 |
246 Qualified Name Type | 50 |
247 Other Types | 51 |
251 Kind Identity and Order | 52 |
252 Hierarchy | 53 |
253 Node Name | 54 |
254 Node Type and Values | 55 |
255 Other Node Properties | 56 |
261 Atomization | 57 |
263 Sequence Type Matching | 58 |
264 Subtype Substitution | 59 |
27 Conclusion | 60 |
28 Further Reading | 61 |
Navigation | 63 |
321 Beginnings | 64 |
322 Axes | 65 |
323 Node Tests | 66 |
324 Other Axes | 68 |
325 Predicates | 69 |
33 Navigation Functions | 71 |
34 Navigation Context | 72 |
343 Variable Declarations | 74 |
345 Function Declarations | 75 |
36 Navigation Complexities | 81 |
362 Node Identity | 84 |
363 Other Context Information | 85 |
38 Further Reading | 86 |
Functions and Modules | 87 |
43 Function Invocation | 88 |
44 Function Conversion Rules | 89 |
45 UserDefined Functions | 90 |
46 Recursion | 92 |
47 External Functions | 93 |
49 Conclusion | 94 |
Basic Expressions | 97 |
52 Comparisons | 98 |
522 General Comparisons | 100 |
523 Node Comparisons | 103 |
524 Sequence and Tree Comparisons | 104 |
53 Sequences | 105 |
532 Processing Sequences | 108 |
54 Arithmetic | 110 |
55 Logic | 115 |
56 Query Prolog | 117 |
564 Default Collation Declaration | 119 |
566 Global Variable Declarations | 121 |
568 Schema Imports and Validation Declaration | 122 |
57 Conclusion | 123 |
58 Further Reading | 124 |
Iteration | 125 |
621 Compared to SQL | 126 |
622 Compared to XSLT | 127 |
623 Introducing Variables | 128 |
624 Tuples | 129 |
63 Quantification | 133 |
64 Joins | 134 |
65 Comparing Sequences | 142 |
652 Memberwise Comparison | 143 |
653 Universal Comparison | 145 |
66 Sorting | 146 |
67 Grouping | 149 |
77 Processing Instruction Nodes | 160 |
79 Composition | 161 |
710 Validation | 163 |
7112 Whitespace | 164 |
7113 Content Sequence | 166 |
712 Conclusion | 168 |
Text Processing | 169 |
822 Code Points | 170 |
823 Normalization | 171 |
83 Character Encodings | 172 |
84 Collations | 174 |
85 Text Operators | 175 |
88 Further Reading | 177 |
Type Operators | 179 |
92 Cast and Castable | 180 |
93 Type Conversion Rules | 181 |
931 Converting Up and Down the Type Hierarchy | 182 |
94 treat as | 186 |
95 instance of and typeswitch | 187 |
96 UserDefined Types | 188 |
961 Schema Imports | 189 |
963 Validation | 190 |
97 Conclusion | 192 |
Practical Examples | 195 |
1022 Spaces | 196 |
1023 Braces | 198 |
1024 Slice | 199 |
103 Idioms | 200 |
1032 Navigation Idioms | 203 |
1033 Sequence Idioms | 209 |
1034 Type Idioms | 212 |
1035 Logic Idioms | 215 |
1036 Arithmetic Idioms | 217 |
104 Conclusion | 224 |
105 Further Reading | 225 |
Surprises | 227 |
1122 Predicates Index Sequences Not Strings | 228 |
1124 Arithmetic Isnt Associative | 229 |
1125 Predicates + Abbreviated Axes Confusion | 230 |
1127 No SubTree Pruning | 231 |
1128 Type Conversions | 232 |
1129 Whats in a Name? | 233 |
11210 FLWOR Doesnt Move the Current Context | 234 |
11211 Nested FLWOR Is Different | 235 |
113 Confusion over Syntax | 237 |
1131 Punctuation Is Tricky | 238 |
1134 Wacky Paths | 239 |
XQuery Serialization | 241 |
1221 Sequences of Values | 242 |
1223 Serialization Parameters | 243 |
124 Conclusion | 244 |
Query Optimization | 245 |
1322 Early Evaluation | 246 |
1332 Sequence Order | 247 |
1333 Error Preservation | 249 |
134 Formal Semantics | 250 |
Beyond the Standard | 251 |
1421 Namespaces | 252 |
1424 Simplify Simplify | 253 |
1425 Builtin Functions | 254 |
1432 Tomorrow | 255 |
145 Data Manipulation | 256 |
1452 SiXDML | 257 |
1453 XUpdate | 258 |
147 Performance Benchmarks | 259 |
149 Further Reading | 260 |
Data Model and Type System Reference | 263 |
A3 Node Kinds | 266 |
A4 Atomic Types | 268 |
A5 Primitive Type Conversions | 271 |
A6 Builtin Atomic Types | 274 |
Expression Reference | 305 |
Function Reference | 391 |
Regular Expressions | 455 |
D3 Advanced Regexps | 459 |
D4 Regexp Language | 460 |
D5 Character Properties | 461 |
Grammar | 463 |
E3 Reserved Keywords | 469 |
E4 Operator Precedence | 470 |
Standards | 473 |
Working Drafts and Notes | 474 |
Further Reading 475 | 475 |
479 | |