Quoting Robert Haas <robertmh...@gmail.com>:


I think the point if "IS DOCUMENT" is to distinguish a document:

<foo>some stuff<bar/><baz/></foo>

from a document fragment:

<bar/><baz/>

A document is allowed only one toplevel tag.

It'd be nice, I think, to have a function that tells you whether
something is legal XML without throwing an error if it isn't, but I
suspect that should be a separate function, rather than trying to jam
it into "IS DOCUMENT".

http://developer.postgresql.org/pgdocs/postgres/functions-xml.html#AEN15187


I've submitted a patch to the bug report I filed yesterday that implements this. The way I read the standard (and I'm only reading a draft and I'm no expert) I don't see that it mandates that IS DOCUMENT returns false when IS CONTENT would return true. So if IS CONTENT were to be implemented, to determine that you have something that is malformed you could say:

val IS NOT DOCUMENT AND val IS NOT CONTENT

I think having the direct predicate support would be useful for columns of text where you know that some, though possibly not all, text values are valid XML.

--
Mike Fowler
Registered Linux user: 379787


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to