diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 6258846e825..ed27033ccd4 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -1729,6 +1729,9 @@ class BaseModel(object): fields = {} children = True + if isinstance(node, SKIPPED_ELEMENT_TYPES): + return fields + modifiers = {} def encode(s): diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py index 9812bffdfee..0289e4c9d09 100644 --- a/openerp/tools/misc.py +++ b/openerp/tools/misc.py @@ -59,7 +59,10 @@ _logger = logging.getLogger(__name__) # List of etree._Element subclasses that we choose to ignore when parsing XML. # We include the *Base ones just in case, currently they seem to be subclasses of the _* ones. -SKIPPED_ELEMENT_TYPES = (etree._Comment, etree._ProcessingInstruction, etree.CommentBase, etree.PIBase) +SKIPPED_ELEMENT_TYPES = (etree._Comment, etree._ProcessingInstruction, etree.CommentBase, etree.PIBase, etree._Entity) + +# Configure default global parser +etree.set_default_parser(etree.XMLParser(resolve_entities=False)) def find_in_path(name): try: