Omitting all the Writer-based methods to encourage Stream usage wouldn't have been a bad idea either (like DocumentBuilder and SAXParser for the same problem on the other end). But it's a bit late now I suppose.
Over the years, I've seen probably every programmer new to XML fall into the same pitfall when they try do this. "Well this is text, it makes the most sense to use the Writer version...", they inevitably think, and it often takes a lot of explaining to convince them otherwise. I shudder to imagine how many wrong implementations there are out there because it works most of the time. Curt Arnold wrote: > I understand your annoyance, but I agree with the other posters. > > The Xalan-J serializer Javadoc > http://xml.apache.org/xalan-j/apidocs/org/apache/xml/serializer/ > Serializer.html#setWriter(java.io.Writer) has an explicit warning > that the serializer and writer must have consistent encodings. It > would probably be beneficial if a similar (or maybe more emphatic) > warning were placed in the Javadoc for XMLSerializer(Writer, > OutputFormat). However, the problems of representing an XML document > as a string (or any sequence of characters) are well known. > > XML is not text data, the XML recommendation tells how to convert an > XML document into a stream of bytes. If you break that into two > steps, document -> characters -> bytes the steps have to be > consistent and as Jeremy pointed out there is no effective way for > the serializer to detect and adjust itself to the writer's encoding. > > The Xerces-J team has no power to change to the Java platform's > behavior even if it was a bug. That FileWriter would use the default > platform encoding appears to be documented in > http://java.sun.com/j2se/1.5.0/docs/api/java/io/FileWriter.html: > > The constructors of this class assume that the default character > encoding and the default byte-buffer size are acceptable. To specify > these values yourself, construct an OutputStreamWriter on a > FileOutputStream. > > However, unless you have a specific need to serialize to a sequence > of characters (for example, to fill in a UI widget), use the forms > that take an OutputStream and let the serializer control the entire > process. > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]