diff --git a/src/zeep/xsd/types/complex.py b/src/zeep/xsd/types/complex.py index 776fdeb0..d63f94ca 100644 --- a/src/zeep/xsd/types/complex.py +++ b/src/zeep/xsd/types/complex.py @@ -279,6 +279,7 @@ def render( and not isinstance(value, (list, dict, CompoundValue)) ): element = self.elements_nested[0][1] + child_path = render_path + [element.name] element.type.render(node, value, None, child_path) return diff --git a/tests/test_xsd_complex_types.py b/tests/test_xsd_complex_types.py index 55430c91..de7d351d 100644 --- a/tests/test_xsd_complex_types.py +++ b/tests/test_xsd_complex_types.py @@ -358,13 +358,45 @@ def test_xml_simple_content_nil(): """ - result = render_node(container_elm, obj) assert_nodes_equal(result, expected) obj = container_elm.parse(result[0], schema) assert obj._value_1 is None +def test_xml_simple_content_extension_render(): + schema = xsd.Schema( + load_xml( + """ + + + + + + + + + + + """ + ) + ) + schema.set_ns_prefix("tns", "http://tests.python-zeep.org/") + container_elm = schema.get_element("tns:container") + + result = render_node(container_elm, "my-test-value") + + expected = """ + + my-test-value + + """ + assert_nodes_equal(result, expected) + + def test_ignore_sequence_order(): schema_doc = load_xml( b"""