+2003-11-02 Pedro Martínez Juliá <yoros@wanadoo.es>
+
+ * XmlConvert.cs: Only parse INF/-INF/NaN. Other Infinty or NAN
+ numbers are parsed with the respective ::Parse method.
+
+2003-11-01 Pedro Martínez Juliá <yoros@wanadoo.es>
+
+ * XmlConvert.cs: Revert my last change. INF and -INF must be
+ processed here because Double::Parse and Single::Parse doesn't
+ understand anything of parsing [-]INF.
+
+2003-11-01 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlDocument.cs : Save(Stream) should not close the stream.
+
+2003-10-25 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DTDReader.cs, DTDValidatingReader.cs, XmlInputStream.cs,
+ XmlTextReader.cs : More cleanup.
+ * XmlDocument.cs : Removed CheckName(). Code cleanup.
+ * XmlElement.cs : .ctor() now adds default attributes (if required).
+ * XmlAttribute.cs, XmlElement.cs, XmlEntity.cs, XmlEntityReference.cs,
+ XmlNotation.cs : Now uses OwnerDocument's NameTable.
+
+2003-10-25 Pedro Martínez Juliá <yoros@wanadoo.es>
+
+ * XmlConvert.cs: Support for the sign in double and single. The
+ processing of the infinites and nan numbers are more complex than
+ comparing to "INF" so we must let Double::Parse and Single::Parse
+ doing their job.
+
+2003-10-25 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DTDValidatingReader.cs : Now it handles whitespace entity as
+ significant.
+ * XmlConvert.cs : As to NIST testcases, exponential support on single
+ and double floating point numbers.
+ * XmlValidatingReader.cs : If it IsDefault, then line number and line
+ position returns 0.
+
+2003-10-25 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DTDReader.cs,
+ XmlConstructs.cs,
+ XmlTextReader.cs,
+ XmlWriter.cs : Fixed incorrect access modifier.
+ * XmlTextWriter.cs : Imported state variable from XmlWriter.
+ * DTDValidatingReader.cs : Removed extraneous MonoTODO.
+ * XmlConvert.cs : Implemented ToTimeSpan().
+ Modified ToDateTime() to reuse the same array.
+
+2003-10-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlAttributeCollection.cs : Fixed synchronization stuff.
+ * XmlConvert.cs : Added two FromBinHexString() methods.
+ * XmlTextReader.cs : Modified to use one of the above method.
+ * XmlValidatingReader.cs : XsdValidatingReader.XmlResolver will be
+ disabled (in the next commit), so resolver won' be set to it.
+ Attempt to validate against XDR now throws NotSupportedException.
+
+2003-10-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlChar.cs : added WhitespaceChars, used in common.
+ * XmlConvert.cs,
+ XmlDeclaration.cs,
+ XmlParserInput.cs,
+ XmlTextReader.cs,
+ XmlTextWriter.cs : String.Trim()
+ * XmlConvert.cs : shifted XmlConstructs to XmlChar.
+ * XmlTextReader.cs : Implemented Normalization.
+
+2003-10-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlNode.cs : GetPrefixOfNamespace() also contained a bug similar to
+ GetNamespaceOfPrefix() fixed at 2003-10-13.
+ * XmlTextReader.cs : ReadBase64() should keep incomplete base64 block
+ which remained by previous call of this method.
+ * XmlUrlResolver.cs : Added assertion for file Uri path's absoluteness.
+ * XmlValidatingReader.cs : Notice about intention of XDR won't be
+ supported (at least in Mono 1.0).
+
+2003-10-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlDocument.cs : CloneNode() does not copy PreserveWhitespace.
+ * XmlWriter.cs : Calling WriteNode() with XmlReader whose state is
+ XmlDeclaration now calls WriteProcessingInstruction(). This fixes
+ testcase XmlWriterTests.WriteNodeFullDocument().
+ * XmlTextWriter.cs : Added LAMESPEC comments related to above.
+
+2003-10-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlDocument.cs : Fixed bugzilla #49607. Save() outputs XML
+ declaration even though there is no XmlDeclaration child.
+ * XmlTextReader.cs : Fixed Init() so that ResetState() should work.
+
+2003-10-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlTextWriter.cs : Implemented WriteSurrogateCharEntity().
+ Reverted my recent extraneous check in WriteStartAttribute().
+
+2003-10-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlNode.cs : GetNamespaceOfPrefix() should check Attributes existence.
+ And it should throw ArgumentNullException.
+
+2003-10-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlAttribute.cs : Fixed InnerText that did not removed its content
+ if there is two or more children.
+ * XmlNode.cs : XmlNode.cs : Fixed bugzilla #49580 (1)to return "",
+ (2)not to compare NodeType for detached nodes, (3)optimization to
+ compare element's prefix.
+ * XmlSecureResolver.cs : Removed extraneous members.
+
+2003-10-09 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * Added DTDReader.cs. It is almost importation of XmlTextReader.
+ * DTDObjectModel.cs :
+ - More .NET-ism. Properties took place of fields.
+ - Imported PE set from XmlTextReader. Added location info.
+ - Added DTDEntityBase common to PE and GE.
+ - More correct text declaration handling with new XmlTextReader.
+ * DTDValidatingReader.cs :
+ - Now uses entity resolving XmlTextReader to validate attributes
+ correctly. Implemented standalone
+ - Standalone and default related validity constraints check.
+ * XmlImplementation.cs: Implemented HasFeature().
+ * XmlNode.cs : Implemented Supports().
+ * XmlNodeReader.cs : Modified to use XmlTextReader.SkipTextDeclaration()
+ * XmlParserInput.cs : Removed extraneous members.
+ * XmlTextReader.cs :
+ - All DTD related functionality now goes to DTDReader.cs
+ - It became old simple TextReader input style.
+ - Implemented GetRemainder().
+ - Implemented ReadBase64(), ReadBinHex() and ReadChars(), using
+ additional new private method ReadUntilEndTag().
+ - Removed incomplete MaybeTextDecl and added SkipTextDeclaration().
+ ReadXmlDeclaration() now became simple.
+ - More strict entity reference check at SetEntityReferenceProperty()
+ - Removed extraneous members.
+ * XmlWriter.cs : WriteNode(XmlNodeType.None) does not raise error.
+
+2003-10-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * XmlTextReader.cs: when we get an unexpected EOF in ReadContent, set
+ the state before throwing the exception if depth > 0.
+
+2003-10-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlAttribute.cs : Removed extraneous MonoTODO.
+ * XmlTextWriter.cs : Implemented WriteBinHex() and WriteChars().
+ WriteStartElement() and WriteStartAttribute() should ignore Prefix
+ if namespace uri is not specified.
+
+2003-10-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlDocumentFragment.cs,
+ XmlElement.cs,
+ XmlEntityReference.cs : Removed extraneous MonoTODO.
+ * XmlNode.cs : Implemented Normalize().
+ * XmlNodeReader.cs :
+ - AttributeCount and HasAttributes should return its owner element's
+ value, to be consistent with XmlTextReader.
+ - Fixed Depth to reflect correct attribute/attribute-value iteration.
+ - simplified ownerElement and HasValue.
+ - Prefix won't return null.
+ - MoveToElement() should also work against attribute value nodes.
+ * XmlTextReader.cs : MoveToElement() should return false if it is
+ positioned at element itself.
+
+2003-10-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlTextReader.cs : Improved SignificantWhitespace handling.
+
+2003-10-01 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlSecureResolver.cs : Implemented basic feature.
+
+2003-10-01 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlUrlResolver.cs : Should work with null type argument.
+
+2003-10-01 Lluis Sanchez Gual <lluis@ximian.com>
+
+ * XmlTextWriter.cs : An attribute can require a prefix for the default
+ namespace, so we need to store the prefix as well as the namespace.
+
+2003-09-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DTDValidatingReader.cs : Simplified to use
+ XmlSchemaUtil.GetParserContext().
+ * XmlValidatingReader.cs : ValidationType.Auto should always use
+ XsdValidatingReader because xsi:schemaLocation might be used.
+
+2003-09-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlTextReader.cs : Attribute value token properties were incorrectly
+ set by the linked node.
+
+2003-09-26 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlDocumentNavigator.cs : Fix for bugzilla #48931. MoveToRoot() now
+ considers such case that target node was not adapted to the document.
+ * XmlNamespaceManager.cs : GetEnumerator() missed the last pair.
+ * XmlTextWriter.cs : use 'as' instead of 'try..catch'.
+
+2003-09-25 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * XmlNode.cs (XPathNodeType): Give more useful debugging message.
+ * XmlDocumentNavigator.cs (MoveToPrevious): Needs same checks as
+ in MoveToNext.
+
+2003-09-23 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlNamespaceManager.cs: Rewrote PopScope() because its namespace
+ recovery was still not enough. Fixed GrowScopes() (incorrect index).
+
+2003-09-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlTextReader.cs :
+ - Fix for bugzilla #48337 (containing Ben's advice on that).
+ - Added internal XmlTokenInfo classes. Nodes are now handled as token
+ objects (linked node, attributes and attribute values). Most of the
+ node state properties and iterating methods are changed to refer to
+ the token classes (except for value builder availability). Removed
+ fields which are never used. CompileDTDSubset() is changed in
+ reflection to nodeType field removal.
+ - Fixed Depth that should vary in moving between attributes and/or
+ reading attribute values.
+ - LineNumber and LinePosition now returns more correct location.
+ - Fixed Value that should still return true if its value is an empty
+ attribute value string.
+ - EntityValue is checked WFC constraints even thoug it is not used.
+ - All .ctor() now initializes ReadState as Initial.
+ - Read() should be available for attribute value constructor.
+ * XmlAttribute.cs : set_InnerXml() now calls reader's Read().
+
+2003-09-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlNamespaceManager.cs: PopScope() must retain those namespaces which
+ are added in the scope before PushScope() was called.
+
+2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * XmlNamespaceManager.cs: Rewrote. Uses arrays, rather than linked
+ lists and removes uses of Hashtable. Results in huge speed gains.
+
+2003-09-19 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * XmlConvert.cs: NaN.ToString () != INF.
+
+2003-09-14 Lluis Sanchez Gual <lluis@ximian.com>
+
+ * XmlTextWriter.cs: Attributes that have a namespace must be always
+ prefixed.
+
+2003-09-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlTextWriterOpenElement.cs : Changed to receive prefix and localName
+ in .ctor().
+ * XmlTextWriter.cs : Changed to use above XmlTextWriterOpenElement.
+ Changed xmlns adding scheme. In detail, 1) WriteStartElement does not
+ add Namespaces immediately, but adds at AddMissingElementXmlns so
+ that we don't have to have extra check than namespaceManager's
+ LookupPrefix(). 2) Removed writtenAttributes for performance reason
+ since it is no more required.
+
+2003-09-10 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlDocument.cs : patch by Jonathan Hogg. Fixed CreateAttribute()
+ that handled xmlns attributes inproperly.
+
+2003-09-08 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlNamespaceManager.cs : GetEnumerator() should return all of the
+ available pairs (of prefix and namespace).
+ * XmlQualifiedName.cs : Quick fix for NullReferenceException in case
+ of name (or ns) is null. (The description of the immediate previous
+ changes will be inserted below.)
+ * XmlTextWriter.cs : Fixed WriteDocType(). Removed CheckValidName().
+ * XmlUrlResolver.cs : Changed not to call WebClient.Dispose() which
+ will release resources it had allocated.
+
+2003-09-01 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * XmlDocument.cs (Save): use the encoding of the document, if
+ available.
+
+2003-08-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlValidatingReader.cs : Implemented SchemaType. Added support for
+ ValidationType.Schema. Added support for XmlResolver. Fixed
+ ReadTypedValue() not to consume EndElement.
+
+2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlDocumentNavigator.cs : Fixed MoveToFirstNamespace() that arose
+ infinite loop.
+ * XmlNamespaceManager.cs : Renamed AtomStrEq to AtomicStringEquals.
+ Commented out Console.Error.WriteLine().
+ * XmlUrlResolver.cs : Fixed ResolveUri() and GetEntity() to support
+ escape and unescape for relative URI string.
+
+2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * XmlParserContext.cs: Make each context inherit next.
+
+2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * XmlChar.cs (IsWhitespace): Spare enumerator allocation.
+ * XmlTextWriter.cs (WriteWhitespace): Enumerators are very high in
+ fat, use low-fat loops instead. Even better, call the function
+ inside XmlChar for code reuse.
+ * HighWaterStack.cs (added): New class that acts like a Stack, but
+ helps with memory allocation.
+ * XmlNamespaceManager.cs, XmlParserContext.cs: Rewrote to use
+ HighWaterStack.
+ * XmlTextReader.cs: Remove orderedAttributesEnumerator variable,
+ use a variable that stores the position in the ArrayList.
+
+2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * XmlTextWriter.cs: Begin diet. String.Format has too much
+ saturated fat, lets replace with the fat-free .Write ()
+ calls. Effects best seen when Paolo's StreamWriter patch is
+ applied.
+
+2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlNodeReader.cs : Fixed ReadAttributeValue() that might result in
+ vanishing current node.
+
+2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DTDValidatingReader.cs : Added SchemaType.
+ Read() Assures to return to element.
+ * DTDObjectModel.cs : Removed DTDEntityDeclaration.BaseURI.
+ * XmlReader.cs : ReadString() should be virtual in NET_1_1.
+ * XmlTextReader.cs : 1) Depth should consider Attribute and its values.
+ Introduced insideAttribute field to support them.
+ 2) ReadAttributeValue() should consider empty string.
+ * XmlValidatingReader.cs :
+ Fixed several properties which premised as if it was already read.
+ Encoding and Namespaces now throws NotSupportedException for other
+ than XmlTextReader.
+ Implemented ReadTypedValue() based on IHasXmlSchemaInfo.SchemaType.
+
+2003-08-10 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlInputStream.cs : Reverted CanSeek as to return false anyway.
+
+2003-08-10 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DTDObjectModel.cs : added XmlResolver related members. Added
+ invalid entity recursion logic. Added encodingdecl check on textdecl.
+ * DTDValidatingReader.cs : It now implements IHasXmlParserContext.
+ * XmlChar.cs : IsPubidChar() should not allow TAB(	).
+ * XmlDocumentType.cs : 1) internal CreateDocumentType() was now changed
+ to receive DTDObjectModel to support other than XmlTextReader.
+ 2) Most of its public member is now based on DTDObjectModel.
+ * XmlDocument.cs : 1) Synchronous change with XmlDocumentType.
+ 2) ReadNode() now considers XmlParserContext's DTDObjectModel for
+ other than XmlTextReader (such as XmlValidatingReader).
+ * XmlNode.cs : code cleanup only.
+ * XmlParserInput.cs : added HasPEBuffer, used to check illegal nesting.
+ * XmlTextReader.cs : 1) Illegal entity reference check logic was moved
+ from ReadContent() to SetEntityReferenceProperties(). 2) Indentation
+ change on ReadEntityReference(). 3) ReadAttribute() now checks
+ reference to external entity reference. 4) Added textdecl encoding
+ check. 5) DTDObjectModel fields are now set correctly. 6) added
+ PERef markup nest check. 7) If PEDecl was not found, it might be WFC
+ violation, not only be VC violation. 8) ReadEntityDecl() now receives
+ its declared entity itself, and this method checks IsInternalSubset.
+ * XmlValidatingReader.cs : 1) Added GetInternalPerserContext().
+ 2) ValidationType.None should be the same as Auto, not DTD (in the
+ future it should keep xml schema's default values).
+
+ Pending Stuff in XmlTextReader which breaks some NUnit tests;
+ 1) SetEntityReferenceProperies() has check for illegal references.
+ 2) ReadAttribute(bool) has similar check for illegal references.
+
+2003-08-09 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DTDAutomata.cs : Fixed (modified or added) TryEndElement() of choice,
+ sequence and oneOrMore. Fixed DTDChoiceAutomata.TryStartElement().
+
+2003-08-09 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlTextReader.cs : Checked and fixed all TryExpandPERef() invokation
+ and supplied SkipWhitespace() as they needed. It broke monodoc.
+ Fixed ReadEntityValueDecl() to get correct value.
+
+2003-08-08 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlInputStream.cs :
+ Fixed Initialize() that might result in incorrect buffer.
+ CanRead and Position should consider buffer (especially when the
+ stream was EOF).
+ CanSeek should use stream's CanSeek.
+
+ * XmlChar.cs : added GetPredefinedEntity().
+ * DTDObjectModel.cs :
+ - Modified ComputeDefaultValue() to use it.
+ - Fixed NormalizedDefaultValue not to expect parsed value as string.
+ - ResolveExternalEntity now detects invalid standalone specification.
+ - DTDParameterEntityDeclaration.Value is now changed to property and
+ keep its resolved value of literal value of external value using
+ new Resolve (XmlResolver) method (called only by XmlTextReader).
+ * DTDValidatingReader.cs :
+ - It now handles entity-expanded Whitespace and SignificantWhitespace
+ correctly. Does not raise unexpected text not allowed error.
+ - Fixed MoveToAttribute()s to move internal reader correctly, and
+ should be able to move in other cases than on element node.
+ - On Read()ing document type and ResolveEntity(), it now sets
+ XmlResolver on text reader.
+ - On ID constraints check and type verification, it now uses
+ normalized attribute or its tokenized value(s).
+ - Fixed ValidateAttributes() to add default values when
+ ValidationType is Auto.
+ * XmlParserContext.cs : added internal Dtd setter.
+ * XmlParserInput.cs :
+ InsertParameterEntityBuffer() should add surrounding whitespaces.
+ Removed unused code block.
+ * XmlTextReader.cs :
+ - Modified ReadReference(), ReadAttribute() and Dereference() to use
+ XmlChar.GetPredefinedEntity().
+ - When returning entity reference, it checks extity declaration
+ existence in certain conditions.
+ - ReadAttribute() now skips general entity replacement on reading
+ entity value.
+ - ReadText() now handles whitespace texts as XmlNodeType.Whitespace.
+ - ReadXmlDeclaration() holds isStandalone, which might be used in
+ entity reference's well-formedness check.
+ - internal 'DTD' now uses XmlParserContext.Dtd.
+ - isInternalSubset was meaningless. Now uses input stack's Count.
+ - Added some required SkipWhitespace().
+ - Several parameter entity handling changes. Added GetPEValue(name).
+ TryExpandPERef() now uses ImportAsPERef(). ReadParameterEntityDecl()
+ now uses its Resolve() when it was external PE. Now it uses value
+ buffer instead of currentTag, to efficiently read (included) PE.
+ CompileDeclaration() now uses ImportAsPERef instead of ExpandPERef().
+ ImportAsPERef() simply inserts the value to currentInput.
+ ReadEntityDecl() also uses value buffer. Removed non-used methods.
+ - Default attributes are now stored in normalized form.
+ - Dereference() now considers non-expanding predefined entities.
+ * XmlValidatingReader.cs : now holds Schemas, and ValidationType.Auto
+ is more correctly supported.
+
+ * XmlAttributeCollection.cs :
+ When removing default attribute, it immediately inserts the attribute.
+ RemoveAll() should consider default (not-removable) attributes.
+ * XmlDocument.cs :
+ Should have its default XmlResolver. Added Internal Resolver.
+ Some Load() should use its XmlResolver.
+ ImportNode() should copy its children in node level, not value level.
+ It also have to consider not to copy default attribute on importing
+ XmlElement.
+ * XmlDocumentType.cs : Now uses document's XmlResolver to read DTD.
+ * XmlAttribute.cs,
+ XmlDocumentFragment.cs.
+ XmlElement.cs : use XmlResolver on InnerXml. Removed some MonoTODO.
+ * XmlNodeReader.cs : GetInternalParserConext() should provide its DTD.
+ ResolveEntity() uses XmlResolver on entityReader.
+
+2003-08-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DTDObjectModel.cs :
+ - Added validation error check (and AddError(), Errors).
+ - Fixed ComputeDefaultValue() to handle various references correctly.
+ - DTDEntityDeclaration.EntityValue became property, and added
+ LiteralEntityValue. The new one holds resolved value.
+ Added ResolveExternalEntity(). It now required root in .ctor().
+ * DTDValidatingReader.cs :
+ - Now it handles namespaced attributes (as input to xsd validator).
+ - Added XmlResolver property as usual XmlReader.
+ - Added currentEntityHandling field so that it can stand changing
+ XmlValidatingReader's EntityHandling dynamically.
+ - FilterNormalization() now requires name for getting datatypes and
+ can stand for non-current attribute normalization.
+ - Splitted ReadContent() from Read() that can be called recursively
+ when expanding entities.
+ - Now handles Entity not found error *after* resolution of entities,
+ as MS.NET does.
+ - Read()ing DTD checks its Errors and raises validation error events.
+ In some situations, DTD parsing may detect VC error, not WFC error.
+ It also strictly checks NData existence.
+ - Handling of entity-resolved text is a bit changed and Read()ing
+ element, endElement, cdata now changed to switch collecting text
+ and collected text.
+ - content type ANY should allow texts.
+ - Added enumerated attribute validity check.
+ - Added Name/Names creation rule check for ID/IDREF/IDREFS.
+ - Added entity existence check for ENTITY/ENTITIES attributes.
+ - Added NMTOKEN creation rule check for NMTOKEN/NMTOKENS.
+ - Fixed to remove extraneous #REQUIRED check.
+ - Contributing default attribute is now only applied to the case
+ ValidationType is DTD or None.
+ - ResolveEntity() now handles external entities.
+ Added Mono.Xml.IXmlParserContext interface support.
+ * XmlDocumentType.cs : Fixed to use BaseURI to build DTD model.
+ * XmlTextReader.cs :
+ - Fixed ReadAttributeValue() to reset returnEntityReference.
+ - Added bool MaybeTextDecl only for ResolveEntity().
+ - Fixed ReadWhitespace(). In fact its value is considered even if it
+ is in the end of the XML.
+ - Fixed ReadXmlDeclaration(). Now skips text declaration.
+ - CompileDTDSubset() now checks IGNORE/INCLUDE section end balances.
+ - ReadContentSpec() should set OrderType = OR for mixed model.
+ Fixed to set content element name correctly.
+ - ImportAsPERef() now skips Text declaration.
+ - Type of enumerated default attributes shold be string.
+ - Undeclared PE error is now handled as DTD's VC error, not
+ XmlTextReader's WFC error.
+ * XmlValidatingReader.cs : BaseURI should provide that of
+ original XmlReader's when read was not started yet.
+ Fixed XmlResolver to delegate to DTDValidatingReader.
+
+ * XmlAttributeCollection.cs : Acquiring attList declaration is
+ insufficient especially in case of lack of elementdecl.
+ * XmlChar.cs : (Maybe this is compact than XmlConstructs.)
+ added IsWhitespace(),IsNCNameChar(),IsName(),IsNCName(),IsNmToken(),
+ IsPubid(). Copies IsValidIANAEncoding() from XmlConstructs.
+
+ * XmlInputStream.cs : Removed "version" declaration check. It should
+ be done by XmlTextReader.
+
+ * XmlNodeReader.cs : added internal GetInternalParserContext() and now
+ it can be used in XmlValidatingReader.ResolveEntity().
+ ResolveEntity() sets XmlTextReader.MaybeTextDecl.
+
+2003-08-05 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DTDValidatingReader.cs :
+ Added full ExpandEntities support for text node and entity reference
+ node (although require many usage tests). Almost all methods and
+ properties now have currentTextValue != null check, that field means
+ that there are cached (entity-resolved) text.
+ Implemented default attribute aware XmlLang and XmlSpace.
+ * XmlNodeReader.cs : ResolveEntity() should not require DTD.
+
+2003-08-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DTDValidatingReader.cs,
+ XmlNodeReader.cs,
+ XmlReader.cs,
+ XmlTextReader.cs,
+ XmlValidatingReader.cs : fixed pragma USE_VERSION_1_0 to NET_1_0.
+
+2003-08-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DTDObjectModel.cs : Added BaseURI (but not used yet).
+ DTDAttListDeclaration.ctro() now requires root dtd object model.
+ * DTDValidatingReader.cs : Read() now expands EntityReference if
+ entity handling of validating reader is ExpandEntities.
+ * XmlReader.cs,
+ XmlTextReader.cs,
+ XmlNodeReader.cs,
+ XmlValidatingReader.cs : Implemented "virtual" ReadInnerXml and
+ ReadOuterXml which are modified in MS.NET 1.1.
+ * XmlConstructs.cs : added int version of IsValid, IsInvalid,
+ IsContent, IsMarkup and IsNCNameStart.
+ Fixed int version of IsXXX() to check array index range.
+ Added IsValidName (string).
+ * XmlTextReader.cs :
+ - Read() handles document with non document element as an error.
+ - ReadText() and ReadCharacterReference() checkes illegal characters.
+ - ReadEntityReference() checks name validity.
+ - ReadProcessingInstruction() rejects such name that starts with
+ "xml" ignoring case, and checks attributes more strictly.
+ - ReadDeclaration() rejects unrecognized kind of declaration.
+ - In many places, added "required whitespace" check in DTD markup.
+ - DTD content model now disallows mixing use of '|' and ','.
+
+2003-08-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlDocumentFragment.cs : I missed to add it in relation to the
+ previous XmlParserContext patch. Similar to XmlAttribute/XmlElement.
+ * XmlNodeReader.cs : removed some TODO attributes.
+ * DTDValidatingReader.cs,
+ XmlValidatingReader.cs : Implemented ResolveEntity().
+
+2003-07-31 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlParserContext.cs,
+ XmlAttribute.cs,
+ XmlElement.cs : Added internal Dtd and new internal XmlParserContext
+ .ctor() that takes DTDObjectModel. And then rewrote classes which
+ uses DTD information. Changed DocTypeName, InternalSubset, PublicId
+ and SystemId to use DTDObjectModel.
+ * DTDObjectModel.cs :
+ Added DTDObjectModel.InternalSubsetHasPEReference.
+ Added DTDEntityDeclaration.IsInternalSubset.
+ * XmlTextReader.cs :
+ Added internal GetInternalParserContext (to build entity reader).
+ Added private isIntSubset to check if the DTD subset is internal or
+ external, which might affect well-formedness constraints.
+ Changed GenerateDTDObjectModel to return the resulting DTD model.
+
+ * XmlEntityReference.cs : implemented BaseURI.
+ * XmlNodeReader.cs :
+ - Implemented ResolveEntity() and CanResolveEntity(). In fact
+ it leads too many changes on almost all methods and properties,
+ since they now must be aware of entityReader.
+ - fixed ownerElement that might be used to return from attribute
+ value to the element through parent attribtues.
+ - Now changed indexer to call GetAttribute() and moved actual logic
+ to the matching GetAttribute() methods.
+
+2003-07-29 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlNode.cs : fixed internal ConstructNamespaceManager() for InnerXml
+ not to create extraneous xmlns="".
+
+2003-07-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DTDValidatingReader.cs : (Read,ValidateAttributes,ReadAttributeValue)
+ attribute declaration should be got independently of elementdecl.
+ * XmlAttribute.cs :
+ Added internal SetDefault() to mark as default.
+ Removed InnerText implementation that is just the same as XmlNode.
+ * XmlDocument.cs : id shouldn't be removed from table at 'trying' to
+ get matching elements. ReadAttributeNode() now sets default mark.
+ * XmlElement.cs : WriteTo() should ignore default attributes.
+ * XmlTextWriter.cs : shuold allow valid name char such as digits.
+
+2003-07-27 Piers Haken <piersh@friskit.com>
+
+ * XmlQualifiedName.cs : fields should never be null
+
+2003-07-27 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlDocumentFragment.cs : added XPathNodeType indicating Root.
+
+2003-07-27 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlDocument.cs (GetIdenticalAttribute): restored OwnerElement.IsRooted
+
+2003-07-27 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlLinkedNode.cs : added internal IsRooted.
+
+2003-07-26 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DTDValidatingReader.cs :
+ - Added ID support in ValidateAttributes().
+ - More refined ReadAttributeValue() support for non-expanding entity
+ situation
+ - It should handle LocalName, Name, Prefix, NamespaceURI and Value
+ correctly when the reader is on each of the value nodes of an
+ attribute. Now XmlDocument.ReadNode() should work well.
+ * XmlDocument.cs :
+ - added idTable, AddIdenticalAttribute(), GetIdenticalAttribute() and
+ RemoveIdenticalAttribute()
+ - Implemented GetElementById().
+ * XmlAttributeCollection.cs :
+ - added private ownerDocument property and replaced
+ ownerElement.OwnerDocument with it.
+ - Added AdjustIdenticalAttribute() and it is used in SetNamedItem().
+ It calls XmlDocument.{Add|Remove}IdenticalAttribute().
+ - Added RemoveIdenticalAttribute() and it is used in Remove().
+ (I also added AddIdenticalAttribute() but is not used.)
+
+2003-07-26 Duncan Mak <duncan@ximian.com>
+
+ * XmlDocument.cs (GetIdenticalAttribute): Temporarily remove test
+ for OwnerElement.IsRooted to fix the build..
+
+2003-07-26 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlDocumentType.cs :
+ modified private DTD to dtd and added internal DTD (the same thing).
+ * XmlElement.cs :
+ Fixed SetAttributeNode() to check if specified attribute is already
+ set to the other element. In fact it is W3C DOM's specification but
+ MS.NET 1.0 failed to catch it.
+ * XmlTextReader.cs :
+ ReadAttributeValue() should check if the value of the attribute is
+ already read when the whole value is entity reference.
+ Also, Name of text nodes should be "", not "#text"
+
+2003-07-26 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlAttribute.cs : .ctor() shouldallow localName "xml" (not prefix)
+ with http://www.w3.org/XML/1998/namespace.
+ * XmlEntity.cs : patch by Aleksey Sanin. InnerText is now supported.
+ * XmlNode.cs : InnerText should handle CDATA and whitespaces.
+ * XmlTextReader.cs : Should allow " (#PCDATA)* " in ReadContentSpec().
+ * XmlTextWriter.cs : Quick fix for accepting (and writing) same-named
+ attributes (as MS.NET does). It isn't good way and I may change it.
+
+2003-07-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DTDObjectModel.cs : Added DTDEntityDeclarationCollection and
+ DTDNotationDeclarationCollection and replaced Hashtables with them.
+ Added NormalizedDefaultValue property for DTDAttributeDefinition.
+ * DTDValidatingReader.cs :
+ - It now reads attribute values into value collection.
+ - Renamed consumedDefaultAttribute to consumedAttribute, and
+ inContent to insideContent.
+ - GetAttribute() should allow reader's other node state than element.
+ - MoveToNextAttribute() should move when reader is placed other than
+ the first attribute.
+ - HandleError() now supports ValidationType.None (i.e. does nothing).
+ - ValidateAttribute() now collects and resolves attribute value
+ entity references. (On the other hand, it doesn't support
+ EntityHandling.ExpandCharEntity.)
+ - NodeType shouldn't return Attribute after ReadAttributeValue().
+ Now only Text is supported, but must also support EntityReference.
+ - Add FilterNormalization() and partially support Normalization.
+
+2003-07-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlTextReader.cs :
+ Read() now handles parser context stuff (BaseURI, XmlLang and
+ XmlSpace) correctly for an empty element.
+ Normalization property now doesn't throw an error. Will be used soon.
+ * XmlValidatingReader.cs : added ValidationType.None support (wait for
+ the next DTDValidatingReader update for "not firing event handler).
+ * XmlNodeReader.cs : jun. 30th commit seems wrong. It keeps its state.
+
+2003-07-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DTDValidatingReader.cs :
+ changed base class to XmlReader and implemented IXmlLineInfo members.
+ changed .ctor() argument from event handler to validating reader.
+ Removed some #if ... #else ... #endif blocks.
+ Added validation event support for Read() using HandleError().
+ * XmlValidatingReader.cs : added internal OnValidationEvent().
+ * XmlDocument.cs : ReadNode() now checks reader's state more strictly.
+
+2003-07-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlUrlResolver.cs : applied BenM's patch for file uri problem
+ (bug #46610).
+
+2003-07-15 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DTDValidatingReader.cs :
+ added DTDObjectModel support for non-XmlTextReader XmlReader
+ e.g. XmlNodeReader (Read() method).
+ * XmlDocument.cs :
+ added internal CreateDocumentType(XmlTextReader) and moved
+ ReadDoctypeNode() to XmlDocumentType.ImportFromDTD().
+ * XmlDocumentType.cs :
+ added internal .ctor(XmlTextReader, document) and ImportFromDTD().
+ * XmlTextReader.cs :
+ Renamed useSbForVal (valueBuilderAvailable), valSb (valueBuilder)
+ and currentSubset (DTD).
+ Added GenerateDTDObjectModel() (for independent doctype parsing).
+
+2003-07-15 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlAttribute.cs :
+ .ctor() should reject xml- or xmlns-prefixed node.
+ * XmlNamespaceManager.cs :
+ added some xmlns validity check.
+ * XmlNode.cs :
+ optimized GetNamespaceOfPrefix() and GetPrefixOfNamespace() by
+ avoiding XmlNamespaceManager creation.
+ * XmlNodeReader.cs :
+ doctype node should return PUBLIC and SYSTEM for its indexer,
+ and Value should be internal subset,
+
+2003-07-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * DTDObjectModel.cs,
+ DTDValidatingReader.cs : Completely rewrote attribute handling.
+
+2003-07-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlAttribute.cs,
+ XmlElement.cs : Fixed CloneNode() for bug #46129.
+ * XmlDocument.cs : Fixed MakeReaderErrorMessage that specified invalid
+ String.Format arguments, and basically XmlException.ctor(
+ IXmlLineInfo, message) seems good idea to use.
+ * XmlTextReader.cs :
+ - Fixed .ctor(Stream, XmlNodeType, XmlParserContext) which had
+ required non-null context which don't have to exist.
+ - Added state check. Introduced 'currentState' and 'maybeTextDecl'
+ (for external entity) and removed hasEnteredDocument. Added
+ state-check logic to ReadStartTag(), ReadEndTag(), ReadText(),
+ ReadCData(), ReadDoctypeDecl() and ReadWhitespace().
+ - Replaced throw ReaderError() with throw new XmlException() and
+ fixed that some error hadn't thrown, only created.
+ - ResetState() should re-initialize existing private members other
+ than some specified fields.
+ - Private AddAttribute() should check if the same-named attribute
+ already exists.
+ * DTDObjectModel.cs : Additive declaration for ATTLIST is availabe now.
+
+2003-07-09 Lluis Sanchez Gual <lluis@ximian.com>
+
+ * XmlTextReader.cs : Implemented ResetState() method.
+
+2003-07-06 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlElement.cs : IsEmpty has removed attributes since it incorrectly
+ used RemoveAll().
+
+2003-07-06 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlDocument.cs : Load(string filename) should close its stream.
+ Small change for the latest DTDObjectModel change.
+ * XmlTextReader.cs : Changed for the latest DTDObjectModel change (all
+ changed methods are only related to DTD stuff).
+ Now uses XmlSchemaDatatype for attribute type definition.
+ * XmlValidatingReader : initial (limited) support for DTD validation.
+ It can handle only XmlTextReader.
+ * DTDObjectModel.cs : changed radically for initial validation support.
+ * added DTDAutomata.cs and DTDValidatingReader.cs.
+
+2003-07-06 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlElement.cs : Removed extraneous xmlns output support (it should
+ be done by XmlTextWriter).
+ * XmlNode.cs : InsertBefore() now checks validity of the newChild (and
+ most of the changes are in fact indentation changes).
+ * XmlWriter.cs : WriteAttributes() now can write entity references.
+ WriteNode() now writes xmldecl attributes correctly.
+ Removed namespaceManager and xmlns check logic, since it should be
+ done by individual XmlTextWriter.
+ * XmlTextWriter.cs : Patch by Jerome. AddMissingElementXmlns () has
+ written multiple xmlns declarations.
+ Moved namespaceManager from abstract XmlWriter.
+ Write{Start|End}Attribute() and WriteString() now checks xmlns
+ attribute value. (MS.NET holds value only with this write method).
+
+2003-07-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlDocument.cs : removed xmlReader.Close() from Load(XmlReader).
+
+2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlDocumentNavigator.cs : Implemented MoveTo*Namespace() and
+ essentially changed most of the property handling (e.g. removed attribute
+ enumerator and it now became really cloneable).
+ * XmlNodeReader.cs : ReadInnerXml() changes its state as error
+ when the method is called at Initial state.
+
+2003-06-25 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlDocumentNavigator.cs : Fixed IsEmptyElement. It treats <foo></foo>
+ as non-empty, and XmlElement's IsEmpty is designed as such.
+ Fixed MoveToFirst() and MoveToNext() not to move to xmldecl nor
+ doctype node.
+ * XmlNode.cs : Fixed XPathNodeType. It should throw an exception
+ instead of returning undefined enum value.
+ Modified some code comments.
+ * XmlWriter.cs : Fixed WriteNode () to use WriteFullEndElement()
+ when XmlReader's node is not at empty element or at EndElement.
+ Fixed XmlDeclaration's standalone check.
+
+2003-06-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlTextReader.cs : removed CRLFs. Fixed private InitializeContext()
+ to use known Uri way (used in XmlUrlResolver) instead of UriBuilder.
+
+2003-06-20 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
+
+ * XmlInputStream.cs : quick fix for public ctor() BaseURI bug.
+
+2003-06-20 Ben Maurer <bmaurer@users.sourceforge.net>
+
+ * XmlTextReader.cs: Reduces memory allocation when the reader is
+ not queried for some values.
+ * NameTable.cs: Now uses a custom hashtable to implement. As a
+ result, when Get (char[], int, int) is called, a string is only
+ allocated if it is actually a new entry.
+ (StrEqArray) Compares a string and a char[]
+ (AddEntry) Adds a new entry to the hashtable
+ (Entry) Represents a hashtable entry.
+
2003-06-20 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
* XmlUrlResolver.cs : several ResolveUri() fix. e.g. for external URIs.
* XmlQualifiedName.cs: Fixed compile errors so it would build. Still has
MonoTODO's
-