Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
XForms workshop slides
1. What is XForms?
●
W3C standard web form specification
●
MVC architecture
●
XPath validation
●
Manipulate complex XML models*
●
Interacts with REST services
*XPath/XSLT 3.0 and XSLT 2.0 support JSON-LD
See more at http://en.wikipedia.org/wiki/XForms
Basic XForms workshop by Ethan Gruber. June 12, 2015
2. Kerameikos XRX-ish Architecture
XForms, REST, SPARQL/Solr
XForms processor
(Orbeon)
XForms
instructions
Fuseki
Triplestore
Solr
Save
(REST)
Author/editor
Web Form
User
(interface)
HTML5:
XSLT+JS+CSS
VIAF
DBpedia
Pleiades
Getty LOD
Web Services
External Content
7. XForms Group as a conditional for UI displays
<xforms:group ref=".[instance('list')//@lang[string-length(.) = 0]]">
<p>A language attribute is empty.</p>
</xforms:group>
12. <xforms:submission id="save-submission" ref="instance('guide')"
action="{instance('exist-config')/url}eaditor/{instance('control-instance')/collection-
name}/guides/{instance('guide')/ead:eadheader/ead:eadid}.xml" method="put"
replace="none" xxforms:username="{instance('exist-config')/username}"
xxforms:password="{instance('exist-config')/password}">
<xforms:message ev:event="xforms-submit-error" level="modal">Error Saving Documents. Be
sure all required inputs are filled in.</xforms:message>
<xforms:action ev:event="xforms-submit-done">
<xforms:setvalue ref="instance('control-instance')/status">EAD guide
saved.</xforms:setvalue>
<!-- check to see if the document is already published to Solr -->
<xforms:send submission="query-solr-for-publication"/>
<!-- reload toc -->
<xforms:send submission="load-toc"/>
</xforms:action>
</xforms:submission>
13. <xforms:submission id="query-solr-for-publication" serialization="none" method="get"
action="{instance('config')/solr_published}select/?q=id:"
{instance('guide')/ead:eadheader/ead:eadid}"" replace="instance" instance="is-published">
<!-- if the document is found in solr, get the updated solr doc -->
<xforms:action ev:event="xforms-submit-done" if="instance('is-
published')/result[@name='response']/@numFound = '1'">
<!-- post doc to solr -->
<xforms:send submission="doc-to-solr"/>
<!-- post to SPARQL, if the URLs are available in the config -->
<xforms:send submission="get-rdf" if="string(instance('config')/sparql/update) and
string(instance('config')/sparql/store)"/>
</xforms:action>
</xforms:submission>