2 // Transform.cs - Transform implementation for XML Signature
5 // Sebastien Pouliot <sebastien@ximian.com>
7 // (C) 2002, 2003 Motus Technologies Inc. (http://www.motus.com)
8 // (C) 2004 Novell (http://www.novell.com)
11 using System.Runtime.InteropServices;
14 namespace System.Security.Cryptography.Xml {
16 public abstract class Transform {
20 public Transform () {}
22 public string Algorithm {
27 public abstract Type[] InputTypes {
31 public abstract Type[] OutputTypes {
35 protected abstract XmlNodeList GetInnerXml ();
37 public abstract object GetOutput ();
39 public abstract object GetOutput (Type type);
41 public XmlElement GetXml ()
43 XmlDocument document = new XmlDocument ();
44 XmlElement xel = document.CreateElement (XmlSignature.ElementNames.Transform, XmlSignature.NamespaceURI);
45 xel.SetAttribute (XmlSignature.AttributeNames.Algorithm, algo);
46 XmlNodeList xnl = this.GetInnerXml ();
48 foreach (XmlNode xn in xnl) {
49 XmlNode importedNode = document.ImportNode (xn, true);
50 xel.AppendChild (importedNode);
56 public abstract void LoadInnerXml (XmlNodeList nodeList);
58 public abstract void LoadInput (object obj);
61 private XmlResolver xmlResolver;
64 public XmlResolver Resolver {
65 set { xmlResolver = value; }
68 internal XmlResolver GetResolver ()