Re: Architectural Forms for MicroXML

On Tue, Aug 21, 2012 at 2:03 PM, John Cowan <cowan@mercury.ccil.org> wrote:

> Okay, I've put together an 0.1 draft of Architectural Forms for MicroXML.
> It's only three pages long (plus a rather lengthy example of transforming
> HTML to a private format), but it may still be too complicated.
>
> AF processing involves a source and an _archmap_ that specifies how to
> transform the source into the target.  The following transformations
> can be performed:
>
> 1) Change the name of an element or send it to the bit bucket, based
> either on its name in the source or on the value of an attribute, called
> the _form attribute_, that is specified in the archmap.
>

Good. This could cover the <tag name="foo"> anti-pattern, which I often
find myself having to fix into something readable and efficiently
processable



> 2) Determine whether to retain or discard the character content of a
> mapped element.
>

I wonder whether we could do without this transform.



> 3) Determine whether to retain, discard, or recursively process the
> child elements of a mapped element.
>

This covers a lot of hierarchical abuse ani-patterns.



> 4) Change the name of an attribute.
>

Essential. This is the main use case that's been discussed on the list so
far.



> 5) Create a new attribute either with a fixed value or from the character
> content of its element.
>

A subtle one, but again one I've found myself wishing I had handy often
enough.  Definitely applicable to typical hypermedia as well as common
forms patterns (viz XForms).



> 6) Map tokens within an attribute value to other tokens.
>

Also very important in managing multiple controlled vocabularies.

Sounds like a very good 0.1.


-- 
Uche Ogbuji                       http://uche.ogbuji.net
Founding Partner, Zepheira        http://zepheira.com
http://wearekin.org
http://www.thenervousbreakdown.com/author/uogbuji/
http://copia.ogbuji.net
http://www.linkedin.com/in/ucheogbuji
http://twitter.com/uogbuji

Received on Tuesday, 21 August 2012 20:22:15 UTC