Authoring XML all the Time, Everywhere and by Everyone

  • Stéphane Sire
  • Christine Vanoirbeek
  • Vincent Quint
  • Cécile Roisin

Contact author: stephane.sire@epfl.ch

Why a new XML Editing Framework ?

Books by Rusty Harold

What developers say ?

http://www.ibm.com/developerworks/library/x-xml2008prevw.html

The end of markup-centric editors

“In the early days, a lot of vendors released markup-centric editors that made embedded documents in tree controls. This had the advantage of being incredibly easy to code using numerous preexisting tree components like JTree on Swing. But they had the distinct disadvantage that nobody wanted to read, write, or edit their XML documents as trees. The marketplace has mostly swept these tools away to an unlamented grave.”

Elliotte Rusty Harold

Snapshot of Rusty Harold's citation

Structured Data Editing Styles

Structured Data Editing Styles

AXEL and XTiger XML Editing Style

AXEL and XTiger XML editing style

Document Template-based Authoring Overview

Overview diagram

Template Language Design Goals

XTiger XML Language

XTiger XML elements and attributes

The core language is only 5 elements and 10 attributes

Attributes for structuring content

XTiger XML elements and attributes

<xt:component name="Contact">...</xt:component>
...
<xt:use types="Contact"/> <!-- no choice -->
<xt:use types="Parag List Code Figure"/> <!-- several choices -->
			

Attributes for repeating content

XTiger XML elements and attributes

			
<xt:attribute types="text" name="Phone" option="unset"/>
...					
<xt:repeat minOccurs="0" maxOccurs="*">
	<xt:use types="Contact"/>
</xt:repeat>
			

Attributes for governing XML generation

XTiger XML elements and attributes

<Guestbook>
   <Person>Charlie</Person>
   <Person Phone="777">Oscar</Person>
</Guestbook>		
			
<xt:repeat label="Guestbook"
          minOccurs="0" maxOccurs="*">
  <xt:use types="Contact"
          label="Person"/>
</xt:repeat>			
			

Attributes for UI generation

XTiger XML elements and attributes

XTiger attributes for UI generation
<h1>				
  <xt:use types="text">
    Workpackage title
  </xt:use>				
</h1>
			

User Interface Design Goals

Example : Optionality and Repetition

4 icons for 5 states
minOccurs maxOccurs State (#nb)
option menu unchecked 0 y (>=1) 0
option menu checked 0 1 1
repetition menu 0 y (>1) 1
repetition menu 1 y (>1) 1
repetition menu x (>=0) y (>x) (x<) n (<y)

Demonstrations

Javascript Implementation

Performances

Template Name # nodes Tree depth Typical document size Download time Click response time
("-" means not noticeable)
Menu 89 5 2KB - -
Curriculum 173 4 2KB - -
Article 317 7 10-100KB 0.2-2s -
Specification 243 6 50-500KB 1-36s -

Conclusion

Acknowledgments
We thank the PALETTE Integrated Project of IST programme of the European Commission (DG Information Society and Media); the CRP Henri Tudor at Luxembourg; as well as the Innovation Promotion Agency of Switzerland and www.madeinlocal.com