if using_unicode: _re_flags = re.UNICODE else: _re_flags = 0 namestart = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_:" + \ "������������������������������‗אבגדהוזחטיךכלםמןנסעףפץצרשת���" namechars = namestart + "0123456789.·-" whitespace = "\n\t \r" reg_ws=re.compile("[\n\t \r]+",_re_flags) reg_ver=re.compile("[-a-zA-Z0-9_.:]+",_re_flags) reg_enc_name=re.compile("[A-Za-z][-A-Za-z0-9._]*") reg_std_alone=re.compile("yes|no") if using_unicode: from xml.utils import characters reg_name = characters.re_Name() reg_names = characters.re_Names() reg_nmtoken = characters.re_Nmtoken() reg_nmtokens = characters.re_Nmtokens() reg_pe_ref = re.compile("%"+characters.Name+";") del characters else: reg_name=re.compile("["+namestart+"]["+namechars+"]*") reg_names=re.compile("["+namestart+"]["+namechars+"]*" "([\n\t \r]+["+namestart+"]["+namechars+"]*)*") reg_nmtoken=re.compile("["+namechars+"]+") reg_nmtokens=re.compile("["+namechars+"]+([\n\t \r]+["+namechars+"]+)*") reg_pe_ref=re.compile("%["+namestart+"]["+namechars+"]*;") reg_sysid_quote=re.compile("[^\"]*") reg_sysid_apo=re.compile("[^']*") reg_pubid_quote=re.compile("[- \n\t\ra-zA-Z0-9'()+,./:=?;!*#@$_%]*")
if using_unicode: _re_flags = re.UNICODE else: _re_flags = 0 namestart = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_:" + \ "������������������������������‗אבגדהוזחטיךכלםמןנסעףפץצרשת���" namechars = namestart + "0123456789.·-" whitespace = "\n\t \r" reg_ws = re.compile("[\n\t \r]+", _re_flags) reg_ver = re.compile("[-a-zA-Z0-9_.:]+", _re_flags) reg_enc_name = re.compile("[A-Za-z][-A-Za-z0-9._]*") reg_std_alone = re.compile("yes|no") if using_unicode: from xml.utils import characters reg_name = characters.re_Name() reg_names = characters.re_Names() reg_nmtoken = characters.re_Nmtoken() reg_nmtokens = characters.re_Nmtokens() reg_pe_ref = re.compile("%" + characters.Name + ";") del characters else: reg_name = re.compile("[" + namestart + "][" + namechars + "]*") reg_names = re.compile("[" + namestart + "][" + namechars + "]*" "([\n\t \r]+[" + namestart + "][" + namechars + "]*)*") reg_nmtoken = re.compile("[" + namechars + "]+") reg_nmtokens = re.compile("[" + namechars + "]+([\n\t \r]+[" + namechars + "]+)*") reg_pe_ref = re.compile("%[" + namestart + "][" + namechars + "]*;") reg_sysid_quote = re.compile("[^\"]*")
def is_legal_xml_name(name): m = re_Name().match(name) if m is None or m.end() != len(name): return 0 else: return 1
def __init__ (self, uri, localname): if not re_Name().match(localname): raise RuntimeError, "Illegal name specified: %r" % localname self._qname = (uri, localname)