I am not Microsoft’s biggest fan, since I was a Macintosh fanatic in the old days, but had to convert into the Wintel platform for about 10 years ago. But I have to admit though, when comparing Microsoft’s XML parser with the ones that are built into Notes/Domino, that their products sometimes are great!
When comparing Microsoft’s XML parser with the other two, I created an agent that parsed a big (over 700 KB) and complex XML document and read an element’s value. I did this 25 times per parser, and came up with this interesting result (average execution time per parser) when executed in the Notes client:
- Microsoft XML Parser: 0.2 seconds
- NotesSAXParser: 2.2 seconds
- NotesDOMParser: 2.5 seconds
When executed on a Domino server, the result was a bit different, since the server is a bit old:
- Microsoft XML Parser: 1.0 seconds
- NotesSAXParser: 5.0 seconds
- NotesDOMParser: 7.7 seconds
That’s some eye-opening benchmark data! On top of performance, you can also use the Microsoft’s XMLHTTP object to do web service calls from LotusScript, which is alot more useful than SOAPConnect.
I totally agree with you, Jeff!
If you want to call webservices you could use Apache Axis (or part of it) from Lotus Notes or Domino (independent of OS!!). You need to add a handful of JAR-files and adjust java security (on the server).
Then you can generate Java proxy classes directly from a WSDL file, put them in a JAR-file, add the JAR-file to a Java Library and include it in you code. Also runs fine from LotusScript (using LS2J) which is important if you want to use it from UI on client side. You never see SOAP and the rest of the webservice stuff, just an endpoint and some setters and getters 😉
Works fine with 6.5.x and 7.x.
Oops – just forgot to comment on your findings. They are very interesting!
I developed an XML/XSL/XSLT application back in version 5.0.8 and found at that time that we could speed up XSLT transformation by a factor 8-10 by using SAXON (Michael Kay) instead of the built-in classes. I do not know of current performance differences but since it is Java, it will also run cross-platform 😉
John, thanks for your input! SAX parsing could be interesting, I think I’ll have a look at SAXON!
I tried the LS2J approach (with Apache Axis in fact!), but it hanged the server too much, so I have proceeded with MSXML.