Skip to content

Commit df16b8a

Browse files
authored
Merge pull request #28 from veewee/improved-method-types
Improve method type information
2 parents 758e2b6 + df278ed commit df16b8a

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/Metadata/Converter/Methods/Converter/MessageToMetadataTypesConverter.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ private function findXsdType(QNamed $type): XsdType
4848
return XsdType::guess($type->localName)
4949
->withXmlNamespaceName($type->prefix)
5050
->withXmlNamespace($namespace->unwrapOr(''))
51+
->withXmlTypeName($type->localName)
5152
->withMeta(
5253
static fn (TypeMeta $meta): TypeMeta => $meta->withIsSimple(true)
5354
);

src/Metadata/Converter/Wsdl1ToMethodsConverter.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Soap\Engine\Metadata\Collection\ParameterCollection;
88
use Soap\Engine\Metadata\Model\Method;
99
use Soap\Engine\Metadata\Model\Parameter;
10+
use Soap\Engine\Metadata\Model\TypeMeta;
1011
use Soap\Engine\Metadata\Model\XsdType;
1112
use Soap\WsdlReader\Locator\Wsdl1SelectedServiceLocator;
1213
use Soap\WsdlReader\Metadata\Converter\Methods\Configurator\BindingOperationConfigurator;
@@ -50,7 +51,13 @@ private function parseMethod(Wsdl1SelectedService $service, BindingOperation $bi
5051
$parameters = $inputMessage->map($convertMessageToTypesDict)->mapOr(
5152
static fn (array $types) => map_with_key(
5253
$types,
53-
static fn (string $name, XsdType $type) => new Parameter($name, $type)
54+
static fn (string $name, XsdType $type) => new Parameter(
55+
$name,
56+
// Make sure the target type encodes into an **element** that is **named like the parameter part**.
57+
$type
58+
->withXmlTargetNodeName($name)
59+
->withMeta(static fn (TypeMeta $meta): TypeMeta => $meta->withIsElement(true))
60+
)
5461
),
5562
[]
5663
);

0 commit comments

Comments
 (0)