- Copyright 2002
- Dimensions: 7-3/8x9-1/4
- Pages: 560
- Edition: 1st
-
Book
- ISBN-10: 0-201-74852-5
- ISBN-13: 978-0-201-74852-9
"XML--the Microsoft Way is a must-have for any IT library."
--Duane Nickull, CTO, XML Global Technologies, and Chief Technical Editor, XSLT.com
As a core part of many new and important technologies, XML is a must-know tool for all programmers creating network- and Web-enabled applications for the Windows platform. This complete, comprehensive, and up-to-date book presents a thorough examination of the fundamentals of standard XML, essential related technologies, and the use of XML within a Microsoft-specific development environment.
Appropriate for beginning to intermediate XML programmers, XML--the Microsoft Way explains XML concepts and guides developers who need to learn XML development skills. The book begins with a background on the history of XML and offers clear explanations and examples of its most important elements: syntax, data modeling, formatting, templates, linking, and more. Later chapters address advanced topics, focusing on Microsoft's tools for XML development.
You will find thorough coverage of such important topics as:
- XML Schema, Namespaces, XLink, and XPointer
- Data modeling with DTDs, XDR Schemas, and XSD Schemas
- Cascading Style Sheets
- eXtensible Stylesheet Language (XSL), XSL Transformation (XSLT), and Formatting Objects (FO)
- The Document Object Model (DOM)
- Simple API for XML (SAX)
- The Microsoft SOAP (Simplified Object Access Protocol) Toolkit
- eXtensible Hypertext Markup Language (XHTML)
- Visual Basic and Visual C++ with XML
- The .NET Framework and XML
- Internet Explorer and Dynamic HTML
Numerous code examples--primarily in Visual Basic, although many are in Visual C++ and C#--appear throughout the book to illustrate important techniques. The combination of clear explanations, real-world examples, and a Microsoft-based focus make XML--the Microsoft Way an essential addition to any Windows programmer's library.
0201748525B11122001
Online Sample Chapter
XML and the .NET Framework
Downloadable Sample Chapter
Click below for Sample Chapter related to this title:
aitkench13.pdf
Table of Contents
(NOTE: Each chapter concludes with a Summary.)
Preface.
About This Book.
What About Java?
About the Listings.
Source Code and Corrections.
Acknowledgements.
1. XML: What and Why? What is XML?
The Development of XML.
Optional XML Technologies.
The XML Standards Process.
Tools for Working with XML.
2. The Syntax of XML. Syntax Overview.
Processing Instructions.
Physical and Logical Structure of an XML Document.
Entities.
Elements.
Attributes.
Declaring Notations.
Character Data.
Comments.
White Space Issues.
3. Data Modeling with DTDs. Importance of Data Modeling.
Document Type Definitions.
The Document Type Declaration.
Standalone Documents.
Declaring Elements.
Declaring Attributes.
Parameter Entities.
Conditional Sections.
A DTD Demonstration.
4. Data Modeling with XDR Schemas. XML Schemas.
Namespace Fundamentals.
The XDR Vocabulary.
Connecting a Document to a Schema.
Validating Documents Against Schemas.
An XDR Schema Demonstration.
DTD or XML Schema — Which to Use?
Chapter 5. Data Modeling with XSD Schemas. XSD Schema Overview.
XSD Data Type.
The Schema Element.
Connecting a Schema to an XML File.
An XSD Schema Demonstration.
6. Formatting XML Documents with Cascading Style Sheets. Style Sheet Fundamentals.
CSS Basics.
Creating and Referencing Style Sheets.
A CSS Demonstration.@CHAPTER = 7. Extensible Stylesheet Language and XSLT.
XSL Fundamentals.
Style Sheet Structure.
XSLT Templates.
XPath Patterns.
XPath Expressions.
Functions.
8. Formatting Objects. FO Basics.
The FO Model.
FO Document Structure.
Content Elements.
FO Attributes.
An XSLT-FO Demonstration.
9. XLink and Xpointer. Xlink.
Xpointer.
10. Using DOM, the Document Object Model. DOM Overview and Background.
The DOMDocument Object.
The DOM Object Model.
Navigating the Document Tree.
Reading Element and Attribute Data.
Modifying Document Data and Structure.
DOM and XSLT.
11. The SAX (Simple API for XML) Interface. SAX Overview and Background.
The SAX Interface.
SAX and Visual C++.
12. SOAP, the Simplified Object Access Protocol. Web Services.
SOAP Basics.
SOAP and Microsoft.
SOAP Requests.
Web Services Description Language and Web Services Meta Language.
The Microsoft SOAP Toolkit.
13. XML and the .Net Framework. .Net Overview.
The System.XML Assembly.
The XmlTextReader Class.
The XmlValidatingReader Class.
The XmlTextWriter Class.
The XmlDocument Class.
14. Extensible Hypertext Markup Language and Web Pages. Some HTML Background.
XML to the Rescue.
Structure of an XHTML Document.
XHTML Elements.
An XHTML Demonstration.
15. Visual Basic and XML. Verifying Well-Formedness and Validity of an XML Document: DTD and XDR.
Verifying Well-Formedness and Validity of an XML Document: XSD.
Processing Raw XML.
Using SAX to Extract XML Data.
Using DOM to Modify Document Structure.
16. Visual C++ and XML. An Outline of the Samples in This Chapter
Following the Search.
Maintaining the XML Database.
17. Internet Explorer: Client-Side Scripting and Dynamic HTML. Scripting.
Dynamic HTML.
Client-Side Scripting and Data Islands.
The Data Source Object.
18. Server-Side Scripting and XML. ASP Fundamentals.
ASP Demonstration Programs.
19. The BizTalk Framework. BizTalk Background.
BizTalk Standards.
The BizTalk Document.
20. Microsoft Office and XML. Programming in VBA.
Excel.
Word.
Access.
FrontPage.
Appendix 1: XDR Schema Data Types. Index. 0201748525T09142001
Preface
Introduction
Extensible Markup Language (XML) is quite simple in concept. It is nothing more than a set of rules for providing structure to data. Despite this underlying simplicity--or perhaps partly because of it--XML has become an extremely important technology that is widely used in diverse areas of information processing. Because XML can be used with essentially any kind of data, it has found application in areas as dissimilar as finance, agriculture, law, medicine, and computer programming. Because XML is a public, nonproprietary standard, it can be used by anyone, anywhere. Because XML is platform independent, it is used on Windows PCs, Macintoshes, Linux boxes, mainframes, and just about any other platform you care to mention. What's more, XML permits these various types of computers to exchange data with an ease that was never possible before. More and more applications developers find themselves needing to write XML applications. Given that you are reading this, I suspect you are one of them.
About This Book
This book is intended for software developers who need to learn the fundamentals of XML and its most important related technologies, and who also want to learn how to include XML support in their applications. It is specifically aimed at developers who create applications for the Windows platform using Microsoft development tools. About half of the book's chapters deal with public XML and related standards and would be useful to any XML developer regardless of the platform or development tools being used (although coding examples make use of Microsoft languages). The remaining chapters deal specifically with using XML with Microsoft development and end-user tools: Visual Basic, Visual C++, Internet Explorer, Active Server Pages, the .NET Framework, and so on.
Readers are assumed to have little or no experience with XML and its related technologies. The XML material is presented "from the ground up" and is suitable for XML beginners as well as those with an intermediate level of knowledge. The programming chapters, on the other hand, assume some prior experience with the specific language or technology in use. For example, Chapter 15 shows you how to manipulate XML from a Visual Basic program, but it does not teach you the fundamentals of using Visual Basic. Chapters on Visual C++ and the new .NET language C# are included as well.
What about Java?
For many XML programmers, Java is the language of choice. There are many good reasons for this preference, not the least of which is the availability of many powerful Java tools for use with XML. However, you'll see that there is no coverage of Java in this book. This is because the book is designed specifically to cover Microsoft tools as they relate to XML, and Microsoft's Java, known as Visual J++, has reached a dead end. As a result of legal settlements, Microsoft has agreed to stop upgrading Visual J++, so the current version of this product (Visual J++ version 6.0) will be the last. Thus, there is no place for Java in a Microsoft-oriented book--much to my dismay, as it is an excellent language.
Yet all is not lost for the Java lover working in a Microsoft shop. The latest Microsoft development tools, collectively known as Visual Studio .NET, include a new language called C# (C sharp). While Microsoft officially denies it, many people see C# as Microsoft's replacement for Java. C# is Java-like in many ways, and I think that any Java programmer will soon feel at home with C#.
About the Listings
Throughout the book, code samples are presented both as code fragments interspersed in the text and as separate numbered listings. For the most part, the numbered listings are complete files--for example, a complete XML file or a complete Visual Basic source code file. In a few cases, a listing is a fragment of a file, such as a section of source code that cannot function on its own but must be part of a larger program. These exceptions are clearly noted.
Source Code and Corrections
You can download all of the code (from the numbered listings) from the book's companion Web page at http://www.pgacon.com/xml_ms.htm. The download file is a ZIP archive. When you expand the ZIP file, you will have a separate folder for each of the book's chapters (except those that do not have any listings). This Web page also lists any corrections that have been reported. If you find what you think is an error in the book, please let me know by e-mailing me at peter@pgacon.com. I am also delighted to hear from readers with any comments or suggestions regarding the book. Please note, however, that I can respond only to queries that are directly book-related, and I cannot answer any general programming questions you may have.
Peter G. Aitken
Chapel Hill, North Carolina
August 2001
0201748525P11302001
Index
, (comma), in element declaration, 46| (pipe), in element declaration, 46| (union operator), 166; (semicolon), in entity names, 27-28<% ... %> tags, 440( ) (parentheses)in element declaration, 46in XPath expressions, 160/ (slash)in end tags, 2in XPath patterns, 153// (double slash), in XPath patterns, 153& (ampersand)encoding form data, 447entity for, 29in entity names, 27-28' (apostrophe), entity for, 29* (asterisk)in element declaration, 46in XPath patterns, 153@ (at sign), in XPath patterns, 153% (percent sign), encoding form data, 447+ (plus sign)in element declaration, 46encoding form data, 447? (question mark)in element declaration, 46encoding form data, 447" (quotes), entity for, 29< > (brackets), in XML tags, 19< (less than), entity for, 29> (greater than), entity for, 29A
- a element, 337-338
- abbr element, 334
- abbreviations, markup for, 334
- abort() method, 230
- Access
- exporting data and schema, 493-494
- importing attributes, 492
- importing XML data, 490-493
- acronym element, 334
- acronyms, markup for, 334
- actuate attribute, 211-212, 215-217
- address blocks, markup for, 335
- address element, 335
- after attribute, 201-202
- align attribute, 342
- all element, 103
- Amaya browser, 15
- & entity, 29
- ampersand (&)
- encoding form data, 447
- entity for, 29
- in entity names, 27-28
- ancestor nodes, 227
- anchor elements, 337-338
- anchor tags. See XPointer.
- angle brackets. See brackets.
- anonymous definitions, 106-107
- ANY elements, 48
- APIs (application programming interfaces), 9. See also SAX (Simple API for XML).
- &apos entity, 29
- apostrophe ('), entity for, 29
- appendChild() method, 250
- apply-templates element, 149-151
- arc element, 215-217
- arcrole attribute, 215-217
- arguments, 161
- .asp file extension, 439
- ASP pages
- <% ... %> tags, 440
- data from HTML forms, 448-450
- definition, 439
- demonstration, 450-462
- example, 440-441
- local, viewing, 442
- syntax, 439-440
- asterisk (*)
- in element declaration, 46
- in XPath patterns, 153
- async property, 230
- at sign (@), in XPath patterns, 153
- attribute element, 78-79, 104-105
- AttributeCount property, 293
- attributeGroup element, 106
- attributes. See also elements.
- actuate, 211-212, 215-217
- after, 201-202
- arcrole, 215-217
- associating with elements, 78-79
- background-attachment, 199
- background-color, 199
- background-image, 199
- background-position, 199
- background-repeat, 199
- backgrounds, 198-199
- before, 201-202
- block areas, 198-202
- borders, 201-202
- bottom, 201-202
- case-order, 152
- center, 197
- color, 197
- content, 72
- data-type, 152
- data type, specifying, 70-71, 74
- declaring
- attribute types, summary table, 50
- ENTITIES attribute, 51-52
- ENTITY attribute, 51-52
- Enumerated attributes, 50-51
- ID attribute, 52-53
- IDREF attribute, 52-53
- IDREFS attribute, 52-53
- multiple attributes, 54-55
- NMTOKEN attribute, 54
- NMTOKENS attribute, 54
- plain text, 49-50
- string attributes, 49-50
- syntax, 48-49
- tokenized attributes, 51-54
- default, attribute element, 78-79
- default, AttributeType element, 77-78
- default, element element, 100
- defining, 77-78, 104-106
- definition, 32-33
- description, 194-195
- encodingStyle, 279
- end, 197, 201-202
- end-indent, 198, 200-201
- font-family, 196
- font-related, 196
- font-size, 196
- font-stretch, 196
- font-style, 196
- font-variant, 196
- font-weight, 196
- from, 215-217
- height, 199-200
- ID, 90
- importing to Access, 492
- inside, 197
- justify, 197
- last-line-end-indent, 198
- left, 197, 201-202
- line-height, 197
- margin, 200
- margin-bottom, 200
- margin-left, 200
- margin properties, 200-201
- margin-right, 200
- margin-top, 200
- max-height, 199-200
- max-width, 199-200
- maxOccurs, 74-76, 100
- min-height, 200
- min-width, 200
- minOccurs, 74-76, 100
- model, 72
- name, AttributeType element, 77-78
- name, ElementType element, 71
- order, 72-73, 152
- outside, 198
- reading, 244-246
- referencing, 104-106
- required, attribute element, 78-79
- required, AttributeType element, 77-78
- right, 197, 201-202
- role, 211, 213
- rules attribute, 341
- show, 211-212, 215-217
- size, 199-200
- space-after, 200-201
- space-before, 200-201
- start, 197, 201-202
- start-indent, 198, 200-201
- summary attribute, 341
- text alignment, 197-198
- text-indent, 198
- text indentation, 198
- text-related, 196-198
- title, 211, 215-217
- to, 216-217
- top, 201-202
- type
- arc element, 215-217
- attribute element, 78-79
- AttributeType element, 77-78
- element element, 74-76
- ElementType element, 74
- extended links, 213
- values, 77-78
- width, 199-200
- width attribute, 341
- xml:lang, 33
- xml:space, 37
- Attributes, SAX interface, 267-268
- attributes property, 244-246
- AttributeType element, 77-78
B
- background-attachment attribute, 199
- background-color attribute, 199
- background-color property, 125
- background-image attribute, 199
- background-position attribute, 199
- background-repeat attribute, 199
- bare name XPointers, 218-219
- baseName property, 244
- before attribute, 201-202
- Berners-Lee, Tim, 5, 10-11
- big element, 334
- BizTalk framework
- background, 465-467
- BizTalk servers, 466-467
- BizTalk.org, 467
- definition, 465
- documents
- body, 473-474
- body element, 473-474
- delivery, 469-470
- example, 468-469
- headers, 469-473
- manifests, 472
- processing, 472-473
- properties, 471
- transporting, 468
- encoding business data, 466
- expiresAt element, 471
- from element, 469-470
- handle element, 473
- identity element, 471
- instance element, 473
- manifest element, 472
- Microsoft BizTalk Server 2000, 467
- process element, 472-473
- properties element, 471
- reference element, 472
- reliability element, 469-470
- sentAt element, 471
- standards, 467
- to element, 469-470
- topic element, 471
- type element, 473
- BizTalk servers, 466-467
- BizTalk.org, 467
- block areas
- attributes for, 198-202
- definition, 177-178
- stacking, 184
- block element, 184
- block quotations, markup for, 336
- blockquote element, 336
- Body element, 279
- body element, 333, 473-474
- bold element, 334
- boldface, markup for, 334
- boolean() function, 161, 164
- border attribute, 340
- border-bottom property, 121-122
- border-left property, 121-122
- border-right property, 121-122
- border-top property, 121-122
- borders
- border attribute, 340
- border-bottom property, 121-122
- border-left property, 121-122
- border-right property, 121-122
- border-top property, 121-122
- CSS style rules, 121-122
- FO attributes, 201-202
- XHTML tables, 340
- XML documents, 201-202
- bottom attribute, 201-202
- br element, 346
- brackets (< >), in XML tags, 19
- browsers
- Amaya, 15
- Microsoft Internet Explorer
- and DHTML. See DHTML.
- DOMs, 424
- scripting. See scripting.
- XML support, 15
- Netscape Communicator, 15
- online resources, 15
- browsing XML, 15
- bulleted lists, 336-337
- business communication. See BizTalk framework.
C
- Candidate Recommendation status, 12
- caption element, 341
- Carriage Return characters, 36
- cascading, definition, 115
- Cascading Style Sheets (CSS). See CSS (Cascading Style Sheets).
- case-order attribute, 152
- case sensitivity
- entities, 29
- XML markup, 19
- XML names, 23
- CDATA attribute, 50
- CDATA tags, 34-35
- cellpadding attribute, 340
- cellspacing attribute, 340
- center attribute, 197
- char attribute, 342
- character data
- definition, 19
- ignoring
- CDATA tags, 34-35
- comments, 35-36
- character encoding, 22
- character entities, 28-29
- characters() method, 262
- charoff attribute, 343
- check boxes, 443-444
- child elements, 30
- child nodes, 227
- child sequences, XPointer, 219
- childNodes property, 236
- choice element, 102-103
- choose element, 148
- citations, markup for, 335
- cite element, 335
- classes
- XmlDocument
- definition, 292
- description, 309
- modifying an XML file, 310-311
- with XPathNavigator class, 312-313
- XmlNavigator, 292
- XmlTextReader
- definition, 292-293
- example, 296-299
- methods, 294-295
- properties, 293-294
- pull model, 293
- push model, 293
- XmlTextWriter
- definition, 292
- description, 303
- example, 306-308
- methods, 304-306
- properties, 304
- XmlValidatingReader
- definition, 292
- description, 299-301
- example, 301-303
- XPathNavigator
- description, 312-313
- methods, 313-315
- properties, 313-315
- walking the tree, 313, 316-322
- XPathNodeIterator, 318-322
- client-side programming, 282-283
- Close() method, 294, 304
- code element, 335
- col/ element, 342-343
- color attribute, 197
- color property, 125
- comma (,), in element declaration, 46
- comment() method, 268-269
- comments
- <!--...--> (comment tags), 35-36
- in documents, 35-36, 79
- getting from documents, 247
- ignoring, 35-36
- Common Object Request Broker Architecture (CORBA), 274
- compound documents, 9-10
- computer code, markup for, 335
- conditional DTD sections, 56-57
- constraining facets, 91
- content attribute, 72
- content elements, FO
- block, 184
- block areas, 184
- definition, 183
- external-graphic, 187
- footnote, 185-187
- footnotes, 185-187
- formatting sections of text, 185
- graphics, inserting, 187
- inline, 185
- list-block, 188-189
- lists, 188-189
- stacking block areas, 184
- table, 189
- table-and-caption, 189
- table-body, 190-191
- table-caption, 189-190
- table captions, 189-190
- table-column, 192
- table columns, 192
- table contents, 190-191
- table example, 192-194
- table-footer, 192
- table footers, 192
- table-header, 192
- table headers, 192
- tables, 189-190
- Content Handler, SAX interface, 261-263
- contentHandler property, 266
- CORBA (Common Object Request Broker Architecture), 274
- count() function, 166-170
- CR-LF breaks, 36
- CreateAttribute() method, 249
- CreateCDATASection() method, 249
- CreateComment() method, 249
- CreateElement() method, 249
- CreateProcessingInstruction() method, 249
- CreateTextNode() method, 249
- creating
- ASP files, 286-287
- client programs, 287-289
- CSS, 126
- data models, 7-8. See also data modeling.
- extended links, 213-217
- service classes, 285-286
- simple links, 210-212
- WSDL files, 287
- WSML files, 287
- XML, tools for, 14-15
- CSS (Cascading Style Sheets). See also XSL (Extensible Stylesheet Language).
- cascading, definition, 115
- creating, 126
- CSS1 specification, 114
- data storage vs. data presentation, 113
- definition, 6
- demonstration, 126-133
- document parts, selecting, 115-118
- limitations, 135
- referencing, 126
- selectors, 115-118
- storing, 114-115
- style rules
- background-color property, 125
- border-bottom property, 121-122
- border-left property, 121-122
- border-right property, 121-122
- border-top property, 121-122
- borders, 119, 120-122
- box-oriented formatting, 118-119
- color property, 125
- content area, 118
- controlling display of elements, 119-120
- display property, 119-120
- element color, 125
- font appearance, 123-124
- font-family property, 123-124
- font-size property, 124
- font-style property, 124
- font-weight property, 124
- height property, 120
- margin property, 122-123
- margins, 119, 122-123
- measurement units, 120
- padding area, 118-119, 122-123
- padding property, 122-123
- text-align property, 124-125
- text appearance, 124-125
- text-decoration property, 124-125
- text-indent property, 124-125
- text-transform property, 124-125
- width property, 120
- used with XSLT, 137
- versions, 114
- .css file extension, 126
- CSS selectors, 115-118
- CSS1 specification, 114
D
- data display vs. data storage, 3
- data islands
- accessing, 432-438
- external parser, 428-432
- Internet Explorer's parser, 424-428
- overview, 423-424
- data modeling
- definition, 7-8
- importance of, 41-42
- data modeling, with DTDs
- attributes, declaring
- attribute types, summary table, 50
- ENTITIES attribute, 51-52
- ENTITY attribute, 51-52
- Enumerated attributes, 50-51
- ID attribute, 52-53
- IDREF attribute, 52-53
- IDREFS attribute, 52-53
- multiple attributes, 54-55
- NMTOKEN attribute, 54
- NMTOKENS attribute, 54
- plain text, 49-50
- string attributes, 49-50
- syntax, 48-49
- tokenized attributes, 51-54
- conditional sections, 56-57
- demonstration, 57-59
- DOCTYPE tag, 44
- elements, declaring
- ANY elements, 48
- for child elements and data, 47-48
- for child elements only, 45-47
- element-only elements, 45-47
- empty elements, 45
- mixed elements, 47-48
- symbols used, 46
- syntax, 44-45
- example, 42-43
- external DTDs, 43-44
- internal DTDs, 43-44
- parameter entities, 55
- schemas
- defining, 43-44
- description, 41-43
- stand-alone documents, 44
- vocabularies, 41
- vs. XDR Schemas, 83-84
- data modeling, with XDR schemas
- attributes
- associating with elements, 78-79
- content, 72
- data type, specifying, 70-71, 74
- default, attribute element, 78-79
- default, AttributeType element, 77-78
- defining, 77-78
- maxOccurs, 74-76
- minOccurs, 74-76
- model, 72
- name, AttributeType element, 77-78
- name, ElementType element, 71
- order, 72-73
- required, attribute element, 78-79
- required, AttributeType element, 77-78
- type, 74-76, 78-79
- type, AttributeType element, 77-78
- type, ElementType element, 74
- values, 77-78
- data types, table of, 71
- definition, 63
- demonstration, 80-83
- documents
- comments, 79
- connecting to a schema, 79
- descriptive text, 79
- validating, 80
- elements
- attribute, 78-79
- AttributeType, 77-78
- data type, specifying, 70-71, 74
- datatype, 70, 71, 74
- defining, 70-74
- description, 79
- element, 74-76
- ElementType, 70-74
- group, 76-77
- grouping, 76-77
- root element, 69-70
- Schema, 69-70
- file names, 66
- vocabulary, 66-69
- vs. DTDs, 83-84
- XDR Schema DTD, 67-69
- XML namespaces
- declaration, 64-66
- default declaration, 64-66
- definition, 63-64
- explicit declaration, 64-66
- XML Schema
- benefits of, 61-62
- DCD, 62
- history of, 62-63
- replacing DTDs, 62
- XML Data, 62
- XSD, 63
- data modeling, with XSD schemas
- attributes
- default, element element, 100
- defining, 104-106
- ID, 90
- maxOccurs, 100
- minOccurs, 100
- referencing, 104-106
- data types
- anonymous definitions, 106-107
- combining restrictions, 95
- enumerations, 93-94
- list types, 94-95
- templates for, 95-97
- union types, 95
- Web listing of, 88
- data types, complex
- definition, 88
- user defined, 98-106
- data types, facets
- constraining facets, 91
- definition, 91
- pattern facet, 95-97
- regular expressions, 96-97
- summary table of, 92
- whiteSpace, 98
- data types, simple
- built-in, 88-90
- definition, 88
- user defined, 91-98
- demonstration, 108-111
- elements
- all, 103
- attribute, 104-105
- attributeGroup, 106
- choice, 102-103
- choosing one of a group, 102-103
- element, 99-100
- group, 100-101
- grouping, 100-101, 103
- identifying, 99-100
- schema, 107
- sequence, 101-102
- sorting, 101-102
- overview, 87
- software supporting, 88
- XML files, connecting to schemas, 107-108
- Data Source Object (DSO). See DSO (Data Source Object).
- data-type attribute, 152
- data types
- attributes, specifying, 70-71, 74
- elements, specifying, 70-71, 74
- XDR Schema, 71
- data types, XSD
- anonymous definitions, 106-107
- combining restrictions, 95
- complex
- definition, 88
- user defined, 98-106
- enumerations, 93-94
- facets
- constraining facets, 91
- definition, 91
- pattern facet, 95-97
- regular expressions, 96-97
- summary table of, 92
- whiteSpace, 98
- list types, 94-95
- simple
- built-in, 88-90
- definition, 88
- user defined, 91-98
- templates for, 95-97
- union types, 95
- Web listing of, 88
- databases. See also Access.
- maintaining
- ASP page, 407
- DoAdd() method, 409-413
- overview, 405-407
- RemoveFamily() method, 415-417
- XML template, 407-409
- XSD, validating new data, 413-415
- searching
- displaying retrieved information, 400-403
- DoSearch() method, 395-398
- dynamic links within XSL, 403
- GetFamily() method, 403-404
- LoadDom() method, 394
- pattern match, 398
- search request, 393-394
- transforming retrieved information, 399-400
- datatype element, 70, 71, 74
- DateTime values, 470
- DCD (Document Content Description), 62
- DCOM (Distributed Component Object Model), 274
- default attribute
- attribute element, 78-79
- AttributeType element, 77-78
- element element, 100
- definition lists, 336-337
- del element, 335
- deleted text, marking, 335
- Depth property, 293
- descendant nodes, 227
- description element, 79
- DHTML (Dynamic HTML)
- definition, 420
- description, 421-423
- DSO
- accessing data islands, 432-438
- description, 432
- $Text data field, 437-438
- viewing partial data, 435-437
- event bubbling, 422
- event detection, 422
- insertAdjacentHTML() method, 422-423
- insertAdjacentText() method, 422-423
- inserting text into documents, 422-423
- online resources, 421
- display property, 119-120
- Distributed Component Object Model (DCOM), 274
- div element, 421
- DoAdd() method, 409-413
- DOCTYPE tag
- data modeling, 44
- definition, 24
- vs. document type definition, 25
- Document Content Description (DCD), 62
- document element, 30
- document elements. See elements.
- document entities. See entities.
- Document entity, 24
- Document Object Model (DOM). See DOM (Document Object Model).
- Document Object Model (exposing DOM), 9
- document structure, FO
- flow element, 181-182
- footers, 182-183
- headers, 182-183
- layout-master-set element, 178
- master pages, defining, 179-180
- page content, placing, 180-183
- page-sequence element, 178, 180-181
- root element, 178
- static-content element, 182-183
- syntax, 178
- document type declaration tag. See DOCTYPE tag.
- Document Type Definition (DTD). See DTD (Document Type Definition).
- documents, BizTalk
- body, 473-474
- delivery, 469-470
- example, 468-469
- headers, 469-473
- manifests, 472
- processing, 472-473
- properties, 471
- transporting, 468
- documents, XHTML
- anchor elements, 337-338
- blank lines, inserting, 346
- body, 333
- document formatting, 332-333
- head element, 331
- horizontal rules, 346
- hyperlinks, 337-338
- images, 338-339
- script code, 332
- structure, 326-328
- tables
- body, 343
- borders, 340-341
- captions, 341
- cell padding, 340
- cell spacing, 340
- cells, 343-344
- column width, specifying, 343
- columns, defining, 342-343
- columns, spanning, 343
- demonstration, 344-346
- footers, 342
- frames, 340
- headers, 342
- rows, 343
- text alignment, horizontal, 342-343
- text alignment, vertical, 343
- text summary, 341
- width, 341
- text formatting
- abbreviations, 334
- acronyms, 334
- address blocks, 335
- block quotations, 336
- boldface, 334
- bulleted lists, 336-337
- citations, 335
- computer code, 335
- definition lists, 336-337
- deleted text, marking, 335
- emphasized text, 335
- font size, 334
- headings, 336
- inserted text, marking, 335
- italics, 334
- lists, 336-337
- monospace fonts, 334
- numbered lists, 336-337
- paragraphs, 336
- preformatted text, 336
- quotations, 335
- subscripts, 334
- text styles, 336
- title, 332
- documents, XML
- applying CSS, 115-118
- attributes, adding/deleting, 251
- background attributes, 198-199
- based on multiple vocabularies. See XML Namespaces standard.
- border attributes, 201-202
- Carriage Return characters, 36
- CDATA section, getting, 247
- character data, ignoring
- CDATA tags, 34-35
- comments, 35-36
- character data, referencing by numeric code. See character entities.
- colors. See CSS (Cascading Style Sheets); XSL (Extensible Stylesheet Language).
- comments
- creating, 35-36, 79
- getting, 247
- compound, 9-10
- connecting to schemas, 79, 107-108
- CR-LF breaks, 36
- data, modifying, 248
- descriptive text, 79
- display styles. See CSS (Cascading Style Sheets); XSL (Extensible Stylesheet Language).
- document schema type, determining, 353
- document type, getting, 247
- external binary data
- external binary entities, 27
- Notations, 33-34
- font-related attributes, 196
- fonts. See CSS (Cascading Style Sheets); XSL (Extensible Stylesheet Language).
- footers, 182-183
- footnotes, 185-187
- graphics, inserting, 187
- headers, 182-183
- identifying locations. See XPointer.
- inline area, 177-178
- language (human), specifying, 33
- Line Feed characters, 36
- line spacing. See CSS (Cascading Style Sheets); XSL (Extensible Stylesheet Language).
- linking to XSLT stylesheets, 141
- lists, 188-189
- loading, 229-232
- logical structure, 23. See also elements.
- margin properties, 200-201
- margins, 177-178
- master pages, defining, 179-180
- modifying structure with DOM, 382-386
- in multiple files, 23
- nodes, adding/deleting, 248-251
- nodes, namespace prefixes, 249
- page content, placing, 180-183
- physical structure, 23. See also entities.
- processing instructions, getting, 246-247
- rules for. See data modeling.
- saving, 229-232
- scripting, 35
- selecting parts for XSLT, 137
- stand-alone, 44
- structure, modifying, 248-251
- tables. See tables.
- text. See text, formatting.
- valid. See validation.
- well-formed
- definition, 8
- DTD, 351-355
- XDR, 351-355
- XSD, 356-359
- white space
- collapsing, 98
- in content, 37
- in markup, 36
- normalization, 36
- preserving, 98
- replacing, 98
- writing, 306
- DOM (Document Object Model). See also SAX.
- attribute data, reading, 244-246
- attributes property, 244-246
- definition, 9
- demonstration, 251-254
- description, 225-226
- documents
- attributes, adding/deleting, 251
- CDATA section, getting, 247
- comments, getting, 247
- data, modifying, 248
- document type, getting, 247
- loading, 229-232
- nodes, adding/deleting, 248-251
- nodes, namespace prefixes, 249
- processing instructions, getting, 246-247
- saving, 229-232
- structure, modifying, 248-251, 382-386
- DOMDocument events, 234-235
- element attributes, accessing, 244-246
- element data, reading, 240-244
- error handling, 232-233
- example, 226
- exposing, 9
- item() method, 239
- length property, 239
- levels of, 228
- .NET support for. See XmlDocument class.
- nextNode() method, 239
- ondataavailable event, 234-235
- onreadystatechange event, 234-235
- parse options, setting, 233-234
- process overview, 228-229
- reset() method, 239
- tree model
- accessing, 235
- childNodes property, 236
- description, 226-228
- element nodes, 237-239
- firstChild property, 236
- lastChild property, 236
- looping through child elements, 239, 242
- navigating, 236-239
- nextSibling property, 236
- node lists, 239
- parentNode property, 236
- previousSibling property, 236
- text nodes, 237-239
- types of, 424
- and XSLT, 254-255
- DOM objects
- appendChild() method, 250
- baseName property, 244
- DOMDocument object
- abort() method, 230
- async property, 230
- CreateAttribute() method, 249
- CreateCDATASection() method, 249
- CreateComment() method, 249
- CreateElement() method, 249
- CreateProcessingInstruction() method, 249
- CreateTextNode() method, 249
- definition, 229
- load() method, 230, 232
- loading documents, 229-232
- loadXML() method, 230
- methods, table of, 230
- MSXML2.DOMDocument, 229
- parseError property, 230
- preserveWhiteSpace property, 230
- properties, table of, 230
- readyState property, 230
- resolveExternals property, 230
- save() method, 230
- saving documents, 229-232
- validateOnParse property, 230
- DOMParseError object, 232
- ErrorCode property, 232
- filepos property, 232
- getNamedItem() method, 245
- insertBefore() method, 250
- item() method, 245
- IXMLDOMAttribute object
- definition, 236
- properties, 244
- IXMLDOMCDATAsection object, 236
- IXMLDOMComment object, 236
- IXMLDOMElement object
- definition, 236
- properties, 241
- reading attribute data, 244-246
- IXMLDOMNamedNodeMap object, 244-246
- IXMLDOMNode object, 236
- IXMLDOMNodeList object, 236
- IXMLDOMText object
- definition, 236
- properties, 241
- length property, 245
- line property, 232
- linepos property, 232
- nodeType property, 241
- nodeTypeText property, 241
- nodeValue property, 241
- object types, 236
- reason property, 232
- replaceChild() method, 250
- srcText property, 232
- tagName property, 241
- Text property, 241, 244
- url property, 232
- xml property, 241
- DOMDocument events, 234-235
- DOMDocument object
- abort() method, 230
- async property, 230
- CreateAttribute() method, 249
- CreateCDATASection() method, 249
- CreateComment() method, 249
- CreateElement() method, 249
- CreateProcessingInstruction() method, 249
- CreateTextNode() method, 249
- definition, 229
- load() method, 230, 232
- loadXML() method, 230
- methods, table of, 230
- MSXML2.DOMDocument, 229
- parseError property, 230
- preserveWhiteSpace property, 230
- properties, table of, 230
- readyState property, 230
- resolveExternals property, 230
- save() method, 230
- saving documents, 229-232
- validate() method, 353
- validateOnParse property, 230
- DOMParseError object, 232
- DoSearch() method, 395-398
- double slash (//), in XPath patterns, 153
- DSO (Data Source Object)
- accessing data islands, 432-438
- description, 432
- $Text data field, 437-438
- viewing partial data, 435-437
- DTD (Document Type Definition)
- creating data models. See data modeling, with DTDs.
- definition, 8
- external, 43-44
- for FO, 176
- ignoring code in, 56-57
- internal, 43-44
- vs. document type declaration, 25
- well-formed and valid documents, 351-355
- Dynamic HTML (DHTML). See DHTML (Dynamic HTML).
E
- electronic communication. See BizTalk framework.
- element attributes, accessing, 244-246
- element data, reading, 240-244
- element element, 74-76, 99-100
- element nodes, 237-239
- element-only elements, 45-47
- elements. See also attributes.
- a, 337-338
- abbr, 334
- acronym, 334
- address, 335
- align attribute, 342
- all, 103
- apply-templates, 149-151
- arc, 215-217
- attribute, 78-79, 104-105
- attributeGroup, 106
- AttributeType, 77-78
- big, 334
- block, 184
- blockquote, 336
- Body, 279
- body, 333, 473-474
- bold, 334
- border attribute, 340
- br, 346
- caption, 341
- cellpadding attribute, 340
- cellspacing attribute, 340
- char attribute, 342
- charoff attribute, 343
- child elements, 30
- choice, 102-103
- choose, 148
- choosing one of a group, 102-103
- cite, 335
- code, 335
- col/, 342-343
- data type, specifying, 70-71, 74
- datatype, 70, 71
- datatype, 74
- declaring
- ANY elements, 48
- for child elements and data, 47-48
- for child elements only, 45-47
- element-only elements, 45-47
- empty elements, 45
- mixed elements, 47-48
- symbols used, 46
- syntax, 44-45
- defining, 70-74
- definition, 2, 23, 30
- del, 335
- description, 79
- div, 421
- document element, 30
- element, 74-76, 99-100
- ElementType, 70-74
- em, 335
- empty elements, 31-32
- Envelope, 277-278
- example, 30-31
- expiresAt, 471
- external-graphic, 187
- flow, 181-182
- footnote, 185-187
- for-each, 149, 151
- frame attribute, 340-341
- from, 469-470
- group, 76-77, 100-101
- grouping, 76-77, 100-101, 103
- h1 through h6, 336
- handle, 473
- head, 331
- Header, 278-279
- hr, 346
- i, 334
- identifying, 99-100
- identifying with XPointer, 218-219
- identity, 471
- if, 147-148
- img/, 338-339
- inline, 185
- ins, 335
- instance, 473
- layout-master-set, 178
- list-block, 188-189
- locator, 213-214
- manifest, 472
- nesting, 30
- otherwise, 148
- p, 336
- page-sequence, 178, 180-181
- pre, 336
- process, 472-473
- properties, 471
- q, 335
- reference, 472
- reliability, 469-470
- resource element, 214-215
- root, 178
- root element, 30, 69-70
- rules attribute, 341
- Schema, 69-70
- schema, 107
- script, 332
- sentAt, 471
- sequence, 101-102
- small, 334
- sort, 151-152
- sorting, 101-102
- span, 336, 421
- span attribute, 343
- static-content, 182-183
- strong, 335
- style, 332-333
- stylesheet, 140
- sub, 334
- summary attribute, 341
- table, 189
- table-and-caption, 189
- table-body, 190-191
- table-caption, 189-190
- table-column, 192
- table-footer, 192
- table-header, 192
- tbody, 343
- td, 343-344
- template, 145-146
- text, 147
- tfoot, 342
- th, 343-344
- thead, 342
- title, 217, 332
- to, 469-470
- topic, 471
- tr, 343
- tt, 334
- type, 473
- valign attribute, 343
- value-of, 146
- width attribute, 341, 343
- ElementType element, 70-74
- em element, 335
- emphasized text, 335
- empty elements, 31-32, 45
- encoding business data, 466
- encodingStyle attribute, 279
- end attribute, 197, 201-202
- end-indent attribute, 198, 200-201
- endCDATA() method, 269
- endDocument() method, 261
- endDTD() method, 269
- endElement() method, 261-262
- .ent file extension, 26
- entities
- case sensitivity, 29
- character entities, 28-29
- definition, 23
- DOCTYPE tag, 24
- Document entity, 24
- external binary entities, 27
- external text entities, 25-27
- internal text entities, 25
- parameter entities, 55
- referencing, 27-28
- reserved character entities, 29
- for special characters, 29
- ENTITIES attribute, 50-52
- ENTITY attribute, 50-52
- Enumerated attributes, 50-51
- enumerations, 93-94
- Envelope element, 277-278
- EOF property, 293
- Error Handler, SAX interface, 263-265
- error handling, DOM, 232-233
- error() method, 265
- ErrorCode property, 232
- errorHandler property, 266
- event bubbling, 422
- event detection, 422
- event-driven interface, SAX, 258-259
- Excel
- opening XML files, 479-482
- saving spreadsheets as XML, 482-486
- expiresAt element, 471
- exposing DOM, 9
- expressions
- regular, 96-97
- XPath. See XPath expressions.
- extended links
- actuate attribute, 215-217
- arc element, 215-217
- arcrole attribute, 215-217
- creating, 213-217
- defining behavior of, 213
- definition, 209
- description, 212-213
- from attribute, 215-217
- local resources, identifying, 214-215
- locator element, 213-214
- remote resources, identifying, 213-214
- resource element, 214-215
- role attribute, 213
- show attribute, 215-217
- title attribute, 215-217
- title element, 217
- to attribute, 216-217
- traversal information, specifying, 215-217
- type attribute, 213, 215-217
- extensible, definition, 3
- Exte