Peter Eisentraut wrote: > Florian G. Pflug wrote: >> Couldn't the server change the encoding declaration inside the xml to >> the correct >> one (the same as client_encoding) before returning the result? > > The data type output function doesn't know what the client encoding is > or whether the data will be shipped to the client at all. But what I'm > thinking is that we should remove the encoding declaration if possible. > At least that would be less confusing, albeit still potentially > incorrect if the client continues to process the document without care.
The XML SPec says: "In the absence of information provided by an external transport protocol (e.g. HTTP or MIME), it is a fatal error for an entity including an encoding declaration to be presented to the XML processor in an encoding other than that named in the declaration, or for an entity which begins with neither a Byte Order Mark nor an encoding declaration to use an encoding other than UTF-8. Note that since ASCII is a subset of UTF-8, ordinary ASCII entities do not strictly need an encoding declaration." ISTM we are reasonably entitled to require the client to pass in an xml document that uses the client encoding, re-encoding it if necessary (and adjusting the encoding decl if any in the process). We should error out on any explicit encoding that conflicts with the client encoding. I don't like the idea of just ignoring an explicit encoding decl. Are we going to ensure that what we hand back to another client has an appropriate encding decl? Or will we just remove it in all cases? cheers andrew ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org