<!DOCTYPE TEI.2 PUBLIC '-//C. M. Sperberg-McQueen//DTD
TEI Lite 1.0 plus SWeb (XML)//EN'
'../../../../lib/swebxml.dtd' [

<!ENTITY date.last.touched '13 February 2010'>

<!ATTLIST list type CDATA 'bullets' >
<!ATTLIST seg  rend CDATA 'incremental' >
<!ATTLIST xref href CDATA '' >
<!ATTLIST div id ID #IMPLIED >
<!ATTLIST item id ID #IMPLIED >

<!ENTITY iquest "&#xBF;" ><!--=inverted question mark-->
<!ENTITY mdash  "&#x2014;" ><!--=em dash-->
<!ENTITY ntilde  "&#241;" ><!-- small n, tilde -->

]>
<?xml-stylesheet type="text/xsl" href="../../../../lib/courses201206.bmt.xsl"?> 
<TEI.2>
  <teiHeader>
    <fileDesc>
      <titleStmt>
	<title>XForms resources</title>
	<author>C. M. Sperberg-McQueen</author>
      </titleStmt>
      <publicationStmt>
	<p>Unpublished and confidential.</p>
      </publicationStmt>
      <sourceDesc>
	<p>Created in electronic form.</p>
      </sourceDesc>
    </fileDesc>
  </teiHeader>
  <text>
    <front>
      <titlePage>
	<docTitle>
	  <titlePart>XForms resources</titlePart>
	  <titlePart>XForms for XML Users</titlePart>
	</docTitle>
	<docDate>&date.last.touched;</docDate>
      </titlePage>

      <div id="navbar" type="navbar">
	<head>Nearby documents</head>
	<divGen type="toc"/>
	<div>
	  <list>
	    <item id="siteroot"><xref href="../../../..">Home</xref></item>
	  </list>
	</div>
      </div>
    </front>

    <body>
      <p>This document lists resources with useful information about
      XForms, for the use of participants in the BMT course
      <title level="u">Introduction to XForms for XML users</title>.</p>

      <div id="spec">
	<head>The XForms specification</head>
	<list>
	  <item>
	    <p><xref rend="quiet" href="http://www.w3.org/TR/xforms/">XForms
	    1.1</xref>, W3C Recommendation 20 October 2001, ed. John
	    M. Boyer ([Cambridge, Sophia-Antipolis, Tokyo]: World
	    Wide Web Consortium, 2001).
	    Latest version always at 
	    <xref rend="url" href="http://www.w3.org/TR/xforms/"
		  >http://www.w3.org/TR/xforms/</xref>.
	    </p>
	    <note type="commentary">The spec itself; quite readable as technical specifications go
	    but not intended as a tutorial.</note>
	  </item>
	</list>
      </div>
      <div id="quickref">
	<head>Crib sheets, quick reference</head>
	<p>For XForms:</p>
	<list>
	  <item>
	    <p><bibl>Steven Pemberton, <title><xref 
	    href="http://www.w3.org/MarkUp/Forms/2010/xforms11-qr.html">XForms
	    1.1 Quick Reference</xref></title> ([Cambridge, Sophia-Antipolis, Tokyo]: World
	    Wide Web Consortium, 2010).</bibl></p>
	    <note type="commentary">Extremely helpful.
	    <seg rend="suppress-when-tight">
	    You will want to have it open in a tab
	    of your browser whenever you are developing a form.
	    Entries are linked to the XForms 1.1 spec, so fuller information 
	    is readily available.
	    There is also <xref
	    href="http://www.w3.org/MarkUp/Forms/2006/xforms-qr">a version for XForms
	    1.0</xref>.
	    </seg></note>
	  </item>
	  <item>
	    <p><bibl>
	    Joern Turner and Lars Windauer, 
	    <title><xref href="http://www.betterform.de/forms/reference/XFormsFeatureExplorer.xhtml"
	    >XForms Feature Explorer</xref></title>
	    (Berlin:  betterFORM Project, 2010).
	    </bibl></p>
	    <note type="commentary"><seg rend="suppress-when-tight">Reference 
	    material on XForms controls (description, sample, markup)
	    and control structures (group, repeat, switch).  Nice XForms application
	    in its own right.</seg><seg rend="use-when-tight">Reference 
	    material on XForms controls
	    and control structures.</seg>
	    </note>
	  </item>
	</list>
	<p>For related technologies:</p>
	<list>	
	  <item>
	    <p><bibl>Mulberry Technologies, <title><xref
	    href="http://www.mulberrytech.com/quickref/XSLT_1quickref-v2.pdf">XSLT
	    1.0 and XPath 1.0 Quick Reference</xref></title> (Rockville, Maryland:
	    Mulberrry Technologies, Inc., 2000).</bibl></p>
	  </item>
	  <item>
	    <p><bibl>Julia Flanders and Syd Bauman, 
	    <title>Text Encoding Fundamentals: CSS Crib Sheet</title>
	    (Providence:  Brown University Women Writers Project, 2007).
	    <seg rend="suppress-when-tight">Available in both <xref
	    href="http://www.wwp.brown.edu/encoding/current/handouts/css_cribsheet.xml">styled
	    TEI source</xref> and <xref
	    href="http://www.wwp.brown.edu/encoding/current/handouts/css_cribsheet.xhmtl">derived
	    XHTML</xref>.</seg><seg rend="use-when-tight">Linked from <xref rend="url"
	    href="http://www.wwp.brown.edu/encoding/current/handouts/"
	    >http://www.wwp.brown.edu/encoding/current/handouts/</xref>.</seg>
	    </bibl></p>
	  </item>
	  <item>
	    <p><bibl>Julia Flanders, Syd Bauman, and C. M. Sperberg-McQueen,
	    <xref href="crib.oxygen.xml"><title>oXygen crib sheet</title></xref>
	    (Espa&ntilde;ola:  Black Mesa Technologies LLC, 2011).</bibl></p>
	    <note type="commentary">Based on earlier crib sheet by Flanders and
	    Bauman for the Brown University Women Writers Project, 2007.</note>
	    <!--*
	    <p><bibl>Julia Flanders and Syd Bauman, 
	    <title>Crib sheet for oXygen</title> 
	    (Providence:  Brown University Women Writers Project, 2007).
	    <seg rend="suppress-when-tight">
	    Available in both <xref
	    href="http://www.wwptest.brown.edu/outreach/seminars/_current/handouts/oxygenCribSheet.tei"
	    >styled
	    TEI source</xref>, and <xref
	    href="http://www.wwptest.brown.edu/outreach/seminars/_current/handouts/oxygenCribSheet.xhtml"
	    >derived
	    XHTML</xref>.
	    </seg>
	    <seg rend="use-when-tight">Linked from <xref rend="url"
	    href="http://www.wwp.brown.edu/encoding/current/handouts/"
	    >http://www.wwp.brown.edu/encoding/current/handouts/</xref>.</seg></bibl></p> *-->
	  </item>
	  <item>
	    <p><bibl>
	    Alain Couthures, <title><xref href="http://www.agencexml.com/xsltforms/xpath.xml"
	    >XPath functions</xref></title>
	    (Eysines, France:  AgenceXML, 2009).
	    </bibl></p>
	    <note type="commentary">
	      Rather terse list; hover over the icons for longer descriptions.
	    </note>
	  </item>
	</list>
      </div>

      <div id="tutorials">
	<head>Detailed tutorials</head>
	<list>
	  <item>
	    <p><bibl>Steven Pemberton, 
	    <title><xref href="http://www.w3.org/MarkUp/Forms/2010/xforms11-for-html-authors/">XForms 
	    1.1 tutorial for HTML authors</xref></title>
	    <seg rend="suppress-when-tight">
	    and 
	    <title><xref href="http://www.w3.org/MarkUp/Forms/2010/xforms11-for-html-authors/part2.html"
			 >XForms for HTML Authors, Part 2</xref></title>
	    </seg>
	    ([Cambridge, Sophia-Antipolis, Tokyo]: World
	    Wide Web Consortium, 2010).</bibl></p>
	    <note type="commentary">
	      Very helpful, brisk introduction to the main constructs of 
	      XForms; working examples use XSLTForms.  
	      <seg rend="suppress-when-tight">
	      There is also <xref
	      href="http://www.w3.org/MarkUp/Forms/2003/xforms-for-html-authors.html">a
	      version for XForms 1.0</xref>.
	      </seg>
	    </note>
	  </item>
	  <item>
	    <p><bibl>Kurt Cagle, <title>Understanding XForms</title> (six-part series),
	    ([n.p.]:  XML.com, 2006).	  
	  <list>
	    <item><title><xref
		      href="http://www.oreillynet.com/xml/blog/2006/03/why_xforms_matter_revisited.html" 
		      >Why XForms Matter, Revisited</xref></title>, 19 March 2006.
	    </item>
	    <item><title><xref href =
	    "http://www.oreillynet.com/xml/blog/2006/03/understanding_xforms_the_model.html"
	    >The Model</xref></title>, 26 March 2006.
	    </item>
	    <item><title><xref href =
	    "http://www.oreillynet.com/xml/blog/2006/06/understanding_xforms_component.html"
	    >Components</xref></title>, 23 June 2006.</item>
	    <item><title><xref href =
	    "http://www.oreillynet.com/xml/blog/2006/07/understanding_xforms_customiza.html"
	    >Customization</xref></title>, 4 July 2006.
	    </item>
	    <item><title><xref href =
	    "http://www.oreillynet.com/xml/blog/2006/08/understanding_xforms_events_an.html"
	    >Events and Actions</xref></title>, 2 August 2006.
	    </item>
	    <item><title><xref href =
	    "http://www.oreillynet.com/xml/blog/2006/08/understanding_xforms_ajax_xbl.html"
	    >AJAX, XBL and XForms.org</xref></title>, 9 August 2006.
	    </item>
	  </list>
	    </bibl></p>
	  </item>
	  <item><p><bibl>W3 Schools, 
	  <xref href="http://www.w3schools.com/xforms/default.asp">XForms Tutorial</xref>.</bibl></p>
	  <note type="commentary">Workmanlike introduction with some interactive examples.</note></item>
	</list>
      </div>      

      <div id="intros">
	<head>High-level introductions</head>
	<list>
	  <item><p><bibl>Micah Dubinko, 
	  <title><xref href="http://xformsinstitute.com/">XForms Institute</xref></title>
	  ([n.p.]:  Brain Attic, L.L.C., 2005, 2009).</bibl></p>
	  <note type="commentary">
	  An interactive tutorial using Mozquito Deng and Flash.
	  <seg rend="suppress-when-tight">Covers basics only; 
	  describes 1.0, but all of what is
	  described still works in 1.1.</seg></note>
	  </item>
	  <item><p><bibl>John Boyer,
	  <title><xref href="http://www.drdobbs.com/184406031"
		       >XForms &amp; Cause-and-Effect Programming</xref></title>,
	  Dr. Dobb's Journal, April 2005.</bibl></p>
	  <note type="commentary">Mostly high level but with several listings.</note>
	  </item>
	  <item><p>
	    <bibl>W3C XForms Working Group, 
	    <title><xref href="http://www.w3.org/MarkUp/Forms/2003/xforms-faq.html"
			>XForms 1.0 FAQ</xref></title>
	    ([Cambridge, Sophia-Antipolis, Tokyo]: World
	    Wide Web Consortium, 2003).
	    </bibl>
	  </p>
	  <note type="commentary">Mostly high-level <q>Do I need to wait for browser support?</q> 
	  kinds of questions.</note></item>
	</list>
      </div>

      <div id="books">
	<head>Books</head>
	<list>
	  <item><p><bibl>
	    Alain Couthures et al., 
	    <title><xref href="http://en.wikibooks.org/wiki/XSLTForms">XSLTForms</xref></title>
	    ([n.p.]:  Wikibooks, 2010).</bibl></p>
	  <note type="commentary">Currently very uneven in the parts
	  that exist; much is just an empty outline.  <emph>But</emph>
	  some parts are very useful:<list>
	  <item><xref href="http://en.wikibooks.org/wiki/XSLTForms/CSS"
			   >How to style XForms using CSS, in XSLTForms</xref> lists the CSS
	  classes used by XSLTForms.</item>
	  <item><xref href="http://en.wikibooks.org/wiki/XSLTForms/XSLTForms_only_Extensions"
			   >XSLTForms-only extensions</xref> lists extensions to the spec
	  and describes how to supply user-written functions in Javascript.</item>
	  <item><xref href="http://en.wikibooks.org/wiki/XSLTForms/Known_Restrictions"
			   >Known restrictions</xref> lists gaps in coverage of the spec and
	  other restrictions.</item>
	</list>
	  </note>
	  </item>
	  <item><p><bibl>Micah Dubinko, <title><xref
	  href="http://xformsinstitute.com/essentials/browse/">XForms
	  essentials</xref></title> (Sebastopol, CA: O'Reilly, 2003). xiv, 215
	  pp.; index pp. 203-215.</bibl></p> 
	  <note type="commentary">Browsable version <xref href =
	  "http://xformsinstitute.com/essentials/browse/"
	  >online</xref>.</note></item>
	  <item><p><bibl>Dan McCreary, ed.,
	  <title><xref href="http://en.wikibooks.org/wiki/XForms">XForms
	  Tutorial and Cookbook:  Your quick start to the web revolution</xref></title>
	  ([n.p.];  Wikibooks, 2010.</bibl></p>
	  <note type="commentary">
	    Very uneven.  Many of the examples are helpful or
	    thought-provoking, but the explanation and commentary are
	    sometimes terse or misleading.  
	    <seg rend="suppress-when-tight">In addition to a large
	    number of examples, the book has potentially useful
	    sections on 
	    <xref href = 
		  "http://en.wikibooks.org/wiki/XForms/Apache" 
		  >configuring Apache to accept HTTP <kw>PUT</kw>
	    requests</xref> using WebDAV,
	    <xref href = 
		  "http://en.wikibooks.org/wiki/XForms/Versioning_Form_Data_With_WebDAV_and_Subversion" 
		  >configuring Apache and Subversion to provide 
	    auto-versioned WebDAV directories</xref>,
	    and 
	    <xref href = 
		  "http://en.wikibooks.org/wiki/XForms/eXist" 
		  >using eXist with XForms</xref>.
	    </seg><seg rend="use-when-tight">In addition to many
	    examples, the book has potentially useful
	    sections on configuring Apache, WebDAV, Subversion,
	    and eXist.</seg>
	  </note>
	  </item>
	  <item><p><bibl>T. V. Raman, <title>XForms:
	  XML Powered Web Forms</title> 
	  (Boston:  Addison-Wesley, 2004). xxvii, 239
	  pp.; index pp. 229-239.</bibl></p> 
	  <note type="commentary">Systematic survey of XForms, construct
	  by construct.  The accompanying CD-ROM contains the text of the
	  book in HTML form and all examples from the book as free-standing XML
	  documents.</note></item>
	</list>
      </div>

      <div id="collections">
	<head>Link collections and gallimaufries</head>
	<list>
	  <item><xref href="http://www.w3.org/MarkUp/Forms/">W3C XForms page</xref>.
	  Generic, a bit bland, but some useful pointers.</item>
	  <item><xref href="http://planetxforms.org/">Planet XForms</xref>.
	  Federated blogs, links to slide decks, etc.
	  </item>
	  <item><xref href="http://xformsdz.org/">XForms:dz</xref>, the XForms
	  developer zone.  A bit stale just now but some items retain
	  interest.</item>
	</list>
      </div>


      <div id="implementations">
	<head>Implementation sites</head>
	<note type="commentary"><seg rend="suppress-when-tight">This list is not complete; 
	it includes implementations
	I have actually used or which have shown definite signs of life in the last 
	year or so.</seg>  For a fuller list see the W3C <xref href =
	"http://www.w3.org/MarkUp/Forms/wiki/XForms_Implementations"
	>XForms implementations list</xref>.</note>

	<div>
	  <head>In-client implementations</head>
	  <list>

	    <item><xref
	    href="https://community.emc.com/docs/DOC-4345">EMC Documentum
	    XForms Engine (<soCalled>Formula</soCalled>)</xref>, EMC<hi rend="sup">2</hi>.
	    <note type="commentary">Javascript-based client written using 
	    Google Web Toolkit.  Integrates easily into EMC dynamic
	    document delivery system.</note>
	    </item>

	    <item><xref
	    href="http://www.mozilla.org/projects/xforms/">Mozilla
	    plug-in</xref>, Allan Beaufour et al.
	    <note type="commentary">Native client as Firefox plugin.
	    <seg rend="suppress-when-tight">Current version (0.8.7, 26 May
	    2010) requires Firefox 3.6.</seg>  The <xref
	    href="http://www.mozilla.org/projects/xforms/status-detail.html">detailed
	    1.1 feature list and status</xref> are useful for
	    troubleshooting.
	    The <xref href="https://developer.mozilla.org/en/XForms">MDN / XForms</xref>
	    page links to generic documentation and reference documentation
	    specific to the Mozilla plug-in.</note>
	    </item>

	    <item><xref href="http://code.google.com/p/ubiquity-xforms/">Ubiquity XForms</xref>,
	    Mark Birbeck et al.
	    <note type="commentary">Ajax-based implementation; Apache v2.0 license.
	    Widely considered worth watching, but probably not
	    yet ready for use by people not involved in developing the product.
	    Project site seems quiet lately; last updates February 2010.</note>
	    </item>

	    <item><xref href="http://www.agencexml.com/xsltforms.htm">XSLTForms
	    home page</xref>, Alain Couthures.
	    <note type="commentary">
	      XSLT- and Ajax-based implementation:  uses the browser's XSLT
	      engine to translate XHTML+XForms documents into HTML + HTML forms 
	      + Ajax. Commercial support available. 
	      See also Wikibook listed above.</note>
	    <!--*
		<p>Locally at <code>2008/A/Downloads/xsltforms-beta2.zip</code>
		(downloaded 20 Aug 2010) </p>
		*-->
	    </item>
	  </list>
	</div>

	<div>
	  <head>Servlet-based implementations</head>
	  <p>Several Java-based implementations run as servlets in a
	  servlet container; Tomcat, Jetty, or some other servlet container
	  will be needed.  In general, they translate the form into a
	  combination of HTML, HTML Forms, and Ajax-style Javascript code
	  which divides processing between the client and the server.</p>
	  <list>
	    <item><xref href="http://www.orbeon.com/">Orbeon Forms</xref>, Orbeon, Inc.
	    <note type="commentary">
	      Open-source XForms implementation with commercial support
	      and commercial version with extended functionality.  Active
	      user support list.
	      Accompanying Form Builder tool intended to ease form design.
	      Integrates well into Orbeon's pipeline-based document management.
	    </note>
	    </item>
	    <item><xref href="http://www.betterform.de/">betterFORM</xref>,
	    Joern Turner and Lars Windauer.
	    <note type="commentary">Uses the Dojo Javascript toolkit.  
	    Multiple installation options:  .war file for container deployment,
	    stand-alone version packaged with Jetty and eXist, source code,
	    or standalone jar file for integration in larger Java applications.</note>
	  </item></list>
	</div>

	<div>
	  <head>Host languages other than XHTML</head>
	  <list>
	    <item><xref href = "http://www-01.ibm.com/software/lotus/products/forms/index.html" 
			>IBM Forms 4.0</xref>.
	    <note type="commentary">A suite of interrelated software:  form 
	    designer, form server, form viewer.</note>
	    </item>
	    <item><xref href = "http://www-01.ibm.com/software/lotus/products/forms/index.html" 
			>Open Office</xref>, OpenOffice.org.
	    <note type="commentary">XForms can be embedded in Open
	    Office Writer documents.  See the <xref href =
	    "http://wiki.services.openoffice.org/wiki/Documentation/OOo3_User_Guides/Writer_Guide/XForms"
	    >Open Office wiki</xref> for documentation.</note>
	    </item>
	  </list>
	</div>
	<!--*
	<div>
	  <head>Historical</head>
	  <p>If these are still alive, move them up.</p>
	  <list>
	    <item><xref href="http://chiba.sourceforge.net/">Chiba</xref>, Joern Turner et al.
	    <note type="commentary">Extensive <xref 
		   href="http://chiba.sourceforge.net/ChibaUserGuide.pdf">User
	    Guide</xref>.  The project has gone quiet and the main developer's
	    time is now devoted to betterFORM.
	    </note>
	    </item>
	    <item><p><bibl>
	      <xref href="http://sourceforge.net/projects/formfaces/">FormFaces</xref>
	    </bibl></p>
	    <note type="commentary">
	      Used to seem important.
	      
	      Last updated 2007?
	    </note>
	    </item>
	    <item><p><bibl>
	      <xref href="http://www.xsmiles.org/">X-Smiles</xref>
	    </bibl></p>
	    <note type="commentary">
	      Current appears to be 1.2, downloaded in Sept 2009
	    </note>
	    </item>
	  </list>
	</div>
	*-->
      </div>

<!--*
      <div id="exx-collections">
	<head>Collections of examples</head>
	<p>See also specific examples, below.</p>
	<list>
	  <item>...</item>
	</list>
      </div>

      <div id="misc">
	<head>Miscellaneous</head>
	<list>
	  <item><p>Dominque Rabeuf, <xref href="http://www.web21th.com/schemas/xpath.htm">XPath
	  in a single page</xref> (compact display of grammar).</p></item>
	  <item><p>Micah Dubinko,
	  <xref href="http://xformsinstitute.com/validator/">XForms Validator</xref></p>
	  <p>1.0 only or also 1.1?</p></item>
	  <item><p>[Philip Fennell] <xref href="https://developer.mozilla.org/en/XForms/Form_Troubleshooting"
	  >Troubleshooting XForms Forms</xref></p>
	  <p>Useful tips.</p></item>
	  <item><p>Allen Beaufour Larsen,
	  <xref href="http://beaufour.dk/index.php?sec=misc&amp;pagename=xforms">XForms Buddy</xref></p>
	  <p>What exactly does this do?  Add-on to the Mozilla plug-in, looks like,
	  to show you the instance dynamically.</p></item>
	</list>
      </div>

      <div id="exx">
	<head>Specific examples</head>
	<p>See also the vendor / implementation sites.  They
	almost all have examples.</p>
	<div id="exx_wiki">
	  <head>XForms wiki</head>
	  <p>Some specific examples, to come back to, in the
	  <xref href="http://en.wikibooks.org/wiki/XForms">XForms
	  Wikibook</xref>:<list>
	  <item>
	    3.2.1 Input example.  Shows r/o output of editable text fields.  Toy.
	    Redone using bing in 3.2.4.
	  </item>
	  <item>
	    3.2.2 Incremental many to one.  Shows dynamic concatenation of text
	    fields in output field.  Also shows incremental="true" for keystroke
	    by keystroke update.
	  </item>
	  <item>
	    3.2.3 Spreadsheet like updating.  Shows that XForms tracks value
	    dependencies and recalculates smart.  Illustrates a simple data grid
	    with summary cells sum, min, avg.
	  </item>
	  <item>
	    4.2 Address.  Ugly toy.  4.3 Pretty version with CSS.
	  </item>
	  <item>
	    4.6 Message types.  Ephemeral balloons, modeless (non-blocking) dialog
	    box, modal (blocking) dialog box.  In Ffx 3, the dialog boxes are way
	    too small, and don't resize.
	  </item>
	  <item>
	    4.7, 4.8 Textarea, styling text area.
	  </item>
	  <item>
	    4.9 Checkbox, for boolean
	  </item>
	  <item>
	    4.10 shows select1 with appearance=full for radio buttons, and
	    float: left for horizontal layout of radio buttons
	  </item>
	  <item>
	    4.12 Open selection (semi-closed lists)
	  </item>
	  <item>
	    4.13 Select, for multi-select
	  </item>
	  <item>
	    4.14 what to do when you have a LOT of items in select, to put
	    in multiple columns (styling)
	  </item>
	  <item>
	    4.15 Selecting from model.  Shows how choices in a select list can be
	    drawn from the model, not hard-coded.  See also 8.11.
	  </item>
	  <item>
	    4.16 Extends 15, pulling choices from externally held code lists.
	  </item>
	  <item>
	    4.17 Selecting a date.  Use of datatype for calendar date.
	  </item>
	  <item>
	    4.18 String manipulation to allow localized numeric display of date.
	  </item>
	  <item>
	    4.19 Upload.  Notes that we don't know how to upload into the model.
	    (You probably can't.)
	  </item>
	  <item>
	    4.23 setting initial cursor (so user can type at once, without having to
	    click in the first field)
	  </item>
	  <item>
	    4.24 Search form.  has info on actually being front end to Google.
	    (Will this work without cross-site submission?)
	  </item>
	  <item>
	    4.25 Rich Text Editor.  Using FCKedit to do mixed content.  
	  </item>
	  <item>
	    6.1 Events Overview.  Shows how to log events - - equally important,
	    shows how to expose the log to the user (analogous to paper
	    tape calculator).
	  </item>
	  <item>
	    6.3 Conditional actions.  Shows how to set an XPath and an observer,
	    so that (for example) an action is triggered every time a particular
	    element is empty.  (In this example, if the People element loses
	    its last child, a person template is used to insert one.)
	  </item>
	  <item>
	    7.4 Conditional styling.  Shows how to style elements in a repeat
	    differently based on content.  (Need to study the meaning of multiple
	    group elements within a repeat.)
	  </item>
	  <item>
	    8.1 Switch and case.  Shows simple top-level selection of several
	    partial views.  (N.B. content is disjoint; this does not demonstrate
	    different styling or presentation of same information.)  See also 8.6
	    (drop-down menu rather than buttons, for same purpose).  See also
	    9.7.1 Advanced Search Form.
	  </item>
	  <item>
	    8.2 Relevant.  Illustrates several methods of using relevance to
	    control visibility; select1, boolean, XPath ...
	  </item>
	  <item>
	    8.3 Show/hide controls.  Shows simple way to let data be read-only
	    (and thus compact) til the user wants to edit it.
	  </item>
	  <item>
	    8.7 Dynamic labels.  Shows relabeling from a code + label list.
	    Analogous to Steven Pemberton's multilingual interface.  See also
	    Kurt Cagle's third piece on XForms:
	    http://www.oreillynet.com/xml/blog/2006/06/understanding_xforms_component.html
	  </item>
	  <item>
	    8.8 Suggesting Items.  Cool.  Shows how to do (background) server
	    queries for suggested values, while user is typing something.
	    Requires, of course, a server to provide such suggestions.
	  </item>
	  <item>
	    8.9 Slideshow.  Shows iteration (looping) through a list, under
	    control of a 'current-item' variable.
	  </item>
	  <item>
	    8.10 Referencing items.  Shows how to select items iteratively from
	    one list and put them into another.  (Selection without replacement.)
	    I do not fully understand this one.
	  </item>
	  <item>
	    8.11 Dynamic selection lists.  Shows a simple co-occurrence constraint.
	    See also 4.15.
	  </item>
	  <item>
	    9.1.1 Horizontal File Tab Menu.  Shows combination of CSS and switch
	    to implement (simulate?) tabs.  Cf. 8.1, 8.6.  Also 9.1.7.
	  </item>
	  <item>
	    9.1.3 Vertical Menu.  Like a nav bar at left.
	  </item>
	  <item>
	    9.1.4 Folding menus.  (Like accordions of Rico? need to download it to
	    try it.)
	  </item>
	  <item>
	    9.3.1 Tri-document loading.  Three ways to load a document: text
	    widget, upload, uri.  Not clear that this does what I wanted to do
	    with VC filter, but may be an approximation.
	  </item>
	  <item>
	    9.3.2 Entity selection.  Shows how to do simple search for
	    suggestions.  Cf. server-side solution in 8.8.
	  </item>
	  <item>
	    9.4.1 Repeat into table.  Shows how to use xf:repeat attribute rather
	    than xf:repeat element.  (Flagged as not working?)
	  </item>
	  <item>
	    9.4.2 XForms repeat filter.  Given a set of choices, narrow them down
	    as user types.  Cf. 8.8.
	  </item>
	  <item>
	    9.4.4 Insert.  Shows how to insert a new item (at arbitrary loc?)
	  </item>
	  <item>
	    9.4.5 Insert with origin.  You can specify where to insert something;
	    this illustrates adding new records at the end.
	  </item>
	  <item>
	    9.4.6 Delete.  Illustrates single delete button which deletes the
	    currently selected row.
	  </item>
	  <item>
	    9.4.7, 9.4.8 Delete with confirm, Delete/confirm with CSS.  Shows use
	    of switch/case to make a confirmation dialog before actually deleting
	    something.  9.4.8 shows CSS to make a modal pseudo-dialog.
	  </item>
	  <item>
	    9.4.* various aspects of repeat, possibly worth revisiting when you do
	    a detailed study.
	  </item>
	  <item>
	    9.5.1 Load from XML Schema.  Shows reference to external schema
	    document.  Also shows pink-background styling for invalid fields.
	    Nice simple aligned-field display.
	  </item>
	  <item>
	    9.6.1 Shows loading a Javascript function to perform an alert and
	    extract information from the submission element in the model using DOM
	    methods.  The example is pointless because the information retrieved
	    is static and XForms messages could be used more easily.  Does not
	    indicate whether I can have the Javascript return a value I can use.
	    (But it tells me I need to read up on the xf:load element, to find
	    out.)
	  </item>
	  <item>
	    9.8.1 Drawing a pie chart from instance data.  Shows simple SVG
	    generated from instance data.  Has controls to change the instance
	    data, but the changes are not reflected in the SVG (at least, not in
	    Mozilla.)  Based on the Mozilla 1040 example.  Also illustrates
	    sliders.
	  </item>
	  <item>
	    9.8.2 Google charts.  Shows how to take parameters which get passed to
	    Google Charts.  Does not show the chart produced on the same page;
	    that might be a nice variation.  Google charts apparently has a lot of
	    options ...  See also 9.8.3 Venn diagram.  May be faked; changing
	    values seems to have no effect.
	  </item>
	  <item>
	    9.9.1 Event logger.  Shows how to log XForms events.  Similar to one I
	    saw on the Orbeon site.
	  </item>
	  <item>
	    9.9.3 Process step editor.  Toy for constructing a non-branching
	    pipeline of steps, with form to show details of 'current' step.  Could
	    be extended to handle real pipelines; could you build an XProc
	    interface this way?  A content model constructor?
	  </item>
	  <item>
	    9.9.4 Application builder.  Going meta.  (No working code.)  9.9.5
	    Dashboard builder.  Similar, for customizable dashboards with
	    'portlets'.  (Under construction.)
	  </item>
	  <item>
	    9.9.7 Web service tester.  Nothing particularly spectacular, but a
	    possibly nifty application.
	  </item>
	  <item>
	    10.1 Hierarchical bookmarks.  Shows nested repeats to manage a
	    hierarchy of similar objects.  CSS is cracked, uses pink background to
	    identify selected item, makes you think it's invalid.
	  </item>
	  <item>
	    10.2 Outline editor.  Atrocious XML.  And weakish function
	    (essentially nested bulleted lists in the display, single flat list in
	    the instance).  But thought-provoking.
	  </item>
	  <item>
	    10.3 Synonym-set editor.  Not clear how this works (need to download).
	    But interesting subject matter.
	  </item>
	  <item>
	    10.4 W2 Form.  From Mozilla site.
	  </item>
	  <item>
	    10.5 Invoice.  Shows simple invoice structure.  Lacks facilities for
	    inserting or deleting line items.  Lacks decent mechanism for
	    selecting known customers or addresses.
	  </item>
	  <item>
	    10.10 Web Service.  Shows using XForms to submit a SOAP message to a
	    Web Service, and display the response.
	  </item>
	  <item>
	    10.12 suggests that Amazon provides online services one can usefully
	    use.
	  </item>
	  <item>
	    10.15 Graph viewer.  Shows a tool for navigating a graph: description
	    of current node includes clickable links to adjacent nodes.  Search
	    doesn't seem to work.  Not impressive, but suggestive.
	  </item>
	  <item>
	    10.18 Sorting using XSLT.  No link to working example, so I don't know
	    whether this works.  But it addresses some of my questions.
	  </item>
	</list>
      </p>
    </div>
    <div id="exx-xsltforms">
      <head>XSLTForms examples</head>
      <p>There are several nice examples at the XSLTForms home
      page.
      <list>
	<item><xref href="http://www.agencexml.com/xsltforms/balance.xml"
		    >checkbook balancer</xref>; Nice roxy (record-oriented XML) example.</item>
	<item>
	  <xref
	      href="http://www.agencexml.com/xsltforms/calculator.xml">Calculator</xref>. 
	  No keyboard input, which is crazy.  (Does the Mozilla example allow
	  keyboard input?)  
	</item>
	<item><xref href="http://www.agencexml.com/xsltforms/spreadsheet.xml"
		    >spreadsheet</xref>.
	Warning: when tested in August 2010 this performed no input checking;
	when I typed not an arithmetic expression but a Javascript injection
	(<code>alert('Gotcha!');</code>) into the cell,
	it executed the alert. 
	</item>
	<item><xref href="http://www.agencexml.com/xsltforms/bookmarks.xml"
		    >Same bookmarks
	example</xref> as elsewhere?
	</item>
	<item><xref href="http://www.agencexml.com/xsltforms/xpath.xml"
		    >Sweet little tabbed
	display of XPath functions.</xref>
	</item>
      </list></p>
    </div>
    <div id="exx-mozilla">
      <head>Mozilla</head>
      <p>Some good samples at
      <xref href="http://www.mozilla.org/projects/xforms/samples.html">Mozilla
      plug-in samples page</xref>.
      <list>
	<item>Calculator. Study the calculator, until you can do it, too. 
	Can you make it a paper tape calculator?</item>
	<item>Tax form. 
	Study to ensure you understand it
	Can you make the personal exclusion depend on
	the choice of filing mode on previous page?
	Can you make it default, but not force it?
	</item>
	<item>Insurance form.
	study structuring methods
	can you restyle it to put controls at left?  right? floating?
	</item>
      </list>
      </p>
    </div>
    <div>
      <head>EMC Formula</head>
      <p>Some nice demos done with EMC 'Formula' engine
      at <xref href="http://xmldemo.emc.com:8080/xformsdemo/"
      >http://xmldemo.emc.com:8080/xformsdemo/</xref>:
      <list>
	<item>Google advanced search</item>
	<item>Dutch Tax Form</item>
	<item>Shopping List</item>
	<item>A simple XForm</item>
	<item>IRS advanced search</item>
	<item>eBay advanced search</item>
	<item>Hints</item>
	<item>Email Data Type</item>
	<item>Realtor search</item>
	<item>Primitive Types</item>
	<item>Repeating Groups</item>
      </list>
      </p>
      <p>The first (for example) produces
      <eg><![CDATA[
      <data>
      <hl>en</hl>
      <as_q>digital humanities</as_q>
      <as_epq/>
      <as_oq0>computing</as_oq0>
      <as_oq1>linguistic</as_oq1>
      <as_oq2/>
      <as_oq/>
      <as_eq>Macintosh</as_eq>
      <ft>i</ft>
      <num>10</num>
      <lr/><as_filetype/>
      <as_sitesearch/>
      <as_qdr>m</as_qdr>
      <as_rights/>
      <as_occt>any</as_occt>
      <cr/>
      <as_nlo/>
      <as_nhi/>
      <safe>images</safe>
      </data>]]></eg>
      </p>
    </div>
  </div>
  <div id="ancillary">
    <head>Ancillary topics</head>
    <div id="put">
      < ! - - one of (div divGen stage note listBibl list label q cit sp p lg l biblFull bibl)  - - >
      <head>PUT etc.</head>
      <p>On PUT and related issues:</p>
      <list>
	<item>Apache Week: <xref href="http://www.apacheweek.com/features/put"
	>Publishing Pages with PUT</xref> (First published: 4th April
	1997) </item>
      </list>
      <q type="block">
	<p>
	  In fact, Apache handles PUT exactly like it handles the POST
	  method. That is, it supports it, but in order for it to do
	  anything useful you need to supply a suitable CGI program.
      </p></q>
      <p>
	They talk about Apache configuration (use Script directive, see also
	ScriptAlias.  Perhaps suExec scripts will solve the problem, they
	hope.  
      </p>
      <p>
	But ... just get a WebDAV server, ok?  Sheesh.  Don't reinvent the
	wheel.
      </p>
      <p>
	<xref href= 
	      "http://www.serverwatch.com/tutorials/article.php/10825_2176771_2/Enabling-WebDAV-on-Apache.htm"
	      >ServerWatch.com</xref> has a nice article on setting up WebDAV in
      Apache.  It's a bit dated (2003).</p>
    </div>
  </div>

*-->

  <div id="resources">
    <head>Other resources</head>
    <list>
      <item>
	<xref href="http://www.w3.org/MarkUp/Forms/Test/">W3C XForms 
	test suites</xref>
	<note type="commentary">
	  Browsable versions of the 1.0 and 1.1 test suites.
	  The test cases try to be self-describing, so if you are using
	  a native implementation of XForms you can see when looking at
	  the test whether the implementation passes or not.
	</note>
      </item>

      <item><xref href="http://xformstest.org/">XForms test</xref>
      <note type="commentary">
	Hosts test suite pages and scripts for XForms.
      </note>
      </item>
    </list>
  </div>

<!--*
  <div id="to-examine">
    <head>To be looked at</head>
    <list>
      <item><p>
	<xref href="http://xmltoday.org/">XML Today</xref> has some
	XForms articles; Kurt Cagle is a fan.</p>
      </item>
      <item><p><xref href="http://www.eccnet.com/presentations/XForms/XForms.xml">Betty
      Harvey's slides</xref> (2009)</p>
      </item>
      <item><p><xref href="http://www.sitepoint.com/blogs/2005/10/27/cross-browser-xforms/"
		     >Article</xref> by Kevin Yank.</p>
      </item>
      <item><p><xref href="http://code.google.com/p/eaditor/">EADeditor</xref>:
      an XForms-based editor for EAD.</p></item>
      <item><p><xref href="http://code.google.com/p/numishare/">Numishare</xref>:
      mostly Cocoon + Solr, with XForms for administrative tasks.</p>
      <p>any good?</p></item>
      <item><p><xref href="uri">page title</xref></p>
      <p>any good?</p></item>
    </list>
  </div>
*-->
</body>
</text>
</TEI.2>
<!-- Keep this comment at the end of the file
     Local variables:
     mode: xml
     sgml-default-dtd-file:"/Library/SGML/Public/Emacs/sweb.ced"
     sgml-omittag:t
     sgml-shorttag:t
     End:
-->
