2009-01-30  Atsushi Enomoto  <atsushi@ximian.com>

	* XsdValidatingReader.cs : when xsi:nil is true, do not validate
	  text string.

2009-01-30  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlSchemaValidatingReader.cs : implement IHasXmlParserContext to
	  pass possible DTD information.

2008-12-09  Atsushi Enomoto  <atsushi@ximian.com>

	* XsdValidatingReader.cs : skip text validation under xs:any.
	  Fixed part of bug #449512.

2008-10-28  Atsushi Enomoto  <atsushi@ximian.com>

	* XmlSchemaValidatingReader.cs : use internal attribute datatype
	  information in XmlSchemaValidator. It is due to LAMESPEC.

2008-10-28  Atsushi Enomoto <atsushi@ximian.com>

	* XsdIdentityState.cs : rename.

2008-10-27  Atsushi Enomoto <atsushi@ximian.com>

	* XmlSchemaValidatingReader.cs : give SourceUri to
	  XmlSchemaValidator, which used to be impossible in 2.0 betas.

2008-09-02  Atsushi Enomoto <atsushi@ximian.com>

	* XmlSchemaValidatingReader.cs : call EndValidation() only once.
	  Fixed a bug additionally reported to #324606 (but wrong to attach).

2008-04-02  Atsushi Enomoto <atsushi@ximian.com>

	* XsdParticleValidationState.cs : a choice with only empty particle
	  children is emptiable. Fixed bug #376395.

2008-02-19  Atsushi Enomoto <atsushi@ximian.com>

	* XsdWildcard.cs : block extra compilation and made compilation reset.
	  This somehow fixed bug #360541.

2007-10-31  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : r68046 didn't really fix the issue.
	  Enabled the actual fix. and fixed bug #336625.

2007-07-25  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : reject more whitespaces in empty model
	  element.

2007-07-17  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : Process empty and element-only contents
	  differently along with the spec 3.4.4 Element Locally Valid (Complex 
	  Type) 2.3 (and 2.1 respectively). Itchy specification indeed.
	  This demanded not a few internal changes. Fixed bug #82099.

2007-04-27  Atsushi Enomoto <atsushi@ximian.com>

	* XmlSchemaValidatingReader.cs : nsResolver field must be initialized.
	  Fixed bug #81460.

2006-11-17  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : when ValidationType is None, it does not
	  load external schemas. Fixed bug #79924.

2006-11-14  Atsushi Enomoto <atsushi@ximian.com>

	* XmlSchemaValidatingReader.cs : dispatch validation events from
	  XmlReaderSettings. Turned out that outside System.Xml.dll
	  XmlReaderSettings.ValidationEventHandler is useless.

2006-10-27  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : Fixed bug #79650. Enumeration facet was
	  not validated for attributes. Also, simple type restriction should
	  require namespace manager to resolve QNames.

2006-08-04  Atsushi Enomoto <atsushi@ximian.com>

	* XsdIdentityState.cs : Fixed bug #78985. If there are two identical
	  field path "@key" in two different keys where one is in scope
	  within another, it incorrectly matched the attribute whose name
	  is same but in different element hierarchy (depth).

2006-04-12  Atsushi Enomoto <atsushi@ximian.com>

	* XmlSchemaValidatingReader.cs : don't reject such XmlReader that
	  does not implement IXmlNamespaceResolver.

2006-02-20  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : when DTD did not appear in 
	  DTDValidatingReader, it almost makes no sense to use it, so just
	  use its internal EntityResolvingXmlReader (it is required to
	  detect "undeclared entity in use" well-formedness violation).
	  It could double processing speed (or more).

2006-01-13  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : whitespace nodes should be allowed inside
	  empty or element-only content types. Fixed bug #77241.

2006-01-11  Atsushi Enomoto <atsushi@ximian.com>

	* XmlSchemaValidatingReader.cs : removed unused constructors.
	  Now it implements IXmlSchemaInfo. Use XmlSchemaType instead of
	  Object to represent schema types.

2006-01-06  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs :
	  Don't use normalized string as input to AssessStringValid(). It 
	  incorrectly invalidates strings against simple types with length-
	  related facets.
	  Now that we don't ignore whitespaces, we need to explicitly allow
	  pure whitespace texts in ElementOnly/Empty model.

2005-12-26  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : Fixed the bug that only the last schema
	  URL in a schemaLocation was processed. Patch by Vorobiev Maksim.

2005-12-12  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : it is not IXmlNamespaceResolver anymore.

2005-11-07  Atsushi Enomoto <atsushi@ximian.com>

	* XmlSchemaValidatingReader.cs : XmlSchemaValidationFlags is updated.

2005-11-07  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs, XmlSchemaValidatingReader.cs,
	  XsdIdentityState.cs :
	  Dependent changes caused by XmlValueGetter changes.

2005-11-07  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : XmlReader.ReadTypedValue() does not exist 
	  anymore, so it is not override.

2005-09-30  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs: make ParserContext and its NamespaceManager
	  optional. This is for NVDL xsd support.

2005-09-30  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs: allow validation for such XmlReader whose
	  ReadState is Interactive (hold different "is started" flag). This
	  is a fix for nvdl support.

2005-09-25  Atsushi Enomoto <atsushi@ximian.com>

	* XmlSchemaValidatingReader.cs: XmlSchemaValidationFlags updates.

2005-08-03  Gert Driesen <drieseng@users.sourceforge.net>

	* XsdValidationReader.cs: GetNamespacesInScope returns generic
	IDictionary in .NET 2.0 Beta 2.
	* XmlSchemaValidatingReader.cs: GetNamespacesInScope returns generic
	IDictionary in .NET 2.0 Beta 2.

2005-07-28  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : when xsi:schemaLocation could not be
	  resolved, it still does not raise error when corresponding schema
	  already exists.

2005-05-05  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs :
	  removed atomicName related 2.0 members (deprecated in beta2).

2005-03-22  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : removed unused method which was warned.

2004-12-22  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : XmlResolver.ResolveUri() may return null.

2004-12-16  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : added ActualSchemaType to context type.
	* XmlSchemaValidatingReader.cs : added SchemaInfo override.

2004-12-16  Atsushi Enomoto <atsushi@ximian.com>

	* XsdParticleValidationState.cs :
	  Removed some unused or unnecessary members. Readonlify some members.
	  Added GetExpectedParticles(ArrayList) and overriden in all state
	  types, which is used in XmlSchemaValidator.GetExpectedParticles().

2004-12-15  Atsushi Enomoto <atsushi@ximian.com>

	* XmlSchemaValidatingReader.cs : xsi:* attributes are now handled via
	  XmlSchemaValidator.ValidateElement().
	  Removed some obsolete overrides.

2004-12-14  Atsushi Enomoto <atsushi@ximian.com>

	* XmlSchemaValidatingReader.cs : new file; another XmlReader 
	  implementation that handles XSD validation. It is an reference
	  application for XmlSchemaValidator.
	* XsdValidatingReader.cs : Use readerLineInfo for IXmlLineInfo.

2004-12-14  Atsushi Enomoto <atsushi@ximian.com>

	* XsdIdentityState.cs : use validation exception for 2.0.
	  ProcessMatch() does not have to return bool. Use break and continue
	  and reduced indentation.
	* XsdValidatingReader.cs : use validation exception for 2.0.
	  Added new XsdIDManager class and id handling is delegated to it.
	  XmlQualifiedName -> QName. AssessElementLocallyValidElement() does
	  not need XmlSchemaElement (it is context). Moved some static
	  methods to XmlSchemaUtil.cs. Collected key constraints stuff to a
	  region.

2004-12-13  Atsushi Enomoto <atsushi@ximian.com>

	* XsdKeyTable.cs : eliminated XmlReader dependency.
	* XsdValidatingReader.cs :
	  AssertIdentityConstraints() is now splited to selector validation
	  and field validation. Extracted EndKeyrefValidation() to process
	  keyref constraints.
	  Added ReadExternalSchema() and commonized xsi:schemaLocation
	  handling and xsi:noNamespaceSchemaLocation handling.
	* XsdIdentityState.cs :
	  Eliminated XsdValidatingReader dependency.
	  In XsdKeyEntryField, renamed KeySequence to OwnerSequence.
	  XsdKeyEntryFieldCollection is now based on CollectionBase.
	  In XsdKeyEntry, FieldMatches() is renamed to ProcessMatch() and
	  modified to accept splited XsdValidatingReader members.
	* XsdIdentityPath.cs : added default .ctor() and IsAttribute property.

2004-12-13  Atsushi Enomoto <atsushi@ximian.com>

	* XsdIdentityState.cs,
	  XsdIdentityPath.cs,
	  XsdKeyTable.cs : fixed mixed line ending.

2004-12-11  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs,
	  XsdIdentityState.cs : more refactoring.
	  Reduced XmlReader dependency in identity constraint classes.
	  Hide State in XsdValidationContext.
	  Simplify character validation and state resetting.
	  Need more event deligation on ExamineAdditionalSchema().
	  Just cache attribute type directly instead of QName.
	  Use XmlSchemaUtil.ReadTypedValue() common code.

2004-12-09  Atsushi Enomoto <atsushi@ximian.com>

	* XsdKeyTable.cs :
	  Replaced ArrayList with new XsdKeyEntryCollection type.
	  Workarounded bug #70419.
	* XsdValidatingReader.cs : propagate validation event handler and
	  XmlResolver. And used them.
	  Renamed local variables a bit (unified to other blocks).

2004-12-09  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs,
	  XsdParticleValidationState.cs : Fixed the previous problem ==
	  inconsistent start assessment and end assessment.
	  More refactory: stateManager is just renamed to state, and its type
	  name is now XsdParticleStateManager.
	  Now Context is included in state.
	  Shortened lengthy xsd related type names with usingdecl.

2004-12-09  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : mhm, something is wrong with call to
	  context.PopScope(). So quick fix and marked as FIXME.

2004-12-09  Atsushi Enomoto <atsushi@ximian.com>

	* XsdParticleValidationState.cs : removed unused enum.
	* XsdValidatingReader.cs : more refactoring. Validation process is
	  now strictly done only when not skipping (no side effect).
	  - elementQnameStack is used only in keyref resolution, so just moved
	    Pop() into EndElement block and thus removed popContext.
	  - Renamed currentQName to attrQName (only used for attribute).
	  - Create defaultAttributes array only when required.
	  So now XsdValidationContext has only Element, State and XsiType.
	  - It now just holds Stack for state objects (instead of Hashtable).
	    Child state is set inside StartElementSchemaValidity (it is kind
	    of StartTagCloseDeriv()).
	  - Removed Clear().

2004-12-09  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : more refactoring on XsdValidationContext.
	  context.Load() was unnecessary. SchemaType is not necessary.
	  SiblingState and Element are now not accessed externally.

2004-12-09  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : more refactoring.

2004-12-08  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : making smarter relationship between
	  XmlValidatingReader. Added ValidationEventHandler and ValidationType.
	  nonDefaultAttributeCount was extraneous.
	  Added 'checkIdentity' (i.e. !IgnoreIdentityConstraints).
	  DefaultAttributesCache property did make little sense, so just
	  reverted to ArrayList field.

2004-11-26  Atsushi Enomoto  <atsushi@ximian.com>

	* XsdValidatingReader.cs : warning elimination

2004-11-24  Atsushi Enomoto  <atsushi@ximian.com>

	* XsdValidatingReader.cs : commented out some fields and depending
	  code that are currently not used.
	  Fixed "one incorrect missing component handling" in the last commit
	  (it was correct).
	* XsdIdentityState.cs : removed unused fields and local variables.

2004-11-20  Atsushi Enomoto  <atsushi@ximian.com>

	* XsdValidatingReader.cs : quick fix for bug #69620. In some cases
	  SchemaSet looks not compiled.
	  Fixed one incorrect missing component handling.

2004-11-08  Atsushi Enomoto  <atsushi@ximian.com>

	* XsdValidatingReader.cs : reuse NameTable on loading external schema.

2004-11-07  Atsushi Enomoto  <atsushi@ximian.com>

	* XsdValidatingReader.cs : optimized some ArrayList fields; create them
	  only when required.

2004-08-20  Atsushi Enomoto  <atsushi@ximian.com>

	* XsdValidatingReader.cs : ReadTypedValue() is override under 2_0.

2004-08-10  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : replaced XmlSchemaCollection with
	  XmlSchemaSet. Removed unused code.

2004-08-03  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : implemented 2.0 IXmlNamespaceResolver.

2004-06-18  Atsushi Enomoto <atsushi@ximian.com>

	* XsdIdentityPath.cs : removed unused code.
	* XsdIdentityState.cs : Globalization.

2004-06-11  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : Identity check didn't work fine when
	  reference node appeared in front of the target key node.
	  This fixes bug #59889.

2004-06-06  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : Close XmlTextReader more strictly. Exception
	  might be thrown in ctor() *after* stream open and before try-catch.

2004-06-03  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : XmlNamespaceManager.LookupPrefix() allows
	  only atomized names.

2004-02-16  Atsushi Enomoto <atsushi@ximian.com>

	* XsdIdentityPath.cs,
	  XsdIdentityState.cs,
	  XsdKeyTable.cs,
	  XsdParticleValidationState.cs,
	  XsdValidatingReader.cs,
	  XsdWildcard.cs : made classes internal. Removed extra TODO comments.

2004-02-08  Atsushi Enomoto <atsushi@ximian.com>

	* XsdIdentityState.cs,
	  XsdKeyTable.cs,
	  XsdParticleValidationState.cs,
	  XsdValidatingReader.cs,
	  XsdWildcard.cs : foreach elimination.

2004-02-04  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : When the reader points at XmlDeclaration,
	  AttributeCount counts its values (version, encoding, standalone).

2004-02-03  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : schemaLocation is not NMTOKENS. It is list
	  of anyURI. Just split names and handle as anyURI.

2004-01-26  Atsushi Enomoto <atsushi@ximian.com>

	* XsdParticleValidationState.cs :
	  - Now it uses ContentTypeParticle as inputs, so no GroupRef 
	    should occur anymore.
	  - xs:any should use ResolvedProcessContents. It fixes some errors.
	* XsdValidatingReader.cs :
	  - Attribute wildcard validation should use ResolvedProcessContents.
	  - Use newly added XmlResolver field to resolve external schemas
	    specified by xsi:schemaLocation attributes.
	  - Added warning handler and raise warning events when instance-
	    specified schemas could not be resolved.
	  - xs:anyType should not be treated as a primitive datatype at
	    xsi:type resolution.
	  - Schema type was incorrectly remained when the element is laxly
	    validated.

2004-01-21  Atsushi Enomoto <atsushi@ximian.com>

	* XsdKeyTable.cs : Matching evaluation is incorrect when path is more
	  than depth 2.
	* XsdValidatingReader.cs : Should clear LocalTypeDefinition when no
	  xsi:type was specified.  
	  Moved character validation inside AssessEndElementSchemaValidity().

2004-01-20  Atsushi Enomoto <atsushi@ximian.com>

	* XsdParticleValidationState.cs : Use ValidatedMaxOccurs instead of
	  MaxOccurs. (in the meantime)
	* XsdValidatingReader.cs : "fixed" should not be treated as default.
	* XsdWildcard.cs : several Wildcard Subset constraint related fixes.

2004-01-15  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : Now use ValidatableParticle instead of
	  ContentTypeParticle.  Use BaseXmlSchemaType.

2004-01-14  Atsushi Enomoto <atsushi@ximian.com>

	* XsdIdentityState.cs :
	  Now takes xsi:nil value into consideration for comparison.
	  nsname:* was not handled correctly.
	  Reject complexType as key value type (it is dynamic instance error).
	* XsdKeyTable.cs : remoed unused code.
	* XsdValidatingReader.cs :
	  ID comparison was not done.
	  {final} value of attribute definition was not used for default value.
	  Get xsi:nil value from non-default value.

2004-01-13  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs :
	  Dependent change with XmlSchemaElement internal property.

2004-01-13  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : Throw exception only in case of errors.

2004-01-08  Lluis Sanchez Gual  <lluis@ximian.com>

	* XsdValidatingReader.cs: In MoveToAttribute(name), if "name" is a default
	attribute, search for the attribute ignoring the namespace. This matches
	MS.NET behavior (and fixes bug #52557).

2004-01-08  Atsushi Enomoto <atsushi@ximian.com>

	* XsdValidatingReader.cs : Fixed in reflection to 
	  XmlSchemaObjectTableGetEnumerator.Value change.

2004-01-08  Nick Drochak <ndrochak@ieee.org>

	* XsdParticleValidationState.cs: Remove unreachable code.

2003-12-18  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>

	* XsdValidatingReader.cs : When source Reader has schema context, it
	  should return source's schema type if this class cannot provide it.

2003-12-08  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>

	* XsdValidatingReader.cs : patch by David Sheldon. Base type's facet 
	  validation should also be done.

2003-12-07  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>

	* XsdValidatingReader.cs : FindElement() should use argument names
	  (patch by David Sheldon).  Warning elimination.

2003-10-26  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>

	* XsdValidatingReader.cs : xsi:type should be normalized. More cleanup.
	* XsdParticleValidationState.cs : Reverted default content processing
	  to lax. It is msxsdtest/wildCard/wildG038.xsd which looks incorrect.

2003-10-25  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>

	* XsdValidatingReader.cs : Removed MonoTODO which was implemented in
	  XmlValidatingreader as a result. Added xsi:nil normalization.

2003-10-23  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>

	* XsdParticleValidationState.cs : Default content processing shoule be
	  lax.
	* XsdValidatingReader.cs : If there is no trial to get schemas for
	  namespaces, then validation against such namespace should be failed.
	  It now uses XmlSchemaAttribute.ValidatedUse instead of .Use.
	* XsdWildcard.cs : Fixed incorrect intersection computing.

2003-10-21  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>

	* XsdKeyTable.cs : Reduced compilation warning.
	* XsdParticleValidationState.cs : Reduced NotImplementedException.
	* XsdValidatingReader.cs : Removed XmlResolver. Implemented more simple
	  type validation, such as list, union and facets.

2003-09-30  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>

	* added XsdIdentityPath.cs, XsdIdentityState.cs, XsdKeyTable.cs
	  and XsdWildcard.cs.
	* XsdParticleValidationState.cs, XsdValidatingReader.cs:
	  Completely rewrote existing validation engine.

2003-08-24  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>

	* XsdValidatingReader.cs,
	  XsdParticleValidationState.cs : Initial checkin.
