[fpc-pascal] How to save a huge XML?

Michael Van Canneyt michael at freepascal.org
Tue Jun 18 19:18:17 CEST 2013



On Tue, 18 Jun 2013, Sven Barth wrote:

> On 18.06.2013 16:01, Michael Van Canneyt wrote:
>> 
>> 
>> On Tue, 18 Jun 2013, Marcos Douglas wrote:
>> 
>>> On Tue, Jun 18, 2013 at 10:44 AM, Michael Van Canneyt
>>> <michael at freepascal.org> wrote:
>>>> 
>>>> 
>>>> On Tue, 18 Jun 2013, Marcos Douglas wrote:
>>>> 
>>>>>> No. The writer already uses a fixed buffer. Your problem is the use of
>>>>>> TXMLDocument.
>>>>> 
>>>>> 
>>>>> Ideas? Maybe do what Antonio Fortuny said before?
>>>>> 
>>>>>> 
>>>>>> Simply put: logging to XML (worse: using DOM) is a VERY bad idea.
>>>>> 
>>>>> 
>>>>> Well, this is a request of my client. Other process will read this XML.
>>>> 
>>>> 
>>>> Under no circumstances should you use TXMLDocument for this.
>>> 
>>> So, where is recommended to use TXMLDocument class?
>> 
>> General XML processing. Small documents.
>> 
>> You should be aware that the DOM always has the whole XML document in
>> memory, plus a substantial amount of overhead. This is not something FPC
>> specific, but is inherent in the DOM model. (a W3 spec)
>> 
>> Regardles of XML or not: keeping logs in memory is simply a bad idea.
>> You can buffer them for performance reasons, but after some time you
>> must write to file.
>> 
>> The DOM model does not allow this.
>
> Maybe we should implement a simple API for just writing an XML to a stream. 
> Something like SAX only the other way round. E.g.

It exists for HTML already. So: yes, not a bad idea.

Michael.



More information about the fpc-pascal mailing list