<!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 '10 September 2012'>

<!--* 
<!ENTITY city '[CITY]'>
<!ENTITY state '[STATE]'>
<!ENTITY city-state '&city;, &state;'>
<!ENTITY course-dates '[D-D MONTH YYYY]'>
<!ENTITY earlybird-deadline '[DD MONTH YYYY]'>
<!ENTITY course-price '[$NNN]'>
<!ENTITY earlybird-price '[$MMM]'>
<!ENTITY dow1 '[DAY1]'>
<!ENTITY dow2 '[DAY2]'>
<!ENTITY course-dow '&dow1; and &dow2;'>

<!ENTITY hostorg '[HOST]'>
<!ENTITY hostorg-inc '[HOST, Inc.]'>
<!ENTITY course-address '<address>
<addrLine>[HOST]</addrLine>
<addrLine>[STREET]</addrLine>
<addrLine>[CITY, STATE, ZIP]</addrLine>
</address>'>
<!ENTITY local-info '<p>For <label>Metro directions</label>, <label>driving directions</label>,
<label>parking information</label>, and
<label>maps</label>, see
[LOCAL INFO SOURCE].
</p>

<p><label>Accessibility</label>: [ACCESSIBILITY-DESCRIPTION]
</p>
'>
*-->

<!--* for real *-->
<!ENTITY city 'Rockville'>
<!ENTITY state 'Maryland'>
<!ENTITY city-state '&city;, &state;'>
<!ENTITY course-dates '8-9 November 2012'>
<!ENTITY earlybird-deadline '12 October 2012'>
<!ENTITY course-price '$975'>
<!ENTITY earlybird-price '$875'>
<!ENTITY dow1 'Thursday'>
<!ENTITY dow2 'Friday'>
<!ENTITY course-dow '&dow1; and &dow2;'>

<!ENTITY hostorg 'Mulberry Technologies'>
<!ENTITY hostorg-inc 'Mulberry Technologies, Inc.,'>
<!ENTITY course-address '<address>
<addrLine>Mulberry Technologies, Inc.</addrLine>
<addrLine>17 West Jefferson St., Suite 207</addrLine>
<addrLine>Rockville, MD 20850</addrLine>
</address>'>
<!ENTITY local-info '<p>For <label>Metro directions</label>, <label>driving directions</label>,
<label>parking information</label>, and
<label>maps</label>, see
the <xref href="http://www.mulberrytech.com/contact.html">Mulberry
Technologies contact page</xref>.
</p>

<p><label>Accessibility</label>: Mulberry&apos;s facilities are on the
second floor; access is by stairway; there is neither a ramp nor
an elevator.  For more information, please contact Black Mesa
Technologies at 505/747-4224.
</p>
'>

<!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">&city-state;</titlePart>
<titlePart type="event-date">&course-dates;</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="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>
<div id="logistics">
<head>Logistics</head>

<div id="where-when">
<head>When and where</head>
<p>This course will be held from 9:30 a.m. to 5:30 p.m.
&course-dow;, &course-dates;, at
&course-address;
Thanks to &hostorg; for hosting the course.
</p>
&local-info;
<!--* weather problems, natural catastrophes ... *-->
<!--*
<p><label>Accessibility</label>:  no problems reported.</p>
*-->
</div>

<div id="who">
<head>Who</head>
<p>The course is organized by Black Mesa Technologies LLC and 
will be taught by 
<xref href=".../../../who/cmsmcq/">C. M. Sperberg-McQueen</xref>.
</p>
<p>
Michael Sperberg-McQueen 
is the founder of Black Mesa Technologies.
He has served as co-editor of the XML 1.0 specification, the
Text Encoding Initiative's 
<title>Guidelines for Text Encoding and Interchange</title>, 
and the XML Schema Definition Language (XSD) 1.1 specification;
in 2003 he was awarded the XML Cup for contributions to the
development and spread of XML.
</p>
<p>
&hostorg-inc; is providing space (for which thanks),
but has no other involvement with the course.</p>
</div>

<div id="breaks">
<head>Breaks and meals</head>
<p><label>Breaks</label>: Coffee and simple pastries will be provided.
</p>
<p><label>Lunch</label>:  For lunch, you are on your own.
A list of nearby eateries will be provided; you are also welcome
to bring your own lunch.</p>
</div>

<div id="price">
<head>Price</head>
<p>&course-price; per student.</p>
<p>Payment can be made by check, credit card, Paypal payment, or government training/purchase
order on or before the first day
of class.</p>
<p><label>Early-bird discount</label>:  For payments received before &earlybird-deadline;,
a ten percent discount is offered (&earlybird-price; instead of &course-price; for the course).
</p>
</div>

<div id="reg">
<head>Registration / Info</head>
<p>Space in the course is limited.</p>
<p>To reserve a space, to register, or to ask for
more information, please send email to
<xref href="mailto:info@blackmesatech.com">info@blackmesatech.com</xref> or call us at
505/747-4224. </p>
</div>

<div id="announcements">
<head>Announcements of future courses</head>
<p>To receive announcements of future Black Mesa Technologies
courses on XForms and other topics, you can subscribe to
<xref href="http://lists.blackmesatech.com/blackmesatech-announce-l/"
>blackmesatech-announce-l</xref>. </p>
</div>

</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:
-->
