Hi Svante,

have you seen the ODF Explorer tool I created.

Available from https://github.com/hammyau/ODFExplorer

and http://hammyau.github.io/ODFExplorer/ tries to show some more how to
use it.

The tool there is wrapped in a nodejs web server. But doesn't really need
to be, the underlying Java is standalone.

Hope that helps. And if not please contact me directly I have been playing
around looking into ODF documents for a while now.

And would love to get some feedback and extend the thing for a real user.

Cheers,

Ian



On Sun, Jan 22, 2017 at 12:34 AM, Svante Schubert <[email protected]
> wrote:

> Hi guys,
>
> I need some feed-back of yours!
> I would like to analyse the ODF XML schema a little more to create test
> documents, which are valid variations of a certain ODF feature.
>
> Think of a paragraph. It is represented by the <text:p> element.
> If ODF applications would like to have 'sufficient' test documents of the
> paragraph feature. How would they proceed?
> Straight forward someone would generate a test document with none, one or
> some random number of generated paragraphs on root level.
>
> What else can we think of? Paragraphs being part of header & footer come to
> my mind.
> Perhaps a paragraph within a cell? To generalize these cases - within
> different ODF feature.
>
> But how do we know that we have tests for all type of variations?
> The only possible way seems to me to take a look into the ODF schema.
>
> If you open the ODF 1.2 XML RelaxNG schema
> <http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-schema.rng>
> in
> an editor or viewer you may find one reference to the <text:p> element:
> <define name="text-p">
> <element name="text:p">
> <ref name="paragraph-attrs"/>
> <zeroOrMore>
> <ref name="paragraph-content-or-hyperlink"/>
> </zeroOrMore>
> </element>
> </define>
> Which is used 19 times throughout the schema.
> The question is: Are there 19 distinct feature scenarios to be tested?
>
> When you try to take a look at some of those occurences, you quickly
> realize that it is very cumbersome to jump back in forth within the text
> file.
> For this reason the Toolkit is generating an HTML file in one of his tests.
>
> After 'mvn install' on all sources you may find the follwing file
> odftoolkit20170121/generator/schema2template/target/OdfReference.html
> I have shared for ease of use at OdfReference.html via public dropbox
> (1.8MB) <https://dl.dropboxusercontent.com/u/49473263/OdfReference.html>.
>
> As you see that in the HTML the RelaxNG sequence and choice is yet missing.
> The generator is not evaluating those, yet.
>
> If you are curious how this works:
> The RelaxNG is being parse by using Sun Microsystems MultiSchemaValidator
> (MSV). A tool that is able to load DTD, W3C schema and RelaxNG into a
> common internal model and use any of them for XML validation.
> Our generator project is using MSV to create an internal model of the ODF
> 1.2 RelaxNG schema and create the typed source classes for the ODFDOM
> project by filling data into templates from the Apache Velocity project.
> Basically text files with Java source code, which are accessing data from
> environment variabels like Java maps in our case the MSV model.
>
> Interesting in this context is the dump of the internal model that can be
> found at
> odftoolkit20170121/generator/schema2template/target/odf12-msvtree.dump
> Again I have shared it odf12-msvtree.dump via public dropbox (0.6MB)
> <https://dl.dropboxusercontent.com/u/49473263/odf12-msvtree.dump>.
>
> So I would like to have some feed-back of you guys?
> What are the possible ways to proceed on this task?
> Is it feasable to load the model of the RelaxNG into a GraphDB to do some
> analysing. For instance, can a certain element be nested?
> Also I would add metadata to elements which belong to a user feature. Like
> all elements that belong to a table, or elements that are basically just
> boilerplate, such as <office:body>.
>
> What you think? Any experiences in this area by anyone? Any thoughts are
> welcome!
>
> All the best,
> Svante
> ᐧ
>



-- 
Cheers,

Ian C

Reply via email to