2003-01-26 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
[mono.git] / mcs / class / System.XML / System.Xml / XmlAttribute.cs
index b87d80b4677ed363892edd6ab9ea5e760e9dc379..167a9b18abaa60b57bf42f77ff0c7ad41b2a06ba 100644 (file)
@@ -84,10 +84,12 @@ namespace System.Xml
 
                        set {
                                XmlNamespaceManager nsmgr = ConstructNamespaceManager ();
-                               XmlParserContext ctx = new XmlParserContext (OwnerDocument.NameTable, nsmgr, String.Empty, XmlSpace.Default);
-                               XmlTextReader xtr = new XmlTextReader ("'" + value.Replace ("'", "&apos;") + "'", XmlNodeType.Attribute, ctx);
-                               xtr.ReadAttributeValue ();
-                               Value = xtr.Value;
+                               XmlParserContext ctx = new XmlParserContext (OwnerDocument.NameTable, nsmgr, XmlLang, this.XmlSpace);
+                               XmlTextReader xtr = OwnerDocument.ReusableReader;
+                               xtr.SetReaderContext (BaseURI, ctx);
+                               xtr.SetReaderFragment (new System.IO.StringReader ("'" + value.Replace ("'", "&apos;") + "'"), XmlNodeType.Attribute);
+
+                               OwnerDocument.ReadAttributeNodeValue (xtr, this);
                        }
                }
 
@@ -190,6 +192,14 @@ namespace System.Xml
                        }
                }
 
+               internal override string XmlLang {
+                       get { return OwnerElement.XmlLang; }
+               }
+
+               internal override XmlSpace XmlSpace {
+                       get { return OwnerElement.XmlSpace; }
+               }
+
                #endregion
 
                #region Methods