2
0

Multiplexer.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. // System.Xml.Xsl.XslTransform
  2. //
  3. // Authors:
  4. // Tim Coleman <[email protected]>
  5. // Gonzalo Paniagua Javier ([email protected])
  6. //
  7. // (C) Copyright 2002 Tim Coleman
  8. // (c) 2003 Ximian Inc. (http://www.ximian.com)
  9. //
  10. using System;
  11. using System.Collections;
  12. using System.IO;
  13. using System.Text;
  14. using System.Runtime.InteropServices;
  15. using System.Xml.XPath;
  16. namespace System.Xml.Xsl {
  17. public sealed class XslTransform {
  18. XmlResolver xmlResolver;
  19. XslTransformImpl impl;
  20. #region Constructors
  21. public XslTransform ()
  22. {
  23. if (Environment.GetEnvironmentVariable ("MONO_MANAGED_XSLT") != null)
  24. impl = new ManagedXslTransform ();
  25. else
  26. impl = new UnmanagedXslTransform ();
  27. }
  28. #endregion
  29. public XmlResolver XmlResolver { set { xmlResolver = value; }}
  30. #region Transform
  31. public XmlReader Transform (IXPathNavigable input, XsltArgumentList args)
  32. {
  33. return Transform (input.CreateNavigator (), args);
  34. }
  35. public XmlReader Transform(XPathNavigator input, XsltArgumentList args)
  36. {
  37. // todo: is this right?
  38. MemoryStream stream = new MemoryStream ();
  39. Transform (input, args, new XmlTextWriter (stream, null));
  40. stream.Position = 0;
  41. return new XmlTextReader (stream);
  42. }
  43. public void Transform(IXPathNavigable input, XsltArgumentList args, TextWriter output)
  44. {
  45. Transform (input.CreateNavigator (), args, output);
  46. }
  47. public void Transform(IXPathNavigable input, XsltArgumentList args, Stream output)
  48. {
  49. Transform (input.CreateNavigator (), args, output);
  50. }
  51. public void Transform(IXPathNavigable input, XsltArgumentList args, XmlWriter output)
  52. {
  53. Transform (input.CreateNavigator (), args, output);
  54. }
  55. public void Transform(XPathNavigator input, XsltArgumentList args, XmlWriter output)
  56. {
  57. impl.Transform (input, args, output, xmlResolver);
  58. }
  59. public void Transform(XPathNavigator input, XsltArgumentList args, Stream output)
  60. {
  61. impl.Transform (input, args, new XmlTextWriter (output, null), xmlResolver);
  62. }
  63. public void Transform(XPathNavigator input, XsltArgumentList args, TextWriter output)
  64. {
  65. impl.Transform (input, args, new XmlTextWriter (output), xmlResolver);
  66. }
  67. public void Transform (string inputfile, string outputfile)
  68. {
  69. impl.Transform (inputfile, outputfile, xmlResolver);
  70. }
  71. #endregion
  72. public void Load (string url)
  73. {
  74. Load (url, null);
  75. }
  76. public void Load (string url, XmlResolver resolver)
  77. {
  78. impl.Load (url, resolver);
  79. }
  80. public void Load (XmlReader stylesheet)
  81. {
  82. Load (stylesheet, null);
  83. }
  84. public void Load (XmlReader stylesheet, XmlResolver resolver)
  85. {
  86. impl.Load (stylesheet, resolver);
  87. }
  88. public void Load (XPathNavigator stylesheet)
  89. {
  90. Load (stylesheet, null);
  91. }
  92. public void Load (XPathNavigator stylesheet, XmlResolver resolver)
  93. {
  94. impl.Load (stylesheet, resolver);
  95. }
  96. public void Load (IXPathNavigable stylesheet)
  97. {
  98. Load (stylesheet.CreateNavigator(), null);
  99. }
  100. public void Load (IXPathNavigable stylesheet, XmlResolver resolver)
  101. {
  102. Load (stylesheet.CreateNavigator(), resolver);
  103. }
  104. }
  105. }