XForms Essentials by Micah Dubinko This errata page lists errors outstanding in the most recent printing. If you have technical questions or error reports, you can send them to booktech@oreilly.com. Please specify the printing date of your copy. This page was updated March 17, 2006. Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification Confirmed errors: (19) Epigraphs (both); The epigraph attributes, if you look closely, have both a typographical (M-dash, I think) and a shorter hyphen. Should be just the typograpical dash. ---Pearl Bailey ---David Weinberger (39) within Figure 3-1; xml:lang="eng" should be xml:lang="en" {57} Last line in section "count-non-empty()"; The example given will return NaN rather than a numeric value as printed. sum(/operands/operand) div count-non-empty(/operands/operand) The correct XPath to use is: sum(/operands/operand[string-length(normalize-space(.))>0]) count-non-empty(/operands/operand) There should be a WARNING: As specified in XPath, sum() cannot handle blank nodes, which return NaN. A special predicate test such as the one shown here must be used. Note that XPath 2.0, still a draft as of this writing, fixes this deficiency. (102) 3rd section in example; The ">" is missing between "label" and "Send a copy to the following email addresses should be Send a copy to the following email addresses (112) middle of page, code block; example is missing ev:event attributes on an and two consecutive elements. should be ... has a closing tag of . Obviously, it should be (115) within Figure 7-1; should be (115) 2nd sentence from bottom of page; the word "change" in the parenthesis should be "chance". [123] middle of page, 3rd line from bottom of example; The name 'lineset' is incorrect. It should be 'repeat_id'. That is, should be {145} 2nd code sample (one liner); includenamespacesprefixes="" should be includenamespaceprefixes="" ('namespace' isn't plural) (150) table 8-1; inlcudenamespaceprefixes should be: includenamespaceprefixes (transpose l/c) (151) within Table 8-1; last entry in table: "multipart-port" should be "multipart-post" Throughout the table, all 'curly quotes' should be 'straight quotes' (152) Example 9-1; The namespace declaration is wrong, containing a trailing slash This: @namespace xforms url(http://www.w3.org/2002/xforms/) Should be this: @namespace xforms url(http://www.w3.org/2002/xforms) [171] Concatenating a Currency Symbol example; The example shows the calculate expression as: calculate="if( starts-with(E, '?'), ., concat( '?',E ))" it should be: calculate="if( starts-with( ., 'E'), ., concat( 'E', . ))" NOTE: E = EURO Symbol, couldn't get it to render properly (175) 3rd paragraph (just after 2nd code block); typo - the word grandchild should be entirely in fixed font, not just 'child' In HTMLspeak, it currently is grandchild, but it should be grandchild