Only include encoding in xml declaration if it was explicitly

set by the constructor.
This commit is contained in:
hns 2002-06-06 13:40:50 +00:00
parent 413432dec6
commit fc6e04efd8

View file

@ -36,6 +36,10 @@ public class XmlWriter extends OutputStreamWriter implements XmlConstants {
private boolean dbmode = true; private boolean dbmode = true;
// Only add encoding to XML declaration if it was explicitly set, not when we're using
// the platform's standard encoding.
private String explicitEncoding;
/** /**
* create ids that can be used for temporary files. * create ids that can be used for temporary files.
*/ */
@ -56,6 +60,7 @@ public class XmlWriter extends OutputStreamWriter implements XmlConstants {
public XmlWriter (OutputStream out, String enc) throws UnsupportedEncodingException { public XmlWriter (OutputStream out, String enc) throws UnsupportedEncodingException {
super(out, enc); super(out, enc);
explicitEncoding = enc;
} }
public XmlWriter (String desc) throws FileNotFoundException { public XmlWriter (String desc) throws FileNotFoundException {
@ -64,6 +69,7 @@ public class XmlWriter extends OutputStreamWriter implements XmlConstants {
public XmlWriter (String desc, String enc) throws FileNotFoundException, UnsupportedEncodingException { public XmlWriter (String desc, String enc) throws FileNotFoundException, UnsupportedEncodingException {
super (new FileOutputStream (desc), enc); super (new FileOutputStream (desc), enc);
explicitEncoding = enc;
} }
public XmlWriter (File file) throws FileNotFoundException { public XmlWriter (File file) throws FileNotFoundException {
@ -72,6 +78,7 @@ public class XmlWriter extends OutputStreamWriter implements XmlConstants {
public XmlWriter (File file, String enc) throws FileNotFoundException, UnsupportedEncodingException { public XmlWriter (File file, String enc) throws FileNotFoundException, UnsupportedEncodingException {
super (new FileOutputStream (file), enc); super (new FileOutputStream (file), enc);
explicitEncoding = enc;
} }
/** /**
@ -104,8 +111,10 @@ public class XmlWriter extends OutputStreamWriter implements XmlConstants {
*/ */
public boolean write( INode node ) throws IOException { public boolean write( INode node ) throws IOException {
convertedNodes = new Vector(); convertedNodes = new Vector();
String encoding = getEncoding(); if (explicitEncoding == null)
writeln ("<?xml version=\"1.0\" encoding=\""+encoding+"\"?>"); writeln ("<?xml version=\"1.0\"?>");
else
writeln ("<?xml version=\"1.0\" encoding=\""+explicitEncoding+"\"?>");
writeln ("<!-- printed by helma object publisher -->"); writeln ("<!-- printed by helma object publisher -->");
writeln ("<!-- created " + (new Date()).toString() + " -->" ); writeln ("<!-- created " + (new Date()).toString() + " -->" );
write ("<xmlroot xmlns:hop=\""); write ("<xmlroot xmlns:hop=\"");