| Introduction |
|
xvii | |
|
|
|
1 | (28) |
|
|
|
2 | (1) |
|
|
|
3 | (1) |
|
|
|
3 | (1) |
|
Creating and Displaying a Simple XML Document |
|
|
4 | (7) |
|
Embedding XML in HTML Pages (Data Islands) |
|
|
7 | (4) |
|
Introducing the XML Document Object Model |
|
|
11 | (1) |
|
XML Browsers and Different Internet Browsers |
|
|
12 | (1) |
|
The Document Type Definition |
|
|
12 | (5) |
|
|
|
17 | (10) |
|
|
|
17 | (2) |
|
|
|
19 | (5) |
|
Reserved Characters in XML |
|
|
24 | (1) |
|
Ignoring the XML Parser with CDATA |
|
|
24 | (1) |
|
|
|
24 | (2) |
|
|
|
26 | (1) |
|
|
|
27 | (1) |
|
|
|
27 | (2) |
|
The XML Document Object Model |
|
|
29 | (28) |
|
|
|
30 | (2) |
|
The Primary XML DOM Classes |
|
|
32 | (15) |
|
|
|
33 | (1) |
|
|
|
34 | (1) |
|
|
|
35 | (3) |
|
|
|
38 | (4) |
|
|
|
42 | (2) |
|
|
|
44 | (1) |
|
|
|
45 | (2) |
|
More Obscure XML DOM Classes |
|
|
47 | (5) |
|
|
|
47 | (3) |
|
|
|
50 | (2) |
|
|
|
52 | (1) |
|
|
|
52 | (2) |
|
|
|
54 | (1) |
|
|
|
54 | (3) |
|
Extending the Power of XML with XSL |
|
|
57 | (30) |
|
|
|
57 | (2) |
|
|
|
58 | (1) |
|
Basic XSL Elements Syntax |
|
|
59 | (17) |
|
Processing Instruction Elements |
|
|
60 | (1) |
|
xsl:processing-instruction |
|
|
60 | (1) |
|
|
|
60 | (1) |
|
|
|
61 | (1) |
|
|
|
61 | (1) |
|
|
|
61 | (1) |
|
|
|
61 | (3) |
|
|
|
64 | (2) |
|
|
|
66 | (1) |
|
|
|
66 | (1) |
|
|
|
66 | (1) |
|
|
|
67 | (1) |
|
|
|
67 | (1) |
|
|
|
68 | (1) |
|
|
|
69 | (1) |
|
|
|
69 | (1) |
|
|
|
70 | (1) |
|
|
|
70 | (1) |
|
Control Structure Elements |
|
|
70 | (1) |
|
|
|
70 | (1) |
|
|
|
71 | (1) |
|
xsl:choose, xsl:when and xsl:otherwise |
|
|
72 | (2) |
|
|
|
74 | (1) |
|
|
|
75 | (1) |
|
|
|
75 | (1) |
|
|
|
76 | (6) |
|
|
|
76 | (1) |
|
|
|
77 | (4) |
|
|
|
81 | (1) |
|
XSL Pattern Matching Syntax |
|
|
81 | (1) |
|
Combining the XML DOM and XSL |
|
|
82 | (2) |
|
|
|
84 | (1) |
|
|
|
85 | (2) |
|
Relational Database Tables and XML |
|
|
87 | (44) |
|
Using SQL for Database Access |
|
|
88 | (34) |
|
|
|
89 | (1) |
|
|
|
89 | (3) |
|
|
|
92 | (8) |
|
|
|
100 | (2) |
|
|
|
102 | (2) |
|
|
|
104 | (6) |
|
|
|
110 | (5) |
|
|
|
115 | (4) |
|
Changing Data in a Database |
|
|
119 | (1) |
|
Subqueries in Database Change Statements |
|
|
120 | (1) |
|
|
|
121 | (1) |
|
Changing Database Objects |
|
|
121 | (1) |
|
Generating XML Pages Using Basic SQL |
|
|
122 | (6) |
|
|
|
128 | (1) |
|
|
|
129 | (2) |
|
|
|
131 | (34) |
|
The Oracle XMLType Data Type |
|
|
131 | (3) |
|
Oracle XMLType Data Type Methods |
|
|
132 | (2) |
|
Implementing XML in an Oracle Database |
|
|
134 | (19) |
|
Creating XML Documents from an Oracle Database |
|
|
134 | (1) |
|
|
|
135 | (11) |
|
|
|
146 | (5) |
|
|
|
151 | (2) |
|
|
|
153 | (8) |
|
|
|
153 | (1) |
|
Retrieving from XML Documents |
|
|
154 | (1) |
|
Using XMLType Methods to Read XML Documents |
|
|
155 | (4) |
|
Changing and Removing XML Document Content |
|
|
159 | (2) |
|
|
|
161 | (1) |
|
|
|
162 | (3) |
|
|
|
165 | (40) |
|
The SQL Server XML Data Type |
|
|
166 | (3) |
|
SQL Server XML Data Type Methods |
|
|
168 | (1) |
|
Generating XML: The FOR XML Clause |
|
|
169 | (14) |
|
|
|
170 | (4) |
|
|
|
174 | (5) |
|
|
|
179 | (2) |
|
|
|
181 | (2) |
|
Generating Tuples from XML: OPENXML |
|
|
183 | (2) |
|
Working with XML Data Types |
|
|
185 | (6) |
|
Adding XML Documents to SQL Server |
|
|
185 | (1) |
|
Retrieving and Modifying XML Data Types |
|
|
186 | (5) |
|
Defining XML Content with XSD Schemas |
|
|
191 | (8) |
|
Strongly Typing XML Documents with XSD |
|
|
191 | (1) |
|
Mapping an XSD Schema to a Table |
|
|
192 | (1) |
|
Annotating the XSD Script to Enforce Relationships |
|
|
193 | (2) |
|
Storing XSD as a Schema Collection |
|
|
195 | (4) |
|
Creating Indexes on XML Data Types |
|
|
199 | (3) |
|
|
|
202 | (1) |
|
|
|
202 | (3) |
|
XML in Heterogeneous Environments |
|
|
205 | (20) |
|
Basic XML Document Transfer |
|
|
206 | (1) |
|
Sharing XML with Web Services |
|
|
207 | (2) |
|
|
|
207 | (1) |
|
Transformation Processing |
|
|
208 | (1) |
|
|
|
208 | (1) |
|
Applying Semantics to XML Transfers |
|
|
209 | (10) |
|
Simple Object Access Protocol |
|
|
210 | (9) |
|
|
|
219 | (3) |
|
|
|
220 | (2) |
|
|
|
222 | (1) |
|
|
|
222 | (3) |
|
Understanding XML Documents as Objects |
|
|
225 | (20) |
|
Why Explain the Object Model Here? |
|
|
225 | (1) |
|
XML Data as a Relational Structure |
|
|
226 | (4) |
|
The Basics of the Object Data Model |
|
|
230 | (5) |
|
Creating an Object Model from a Relational Model |
|
|
232 | (3) |
|
XML Data as an Object Structure |
|
|
235 | (7) |
|
|
|
242 | (1) |
|
|
|
242 | (3) |
|
What Is a Native XML Database? |
|
|
245 | (20) |
|
An XML Document Is a Database |
|
|
246 | (14) |
|
Defining a Native XML Database |
|
|
248 | (1) |
|
Creating a Native XML Database |
|
|
248 | (4) |
|
Schema-Less Native XML Database Collections |
|
|
252 | (4) |
|
|
|
256 | (2) |
|
Indexing a Native XML Database |
|
|
258 | (1) |
|
What About Using XSL and the XML DOM? |
|
|
259 | (1) |
|
Classify Native XML Databases by Content |
|
|
260 | (1) |
|
|
|
260 | (1) |
|
|
|
260 | (1) |
|
Using a Native XML Database |
|
|
261 | (1) |
|
|
|
262 | (1) |
|
|
|
262 | (3) |
|
Navigating XML Documents Using XPath |
|
|
265 | (30) |
|
|
|
265 | (1) |
|
Absolute and Relative Paths |
|
|
266 | (1) |
|
|
|
266 | (2) |
|
|
|
267 | (1) |
|
|
|
268 | (11) |
|
Simple Expressions to Find Nodes |
|
|
272 | (2) |
|
Find Specific Values Using Predicates |
|
|
274 | (1) |
|
|
|
275 | (2) |
|
Use Wildcards to Find Unknown Nodes |
|
|
277 | (1) |
|
Expressions on Multiple Paths |
|
|
278 | (1) |
|
|
|
279 | (2) |
|
|
|
281 | (12) |
|
|
|
282 | (1) |
|
|
|
283 | (1) |
|
|
|
283 | (1) |
|
|
|
284 | (1) |
|
|
|
285 | (1) |
|
|
|
285 | (1) |
|
|
|
286 | (1) |
|
|
|
286 | (1) |
|
Functions on Durations, Dates, and Times |
|
|
286 | (1) |
|
|
|
287 | (1) |
|
|
|
288 | (1) |
|
|
|
288 | (1) |
|
|
|
289 | (4) |
|
|
|
293 | (1) |
|
|
|
293 | (2) |
|
Reading XML Documents Using XQuery |
|
|
295 | (20) |
|
|
|
296 | (1) |
|
|
|
296 | (1) |
|
|
|
296 | (8) |
|
|
|
296 | (1) |
|
|
|
297 | (2) |
|
Embedding XQuery Code into HTML |
|
|
299 | (3) |
|
|
|
302 | (1) |
|
|
|
303 | (1) |
|
|
|
303 | (1) |
|
|
|
304 | (7) |
|
FLWOR: The Basic for Loop and Return Clause |
|
|
304 | (2) |
|
FLWOR: Adding a where Clause |
|
|
306 | (1) |
|
FLWOR: Adding an Order By Clause |
|
|
307 | (1) |
|
FLWOR: Declaring Variables with the Let Clause |
|
|
308 | (1) |
|
FLWOR: Embedded for Loops and Communication |
|
|
309 | (2) |
|
|
|
311 | (1) |
|
|
|
312 | (1) |
|
|
|
313 | (1) |
|
|
|
314 | (1) |
|
Some Advanced XML Standards |
|
|
315 | (36) |
|
|
|
316 | (23) |
|
|
|
316 | (1) |
|
|
|
316 | (4) |
|
Some More Advanced XLink Attributes |
|
|
320 | (2) |
|
|
|
322 | (11) |
|
|
|
333 | (6) |
|
XForms and HTML Form Generation |
|
|
339 | (9) |
|
|
|
339 | (1) |
|
|
|
340 | (2) |
|
|
|
342 | (1) |
|
|
|
342 | (1) |
|
Restricting Values with XForms Properties |
|
|
343 | (1) |
|
|
|
344 | (1) |
|
Built-in and User-Defined Functions |
|
|
345 | (1) |
|
|
|
346 | (2) |
|
Embedding XML Documents with XInclude |
|
|
348 | (1) |
|
Formatting XML Output Using XML-FO |
|
|
348 | (1) |
|
|
|
348 | (1) |
|
|
|
349 | (2) |
|
|
|
351 | (30) |
|
The Document Type Definition |
|
|
352 | (18) |
|
|
|
354 | (1) |
|
|
|
354 | (1) |
|
|
|
355 | (2) |
|
|
|
357 | (3) |
|
|
|
360 | (1) |
|
|
|
361 | (1) |
|
|
|
362 | (2) |
|
|
|
364 | (1) |
|
Built-In Entities and ASCII Code Character Entities |
|
|
364 | (1) |
|
Custom and Parameter Entities |
|
|
365 | (5) |
|
The XML Schema Definition |
|
|
370 | (10) |
|
|
|
370 | (1) |
|
|
|
371 | (1) |
|
|
|
371 | (2) |
|
|
|
373 | (1) |
|
Element Ordering Sequence and Choice |
|
|
374 | (1) |
|
|
|
375 | (4) |
|
|
|
379 | (1) |
|
|
|
380 | (1) |
|
|
|
380 | (1) |
|
Applying XML Databases in Industry |
|
|
381 | (16) |
|
|
|
381 | (3) |
|
Managing Complex Data with XML |
|
|
382 | (1) |
|
Does Database Size Matter? |
|
|
382 | (1) |
|
Are Schema Changes Easier with XML? |
|
|
383 | (1) |
|
|
|
384 | (2) |
|
Specific XML Vocabularies |
|
|
386 | (6) |
|
|
|
386 | (6) |
|
Commercial Implementation of XML |
|
|
392 | (2) |
|
When to Use a Native XML Database |
|
|
394 | (2) |
|
|
|
396 | (1) |
| Glossary |
|
397 | (22) |
| Appendix A: Exercise Answers |
|
419 | (8) |
| Appendix B: The Sample Database |
|
427 | (4) |
| Appendix C: Syntax Conventions |
|
431 | (2) |
| Appendix D: XML Technology |
|
433 | (2) |
| Appendix E: XML Relational Database Technology |
|
435 | (10) |
| Index |
|
445 | |