Hello Ian, Thank you very much for the pointer. I have not seen the ODF Explorer before and it seems very worth to take a deeper look into it. During installation I have seen that you are using as well the MultiSchemaValidator and I like the idea of using GraphViz together with a browser front-end.
As I said, definetly worth to take a closer look into it! Thanks again for the pointer, Ian! Cheers, Svante ᐧ 2017-01-22 13:47 GMT+01:00 Ian C <[email protected]>: > 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 >
