← Prev in month
← Prev in thread
Next in thread →
Next in month →
Re: [xml-dev] Pragmatic namespaces. A proposal
<doc> <hd>Proposal for an alternative to namespaces. © Dave Pawson 2009. Will be FDL (http://www.gnu.org/licenses/fdl.html)</hd> <example> <hd>An XML instance. No namespaces, disambiguation of schemas in mind</hd> <root> <!-- Initial schema A--> <a> <a> <a> <chx id='c1'> <!-- Change to use schema B --> <a> <a></a> </a> </chx> <a> <!-- Revert to schema A --> <chx id='c2'> <!-- change to schema C --> <a> <a></a> </a> </chx> </a> </a> </a> </a> </root> </example> <p>Note that DSRL simply can't currently handle this!</p> <hd>Scope of this proposal</hd> <ol> <li>This proposal does not attempt to meet the needs of the HTML WG</li> <li>It does address XML processing via todays ns aware tools(via transformation to a ns based instance)</li> <li>It addressed the needs of schema disambiguation</li> <li>Addresses element names common to more than one schema in use by an application processing the instance</li> <li>Schema association of a particular element is context independent</li> </ol> <hd>Design Outline: </hd> <ol> <li>As Rick suggests, the rationale behind the ns rec is to disambiguate content via the vocabulary used. To do that we only need to recognise transition points, i.e. where elements change from using one schema to another. In the example, these are identified as elements chx. This relies on the scoping of vocabulary association</li> <li>Vocabulary association is only inherited from the nearest ancestor. </li> <li>An element is only ever in one schema from the POV of an application using the instance</li> <li>As Mike Kay and Liam Quinn proprosals, the mapping to vocabulary/schema is done outside the instance.</li> <li>Currently attributes are not addressed. TBD. KISS principle desirable</li> <li>Using something similar to DSRL such an instance could be mapped to a namespaced instance for validation or other processing using todays tools</li> </ol> <hd>Disambiguation</hd> <p>Source document transition points may be identified by either a unique id value or an xpath expression. The external 'namespace definition file' as Liam calls it (see http://www.balisage.net/Proceedings/vol3/html/Quin01/BalisageVol3-Quin01.html), or a 'Vocabulary definition file' as Mike Kay called it, is used for this. No reference to it in the XML instance, as per Relax NG and the lack of a schema reference internal to the file. </p> <p>Having identified such a transition point, the vocabulary definition file maps this point to a schema, or it may need to be to an element within that schema, if there is more than one element of the same name. This assumes an XML based schema. </p> <hd>Vocabulary definition file</hd> <p>This section is not a proposal. It is for discussion only</p> <example> <hd>An example vocabulary definition file for the previous example</hd> <vdf> <meta> ... any required metadata, including versioning </meta> <element xpath="/root" schema="/sgml/rng/sch0.rng" start-element="doc"/> <element xpath="/root/a[1]/a[1]/a[1]/chx[1]" schema="/sgml/rng/sch1.rng" start-element="chx"/> <element xpath="/root/a[1]/a[1]/a[1]/a[1]/chx[1]" schema="/sgml/rng/sch2.rng" start-element="svg"/> <!-- Or --> <element idref="c2" schema="/sgml/rng/sch2.rng" start-element="svg"/> </vdf> </example> <p>This is not fully thought out. For SDRL to do it's remapping such remap information would need to be within (or accessible from) the Vocabulary definition file. An SDRL file link could be part of the metadata</p> </doc> Comments? regards -- Dave Pawson XSLT XSL-FO FAQ. http://www.dpawson.co.uk
← Prev in month
← Prev in thread
Next in thread →
Next in month →