При сериализации типа XML в текст PostgreSQL не включает объявление XML, не так ли? - PullRequest
3 голосов
/ 22 ноября 2010
SELECT xmlserialize (DOCUMENT (
  SELECT xmlroot(
    xmlelement(name root, 
      xmlelement(name value, 'test')
    ), version '1.0')
  ) AS text);

возвращается:

тест

Я хочу (и ожидал):

<? Xml version = '1.0'?> test

Конечно, я мог бы пойти:

SELECT '<?xml version="1.0"?> ' || xmlserialize (CONTENT (...

но тогда какой смысл включать xmlroot?

1 Ответ

5 голосов
/ 24 ноября 2010

(я экспериментировал с v8.3.7, v8.4.4 и v9.0.0 в Windows XP)

Включает объявление xml, если опция standalone для xmlroot используется со значением yes или no:

SELECT xmlserialize (DOCUMENT (
  SELECT xmlroot(
    xmlelement(name root, 
      xmlelement(name value, 'test')
    ), version '1.0', standalone yes)
  ) AS text);
...