2005-11-17 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.XML / Mono.Xml.Xsl / ChangeLog
index a80a2a91cddaaeb3af70cc2a65a7bba0336cb9ab..c6a8dde81fdb5411c5b14cc9f4e2972a36a0b44b 100644 (file)
@@ -1,4 +1,292 @@
-2005-02-16  Atsushi Enomoto <atsushi@ximian.com>
+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().