Skip to content

Commit

Permalink
Merge pull request #18 from goetas-webservices/base64
Browse files Browse the repository at this point in the history
Add support for Base64Encoded XSD type
  • Loading branch information
goetas authored Sep 10, 2020
2 parents b1e9053 + f8b8e41 commit 5c0927c
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions src/Jms/Handler/BaseTypesHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,35 @@ public static function getSubscribingMethods()
'format' => 'xml',
'type' => 'GoetasWebservices\Xsd\XsdToPhp\Jms\SimpleListOf',
'method' => 'simpleListOfFromXML'
),
array(
'direction' => GraphNavigator::DIRECTION_SERIALIZATION,
'format' => 'xml',
'type' => 'GoetasWebservices\Xsd\XsdToPhp\Jms\Base64Encoded',
'method' => 'base64EncodedToXml'
),
array(
'direction' => GraphNavigator::DIRECTION_DESERIALIZATION,
'format' => 'xml',
'type' => 'GoetasWebservices\Xsd\XsdToPhp\Jms\Base64Encoded',
'method' => 'base64EncodedFromXml'
)
);
}
public function base64EncodedToXml(XmlSerializationVisitor $visitor, $data, array $type, Context $context)
{
return $visitor->visitSimpleString(base64_encode($data), $type, $context);
}

public function base64EncodedFromXml(XmlDeserializationVisitor $visitor, $data, array $type)
{
$attributes = $data->attributes('xsi', true);
if (isset($attributes['nil'][0]) && (string)$attributes['nil'][0] === 'true') {
return null;
}

return base64_decode((string)$data);
}

public function simpleListOfToXml(XmlSerializationVisitor $visitor, $object, array $type, Context $context)
{
Expand Down

0 comments on commit 5c0927c

Please sign in to comment.