--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/E5XML/XMLUtilities.py Tue Jan 12 17:55:24 2010 +0000 @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2004 - 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing various XML utility functions. +""" + +def make_parser(validating): + """ + Function to generate an XML parser. + + First it will be tried to generate a validating parser. If + this attempt fails, a non validating parser is tried next. + + @param validating flag indicating a validating parser is requested + @return XML parser object + """ + if validating: + # see if we have a working validating parser available + try: + import _xmlplus + except ImportError: + validating = False + else: + try: + v = _xmlplus.version_info + except AttributeError: + validating = False + else: + if v < (0, 8, 3): + validating = False + + if validating: + try: + from xml.sax.sax2exts import XMLValParserFactory + return XMLValParserFactory.make_parser() + except ImportError: + from xml.sax import make_parser as sax_make_parser + return sax_make_parser() + else: + from xml.sax import make_parser as sax_make_parser + return sax_make_parser()