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 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; }
/** * @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(); } }
/** * Serialize the Enum object to xml. * * @param XmlSerializationVisitor $visitor The visitor * @param EnumInterface $data A EnumInterface instance * @param array $type The type parameters * * @return \DOMCdataSection */ public function serializeEnumToXml(XmlSerializationVisitor $visitor, EnumInterface $data, array $type) { if ($visitor->document === null) { $visitor->document = $visitor->createDocument(null, null, true); $visitor->getCurrentNode()->appendChild($node = $visitor->document->createCDATASection($data->getValue())); return $node; } return $visitor->document->createCDATASection($data->getValue()); }
/** * {@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 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())); }
public function addLinksToXMLSerialization(array $links, XmlSerializationVisitor $visitor) { foreach ($links as $link) { $entryNode = $visitor->getDocument()->createElement('link'); $visitor->getCurrentNode()->appendChild($entryNode); $entryNode->setAttribute('rel', $link->getRel()); $entryNode->setAttribute('href', $link->getHref()); $attributes = $link->getAttributes(); foreach ($attributes as $attributeName => $attributeValue) { $entryNode->setAttribute($attributeName, $attributeValue); } } }
/** * 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(); }
/** * @param XmlSerializationVisitor $visitor * @param Money $money */ public function serializeMoneyXml(XmlSerializationVisitor $visitor, Money $money) { /** @var \DOMElement $node */ $node = $visitor->getCurrentNode(); $node->nodeValue = $this->formatter->format($money); }
/** * @param XmlSerializationVisitor $visitor * @param type $entity * @param array $type * @param Context $context * * @return \DOMElement */ public function serializeToXml(XmlSerializationVisitor $visitor, $entity, array $type, Context $context) { $visitor->getCurrentNode()->appendChild($formNode = $visitor->getDocument()->createElement('id', $type['params']['id'])); return $formNode; }
/** * @dataProvider getSerializeDateTime * @param \DateTime $date */ public function testSerializeDateTime(\DateTime $date, $expected) { $this->handler->serializeDateTime($this->visitor, $date, [], $this->context); $this->assertEquals($expected, $this->visitor->getCurrentNode()->nodeValue); }