Skip to content

Commit 68574a9

Browse files
Khramtsov Dmitrymvantellingen
authored andcommitted
Sequence can be set as xsd.Nil
1 parent 8f64f73 commit 68574a9

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

src/zeep/xsd/types/complex.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from cached_property import threaded_cached_property
77

88
from zeep.exceptions import UnexpectedElementError, XMLParseError
9-
from zeep.xsd.const import NotSet, SkipValue, xsi_ns
9+
from zeep.xsd.const import NotSet, SkipValue, Nil, xsi_ns
1010
from zeep.xsd.elements import (
1111
Any, AnyAttribute, AttributeGroup, Choice, Element, Group, Sequence)
1212
from zeep.xsd.elements.indicators import OrderIndicator
@@ -305,7 +305,9 @@ def parse_kwargs(self, kwargs, name, available_kwargs):
305305
value = kwargs[name]
306306
available_kwargs.remove(name)
307307

308-
value = self._create_object(value, name)
308+
if value is not Nil:
309+
value = self._create_object(value, name)
310+
309311
return {name: value}
310312
return {}
311313

tests/test_xsd.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,27 @@ def test_nil_elements():
143143
)
144144
),
145145
),
146+
xsd.Element(
147+
"{http://tests.python-zeep.org/}item_5",
148+
xsd.ComplexType(
149+
xsd.Sequence(
150+
[
151+
xsd.Element(
152+
"{http://tests.python-zeep.org/}item_5_1",
153+
xsd.String(),
154+
min_occurs=1,
155+
nillable=False,
156+
)
157+
],
158+
min_occurs=0
159+
)
160+
),
161+
),
146162
]
147163
)
148164
),
149165
)
150-
obj = custom_type(item_1=None, item_2=None, item_3=None, item_4={})
166+
obj = custom_type(item_1=None, item_2=None, item_3=None, item_4={}, item_5=xsd.Nil)
151167

152168
expected = """
153169
<document>
@@ -157,6 +173,7 @@ def test_nil_elements():
157173
<ns0:item_4>
158174
<ns0:item_4_1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
159175
</ns0:item_4>
176+
<ns0:item_5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
160177
</ns0:container>
161178
</document>
162179
"""

0 commit comments

Comments
 (0)