utils: initialize converter when creating XMLSchema (#39818)
Also implement Converter.copy() as XMLSchema.__init__ copy the given converter.
This commit is contained in:
parent
823b366ce2
commit
fabe3b9d98
|
@ -94,6 +94,12 @@ class TransformConverter(xmlschema.UnorderedConverter):
|
|||
self.transformer = kwargs.pop('transformer', None)
|
||||
super(TransformConverter, self).__init__(*args, **kwargs)
|
||||
|
||||
def copy(self, **kwargs):
|
||||
transformer = kwargs.pop('transformer', self.transformer)
|
||||
new = super(TransformConverter, self).copy(**kwargs)
|
||||
new.transformer = transformer
|
||||
return new
|
||||
|
||||
def element_decode(self, data, xsd_element, level=0):
|
||||
if self.transformer:
|
||||
if xsd_element.type.name in getattr(self.transformer, 'type_map', {}):
|
||||
|
@ -126,7 +132,7 @@ class JSONSchemaFromXMLSchema(object):
|
|||
|
||||
def __init__(self, xml_schema, root_element):
|
||||
if not isinstance(xml_schema, xmlschema.XMLSchema):
|
||||
xml_schema = xmlschema.XMLSchema(xml_schema)
|
||||
xml_schema = xmlschema.XMLSchema(xml_schema, converter=TransformConverter(transformer=self))
|
||||
self.xml_schema = xml_schema
|
||||
self.root_element = root_element
|
||||
self.json_schema = {
|
||||
|
|
Loading…
Reference in New Issue