public function writeElement($name, $value, $prefix = null, $url = null)
{
if ($prefix !== null) {
$this->cursor->writeElementNs($prefix, $name, $url, $value);
} elseif ($this->needsCdataWrapping($value)) {
$this->startElement($name, $prefix, $url);
$this->cursor->writeCdata($value);
$this->endElement();
} else {
$this->cursor->writeElement($name, $value);
}
}
/** * @param WriterHelper $writer * @param ClassMetadata $classMetadata * @param string $fieldName * @param mixed $fieldValue */ private function _writeText(WriterHelper $writer, ClassMetadata $classMetadata, $fieldName, $fieldValue) { $xmlName = $classMetadata->getFieldXmlName($fieldName); $type = $classMetadata->getTypeOfField($fieldName); $mapping = $classMetadata->getFieldMapping($fieldName); $prefix = isset($mapping['prefix']) ? $mapping['prefix'] : null; if ($classMetadata->isCollection($fieldName)) { if ($classMetadata->hasFieldWrapping($fieldName)) { $writer->startElement($mapping['wrapper'], $prefix); } foreach ($fieldValue as $value) { $writer->writeElement($xmlName, Type::getType($type)->convertToXmlValue($value), $prefix); } if ($classMetadata->hasFieldWrapping($fieldName)) { $writer->endElement(); } } else { $writer->writeElement($xmlName, Type::getType($type)->convertToXmlValue($fieldValue), $prefix); } }