+2005-11-17 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslCompiledContext.cs : since XsltContextInfo is struct, having
+ an array of this type and setting fields of each struct didn't
+ make sense. It thus blocked expected PreserveWhitespace behavior.
+
+2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Compiler.cs : (FromString(s, hashtable)) pull default namespace
+ from the table for LRE (don't consider it as ""; spec. 7.1.2)
+ Fixed bug #76530.
+
+2005-09-16 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ScriptCompilerInfo.cs : Compile correct replacement result.
+ Fixed bug #76116.
+
+2005-09-10 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Compiler.cs : (Compile) check children only when it is the document
+ element. Fixed bug #76046.
+
+2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ScriptCompilerInfo.cs : It should not be "#line" when the source is
+ not C#. It should fix bug #75789.
+
+2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
+ To minimize attribute iteration, use Pattern.EvaluatedNodeType.
+ Fixed bug #75709.
+
+2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslFunctions.cs : XslTransform recovers from errors on document
+ resolution. Fixed bug #75663.
+
+2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
+
+ * HtmlEmitter.cs : Boolean attribute values should be omitted, but
+ only for related elements.
+
+2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
+
+ * MSXslScriptManager.cs : it should ignore compiler warnings. This
+ fixes bug #74859.
+
+2005-04-07 Andrew Skiba <andrews@mainsoft.com>
+
+ * XslDecimalFormat.jvm.cs : added
+
+2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
+
+ * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
+ support CodeDom). Use Guid.ToString("N").
+
+2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Compiler.cs : removed extraneous using_directive.
+
+2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslKey.cs : the iterator does not require sorting (already sorted).
+ Removed unused code.
+
+2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslStylesheet.cs :
+ Variables are stored per stylesheet and added to compiler after
+ all of the contents are processed (handle import precedence).
+ Imports are now processed in prior to other contents (incorrect
+ imports are now rejected). After imports, process includes to
+ process nested imports. In-process included stylesheets are
+ temporarily stored in including stylesheet.
+ Handle keys like variables are handled.
+ Added Compile() that is splitted from .ctor().
+ * Compiler.cs :
+ Store keys in compiler and compiled stylesheet.
+ Duplicate variables in imports are now overriden as expected.
+ * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
+
+2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslTransformProcessor.cs : now it looks safe to remove SetContext()
+ from each EvaluateXXX() methods.
+ * MsxslScriptManager.cs : not to leave reference to stylesheet
+ navigator, pass current node to Compile().
+ * XslCompiledContext.cs : Added GetNavCache() that returns reusable
+ navigator cache for each pattern, to avoid Clone() and not to leave
+ reference to already-done instance navigator.
+
+2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
+ * XslKey.cs : Use XSLT pattern parser for match.
+ UsePattern is now "Use" (it is not a pattern).
+ Reimplemented Evaluate() to make full use of index table.
+ Added Matches() to handle shorter match evaluation. For const value
+ for key (e.g. key patterns), it could avoid Evaluate().
+ * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
+ new KeyIndexTable.Matches().
+ * XslFunctions.cs : Added PatternMatches() that just delegates to new
+ XsltCompiledContext.MatchesKey().
+
+2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
+
+ * GenericOutputter.cs : commented out warned fields.
+
+2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslKey.cs : removed last ListIterator.ctor() argument.
+ Reverted the last commit that changed internal key index change
+ from ArrayList to Hashtable. Avoid clone in CollectIndex().
+ Sort results in Evaluate() before passing list to ListIterator.
+ * XslFunctions.cs : removed last ListIterator.ctor() argument.
+
+2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslKey.cs,
+ XsltCompiledContext.cs,
+ XslFunctions.cs,
+ XslTransformProcessor.cs : Now dynamic context key index table is
+ separate from XslKey static context. Added KeyIndexTable class and
+ store it into XsltCompiledContext with hash name-table mapping.
+ Cache map from statically-named key to index table.
+ Use Hashtable for internal key cache instead of ArrayList.
+
+2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslKey.cs : fixed node iteration on collecting key indices which
+ could have resulted in an infinite loop.
+
+2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslDecimalFormat.cs : in some cases it does not throw format
+ exception.
+
+2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XsltCompiledContext.cs,
+ XslStylesheet.cs : Fixed significant performance loss on whitespace
+ handling.
+
+2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslKey.cs : removed unused NeedAbsoluteMatching.
+ * XslFunctions.cs : Added Peer (for peer & subtree optimization).
+ Added some missing ToString() overrides.
+
+2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
+ to work fine with xsl:*-space attributes as expected.
+ * XslTransformProcessor.cs : PreserveWhitespace() in this file is
+ actually nothing. It should not use XsltContext.PreserveWhitespace()
+ because this method is used to control output, while the referenced
+ method is used to control source document.
+
+2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslTemplate.cs : First non-element content were incorrectly ignored.
+
+2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
+ to reduce references to stylesheet XPathNavigator. To accomplish it,
+ IStaticXsltContext does not declare GetNsm() anymore. All xslt
+ function types now directly hold IStaticXsltContext.
+ * XslStylesheet.cs : removed "Compiler c" field.
+ Removed unused properties.
+
+2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * GenericOutputter.cs : When WriteStartElement() requires to add
+ new namespace declaration, _currentNamespaceDecls needs to be set.
+
+2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * GenericOutputter.cs : for duplicate attribute in an element, no need
+ to keep previous prefix.
+
+2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
+ namespace. Rewrite prefix only when there is non-empty namespace.
+
+2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslStylesheet.cs : Now namespace aliases are collected in prior to
+ all other toplevel elements. Removed unused code.
+
+2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
+
+ * GenericOutputter.cs : compute attribute prefix only when actual
+ emission. Fixed some cases that namespace output was missing.
+
+2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
+
+ * GenericOutputter.cs : no need to use two collections to store
+ pending attributes. Just use ordered ListDictionary.
+ newNamespace.Add(int) causes extraneous boxing.
+
+2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
+ OutputLiteralNamespaceUriNodes() so that everyone can understand
+ what it means and when it should be invoked.
+
+2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Compiler.cs : added another CompileTemplateContent() which is
+ requred in xsl:for-each. Commented out unused method.
+
+2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
+ in stylesheet should be considered in TryElementNamespacesOutput().
+ ParseQNameListAttribute() is not properly working for filling
+ namespaces.
+
+2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslStylesheet.cs : included stylesheet could be literal result
+ element as stylesheet (see the spec 2.6.1).
+
+2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
+
+ * GenericOutputter.cs : On WriteStartElement(), prefix should be an
+ empty string when nsURI is empty.
+ * HtmlEmitter.cs : non-HTML elements in default namespace are treated
+ unlike xml but like span, as written in the spec 16.2.
+
+2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslCompiledContext.cs, XslTransformProcessor.cs :
+ According to errata E25, those namespaces 1) that has the same
+ name as current element's prefix, or an empty name when current
+ element's namespace URI is empty, are not written to output.
+ So added current element information to XPathContext and added
+ prefix parameter to PushElementState(), added xsl:copy check to
+ TryElementNamespacesOutput().
+ http://www.w3.org/1999/11/REC-xslt-19991116-errata/
+
+2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
+ instead of BaseURI.
+
+2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslTemplate.cs : According to the spec 5.7, it is an error for
+ xsl:template to have 'mode' without 'match'.
+
+2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Compiler.cs : added ns lookup with nsDecls Hashtable.
+
+2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslStylesheet.cs : It should consider "#default" in namespace-alias.
+
+2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
+
+ * GenericOutputter.cs : It should not attempt to write prefix "xml" and
+ namespace "http://www.w3.org/XML/1998/namespace".
+
+2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
+ * HtmlEmitter.cs : CDATA nodes are written just as text.
+ * GenericOutputter.cs : custom format are treated just as XML output.
+
+2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Outputter.cs,
+ TextOutputter.cs,
+ GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
+ and WriteState. Writing XML declaration is done inside
+ DetermineOutputMethod().
+
+2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Compiler.cs : reverted previous fix, since it should be done
+ in XslTransformProcessor with root stylesheet.
+ * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
+ don't output alias namespaces. And now consider null exclusions.
+
+2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
+
+2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Compiler.cs : GetNamespacesToCopy() should also find for non-local
+ namespace nodes. Patch by Andrew Skiba with some fixes.
+ * XslTransformProcessor.cs : Patch by Andrew Skiba.
+ TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
+ as to handle all namespace nodes to copy in stylesheet nodes.
+ Global parameterss are evaluated before global variables.
+ * XmlOutputter.cs : removed unused code.
+
+ Pending items:
+
+ * Actually variables and params should check reference recursion.
+ This patch incompletely fixes the problem.
+ * Those operations that considers excluded-result-prefixes must
+ also check those attributes of its ancestors.
+
+2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlWriterEmitter.cs : String.Replace() was insufficient for
+ sequential candidates for replacement. Patch by Andrew Skiba.
+
+2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
+
+ * GenericOutputter.cs : don't output extraneous xml declaration.
+ fix by Andrew Skiba.
+
+2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslStylesheet.cs : MS implementation had chosen to recover from
+ the error, in the way specified in the spec 7.7.1. Patch by Andrew
+ Skiba.
+
+2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslTemplate.cs : if input is literal result element, it could result
+ in ArgumentException. Patch by Andrew Skiba.
+
+2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
+ NullReferenceException. Patch by Andrew Skiba.
+
+2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslOutput.cs : MS.NET recovers from unknown encoding according to
+ XSLT spec 16.1. Patch by Andrew Skiba.
+
+2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * HtmlEmitter.cs : patch by Andrew Skiba.
+ Remove extra element prefix output. simplify attribute prefix output.
+ Attribute output might have resulted in invalid element stack peek.
+ Output specified media type if any.
+
+2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Compiler.cs : Patch by Andrew Skiba.
+ wrap internal exception with XsltCompileException.
+ Raise an error for not-found document URI.
+ QName might contain sequential whitespaces and thus could be empty.
+
+2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslAttributeSet.cs : just ignore other kind of nodes than element
+ in its content. Fix by Andrew Skiba.
+
+2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslOutput.cs : for html and text output mode, just set internal
+ omitXmlDeclaration status true. Patch by Andrew Skiba.
+
+2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslFunctions.cs : fixed line ending mixture.
+
+2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
+ to make test pass.
+
+2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslFunction.cs,
+ Compiler.cs : XmlResolver.ResolveUri() may return null.
+
+2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
+ make sense here.
+
+2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
+
+2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
+ warning elimination.
+
+2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XslStylesheet.cs : removed unused fields.
+ * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
+ this class).
+
+2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Compiler.cs, XslTransformProcessor.cs :
+ when creating XmlTextReader, reuse XmlNameTable.
+
+2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Compiler.cs : Changes that reflects CompiledExpression changes.
+
2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
* HtmlEmitter.cs : TH tag is not regarded as HTML tag.