{
#region Fields
+ private XmlLinkedNode lastChild;
private string localName;
private string namespaceURI;
private string prefix;
- private XmlElement ownerElement;
- private string data;
#endregion
#region Constructor
+ [MonoTODO("need to set namespaceURI if prefix is recognized built-in ones like xmlns")]
protected internal XmlAttribute (
string prefix,
string localName,
#region Properties
- [MonoTODO]
public override string BaseURI {
get {
- throw new NotImplementedException ();
+ return OwnerElement.BaseURI;
}
}
}
}
- [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 {
public virtual XmlElement OwnerElement {
get {
- return ownerElement;
+ return base.ParentNode as XmlElement;
}
}
- internal void SetOwnerElement (XmlElement ownerElement)
- {
- this.ownerElement = ownerElement;
- }
-
[MonoTODO]
public override XmlNode ParentNode {
get {
}
}
+ [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;
}
public override string Value {
get {
- return data;
+ XmlNode firstChild = FirstChild;
+ if (firstChild == null)
+ return String.Empty;
+ return firstChild.Value;
}
set {
- data = value;
+ XmlNode firstChild = FirstChild;
+ if (firstChild == null)
+ AppendChild (OwnerDocument.CreateTextNode (value));
+ else
+ firstChild.Value = value;
}
}
#region Methods
- [MonoTODO]
public override XmlNode CloneNode (bool deep)
{
- throw new NotImplementedException ();
+ XmlNode node = new XmlAttribute (prefix, localName, namespaceURI,
+ OwnerDocument);
+ if (deep) {
+ while ((node != null) && (node.HasChildNodes)) {
+ AppendChild (node.NextSibling.CloneNode (true));
+ node = node.NextSibling;
+ }
+ }
+
+ return node;
}
- [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; }
+
+ set { lastChild = value; }
+ }
}
}