Re: [PATCH] Add pretty-printed XML output option - Mailing list pgsql-hackers

From Nikolay Samokhvalov
Subject Re: [PATCH] Add pretty-printed XML output option
Date
Msg-id CANNMO+L5X2ynyXL2RK7gTVA-pj=Z8o8FCCr6RwLfRK_LinjSbg@mail.gmail.com
Whole thread Raw
In response to Re: [PATCH] Add pretty-printed XML output option  (Jim Jones <jim.jones@uni-muenster.de>)
Responses Re: [PATCH] Add pretty-printed XML output option
List pgsql-hackers


On Fri, Feb 17, 2023 at 1:14 AM Jim Jones <jim.jones@uni-muenster.de> wrote:
After your comment I'm studying the possibility to extend the existing xmlserialize function to add the indentation feature. If so, how do you think it should look like? An extra parameter? e.g.

SELECT xmlserialize(DOCUMENT '<foo><bar>42</bar></foo>'::XML AS text, true);

.. or more or like Oracle does it

SELECT XMLSERIALIZE(DOCUMENT xmltype('<foo><bar>42</bar></foo>') AS BLOB INDENT)
FROM dual;


My idea was to follow the SQL standard (part 14, SQL/XML); unfortunately, there is no free version, but there are drafts at http://www.wiscorp.com/SQLStandards.html.
<XML character string serialization> ::=  XMLSERIALIZE <left paren> [ <document or content> ]
      <XML value expression> AS <data type>      [ <XML serialize bom> ]      [ <XML serialize version> ]      [ <XML declaration option> ]
      [ <XML serialize indent> ]      <right paren>
<XML serialize indent> ::=  [ NO ] INDENT

Oracle's extension SIZE=n also seems interesting (including a special case SIZE=0, which means using new-line characters without spaces for each line).

pgsql-hackers by date:

Previous
From: Nathan Bossart
Date:
Subject: archive modules loose ends
Next
From: Nathan Bossart
Date:
Subject: Re: recovery modules