2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Mon, 7 Mar 2005 20:53:33 +0000 (20:53 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Mon, 7 Mar 2005 20:53:33 +0000 (20:53 -0000)
* XslLiteralElement.cs : literal attributes should also consider
  namespace aliases.

svn path=/trunk/mcs/; revision=41538

mcs/class/System.XML/Mono.Xml.Xsl.Operations/ChangeLog
mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslLiteralElement.cs

index 83056f3ccebb23a269b7d8ae4bab875f4f916e83..aaad0e247a35b5bb45fac4dbf8cd022201a7b1e2 100644 (file)
@@ -1,3 +1,8 @@
+2005-03-07  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XslLiteralElement.cs : literal attributes should also consider
+         namespace aliases.
+
 2005-03-07  Atsushi Enomoto  <atsushi@ximian.com>
 
        * XslAttribute.cs,
index 67b9dfc8b86d527ea77bccb2a654cedd4ce349e2..967489f04672a817b6db6e589620ec5e8296ed38 100644 (file)
@@ -54,7 +54,20 @@ namespace Mono.Xml.Xsl.Operations {
                        public XslLiteralAttribute (Compiler c)
                        {
                                this.prefix = c.Input.Prefix;
-                               this.nsUri = c.Input.NamespaceURI;
+                               if (prefix.Length > 0) {
+                                       string alias = 
+                                               c.CurrentStylesheet.GetActualPrefix (prefix);
+                                       if (alias != prefix) {
+                                               prefix = alias;
+                                               XPathNavigator clone = c.Input.Clone ();
+                                               clone.MoveToParent ();
+                                               nsUri = clone.GetNamespace (alias);
+                                       }
+                                       else
+                                               nsUri = c.Input.NamespaceURI;
+                               }
+                               else
+                                       nsUri = String.Empty;
                                this.localname = c.Input.LocalName;
                                this.val = new XslAvt (c.Input.Value, c);
                        }