In System.Xml:
[mono.git] / mcs / class / System.XML / System.Xml / XmlAttribute.cs
index 59ac666d7e65bd3c9989b1389bc9278dc536afbb..62bea2219832fa43263e767ce098a2ad8f1c85c1 100644 (file)
@@ -25,6 +25,7 @@ namespace System.Xml
 
                #region Constructor
 
+               [MonoTODO("need to set namespaceURI if prefix is recognized built-in ones like xmlns")]
                protected internal XmlAttribute (
                        string prefix, 
                        string localName, 
@@ -58,10 +59,11 @@ namespace System.Xml
                        }
                }
 
-               [MonoTODO]
+               [MonoTODO ("Setter.")]
                public override string InnerXml {
                        get {
-                               throw new NotImplementedException ();
+                               // Not sure why this is an override.  Passing through for now.
+                               return base.InnerXml;
                        }
 
                        set {
@@ -112,7 +114,15 @@ namespace System.Xml
                        }
                }
 
+               [MonoTODO]
+               // We gotta do more in the set block here
+               // We need to do the proper tests and throw
+               // the correct Exceptions
                public override string Prefix {
+                       set {
+                               prefix = value;
+                       }
+                       
                        get {
                                return prefix;
                        }
@@ -148,18 +158,16 @@ namespace System.Xml
 
                public override XmlNode CloneNode (bool deep)
                {
-                       if (deep) { // recursively clone the subtree 
-                               XmlNode node = FirstChild; // Attributes have no ParentNodes
-
+                       XmlNode node = new XmlAttribute (prefix, localName, namespaceURI,
+                                                        OwnerDocument);
+                       if (deep) {
                                while ((node != null) && (node.HasChildNodes)) {
-                                       AppendChild (node.NextSibling.CloneNode (false));
+                                       AppendChild (node.NextSibling.CloneNode (true));
                                        node = node.NextSibling;
                                }
+                       }
 
-                               return node;
-                       } else
-                               return new XmlAttribute (prefix, localName, namespaceURI,
-                                                        OwnerDocument);
+                       return node;
                }
 
                internal void SetOwnerElement (XmlElement ownerElement)
@@ -167,28 +175,22 @@ namespace System.Xml
                        this.ownerElement = ownerElement;
                }
 
-               [MonoTODO]
-               public override void WriteContentTo(XmlWriter w)
+               public override void WriteContentTo (XmlWriter w)
                {
-                       throw new NotImplementedException ();
+                       w.WriteString (Value);
                }
 
-               [MonoTODO]
-               public override void WriteTo(XmlWriter w)
+               public override void WriteTo (XmlWriter w)
                {
-                       throw new NotImplementedException ();
+                       w.WriteAttributeString (prefix, localName, namespaceURI, Value);
                }
 
                #endregion
 
                internal override XmlLinkedNode LastLinkedChild {
-                       get     {
-                               return lastChild;
-                       }
+                       get { return lastChild; }
 
-                       set {
-                               lastChild = value;
-                       }
+                       set { lastChild = value; }
                }
        }
 }