@@ -31,27 +31,6 @@ class OneLogin_Saml2_XML(object):
3131 make_root = staticmethod (etree .Element )
3232 make_child = staticmethod (etree .SubElement )
3333
34- @staticmethod
35- def cleanup_namespaces (tree_or_element , top_nsmap = None , keep_ns_prefixes = None ):
36- """
37- Keeps the xmlns:xs namespace intact when etree.cleanup_namespaces is invoked.
38- :param tree_or_element: An XML tree or element
39- :type tree_or_element: etree.Element
40- :param top_nsmap: A mapping from namespace prefixes to namespace URIs
41- :type top_nsmap: dict
42- :param keep_ns_prefixes: List of prefixes that should not be removed as part of the cleanup
43- :type keep_ns_prefixes: list
44- :returns: An XML tree or element
45- :rtype: etree.Element
46- """
47- all_prefixes_to_keep = [
48- OneLogin_Saml2_Constants .NS_PREFIX_XS
49- ]
50-
51- if keep_ns_prefixes :
52- all_prefixes_to_keep = list (set (all_prefixes_to_keep .extend (keep_ns_prefixes )))
53-
54- return etree .cleanup_namespaces (tree_or_element , keep_ns_prefixes = all_prefixes_to_keep )
5534
5635 @staticmethod
5736 def to_string (xml , ** kwargs ):
@@ -144,6 +123,28 @@ def query(dom, query, context=None):
144123 else :
145124 return context .xpath (query , namespaces = OneLogin_Saml2_Constants .NSMAP )
146125
126+ @staticmethod
127+ def cleanup_namespaces (tree_or_element , top_nsmap = None , keep_ns_prefixes = None ):
128+ """
129+ Keeps the xmlns:xs namespace intact when etree.cleanup_namespaces is invoked.
130+ :param tree_or_element: An XML tree or element
131+ :type tree_or_element: etree.Element
132+ :param top_nsmap: A mapping from namespace prefixes to namespace URIs
133+ :type top_nsmap: dict
134+ :param keep_ns_prefixes: List of prefixes that should not be removed as part of the cleanup
135+ :type keep_ns_prefixes: list
136+ :returns: An XML tree or element
137+ :rtype: etree.Element
138+ """
139+ all_prefixes_to_keep = [
140+ OneLogin_Saml2_Constants .NS_PREFIX_XS
141+ ]
142+
143+ if keep_ns_prefixes :
144+ all_prefixes_to_keep = list (set (all_prefixes_to_keep .extend (keep_ns_prefixes )))
145+
146+ return etree .cleanup_namespaces (tree_or_element , keep_ns_prefixes = all_prefixes_to_keep )
147+
147148 @staticmethod
148149 def extract_tag_text (xml , tagname ):
149150 open_tag = compat .to_bytes ("<%s" % tagname )
0 commit comments