xmlclass/xmlclass.py
branchpython3
changeset 3755 ca814b175391
parent 3752 9f6f46dbe3ae
child 3761 479ba844ded8
equal deleted inserted replaced
3754:98a76dbb1b6d 3755:ca814b175391
  1729 
  1729 
  1730     def getLocalTag(self):
  1730     def getLocalTag(self):
  1731         return etree.QName(self.tag).localname
  1731         return etree.QName(self.tag).localname
  1732 
  1732 
  1733     def tostring(self):
  1733     def tostring(self):
  1734         return NAMESPACE_PATTERN.sub("", etree.tostring(self, pretty_print=True, encoding='utf-8')).decode('utf-8')
  1734         return NAMESPACE_PATTERN.sub("", etree.tostring(self, encoding='unicode'))
  1735 
  1735 
  1736     def getElementInfos(self, name, path=None, derived=False):
  1736     def getElementInfos(self, name, path=None, derived=False):
  1737         return {"name": name, "type": TAG, "value": None, "use": None, "children": []}
  1737         return {"name": name, "type": TAG, "value": None, "use": None, "children": []}
  1738 
  1738 
  1739 class XMLElementClassLookUp(etree.PythonElementClassLookup):
  1739 class XMLElementClassLookUp(etree.PythonElementClassLookup):
  1842     def set_element_class_lookup(self, class_lookup):
  1842     def set_element_class_lookup(self, class_lookup):
  1843         etree.XMLParser.set_element_class_lookup(self, class_lookup)
  1843         etree.XMLParser.set_element_class_lookup(self, class_lookup)
  1844         self.ClassLookup = class_lookup
  1844         self.ClassLookup = class_lookup
  1845 
  1845 
  1846     def LoadXMLString(self, xml_string):
  1846     def LoadXMLString(self, xml_string):
  1847         tree = etree.fromstring(xml_string, self)
  1847         tree = etree.fromstring(xml_string.encode(), self)
  1848         if not self.XSDSchema.validate(tree):
  1848         if not self.XSDSchema.validate(tree):
  1849             error = self.XSDSchema.error_log.last_error
  1849             error = self.XSDSchema.error_log.last_error
  1850             return tree, (error.line, error.message)
  1850             return tree, (error.line, error.message)
  1851         return tree, None
  1851         return tree, None
  1852 
  1852 
  1940 
  1940 
  1941     parser.initMembers(
  1941     parser.initMembers(
  1942         factory.NSMAP,
  1942         factory.NSMAP,
  1943         factory.etreeNamespaceFormat,
  1943         factory.etreeNamespaceFormat,
  1944         BaseClass[0] if len(BaseClass) == 1 else None,
  1944         BaseClass[0] if len(BaseClass) == 1 else None,
  1945         etree.XMLSchema(etree.fromstring(xsdstring)))
  1945         etree.XMLSchema(etree.fromstring(xsdstring.encode())))
  1946 
  1946 
  1947     class_lookup = XMLElementClassLookUp(factory.ComputedClassesLookUp)
  1947     class_lookup = XMLElementClassLookUp(factory.ComputedClassesLookUp)
  1948     parser.set_element_class_lookup(class_lookup)
  1948     parser.set_element_class_lookup(class_lookup)
  1949 
  1949 
  1950     return parser
  1950     return parser