[vtk-developers] Add pugixml to VTK

Elvis Stansvik elvis.stansvik at orexplore.com
Mon Jun 25 03:05:19 EDT 2018


Den fre 22 juni 2018 20:28Dan Lipsa <dan.lipsa at kitware.com> skrev:

> Thank you all for your comments.  I am trying to summarize them next:
>
> Advantages
> 1. ParaView, SMTK and CMB already use pugixml, so instead of maintaining
> this library in three projects we'll do it in one VTK (for those of us that
> work on more than one of these projects)
> 2. pugixml has a clean interface and it is (much) faster than the
> alternatives available in VTK. (only the latest pugixml version?)
>
> Drawbacks:
> 1. no validation
> 2. no streaming (SAX interface)
> 3. an additional library to maintain in VTK.
> 4. Three different XML libraries in VTK.
>
> Looking at the drawbacks: The features named in drawbacks 1. and 2. are
> not important if you don't want to use them. If you do, you have
> alternatives (libxml2 and expat).
> I think drawback 3 is mitigated by advantage 1.
>
> 4. Seems to be the case that different XML libraries have different
> strengths (completeness versus speed). Given that, we either use the most
> complete library and give up speed or we have several libraries available
> and use them based on the feature we need most. VTK already seems to have
> taken this path with libxml2 and expat. I also suspect that in certain
> cases we just use the XML library available at the time, so we could
> convert the code to use a different XML library - Of course this requires
> time and work!
>
> I setup a survey to better assess the community feeling on this:
>
> https://goo.gl/forms/3cnOk6To0zuaVP2k2
>
>
I'm agnostic :)

An idea would be to maybe try to eliminate expat at some point afterwards,
to bring it down to just two libs again? I don't think the speed advantage
of expat over libxml2 could really matter that much? (libxml2 has both a
SAX-like and a pull-style reader API).

libxml2 can then be the power horse for those who want 100% conformance and
possibility of validation, while pugi for those who need speedy DOM.

I wonder what are the speed-requiring use cases for DOM parsing though? Are
you parsing many small docs or a few big ones? Is the XML parsing a true
bottleneck?

Elvis


>
> On Wed, Jun 20, 2018 at 12:13 PM Robert Michael O'Bara <
> bob.obara at kitware.com> wrote:
>
>> SMTK and CMB use pugixml for years and have been very happy with it.
>>
>> Bob
>>
>> Sent from my iPad
>>
>> On Jun 20, 2018, at 12:07 PM, Jonathan Borduas <
>> jonathan.borduas at caboma.com> wrote:
>>
>> My 2 cents here is that speed is of the essence. Validating XML are good
>> for debugging, however I found that most don’t take the time to create an
>> XSD file to enable the validation.
>>
>>
>>
>> In most of our cases at Caboma, XML and meant to be human readable and
>> editable, but it is rare that we manually edit the structure of an XML
>> file.
>>
>> However, we do wait after .xml parsing when the files are 20mb+. We hope
>> that the community would move to the latest version of pugixml (1.9): by
>> looking at the changelogs, there was a lot of performance improvements
>> since version 1.4 (the current version used in ParaView).
>> https://pugixml.org/docs/manual.html#v1.5
>>
>>
>>
>> Best
>>
>>
>>
>> Jonathan Borduas
>>
>> CTO, Caboma Inc.
>>
>>
>>
>>
>>
>> *From:* vtk-developers <vtk-developers-bounces at public.kitware.com> *On
>> Behalf Of *David E DeMarle
>> *Sent:* Wednesday, June 20, 2018 11:49 AM
>> *To:* Elvis Stansvik <elvis.stansvik at orexplore.com>
>> *Cc:* vtkdev <vtk-developers at vtk.org>
>> *Subject:* Re: [vtk-developers] Add pugixml to VTK
>>
>>
>>
>>  I was thinking more if there should be a push towards one single lib, ...
>>
>>
>>
>> I for one would really like us to get down to just one xml parser in VTK.
>> The more the less merrier in terms of maintenance effort and project
>> complexity eh?
>>
>>
>>
>> David E DeMarle
>> Kitware, Inc.
>> Principal Engineer
>> 21 Corporate Drive
>> Clifton Park, NY 12065-8662
>> Phone: 518-881-4909
>>
>>
>>
>>
>>
>> On Tue, Jun 19, 2018 at 3:36 PM Elvis Stansvik <
>> elvis.stansvik at orexplore.com> wrote:
>>
>> 2018-06-16 8:37 GMT+02:00 Chiranjib Sur <sur.chiranjib at gmail.com>:
>>
>> My few cents... The disadvantage with pugixml is that it's a
>> non-validating parser. If I want to make full use of XML schema for any
>> custom developed plugin, it's a very poor choice then.
>>
>>
>>
>> Any thoughts?
>>
>>
>>
>> Also worth noting that it's a DOM-like parser only AFAIK, so if you want
>> to do streaming parsing in a push paradigm à la SAX or a pull paradigm à la
>> libxml2's reader interface, you'd need to turn to another library. Note
>> that may not be a problem if VTK already has libxml2 as a dep, since then
>> you could use that. I was thinking more if there should be a push towards
>> one single lib, then it might make sense to pick one that has both DOM and
>> streaming interfaces (don't know if that's a goal/consideration though).
>>
>>
>>
>> Elvis
>>
>>
>>
>>
>>
>> Thanks and regards,
>> Chiranjib
>>
>> ------
>> Using hand held device. Sorry for the typo, if any.
>>
>>
>>
>> On Fri, Jun 15, 2018, 11:59 PM Utkarsh Ayachit <
>> utkarsh.ayachit at kitware.com> wrote:
>>
>> > I thought Ben Boeckel was working on a removing as many things from
>> ThirdParty as possible (and making them parts of a superbuild). So perhaps
>> the CityGML reader should live in a VTK module that requires an external
>> pugi? I know pugi is small, but...
>>
>> I am not sure that's correct. He was doing that for Python 3rd party
>> modules. Are you referring to that?
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Search the list archives at: http://markmail.org/search/?q=vtk-developers
>>
>> Follow this link to subscribe/unsubscribe:
>> https://public.kitware.com/mailman/listinfo/vtk-developers
>>
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Search the list archives at: http://markmail.org/search/?q=vtk-developers
>>
>> Follow this link to subscribe/unsubscribe:
>> https://public.kitware.com/mailman/listinfo/vtk-developers
>>
>>
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Search the list archives at: http://markmail.org/search/?q=vtk-developers
>>
>> Follow this link to subscribe/unsubscribe:
>> https://public.kitware.com/mailman/listinfo/vtk-developers
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Search the list archives at: http://markmail.org/search/?q=vtk-developers
>>
>> Follow this link to subscribe/unsubscribe:
>> https://public.kitware.com/mailman/listinfo/vtk-developers
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Search the list archives at: http://markmail.org/search/?q=vtk-developers
>>
>> Follow this link to subscribe/unsubscribe:
>> https://public.kitware.com/mailman/listinfo/vtk-developers
>>
>> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Search the list archives at: http://markmail.org/search/?q=vtk-developers
>
> Follow this link to subscribe/unsubscribe:
> https://public.kitware.com/mailman/listinfo/vtk-developers
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://public.kitware.com/pipermail/vtk-developers/attachments/20180625/4fee121c/attachment.html>


More information about the vtk-developers mailing list