2004-05-06 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.XML / System.Xml.Xsl / XslTransformImpl.cs
1 //
2 // XslTransfromImpl
3 //
4 // Authors:
5 //      Ben Maurer (bmaurer@users.sourceforge.net)
6 //
7 // (C) 2003 Ben Maurer
8 //
9
10 using System;
11 using System.Collections;
12 using System.IO;
13 using System.Security.Policy;
14 using System.Text;
15 using System.Xml.XPath;
16
17
18 namespace System.Xml.Xsl {
19         internal abstract class XslTransformImpl {
20
21                 public virtual void Load (string url, XmlResolver resolver)
22                 {
23                         Load (new XPathDocument (url, XmlSpace.Preserve).CreateNavigator (), resolver, null);
24                 }
25
26                 public virtual void Load (XmlReader stylesheet, XmlResolver resolver, Evidence evidence)
27                 {
28                         Load (new XPathDocument (stylesheet, XmlSpace.Preserve).CreateNavigator (), resolver, evidence);
29                 }
30
31                 public abstract void Load (XPathNavigator stylesheet, XmlResolver resolver, Evidence evidence); 
32
33                 public abstract void Transform (XPathNavigator input, XsltArgumentList args, XmlWriter output, XmlResolver resolver);
34                 public abstract void Transform (XPathNavigator input, XsltArgumentList args, TextWriter output, XmlResolver resolver);
35                 public virtual void Transform (XPathNavigator input, XsltArgumentList args, Stream output, XmlResolver resolver)
36                 {
37                         Transform (input, args, new StreamWriter (output), resolver);
38                 }
39
40                 public virtual void Transform (string inputfile, string outputfile, XmlResolver resolver)
41                 {
42                         using (Stream s =  new FileStream (outputfile, FileMode.Create, FileAccess.ReadWrite)) {
43                                 Transform(new XPathDocument (inputfile).CreateNavigator (), null, s, resolver);
44                         }
45                 }
46         }
47 }