search for books and compare prices
Tables of Contents for Beginning Xml
Chapter/Section Title
Page #
Page Count
Introduction
1
1
Who is this Book For?
1
1
What's Covered in this Book?
2
2
What You Need to Use this Book
4
1
Conventions
4
2
Downloading the Source Code
6
1
Tell Us What You Think
6
1
Errata & Updates
6
3
What is XML?
9
18
Of Data, Files, and Text
9
4
Binary Files
10
1
Text Files
11
1
A Brief History of Markup
12
1
So What is XML?
13
9
What Does XML Buy Us?
15
1
How Else Would We Describe Our Data?
15
1
XML Parsers
16
1
Why ``Extensible''?
17
1
HTML and XML: Apples and Red Delicious Apples
18
1
Hierarchies of Information
18
1
Hierarchies in HTML
19
1
Hierarchies in XML
19
2
What's a Document Type?
21
1
No, Really - What's a Document Type?
21
1
Who is the World Wide Web Consortium?
22
1
What are the Pieces that Make Up XML?
23
2
Where is XML Used, and Where Can It be Used?
23
1
Reducing Server Load
24
1
Web Site Content
24
1
Remote Procedure Calls
24
1
E-Commerce
24
1
Summary
25
2
Well-Formed XML
27
34
Tags & Text & Elements, Oh My!
28
10
Rules for Elements
31
2
Element Names
33
1
Case Sensitivity
34
1
White Space in PCDATA
35
3
Attributes
38
4
Why Use Attributes?
41
1
Comments
42
4
Empty Elements
46
1
XML Declaration
47
4
Encoding
47
1
Unicode
48
1
Specifying Character Encoding for XML
48
1
Standalone
49
2
Processing Instructions
51
2
Is the XML Declaration a Processing Instruction?
51
2
Illegal PCDATA Characters
53
4
Escaping Characters
53
1
CDATA Sections
54
3
Parsing XML
57
2
Microsoft Internet Explorer Parser
57
1
James Clark's Expat
57
1
Vivid Creations ActiveDOM
57
1
DataChannel XJ Parser
57
1
IBM xm14j
58
1
Apache Xerces
58
1
Errors in XML
58
1
Summary
59
2
XML in the Browser: Cascading Style Sheets
61
70
Why Do We Need Style Sheets?
62
3
The History of Styling HTML
63
1
The Origins of Markup
63
2
Style Sheets and HTML
65
18
Creating Styles in HTML
66
1
The style Attribute
67
1
The <STYLE> Element
67
1
Cascading Styles
68
2
Overriding Styles with Style Elements
70
1
Comments in Style Sheets
71
1
A Class Act in HTML
71
4
Cascading Class Selectors
75
3
Pseudo-Classes
78
3
External Styles in HTML
81
1
<LINK>
81
1
The @import Directive
82
1
Cascading Style Sheets and XML
83
42
External Style Sheets in XML
83
2
More on External Style Sheets
85
2
Internal XML Cascading Style Sheets
87
1
The Medium is the Message
87
1
The @media Directive
88
1
Media Groups
89
1
The Box Model
90
1
The display Property
91
1
Other display Values
91
1
The Difference Between display and visibility
92
2
Setting Colors
94
1
Hex Color Codes
95
1
Building Borders
96
3
Background Images
99
1
Limitations When Working with Images
100
1
Positioning and Repeating Background Image
101
1
Specifying Multiple Background Properties
102
1
Creating Backgrounds
102
2
Understanding Positioning Schemes
104
1
Static Position
104
1
Relative Position
104
1
Absolute Position
104
1
Fixed Position
105
1
Inherited Position
105
1
Setting Positions and Units
105
2
Width and Height
107
1
Overflow
108
1
Clipping
108
1
Floats
109
2
Lists and Tables
111
2
Working with Lists in XML
113
1
Supporting Tables in CSS
114
2
Text and Font Manipulation
116
1
font-size
116
1
font-style and font-weight
117
1
font-family and @font-face
117
2
font-variant, text-decoration, text-transform
119
1
Indentation, Padding and Margins
119
1
text-indent
119
1
Margins and Padding
120
1
Kerning and Spacing
121
1
letter-spacing
121
1
line-height
121
1
Alignment
122
1
text-align
122
1
vertical-align
122
1
Ruby Characters
122
1
Printing
122
1
Units - Pixels versus Points
123
1
The @page Directive
124
1
Page Breaks
124
1
Printing Using Scripting
125
1
Aural Style Sheets
125
3
Summary
128
3
XSLT and XPath
131
32
Running the Examples
132
1
XT
132
1
MSXML
132
1
What is XSL?
133
4
So How Do XSLT Style Sheets Work?
133
1
Associating Style Sheets Using Processing Instructions
134
1
Why is XSLT So Important for E-Commerce?
134
3
Imperative versus Declarative Programming
137
4
Imperative Programming
137
1
Declarative Programming
138
2
XSLT Has No Side Effects
140
1
XPath
141
20
order.xml
141
1
Node? What's a Node?
142
1
Location Paths
142
1
Building Location Paths
143
1
But Why Doesn't XPath Use XML Syntax?
144
1
More Specific Location Paths
144
2
XPath Functions
146
1
Node Functions
146
2
Positional Functions
148
1
Numeric Functions
149
1
Boolean Functions
150
2
String Functions
152
4
Axis Names
156
5
Summary
161
2
XSLT - The Gory Details
163
54
Templates
163
3
XSLT's Order of Operations
164
1
Default Templates
165
1
How Do Templates Affect the Context Node?
165
1
XSLT Elements and their Use
166
42
<xsl:stylesheet>
166
1
<xsl:template>
167
1
Template Priority
167
1
<xsl:apply-templates>
168
3
<xsl:value-of>
171
2
<xsl:output>
173
2
<xsl:element>
175
3
<xsl:attribute> and <xsl:attribute-set>
178
1
Related Groups of Attributes
179
2
<xsl:text>
181
1
Conditional Processing with <xsl:if> and <xsl:choose>
182
5
<xsl:for-each>
187
3
<xsl:copy-of>
190
2
<xsl:copy>
192
3
<xsl:sort>
195
2
Modes
197
4
Variables, Constants, and Named Templates
201
1
<xsl:variable>
202
2
Named Template
204
1
Parameters
205
3
Using XSLT with CSS
208
5
CSS and XSL-Formatting Objects
213
1
XSLT in the Real World
213
1
Summary
214
3
The Document Object Model (DOM)
217
44
What is the DOM?
218
2
XML as an Object Model
218
1
The XML DOM
219
1
DOMString
219
1
DOM Interfaces
220
6
So What are Interfaces?
221
1
Implementing Interfaces
221
2
DOM Implementations
223
1
The DOM Core
224
1
Extending Interfaces
225
1
The DOM Core in Detail
226
33
Exceptions
226
1
DOMException
227
1
Node
227
1
Getting Node Information
227
3
Traversing the Tree
230
2
Adding and Removing Nodes
232
3
Document
235
3
DOMImplementation
238
1
DocumentFragment
239
1
NodeList
240
2
Element
242
3
NamedNodeMap
245
2
Attr
247
2
CharacterData and Text
249
1
Handling Complete Strings
249
1
Handling Sub-Strings
250
1
Modifying Strings
250
1
Splitting Text
251
3
Comment and CDATASection
254
2
ProcessingInstruction
256
3
Summary
259
2
The Simple API for XML (SAX)
261
32
What is SAX, and Why Was it Invented?
261
3
The Fabulous Lost Treasure of the Xenics
262
1
So What Does that Have to Do with SAX?
262
1
Where to Get SAX
263
1
Who is this Megginson Guy Anyway?
264
1
Using the SAX Interfaces
264
26
Preparing the Ground
264
4
How to Receive SAX Events
268
5
Extracting Character Data
273
3
Extracting Attributes
276
5
Error Handling
281
3
More About Errors - Using the Locator Object
284
2
Even More About Errors - Catching Parsing Errors
286
2
Other Methods in DocumentHandler
288
1
ignorableWhitespace
288
1
processingInstruction
289
1
Good SAX and Bad SAX
290
1
SAX 2.0
291
1
Summary
291
2
Namespaces
293
26
Why Do We Need Namespaces?
293
4
Using Prefixes
294
2
So Why Doesn't XML Just Use These Prefixes?
296
1
How XML Namespaces Work
297
11
Default Namespaces
300
1
Namespaces of Descendents
301
2
Canceling Default Namespaces
303
1
Do Different Notations Make Any Difference?
303
2
Namespaces and Attributes
305
3
XSLT from a Namespace Point of View
308
4
What Exactly are URIs?
312
4
URLs
312
1
URNs
313
1
Why Use URLs for Namespaces, Not URNs?
314
1
What Do Namespace URIs Really Mean?
315
1
When Should I Use Namespaces?
316
1
Summary
317
2
Basic Valid XML: DTDs
319
60
Why Do We Need DTDs?
320
9
XML Application Requirements
320
1
Document Type Definitions
321
1
Valid XML
321
1
Validating Parsers
322
2
Sharing DTDs
324
1
A Simple Example
324
1
Why Use XML to Do This?
324
1
The Basic BookCatalog Data Model
325
4
DTDs
329
8
Internal versus External DTDs
330
1
When to Use Internal and External Subsets
330
1
Associating a DTD with an XML Document
331
1
The XML Declaration (A Refresher)
331
1
The Document Type (DOCTYPE) Declaration
332
5
Basic DTD Markup
337
39
Element Type (ELEMENT) Declarations
338
1
Element Content Categories
338
2
Content Models
340
9
Attribute (ATTLIST) Declarations
349
2
Attribute Types
351
5
Attribute Defaults
356
2
Extending the BookCatalog Data Model
358
15
Limitations of DTDs
373
3
Summary
376
3
Valid XML: Schemas
379
42
Schemas versus DTDs
380
3
Syntax
381
1
Content Models
381
1
Data Typing
382
1
Extensibility
382
1
Dynamic Schemas
383
1
Basic Schema Principles
383
2
XML Parsers with Schema Support
384
1
Structures and Datatypes, or Chickens and Eggs
385
1
Datatypes
385
10
Primitive Datatypes
386
1
Primitive Types for XML Schema
386
1
Derived Datatype
387
1
Built-in Derived Types for XML Schema
387
1
Atomic and List Datatypes
388
1
Atomic Datatypes
388
1
List Datatypes
388
1
Aspects of Datatypes
389
1
Value Spaces
390
1
Lexical Spaces
390
1
Facets
390
1
Fundamental Facets
390
2
Constraining Facets
392
3
Associating Schemas with XML Documents
395
2
XML Schema Preamble - The <schema> Element
395
1
Specifying the Namespaces
396
1
Specifying the Version
396
1
XDR Preamble - The <Schema> Element
396
1
Structures
397
21
Datatype Definitions
397
1
Simple Type Definitions
398
2
Complex Type Definitions
400
6
Content Models
406
1
Element Content Categories
407
1
Cardinality - minOccurs and maxOccurs
407
1
Choice and Sequence Groups - <choice> and <sequence>
408
1
Mixed Content (Unsequenced Group) - <all>
409
1
Content From Another Schema - <any>
410
1
Model Groups - <group>
411
1
Element Declarations
411
1
Element Constraints - <element>
412
2
Attribute Declarations
414
1
Attribute Constraints - <attribute>
414
2
Attribute Groups - <attributeGroup>
416
2
Annotations
418
1
Summary
419
2
Advanced Valid XML
421
24
Entities
422
12
Entity References
423
1
Character References
424
1
General Entities
424
1
Parsed Entities
425
4
Unparsed Entities
429
1
Parameter Entities
430
2
ISO and Other Standard Entity Sets
432
2
Non-XML Data (Notations)
434
4
The <!NOTATION> Declaration
435
1
The NOTATION Attribute Type
435
1
The ENTITY and ENTITIES Attribute Types
435
3
Internal versus External DTD Subsets
438
1
The standalone Attribute
439
1
Conditional Sections
439
4
Nesting Conditional Sections
443
1
Summary
443
2
Linking XML
445
32
HTML Linking
446
1
XML Linking
447
1
XLink
448
16
XLink Attributes
449
1
The type Attribute
450
1
The href Attribute
451
1
Semantic Attributes (role and title)
451
1
Behavior Attributes (actuate and show)
452
1
The from and to Attributes
453
1
Link Types
454
1
Simple Links
454
3
Extended Links
457
1
Locator-type Elements
458
1
Arcs
459
2
Resource-type Elements
461
2
Title-type Elements
463
1
Defaulting XLink Attributes
463
1
Pointing to Document Fragments with XPointer
464
11
Appending XPointer Expressions to URIs
465
1
Using Multiple XPointer Expressions
465
2
XPointer Schemes
467
1
XPointer Shorthand Syntaxes
468
1
Full Syntax
468
1
Bare Names Syntax
469
1
Child Sequence Syntax
469
1
Locations, Points and Ranges
470
1
Points
470
1
Ranges
471
1
How Do We Select Ranges?
472
2
XPointer Function Extensions to XPath
474
1
Querying
475
1
Summary
475
2
XML and Databases
477
24
Databases, Yesterday and Today
478
4
SQL
479
1
Retrieving Data from Multiple Tables
480
1
Normalization
481
1
Making Use of What You've Got
482
5
N-Tier Architecture
482
2
Using XML in an N-tier Application
484
2
Returning XML from a Data Object
486
1
Integrating XML into the Database Itself
487
3
Storing XML in a Database
487
1
Using the Database
488
1
An Even Simpler Data Object
489
1
Database Vendors and XML
490
6
Microsoft's XML Technologies
490
1
MSXML
490
1
Visual Basic Code Generator
491
1
SQL Server
491
1
Putting SQL Server to Work
492
2
Oracle's XML Technologies
494
1
XML Parsers
494
1
Code Generators
494
1
XML SQL Utility for Java
494
1
XSQL Servlet
495
1
Putting Oracle to Work
496
1
Who Needs a Database Anyway?
496
2
Summary
498
3
Other Uses for XML
501
36
Serializing Object Models
502
17
Suggestions for a Good Object Model
508
1
Include Pretty-Printing Characters
508
2
Allow Each Object to Serialize Itself
510
7
Commit/Rollback Functionality
517
1
Don't Return Anything from an Empty Object
517
1
Keep Track of Historical Information, Including Errors
518
1
XML-RPC
519
7
SOAP
521
1
The Poor Man's RPC
521
5
Stateless Objects
526
2
Resource Description Framework (RDF)
528
2
How Does It Work?
529
1
Schematron
530
4
Summary
534
3
Lydia's Lugnuts Web Store
537
30
Complexity
538
2
Maintenance
540
1
Creating Order from Chaos
540
5
Designing the XML Structure
540
2
Creating XML Files
542
2
Grouping Products Together
544
1
Transforming and Displaying XML with XSL
545
12
The Existing Web Page
547
2
The XSLT Style Sheet
549
8
Incorporating Content from Multiple Sources
557
8
Product Listings
558
3
Nuts. Nuts? Nuts! Templates
561
1
The Nut Haus Templates
562
1
The New HTML Web Pages
563
2
The Future of Lydia's Lugnuts
565
2
Discussion Group System
567
44
Designing the Architecture
567
6
An XHTML Framework System
568
1
A Note About the XMLPipes Framework
569
1
What Does the XHTML Framework Do?
570
2
Defining the Server
572
1
Defining Membership Directories
573
3
Designing the Message Boards
576
7
Retrieving the Message Child Tree
580
1
Retrieving the Message Ancestor Tree
580
1
Retrieving the Message Sibling Tree - Next
581
1
Retrieving the Message Sibling Tree - Previous
582
1
Creating Messages
583
7
Using Namespaces
583
7
Editing and Deleting Messages
590
3
Deleting a Message
592
1
Viewing Lists of Messages
593
6
A Few Thoughts on Online Editors
599
9
Editing and Viewing Individual Messages
600
8
Summary
608
3
XML for a Business-to-Business Application
611
52
An E-Commerce Problem and Our Solution
612
12
E-Commerce Requirements
613
1
Why Doesn't EDI Achieve This?
614
1
The eBIS-XML Concept
615
2
So What (exactly) is eBIS-XML?
617
1
An Existing eBIS-XML Application
618
1
Decisions, Decisions
619
1
DTD versus Schema
620
1
Style Sheets and XSL
620
1
Tools for Developing Schemas
621
3
eBIS-XML Schemas
624
15
Developing the v2.4 eBIS-XML Schemas
624
3
Moving On Up - Version 3
627
5
The Final Schema
632
3
Summary of Schema Development Tips
635
1
A Reprise on the Tools Used
635
4
eBIS-XML Style Sheets
639
16
A Simple Invoice
639
4
Push and Pull Models
643
1
More About the Invoice Style Sheet
644
10
Doing it the Easy Way?
654
1
Summary of the Style Sheet
655
1
Have We Met Arthur's Requirements?
655
2
Next Steps
657
3
Simple Routing
657
1
The BizTalk Header
658
1
Choreography
659
1
More Futures
660
1
And If We Were to Start Now?
660
1
Summary
661
2
Appendix A: The XML Document Object Model
663
14
Fundamental Interfaces
663
9
DOMException
663
1
Node
664
2
Document
666
2
DOMImplementation
668
1
DocumentFragment
668
1
NodeList
668
1
Element
669
1
NamedNodeMap
670
1
Attr
671
1
CharacterData
671
1
Text
672
1
Comment
672
1
Extended Interfaces
672
5
CDATASection
672
1
ProcessingInstruction
673
1
DocumentType
673
1
Notation
673
1
Entity
674
1
Entity Reference
674
3
Appendix B: SAX 1.0: The Simple API for XML
677
30
Class Hierarchy
678
13
Interface org.xml.sax.AttributeList
678
3
Interface org.xml.sax.DocumentHandler
681
4
Interface org.xml.sax.DTDHandler
685
2
Interface org.xml.sax.EntityResolver
687
2
Interface org.xml.sax.ErrorHandler
689
2
Class org.xml.sax.HandlerBase
691
3
Class org.xml.sax.InputSource
694
8
Interface org.xml.sax.Locator
698
1
Interface org.xml.sax.Parser
699
3
Class org.xml.sax.SAXException
702
1
Class org.xml.sax.SAXParseException
703
4
Appendix C: ASP Quick Start Tutorial
707
36
The Anatomy of the HTTP Protocol
708
5
Overview
708
1
The HTTP Server
708
1
Protocol Basics
709
1
The Connection
709
1
The Request
709
3
The Response
712
1
Disconnecting
712
1
Introducing Active Server Pages
713
4
How the Server Recognizes ASPs
713
1
ASP Basics
713
1
The Tags of ASP
714
1
<SCRIPT> Blocks
714
1
The Default Scripting Language
714
1
Mixing HTML and ASP
715
1
Commenting Your ASP Code
716
1
The Active Server Pages Object Model
717
17
Collections
717
1
Iterating the Contents Collection
718
1
Removing an Item from the Contents Collection
719
1
The Request Object
719
1
The Request Object's Collections
720
4
Request Object Property and Method
724
1
The Response Object
724
1
The Response Object's Collection
724
1
The Response Object's Methods
725
2
The Response Object's Properties
727
1
The Application and Session Objects
728
1
Scope Springs Eternal
728
1
The global.asa File
729
1
The Application Object
729
1
The Session Object
730
2
The Server Object
732
1
Properties
732
1
Methods
732
1
The ObjectContext Object
733
1
SetAbort
734
1
SetComplete
734
1
Using Active Server Pages Effectively
734
6
Designing the Site
734
1
Creating the global.asa File
735
1
Creating our Main Page
735
1
The ASP/VBScript Section
736
2
The HTML Section
738
2
Summary
740
3
Appendix D: JavaScript Quick Start Tutorial
743
26
JavaScript and HTML
744
1
JavaScript and Java
744
1
Running the Examples in this Appendix
745
1
Statements
746
2
Comments
747
1
Single Line Commets
747
1
Multi-line Comments
747
1
Variables
748
3
Data Types
749
1
Variable Names
750
1
Operators
751
3
Mathematical
751
1
Assignment
752
1
Logical (Boolean)
752
1
Precedence of Operators
753
1
Functions
754
2
Creating Functions
754
1
Returning Information from a Function
754
1
Passing Information to a Function
755
1
Built-in Functions
755
1
Program Flow
756
6
Conditional Code
756
1
The if Statement
756
2
The switch Statement
758
1
Loops
759
1
The for Loop
760
1
while and do...while Loops
760
1
The break and continue Statements
761
1
Objects
762
4
String
763
1
The toLowerCase and toUpperCase Methods
763
1
Methods to Return Strings and Characters
763
1
Methods to Search Strings
764
1
Joining Strings
764
1
Number
764
1
Math
765
1
Date
766
1
Arrays
766
1
Summary
767
2
Appendix E: Support, Errata, and P2P.Wrox.Com
769
8
The Online Forums at P2P.Wrox.Com
769
2
How to Enroll for Online Support
770
1
Why this System Offers the Best Support
771
1
Support and Errata
771
6
Wrox Developer's Membership
771
1
Finding an Erratum on the Web Site
772
1
Add an Erratum: E-mail Support
773
1
Customer Support
774
1
Editorial
774
1
The Authors
774
1
What We Can't Answer
774
1
How to Tell Us Exactly What You Think
774
3
Appendix F: Useful Web Resources
777
6
Appendix G: XML Schema Datatypes
783
14
Primitive Types
783
7
String
784
1
boolean
784
1
decimal
784
1
float
785
1
double
785
1
timeDuration
785
2
recurringDuration
787
1
binary
787
1
uriReference
788
1
ID
788
1
IDREF
788
1
ENTITY
788
1
NOTATION
789
1
QName
789
1
Constraining Facets for Primitive Types
789
1
Built-in Derived Types
790
7
language
791
1
name, NCName
792
1
integer, negativeInteger, positiveInteger, nonNegativeInteger, NonPositiveInteger
792
1
byte, short, int, long
792
1
unsignedByte, unsignedShort, unsignedInt, unsignedLong
792
1
century, year, month, date
792
1
recurringData, recurringDay
793
1
time, timeInstant, timePeriod
793
1
Constraining Facets for Derived Types
794
3
index
797