Home > Store

XML-the Microsoft Way

Register your product to gain access to bonus material or receive a coupon.

XML-the Microsoft Way

Book

  • Sorry, this book is no longer in print.
Not for Sale

Description

  • 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

Extras

Related Article

.NET Tools for Working with XML

Sample Content

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, 46
in XPath expressions, 160
/ (slash)
in end tags, 2
in XPath patterns, 153
// (double slash), in XPath patterns, 153
& (ampersand)
encoding form data, 447
entity for, 29
in entity names, 27-28
' (apostrophe), entity for, 29
* (asterisk)
in element declaration, 46
in XPath patterns, 153
@ (at sign), in XPath patterns, 153
% (percent sign), encoding form data, 447
+ (plus sign)
in element declaration, 46
encoding form data, 447
? (question mark)
in element declaration, 46
encoding form data, 447
" (quotes), entity for, 29
< > (brackets), in XML tags, 19
< (less than), entity for, 29
> (greater than), entity for, 29

A

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
&amp 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

Updates

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020