00README for Edinburgh Schema Mapping Framework (ESME) examples

See intro for more context and work-in-progress disclaimers, or the original textfile 00README document.

This work comes from a UK government (EPSRC) funded research project at the University of Edinburgh, carried out by Henry S. Thompson and Ari Krupnikov. Background material, original published at XML 2001 Orlando, describes our ideas about Normal forms for XML and XML databinding using schema annotation

(to run this, you need XSV, PyLTXML installed, and a commandline XSLT tool such as 'saxon, 'xsltproc' or 'sabcmd').

The current installation is part of the SWAD-Europe investigation of Schema Annotation approaches. Contact danbri re any issues with this website or additional documentation / scripts.

Dan's TODO list:


Commandline usage:

Or see Makefile.

xsv -r alt po.xml po.xsd | cat infoset-r.dtd - > po-psvi.xml
sabcmd infoset-r.xsl po-psvi.xml  > po-mapped.xml
sabcmd logicOut.xsl po-mapped.xml > po-fopl.xml
sabcmd fopl.html.xsl po-fopl.xml group=no > po-fopl.txt
sabcmd fopl.html.xsl po-fopl.xml group=no > po-fopl.html
sabcmd rdfOut.xsl po-mapped.xml > po-rdf.nt
sabcmd javaInit.xsl po-mapped.xml > po.java

xsv -r alt ifx.xml ifx.xsd | cat infoset-r.dtd - > ifx-psvi.xml
sabcmd infoset-r.xsl ifx-psvi.xml  > ifx-mapped.xml
sabcmd logicOut.xsl ifx-mapped.xml > ifx-fopl.xml
sabcmd fopl.html.xsl ifx-fopl.xml group=no > ifx-fopl.txt
sabcmd fopl.html.xsl ifx-fopl.xml group=no > ifx-fopl.html
sabcmd rdfOut.xsl ifx-mapped.xml > ifx-rdf.nt
sabcmd javaInit.xsl ifx-mapped.xml > ifx.java

Overview of XSV/XSLT mapping tools (smf)

There are two example input pairs of: an xml instance and an annotated XML Schema document:

  1. po.xml, po.xsd
  2. ifx.xml, ifx.xsd

The first two steps in processing are always the same -- schema-validate to produce a reflected PSVI, then process this with a stylesheet to produce a completely mapping-decorated pseudo-instance:

xsv -r rel po.xml po.xsd | cat infoset-r.dtd - > po-psvi.xml
saxon po-psvi.xml infoset-r.xsl > po-mapped.xml

[or s/po/ifx/ throughout]

Any XSLT processor can be used instead of saxon.

Alternatives going forward depend on which output is desired -- the provided examples support first-order predicate logic and java:

(Note, some of these links are missing; I haven't added generated files to the website yet -- dan)

saxon po-mapped.xml logicOut.xsl > po-fopl.xml (needs standardBuiltins.xml)


saxon po-mapped.xml javaInit.xsl > po.java

In the logic case, there are then two alternative viewers:

saxon po-fopl.xml fopl.html.xsl group=yes > po-fopl.html
saxon po-fopl.xml fopl.txt.xsl group=yes > po-fopl.txt

This is an earlier, relatively stable, version of stuff, with no handling of re-entrancy.

HTML page by danbri from henry's original notes
HTML last updated: $Id: 00README.html,v 1.1 2003/01/18 12:36:06 danbri Exp $