<!DOCTYPE TEI.2 PUBLIC '-//C. M. Sperberg-McQueen//DTD
          TEI Lite 1.0 plus SWeb (XML)//EN'
          '../../../lib/swebxml.dtd' [
<!ATTLIST list type CDATA 'bullets' >
<!ATTLIST seg  rend CDATA 'incremental' >
<!ATTLIST xref href CDATA '' >

<!ATTLIST item id ID #IMPLIED >
<!ATTLIST div id ID #IMPLIED >
<!ATTLIST item id ID #IMPLIED >

<!ENTITY date.last.touched '2 April 2012'>

<!ENTITY ntilde  "&#241;" ><!-- small n, tilde -->

]>
<?xml-stylesheet type="text/xsl" href="../../../lib/courses201206.bmt.xsl"?> 
<!--* <?xml-stylesheet type="text/xsl" href="../../../lib/xforms201102.bmt.xsl"?>  *-->
<TEI.2 rend="no-sec-nums">
<teiHeader>
<fileDesc>
<titleStmt>
<title type="main">Introduction to XForms for XML users</title>
<title type="sub">Building interactive XML tools with XForms</title>
</titleStmt>
<publicationStmt>
<pubPlace>Espa&ntilde;ola, New Mexico</pubPlace>
<publisher>Black Mesa Technologies LLC</publisher>
<date>2012</date>
</publicationStmt>
<sourceDesc>
<p>No source; created in electronic form.</p>
</sourceDesc>
</fileDesc>
</teiHeader>
<text>
<front>
<titlePage>
<docTitle>
<titlePart>Introduction to XForms</titlePart>
<titlePart>Introduction to XForms for XML users</titlePart>
<!--* <titlePart>Building interactive XML tools</titlePart> *-->
</docTitle>

<titlePart type="event-loc">Rockville, Maryland</titlePart>
<titlePart type="event-date">8-9 June 2012</titlePart>

<!--*
<docAuthor>C. M. Sperberg-McQueen, Black Mesa Technologies LLC</docAuthor>
<docDate>rev. &date.last.touched;</docDate>
*-->
<docDate rend="footer">&date.last.touched;</docDate>
</titlePage>

<div id="navbar" type="navbar">
<head>Nearby documents</head>
<list>
<!--* <item><xref href="online.html">Online interface to Thutmose II</xref></item>
      <item><xref href="progdoc.xml">Programmers' documentation</xref></item>
    *-->
<item id="siteroot"><xref href="../../../">Home</xref></item>
</list>
</div>
</front>
<body>
<p>This two-day hands-on course introduces XForms as a technology for
building special-purpose XML editors with limited functionality and
correspondingly simple user interfaces.</p>
<p>XForms is built on the model / view / controller idiom, in which
the ‘model’ is a set of XML documents, the ‘view’ is specified using
XHTML and XForms controls (or <soCalled>widgets</soCalled>), and 
the ‘controller’ takes the form of
declarative links between controls in the view 
and elements or attributes in the
XML documents. With XForms, projects can develop vocabulary- and
task-specific editors which require less training and provide better
task-specific support than full XML editors; it is thus easier to
allow domain experts to examine and modify XML encoding, and routine
tasks can be performed more quickly and reliably.</p>

<div id="materials">
<head>Materials</head>

<p>Important resources for participants in the course include:
<list>
<item><xref href="slides/outline.xml">Course outline</xref> (with links to slides)</item>
<item><xref href="misc/resources.xml">XForms resources list</xref></item>
<item><xref href="../data">Sample public data for exercises</xref></item>
<item><xref href="./course-announcement.xml">Initial course announcement</xref> (for the record)</item>
<item><xref href="./misc/participantinfo.xhtml">Preliminary participant-info questionnaire</xref></item>
<!--* <item><xref href="./misc/eval.xhtml">Course evaluation questionnaire</xref></item> *-->
</list>
</p>
</div>

<div id="topics">
<head>Topics and syllabus</head>
<p>The course is divided into eight sessions, four to a day:
<list type="ordered">
<item id="intro"><p>Introduction</p><p>
High-level overview of XForms, background, goals
and purpose of the XForms spec; <q>Hello, world</q> example</p>
</item>
<item id="atomics"><p>Atomic values and simple structures (1)</p>
<p>A simple form; multiple submit buttons; enumerated values
and vocabulary control; conditional relevance; datatypes;
validation.</p>
</item>
<item id="structures">
<p>Atomic values and simple structures (2)</p>
<p>Error messages, help, hints;
validation beyond datatypes;
styling the form;
adjusting for alternate XML structures.</p>
</item>
<item id="multi">
<p>Multi-part user interfaces</p>
<p>Coding patterns for tabbed interfaces,
wizards, user-selected alternate views (e.g.
summary vs. details, novice vs expert, etc.).
Multiple instances; dynamic user interfaces.
</p>
</item>
<item id="rorep">
<p>Homogeneous repetitions</p>
<p>Handling flat lists;
paging through records, one record at a time;
running off the cliff and how to avoid it.
Read-only lists;
lists of editable items;
see-many, edit-one interfaces.
</p>
</item>
<item id="rwrep"><p>Read-write repetitions, CRUD operations</p>
<p>Special styling for focus item;
two-pane views.
Inserting items; initializing new items.
Deleting items.
</p>
</item>
<item id="mixed">
<p>Mixed content, heterogeneous sequences</p>
<p>Dealing with (flat) heterogeneous sequences;
dealing with variable-depth sequences.
Extensions to XForms:  tree editors, general mixed-content editors.
Doing without the extensions:
targeted editing in mixed content,
offloading work to XSLT.
</p>
</item>
<item id="quovadis"><p>What next?  Individual work and/or Q/A</p>
<p>Where do you go from here?
Individual work <hi>or</hi> questions and answers;
wrapup.</p>
</item>
</list>
<!--* <list>
<item>design goals of XForms</item>
<item>the XForms processing model and the model / view / controller idiom</item>
<item>padded-cell editors</item>
<item>XForms widgets</item>
<item>datatypes in XForms</item>
<item>auto-calculating values</item>
<item>validation in the client</item>
<item>customized error messages</item>
<item>conditional display of parts of the form</item>
<item>multiple instance documents</item>
<item>dynamic user interfaces</item>
<item>using auxiliary documents to make multi-lingual interfaces</item>
<item>tabbed interfaces for multi-part forms</item>
<item>step-by-step wizard-style interfaces</item>
<item>variable repetitions of an element</item>
<item>repetitions among unlike elements</item>
<item>deployment issues and interaction with the HTTP server</item>
<item>where to go from here</item>
</list>
*-->
</p>
<p>During the class, students will develop a small XForms application
with a multi-part interface, multiple widget types, and the ability to
add, modify, and delete records in a set.  Students will be encouraged
to take their class exercise files with them so that they can
continue to work with them after the class.
</p>
<!--*
<p><label>Resources</label>:
<xref href="slides/outline.xml">course outline</xref> (with links to slides),
<xref href="misc/xforms.resources.xml">XForms resources list</xref>,
sample <xref href="data/Gorbals/gorbals-description.xml">Gorbals census data</xref>.
</p>
*-->

</div>
<div id="prerequisites">
<head>Prerequisites</head>
<p>Participants should be comfortable editing XML documents
and have some knowledge of HTML markup.
Familiarity with XPath and XSLT is helpful but not required.
Programming experience is not required.
</p>

<p>Students may bring their own laptops or may use a
classroom machine.</p>

<p>The machine must support wifi networking and have
a browser with support for Javascript and XSLT (any
reasonably current version of most major browsers will
work) as well as software the student can comfortably
use for editing XML documents.  
</p>
</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:
-->
