XslTransformImpl.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. //
  2. // XslTransfromImpl
  3. //
  4. // Authors:
  5. // Ben Maurer ([email protected])
  6. //
  7. // (C) 2003 Ben Maurer
  8. //
  9. using System;
  10. using System.Collections;
  11. using System.IO;
  12. using System.Security.Policy;
  13. using System.Text;
  14. using System.Xml.XPath;
  15. namespace System.Xml.Xsl {
  16. internal abstract class XslTransformImpl {
  17. public virtual void Load (string url, XmlResolver resolver)
  18. {
  19. Load (new XPathDocument (url, XmlSpace.Preserve).CreateNavigator (), resolver, null);
  20. }
  21. public virtual void Load (XmlReader stylesheet, XmlResolver resolver, Evidence evidence)
  22. {
  23. Load (new XPathDocument (stylesheet, XmlSpace.Preserve).CreateNavigator (), resolver, evidence);
  24. }
  25. public abstract void Load (XPathNavigator stylesheet, XmlResolver resolver, Evidence evidence);
  26. public abstract void Transform (XPathNavigator input, XsltArgumentList args, XmlWriter output, XmlResolver resolver);
  27. public abstract void Transform (XPathNavigator input, XsltArgumentList args, TextWriter output, XmlResolver resolver);
  28. public virtual void Transform (XPathNavigator input, XsltArgumentList args, Stream output, XmlResolver resolver)
  29. {
  30. Transform (input, args, new StreamWriter (output), resolver);
  31. }
  32. public virtual void Transform (string inputfile, string outputfile, XmlResolver resolver)
  33. {
  34. using (Stream s = new FileStream (outputfile, FileMode.Create, FileAccess.ReadWrite)) {
  35. Transform(new XPathDocument (inputfile).CreateNavigator (), null, s, resolver);
  36. }
  37. }
  38. }
  39. }