Registered by Peter S. May

Ixan is a simple language for fluently expressing tree-like information in plain text. It has superficial similarities to YAML and JSON, but it is purpose-built to tersely express XMLish data.

This project is set to develop and maintain the formal specification of the Ixan language and in particular a precise mapping from an Ixan document to a close semantic equivalent in XML, which can then be processed with existing XML transformation tools.

* Never heard of Ixan? See <http://ixan.halfgeek.org/> first.
* Looking for a parser? See Dare <http://launchpad.net/ixan-dare>.
* Looking for post-processing and XSLT transforms? Sit tight—the project is still being prepared.

Ixan is, at the core, a protocol by which plain text documents written in the source format are mapped to equivalent (mostly round-trippable) XML documents. This is in order to allow information to be entered fluently in a simple, non-XML form and then post-processed with any of the wealth of stable XML processing tools now available.

The language itself is easy to write. Indentation is the major means of structure; very simple documents won't need any arcane punctuation. The language's other main feature is "switches", which borrow from the concepts of XML attributes and, more importantly, CSS classes. A normal line of a document is suffixed by zero or more of these, which can be flags (like ".foo") or key-value pairs (like "@bar=baz"). Repetition is allowed. In general a switch starts with a sigil (any one of [!#%&.:;=@^]) and/or appears in brackets (like "[bar baz]"). This language feature is specifically designed to make it *really* easy to make up your own dialect features as you go along, putting off any strict definition until the XSLT phase, at which point your pipeline can define them as it pleases.

The parser's job is solely to express almost exactly what was in the input document, but marked up with enough XML information to ensure that every significant piece of the input is addressable by XPath (or something similar). This is intended not only to keep the design of the parser simple, but also to allow fine-grained control to the post-processing pipeline.

Meanwhile, that XML format (which is called <ix:ante/>) is so detailed as to be less approachable to the developers to whom I address this software. An XSLT sheet called ante2neat is intended to make the Ixan output more accessible for common tasks by resolving constant interpolation, combining indent level bodies with single lines that were determined to serve as their headers, and perform various other general cleanup so that the application-level transforms need not be so complex. As the name suggests, the output is an <ix:neat/> document.

As time goes on, I'd like to see certain application-specific XSLT sheets emerge that excel at conquering tasks that would otherwise be really tricky. I'd also like to see a cleaner version of the parser and/or one that isn't written in Perl (apparently not everyone is using it yet...).

Project information

Maintainer:
Ixan Team
Driver:
Not yet selected
Licence:
MIT / X / Expat Licence

RDF metadata

View full history Series and milestones

trunk series is the current focus of development.

All code Code

Version control system:
Bazaar
Programming languages:
POD, Ixan

All packages Packages in Distributions

All bugs Latest bugs reported

All blueprints Latest blueprints

Downloads

Ixan does not have any download files registered with Launchpad.