[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: Storing data
From:       Steven Sroka <sroka.steven () gmail ! com>
Date:       2011-06-24 23:35:42
Message-ID: BANLkTi=cACHoatL3CJzh0fz4G5u2kpv1zw () mail ! gmail ! com
[Download RAW message or body]

>On 24 June 2011 10:26, Andreas Pakulat <apaku@gmx.de> wrote:
> On 24.06.11 15:52:10, Thomas Lübking wrote:
>> Am Friday 24 June 2011 schrieb Parker Coates:
>> > For reading and writing "data storage" XML, I personally think the
>> > QXmlStream(Reader|Writer) classes are nicer (and potentially more
>> > performant because the whole document doesn't ever have to be stored
>> > in memory). There was also some talk of removing QDomDocument in Qt5.

Thanks guys,
I think I will try to fiddle with QXmlStreamReader and QXmlStreamWriter.

I'll see how usable it is for my needs :)

>>
>> "eewww" ;-)
>>
>> While it's certainly more performant and the "proper" (better) way to deal
>> with large documents, the caller has to care about validity himself, yesno?
>
> To a certain extent, yes. In particular its possible to forget the
> closing EndDocument which causes an invalid document or to write out
> stuff not allowed before the document-element. However once you've got
> the opening of a document-element, all following calls to writeXXX
> functions will not break the validity of the XML. writeAttribute for
> example merely writes out 'foo=bar' which is valid anywhere in XML,
> except before/after the root element.
>
>> So to just map some data into a valid xml, my impression was that QDomDoc is
>> the errrrr... more "reliable" approach. *shrug*
>
> No its not, you can shoot yourself into your own foot in the same way as
> above with QDomDocument:
>    QDomDocument doc;
>    QDomText a = doc.createTextNode("foo");
>    doc.appendChild( a );
>    doc.appendChild( doc.createElement("foo"));
>
> That'll generate "foo<foo />" from doc.toByteArray() which is not valid XML.
>
> So there are pitfalls in either case if you forget to create a document
> element. The only thing thats 1 tad bit better with QDomDocument is that
> there's no need for an explicit closing of the document.
>
> Andreas
>
>
>>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
>
 
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic