/** * {@inheritdoc} */ public function serializeEmbeddeds(array $embeddeds, XmlSerializationVisitor $visitor, SerializationContext $context) { foreach ($embeddeds as $embedded) { if ($embedded->getData() instanceof \Traversable || is_array($embedded->getData())) { foreach ($embedded->getData() as $data) { $entryNode = $visitor->getDocument()->createElement('resource'); $visitor->getCurrentNode()->appendChild($entryNode); $visitor->setCurrentNode($entryNode); $visitor->getCurrentNode()->setAttribute('rel', $embedded->getRel()); if (null !== ($node = $context->accept($data))) { $visitor->getCurrentNode()->appendChild($node); } $visitor->revertCurrentNode(); } continue; } $entryNode = $visitor->getDocument()->createElement('resource'); $visitor->getCurrentNode()->appendChild($entryNode); $visitor->setCurrentNode($entryNode); $visitor->getCurrentNode()->setAttribute('rel', $embedded->getRel()); if (null !== ($node = $context->accept($embedded->getData()))) { $visitor->getCurrentNode()->appendChild($node); } $visitor->revertCurrentNode(); } }
public function serializeFormToXml(XmlSerializationVisitor $visitor, Form $form, array $type) { if (null === $visitor->document) { $visitor->document = $visitor->createDocument(null, null, false); $visitor->document->appendChild($formNode = $visitor->document->createElement('form')); $visitor->setCurrentNode($formNode); } else { $visitor->getCurrentNode()->appendChild($formNode = $visitor->document->createElement('form')); } $formNode->setAttribute('name', $form->getName()); $formNode->appendChild($errorsNode = $visitor->document->createElement('errors')); foreach ($form->getErrors() as $error) { $errorNode = $visitor->document->createElement('entry'); $errorNode->appendChild($this->serializeFormErrorToXml($visitor, $error, array())); $errorsNode->appendChild($errorNode); } foreach ($form->all() as $child) { if ($child instanceof Form) { if (null !== ($node = $this->serializeFormToXml($visitor, $child, array()))) { $formNode->appendChild($node); } } } return $formNode; }
public function serializeToXML(XmlSerializationVisitor $visitor, FormView $formView, array $type, Context $context) { if (null === $visitor->document) { $visitor->document = $visitor->createDocument(null, null, false); $visitor->setCurrentNode($visitor->document->createElement('form')); $visitor->document->appendChild($visitor->getCurrentNode()); } $this->xmlFormViewSerializer->serialize($formView, $visitor->getCurrentNode()); }
public function serializeViolationToXml(XmlSerializationVisitor $visitor, ConstraintViolation $violation, array $type = null) { if (null === $visitor->document) { $visitor->document = $visitor->createDocument(null, null, false); $visitor->document->appendChild($violationNode = $visitor->document->createElement('violation')); $visitor->setCurrentNode($violationNode); } else { $visitor->getCurrentNode()->appendChild($violationNode = $visitor->document->createElement('violation')); } $violationNode->setAttribute('property_path', $violation->getPropertyPath()); $violationNode->appendChild($messageNode = $visitor->document->createElement('message')); $messageNode->appendChild($visitor->document->createCDATASection($violation->getMessage())); }
/** * @param XmlSerializationVisitor $visitor * @param ExceptionWrapper $wrapper * @param array $type * @param Context $context */ public function serializeToXml(XmlSerializationVisitor $visitor, ExceptionWrapper $wrapper, array $type, Context $context) { $data = $this->convertToArray($wrapper); if (null === $visitor->document) { $visitor->document = $visitor->createDocument(null, null, true); } foreach ($data as $key => $value) { $entryNode = $visitor->document->createElement($key); $visitor->getCurrentNode()->appendChild($entryNode); $visitor->setCurrentNode($entryNode); $node = $context->getNavigator()->accept($value, null, $context); if (null !== $node) { $visitor->getCurrentNode()->appendChild($node); } $visitor->revertCurrentNode(); } }
/** * 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(); }