diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2010-01-12 16:18:31 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2010-01-12 16:18:31 +0200 |
commit | 4257e28e3bbb92042f5a1db05eba17d7b2a3b151 (patch) | |
tree | a503f69631812c6dc232714bd10c1e29e0da9eee /libxsd | |
parent | f3e67f694188a16e426e92fda846998fd26db50d (diff) |
Handle DOMLSException to be thrown by future versions of Xerces-C++
Diffstat (limited to 'libxsd')
-rw-r--r-- | libxsd/xsd/cxx/xml/dom/parsing-source.txx | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/libxsd/xsd/cxx/xml/dom/parsing-source.txx b/libxsd/xsd/cxx/xml/dom/parsing-source.txx index 04259ce..59cb153 100644 --- a/libxsd/xsd/cxx/xml/dom/parsing-source.txx +++ b/libxsd/xsd/cxx/xml/dom/parsing-source.txx @@ -5,6 +5,7 @@ #if _XERCES_VERSION >= 30000 # include <xercesc/dom/DOMLSParser.hpp> +# include <xercesc/dom/DOMLSException.hpp> #else # include <xercesc/dom/DOMBuilder.hpp> #endif @@ -259,7 +260,15 @@ namespace xsd xercesc::Wrapper4InputSource wrap (&is, false); #if _XERCES_VERSION >= 30000 - auto_ptr<DOMDocument> doc (parser->parse (&wrap)); + auto_ptr<DOMDocument> doc; + + try + { + doc.reset (parser->parse (&wrap)); + } + catch (const xercesc::DOMLSException&) + { + } #else auto_ptr<DOMDocument> doc (parser->parse (wrap)); #endif @@ -454,8 +463,21 @@ namespace xsd #endif // _XERCES_VERSION >= 30000 + +#if _XERCES_VERSION >= 30000 + auto_ptr<DOMDocument> doc; + + try + { + doc.reset (parser->parseURI (string (uri).c_str ())); + } + catch (const xercesc::DOMLSException&) + { + } +#else auto_ptr<DOMDocument> doc ( parser->parseURI (string (uri).c_str ())); +#endif if (ehp.failed ()) doc.reset (); |