8

I would like to migrate a project (legacy code which I am not quite familiar with) from Xerces-C v2.x to v3.x.

It turns out that Xerces-C v3 dropped the DOMBuilder class. The migration archive tells me this:

...a number of DOM interfaces (DOMBuilder, DOMWriter, DOMInputSource, etc.) were replaced as part of the the final DOM Level 3 specification conformance work.

That's nice. But is there any guide on how to migrate code that relies on these classes to the new API?

linuxbuild
  • 15,843
  • 6
  • 60
  • 87
DevSolar
  • 67,862
  • 21
  • 134
  • 209

1 Answers1

12

Replacements for removed APIs:

  • Use XercesDOMParser or DOMLSParser instead of DOMBuilder (more info):

    xercesDOMParser->setCreateCommentNodes(true);

  • Use DOMLSSerializer instead of DOMWriter:

    DOMLSSerializer* writer = ((DOMImplementationLS*)impl)->createLSSerializer(); DOMConfiguration* dc = writer->getDomConfig(); dc->setParameter(XMLUni::fgDOMErrorHandler,errorHandler); dc->setParameter(XMLUni::fgDOMWRTDiscardDefaultContent,true);

  • Use DOMLSInput instead of DOMInputSource.

See also:

linuxbuild
  • 15,843
  • 6
  • 60
  • 87
  • 2
    An illustrative example of how to convert `DOMWriter` to `DOMLSSerializer` can be found here: http://trac.osgeo.org/mapguide/ticket/1399 – c_k Oct 02 '14 at 15:43