<div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div dir="auto"><br></div><div dir="auto">I'm agnostic :) </div></div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div dir="auto"><br></div><div dir="auto">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).</div></div></blockquote><div>Sounds good. I think the problem is finding the time to do it.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div dir="auto">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.</div></div></blockquote><div><br></div><div>This was my thought about this as well.</div><div> </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div dir="auto"></div><div dir="auto">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?</div></div></blockquote><div> </div><div>For citygml I am parsing a few large files. I am not sure where the bottleneck is as I have not implemented it. The processing, after parsing, seems pretty simple though - traversing the tree and moving the data into a VTK polydata.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div dir="auto"></div><div dir="auto">Elvis</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><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" rel="noreferrer" 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_6871118543628402704m_22930864796171834m_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" rel="noreferrer" target="_blank">jonathan.borduas@caboma.com</a>> wrote:<br><br></div><blockquote type="cite"><div>






<div class="m_6871118543628402704m_22930864796171834m_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" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" target="_blank">elvis.stansvik@orexplore.com</a>><br>
<b>Cc:</b> vtkdev <<a href="mailto:vtk-developers@vtk.org" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" 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" 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><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" 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>
<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" 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><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" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" 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 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 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 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 noreferrer" target="_blank">https://public.kitware.com/mailman/listinfo/vtk-developers</a><br>
<br>
</blockquote></div>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer 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 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 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 noreferrer" target="_blank">https://public.kitware.com/mailman/listinfo/vtk-developers</a><br>
<br>
</blockquote></div></div></div>
</blockquote></div></div>