/** * The xmlSerialize metod is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element * implementing XmlSerializble should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a * containing element. * * This allows serializers to be re-used for different element names. * * If you are opening new elements, you must also close them again. * * @param Writer $writer * @return void */ function xmlSerialize(Writer $writer) { $writer->startElement('{' . Plugin::NS_CALDAV . '}calendar-data'); $writer->writeAttributes(['content-type' => 'text/calendar', 'version' => '2.0']); $writer->endElement(); // calendar-data $writer->startElement('{' . Plugin::NS_CALDAV . '}calendar-data'); $writer->writeAttributes(['content-type' => 'application/calendar+json']); $writer->endElement(); // calendar-data }
/** * The xmlSerialize metod is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element * implementing XmlSerializble should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a * containing element. * * This allows serializers to be re-used for different element names. * * If you are opening new elements, you must also close them again. * * @param Writer $writer * @return void */ function xmlSerialize(Writer $writer) { foreach ($this->components as $component) { $writer->startElement('{' . Plugin::NS_CALDAV . '}comp'); $writer->writeAttributes(['name' => $component]); $writer->endElement(); } }
/** * The xmlSerialize metod is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element * implementing XmlSerializble should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a * containing element. * * This allows serializers to be re-used for different element names. * * If you are opening new elements, you must also close them again. * * @param Writer $writer * @return void */ function xmlSerialize(Writer $writer) { foreach ($this->supportedData as $supported) { $writer->startElement('{' . Plugin::NS_CARDDAV . '}address-data-type'); $writer->writeAttributes(['content-type' => $supported['contentType'], 'version' => $supported['version']]); $writer->endElement(); // address-data-type } }
private function writeDataFields(array $fields, Writer $writer) { array_map(function (DataField $field) use($writer) { $writer->startElement(static::nameElement('datafield')); $writer->writeAttributes(['tag' => $field->getTag(), 'ind1' => $field->getIndicator1(), 'ind2' => $field->getIndicator2()]); $this->writeSubFields($field->getSubFields(), $writer); $writer->endElement(); }, $fields); }