4242 ENERGYML_NAMESPACES ,
4343)
4444
45+ from xsdata .formats .dataclass .parsers .handlers import LxmlEventHandler
46+
47+ GLOBAL_XML_CONTEXT = XmlContext (
48+ # element_name_generator=text.camel_case,
49+ # attribute_name_generator=text.kebab_case
50+ )
51+
4552
4653class JSON_VERSION (Enum ):
4754 XSDATA = "XSDATA"
@@ -65,7 +72,7 @@ def _read_energyml_xml_bytes_as_class(
6572 fail_on_unknown_attributes = fail_on_unknown_attributes ,
6673 # process_xinclude=True,
6774 )
68- parser = XmlParser (config = config )
75+ parser = XmlParser (config = config , context = GLOBAL_XML_CONTEXT , handler = LxmlEventHandler )
6976 try :
7077 return parser .from_bytes (file , obj_class )
7178 except ParserError as e :
@@ -81,11 +88,6 @@ def _read_energyml_xml_bytes_as_class(
8188
8289
8390def read_energyml_xml_tree (file : etree , obj_type : Optional [type ] = None ) -> Any :
84- # if obj_type is None:
85- # obj_type = get_class_from_name(get_class_name_from_xml(file))
86- # parser = XmlParser(handler=XmlEventHandler)
87- # # parser = XmlParser(handler=LxmlEventHandler)
88- # return parser.parse(file, obj_type)
8991 return read_energyml_xml_bytes (etree .tostring (file , encoding = "utf8" ))
9092
9193
@@ -155,7 +157,7 @@ def _read_energyml_json_bytes_as_class(file: bytes, json_version: JSON_VERSION,
155157 # fail_on_unknown_attributes=False,
156158 # process_xinclude=True,
157159 )
158- parser = JsonParser (config = config )
160+ parser = JsonParser (config = config , context = GLOBAL_XML_CONTEXT )
159161 try :
160162 return parser .from_bytes (file , obj_class )
161163 except ParserError as e :
@@ -269,12 +271,8 @@ def serialize_xml(obj, check_obj_prefixed_classes: bool = True) -> str:
269271 # logging.debug(f"[1] Serializing object of type {type(obj)}")
270272 obj = as_obj_prefixed_class_if_possible (obj ) if check_obj_prefixed_classes else obj
271273 # logging.debug(f"[2] Serializing object of type {type(obj)}")
272- context = XmlContext (
273- # element_name_generator=text.camel_case,
274- # attribute_name_generator=text.kebab_case
275- )
276274 serializer_config = SerializerConfig (indent = " " )
277- serializer = XmlSerializer (context = context , config = serializer_config )
275+ serializer = XmlSerializer (context = GLOBAL_XML_CONTEXT , config = serializer_config )
278276 # res = serializer.render(obj)
279277 res = serializer .render (obj , ns_map = ENERGYML_NAMESPACES )
280278 # logging.debug(f"[3] Serialized XML with meta namespace : {obj.Meta.namespace}: {serialize_json(obj)}")
@@ -286,12 +284,8 @@ def serialize_json(
286284) -> str :
287285 obj = as_obj_prefixed_class_if_possible (obj ) if check_obj_prefixed_classes else obj
288286 if json_version == JSON_VERSION .XSDATA :
289- context = XmlContext (
290- # element_name_generator=text.camel_case,
291- # attribute_name_generator=text.kebab_case
292- )
293287 serializer_config = SerializerConfig (indent = " " )
294- serializer = JsonSerializer (context = context , config = serializer_config )
288+ serializer = JsonSerializer (context = GLOBAL_XML_CONTEXT , config = serializer_config )
295289 return serializer .render (obj )
296290 elif json_version == JSON_VERSION .OSDU_OFFICIAL :
297291 return json .dumps (to_json_dict (obj ), indent = 4 , sort_keys = True )
0 commit comments