Web browser
Ajax code, 426-427
CSS compatibility, 88-91
XPath, 297-298
XSLT, executing, 262-263
Web language
handler, 703-704
verbs and URLs, 701-703
Web page, adding JavaScript to
functions, 406-407
problem, 406
tag, 406
Web reference, ASP.NET, 587-589
Web Service Deployment Descriptor (WSDD) file, creating, 586-587
Web services. See also WS-* specifications
asynchronous consumption
described, 601-602
slow service, building, 602-603
TakeLongTime() WebMethod, 603-605
Axis
described, 580
publishing, 582-587
setting up, 580-582
C#
building described, 571-574
consuming with ASP.NET, 587-591
Microsoft Web services test page, 575-576
protocols, altering, 578-579
WebMethod, testing, 576-578
caching, 599-600
composition
data, representing and communicating, 568
described, 567-570
discovering, 570-571
described, 565-570
discovering, 570-571
framework
binary attachments, 650
digital signature, 651
encyrption, 651
guaranteed message exchange, 651
inspection, 651
message correlation, 651
message envelope and controlled extensibility, 650
message exchange (routing), 650
Process Flow Contract Description, 651
Java
building with, 579
client application, running, 596-597, 599
HelloWorld service, 594-596
ProductService, consuming, 597-599
Microsoft test page, 575-576
Microsoft WSE
client, 676-679
described, 665-666
exchange, result of, 679-681
functionality, 664-665
version 1.0, 664
version 2.0, 664
version 3.0, 663-664
Microsoft WSE server
application, configuring, 669-673
building service, 676
credential verification class, 667-669
described, 666-667
diagnostics, configuring, 673-674
results, 674-676
model, 649-650
SOAP, extending with
described, 653-655
extensions, 655-656
headers, 655
Tomcat
described, 580
setting up, 580-582
Windows forms, consuming with, 591-594
WSDL, defining
<binding>, 643-644
<definitions>, 638-640
described, 633-637
document structure, 637-638
<documentation>, 647-648
<import>, 645-647
<message>, 641-642
<portType>, 642-643
<service>, 645
<soap:binding>, 644
<soap:body>, 644-645
<soap:operation>, 644
<types>, 640-641
Web Services Enhancements. See WSE
web.config, adding REST to, 716-717
WebMethod, testing, 576-578
Western European (windows-1252) character set, 23
when element, 252
where clause, FLWOR, 307, 309-310
whitespace
tags, 13-14
XSLT, controlling with strip-space, preservespace, and decimal-format, 243-244
whitespace primitive data type, 202
width property, CSS, 83
Wiley Publishing
Beginning Python, 510
Professional CSS: Cascading Sheets for Web Design, 81, 82
Programming Perl, 502
Windows forms, 591-594
Windows Presentation Foundation. See WPF
windows-1250 (Central European) character set, 23
windows-1251 (Cyrillic) character set, 23
windows-1252 (Western European) character set, 23
windows-1253 (Greek) character set, 23
Word (Microsoft)
editing XML documents, 788-792
saving documents as XML, 782-788
word order
attributes
described, 26
empty, 26-27
naming, 26
uniqueness, 27
xml:lang, 28
xml:space, 28-29
comments, 23-25
declaration
encoding attribute, 22-23
standalone attribute, 23
version attribute, 22
document .xml file, 17-22
elements
described, 7-8
empty, 11
naming conventions for elements, 8-9
nesting, 10
start and end tag, 8
namespaces, 29-31
parsers, 6-7
processing instructions, 25-26
tags
CDATA sections, 16-17
content, 12
described, 7-8, 11-12
entity references, 14-15
spoken languages, 12-13
text length, 12
whitespace, 13-14
well-formed documents, 6
workbooks, Excel, saving as XML, 773-777
WPF (Windows Presentation Foundation)
application, creating, 815
described, 809-812
document
building, 815-820
viewing, 820-823
image, adding to document, 823-825
nesting controls, 812-814
within Visual Studio 2005, 809-812
XPS file, saving document as, 825-829
wrapping Geocode service, 687-689
writing XML
Java
described, 477-478
JAXP serializer, 478-479
serializing using StAX, 479-480
Perl, 508-509
Python, 514-516
Ruby, 523-526
SAX contents, 396-399
XmlTxtWriter, 447-449
XmlWriter, 450-452
WSspecifications
addressing, 657-658
attachments, 658
coordination, 658
core specifications, 659-663
described, 656
security
credential exchange, 657
message confidentiality, 657
message integrity, 657
WS-MetadataExchange, 658
WSDD (Web Service Deployment Descriptor) file, creating, 586-587
WSDL Web services, defining
<binding>, 643-644
<definitions>, 638-640
described, 633-637
document structure, 637-638
<documentation>, 647-648
<import>, 645-647
<message>, 641-642
<portType>, 642-643
<service>, 645
<soap:binding>, 644
<soap:body>, 644-645
<soap:operation>, 644
<types>, 640-641
WSE (Web Services Enhancements)
client, 676-679
described, 665-666
exchange, result of, 679-681
functionality, 664-665
server
application, configuring, 669-673
building service, 676
credential verification class, 667-669
described, 666-667
diagnostics, configuring, 673-674
results, 674-676
version 1.0, 664
version 2.0, 664
version 3.0, 663-664
http://www.WS-I.org, 652-653
WS-MetadataExchange, 658
W3C validation service, 72
XAML (eXtensible Application Markup Language)
described, 807-808
thin- of thick-client, 808-809
WPF
application, creating, 815
described, 809-812
document, building, 815-820
document, viewing, 820-823
image, adding to document, 823-825
nesting controls, 812-814
within Visual Studio 2005, 809-812
XPS file, saving document as, 825-829
Xerces (Apache), 7
XForms
actions logic, 744-745
appearance, changing control, 733
children, common control, 731-732
clients, 755-756
controls, 727-730
described, 722-727
events logic, 743-744
grouping controls, 733-737
instance data, binding, 737-741
Microsoft InfoPath versus, 754-755
sample, 745-750
submit protocol, 741-743
XHTML (eXtensible HyperText Markup Language)
<font> element, 81
forms, 721-722
markup, evolution of, 67-68
microformats
described, 94-95
RelNoFollow, 95
Rel-Tag, 95
microformats, compound
hCalendar, 97-98
hCard, 96-97
hReview, 98-99
resources, 100
Tidy application, 73-77
Tidy UI application, 78-80
validating, 69-72
versions, 68
W3C validation service, 72
Xindice database
retrieving XML, 345-348
storing XML, 348-349
XMetaL editor, 62
XML (eXtensible Markup Language)
in ASP.NET 2.0
described, 461
XmlDataSource server control, 462-466
Data Type Query and data modification
described, 319-320
exist() method, 321
modify method, 321-322
nodes method, 321
query method, 320
value method, 320-321
declaration, XML Schemas root document, 172
elements, reusing in DTDs, 152-153
schemas
Altova XMLSpy, 209-210
<annotation>, 206
commenting
DTDs, problem with, 169-171
Microsoft Visual Studio 2005, 207-208
RDF, 769-771
standard, 205-206
server control, 467-469
SOAP, 609
syntaxes, converting between, 272-274
tools, creating DTDs with, 166
Xindice database
retrieving XML, 345-348
storing XML, 348-349
XPath editor, 299
.xml file, 17-22
XML Schemas root document
declaring elements
atomic simple type, 176-177
complex types, 180-181
list simple type, 177-178
named complex types, reusability and, 181-183
<sequence> and <all> elements, 183-184
type element, 184-188
union simple type, 179
defining attributes
attribute groups, 202-203
default values, 199-200
described, 198-199
use attribute, 200
values, restricting, 200-202
described, 171-172
element restrictions
cardinality, 192
default values, 195-196
fixed values, 196-197
maxOccurs attribute, 193-195
minOccurs attribute, 192-193
null values, 197-198
<group> element, 189-192
<import>, 203-204
<include>, 204
root element
attributeFormDefault attribute, 172-173
described, 172
elementFormDefault attribute, 174
targetNamespace attribute, 174-175
version attribute, 175
xml:lang attribute, 175-176
XML declaration, 172
XML tree models
described, 480-481
DOM alternatives, 481
DOM4J, 483-484
JDOM, 482-483
XOM, 484-486
XmlCursor, invoking execQuery() from, 317-318
XmlDataSource server control
described, 462-466
namespace problem, 466-467
XmlDocument, 550-552
XMLHttpRequest, 410-415
xml:lang attribute, 28, 175-176
XmlObject, invoking execQuery() from, 315-317
XMLParser (Expat), 7
XMLParser for Java (IBM), 7
XMLParser (Mozilla), 7
XMLParser (Oracle), 7
XmlReader
described, 552-556
class
casting XML types to .NET-compliant types, 459-460
sample, 454-457
schema validation, reading with, 457-459
interface, 382, 384-385
XMLReader interface, 382, 384-385
xmlsequence(), 344
XmlSerializer class, 436-438
xml:space attribute, 28-29
XMLSpy 2006 (Altova)
benefits and disadvantages, 47
described, 39-44
schema development, 44-45
script editor, 46-47
Spy debugging, 624-629
XML Schemas, 209-210
XSLT development, 46
XmlTxtWriter, writing XML using, 447-449
XmlWriter
creating XML programmatically, 452-454
writing XML with, 450-452
XmlTxtWriter, writing XML using, 447-449
XPath
axes, 281-282
in browser, 297-298
comments and nested comments, 286-287
debugging with trace(), 292-293
described, 277
Eclipse, 300
expressions
FLWOR expressions versus, 310-311
tuning, 284
function calls in path expressions, 285-286
//h1[1] different than (//h1)[1], 289-291
IntelliJ, 300
in Java, 293-295
many faces of a document, 283
on .NET, 295
nodes, 278
online XPath Sandbox, 296-297
path expressions, 279
in PHP, 296
predicates, 279-280
regular expressions, 287-288
reverse axis, 291-292
sequences, 282
tree structure, 278-279
union (|) and sequence concatenation (,) operators, 289
unordered() function, 288-289
when A != B Is different from not(A = B), 282-283
XML editors, 299
XPath 2.0 Programmer's Reference (Kay), 300
XPathDocument class, 460-461
XPS file, saving WPF document as, 825-829
XQJ (XQuery API for Java), 499-500
XQuery
advantages, 304
described, 303-304
enclosed expressions, 306
expression, structure of, 304-305
FLWOR expressions
described, 306-307
for clause, 308-309
let clause, 309
order by clause, 310
return clause, 310
sample, 307-308
where clause, 309-310
XPath expressions versus, 310-311
functions
aggregate (count, avg, max, min, and sum), 312
built-in, described, 311-312
doc(), 312
string, 312-313
user-defined, 313-314
in Java, 314
relational databases
described, 318
SQL Server 2005, 318-319
XML Data Type Query and data modification, 319-322
sample, 305-306
selecting XML
XmlCursor, invoking execQuery() from, 317-318
XmlObject, invoking execQuery() from, 315-317
use cases, 304
XQuery API for Java (XQJ), 499-500
XSL-FO (eXtensible Stylesheet Language-Formatting Objects)
basic formatting
described, 111-112
lists, 112-114
tables, 114-116
composition, 102-103
described, 101
Hello World example, 109-110
Microsoft Java Virtual Machine, 108
overview, 103-105
page templates, fo:simple-page-master, 105-108
working example
described, 117-119
formatting table cells, 122-123
header, 120-122
high-level layout for invoice, 119-120
PDF, 126-127
rendering table, 123-124
sale item table, 127-130
summary table with total values for invoice, 130-131
XSLT code, 125-126
XSLT (XSL Transformations)
changes ahead in version 2.0, 263-268
code, XSL-FO, 125-126
conditional processing (if element), 251-252
debugging, 274-275
development
Altova XMLSpy 2006, 46
Oxygen XML Editor 6.2, 60-61
Stylus Studio 2006, 51-53
Visual Studio 2005, 38-39
executing
in browser, 262-263
at command line, 258-259
via code, 259-261
extending with script, 257-258
functions, built-in, 256-257
looping (for-each element), 252-255
output, generating
HTML, 268-272
XML syntaxes, converting between, 272-274
required syntax items
output, controlling, 245-247
stylesheets, including with include and import, 243
top-level elements, 242-243
whitespace and formatting, controlling with strip-space, preserve-space, and decimal-format, 243-244
resources, 276
retrieving values
calling templates, 249-250
described, 248-249
multiple templates for single element, 250-251
sample, 241-242
templates, 247
variables and parameters, 255-256