Version 13 (modified by Michael Howden, 13 years ago) ( diff )



XSLT and XPath are two key technologies used within Sahana Eden to allow easy importing and exporting of information in a wide variety of formats.

Support for importing and exporting data is mostly managed via XSLT templates.

Sahana Data Models

The underlying data models in models/ define the resulting structure that will be within the XML.

XSLT Library

Sahana XSLT/XPath capability is provided by lxml. Currently lxml only supports XSLT/XPath 1.0.

A collection of useful reusable functions are stored in static/formats/xml/commons.xsl

Sahana XML Representation


There are 2 parameters which are passed in:

  • name (comes from the resourcename - e.g. 'shelter')
  • xsltmode (passed in as a var on the URL - e.g. '&xsltmode=extended')

Exporting Data from Sahana

Sahana export templates are stored in: static/formats/*/export.xsl

Importing Data from Sahana

Sahana import templates are stored in: static/formats/*/import.xsl

Background Info and Resources


Debug the stylesheets outside Sahana using Xalan.

Start by converting smaller extracts in debug mode:

java -jar xalan.jar -param name shelter -param xsltmode extended -tt -tg -ts -in japanquake2011_shelter_extract.kml -xsl web2py\applications\eden\static\formats\kml\import.xsl -out shelters.xml

Then process the full thing in non-debug mode:

java -jar xalan.jar -param name shelter -param xsltmode extended -in japanquake2011_shelter.kml -xsl web2py\applications\eden\static\formats\kml\import.xsl -out shelters.xml

For a graphical IDE (Java, so cross-platform), you can trial EditX


Note: See TracWiki for help on using the wiki.