views:

623

answers:

1

Is it safe to use Open XML instead of MSXML as the DOM Vendor with Delphi's IXMLDocument interface?

Are there known limitations in basic functionality which I should be aware of?

And how do the Open XML and Xerces implementations differ? (Xerces needs additional libraries, while Open XML seems to be included in the executable iirc)

+3  A: 

Depends on what you need. MSXML is very feature complete and supports things like Schema and XPath among others. IIRC, OpenXML only provides DTD support and has not gotten much TLC in recent years. I have great respect for Dieter Köhler's work since he was a pioneer in the early days of Delphi and XML. I don't know if I would recommend it as the best solution today.

If you need IXMLDocument OpenXML is certainly an option, but I would stick with MSXML unless you have specific concerns about MSXML (e.g. need features of a specific version). If you are open to other libraries, here is a non-exhaustive list of other options you may want to consider:

DIXML - Commercial - Current and very feature complete (www.yunqa.de/delphi/doku.php/products/xml/index)

XMLPartner - Open Source - Not sure of current status, check CG NGs for recent updates (sourceforge.net/projects/tpxmlpartner)

OmniXML - Open Source, good design, similar API to IXMLDocument IIRC (www.omnixml.com)

NativeXML - Commercial, Non-Validating, very fast, non-standard but easy API (www.href.com/nativexml)

Note NativeXML is by Nils Haeck of SimDesign.nl Nils' site is down at the moment..a long story behind this.

FWIW - I personally have used NativeXML and OmniXML and have no complaints. I have been looking at DIXML since it has a very impressive feature set that I need for a specific project.

David

David Taylor