OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Architectural Forms: The Next Generation

[ Lists Home | Date Index | Thread Index ]

This is the kickoff message for a project tentatively called
AFNG, for Architectural Forms: The Next Generation.
It is intended to provide a mechanism equivalent in power
to Architectural Forms, but decomposed and using a more
modern mechanism for representing the mapping from original
form to architectural form.

The intention is that architectural mapping is done as part
of a pipeline, where validation can be done either before or
after mapping, or both.

The following schema specifies the syntax of an Architectural Map:

default namespace = "x-whatever:somepinorother"
datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes";

ns =		attribute ns {xsd:anyURI}?
values =	"skip" | "process" | "literal"

start = 	element map {
			ns,
			attribute form-att {xsd:token},
			form+
		}

form =		element form {
			ns,
			attribute name {text},
			attribute to-name {xsd:token}?,
			attribute children {values}?,
			attribute data {values}?,
			attmap*
			}

attmap =	element attmap {
			ns,
			attribute to-name {xsd:token},
			attribute from-ns {xsd:anyURI},
			attribute from-name {xsd:token},
			empty
		}

The ns attribute is inherited down the tree, and specifies the
namespace name associated with form-att and to-name attributes.
The from-ns attribute specifies the namespace name associated
with a from-name attribute.

When an instance document is mapped in accordance with an
Architectural Map, each element is checked for the presence
of a form attribute.  The name of the form attribute associated
with a Map is given by the form-att attribute of the map element.
If not found, the element is processed in accordance with the
current *mode*.  In the default mode, the element is omitted
entirely from the output.

If the attribute is present, then its content is matched
against the name attributes of all form elements.
If it does not match any, that is equivalent to not having
a form attribute.

The matching form element is used to decide how to process the
instance document's element type, attributes, child elements, and
data.  The to-name attribute provides the element type for the
output.  The attmap sub-elements specify how to map the instance
document's attributes, using from-att and from-ns to specify
an attribute in the instance document, and to-att and ns to
specify how that attribute is to be named in the output.

The children and data elements set the mode for the processing
of child elements and character data.  "Skip" means omit them,
"process" means do mapping on them, and "literal" means leave
them as-is.  For data, "process" means the same as "literal".

It's just a sketch.   What do y'all think?

-- 
John Cowan           http://www.ccil.org/~cowan              cowan@ccil.org
Please leave your values        |       Check your assumptions.  In fact,
   at the front desk.           |          check your assumptions at the door.
     --sign in Paris hotel      |            --Miles Vorkosigan




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS