Acknowledgements MEDIA research Group Small Data in the large with Oppidum XML web development with Oppidum and eXist-DB Presented at XML London 2013 (read the full article) Stéphane Sire Contact: [email protected]- Oppidoc Christine Vanoirbeek Contact: [email protected]
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Acknowledgements MEDIA research Group
Small Data in the large with OppidumXML web development with Oppidum and eXist-DB
Presented at XML London 2013 (read the full article)
Small data applicationsdocument structure (sections, paragraphs, lists, etc.)
truffled with structured data inside
edit | xml | hide | previewXML Prague 2010Introduction of the AXEL Javascript library for XML authoring in thebrowser
S. Sire, C. Vanoirbeek, V. Quint, C. Roisin,Authoring XML all the Time, Everywhere and by Everyone. InProceedings of XML Prague 2010, pages 125 - 149 , Institute forTheoretical Computer Science, 14/03/2010
Self-service demo:
click a first time on “edit” to transform the bibliographic reference into an editor
click on “xml” (resp. “hide”) to show (resp. hide) its current XML content
click on “preview” to hide / show editor structure editing controls
</Author> <Author> <Name>C. Vanoirbeek</Name> </Author> <Author> <Name>V. Quint</Name> </Author> <Author> <Name>C. Roisin</Name> </Author> </Authors> <Title>Authoring XML all the Time, Everywhere and by Everyone</Title> <Conference>Proceedings of XML Prague 2010</Conference> <Pages> <Start>125</Start> <End>149</End> </Pages> <Location>Institute for Theoretical Computer Science</Location> </Publication></References>
Epilogue templating functionuniversal typeswitch function (cut-and-paste between projects) to includein the epilogue
declare function local:render( $cmd as element(), $source as element(), $view as element()* ) as element(){ element { node-name($source) } { ...typeswitch function calling site:branch function for every site:* extension point... }};
application-dependent function defining the extension points
declare function site:branch( $cmd as element(), $source as element(), $view as element()* ) as node()*{ typeswitch($source) case element(site:skin) return site:skin($cmd, $view) case element(site:lang) return site:lang($cmd, $view) case element(site:navigation) return site:navigation($cmd, $view) case element(site:error) return site:error($cmd, $view) case element(site:login) return site:login($cmd) ... (: default implicitly manages other modules :) default return $view/*[local-name(.) = local-name($source)]/(*|text())};
More design patternsSkinning applications
declarative way to keep the association between CSS and JS files and applicationpages into a skin.xml resource inside the database
Error and message management (Flash a-la Ruby on Rails)
Data mapping
maintaining a relation between URL input space hierarchy and database collectionshierarchy
Form-based access control
Development life cycle (mode="dev|test|prdo" attribute)
Application : FocusNewsletter editor
editorial tool chain for publishing a 4 pages newsletter (3000 printed copies)
Application : AllianceWeb site of the Association Alliance
form editor for participant registration with tool chain to publish badges and list ofparticipants