private static function serializeXmlAny()

in src/Serializer.php [28:79]


    private static function serializeXmlAny(\XMLWriter $writer, string $name, $value, ?string $format)
    {
        if ($value instanceof Model) {
            self::serializeXmlModel($writer, $name, $value);
            return;
        }

        if ($value instanceof \DateTimeInterface) {
            $stamp = $value->getTimestamp();
            if ($format == null) {
                $format = 'iso8601';
            }
            switch ($format) {
                case 'httptime':
                    $tval = gmdate('D, d M Y H:i:s \G\M\T', $stamp);
                    break;
                case 'unixtime':
                    $tval = (string)$stamp;
                    break;
                default:
                    $tval = gmdate('Y-m-d\TH:i:s\Z', $stamp);
            }
            $writer->startElement($name);
            $writer->text($tval);
            $writer->endElement();
            return;
        }

        $type = \gettype($value);

        // bool
        if (\in_array($type, ['bool', 'boolean'])) {
            $writer->startElement($name);
            $writer->text($value === true ? 'true' : 'false');
            $writer->endElement();
            return;
        }

        // other primitive type
        if (\in_array($type, ['int', 'integer', 'float', 'double', 'string'])) {
            $writer->startElement($name);
            $writer->text((string)$value);
            $writer->endElement();
            return;
        }


        // enum, since 8.1
        // TODO

        throw new SerializationExecption("Unsupport type " . \gettype($value));
    }