Dialect Modeling. was Re: "Expert Contribution on OOXML Versioning"
Rick Jelliffe
rjelliffe at allette.com.au
Tue Apr 20 10:32:42 CEST 2010
Further to my previous comments, here is a more worked-out example of
the kind of model, in particular for OOXML, that I suggest might be
practical and useful for developers. It would also work for ODF.
It models:
1) Editions:
Specifications and their relationships
2) Packages:
Kinds of document, eg Word Processing, and their dialects
3) Applications
Major programs which can be considered to implement their
own dialects, for example to accept both old and new versions of a standard.
Entries can be decorated with links to the particular schemas, for
example to NVDL and XSD. They can also have links to transformations
between versions, for example to DSRL or XSLT. They can have links to
signature indications, which can be used by a developer to figure out
which dialect is in use. Which extensions are allowed/expected in
different applications can be modeled and managed too.
Cheers
Rick Jelliffe
----------------------------------------------------------------------------------------------
<dialect-model>
<name>Open XML</name>
<editions>
<edition id="e1">
<name href="....pdf" >ECMA 376 (1st ed)</name>
<edition>
<edition id="i1" supercedes="e1">
<name href="....pdf">IS 29500:2008</name>
<edition>
<edition id="i2" supercedes="i1">
<name href="....pdf">IS 29500:2008 w corrections</name>
<name href="....pdf">ECMA 376 (2nd)</name>
<edition>
<edition id="i3" supercedes="i2" >
<name href="....pdf">IS 29500:2011</name>
<name href="....pdf">ECMA 376 (3rd)</name>
<edition>
<edition id="cjk1" >
<name href="....pdf">IS 29500:2012 Part 5 CJK Extensions</name>
<edition>
</editions>
<packages>
<package id="wp">
<name>Open XML Word Processing Package</name>
<extension>DOCX</extension>
<mimetype>application/openxml-wordprocessingml+xml</mimetype><!--
?? -->
<dialect id="ecma-wp" edition="e1" >
<name>ECMA</name>
</dialect>
<dialect id="it1-wp" edition="i1 i2 i3">
<name>ISO Transitional</name>
</dialect>
<dialect id="is1-wp" edition="i1 i2">
<name>ISO Strict</name>
</dialect>
<dialect id="is2-wp" edition="i3">
<name>ISO Strict (new namespace)</name>
<map from="is1-wp" href="Ooxml2008To2010.dsrl" />
<schema href="Ooxml2010wp.nvdl" />
<indicator
ns="http://purl.oclc.org/ooxml/wordprocessingml/*" />
</dialect>
</package>
<package id="sp">
<name>Open XML Spreadsheet Package</name>
<extension>XSLX</extension>
<dialect id="ecma-sp" edition="e1" >
<name>ECMA</name>
</dialect>
<dialect id="it1-sp" edition="i1 i2 i3">
<name>ISO Transitional</name>
</dialect>
<dialect id="is1-sp" edition="i1 i2">
<name>ISO Strict</name>
</dialect>
<dialect id="is2-sp" edition="i3">
<name>ISO Strict (new namespace)</name>
<map from="is1-sp" href="Ooxml2008To2010.dsrl" />
<schema href="Ooxml2010sp.nvdl" />
<indicator ns="http://purl.oclc.org/ooxml/spreadsheetml/*" />
</dialect>
</package>
<package id="ps">
<name>Open XML Presentation Package</name>
<extension>PPTX</extension>
<dialect id="ecma-ps" edition="e1" >
<name>ECMA</name>
</dialect>
<dialect id="it1-ps" edition="i1 i2 i3">
<name>ISO Transitional</name>
</dialect>
<dialect id="is1-ps" edition="i1 i2">
<name>ISO Strict</name>
</dialect>
<dialect id="is2-ps" edition="i3">
<name>ISO Strict (new namespace)</name>
<map from="is1-ps" href="Ooxml2008To2010.dsrl" />
<schema href="Ooxml2010ps.nvdl" />
<indicator ns="http://purl.oclc.org/ooxml/presentationml/*" />
</dialect>
</package>
<extension>
<dialect id="cjk" use="is2-wp it1-wp" edition="cjk2">
<name>ISO CJK Extensions</name>
<indicator
ns="http://purl.oclc.org/ooxml/wordprocessingml/extension/cjk/*" />
</dialect>
<extension>
<packages>
<applications>
<application>
<name>Office 2007</name>
<generate dialect="ecma-wp" />
<generate dialect="ecma-sp" />
<generate dialect=" ecma-ps" />
<consume dialect="ecma-wp" />
<consume dialect= ecma-sp" />
<consume dialect="ecma-ps" />
</application>
<application>
<name>Office 2007 SP2</name>
<consume dialect="ecma-wp + it1-wp " />
<consume dialect="ecma-sp + it1-sp " />
<consume dialect=" ecma-ps+ it1-ps " />
<generate dialect="it1-wp" />
<generate dialect= it1-sp" />
<generate dialect="it1-ps" />
</application>
<application>
<name>Office 2010</name>
<consume dialect="ecma-wp + it1-wp + it2-wp" /> <!-- + is union -->
<consume dialect="ecma-sp + it1-sp + it2-sp" />
<consume dialect="ecma-ps+ it1-ps + it2-ps" />
<consume dialect="is1-wp" />
<consume dialect= is1-sp" />
<consume dialect="is1-ps" />
<generate dialect="it2-wp" />
<generate dialect= it2-sp" />
<generate dialect="it2-ps" />
</application>
<application>
<name>Office 2010 SP1 ???</name>
<consume dialect="ecma-wp + it1-wp + it2-wp + cjk" />
<consume dialect="ecma-sp + it1-sp + it2-sp" />
<consume dialect="ecma-ps+ it1-ps + it2-ps" />
<consume dialect="is1-wp + cjk" />
<consume dialect= is1-sp" />
<consume dialect="is1-ps" />
<generate dialect="it2-wp + ckj" />
<generate dialect= it2-sp" />
<generate dialect="it2-ps" />
<generate dialect="is1-wp + cjk" status="deprecate" />
<generate dialect= is1-sp" status="deprecate" />
<generate dialect="is1-ps" status="deprecate" />
</application>
</applications>
</dialect-model>
More information about the sc34wg4
mailing list