| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- //
- // ManagedXslTransform
- //
- // Authors:
- // Ben Maurer ([email protected])
- //
- // (C) 2003 Ben Maurer
- //
- using System;
- using System.Collections;
- using System.IO;
- using System.Security.Policy;
- using System.Text;
- using System.Xml.XPath;
- using Mono.Xml.Xsl;
- namespace System.Xml.Xsl {
- internal class ManagedXslTransform : XslTransformImpl {
- CompiledStylesheet s;
-
-
- public override void Load (XPathNavigator stylesheet, XmlResolver resolver, Evidence evidence)
- {
- s = new Compiler ().Compile (stylesheet, resolver, evidence);
- }
- public override void Transform (XPathNavigator input, XsltArgumentList args, XmlWriter output, XmlResolver resolver)
- {
- if (s == null)
- throw new XsltException ("No stylesheet was loaded.", null);
- Outputter outputter = new GenericOutputter (output, s.Outputs, null);
- new XslTransformProcessor (s).Process (input, outputter, args, resolver);
- output.Flush ();
- }
- public override void Transform (XPathNavigator input, XsltArgumentList args, TextWriter output, XmlResolver resolver) {
- Outputter outputter = new GenericOutputter(output, s.Outputs, output.Encoding);
- // outputter.WriteStartDocument();
- new XslTransformProcessor (s).Process (input, outputter, args, resolver);
- switch (outputter.WriteState) {
- case WriteState.Start:
- case WriteState.Closed:
- break;
- default:
- outputter.WriteEndDocument();
- break;
- }
- output.Flush ();
- }
-
- public override void Transform (XPathNavigator input, XsltArgumentList args, Stream output, XmlResolver resolver)
- {
- XslOutput xslOutput = (XslOutput)s.Outputs[String.Empty];
- Transform (input, args, new XmlTextWriter (output, xslOutput.Encoding), resolver);
- }
- }
- }
|