将XML类型序列化为文本时,PostgreSQL不包含XML声明,如果不是?

mar*_*mnl 3 xml postgresql xml-serialization

SELECT xmlserialize (DOCUMENT (
  SELECT xmlroot(
    xmlelement(name root, 
      xmlelement(name value, 'test')
    ), version '1.0')
  ) AS text);
Run Code Online (Sandbox Code Playgroud)

收益:

<根> <值>测试</值> </根>

我想(并且期望):

<?xml version ='1.0'?> <root> <value> test </ value> </ root>

我当然可以去:

SELECT '<?xml version="1.0"?> ' || xmlserialize (CONTENT (...
Run Code Online (Sandbox Code Playgroud)

但那么包括xmlroot有什么意义呢?

Ste*_*nne 5

(我v8.3.7,v8.4.4和V9.0.0在Windows XP中试行)

它包括XML声明,如果standalone的选项xmlroot与值使用yesno:

SELECT xmlserialize (DOCUMENT (
  SELECT xmlroot(
    xmlelement(name root, 
      xmlelement(name value, 'test')
    ), version '1.0', standalone yes)
  ) AS text);
Run Code Online (Sandbox Code Playgroud)