Skip to content

Commit 09d550e

Browse files
authored
Merge pull request #164 from Vitexus/patch-1
The Choice element was missing in process
2 parents 3ae1d58 + f702c79 commit 09d550e

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

src/Php/PhpConverter.php

+19-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use GoetasWebservices\XML\XSDReader\Schema\Element\ElementRef;
1212
use GoetasWebservices\XML\XSDReader\Schema\Element\ElementSingle;
1313
use GoetasWebservices\XML\XSDReader\Schema\Element\Group;
14+
use GoetasWebservices\XML\XSDReader\Schema\Element\Choice;
1415
use GoetasWebservices\XML\XSDReader\Schema\Item;
1516
use GoetasWebservices\XML\XSDReader\Schema\Schema;
1617
use GoetasWebservices\XML\XSDReader\Schema\Type\BaseComplexType;
@@ -118,6 +119,21 @@ private function visitTypeBase(PHPClass $class, Type $type)
118119
}
119120
}
120121

122+
/**
123+
* Process xsd:complexType xsd:choice xsd:element
124+
*
125+
* @param PHPClass $class
126+
* @param Schema $schema
127+
* @param Choice $choice
128+
*/
129+
private function visitChoice(PHPClass $class, Schema $schema, Choice $choice)
130+
{
131+
foreach ($choice->getElements() as $choiceOption) {
132+
$property = $this->visitElement($class, $schema, $choiceOption);
133+
$class->addProperty($property);
134+
}
135+
}
136+
121137
private function visitGroup(PHPClass $class, Schema $schema, Group $group)
122138
{
123139
foreach ($group->getElements() as $childGroup) {
@@ -304,7 +320,9 @@ private function visitComplexType(PHPClass $class, ComplexType $type)
304320
{
305321
$schema = $type->getSchema();
306322
foreach ($type->getElements() as $element) {
307-
if ($element instanceof Group) {
323+
if ($element instanceof Choice) {
324+
$this->visitChoice($class, $schema, $element);
325+
} elseif ($element instanceof Group) {
308326
$this->visitGroup($class, $schema, $element);
309327
} else {
310328
$property = $this->visitElement($class, $schema, $element);

0 commit comments

Comments
 (0)