1<?php
2
3namespace Sabre\CalDAV\Xml\Property;
4
5use Sabre\CalDAV\Plugin;
6use Sabre\Xml\Writer;
7use Sabre\Xml\XmlSerializable;
8
9/**
10 * supported-collation-set property
11 *
12 * This property is a representation of the supported-collation-set property
13 * in the CalDAV namespace.
14 *
15 * This property is defined in:
16 * http://tools.ietf.org/html/rfc4791#section-7.5.1
17 *
18 * @copyright Copyright (C) fruux GmbH (https://fruux.com/)
19 * @author Evert Pot (http://evertpot.com/)
20 * @license http://sabre.io/license/ Modified BSD License
21 */
22class SupportedCollationSet implements XmlSerializable {
23
24    /**
25     * The xmlSerialize method is called during xml writing.
26     *
27     * Use the $writer argument to write its own xml serialization.
28     *
29     * An important note: do _not_ create a parent element. Any element
30     * implementing XmlSerializable should only ever write what's considered
31     * its 'inner xml'.
32     *
33     * The parent of the current element is responsible for writing a
34     * containing element.
35     *
36     * This allows serializers to be re-used for different element names.
37     *
38     * If you are opening new elements, you must also close them again.
39     *
40     * @param Writer $writer
41     * @return void
42     */
43    function xmlSerialize(Writer $writer) {
44
45        $collations = [
46            'i;ascii-casemap',
47            'i;octet',
48            'i;unicode-casemap'
49        ];
50
51        foreach ($collations as $collation) {
52            $writer->writeElement('{' . Plugin::NS_CALDAV . '}supported-collation', $collation);
53        }
54
55    }
56
57}
58