2003-01-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
[mono.git] / mcs / class / System.XML / System.Xml / XmlDocument.cs
index e397889f7cd4b2d549db7a8fb1c4b4dc056707e8..e54a1ed4dcc9111d7104a74683a9c7453010063a 100644 (file)
@@ -173,7 +173,6 @@ namespace System.Xml
                        get { return null; }
                }
 
-               [MonoTODO("check its behavior")]
                public bool PreserveWhitespace {
                        get { return preserveWhitespace; }
                        set { preserveWhitespace = value; }
@@ -274,7 +273,7 @@ namespace System.Xml
                        string localName;
 
                        ParseName (qualifiedName, out prefix, out localName);
-
+                       
                        return CreateElement (prefix, localName, namespaceURI);
                }
 
@@ -285,7 +284,7 @@ namespace System.Xml
                {
                        if ((localName == null) || (localName == String.Empty))
                                throw new ArgumentException ("The local name for elements or attributes cannot be null or an empty string.");
-
+                       CheckName (localName);
                        return new XmlElement (prefix != null ? prefix : String.Empty, localName, namespaceURI != null ? namespaceURI : String.Empty, this);
                }
 
@@ -577,8 +576,7 @@ namespace System.Xml
                        // like properties we have, etc.
                        RemoveAll ();
 
-                       XmlNode currentNode = this;
-
+                       // create all contents with use of ReadNode()
                        do {
                                XmlNode n = ReadNode (xmlReader);
                                if(n == null) break;
@@ -653,6 +651,14 @@ namespace System.Xml
                        }
                }
 
+               // Checks that Element's name is valid
+               private void CheckName (String name)
+               {
+                       // TODO: others validations?
+                       if (name.IndexOf (" ") >= 0)
+                               throw new XmlException ("The ' ' characted cannot be included in a name");
+               }
+
                // Reads XmlReader and creates Attribute Node.
                private XmlAttribute ReadAttributeNode(XmlReader reader)
                {
@@ -729,11 +735,6 @@ namespace System.Xml
 
                                        // set the element's attributes.
                                        while (reader.MoveToNextAttribute ()) {
-/*
-                                               XmlAttribute attribute = CreateAttribute (reader.Prefix, reader.LocalName, reader.NamespaceURI);
-                                               attribute.Value = reader.Value;
-                                               element.SetAttributeNode (attribute);
-*/
                                                element.SetAttributeNode (ReadAttributeNode (reader));
                                        }
 
@@ -824,6 +825,7 @@ namespace System.Xml
                public virtual void Save(Stream outStream)
                {
                        XmlTextWriter xmlWriter = new XmlTextWriter (outStream, Encoding.UTF8);
+                       xmlWriter.Formatting = Formatting.Indented;
                        WriteContentTo (xmlWriter);
                        xmlWriter.Close ();
                }
@@ -831,6 +833,7 @@ namespace System.Xml
                public virtual void Save (string filename)
                {
                        XmlTextWriter xmlWriter = new XmlTextWriter (filename, Encoding.UTF8);
+                       xmlWriter.Formatting = Formatting.Indented;
                        WriteContentTo (xmlWriter);
                        xmlWriter.Close ();
                }
@@ -839,6 +842,7 @@ namespace System.Xml
                public virtual void Save (TextWriter writer)
                {
                        XmlTextWriter xmlWriter = new XmlTextWriter (writer);
+                       xmlWriter.Formatting = Formatting.Indented;
                        WriteContentTo (xmlWriter);
                        xmlWriter.Flush ();
                }
@@ -856,9 +860,6 @@ namespace System.Xml
                {
                        foreach(XmlNode childNode in ChildNodes) {
                                childNode.WriteTo (w);
-                               if(!PreserveWhitespace) {
-                                       w.WriteRaw ("\n");
-                               }
                        }
                }