**** Merged from MCS ****
[mono-project.git] / mcs / class / System.XML / System.Xml.Xsl / Multiplexer.cs
blob0d9865caa65d49df49c0cff5530057827df37098
1 // System.Xml.Xsl.XslTransform
2 //
3 // Authors:
4 // Tim Coleman <tim@timcoleman.com>
5 // Gonzalo Paniagua Javier (gonzalo@ximian.com)
6 //
7 // (C) Copyright 2002 Tim Coleman
8 // (c) 2003 Ximian Inc. (http://www.ximian.com)
9 //
12 // Permission is hereby granted, free of charge, to any person obtaining
13 // a copy of this software and associated documentation files (the
14 // "Software"), to deal in the Software without restriction, including
15 // without limitation the rights to use, copy, modify, merge, publish,
16 // distribute, sublicense, and/or sell copies of the Software, and to
17 // permit persons to whom the Software is furnished to do so, subject to
18 // the following conditions:
19 //
20 // The above copyright notice and this permission notice shall be
21 // included in all copies or substantial portions of the Software.
22 //
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32 using System;
33 using System.Collections;
34 using System.IO;
35 using System.Text;
36 using System.Runtime.InteropServices;
37 using System.Security;
38 using System.Security.Policy;
39 using System.Xml.XPath;
41 namespace System.Xml.Xsl {
42 public sealed class XslTransform {
44 XmlResolver xmlResolver = new XmlUrlResolver ();
45 XslTransformImpl impl;
47 #region Constructors
48 public XslTransform ()
50 if (Environment.GetEnvironmentVariable ("MONO_UNMANAGED_XSLT") == null)
51 impl = new ManagedXslTransform ();
52 else
53 impl = new UnmanagedXslTransform ();
55 #endregion
57 [MonoTODO ("Security check.")]
58 #if NET_1_1
59 [Obsolete ("You should pass XmlResolver to Transform() method", false)]
60 #endif
61 public XmlResolver XmlResolver {
62 set {
63 xmlResolver = value;
67 #region Transform
68 #if NET_1_1
69 [Obsolete ("You should pass XmlResolver to Transform() method", false)]
70 #endif
71 public XmlReader Transform (IXPathNavigable input, XsltArgumentList args)
73 return Transform (input.CreateNavigator (), args, xmlResolver);
76 #if NET_1_1
77 public XmlReader Transform (IXPathNavigable input, XsltArgumentList args, XmlResolver resolver)
78 #else
79 XmlReader Transform (IXPathNavigable input, XsltArgumentList args, XmlResolver resolver)
80 #endif
82 return Transform (input.CreateNavigator (), args, resolver);
85 #if NET_1_1
86 [Obsolete ("You should pass XmlResolver to Transform() method", false)]
87 #endif
88 public XmlReader Transform (XPathNavigator input, XsltArgumentList args)
90 return Transform (input, args, xmlResolver);
92 #if NET_1_1
93 public XmlReader Transform (XPathNavigator input, XsltArgumentList args, XmlResolver resolver)
94 #else
95 XmlReader Transform (XPathNavigator input, XsltArgumentList args, XmlResolver resolver)
96 #endif
98 // todo: is this right?
99 MemoryStream stream = new MemoryStream ();
100 Transform (input, args, new XmlTextWriter (stream, null), resolver);
101 stream.Position = 0;
102 return new XmlTextReader (stream);
105 #if NET_1_1
106 [Obsolete ("You should pass XmlResolver to Transform() method", false)]
107 #endif
108 public void Transform (IXPathNavigable input, XsltArgumentList args, TextWriter output)
110 Transform (input.CreateNavigator (), args, output, xmlResolver);
112 #if NET_1_1
113 public void Transform (IXPathNavigable input, XsltArgumentList args, TextWriter output, XmlResolver resolver)
114 #else
115 void Transform (IXPathNavigable input, XsltArgumentList args, TextWriter output, XmlResolver resolver)
116 #endif
118 Transform (input.CreateNavigator (), args, output, resolver);
121 #if NET_1_1
122 [Obsolete ("You should pass XmlResolver to Transform() method", false)]
123 #endif
124 public void Transform (IXPathNavigable input, XsltArgumentList args, Stream output)
126 Transform (input.CreateNavigator (), args, output, xmlResolver);
128 #if NET_1_1
129 public void Transform (IXPathNavigable input, XsltArgumentList args, Stream output, XmlResolver resolver)
130 #else
131 void Transform (IXPathNavigable input, XsltArgumentList args, Stream output, XmlResolver resolver)
132 #endif
134 Transform (input.CreateNavigator (), args, output, resolver);
137 #if NET_1_1
138 [Obsolete ("You should pass XmlResolver to Transform() method", false)]
139 #endif
140 public void Transform (IXPathNavigable input, XsltArgumentList args, XmlWriter output)
142 Transform (input.CreateNavigator (), args, output, xmlResolver);
144 #if NET_1_1
145 public void Transform (IXPathNavigable input, XsltArgumentList args, XmlWriter output, XmlResolver resolver)
146 #else
147 void Transform (IXPathNavigable input, XsltArgumentList args, XmlWriter output, XmlResolver resolver)
148 #endif
150 Transform (input.CreateNavigator (), args, output, resolver);
153 #if NET_1_1
154 [Obsolete ("You should pass XmlResolver to Transform() method", false)]
155 #endif
156 public void Transform (XPathNavigator input, XsltArgumentList args, XmlWriter output)
158 impl.Transform (input, args, output, xmlResolver);
160 #if NET_1_1
161 public void Transform (XPathNavigator input, XsltArgumentList args, XmlWriter output, XmlResolver resolver)
162 #else
163 void Transform (XPathNavigator input, XsltArgumentList args, XmlWriter output, XmlResolver resolver)
164 #endif
166 impl.Transform (input, args, output, resolver);
169 #if NET_1_1
170 [Obsolete ("You should pass XmlResolver to Transform() method", false)]
171 #endif
172 public void Transform (XPathNavigator input, XsltArgumentList args, Stream output)
174 impl.Transform (input, args, output, xmlResolver);
176 #if NET_1_1
177 public void Transform (XPathNavigator input, XsltArgumentList args, Stream output, XmlResolver resolver)
178 #else
179 void Transform (XPathNavigator input, XsltArgumentList args, Stream output, XmlResolver resolver)
180 #endif
182 impl.Transform (input, args, output, resolver);
185 #if NET_1_1
186 [Obsolete ("You should pass XmlResolver to Transform() method", false)]
187 #endif
188 public void Transform (XPathNavigator input, XsltArgumentList args, TextWriter output)
190 impl.Transform (input, args, output, xmlResolver);
192 #if NET_1_1
193 public void Transform (XPathNavigator input, XsltArgumentList args, TextWriter output, XmlResolver resolver)
194 #else
195 void Transform(XPathNavigator input, XsltArgumentList args, TextWriter output, XmlResolver resolver)
196 #endif
198 impl.Transform (input, args, output, resolver);
201 #if NET_1_1
202 [Obsolete ("You should pass XmlResolver to Transform() method", false)]
203 #endif
204 public void Transform (string inputfile, string outputfile)
206 impl.Transform (inputfile, outputfile, xmlResolver);
209 #if NET_1_1
210 public void Transform (string inputfile, string outputfile, XmlResolver resolver)
211 #else
212 void Transform (string inputfile, string outputfile, XmlResolver resolver)
213 #endif
215 impl.Transform (inputfile, outputfile, resolver);
217 #endregion
219 #region Load
220 public void Load (string url)
222 Load (url, null);
225 public void Load (string url, XmlResolver resolver)
227 impl.Load (url, resolver);
230 #if NET_1_1
231 [Obsolete("You should pass evidence.", false)]
232 #endif
233 public void Load (XmlReader stylesheet)
235 Load (stylesheet, null, null);
238 #if NET_1_1
239 [Obsolete("You should pass evidence.", false)]
240 #endif
241 public void Load (XmlReader stylesheet, XmlResolver resolver)
243 Load (stylesheet, resolver, null);
246 #if NET_1_1
247 [Obsolete("You should pass evidence.", false)]
248 #endif
249 public void Load (XPathNavigator stylesheet)
251 Load (stylesheet, null, null);
254 #if NET_1_1
255 [Obsolete("You should pass evidence.", false)]
256 #endif
257 public void Load (XPathNavigator stylesheet, XmlResolver resolver)
259 Load (stylesheet, resolver, null);
262 #if NET_1_1
263 [Obsolete("You should pass evidence.", false)]
264 #endif
265 public void Load (IXPathNavigable stylesheet)
267 Load (stylesheet.CreateNavigator(), null);
270 #if NET_1_1
271 [Obsolete("You should pass evidence.", false)]
272 #endif
273 public void Load (IXPathNavigable stylesheet, XmlResolver resolver)
275 Load (stylesheet.CreateNavigator(), resolver);
278 // Introduced in .NET 1.1
279 #if NET_1_1
280 public void Load (IXPathNavigable stylesheet, XmlResolver resolver, Evidence evidence)
281 #else
282 internal void Load (IXPathNavigable stylesheet, XmlResolver resolver, Evidence evidence)
283 #endif
285 impl.Load (stylesheet.CreateNavigator(), resolver, evidence);
288 #if NET_1_1
289 public void Load (XPathNavigator stylesheet, XmlResolver resolver, Evidence evidence)
290 #else
291 internal void Load (XPathNavigator stylesheet, XmlResolver resolver, Evidence evidence)
292 #endif
294 impl.Load (stylesheet, resolver, evidence);
297 #if NET_1_1
298 public void Load (XmlReader stylesheet, XmlResolver resolver, Evidence evidence)
299 #else
300 internal void Load (XmlReader stylesheet, XmlResolver resolver, Evidence evidence)
301 #endif
303 impl.Load (stylesheet, resolver, null);
305 #endregion