Peter Eisentraut wrote:
> The central problem I have is this: How do we deal with the fact that
> an XML datum carries its own encoding information?
Maybe I am misunderstanding your question, but IMO postgres should be
treating xml documents as if they were binary data, unless the server
takes on the role of a parser, in which case it should handle
unspecified/unknown encodings just like a normal xml parser would (and
this does *not* include changing the encoding!).
According to me, an XML parser should not change one bit of a document,
because that is not a 'parse', but a 'transformation'.
> Rewriting the <?xml?> declaration seems like a workable solution, but
it
> would break the transparency of the client/server encoding conversion.
> Also, some people might dislike that their documents are being changed
> as they are stored.
Right, your example begs the question: why does the server care what the
encoding of the documents is (perhaps indexing)? ZML validation is a
standardized operation which the server (or psql, I suppose) can
subcontract out to another application.
Just a side thought: what if the xml encoding type was built into the
domain type itself?
create domain xml_utf8 ...
Which allows casting, etc. which is more natural than an implicit
transformation.
Regards,
Merlin