2006-03-23 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.XML / System.Xml / ChangeLog
index 7c3e875c13d0be0b63d0b7d1de2ea6bf593da710..b4f02b212e38c0afc93c2e59a5d81bcbdeec8589 100644 (file)
@@ -1,3 +1,288 @@
+2006-03-23  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlReader.cs : in XmlReader.Create() ValidationType Auto and XDR
+         are simply ignored (it was found on running NvdlValidatingReader
+         under MS.NET 2.0).
+
+2006-03-23  Atsushi Enomoto <atsushi@ximian.com>
+
+       * DTDValidatingReader.cs : avoid NullReferenceException. Input
+         XmlReader might not be IHasXmlParserContext.
+
+2006-03-08  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlReader.cs: ReadContentAsXXX() just stops at start element,
+         without rejecting it as an error.
+         ReadElementContentAsXXX() rejects child element nodes.
+
+2006-02-28  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlElement.cs : (WriteTo) use IsEmpty to determine which to use:
+         WriteEndElement() and WriteFullEndElement(). Fixed sys.security
+         regression.
+
+2006-02-24  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlTextWriter2.cs :
+         WriteRaw() has stupid second arg. Fixed bug #77623.
+         WriteString() should raise an error when it is called immediately
+         after WriteStartDocument().
+
+2006-02-22  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlTextWriter2.cs : WriteChars() should allow Attribute state.
+
+2006-02-22  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlChar.cs : (IndexOfInvalidChar) fixed surrogate pairs handling.
+         They were always regarded as invalid.
+       * XmlTextWriter2.cs : seems like MS XmlTextWriter outputs invalid
+         characters as character references. It totally does not make sense
+         but corcompare depended on that behavior.
+
+         This "compatibility" fix causes 10% or more performance loss!!!
+
+2006-02-21  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlTextWriter2.cs : (WriteStartAtribute) more == removal.
+       * XmlNode.cs : (get_InnerText) reduce extra StringBuilder creation.
+
+2006-02-21  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlTextWriter2.cs : (WriteStartAttribute) reduced string == string.
+
+2006-02-21  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlDocument.cs : (ReadNodeCore) not public.
+
+2006-02-21  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlTextWriter2.cs : (CloseStartElement)
+         Avoid ArrayList.Clear() and culture-sensitive Contains().
+
+2006-02-21  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlNamespaceManager.cs : added internal LookupPrefixExclusive()
+         which discards "overriden" namespaces.
+       * XmlTextWriter2.cs : fresh implementation.
+         - The source structure is simplified and cleaner.
+         - When outputting escaped string, output directly to TextWriter.
+         - roughly 20% performance improvement.
+
+         (Also fixed previous perf. evaluation excess in ChangeLog.)
+
+2006-02-20  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlElement.cs : (WriteTo) make use of HasAttributes. Remove extra
+         check. 5% speed improvement.
+
+2006-02-20  Atsushi Enomoto <atsushi@ximian.com>
+
+       * DTDValidatingReader2.cs : added Source XmlReader property for
+         XsdValidatingReader use (see XsdValidatingReader change as well).
+
+2006-02-20  Atsushi Enomoto <atsushi@ximian.com>
+
+       * EntityResolvingXmlReader.cs, XmlNodeReader2.cs, XmlTextReader2.cs :
+         in get_NodeType() entity reader existence check is faster.
+       * DTDValidatingReader2.cs : IsDefault could be avoided.
+
+2006-02-20  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlNodeReaderImpl.cs : optimized Depth.
+
+2006-02-20  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlValidatingReader.cs : reducing layered ReadState invocation
+         results in 10% speed up.
+
+2006-02-20  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlNodeReaderImpl.cs : Reimplemented Read(). Points are:
+         - reduced call to NextSibling which is very unlikely to be inlined
+         - reorganized conditioning to avoid extra check
+         - added description on each returning branch.
+         - And then, removed unused code.
+         It is 1.5x faster than before.
+
+2006-02-17  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlElement.cs : NextSibling could be effectively computed using
+         LastLinkedChild, beyond previous XmlLinkedNode optimization.
+
+2006-02-17  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlLinkedNode.cs : In NextSibling, use LastChild directly.
+         It improves NextSibling performance in bulky document.
+
+2006-02-17  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlNodeReaderImpl.cs : do not compute ownerLinkedNode, just store
+         it in Read(). Simply use state field in EOF. They result in 20%
+         perf. boost. Expanding EOF also improved performance by 2-3%
+         (mono --optimize=inline might work in the later stage).
+
+2006-02-17  Atsushi Enomoto <atsushi@ximian.com>
+
+       * DTDValidatingReader2.cs : more refactoring. Split ReadContent()
+         into some methods. Reduced some extra MoveToElement().
+
+2006-02-17  Atsushi Enomoto <atsushi@ximian.com>
+
+       * DTDValidatingReader2.cs : more refactoring. Removed and simplified
+         some error check. String += would be enough for entity-reference-
+         mixed attributes which rarely happen, so simplify the code.
+         Added comments on how the fields are used.
+
+2006-02-17  Atsushi Enomoto <atsushi@ximian.com>
+
+       * DTDValidatingReader2.cs : attribute node simplification. It now
+         stores attribute node slots, including default attributes for
+         further refactoring.
+
+2006-02-17  Atsushi Enomoto <atsushi@ximian.com>
+
+       * DTDValidatingReader2.cs, EntityResolvingXmlReader.cs :
+         new files for refactoring DTD validating reader. As the first stage,
+         it splits entity handling process from DTD validation step.
+
+         (DTDValidatingReader.cs will be removed at some stage).
+
+2006-02-17  Atsushi Enomoto <atsushi@ximian.com>
+
+       * DTDObjectModel.cs : entity resolution method will be used in
+         the next DTD validating reader in 1.x.
+
+2006-02-16  Atsushi Enomoto <atsushi@ximian.com>
+
+       * IHasXmlChildNode.cs :
+         New internal interface to hold LastLinkedChild.
+       * XmlNodeListChildren.cs XmlEntity.cs XmlElement.cs XmlAttribute.cs
+         XmlLinkedNode.cs XmlEntityReference.cs XmlNode.cs
+         XmlDocumentFragment.cs XmlDocument.cs : use it. It minimizes memory
+         consumption in XmlText, XmlWhitespace, XmlComment etc.
+
+2006-02-16  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlChar.cs : added IndexOfNonWhitespace() and IndexOfInvalid() (not
+         in use yet).
+       * NewLineHandling.cs : prepared to be used internally in 1.x.
+
+2006-02-16  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlDocument.cs XmlTextReader.cs : in ReadNode(), we can avoid
+         extraneous whitespace node creation for XmlTextReader by setting
+         WhitespaceHandling.Significant when PreserveWhitespace is false.
+
+2006-02-16  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlTextReader.cs : atomize whitespace values. It effectively saves
+         memory consumption when an input XML is indented.
+
+2006-02-14  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlTextReader.cs : When "Significant" is assigned to
+         WhitespaceHandling, it should ignore non-significant whitespaces.
+
+2006-02-14  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlWriter.cs : (WriteElementString and WriteAttributeString)
+         Skip empty string output.
+
+2006-02-14  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlTextWriter.cs : WriteRaw("") is not simply ignored but process
+         state check and closes open tag.
+
+2006-02-11  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlTextReader.cs :
+         Avoid extra AppendValueChar() in ReadWhitespace().
+
+2006-02-06  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlTextReader.cs : ReadTextReader() is now assured to have current
+         node content, except for Text, CDATA and Comment. ReadName() does
+         not use nameBuffer and reuse peekChars.
+
+2006-02-06  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlTextReader.cs : eliminated currentTagBuffer. XmlDeclaration is
+         now once read as PI and then re-parsed from Value. DTD internal
+         subset is now parsed as usual "value".
+
+2006-02-06  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlTextReader.cs : Expect() could be written inline and it could
+         provide better information. ReadEndTag() could use Expect() instead
+         of costy ReadName().
+
+2006-02-04  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlTextReader.cs : on ReadEndTag() we can avoid NameTable.Add().
+         Store name, local name and prefix in the stack instead of just name
+         and reuse them for EndElement.
+
+2006-02-04  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlDocumentNavigator.cs : make use of HasAttributes (avoid possible
+         XmlAttributeCollection creation).
+
+2006-02-03  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlTextReader.cs : no need to call Clear() for each attribute value.
+
+2006-02-03  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlDocument.cs : reverted most of the previous changes. It somehow
+         broke System.Data tests.
+
+2006-01-30  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlDocument.cs, XmlAttribute.cs, XmlElement.cs : Avoid unnecessary
+         name checks in CreateElement() and CreateAttribute().
+         get_DocumentType() could be stopped when the iterated child node
+         is the document element.
+       * XmlNode.cs : removed commented lines.
+       * XmlNameEntry.cs : hash code for a name entry is mostly identical by
+         its local name, so avoid extraneous GetHashCode() especially on
+         namespaces.
+
+2006-01-30  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlReader.cs : ReadOuterXml() returns meaingful value only for
+         element and attribute. ReadInnerXml() does not have to create
+         XmlTextWriter for empty elements.
+
+2006-01-30  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlNodeReader2.cs XmlException.cs XmlReader.cs XmlTextReader.cs
+         XmlWriter.cs XmlTextWriter.cs XmlValidatingReader.cs
+         XmlNodeReaderImpl.cs DTDValidatingReader.cs XmlSecureResolver.cs:
+         cleaning up obsolete NET_1_0 code.
+
+2006-01-28  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlTextWriter.cs : avoid case-insensitive String.Compare().
+         Use array for openElements rather than ArrayList.
+
+2006-01-28  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlElement.cs, XmlAttribute.cs :
+         Avoid ChildNodes.Count and use FirstChild/NextSibling.
+
+2006-01-28  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlNode.cs, XmlIteratorNodeList.cs :
+         Now we can enable XmlIteratorNodeList again (mcs, incorrectly
+         removing nodes in the node list, was fixed).
+
+2006-01-28  Atsushi Enomoto <atsushi@ximian.com>
+
+       * XmlDocument.cs : in ReadNode() to consume element node, switched
+         to MoveToAttribute(int) since MoveToNextAttribute() was somehow
+         not working fine. It is needed to avoid Sys.Data test breakage
+         and anything else should be fixed indeed.
 
 Fri Jan 27 20:39:48 CET 2006 Paolo Molaro <lupus@ximian.com>