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



libs/odf/KoXmlStreamReader.cpp
<http://git.reviewboard.kde.org/r/109887/#comment22757>

    hmmm. This is a rather hot code isn't it? And it introduces string-concat, 
lookups, inserts, ...
    
    Now I am curios: is the plan to make that the default streamReader and if 
could we please measure this?
    
    Just something very simple like a
    QTime t; t.start();
    KWDocument::openUrl(url);
    qDebug()<<t.elapsed();
    and then compaer some documenty before vs after the patch?


- Sebastian Sauer


On April 6, 2013, 3:56 p.m., Inge Wallin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/109887/
> -----------------------------------------------------------
> 
> (Updated April 6, 2013, 3:56 p.m.)
> 
> 
> Review request for Calligra, Jarosław Staniek and Jos van den Oever.
> 
> 
> Description
> -------
> 
> This patch contains a new XML stream reader based on the QXmlStreamReader 
> that is better suited for ODF.
> 
> Much ODF parsing code in Calligra looks like:
> 
>   if (el.namespaceUri() == KoXml::fo && el.name == "border") { ... }
> 
> The reason for this complicated construction is that the prefix (the "fo" in 
> "fo:border") is not unique but is declared at the beginning of each Xml file. 
> Even though "fo" is the normal prefix there is no guarantee that it is  the 
> same in every document. 
> 
> However, it is a very rare document where it is *not* the normal prefix, so 
> what we want to do is to be able to write code like this:
> 
>   If (el.qualifiedName() == "fo:border") { ... }
> 
> and make the XML stream reader or dom tree rewrite the qualified name in the 
> very rare cases that the prefix does not match what we want.
> 
> This is exactly what the KoXmlStreamReader does. It allows you to write 
> easier and faster code while still be correct in the few cases where the 
> prefixes are not the expected ones. It does this by letting the user enter 
> the expected namespace declarations and then compare those to the actual 
> namespace declarations in the document. If they match everything will be as 
> fast as possible. If they don't, it will be slower but still correct.
> 
> As an extra feature I have allowed the user to declare some extra namespaces 
> (see fixNamespace() in KoXmlReader.cpp). This will let documents created by 
> old versions of OpenOffice.org be read even though they use other namespaces.
> 
> I have code that uses this file but that is not yet ready for review. I 
> wanted to put this up early to get feedback while the rest of the yet 
> unfinished code is maturing.
> 
> 
> Diffs
> -----
> 
>   libs/odf/CMakeLists.txt 3680486 
>   libs/odf/KoXmlStreamReader.h PRE-CREATION 
>   libs/odf/KoXmlStreamReader.cpp PRE-CREATION 
> 
> Diff: http://git.reviewboard.kde.org/r/109887/diff/
> 
> 
> Testing
> -------
> 
> Not much. I will do that when the code that uses this code is ready. This 
> review is for getting feedback on the ideas and implementation details.
> 
> 
> Thanks,
> 
> Inge Wallin
> 
>

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

Reply via email to