/** * Normalize wrapper to serialize with xml * Event class name is added * * @param XmlSerializationVisitor $visitor * @param EventContainer $container * @param array $type * @param Context $context */ public function serializeContainerXml(XmlSerializationVisitor $visitor, EventContainer $container, array $type, Context $context) { if (!$visitor->getDocument()) { /** @var ClassMetadata $metadata */ $metadata = $context->getMetadataFactory()->getMetadataForClass(__NAMESPACE__ . '\\EventContainer'); $metadata->xmlRootName = 'event'; $visitor->startVisitingObject($metadata, $container, [], $context); // $visitor->visitArray([], ['name' => 'array'], $context); } $event = $container->getEvent(); $node = $visitor->getCurrentNode(); $node->setAttribute('type', $this->namingStrategy->classToType(get_class($event))); $data = $visitor->getDocument()->createElement('data'); $visitor->getCurrentNode()->appendChild($data); $visitor->setCurrentNode($data); $visitor->getNavigator()->accept($event, null, $context); $visitor->revertCurrentNode(); }