On March 20, 2013, 9:17 p.m., Inge Wallin wrote:
> > Interesting approach to the common case of writing an export filter. I have 
> > a few comments and ideas on the problem and the approach.
> > 
> > Usually one would use XSLT to convert one xml format to another. However in 
> > ODF, there is a lot of context which is not easily available.
> > Nevertheless, in XSLT one has the e.g. XPath expression
> >   "document('styles.xml')//styles:styles" to list all the styles
> > or 
> >   "document('styles.xml')//manifest:file-entry" to list all files from the 
> > manifest
> > 
> > Getting image sizes is tricky though. They'd need to be put in a temporary 
> > xml file which is available to the xslt.
> > 
> > 
> > If you go with the C++ approach, you could try to be complete. Currently, 
> > the list of available tags is whatever you think is useful and should be 
> > expanded whenever you want to support more. Another approach could be to 
> > parse the relax ng and generate the code like explained in
> >   http://lists.kde.org/?l=calligra-devel&m=130768698325584
> > 
> > 
> > As it currently stands, the TraversalBackend not that much information is 
> > added on top of
> >   QXmlContentHandler::startElement / QXmlContentHandler::endElement
> > except a switch for the various QNames. But you do lose the speed of a SAX 
> > parser by using KoXmlElement.
> > 
> > 
> > 
> > 
> > 
> > 
> >

We already talked on IRC but I thought I'd add my comments here as well.

Regarding stream reading (QXmlStreamReader instead of KoXmlReader): I'm 
positive to that but it has to be a later optimization.

Regarding automatic code generation: I'm positive to that too but that's not a 
small task.

So overall good ideas but all of them for later.


- Inge


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/109393/#review29595
-----------------------------------------------------------


On March 20, 2013, 8:35 p.m., Inge Wallin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/109393/
> -----------------------------------------------------------
> 
> (Updated March 20, 2013, 8:35 p.m.)
> 
> 
> Review request for Calligra.
> 
> 
> Description
> -------
> 
> This patch creates a new library in filters/odftraverse. The purpose of this 
> library is to create classes to make it easier to create export filters for 
> ODF files. What you do to use this library is that you inherit a base class 
> for backends to this parser / traverser and in the many callbacks you write 
> the output that is relevant for your output format.
> 
> To show how it can be used I have also created a very simple proof of concept 
> filter that exports to text format, something Calligra actually lacked before.
> 
> The current implementation traverses only ODT files and there are still a 
> number of NYI functions that I want to finish before the actual merge. But I 
> thought I'd get some opinions early. In other words, I expect at least one, 
> maybe two iterations before this branch can be merged.
> 
> 
> Diffs
> -----
> 
>   filters/CMakeLists.txt bb0db3d 
>   filters/libodftraverse/CMakeLists.txt PRE-CREATION 
>   filters/libodftraverse/OdfParser.h PRE-CREATION 
>   filters/libodftraverse/OdfParser.cpp PRE-CREATION 
>   filters/libodftraverse/OdfTraverserContext.h PRE-CREATION 
>   filters/libodftraverse/OdfTraverserContext.cpp PRE-CREATION 
>   filters/libodftraverse/OdtTraverser.h PRE-CREATION 
>   filters/libodftraverse/OdtTraverser.cpp PRE-CREATION 
>   filters/libodftraverse/OdtTraverserBackend.h PRE-CREATION 
>   filters/libodftraverse/OdtTraverserBackend.cpp PRE-CREATION 
>   filters/libodftraverse/odftraverse_export.h PRE-CREATION 
>   filters/words/ascii/AsciiExport.h PRE-CREATION 
>   filters/words/ascii/AsciiExport.cpp PRE-CREATION 
>   filters/words/ascii/CMakeLists.txt d36de47 
>   filters/words/ascii/OdtTraverserAsciiBackend.h PRE-CREATION 
>   filters/words/ascii/OdtTraverserAsciiBackend.cpp PRE-CREATION 
>   filters/words/ascii/TODO ceb1a24 
>   filters/words/ascii/words_ascii_export.desktop PRE-CREATION 
> 
> Diff: http://git.reviewboard.kde.org/r/109393/diff/
> 
> 
> Testing
> -------
> 
> Tested with a lengthy text file.
> 
> 
> Thanks,
> 
> Inge Wallin
> 
>

_______________________________________________
calligra-devel mailing list
calligra-devel@kde.org
https://mail.kde.org/mailman/listinfo/calligra-devel

Reply via email to