<div dir="ltr"><div>Thank you all for your comments.  I am trying to summarize them next:</div><div><br></div><div>Advantages</div><div>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)</div><div>2. pugixml has a clean interface and it is (much) faster than the alternatives available in VTK. (only the latest pugixml version?)</div><div><br></div><div>Drawbacks:</div><div>1. no validation</div><div>2. no streaming (SAX interface)</div><div>3. an additional library to maintain in VTK.</div><div>4. Three different XML libraries in VTK.</div><div><br></div><div>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).</div><div>I think drawback 3 is mitigated by advantage 1.</div><div><br></div><div>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!<br></div><div><br></div><div>I setup a survey to better assess the community feeling on this: </div><div><br></div><div><a href="https://goo.gl/forms/3cnOk6To0zuaVP2k2">https://goo.gl/forms/3cnOk6To0zuaVP2k2</a><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Jun 20, 2018 at 12:13 PM Robert Michael O'Bara <<a href="mailto:bob.obara@kitware.com" target="_blank">bob.obara@kitware.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">SMTK and CMB use pugixml for years and have been very happy with it.<div><br></div><div>Bob<br><br><div id="m_6849869499684908950m_5552602244085916764AppleMailSignature">Sent from my iPad</div><div><br>On Jun 20, 2018, at 12:07 PM, Jonathan Borduas <<a href="mailto:jonathan.borduas@caboma.com" target="_blank">jonathan.borduas@caboma.com</a>> wrote:<br><br></div><blockquote type="cite"><div>






<div class="m_6849869499684908950m_5552602244085916764WordSection1">
<p class="MsoNormal">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.
<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">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.
<br>
<br>
<u></u><u></u></p>
<p class="MsoNormal">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).<br>
<a href="https://pugixml.org/docs/manual.html#v1.5" target="_blank">https://pugixml.org/docs/manual.html#v1.5</a><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Best<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Jonathan Borduas<u></u><u></u></p>
<p class="MsoNormal">CTO, Caboma Inc. <u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><b>From:</b> vtk-developers <<a href="mailto:vtk-developers-bounces@public.kitware.com" target="_blank">vtk-developers-bounces@public.kitware.com</a>>
<b>On Behalf Of </b>David E DeMarle<br>
<b>Sent:</b> Wednesday, June 20, 2018 11:49 AM<br>
<b>To:</b> Elvis Stansvik <<a href="mailto:elvis.stansvik@orexplore.com" target="_blank">elvis.stansvik@orexplore.com</a>><br>
<b>Cc:</b> vtkdev <<a href="mailto:vtk-developers@vtk.org" target="_blank">vtk-developers@vtk.org</a>><br>
<b>Subject:</b> Re: [vtk-developers] Add pugixml to VTK<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal"> I was thinking more if there should be a push towards one single lib, ...<u></u><u></u></p>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">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?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal">David E DeMarle<br>
Kitware, Inc.<br>
Principal Engineer<br>
21 Corporate Drive<br>
Clifton Park, NY 12065-8662<br>
Phone: 518-881-4909<u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">On Tue, Jun 19, 2018 at 3:36 PM Elvis Stansvik <<a href="mailto:elvis.stansvik@orexplore.com" target="_blank">elvis.stansvik@orexplore.com</a>> wrote:<u></u><u></u></p>
</div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<div>
<p class="MsoNormal">2018-06-16 8:37 GMT+02:00 Chiranjib Sur <<a href="mailto:sur.chiranjib@gmail.com" target="_blank">sur.chiranjib@gmail.com</a>>:<u></u><u></u></p>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p class="MsoNormal">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.<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Any thoughts?<u></u><u></u></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">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).<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Elvis<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">Thanks and regards,<br>
Chiranjib<br>
<br>
------<br>
Using hand held device. Sorry for the typo, if any.<u></u><u></u></p>
</div>
</div>
</div>
<div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">On Fri, Jun 15, 2018, 11:59 PM Utkarsh Ayachit <<a href="mailto:utkarsh.ayachit@kitware.com" target="_blank">utkarsh.ayachit@kitware.com</a>> wrote:<u></u><u></u></p>
</div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal" style="margin-bottom:12.0pt">> 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...<br>
<br>
I am not sure that's correct. He was doing that for Python 3rd party<br>
modules. Are you referring to that?<br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">
http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtk-developers" target="_blank">
http://markmail.org/search/?q=vtk-developers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="https://public.kitware.com/mailman/listinfo/vtk-developers" target="_blank">https://public.kitware.com/mailman/listinfo/vtk-developers</a><u></u><u></u></p>
</blockquote>
</div>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">
http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtk-developers" target="_blank">
http://markmail.org/search/?q=vtk-developers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="https://public.kitware.com/mailman/listinfo/vtk-developers" target="_blank">https://public.kitware.com/mailman/listinfo/vtk-developers</a><br>
<br>
<u></u><u></u></p>
</blockquote>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">
http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtk-developers" target="_blank">
http://markmail.org/search/?q=vtk-developers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="https://public.kitware.com/mailman/listinfo/vtk-developers" target="_blank">https://public.kitware.com/mailman/listinfo/vtk-developers</a><u></u><u></u></p>
</blockquote>
</div>
</div>


</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a></span><br><span></span><br><span>Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a></span><br><span></span><br><span>Search the list archives at: <a href="http://markmail.org/search/?q=vtk-developers" target="_blank">http://markmail.org/search/?q=vtk-developers</a></span><br><span></span><br><span>Follow this link to subscribe/unsubscribe:</span><br><span><a href="https://public.kitware.com/mailman/listinfo/vtk-developers" target="_blank">https://public.kitware.com/mailman/listinfo/vtk-developers</a></span><br><span></span><br></div></blockquote></div></div>_______________________________________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtk-developers" rel="noreferrer" target="_blank">http://markmail.org/search/?q=vtk-developers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="https://public.kitware.com/mailman/listinfo/vtk-developers" rel="noreferrer" target="_blank">https://public.kitware.com/mailman/listinfo/vtk-developers</a><br>
<br>
</blockquote></div>