* XslOutput.cs: add support for encoding.
* ManagedXslTransform.cs, XslTransformImpl.cs: Add support for
encoding.
svn path=/trunk/mcs/; revision=17395
+2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * XslOutput.cs: add support for encoding.
+
2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
* *.cs: Support for xsl:output. (Oleg)
using System.Xml;\r
using System.Xml.Schema;\r
using System.Xml.XPath;\r
-using System.Xml.Xsl;\r
+using System.Xml.Xsl;
+using System.Text;
\r
namespace Mono.Xml.Xsl\r
{\r
QName customMethod;
OutputMethod method = OutputMethod.XML; \r
string version;\r
- string encoding;\r
+ Encoding encoding = System.Text.Encoding.UTF8;\r
bool omitXmlDeclaration;\r
string standalone;\r
string doctypePublic;\r
get { return version; }\r
}\r
\r
- public string Encoding {\r
+ public Encoding Encoding {\r
get { return encoding; }\r
}\r
\r
\r
att = nav.GetAttribute ("encoding", "");\r
if (att != String.Empty)\r
- this.encoding = att;\r
+ this.encoding = System.Text.Encoding.GetEncoding (att);\r
\r
att = nav.GetAttribute ("standalone", "");\r
if (att != String.Empty)\r
+2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * ManagedXslTransform.cs, XslTransformImpl.cs: Add support for
+ encoding.
+
2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
* *.cs: Support for xsl:output. (Oleg)
XslOutput xslOutput = (XslOutput)s.Style.Outputs[String.Empty];
if (xslOutput == null) {
//No xsl:output - subject to output method autodetection, XML for a while
- Transform(input, args, new XmlTextWriter(output), resolver);
+ XmlWriter w = new XmlTextWriter(output);
+ Transform(input, args, w, resolver);
+ w.Close ();
return;
}
switch (xslOutput.Method) {
case OutputMethod.XML:
- Transform(input, args, new XmlTextWriter(output), resolver);
+ XmlWriter w = new XmlTextWriter(output);
+ Transform(input, args, w, resolver);
+ w.Close ();
break;
case OutputMethod.HTML:
throw new NotImplementedException("HTML output method is not implemented yet.");
throw new NotImplementedException("Custom output method is not implemented yet.");
}
}
+
+ public override void Transform (XPathNavigator input, XsltArgumentList args, Stream output, XmlResolver resolver)
+ {
+ XslOutput xslOutput = (XslOutput)s.Style.Outputs[String.Empty];
+ if (xslOutput == null)
+ Transform (input, args, new StreamWriter (output), resolver);
+ else
+ Transform (input, args, new StreamWriter (output, xslOutput.Encoding), resolver);
+ }
}
}
public abstract void Load (XPathNavigator stylesheet, XmlResolver resolver, Evidence evidence);
public abstract void Transform (XPathNavigator input, XsltArgumentList args, XmlWriter output, XmlResolver resolver);
-
public abstract void Transform (XPathNavigator input, XsltArgumentList args, TextWriter output, XmlResolver resolver);
+ public virtual void Transform (XPathNavigator input, XsltArgumentList args, Stream output, XmlResolver resolver)
+ {
+ Transform (input, args, new StreamWriter (output), resolver);
+ }
public virtual void Transform (string inputfile, string outputfile, XmlResolver resolver)
{
- using (StreamWriter w = new StreamWriter (outputfile)) {
- Transform(new XPathDocument (inputfile).CreateNavigator (), null, w, resolver);
+ using (Stream s = new FileStream (outputfile, FileMode.Create, FileAccess.ReadWrite)) {
+ Transform(new XPathDocument (inputfile).CreateNavigator (), null, s, resolver);
}
}
}