Index

SYMBOLS AND NUMBERS for XML attributes, 314 & (ampersand) == (equal signs) operator in JavaScript in character entities, 55 202,233 character entity for, 56 > (greater than sign) in URis, 149, 305 character entity for, 56 && (ampersands) operator in JavaScript, for HTML tags, 29 233 operator in JavaScript, 233 < > (angle brackets) for XML tags, 312 for HTML tags, 28-29 >= (greater than or equal to) operator in for XM:L tags, 312 JavaScript, 233 '(apostrophe) character entity for, 56 < (less than sign) * (asterisk) character entity for, 56 in regular expressions, 282 for HTML tags, 29 in XSLT stylesheets, 357 operator in JavaScript, 233 @ (at sign) in XSLT stylesheets, 358 for XML tags, 312 ! (bang) operator in JavaScript, 233 <=(less than or equal to) operator in != (bang and equal sign) operator in JavaScript, 233 JavaScript, 233 - (minus sign) operator in JavaScript, 202, {} (braces) 231 in regular expressions, 283 -- (minus signs) operator in JavaScript, for statement blocks in JavaScript, 202 231 for style rule declarations, 71, 77 -= (minus and equal signs) operator in A (caret) in regular expressions, 251, 282, JavaScript, 232 283 * (multiplication sign) operator in :(colon) JavaScript, 231 in namespaces, 327, 386 *= (multiplication and equal signs) oper• in style rule declarations, 71, 102 ator in JavaScript, 232 in ,4   (non-breaking space character), inXML, 311 35,56 $(dollar sign) in empty table cells, 109, 141 in regular expressions, 251, 283 I (pipe character) for string in XSLT stylesheets, 376 in regular expressions, 283 . (dot) in XSLT stylesheets, 366-367 in object model, 173-174 II (pipe characters) operator in JavaScript, for style classes, 80 233 in XSLT stylesheets, 357 + (plus sign) =(equal sign) operator in JavaScript, 202, 231 for HTML attributes, 31, 36, 71 in regular expressions, 251, 282 operator in JavaScript, 202, 232 ++ (plus signs) operator in JavaScript, 231

447 Index

+= (plus and equal signs) operator in A JavaScript, 232 a element (HTM1), 42-43, 45-48,49. See # (pound sign) in style sheet selectors, 82 also hyperlinks ? (question mark) accessing with the DOM, 189, 190 in regular expressions, 282 href attribute, 45, 49 in URis, 149, 305 target attribute, 49 " (quotation mark) absolute positioning, 153-159 character entity for, 56 defining with style properties, 85-89, for HTM1 attributes, 31 98 inJavaScript, 210,212-213, for form layout, 153-159 242-243 dra~backs, 154-155 in URis, 305 absolute URis, 42-43 for XHTM1 attributes, 36 accessibility ofWeb pages, 45, 51, 66 for Xl\11 attributes, 314, 319 accesskey attribute for XS1T stylesheets, 350 of button element (HTM1), 160 ' (single quotation mark). See" (quo• of input element (HTM1), 161-162, tation mark) 164 ; (semicolon) oflabel element (HTM1), 164 in character entities, 55 action attribute as cookie delimiters, 298 accessing with the DOM, 191 to end JavaScript statements, 201, 210, ofform element (HTM1), 135, 149, 213 160,426,429,432,434 in style rule declarations, 71 action property of forms collection I (slash) (DOM), 191 in HTM1 ending tags, 29 Active Server Pages. See ASP (Active operator in JavaScript, 231 Server Pages) in URLs,4 ActiveX controls, as client-side tech• inXHTM1,36 nology, 417,420,422 inXl\11, 312 actors, 13 in XS1T stylesheets, 344, 357 Adobe Photoshop, 16, 61 I= (slash and equal sign) operator in alert() method ofwindo~ object JavaScript, 232 (bro~ser object model), 175, II (slashes) 178,404 comments in JavaScript, 203, 439 to display cookie contents, 307 delimiters for regular expressions, 251 for user notification of invalid data [] (square brackets) for array entries in entry, 250, 268-270 JavaScript, 173, 181, 235 to ~ite out debug messages, 243 comments align attribute in HTM1, 32, 439 of caption element (HTM1), 126 in Xl\11, 315-316 of col element (HTM1), 129 in XS1T stylesheets, 343-344 of colgroup element (HTM1), 129 I* *I comments ofdivelement (HTM1), 50 in JavaScript, 203 of h1 element (HTM1), 51 in style sheets, 95, 439 ofimg element (HTM1), 45,51 <%%>for ASP scripts, 431 of p element (HTM1), 53 for PHP scripts, 434 of table element (HTM1), 127

448 Index

oftbodyelement (HTML), 129 appName property of navigator object oftd element (HTML), 127 (browser object model), oftfoot element (HTML), 130 205,244 ofth element (HTML), 128 appVersion property of navigator object ofthead element (HTML), 130 (browser object model), 177, oftrelement (HTML), 128 244 all property of document object, arbitrary descendants, 357 179,244 architecture ofWeb application. See Web alt attribute application architecture ofimg element (HTML), 45,51 Array object (JavaScript), 235, 236 of input element (HTML), 162 accessing entries, 298-299 ampersand (&) creating, 235 in character entities, 55 ASP (Active Server Pages) character entity for, 56 as server-side technology, 149,427, in URis, 149,305 431-433,437 ampersands(&&) operator (JavaScript), and submitting form data, 149, 233 431-433 anchor tag, 49. See also a element in three-tiered architecture, 439,443 (HTML) using XSL with, 379 anchors collection (DOM), 180, 189 ASP .NET, as server-side technology, 433 anchors property of document object asterisk (*) (DOM), 189 in regular expressions, 282 angle brackets (< >) in XSLT stylesheets, 357 for HTML tags, 28-29 async property of document object forXML tags, 312 (DOM), 398-399 API (Application Programming Interface) at sign (@) in XSLT stylesheets, 358 functions, 427 attribute-basedXML, 315-316 apostrophe (') character entity for, 56 attribute element appendChildO method of object default attribute (schema), 392 CDOM), 186-187, 194, name attribute (schema), 392 407-413 name attribute (XSLT), 369-372 applets, as client-side technology, 190, type attribute (schema), 392 417 use attribute (schema), 392 applets collection (DOM), 182, 190 attribute nodes, 185, 192 applets property of document object attributes (DOM), 190 accessing Application Programming Interface (API) with the DOM, 192, 195 functions, 427 with XPath, 358-359 application server, 440 creating, 190, 195, 261 applications, communication between, deprecated,49-54, 74,126-128 329,379 for form data validation, 261 apply-templates element (XSLT), ofHTMLelements, 28,31-32. See also 343-345,363-366,367,372, HTML (Hypertext Markup 376-378 Language) select attribute, 372, 376-378 removing, 195 using variables, 376 vs. style sheet properties, 71

449 Index

attributes (cont.) bold text, 49, 94, 96 ofXHTML elements, 36 boolean data type ofXML elements, 312, 313-314 in JavaScript, 202 attributes property of node object in schema, 393 (DOM), 192 border attribute of img element (HTML), 52 B of table element (HTML), 107-108, b element (HTML), 49 127 back() method of history object (browser for debugging, 131, 168 object model), 176 bordercolor attribute of table element background-attachment property (style (HTML), 127 sheet), 95 borderless tables, 106-107, 123 background attribute of body element forformlayout, 141 (HTML), 50 br element (HTML), 29, 35, 50 background-color property (style sheet), braces ({}) 95 in regular expressions, 283 background-image property (style for statement blocks in JavaScript, 202 sheet), 95 for style rule declarations, 71, 77 background images, minimizing size, 63 breadcrumbs,19,21 bang (!) operator (JavaScript), 233 browser. See bang and equal sign(!=) operator browser object model, 175-179 (JavaScript), 233 document object, 175 Berners-Lee, Tim, 3 history object, 175, 176 bgcolor attribute JavaScript and, 205 of body element (HTML), 40, 50 location object, 175, 176-177 of table element (HTML), 127 navigator object, 175-176, 177. 205 of td element (HTML), 127 window object, 175,177-178 ofth element (HTML), 128 browser-safe color palette, 44, 61 oftr element (HTML), 128 built-in templates (XSLT), 366-368 bill paying, online, 425 and extra elements in output, blinking text, 98 378-379 block-level elements (HTML), 31,34-35 bulleted list, 54 div, 50 business applications, Web applications h1, 51 for, 1 hr, 51 button element (HTML), 135-136, 160 p,53 accesskey attribute, 160 pre, 54 disabled attribute, 160 Bobby,66 id attribute, 160 body element (HTML), 33, 49 name attribute, 135-136, 160 accessing with the DOM, 180, 190 type attribute, 135-136, 160 background attribute (deprecated), 50 value attribute, 135-136, 160 bgcolor attribute (deprecated), 40, 50 link attribute (deprecated), 50 c style rule for, 77 CIC++, 417. See also Microsoft C++ text attribute (deprecated), 50 as server-side technology, 427,428 body property of document object in three-tiered architecture, 443 (DOM), 190 Cailliau, Robert, 3

450 Index caption element (HTML), 126 in XML, 319-320 align attribute, 126 checkbox. See input element (HTML) caret(") in regular expressions, 251, 282, checked attribute of input element 283 (HTML), 161-162 carriage return, 35. See also br element child element (HTML) in the DOM, 187 Cascading Style Sheets (CSS), 69-104. See inXML, 313,317 also style sheets child nodes, 17 4. See also nodes as client-side technology, 416, accessing 418-419,421 usingtheDOM, 184-187 precedence, 78,93-95 using :XSLT stylesheets, 344-345, as server-side technology, 424, 426, 436 355-356 specification, 70, 72 creating, 194 in three-tiered architecture, 443 exist, 194 case sensitivity removing, 194 of file names, 43 replacing, 195 of functions (JavaScript), 242 childNodes collection of document of HTML elements and attributes, object (DOM), 184-187, 189, 28-29,156,168 192,403-404 inJavaScript, 201,213,217,242 childNodes property of path names, 43 of document object (DOM), 189 of regular expressions, 283 of node object (DOM), 192 and Web browsers, 168 choose element (XSLT), 369-372 ofXHTML elements, 29, 35, 37 class attribute ofXML elements, 311,331-332 accessing ofXPath, 360, 378 with attribute element (XSLT), 370 in :XSLT stylesheets, 378 with the DOM, 193 catalogs, dynamic generation, 425 ofHTML elements, 81 CCPP (Composite Capability Preference className property of node object Profile), 36 (DOM), 193 CDATA (Character Data), 318, 320 clearInterval() method of window object cellpadding attribute of table element (browser object model), 178 (HTML), 123, 127 clearTimeout() method of window object cells in tables, 105-106 (browser object model), 178 empty, 109, 131, 141 clicking, event handler for, 229 cellspacing attribute of table element client-side, 3 (HTML), 123, 127 client-side scripts, 200. See also scripts CGI (Common Gateway Interface) client-side Web application architecture, Perl for scripts, 427, 429-431, 437 416-423 as server-side technology, 426-427 advantages, 422 and submitting form data, 149, combined with server-side, 426-427 438-440 .cgi file extension, 429 common applications, 417-418 character data (XML). See CDATA disadvantages,423 (Character Data) technologies, 418-421 character entities ActiveX controls, 417,420,422 in HTML, 55-56 applets, 417

451 Index

client-side Web application oftable, 127-128 architecture (cont.) setting with JavaScript, 369-372 Cascading Style Sheets, 416, for user notification of invalid data 418-419. See also Cascading entry, 268-269 Style Sheets (CSS) values, 55 Flash, 421, 422 color attribute offont element (HTML), HTML, 416,418,421. SeealsoHTML 50,55 (Hypertext Markup Language) color property (style sheet), 70-71,95 Java applets, 417, 420-422 cols attribute oftextarea element JavaScript, 416,419,421. See also (HTML), 165 JavaScript colspan attribute VBScript, 200, 420, 422 oftd element (HTML), 125, XML, 416,419,422. SeealsoXML 127,141 (Extensible Markup Language) ofth element (HTML), 128 XSL,335-379,416,419-420,422. columns in tables, 105-106 See also XSL (Extensible COM (Component Object Model), 441 Stylesheet Language) combo box. See selection box in form close() method of window object commenting (browser object model), 178, in combined architecture, 439 242 to hide closed property of window object JavaScript, 212-213 (browser object model), 177, styles, 76-77 242 in HTML, 32, 58, 439 col element (HTML), 129 in JavaScript, 203, 439 align attribute, 129 forfunctions,218,254 valign attribute, 129 in schemas, 394 colgroup element (HTML), 129 for style elements, 76-77 align attribute, 129 in style sheets, 95, 439 valign attribute, 129 techniques, 26 collections of objects, 173 in VBScript, 439 accessing entries in collection, 173 in XML, 315-316 inDOM, 180 in XSLT stylesheets, 343-344 in JavaScript, 235 comparison operators (JavaScript), 202, colon(:) 233 in namespaces, 327, 386 complexType element (schema), in style rule declarations, 71, 102 386-388,392 in URLs,4 name attribute, 386-388, 392 inXML,311 Component Object Model (COM), 441 color, 43-44 Composite Capability Preference Profile ofbackground,40,50 (CCPP), 36 style sheet property for, 79, 95 conceptual design, 17-18 of font, 50, 55 consistency changing with JavaScript, 206, in page layout, 22 209-211,235 from styles, 72 style sheet property for, 70-71, 95 content of images, 61,63 of HTML elements, 29 names, 55 ofXML elements, 312

452 Index content attribute of meta element D (HTML), 53, 62, 208 data collection in server-side context node (XSLT), 344-345, architecture, 424 355,356 Data design, 12, 24 controls. See fields data, displaying cookie property of document object ~thHTML, 105-107 (DOM), 190 ~th JavaScript, 397 for data retrieval, 297-298 ~th style sheets, 112-116 for data storage, 294-297 ~th XSLT stylesheets, 335, 417 cookies, 289-308 data entry. See also forms in HTML alternatives to, 304-306 page elements for, 22, 134 basics, 290-294 data retrieval from cookies, 297-302 data retrieval from, 190, 297-302 data storage in cookies, 294-297 for data storage, 190, 294-297 data submission. See submitting form decoding, 289-299. See also data unescape() function data tier in software architecture, 440 (JavaScript) data transfer, XML for, 329, 443 definition, 290 data types encoding, 292, 295, 305. See also in JavaScript, 202, 234 escape() function in schema, 385, 387-388, 393 (JavaScript) data validation. See form data validation expiration date of, 293, 304 database, parsing, 298 designing, 12, 24 to pass form data, 302-303 using, 148, 306, 320, 329, 419, resources, 308 423-425,436,440 and security, 290, 302, 303-304 date data type (schema), 393 and state management, date, displaying on a Web page, 212-216 302-303 Date() function (JavaScript), 213 turned off, 306 Date object (JavaScript), 236-237, 295 uses for, 289 debugging vie~ng,291-292,307 forms, 167-168 copyright for images, 61 HTML, 41,64 copyright symbol, character entity JavaScript, 242-244 for, 56 style sheets, 102-103 createAttribute() method of document tables in HTML, 109, 131 object (DOM), 190 unexpected output data, 368 createElement() method of document writing debug messages, 243 object (DOM), 186, 190, XML,331-332 407-413 XSLT stylesheets, 368, 378-379 createTextNodeO method of document declaration in style sheet rules, 71 object (DOM), 187, 190, default attribute of attribute element 407-413 (schema), 392 CSS. See Cascading Style Sheets (CSS); default page for Web site, 59 style sheets default values for form input, 136, 297 . file extension, 73, 89 default XML attributes (schema), 384 curly braces ( {}) . See braces defaultXSLT templates, 366-368, current() expression CXPath), 376 378-379

453 Index

default.htm, 59 documentElement property of document deprecated elements and attributes, object (DOM), 189 49-54,126-128 documents. See also Web pages depth-first order, 355 valid XML, 384 descendants, arbitrary, 357 valid vs. well-formed XML, 384 design, 9-26. See also Web application well-formed HTML, 30 design well-formedXML, 318-319,332,384 DHTML (Dynamic Hypertext Markup dollar sign ($) Language), 196 in regular expressions, 251, 283 DHTML object model, 196. See also DOM for string in XSLT stylesheets, 376 () DOM (Document Object Model), Digital Subscriber Line (DSL), 2 179-195 directories accessing for HTML files, 58-60 attributes, 192, 195 for style sheet files, 73 elements, 180-188, 191 for XML files, 331 browser support, 179, 189, 243-244 disabled attribute to create attributes, 261-262 of button element (HTML), 160 event model, 205 of input element (HTML), iterating through form elements, 161-164 259-260 of option element (HTML), 165 JavaScript and, 206 of select element (HTML), 165 reference, 188-195 oftextarea element (HTML), 166 resources, 197-198 display property (style sheet), 95 working with dithered color, 44, 61, 63 as nodes, 181, 182-187 divelement (HTML), 34, 48,50 as objects, 180, 181-182 align attribute (deprecated), 50 using IDs, 181, 187-188, 193 for scroll area, 101-102,117-121 domain model, defining, 15-16 styles for, 85-89 Domain Name System (DNS), 4 for visual effects, 85-89 dot(.) inXHTML,36 in object model, 173-174 DNS (Domain Name System), 4 for style classes, 80 DOCTYPE declaration, 36-37 in XSLT stylesheets, 357 document element (XML), 316 double data type (schema), 393 document object doubleclicking, event handler for, 229 in browser object model, 175 Dr. Watson, 67 in DOM, 180, 189-191 Dreamweaver. See Macromedia Document Object Model. See DOM Dreamweaver (Document Object Model) drop-down menus, 18-19 document order, 355 dropdown selection box in form, 145-147 document property of window object DSL (Digital Subscriber Line), 2 (browser object model), 177 DTD (Document Type Defmition), 37, Document 'JYpe Definition (DTD). See 383 DTD (Document 'JYpe options for XHTML, 36-38 Definition) resources, 395-396 documentation element (schema), 394 vs. schemas, 385 lang attribute, 394 specifications, 396

454 Index

transitional vs. strict (XHTML), elements collection (DOM), 180, 181, 37-38, 79 259-260 Dynamic Hypertext Markup Language elements property of forms collection (DHTML), 196 (DOM), 191, 259-260 elements (XML) defining, 310-313 E empty, 312 e-commerce, 1, 133 locating by element name, 403 e-learning, 417 specified in schema, 387 e-mail address, submitting form data to, else statement block, 240 150-151 Emacs (Unix) for file creation, 39, 320, Electronic Data Interchange CEDI), 329 345,388 element-basedXML, 316-318 embedded scripts, 208, 212-216 element element embedded style sheets, 73, 76-80 in schema, 386-388, 392-393 precedence rules, 94 max:Occurs attribute, 386-388, 392 embossed effect, styles for, 85-89 rninOccurs attribute, 388, 392 empty cells in tables, appearance of, 109, name attribute, 386-388, 393 131, 141 type attribute, 386-388, 393 empty elements in XSLT stylesheets, 373 inHTML,29 name attribute, 373 inXHTML,36 elements (HTML), 28-31. SeealsoHTML inXML,312 (Hypertext Markup Language) enctype attribute of form element accessing with the DOM, (HTML), 150, 153 180-188,191 equal sign(=) attributes, 28, 31-35 for HTML attributes, 31, 36, 71 block-level, 31,34-35 operator (JavaScript), 202, 232 creating, 186-187, 190 for XML attributes, 314 deprecated,49-54,126-128 equal signs(==) operator (JavaScript) empty, 29, 36 202,233 hiding and showing, 216-222 error messages inline, 31 invalid data entry, 268-276 iterating through "Object required," 243 form elements, 259-260 "Unspecified error" (XSLT), 350 HTML nodes, 182-187 escape() function (JavaScript), 295 locating eval() function (JavaScript), 234 by id attribute, 187-188, 191 event handlers (JavaScript), 204-205, by name attribute, 191 208-211,218-219,228-230 moving, 187 events nesting, 30 JavaScriptand,204-205 removing, 187 respondingto,204-205,208-209 responding to events, 229-230 exclamation point. See bang(!) operator root, 32, 35, 189 (JavaScript) specifying in style sheet rule, execution of scripts, order of, 243 70-71 expiration date of cookies, 293, 304 style classes for, 80-84 Extensible Forms Description Language vs. XSLT elements, 344 (XFDL), 396

455 Index

Extensible Markup Language (XML), 309. style sheet property for, 70-71, 96, 100 See also XML (Extensible font-size property (style sheet), 70-71, 96 Markup Language) font-style property (style sheet), 96 Extensible Stylesheet Language (XSL), font-weight property (style sheet), 96 335. See also XSL (Extensible for attribute of label element (HTML), Stylesheet Language) 135-136,164 external files for-each element (XSLT), 350-354,355, link to, 52 373,375 scripts (JavaScript), 208,227-228 for statement (JavaScript), 239-240 style sheets, 73, 89-92 select attribute, 350-354, 373 precedence rules, 94 form data validation, 247-287 extranet, 2 additional validation types, 277 extreme programming (XP), 11 basics, 248-249 client-side validation, 248 F field-level validation, 248,252-258 face attribute offont element (HTML), form-level validation, 248, 258-268 31,44,50 and maxlength attribute, 284 fat client architecture, 416. See also numeric validation, 249, 250-252 client -side Web application pattern validation, 285-286 architecture phone number validation, 249, field-level validation, 248, 252-258 285-286 steps for creating, 253 range validation, 249, 278-281 fields on a form, 134. See also forms in regular expressions, 251, 252 HTML reference, 281-283 file format for images, 61 required field validation, 249, 277-278 financial data vocabulary for electronic resources, 287 exchange, 395 server-side validation, 248 firstChild property of node object and size attribute, 284 (DOM), 188, 192 for Social Security Number vali• Flash, as client-side technology, 421,422 dation, 283 float data type (schema), 393 user notification of invalid data entry, float property (style sheet), 96, 124 268-276 focus zip code validation, 249 losing, 229 form element (HTML), 135, 160 receiving, 229 action attribute, 135, 149, 160,426, setting to a form element, 195, 284 429,432,434 focus() method of node object (DOM), enctype attribute, 150, 153 195,284 id attribute, 135, 160 font element (HTML), 31,44-45, 50 id vs. name attributes, 135 color attribute (deprecated), 50,55 method attribute, 135, 149, 161 face attribute (deprecated), 31, 44, 50 postvs. get, 149-150 size attribute (deprecated), 31, 45, 50 name attribute (deprecated), 135 vs. style sheet properties, 71 form-level validation, 248, 258-268 font-family property (style sheet), 70-71, associating validation with field, 96 260-262 font size iterating through elements, and absolute positioning, 155 259-260 HTML attribute for, 31, 44-45, 50 steps for creating, 263

456 Index forms collection (DOM), 180, 181, and case sensitivity, 242 191-192 to close a window, 242 element collection, 180, 181, 259-260 commenting, 218,254 forms in HTML, 133-169 to create cookies, 295 absolute positioning for layout, to hide and show elements, 216-222 153-159 location in HTML document, 204, 207 accessing with the DOM, 190 to open a new window, 241 basics, 134-137 order of execution, 206-207, 243 creating, 137-140 to read an XML file, 398-402 debugging, 167-168 to retrieve cookies, 298 default values, 136, 299-300 for validation. See form data validation designing, 142. See also conceptual design G element and attribute reference, 160-166 games,417 fields, 134 getAttribute() method of node object iterating through elements, 191, 259-260 (DOM), 195 nesting, 137 getDate() method of Date object passing data (JavaScript), 236 with cookies, 302-303 getDayO method of Date object with data appended to the URI, 305 (JavaScript), 236 with hidden fields, 151-153,305 getElementByld() method of document resetting, 192 object (DOM), 188, 191, resources, 169 217-218,244,278,407-413 setting focus to an element, 195, 284 getElementsByName() method of docu• style sheets for, 140-145 ment object (DOM), 191 submitting form data, 134, 147-151 getElementsByTagName() method of to ASP, 149,431-433 document object (DOM), 191, to CGI script, 149,426-427 403,407-413 with the DOM, 192 getFullYear() method of Date object to e-mail address, 150-151, 153 (JavaScript), 236,295 with hidden fields, 151-153 getHours() method of Date object to Java servlet, 149 (JavaScript), 236 in name and value pairs, 14 7-148 getMinutes() method of Date object tab order, 167 (JavaScript), 236 tables for, 140-145 getMonth() method of Date object validating. See form data validation (JavaScript), 237 forms property of document object getSeconds() method of Date object (DOM), 190 (JavaScript), 237 forward() method of history object getTime() method of Date object (browser object model), 176 (JavaScript), 237 frames, DTD for, 37 getYear() method of Date object FrontPage. See Microsoft FrontPage (JavaScript), 237,295 function keyword, 203 GIF graphics file format, 61 functions (JavaScript), 203-204 GMT (Greenwich Mean Time), 293 to build a table from an XML file, go() method of history object (browser 406-413 object model), 176 built-in, 234 goal ofWeb application, 13 calling from event handler, 218-219 Goal-centered design, 11-16

457 Index

graphics. See images href property of location object (browser greater than sign (>) object model), 177 character entity for, 56 hspace attribute of img element (HTML), for HTML tags, 29 52 operator (JavaScript), 233 .htm file extension, 39, 59 for XML tags, 312 HTML (Hypertext Markup Language), 3, greater than or equal to(>=) operator 27-67 (JavaScript), 233 a element, 42-43, 45-48, 49 grid, defining with tables, 106 href attribute, 45, 49 GUIDS Methodology, 11-24 target attribute, 49 Data design, 12, 24 associating Goal-centered design, ll-16 with a DTD, 36-38 Implementation-centered design, 12, with a style sheet, 89-92 23 attributes, 28,31-35 Strategies for construction, 12, 24 vs. style sheet properties, 7l User-interface design, 12, 16-23 b element, 49 basics, 28-31 H body element, 33, 49 h1 element (HTML), 29, 33, 51 background attribute (deprecated), align attribute (deprecated), 51 50 styles for, 7l bgcolor attribute (deprecated), 40, hasChildNodes() method of node object 50 (DOM), 194 link attribute (deprecated), 50 head element (HTML), 33,51 text attribute (deprecated), 50 JavaScript function definitions within, style rule for, 77 204 br element, 29, 35, 50 heading level elements (HTML), 29 browser compatibility, 56-57 height attribute ofimg element (HTML), button element, 136-137, 160 46,52,63 accesskey attribute, 160 height property (style sheet), 97 disabled attribute, 160 hiding elements, 216-222 id attribute, 160 style sheet property for, 95, 99 name attribute, 135-136, 160 hidden fields. See also input element type attribute, 135-136, 160 (HTML) value attribute, 135-136, 160 to pass form data, 151-153,305 caption element, 126 and submitting form data, 151-153 align attribute, 126 hierarchical structure. See object model and case sensitivity, 28-29, 156, 168 history object (browser object model), character entities, 55-56 175,176 as client-side technology, 416,418, history property of window object 421 (browser object model), 177 col element, 129 horizontal rule, 51 align attribute, 129 hr element (HTML), 51 valign attribute, 129 href attribute colgroup element, 129 of a element (HTML), 45, 49 align attribute, 129 oflink element (HTML), 52, 89 valign attribute, 129

458 Index color values, 43-44, 55 alt attribute, 45, 51 commenting, 32, 58, 439 border attribute (deprecated), 52 debugging, 41,64 height attribute, 46, 52, 63 deprecated elements and attributes, hspace attribute (deprecated), 52 49-54, 126-128 lowsrc attribute, 63 directories and files, 58--60 src attribute (deprecated), 45, 52, div element, 34, 48, 50 181,186,188 align attribute (deprecated), 50 vspace attribute (deprecated), 52 for scroll area, 101-102,117-121 width attribute, 46, 52, 63 styles for, 85-89 images, 60-61,63-64. See also input for visual effects, 85-89 element (HTML) DOCTYPE declaration, 36-37 input elements, 135-136, 161-164 element content, 29 accesskey attribute, 161-162, 164 elements, 28-31 alt attribute, 162 block-level, 31, 34-35 checkbox type, 161 inline, 31 checked attribute, 161-162 empty element, 29 disabled attribute, 161-164 file creation, 38-39 hidden type, 161 font element (deprecated), 31, id attribute, 135-136, 161-164 44-45,50 id vs. name attribute, 136 color attribute (deprecated), 50, 55 image type, 162 face attribute (deprecated), maxlength attribute, 136, 163, 284 31,44,50 name attribute, 135-136, 161-164 size attribute (deprecated), password type, 162 31,45,50 radio type, 162-163 form element, 135, 160 readonly attribute, 163 action attribute, 135, 149, 160,426, size attribute, 135-136, 163,284 429,432,434 src attribute, 162 enctype attribute, 150, 153 submit type, 164 id attribute, 135, 160 text type, 135-136, 163 id vs. name attributes, 135 value attribute, 136, 161, 163-164 method attribute, 135, 149, 161 label element, 135-136, 164 name attribute (deprecated), 135 accesskey attribute, 164 post vs. get, 149-150 for attribute, 135-136, 164 h1 element, 29, 33, 51 li element, 52 align attribute (deprecated), 51 link element, 52, 89 styles for, 71 for external style sheets, 89 head element, 33, 51 href attribute, 52, 89 JavaScript function definitions rel attribute, 52, 89 within, 204 type attribute, 52, 89 how it works, 38 meta element, 52-53, 62 hr element, 51 content attribute, 53, 62, 208 element, 32, 51 http-equiv attribute, 53, 208 i element, 51 name attribute, 53, 62 img element, 45, 51-52 scheme attribute, 53 align attribute (deprecated), ol element, 53 45,51,124 start attribute (deprecated), 53

459 Index

HTML (cont.) align attribute, 127 type attribute (deprecated), 53 bgcolor attribute (deprecated), 127 option element, 146-147, 164-165 colspan attribute, 125, 127, 141 disabled attribute, 165 nowrap attribute (deprecated), 127 selected attribute, 165 rowspan attribute, 127 value attribute, 146-147, 165 valign attribute, 127 p element, 29, 35, 53 width attribute (deprecated), 128 align attribute (deprecated), 53, wrap attribute (deprecated), 128 188 textarea element, 165-166 styles for, 70-71, 74 cols attribute, 165 parsing, 28, 38 disabled attribute, 166 performance, 63-64, 130 id attribute, 166 pre element, 54 name attribute, 166 reference, 48-54, 126-130, 160-166 readonly attribute, 166 resources, 65-67 rows attribute, 166 root element, 32, 35, 51, 189 tfoot element, 129 script element, 207,212 align attribute, 130 language attribute, 212 valign attribute, 130 src attribute, 227 th element, 107-108, 128 type attribute, 212 align attribute, 128 select element, 145-147, 165 bgcolor attribute (deprecated), 128 disabled attribute, 165 colspan attribute, 128 id attribute, 146, 165 rowspan attribute, 128 multiple attribute, 165 valign attribute, 128 name attribute, 146, 165 width attribute (deprecated), 128 size attribute, 165 thead element, 130 as server-side technology, align attribute, 130 424426,436 valign attribute, 130 span element, 54, 124 in three-tiered architecture, 443 responding to events, 209 title element, 33, 54, 62 static Web pages, 38-42 accessing with the DOM, 180, 190 style element, 76-80, 155 tr element, 107-108, 128 type attribute, 76-77 align attribute, 128 table element, 107-108, 126-127 bgcolor attribute (deprecated), 128 align attribute (deprecated), 127 valign attribute, 128 bgcolor attribute (deprecated), 127 transforming XML document to, border attribute, 107-108, 127 336-337,354-356 bordercolor attribute (deprecated), ul element, 54 127 type attribute (deprecated), 54 cell padding attribute, 127 URis, 42-43 cellspacing attribute, 127 validating, 37-39, 64, 66 width attribute, 127 version, 36-38 tags, 28 viewing source, 28 tbody element, 129 visual design, 57-58 align attribute, 129 well-formed, 30 valign attribute, 129 XlfTML,29-32,35-38 td element, 107-108, 127-128 vs. XSLT elements, 344

460 Index

HTML document, 27. See also document for background, 95 object; HTML (Hypertext colors, 61 Markup Language) file format, 61 htrnl element (HTML), 32,51 for form submission, 137 HTML elements, vs. :XSLT elements, 344 as hyperlink, 45 .html file extension, 39, 59 in menus, 19, 21 http-equiv attribute of meta element, 53, and performance, 63-64, 222-223 208 preloading, 222-223 HTTP (Hypertext Transport Protocol), sources for, 60 4-5,427 specifying size, 46 hyperlinks, 2, 3, 45-48 images collection (DOM), 180, 181-182, Hypertext Markup Language. See HTML 190,192,223,244 (Hypertext Markup Language) images property of document object (DOM), 190 I img element (HTML), 45, 51-52 i element (HTML), 51 align attribute (deprecated), 45, 51, id attribute 124 and absolute positioning, 82 alt attribute, 45, 51 accessing with the DOM, 181, border attribute (deprecated), 52 187-188,193 height attribute, 46, 52, 63 ofbutton element (HTML), 160 hspace attribute (deprecated), 52 of form element (HTML), 135, 160 lowsrc attribute, 63 of input element (HTML), 135-136, src attribute (deprecated), 45, 52, 181, 161-164 186, 188 locating elements by, 187-188 vspace attribute (deprecated), 52 vs. name attribute, 136 width attribute, 46, 52, 63 of select element (HTML), 146,165 Implementation-centered design, and styles, 82 12,23 oftextarea element (HTML), 166 indents using for validation, 260-261 inHTML, 35, 108 XHMTL, 36,188 inXML, 313 id property of node object (DOM), 193 index.html, 59 if element (XSLT), 373 indexing Web page for search engines, 62 test attribute, 373 inline elements (HTML), 31 if statement (JavaScript), 202,240 a,49 liS (Internet Information Server), 431 b,49 Image object (JavaScript) br, 50 creating, 223 font, 50 preloading, 223 i, 51 image rollover, 180, 222-227 img, 51 locating img element (HTML) span, 54 using child nodes, 185-186 inline scripts, 208-211 using id attribute, 188 inline styles, 73,74-76 using images collection, 181-182 vs. embedded styles, 73, 77 images, 60-61 precedence rules, 78, 94 accessing with the DOM, 192. See also innerHTML property of node object image rollover (DOM), 193

461 Index

innerHTML property of node object viewing (cont.) cookies, 291,307 for user notification of invalid data HTML source, 28 entry, 270-271 XML files, 322-326 innerText property of node object XML parser in, 319, 349 (DOM), 193 XSL processor in, 345, 349 input element (HTML), 135-136, 161-164 and XSL transformation, 349 accesskey attribute, 161-162, 164 and z-index, 86, 99 alt attribute, 162 Internet Information Server (liS), 431 checkbox type, 161 Internet Server Application checked attribute, 161-162 Programming Interface disabled attribute, 161-164 (ISAPI), 427 hidden type, 161 Internet Service Provider (ISP), 2 id attribute, 135-136, 161-164 intranet, 2 id vs name attribute, 136 IP (Internet Protocol) address, 4 image type, 162 ISAPI (Internet Server Application maxlength attribute, 136, 163, 284 Programming Interface), 427 name attribute, 135-136, 161-164 isNan() function (JavaScript), 234 password type, 162 for data validation, 250 radio type, 162-163 ISP (Internet Service Provider), 2 readonly attribute, 163 italics, 51 size attribute, 135-136, 163,284 iteration src attribute, 162 through cookies, 298-299 submit type, 164 through form elements (HTML), text type, 135-136, 163 259-260 value attribute, 136, 161, 163-164 through XML nodes (XSLT), 350-354 instance of object, creating, 235 int data type (schema), 393 J interactive marketing, 417 Java, 428 Internet, 2 as client-side technology. See Java Internet Explorer, 3 applets and ActiveX controls, 417 as server-side technology, 427,428 and blinking text, 98 in three-tiered architecture, 443 and case sensitivity, 168 using XSL with, 380 and cookies, 291,307 vs. JavaScript, 200 and DOM support, 179, 243-244 Java applets, 417, 420-422 and elements collection, 259 Java servlet, 428 and JavaScript, 243-244 and submitting form data, 149 loading XML using JavaScript, JavaBeans, 441 398-399 JavaScript 199, 199-246. See also and missing ending tags, 64 functions (JavaScript) and nodes, 186, 404 and ASP, 431 and overlapping tags, 30 basics, 200-206 and style sheets, 72 browser detection, 57,243-244 and styles, 411 and case sensitivity, 201, 213, 217, 242 and submit buttons, 148 as client-side technology, 416,419, and VBScript, 212 421

462 Index

commenting,203,218,254,439 justified text data types, 202 in HTML, 50, 51, 53 debugging, 242-244 style sheet property for, 98 displaying a date with, 212-216 embedded scripts, 208,212-216 K events, 204-205 keyboard shortcuts for form input, 167. external scripts, 208, 227-228 See also accesskey attribute filnctions,203-204 keypress, event handler for, 229 hiding script in HTML, 212-213 keywords, for search engine access, 62 how it works, 206-207 inHTML,204 L image rollovers, 222-227 label element (HTML), 135-136, 164 inline scripts, 206, 208--211 accesskey attribute, 164 meta element (HTML) to specify, 208 for attribute, 135-136, 164 to navigate XML document, lang attribute of documentation element 402-406 (schema), 394 objects, creating, 235 language attribute of script element operators, 202, 230-233 (HTML),212 orderofexecution,206-207,243 lastChild property of node object (DOM), to read XML, 397-402 187,192 loading in Internet Explorer, layers property of document object, 179, 398-399 244 loading in Netscape, 399 leading, style sheet property for, 97 reference, 228-240 left property (style sheet), 85-86, 97 assignment operators, 232 length property comparison operators, 233 of Array object (JavaScript), 235, 236 control statements, of forms collection (DOM), 191 239-240 of history object (browser object event handlers, 228--230 model), 176 functions, 234 of input element (HTML). See objects, 236-239 maxlength operators, 230-231 of String object (JavaScript), 238 resources, 245-246 less than sign (<) statements, 202-203 character entity for, 56 syntax, 201 for HTML tags, 29 in three-tiered architecture, 443 operator (JavaScript), 233 variables, 201-202 for XML tags, 312 validating for data. See form data vali- less than or equal to(<=) operator dation (JavaScript), 233 JPEG graphics file format, 61 li element (HTML), 52 js file extension, 227 line break, 29, 35, 50 JScript, 200 line-height property (style sheet), 97 JSP (JavaServer Pages) line-through text, 98 as server-side technology, 425, 433, link attribute of body element (HTML), 50 435 link element (HTML), 52, 89 in three-tiered architecture, 441 for external style sheets, 89 "just-in-time design," 11 href attribute, 52, 89

463 Index

link element (HTML) (cont.) http-equiv attribute, 53, 208 rel attribute, 52, 89 name attribute, 53, 62 type attribute, 52, 89 scheme attribute, 53 links collection (DOM), 180, 190 to specify scripting language, 208 links property of document object metadata, inXML, 310,318 (DOM), 190 method attribute of form element links to new window, 241-242 (HTML), 135, 149, 161 lists postvs. get, 149-150 items in, 52 methods of objects, 15, 173 ordered, 53 referencing, 174, 180 unordered, 54 Microsoft C++, 417 load method of document object Microsoft FrontPage, 16, 39, 109 (DOM), 399 Microsoft PowerPoint, 16 location object (browser object model), Microsoft SQL Server, 24, 320 175,176-177 Microsoft Visual Basic. See Visual Basic location property of window object Microsoft Visual Basic Scripting Edition. (browser object model), 177 SeeVBScript long data type (schema), 393 Microsoft XSL Parser, 349, 381 LotuSXSL,348,381 to load XML document, 398-399 lowsrc attribute ofimg element middle-tier component in three-tiered (HTML),63 architecture, 440-442 minOccurs attribute of element element M (schema), 388,392 Macromedia Dreamweaver, 16, 39, 66, 154 minus sign(-) operator (JavaScript), 202, Macromedia Flash Player, 421 231 magazine-style layout, tables for, minus signs(--) operator (JavaScript), 121-126 231 margin-bottom property (style sheet), 97 minus and equal signs(-=) operator margin-left property (style sheet), 74, 97 (JavaScript), 232 margin-right property (style sheet), 98 mod operator (XPath), 360,369-372 margin-top property (style sheet), 98 mouse, event handlers for, 229-230 marketing, interactive, 417 multiple attribute of select element markup. See HTML (Hypertext Markup (HTML), 165 Language) multiplication sign (*) operator match attribute oftemplate element (JavaScript), 231 Q{SLT),343-344,351,374 multiplication and equal signs (*=) oper• Mathematical Markup Language, 396 ator (JavaScript), 232 maxlength attribute of input element (HTML), 136, 163, 284 maxOccurs attribute of element element N (schema), 386-388, 392 name attribute menus, 18-21 of attribute element (schema), 392 message box. See alert() method of win• of attribute element Q{SLT), 369-372 dow object (browser object ofbutton element (HTML), 135-136, model) 160 meta element (HTML), 52-53, 62 of complex'JYpe element (schema), content attribute, 53, 62, 208 386-388,392

464 Index

of element element (schema), navigation techniques, 18-21 386-388,392-393 hyperlinks for, 45 of element element (XSLT), 373 navigator object (browser object model), of form element (HTML), 135 175-176,177,205,244 vs. id attribute (HTML), 136 navigator property of window object of input element (HTML), 135-136, (browser object model), 177 161-164   (non-breaking space character and submitting data, 147-148 entity), 35, 56 of meta element (HTML), 53, 62 in empty table cells, 109, 141 ofparam element (XSLT), 373 negativelnteger data type (schema), 393 of select element (HTML), 146, 165 nesting oftextarea element (HTML), 166 elements in HTML, 30 using for validation, 260 elements inXML, 313 of variable element (XSLT), 374, forms, 137 376-378 tables, 124-126 ofwith-param element (XSLT), 375 impact on performance, 130 XHTML,36 .NET Framework, 433 name() expression (XPath), 357 Netscape, 3 name property of window object absolute positioning in, 156 (browser object model), 177 and case sensitivity, 156, 168 name and value pairs and cookies, 291-292,307 in cookies, 294 and DOM support, 179, 189, 243-244 of hidden fields, 151 and elements collection, 259 in HTML attributes, 31 getYear() vs getFullYear() functions, 295 in Perl, 430 and JavaScript, 243-244 in style rule declarations, 71 loading XML using JavaScript, 399 submitting form data in, 147-149 and missing ending tags, 64 in URis, 305 and nodes, 186, 404 in XML attributes, 314 and overlapping tags, 30 names and style sheets, 72 of colors, 43-44, 55 and submit buttons, 148 for files, 43 and VBScript, 212 for form elements, 135 viewing for form name and id attributes, cookies,291-292,307 135-136 HTML source, 28 for HTML file and directories, XML files, 322-326 58-60 XML parser in, 319, 349 for paths, 43 and XSL transformation, 349 for style classes, 81 and z-index, 86, 99 for XML elements, 311 Netscape Server Application for XML files, 331 Programming Interface namespaces, 326-328 (NSAPI), 427 forschema,386-387 new keyword (JavaScript), 223,235 for schema instance, 391 new line, 29, 35, 50 for XSLT, 343-344 node() expression (XPath), 357 NaN property of Number object node list, 17 4 (JavaScript), 237,250 node object (DOM), 192-195

465 Index

nodeName property of node object "Object required" message, 243 (DOM),192 objects nodes, 17 4. See also child nodes in domain model, 15 child nodes, 17 4 in JavaScript, 235, 236-238 creating, 186-187 in object model, 172 iterating through working with DOM as, HTMLnodes, 182-187 181-182 XML nodes (XSLT), 350-354 offsetHeight property of node object moving, 187,195 (DOM),193 parent node, 174 offsetLeft property of node object removing, 187, 194 (DOM),193 replacing, 195 offsetTop property of node object returning array, 403 (DOM),194 siblings, 17 4 offsetWidth property of node object working with DOM as, 182-187 (DOM), 194 XML documents as, 339-340 OFX (Open Financial Exchange), 395 nodeType property of node object ol element (HTML), 53 (DOM), 192, 407-413 start attribute (deprecated), 53 nodeValue property of node object type attribute (deprecated), 53 (DOM), 188, 193, 409 onblur event handler, 229 non-breaking space ( ), 35,56 for field-level validation, 253 in empty table cells, 109, 141 for storing data in cookies, 295 noNamespaceSchemaLocation attribute onchange event handler, 229 (schema), 391 onclick event handler, 218, 229 nonvalidating parser, 324 ondblclick event handler, 229 Notepad for file creation, 39, 320, 345, onfocus event handler, 205, 229 388 onkeydown event handler, 229 nowrap attribute oftd element CHTML), onkeypress event handler, 229 127 onkeyup event handler, 229 NSAPI (Netscape Server Application online bill paying, 425 Programming Interface), 427 onload event handler, 205, 229 Number object (JavaScript), 237-238 for setting defaults, 300 numbered list, 53 for setting focus, 284 numbers onload method of DOM document, 404 data entry validation, 249, 250-252 onmousedown event handler, 229 range validation, 249, 278-281 onmousemove event handler, 229 numeric variables (JavaScript), 202, 237 onmouseout event handler, 209, 223-224,229 0 onmouseover event handler, 204-205, object models, 172. See also DOM 209,223-224,230,235 (Document Object Model); onmouseup event handler, 230 browser object model onreset event handler, 230 basics, 172-174 onselect event handler, 230 JavaScript and, 205-206 onsubmit event handler, 230 resources, 197-198 for form-level validation, 253, 263 root object, 173 onunload event handler, 230 tree structures, 17 4, 182 Open Financial Exchange (OFX), 395

466 Index open() method path of document object (DOM), 191 absolute, 42-43 of window object (browser object relative, 42-43,60 model), 178,241 patterns in XSLT stylesheets, 338, 341 Opera,3 performance operators (JavaScript), 202,230-233 optimizing images for, 63-64 option element (HTML), 146-147,164-165 optimizing tables for, 130 disabled attribute, 165 Perl selected attribute, 165 as server-side technology, 427, value attribute, 146-147, 165 429-431, 437 Oracle, 24 and submitting forms, 149, 429-431 order attribute of sort element (XSLT), in three-tiered architecture, 443 373 phone number, data entry validation, order processing, 424 249,285-286 ordered lists, 53 PHP otherwise element (XSLT), 369-372,373 as server-side technology, 427, overflow property (style sheet), 98 433-435, 437 for scrolling areas, 101-102,117-121 and submitting forms, 433-435 overline, 98 in three-tiered architecture, 443 ownerDocument property of node object pipe character (I) (DOM), 193 in regular expressions, 283 in XSLT stylesheets, 366-367 p pipe characters (II) operator (JavaScript), p element (HTML), 29, 35,53 233 align attribute (deprecated), 53, 188 .pl file extension, 429 styles for, 70-71, 74 Platform for Privacy Preferences Project page layouts, 22 (), 308 Paint Shop Pro, 16, 61 platform independence paragraph. Seep element (HTML) ofDOM, 179 param element (XSLT), 373 o£Java,420,428,435 name attribute, 373 ofXML,315 parameters, passing to JavaScript plus sign(+) function, 203 operator (JavaScript), 202,231 parent element (XML), 313 in regular expressions, 251, 282 parent node, 174, 193 plus signs(++) operator (JavaScript), 231 parentNode property of node object plus and equal signs(+=) operator (DOM), 193 (JavaScript), 232 parseFloat() function (JavaScript), 234, PNG (Portable Network Graphics) graph- 250-251 ics file format, 61 parselnt() function (JavaScript), 234, position() expression (XPath), 359,360 250-251 position property (style sheet), 85-86, 98 parsing positivelnteger data type (schema), 393 cookies, 298 post, 149-150 HTML,28,38 vs. get, 149-150 XML,319-320 pound sign (#) in style sheet selectors, 82 password, 162. See also input element pre element (HTML), 54 (HTML) preceding-sibling (XSLT), 376

467 Index

preloading images, 222-223 regular expressions, 281-283 privacy policy for cookies, 304 schema elements and attributes, project size, use cases and, 14 391-393 properties of objects, 15, 173 style sheets, 95-99 referencing, 17 4, 180 table elements and attributes, protocols, 4-5, 42 126-130 prototype, 23 XSLT elements and attributes, 372-375 referrer property of document object Q (DOM), 190 question mark (?) regular expression object (JavaScript), 282 in regular expressions, 252 in URis, 149, 305 test method, 252, 277, 285 quotation mark(" or ' ) regular expressions, 251-252 entity for, 56 character and case sensitivity, 283 31 for HTML attributes, reference, 281-283 212-213, in JavaScript, 210, resources, 287 242-243 to validate numeric field, 251 in URis, 305 to validate patterns, 285 attributes, 36 for XHTML to validate phone number, 249, 314, 319 for XML attributes, 285-286 for XSLT stylesheets, 350 to validate required field, 277 to validate Social Security Number, R 283 radio button, 162-163. See also input ele• rel attribute of link element (HTML), 52, ment (HTML) 89 keyboard shortcuts, 167 relative font size, 45, 96, 100 range of values, data entry validation, relative positioning, 249,278-281 86,98 readonly attribute relative URis, 42-43 of input element (HTML), 163 removeAttribute() method of oftextarea element (HTML), 166 node object (DOM), 195 reference removeChild() method of node object character entities, 55-56 (DOM), 194 color names, 55 removeNode() method of node object DOM, 188-195 (DOM), 194 form elements and attributes, replace method of String object 160-166 (JavaScript), 238 HTML elements, 48-54 replaceChild() method of node object JavaScript, 228-240 (DOM), 195 assignment operators, 232 replaceNode() method of node object comparison operators, 233 (DOM), 195 control statements, 239-240 required data entry event handlers, 228-230 designating to user, 22 functions, 234 validating, 249, 277-278 objects, 236-239 reset() method of forms collection operators, 230-232 (DOM), 192

468 Index resources basics, 384 cookies, 308 commenting, 394 design, 25-26 creating, 388-390 DOM, 197-198 data types, 387 DTDs, 395-396 boolean, 393 HTML,65-67 complex, 386-388. See also HTML forms, 169 complexType element form data validation, 287 (schema) HTML tables, 132 date, 393 JavaScript, 245-246 double, 393 form data validation, 287 float, 393 for MicrosoftXM:L parser, 349, 381 int, 393 object models, 197-198 long, 393 regular expressions, 287 negativelnteger, 393 schemas, 395-396 positivelnteger, 393 style sheets, 104 string,386-388,393 theWeb, 7 namespaces,386-387,391 Web application architecture, 444-446 reference, 391-393 World Wide Web Consortium, 38 resources, 395-396 XM:L,333-334 root element, 386 XSL, 380-382 vs.DTD,385 retrieving data from cookies, 190, scheme attribute of meta element 297-302 (HTML), 53 return keyword (JavaScript), 203 screen resolution, 58 RGB color values, 43-44, 55 script element (HTML), 207,212 root element language attribute, 212 in HTML, 32, 51, 189 src attribute, 227 in schema, 386 type attribute, 212 inXHTML,35 scripting language, 199, 200. See also inXM:L, 316,318, 321 JavaScript; VBScript in XSLT stylesheets, 343 meta element (HTML) to specify, 208 root in object model, 173 scripts, 200. See also JavaScript; rows attribute of textarea element VB Script (HTML), 166 scroll bars. See scrolling areas rows in tables, 105-106 scrolling areas rowspan attribute forHTML, 101-102 of td element (HTML), 127 for tables, 117-121 ofth element (HTML), 128 search engines, indexing page for, 62 secondary windows s closing with JavaScript, 242 scenarios, 14-15 opening with HTML, 49 schema element (schema), 386 opening with JavaScript, 241 version attribute, 386 Secure Sockets Layer (SSL), 294 xmlns attribute, 386-387 security, cookies and, 290, 303-304 schemaLocation attribute (schema), 391 select attribute schemas,383-396 of apply-templates element (XSLT), associating with XM:L file, 391 372,376-378

469 Index

select attribute (cont.) CGI, 426-427. See also CGI offor-each element (XSLT), 350-354, (Common Gateway Interface) 373 HTML, 424, 426, 436. See also of sort element (XSLT), 363-366, 373 HTML (Hypertext Markup of value-of element (XSLT), 343-345, Language) 374 Java, 427, 428 of variable element CXSLT), 374, JSP, 427, 428, 435, 437 376-378 Perl, 427, 429-431, 437 select element (HTML), 145-147, 165 PHP, 427,433-435,437 disabled attribute, 165 server-side component, 424 id attribute, 146, 165 \nBScript, 149,200,431,437,439,443 multiple attribute, 165 Visual Basic, 427, 428 name attribute, 146, 165 XlJL,424,436,437 size attribute, 165 XSL, 424, 436, 437 selected attribute of option element setAttribute() method of node object (HTML), 165 (DOM), 188, 195, 407-413 selection box in form, 145-147. See also using for validation, 261-262, 278 select element (HTML) setYear() method of Date object selection criteria, setting with XPath, (JavaScript), 295 356-362 setlnterval() method of window object selector in style sheet rules, 70-71 (browser object model), 178 self property of window object (browser setTimeout() method of window object object model), 177 (browser object model), 178 semicolon (;) sibling nodes, 17 4 in character entities, 55 size attribute as cookie delimiters, 298 offont element (HTML), 31, 45,50 to end JavaScript statements, 201, 210, of input element (HTML), 135-136, 213 163,284 in style rule declarations, 71 of select element (HTML), 165 sequence element (schema), 386-388, size of font, 31, 45, 50, 100 393 and absolute positioning, 155 server-side, 3 HTML attribute for, 31, 44-45, 50 server-side Web application architecture, style sheet property for, 70-71, 423-437 96,100 advantages, 437 slant of font, 96 combined with client-side, slash(/) 438-440 in HTML ending tags, 29 common applications, 424-425 operator (JavaScript), 231 disadvantages, 437 in URLs,4 technologies, 425-436 inXHTML,36 ASP, 149, 427, 431-433, 435. See inXlJL, 312 also ASP (Active Server Pages) in XSLT stylesheets, 344, 357 ASP .NET, 433 slash and equal sign(/=) operator CIC++, 427, 428 (JavaScript), 232 Cascading Style Sheets, 424, 426, slashes (I I) 436. See also Cascading Style comments (JavaScript), 203 Sheets (CSS) delimiters for regular expressions, 251

470 Index slice method of String object vs. transitional, 37-38, 79 (JavaScript), 238 string data type (schema), 393 Social Security Number, data entry vali• String object (JavaScript), 238 dation, 283 string variables sort element (XSLT), 363-366,373 in JavaScript, 202, 238 order attribute, 373 in:XSLT,376 select attribute, 363-366, 373 structures in XSLT, 369-372 sort method of Array object (JavaScript), style attribute ofHTML elements, 73-76 235,236 style classes, 80-84, 90 space. See also non-breaking space applying multiple, 81 in HTML, 35, 56 assigning to table row, 408 in table, 109, 141 naming, 81 in:XSLT stylesheets, 374 for tables, 112-117 span element (HTML), 54, 124 style element (HTML), 76-80, 155 responding to events, 209 type attribute, 76-77 split method style property of node object (DOM), 194 of String object (JavaScript), 238, style rule, 70 298-299 style sheets, 69-104. See also Cascading square brackets([]) for array entries Style Sheets (CSS) (JavaScript), 173, 181, 235 for absolute positioning, 85-89, src attribute 153-159 ofimg element (HTML), 45, 52,63 vs. attributes, 71 accessing with the DOM, 181, 186, basics, 70-72 188,192 benefits, 72 onmouseover to change, 224 browser support, 72, 156 ofinputelement (HTML), 162 cascading, 93-95 of script element (HTML), 227 commenting, 95, 439 src property debugging,l02-103 of images collection (DOM), 192, 193 directories and files, 73 oflmage object (JavaScript), 223 embedded styles, 73, 76-80 SSL (Secure Sockets Layer), 294 external styles, 73, 89-92 start attribute of ol element (HTML), 53 for forms, 140-145 state management, cookies and, 302-303 hiding styles in HTML, 76-77 stateless protocol, HTTP as, 5 inline styles, 73, 74-76 statements (JavaScript), 202 layering elements, 99 control statements, 239-240 precedence,78,93-95 static Web pages, creating, 38-42 reference, 95-99 status bar, writing messages during resources, 104 debugging, 243 for scrolling areas, 101-102 status property of window object style classes, 80-84, (browser object model), 178, 112-117 243 style rule, 70 storing data style rule declaration, 71 in cookies, 190, 294-297 style rule selector, 70 in database, 25, 306 for tables, 112-117 Strategies for construction, 12, 24 for visual effects, 84-89 strict DTD for XHTML, 37-38 and XSLT stylesheets, 352

471 Index

stylesheet element (XSLT), 343-344,351, element and attribute reference, 374 126-130 version attribute, 343-344,374 empty cells, 109, 141 xmlns attribute, 343-344,374 for forms, 140-145 stylesheets (XSLT), 338. See also XSLT for magazine-style layout, 121-126 stylesheets nesting, 124-126, 130 styleSheets collection (DOM), 195-196 performance, 130 submit button. See input element resources, 132 (HTML); button element rows, 105-106 (HTML) scroll bars for, 117-121 submit() method of forms collection style sheets for, 112-117 (DOM), 192 tagName property of node object submitting form data (DOM), 193 to ASP, 149,431-433 tags to CGI script, 149,426-427 inHTML,28 to e-mail address, 150-151, 153 inXML, 312 fromformsinHTML, 147-151 target attribute of a element (HTML), 49 with hidden fields, 151-153, 305 tbodyelement (HTML), 129 to Java servlet, 149 align attribute, 129 in name and value pairs, 147-148 valign attribute, 129 support detection for browser features, TCP (Transport Control Protocol), 4 244 td element (HTML), 107-108, 127-128 swapNode() method of node object align attribute, 127 (DOM), 195 bgcolor attribute (deprecated), 127 colspan attribute, 125, 127, 141 T nowrap attribute (deprecated), 127 tab order in form, 167 rowspan attribute, 127 tabindex attribute of form elements valign attribute, 127 (HTML), 167 width attribute (deprecated), 128 table element (HTML), 107-108, 126-127 wrap attribute (deprecated), 128 align attribute (deprecated), 127 template element (XSLT), 343-344,351, bgcolor attribute (deprecated), 127 374 border attribute, 107-108, 127 match attribute, 343-344, 351, 374 bordercolor attribute (deprecated), templates. See XSLT stylesheets 127 temporary cookies, 293 cell padding attribute, 123, 127 test attribute cellspacing attribute, 123, 127 of if element (XSLT), 373 width attribute, 127 of when element (XSLT), 369-372, 374, tables in HTML, 105-132 376 basics, 105-108 test method of regular expression object building from XML (JavaScript), 252, 277,285 using JavaScript, 406-413 testing for uniqueness (XSLT), using XSL, 350-354, 369-372 375-376 cells,105-106 text() expression (XPath), 357 columns, 105-106 text-align property (style sheet), 98 creating, 108-111 text attribute of body element debugging, 109, 131 (HTML), 50

472 Index

accessing with the DOM, 194 title property text box, 163. See also input element of document object (DOM), 180, 190 CHTML) of node object (DOM), 194 text-decoration property (style sheet), 98 toGMTString method of Date object text element (XSLT), 374 (JavaScript), 237, 295 text nodes, 185, 187, 190, 312,318,357, top property (style sheet), 85-86,99 404-406 toString method text property of node object (DOM), 185, of Date object (JavaScript), 237 194 of Number object (JavaScript), 237, textarea element (HTML), 165-166 239 cols attribute, 165 tr element (HTML), 107-108, 128 disabled attribute, 166 align attribute, 128 id attribute, 166 bgcolor attribute (deprecated), 128 name attribute, 166 valign attribute, 128 readonly attribute, 166 from XML, 408 rows attribute, 166 transform element (XSLT), 344 tfoot element (HTML), 129 "transformation by example," 338 align attribute, 130 transitional DTD for XHTML, 37-38 valign attribute, 130 vs. strict, 37-38, 79 th element (HTML), 107-108, 128 Transport Control Protocol (TCP), 4 align attribute, 128 tree structures bgcolor attribute (deprecated), 128 for HTML documents, 182-187 colspan attribute, 128 for object models, 174, 182 rowspan attribute, 128 for table from XML document, valign attribute, 128 406-410 width attribute (deprecated), 128 forXML documents, 317-318,340,403 thead element (HTML), 130 Try It align attribute, 130 form-level validation, 264-268 valign attribute, 130 with error text, 271-276 thick client architecture, 416. See also range validation, 278-281 client-side Web application forms in HTML, 138-140 architecture with absolute positioning, 157-159 thin client architecture, 423. See also with hidden fields, 152-153 server-side Web application in tables, 142-145 architecture JavaScript this keyword (JavaScript), 235 changing text color, 210-211 for field-level validation, 253 displaying date and time, 215-216 three-tiered Web application architec- for field-level validation, 254-258 ture, 440-444 to hide and show HTML elements, advantages, 443 219-222 common applications, 441 image rollover effect, 224-227 disadvantages, 444 retrieving data from cookies, middle-tier technologies, 441 300-302 partitioning into tiers, 441-442 storing data in cookies, 296-297 tiling background images, 63 schema, 389-390 title element (HTML), 33, 54, 62, associating schema with XML doc• accessing with the DOM, 180, 190 ument,391

473 Index

Try It (cont.) unescapeO function (JavaScript), style sheets 298-299 embedded styles, 77-80 Unified Modeling Language (UML), external styles, 90-92 15-16 inline styles, 74-76 uniqueness, testing for (XSLT), 375-376 style classes, 82-84 unordered list, 54 visual effects, 87-89 URI (Uniform Resource Identifier), 4, tables in HTML, 110-111 42-43 for forms, 142-145 absolute, 42-43 usingJavaScript, 410-413 accessing with the DOM, 190 with scroll bar, 118-121 appending information to, 305-306 with styles, 113-116 href attribute, 42 usingXML, 352-354,410-413 for namespaces, 326-328 using XSLT stylesheets, 352-354 to pass form data, 305 Web pages in HTML, 40-42 referring to, 190 with links, 46-48 relative, 42-43 XML,321-322 src attribute, 42 reading, 400-402 URL (Uniform Resource Locator), 4, 42. transforming, 349-350 See also URI (Uniform viewing, 326 Resource Identifier) XPath, 360-362 URL property of document object XSLT stylesheet, 346-348 (DOM), 190 associating stylesheets with XML URN (Uniform Resource Name), 4 document,349-350 U.S. Department of Energy Computer built-in templates, 368 Incident Advisory Center, 308 structures, 370-372 use attribute of attribute element templates, 365-366 (schema), 392 type attribute use cases, 13-14 accessing with the DOM, 194 user actions, responding to, 204-205 of attribute element (schema), 392 User-interface design, 12, 16-23 of button element (HTML), 135-136, conceptual design, 17-18 160 navigation techniques, 18-21 of element element (schema), page layouts, 22 386-388,393 prototype,23 oflink element (HTML), 52, 89 user interface tier in software architec• of ol element (HTML), 53 ture, 440 of script element (HTML), 212 user notification of invalid data entry, of style element (HTML), 76-77 268-276 oful element (HTML), 54 type property of node object (DOM), 194 v valid document u HTML, 37, 39, 64 ul element CHTML), 54 )GITML,37,39,64 type attribute (deprecated), 54 XML,384 UML (Unified Modeling Language), validating 15-16 cascading style sheets, 103-104 underlined text, 98 form data. See form data validation

474 Index

H~L,37-39,64,66 of stylesheet element (XSLT), 343-344, XML,384 374 valign attribute version of HTML, specifying, 36-38 of col element (HTML), 129 version ofWeb browser, 177 of colgroup element (HTML), 129 vi (Unix), for file creation, 39, 320, 345, 388 oftbody element (HTML), 129 View menu (Internet Explorer), Source, 28 oftd element (HTML), 127 View menu (Netscape), Page Source, 28 oftfoot element (HTML), 130 visibility property (style sheet), 99 ofth element (HTML), 128 Visual Basic, 428 ofthead element (HTML), 130 for ActiveX controls, 417-420 oftr element (H~L), 128 as server-side technology, 427, 428 value attribute in three-tiered architecture, 443 accessing with the DOM, 194 Visual Basic Scripting Edition. See of button element (HTML), VB Script 135-136,160 visual design of elements, and validation, 250 columnarlayout,106-107,121-126 of input element (HTML), 136, conceptual design, 17-18 161,163-164 font size, 100 of option element (HTML), 146-147, forms, 140 165 magazine-style layout, 121-126 value-of element (XSLT), 343-345,351, navigation techniques, 18-21 364,374 page layouts, 22 select property, 343-345, 374 prototype, 23 value property of node object (DOM), resolution, 58 194 tables, 108-109, 121-126 var keyword (JavaScript), 202 visual effects, style sheets for, 85-89 variable element (XSLT), 374,376-378 vocabulary for markup languages, 326. name attribute, 374, 376-378 See also DTD (document type select attribute, 374,376-378 definition) variables (JavaScript), vspace attribute ofimg element (HTML), converting types, 234 52 declaration, 202 in function, 204 w types, 202 WAP (Wireless Access Protocol), 36 variables (XSLT), 369 Web. See World Wide Web to locate specific nodes, 376 Web application architecture, 23, VBScript, 149, 200, 212 415-446 and ASP, 431 client-side architecture, 416-423 browser support, 212 advantages, 422 as client-side technology, 420,422 common applications, 417-418 commenting,439 disadvantages, 423 as server-side technology, 149, 200, technologies, 418-421 431,437,439,443 combined client-side and server-side, and submitting forms, 149 438-440 in three-tiered architecture, 443 advantages, 438-439 version attribute disadvantages, 439-440 of schema element (schema), 386 resources, 444-446

475 Index

Web application architecture (cont.) creating static, 38-42 server-side architecture, 423-437 design, 12, 16-23 advantages, 437 indexing for search engines, 62 common applications, 424-425 title, 33 disadvantages, 437 Web server, 3. See also Web application technologies, 425-436 architecture three-tiered architecture, 440-444 Web sites, 3 advantages, 443-444 Web time, 10, 14 common applications, 443 weight of font, 96 disadvantages, 444 well-formed middle-tier technologies, 443 HTML document, 30 partitioning into tiers, 441-442 XML document, 318-319, 332, 384 Web application design, 9-26. See also XSLT stylesheets, 343 visual design when element CXSLT), 369-372, 374, 376 conversion of existing application, 17 test attribute, 369-372,374,376 methodology, 11. See also GUIDS while statement (JavaScript), 239 Methodology white space. See space prototype,23 width attribute purpose, 10-11 of img element (HTML), 46, resources, 25-26 52,63 time requirements, 10 of table element (HTML), 127 Web applications, 1, 3 oftd element (HTML), 128 Web browser, 3. See also Internet ofth element (HTML), 128 Explorer; Netscape width of tables, impact on performance, browser object model. See browser 130 object model width property (style sheet), 99 in client-side architecture, 416 for table columns, 113 in combined architecture, 438 window object (browser object model), compatibility, 56-57, 72 175,177-178 cross-browser support, 17, 56-57, 64 windows and DOM. See DOM (Document closing with JavaScript, 242 Object Model) opening with HTML, 49 processing by, 416 opening with JavaScript, 241 reloading or refreshing page, 41 Wireless Access Protocol (WAP), 36 in server-side architecture, 423-425 with-param element CXSLT), 375 support detection, 244 name attribute, 375 in three-tiered architecture, 442 WordPad for file creation, 39, 320, 345, viewing 388 cookies, 291,307 World Wide Web, 2-3 HTML source, 28 how it works, 3-6 XML files, 322-326 origins, 3 Web client, 3. See also Web application resources, 7 architecture World Wide Web Consortium, 3, 38 Web crawlers, 62 Cascading Style Sheet specification, Web pages, 3. See also HTML (Hypertext 70,72,104 Markup Language) and colors, 54-55 accessibility of, 66 and deprecated elements, 49, 129

476 Index

DOM specification, 179, 188-195, 196, with XSLT stylesheets, 348-350 198 attribute-based, 315-316 forms specification, 169 attributes, 313-314 HTML specification, 38, 310 basics, 310-314 image standard, 61 benefits, 314-315 Platform for Privacy Preferences for building an HTML table Project, 308 using JavaScript, 406-413 PNG standard, 61 using XSL, 350-354, 369-372 table specification, 132 and case sensitivity, 311,331-332 URI specification, 4, 7, 42 character entities, 319-320 Web site, 38, 67 as client-side technology, 416,419, XHTML specification, 35-36, 67 422 XML specification, 314,319 commenting, 315-316 XSL specification, 337 debugging, 331-332 wrap attribute of td element CHTML), 128 declaration, 316 write() method of document object directories and files, 331 (DOM), 180, 191, 207 document element, 316 writeln() method of document object documenting with a schema, 384 (DOM), 191 element-based, 316-318 WYSIWYG editor, 39 elements, 310-313 file creation, 320-322 X andHTML,35 XFDL (Extensible Forms Description namespaces, 326-328 Language), 396 navigating with JavaScript, XHTML,35-38 402-406 body content in block-level elements, parsing, 319-320,332 35-36,48,135 reading with JavaScript, 397-413 and case sensitivity, 29, 35, 37 resources, 333-334 and element attributes, 36,261 root element, 316,318,321 empty tags, 36 as server-side technology, 424, 436, ending tag, 29, 36 437 form element compliant with, 135 in three-tiered architecture, 443 html element, 32 transforming to HTML, 336-337, and id attribute, 36, 188 354-356 and name attribute, 36 uses of, 328-330 overlapping tags, 30 valid,384 quotation marks for attribute values, valid vs. well-formed, 384 31,36 viewing file with browser, 322-326 root element, 32, 35 well-formed, 318-319 specifications, 67 XHTML,29-32 style element type attribute, 77 XML documents, 310. See also XML version, 36-38 (Extensible Markup Language) well-formed HTML, 30 XSLT stylesheets as, 343 XML (Extensible Markup Language), XML elements, vs. XSLT elements, 344 309-334 XML parser, 319-320, 332 associating in Internet Explorer, 349 with schema, 391 XML Path Language. See XPath

477 Index

XMLSpy,320 and style sheets (CSS), 352 for schema creation, 388, 394 stylesheets (XSLT), 338-339 and XML document transformation, templates, 338, 341-342 349 built-in, 366-368,378-379 for XSLT stylesheets, 345, 348 for testing uniqueness, -stylesheet declaration, 348-350 375-378 xmlns attribute using multiple, 362-366 to define namespace, 327 using variables, 376-378 of schema element (schema), 386-387 in three-tiered architecture, 443 of stylesheet element (XSLT), 343-344, transformations, 338, 354-356 374 on Web server, 379-380 XP (extreme programming), 11 well-formed, 343, 379 XPath, 356-362 and XPath, 356-362. See also XPath accessing attributes using, 358-359 XSLT elements and attributes, and case sensitivity, 360, 378 372-375 matching criteria for a template pat- XSLT structures, 369-372. See also tern,343,347-348,350,355, XSLT structures 356 . file extension, 346 reference, 357-360 XSL Formatting Objects (XSL-FO), 337 .xsd file extension, 388-389 XSL processor, 340, 354-356 XSL (Extensible Stylesheet Language), in Internet Explorer, 345 335-382 to verify well-formed XSLT stylesheet, associating with XML file, 348-350 379 basics, 336-340 XSLT (XSL Transformations), 337. See also browser support, 349 XSL (Extensible Stylesheet for building an HTML table, 350-354, Language) 369-372 XSLT elements and case sensitivity, 378 vs. HTML elements, 344 as client-side technology, 335-379, vs. XML elements, 344 416,419-420,422 XSLT structures, 369-372 debugging, 378-379 choose element, 369-372 extracting XML data for-each element, 350-354, 355, 373, attributes, 352 375 declarative approach, 341,343-354 if element, 373 elements, 343-354, 350-354 XSLT stylesheets, 338-339. See also XSL procedural approach, 341,350-354 (Extensible Stylesheet file creation, 345-348 Language) iterating through XML nodes (XSLT), 350-354 z namespaces,243-244 z-indexproperty (style sheet), 85-87,99 patterns, 338, 341 zero-based collections, 173 resources, 380-382 zip code, data entry validation, 249 as server-side technology, 379-380, 424,436,437 and ASP, 379 and Java, 380

478 Apress Titles

ISBN PRICE AUTHOR TITLE 1-893115-01-1 $39.95 Appleman Appleman's Win32 API Puzzle Book and Tutorial for Visual Basic Programmers 1-893115-23-2 $29.95 Appleman How Computer Programming Works 1-893115-97-6 $39.95 Appleman Moving to VB. NET: Strategies, Concepts, and Code 1-893115-09-7 $29.95 Baum Dave Baum's Definitive Guide to LEGO MINDSTORMS 1-893115-84-4 $29.95 Baum, Gasperi, Extreme MINDSTORMS Hempel, and Villa 1-893115-82-8 $59.95 Ben-Gan/Moreau Advanced Transact-SQL for SQL Server 2000 1-893115-99-2 $39.95 Cornell/Morrison Programming VB .NET: A Guide for Experienced Programmers 1-893115-71-2 $39.95 Ferguson Mobile .NET 1-893115-90-9 $44.95 Finsel The Handbook for Reluctant Database Administrators 1-893115-85-2 $34.95 Gilmore A Programmer's Introduction to PHP4.0 1-893115-17-8 $59.95 Gross A Programmer's Introduction to Windows DNA 1-893115-62-3 $39.95 Gunnerson A Programmer's Introduction to C#, Second Edition 1-893115-10-0 $34.95 Holub Taming Java Threads 1-893115-04-6 $34.95 Hyman/Vaddadi Mike and Phani's Essential C++ Techniques 1-893115-50-X $34.95 Knudsen Wireless Java: Developing with Java 2, Micro Edition 1-893115-79-8 $49.95 Kofler Definitive Guide to Excel VBA 1-893115-56-9 $39.95 Kofler MySQL 1-893115-87-9 $39.95 Kurata Doing Web Development: Client-Side Techniques 1-893115-75-5 $44.95 Kurniawan Internet Programming with VB 1-893115-19-4 $49.95 Macdonald Serious ADO: Universal Data Access with Visual Basic ISBN PRICE AUTHOR TITLE 1-893115-06-2 $39.95 Marquis/Smith A Visual Basic 6.0 Programmer's Toolkit 1-893115-22-4 $27.95 McCarter David McCarter's VB Tips and Techniques 1-893115-76-3 $49.95 Morrison C++ For VB Programmers 1-893115-80-1 $39.95 Newmarch A Programmer's Guide to Jini Technology 1-893115-58-5 $49.95 Oellermann ArchitectingWeb Services 1-893115-81-X $39.95 Pike SQL Server: Common Problems, Tested Solutions 1-893115-20-8 $34.95 Rischpater Wireless Web Development 1-893115-93-3 $34.95 Rischpater Wireless Web Development with PHP andWAP 1-893115-24-0 $49.95 Sinclair From Access to SQL Server 1-893115-94-1 $29.95 Spolsky User Interface Design for Programmers 1-893115-53-4 $39.95 Sweeney Visual Basic for Testers 1-893115-29-1 $44.95 Thomsen Database Programming with Visual Basic .NET 1-893115-65-8 $39.95 Tiffany Pocket PC Database Development with eMbedded Visual Basic 1-893115-59-3 $59.95 Troelsen C# and the .NET Platform 1-893115-26-7 Troelsen Visual Basic .NET and the .NET Platform 1-893115-54-2 $49.95 Trueblood/Lovett Data Mining and Statistical Analysis UsingSQL 1-893115-16-X $49.95 Vaughn ADO Examples and Best Practices 1-893115-83-6 $44.95 Wells Code Centric: T-SQL Programming with Stored Procedures and Triggers 1-893115-95-X $49.95 Welschenbach Cryptography in C and C++ 1-893115-05-4 $39.95 Williamson Writing Cross-Browser Dynamic HTML 1-893115-78-X $49.95 Zukowski Definitive Guide to Swing for Java 2, Second Edition 1-893115-92-5 $49.95 Zukowski Java Collections

Available at bookstores nationwide or from Springer Verlag New York, Inc. at 1-800-777 -4643; fax 1-212-533-3503. Contact us for more information at sales@apress. com. Apress Titles Publishing SOON!

ISBN AUTHOR TITLE 1-893115-73-9 Abbott Voice Enabling Web Applications: VoiceXML and Beyond 1-893115-48-8 Bischof The .NET Languages: A Quick Translation Reference 1-893115-67-4 Borge Managing Enterprise Systems with the Windows Scripting Host 1-893115-39-9 Chand/ Gold A Programmer's Guide to ADO .NET in C# 1-893115-47-X Christensen Writing Cross-Browser XHTML and CSS 2.0 1-893115-72-0 Curtin Building Trust: Online Security for Developers 1-893115-42-9 Foo/Lee XML Programming Using the Microsoft XML Parser 1-893115-55-0 Frenz Visual Basic for Scientists 1-893115-36-4 Goodwill Apache Jakarta-Tomcat 1-893115-96-8 Jorelid J2EE FrontEnd Technologies: A Programmer's Guide to Servlets, JavaServer Pages, and Enterprise JavaBeans 1-893115-49-6 Kilburn Palm Programming in Basic 1-893115-38-0 Lafler Power AOL: A Survival Guide 1-893115-89-5 Shemitz Kylix: The Professional Developer's Guide and Reference 1-893115-40-2 Sill An Introduction to qmail 1-893115-43-7 Stephenson Standard VB: An Enterprise Developer's Reference for VB 6 and VB .NET 1-893115-68-2 Vaughn ADO Examples and Best Practices, Second Edition

Available at bookstores nationwide or from Springer Verlag New York, Inc. at 1-800-777 -4643; fax 1-212-533-3503. Contact us for more information at [email protected]. books for professionals by professionals™ ApressTM About Apress Apress, located in Berkeley, CA, is an innovative publishing company devoted to meeting the needs of existing and potential programming professionals. Simply put, the "Pl.' in Apress stands for the "Author's PressrM." Apress' unique author-centric approach to publishing grew from conversations between Dan Appleman and Gary Cornell, authors of best-selling, highly regarded computer books. In 1998, they set out to create a publishing company that emphasized quality above all else, a company with books that would be considered the best in their market. Dan and Gary's vision has resulted in over 30 widely acclaimed titles by some of the industry's leading software professionals. Do You Have What It Takes to Write for Apress?

Apress is rapidly expanding its publishing program. If you can write and refuse to compromise on the quality of your work, if you believe in doing more then rehashing existing documentation, and if you're looking for opportunities and rewards that go far beyond those offered by traditional publishing houses, we want to hear from you!

Consider these innovations that we offer all of our authors:

• Top royalties with no hidden switch statements Authors typically only receive half of their normal royalty rate on foreign sales. In contrast, Apress' royalty rate remains the same for both foreign and domestic sales.

• A mechanism for authors to obtain equity in Apress Unlike the software industry, where stock options are essential to motivate and retain software professionals, the publishing industry has adhered to an outdated compensation model based on royalties alone. In the spirit of most software companies, Apress reserves a significant portion of its equity for authors.

• Serious treatment of the technical review process Each Apress book has a technical reviewing team whose remuneration depends in part on the success of the book since they too receive royalties.

Moreover, through a partnership with Springer-Verlag, one of the world's major publishing houses, Apress has significant venture capital behind it. Thus, we have the resources to produce the highest quality books and market them aggressively.

If you fit the model of the Apress author who can write a book that gives the "professional what he or she needs to knowTM," then please contact one of our Editorial Directors, Gary Cornell ([email protected]), Dan Appleman ([email protected]), Karen Watterson ([email protected]) or Jason Gilmore ([email protected]) for more information.