Skip to content

Test: encode/decode of repeating choice list members#67

Draft
veewee wants to merge 1 commit into
php-soap:mainfrom
veewee:tests/repeating-group-ref-choice-occurrences
Draft

Test: encode/decode of repeating choice list members#67
veewee wants to merge 1 commit into
php-soap:mainfrom
veewee:tests/repeating-group-ref-choice-occurrences

Conversation

@veewee

@veewee veewee commented Jun 11, 2026

Copy link
Copy Markdown
Member

Adds an end-to-end encode/decode test for the case where a repeating group reference around an <xs:choice> exposes its members as unbounded list elements.

The test asserts that:

  • encoding an object with list members writes one sibling element per item (<delete>A</delete><delete>B</delete><write>C</write>);
  • decoding collects same-named siblings back into arrays, including when the two branches are interleaved on the wire (<delete/><write/><delete/>).

Blocked on

The metadata that drives this (each choice member as isList / isRepeatingElement) comes from xsd-reader: goetas-webservices/xsd-reader#93, surfaced through php-soap/wsdl-reader#60. Until those are released and the dependency is bumped, the members are not read as lists and this test fails against the published dependency. Opened as a draft for that reason.

When a repeating group ref around a choice exposes its members as
unbounded list elements, the encoder must write one sibling element per
list item and the decoder must collect them back into arrays, including
when the two branches are interleaved on the wire.

Depends on goetas-webservices/xsd-reader#93, surfaced through
php-soap/wsdl-reader#60. Until those are released and the dependency is
bumped, the metadata is not produced as lists and this test fails.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant