On 2005-10-20 15:46, Roger Hand wrote:
On Thursday, October 20, 2005 1:01 PM, Martijn van Oosterhout wrote:
On Thu, Oct 20, 2005 at 09:28:25AM -0700, Dean Gibson (DB Administrator) wrote:
I just find it surprising that XML is not one of the formats provided, 
considering that XML is considered a data interchange format (much more than 
HTML, which is a representation format).
All jokes aside, saying "output to XML" is like saying "all our documentation will 
use words from the english dictionary". Yes, you made a constraint but until you decide 
grammer, syntax and style, you havn't decided anything yet.

Realistically, psql is only ever going to support one XML format, we can't add 
more styles every time someone asks for one. Hence, we should pick the one that 
is going to be most easily loaded into other programs (the entire point of XML, 
right?). To that end, we should probably aim for something like the 
OpenDocument table format, which looks a bit like below. At least that way you 
stand a chance of being able to import it and/or display it.

If pg outputs a simple xml format, it can easily be transformed via xslt into OpenDoc table format, alternate html formats, or the alternate xml format of your choice.
I would argue against outputting this one specific OpenDoc format, even though it is the 
"flavor of the month" right now.

-Roger

Exactly. The simpler, the better. It's far easier to add structure than to remove it.

Actually, using PSQL's "expanded" output ("\x" command), I see that it is absolutely trivial using SED to post-format the output into XML:

sed -r 's:^-\[ RECORD (.*) \]-+$:</row>\n<row number="\1">:;s:([^ ]*) +\| (.*): <\1>\2</\1>:;s:^$:</row>:;1s:</row>\n::'

There's probably a cleaner way with AWK, but the above is simple enough (your eMail reader may break the above into separate lines at the positions where I had a space). The last two "s" commands just handle the first/last line cases.

The only thing the above does not handle is NULL values as distinct from zero-length strings. If someone is interested, I'll do up a version that handles NULLs in a distinct manner (requires using the PSQL "\pset null" command).

-- Dean

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to