2006-01-13 Atsushi Enomoto * GenericOutputter.cs : When writing string, use WriteWhitespace() instead of WhiteString() when its state is not Content. This fixes BVTs_bvt066 case (broken after implementing strict state check in XmlTextWriter). 2005-12-24 Gert Driesen * XslOutput.cs: Do not report error for unknown value for "standalone" and "omit-xml-declaration" attributes, and extranous attributes if stylesheet version is not "1.0". 2005-12-24 Atsushi Enomoto * Compiler.cs : pass stylesheet version to XslOutput to determine "indent" value validity. * XslOutput.cs, HtmlEmitter.cs, GenericOutputter.cs : Reverted buggy changes on "indent" attribute handling. http://www.w3.org/TR/xslt#section-HTML-Output-Method 2005-12-23 Gert Driesen * XslOutput.cs: Reduced indentation of cases in switch statement. 2005-12-23 Gert Driesen * ScriptCompilerInfo.cs: Fixed line endings. * XslStylesheet.cs: Beautify error messages. * Debug.cs: Fixed line endings. * XslOutput.cs: Indent is now bool instead of string, use MoveToAttribute to navigate through attributes instead of using GetAttribute, as we also need to distinguish attributes with zero-length value from attributes that are not specified for correct implementation of DOCTYPE. Implemented validation for value of "omit-xml-declaration", "standalone" and "indent". We now throw a XsltCompileException for unknown attribute. * XmlWriterEmitter.cs: only skip WriteDocType is systemId is null. * HtmlEmitter.cs: XslOutput.Indent is now bool. Fixed WriteDocType to match MS.NET. * XmlDecimalFormat.cs: Beautify error messages. * XslTemplate.cs: Beautify error messages. * GenericOutputter.cs: XslOutput.Indent is now bool. * Compiler.cs: Beautify error messages. 2005-12-21 Atsushi Enomoto * XslTemplate.cs : don't check name and mode attributes on non-'xsl:template' element. This should fix bug #77051. 2005-12-13 Andrew Skiba * XslDecimalFormat.jvm.cs: set correct defaults for NaN and Infinity 2005-11-30 Atsushi Enomoto * ScriptCompilerInfo.cs : (VBCompilerInfo) There was a space between '#' and 'ExternalResource'. bug #75789 should be fixed. 2005-11-23 Vladimir Krasnov * XslKey.cs: fixed KeyIndexTable.Evaluate method, changed XPathNavigator given to GetNodesByValue() 2005-11-17 Atsushi Enomoto * 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 * 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 * ScriptCompilerInfo.cs : Compile correct replacement result. Fixed bug #76116. 2005-09-10 Atsushi Enomoto * Compiler.cs : (Compile) check children only when it is the document element. Fixed bug #76046. 2005-08-25 Atsushi Enomoto * ScriptCompilerInfo.cs : It should not be "#line" when the source is not C#. It should fix bug #75789. 2005-08-05 Atsushi Enomoto * 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 * XslFunctions.cs : XslTransform recovers from errors on document resolution. Fixed bug #75663. 2005-06-06 Atsushi Enomoto * HtmlEmitter.cs : Boolean attribute values should be omitted, but only for related elements. 2005-05-07 Atsushi Enomoto * MSXslScriptManager.cs : it should ignore compiler warnings. This fixes bug #74859. 2005-04-07 Andrew Skiba * XslDecimalFormat.jvm.cs : added 2005-03-31 Atsushi Enomoto * MSXslScriptManager.cs : added TARGET_JVM switch (that does not support CodeDom). Use Guid.ToString("N"). 2005-03-31 Atsushi Enomoto * Compiler.cs : removed extraneous using_directive. 2005-03-25 Atsushi Enomoto * XslKey.cs : the iterator does not require sorting (already sorted). Removed unused code. 2005-03-23 Atsushi Enomoto * 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 * 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 * 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 * GenericOutputter.cs : commented out warned fields. 2005-03-15 Atsushi Enomoto * 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 * 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 * XslKey.cs : fixed node iteration on collecting key indices which could have resulted in an infinite loop. 2005-03-14 Atsushi Enomoto * XslDecimalFormat.cs : in some cases it does not throw format exception. 2005-03-11 Atsushi Enomoto * XsltCompiledContext.cs, XslStylesheet.cs : Fixed significant performance loss on whitespace handling. 2005-03-11 Atsushi Enomoto * XslKey.cs : removed unused NeedAbsoluteMatching. * XslFunctions.cs : Added Peer (for peer & subtree optimization). Added some missing ToString() overrides. 2005-03-09 Atsushi Enomoto * 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 * XslTemplate.cs : First non-element content were incorrectly ignored. 2005-03-09 Atsushi Enomoto * 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 * GenericOutputter.cs : When WriteStartElement() requires to add new namespace declaration, _currentNamespaceDecls needs to be set. 2005-03-08 Atsushi Enomoto * GenericOutputter.cs : for duplicate attribute in an element, no need to keep previous prefix. 2005-03-08 Atsushi Enomoto * 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 * XslStylesheet.cs : Now namespace aliases are collected in prior to all other toplevel elements. Removed unused code. 2005-03-07 Atsushi Enomoto * GenericOutputter.cs : compute attribute prefix only when actual emission. Fixed some cases that namespace output was missing. 2005-03-07 Atsushi Enomoto * 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 * 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 * Compiler.cs : added another CompileTemplateContent() which is requred in xsl:for-each. Commented out unused method. 2005-03-03 Atsushi Enomoto * 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 * XslStylesheet.cs : included stylesheet could be literal result element as stylesheet (see the spec 2.6.1). 2005-03-02 Atsushi Enomoto * 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 * 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 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID instead of BaseURI. 2005-02-25 Atsushi Enomoto * 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 * Compiler.cs : added ns lookup with nsDecls Hashtable. 2005-02-24 Atsushi Enomoto * XslStylesheet.cs : It should consider "#default" in namespace-alias. 2005-02-23 Atsushi Enomoto * GenericOutputter.cs : It should not attempt to write prefix "xml" and namespace "http://www.w3.org/XML/1998/namespace". 2005-02-21 Atsushi Enomoto * 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 * Outputter.cs, TextOutputter.cs, GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument() and WriteState. Writing XML declaration is done inside DetermineOutputMethod(). 2005-02-17 Atsushi Enomoto * 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 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy(). 2005-02-16 Atsushi Enomoto * 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 * XmlWriterEmitter.cs : String.Replace() was insufficient for sequential candidates for replacement. Patch by Andrew Skiba. 2005-02-10 Atsushi Enomoto * GenericOutputter.cs : don't output extraneous xml declaration. fix by Andrew Skiba. 2005-02-09 Atsushi Enomoto * 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 * XslTemplate.cs : if input is literal result element, it could result in ArgumentException. Patch by Andrew Skiba. 2005-02-08 Atsushi Enomoto * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in NullReferenceException. Patch by Andrew Skiba. 2005-02-08 Atsushi Enomoto * XslOutput.cs : MS.NET recovers from unknown encoding according to XSLT spec 16.1. Patch by Andrew Skiba. 2005-02-08 Atsushi Enomoto * 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 * 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 * XslAttributeSet.cs : just ignore other kind of nodes than element in its content. Fix by Andrew Skiba. 2005-02-08 Atsushi Enomoto * XslOutput.cs : for html and text output mode, just set internal omitXmlDeclaration status true. Patch by Andrew Skiba. 2005-02-08 Atsushi Enomoto * XslFunctions.cs : fixed line ending mixture. 2005-02-03 Atsushi Enomoto * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just to make test pass. 2004-12-22 Atsushi Enomoto * XslFunction.cs, Compiler.cs : XmlResolver.ResolveUri() may return null. 2004-12-01 Atsushi Enomoto * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not make sense here. 2004-12-01 Atsushi Enomoto * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call. 2004-11-26 Atsushi Enomoto * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs : warning elimination. 2004-11-24 Atsushi Enomoto * 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 * Compiler.cs, XslTransformProcessor.cs : when creating XmlTextReader, reuse XmlNameTable. 2004-11-05 Atsushi Enomoto * Compiler.cs : Changes that reflects CompiledExpression changes. 2004-10-04 Atsushi Enomoto * HtmlEmitter.cs : TH tag is not regarded as HTML tag. This fixes bug #67390. Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp. 2004-06-18 Atsushi Enomoto * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs, ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs : Globalization. Removed unused code. 2004-06-14 Atsushi Enomoto * XslKey.cs : Key-value search in absolute path search was insufficient. 2004-06-14 Atsushi Enomoto * HtmlEmitter.cs : Correct URL escape implementation. 2004-06-06 Atsushi Enomoto * XslTransformProcessor.cs : On document() function, close the XmlTextReader opened from uri string. 2004-06-03 Atsushi Enomoto * Compiler.cs, GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that should override another overload. 2004-05-25 Lluis Sanchez Gual * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript assembly should not include the .dll extension. 2004-05-20 Atsushi Enomoto * Compiler.cs : - CompilePattern() now throws XsltCompileException for invalid pattern, and add error location support. - In Compiler.TryGetFunction(), compare namespace URI, not prefix. Now it returns MSXslNodeSet instance (for msxsl:node-set). * Debug.cs : don't throw System.Exception. * XslFunctions.cs : Added MSXslNodeSet class. * XslTemplate.cs : reflected CompilePattern() change. * XslTransformProcessor.cs : don't throw System.Exception. * XsltCompiledContext.cs : don't throw System.Exception. 2004-05-12 Atsushi Enomoto * XmlOutputter.cs, XslOutput.cs, XslStylesheet.cs : made classes/enums internal. 2004-04-24 Atsushi Enomoto * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs, MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs, XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs, XslTransformProcessor.cs : Make extra classes internal. * XslKey.cs : It should require sorting. * Debug.cs : Just avoid debug output. Only who want to output should turn it on. 2004-04-24 Atsushi Enomoto * GenericOutputter.cs : Culture-independency fix. Replaced StringCollection to ArrayList. * XslOutput.cs : Culture-independency fix. 2004-04-12 Atsushi Enomoto * Compiler.cs : When BaseURI is an empty string, it should not try to create Uri instance. This will fix bug #56832, but not sure. * XslFunctions.cs : for XsltDocument.Resolve(), did the same. * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it should be the TextReader's NewLine). * MSXslScriptManager.cs : Should raise an error when the prefix which was specified by "implements-prefix" was not found. 2004-03-27 Atsushi Enomoto * ScriptCompilerInfo.cs : #line directive now holds dummy filename when BaseURI for msxsl:script node is not available. This fixes bug #56070. Don't output line number in the error message, when it is 0. 2004-03-27 Atsushi Enomoto * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm. 2004-03-22 Atsushi Enomoto * Compiler.cs, XslAttributeSet.cs, XslFunctions, XslTransformProcessor.cs : Throw specific types of exceptions instead of Exception. * XslFunctions.cs, XsltCompiledContext.cs : added node argument for XsltExtensionFunction ctor() etc. 2004-03-22 Atsushi Enomoto * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses CodeDom. Compilation error should be caught. This fixes bug #55875. 2004-03-13 Atsushi Enomoto * XslStylesheet.cs : "version" attribute is also required for embedded stylesheet. 2004-03-13 Atsushi Enomoto * Compiler.cs, XslStylesheet.cs : Reject xsl element other than stylesheet and transform. Check mandatory version attribute (only for existence). 2004-03-07 Atsushi Enomoto * MSXslScriptManager.cs : if extension namespace was not found in the script, just return null. Patch by Joshua Tauberer. 2004-03-01 Atsushi Enomoto * XslLiteralElement.cs : quick fix for ArgumentNullException which was because of the combination of non-namespaced instances and exclude-result-prefixes. 2004-02-17 Atsushi Enomoto * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl. * XslFunctions.cs : hereby Added. * Compiler.cs : Removed deleted usingdecl. 2004-02-16 Atsushi Enomoto * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared. * XslKey.cs : Added ExprKeyContainer expression type, which is designed to be matched at any level. * Compiler.cs : support for ExprKeyContainer. 2004-02-16 Atsushi Enomoto * XslKey.cs : Now it collects key and matching nodes at the first evaluation time. After that, we can just get them from the table. * Compiler.cs : Added KeyCompilationMode. It is used to prevent prohibited key() usage in "match" and "use" attributes in xsl:key. Modified accessibility of some classes. * GenericOutputter.cs, HtmlEmitter.cs, TextEmitter.cs, TextOutputter.cs, XmlWriterEmitter.cs : made classes internal. * XslOutput.cs : support line info for exception. * XsltCompiledContext.cs : implemented CompareDocument() - so easily. 2004-02-13 Atsushi Enomoto * XsltCompiledContext.cs : fixed the length of context info array. 2004-02-10 Atsushi Enomoto * XsltCompiledContext.cs : replaced EnumeratorIterator with ListIterator 2004-02-08 Atsushi Enomoto * GenericOutputter.cs, XslAttributeSet.cs, XslStylesheet.cs, XslTemplate.cs : tiny foreach elimination. 2004-01-16 Atsushi Enomoto * XslOutput.cs : Reverted. default encoding should be utf-8. 2004-01-14 Jackson Harper * GenericOutputter.cs: Add constructors that do not take an encoding to fix build. 2004-01-14 Atsushi Enomoto * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to write XML declaration. It means that output supports non document entity. This fixes bug #52729. * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs : modified WriteStartDocument() signature to receive Encoding. * GenericOutputter.cs : - Added .ctor() which receives Encoding. (It is used for TextWriter output to get actual encoding.) - Added .ctor() to take an boolean argument which indicates it is variable content or not. (When variable, it does not call WriteStartDocument().) * XslKey.cs, XsltCompiledContext.cs : comment out WriteLine(). * XslOutput.cs : set default encoding utf-16. 2004-01-08 Nick Drochak * XsltCompiledContext.cs: Remove unused variable and unreachable code. 2003-12-26 Atsushi Enomoto * XslDecimalFormat.cs : implemented format-number() other than number grouping. * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to catch ArgumentException which will be thrown by formatting process. 2003-12-23 Atsushi Enomoto * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler. 2003-12-20 Ben Maurer * XsltCompiledContext.cs: Remove workaround now that monodoc is fixed. 2003-12-20 Atsushi Enomoto * XslStylesheet.cs : considering xsl:imports, we can't handle namespace aliases at compilation time, so evaluate at the first run-time. 2003-12-18 Atsushi Enomoto * GenericOutputter.cs : support for runtime-determined output type. * HtmlEmitter.cs : Fixed invalid doctype output. Fixed incorrect double attribute output on non-HTML elements. Improved indentation. Fixed "selected" attribute output. Don't have to convert "'" to "'". * XmlWriterEmitter.cs : Now don't output incorrect doctype. Escapes CDATA section text "]]>" to "...]]]]>..." . * XslStylesheet.cs, XsltCompiledContext.cs : space resolution consideration for import and wildcard. 2003-12-18 Atsushi Enomoto * Compiler.cs, XslTransformProcessor.cs : Use XmlValidatingReader to support id() for external stylesheets. * XslKey.cs, XsltCompiledContext.cs : to evaluate MatchPattern and UsePattern, SetContext() is required. * XslTemplate.cs : Forgot to commit. Change is below(12/16). 2003-12-16 Atsushi Enomoto * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs : Added WriteWhitespace(). * GenericOutputter.cs, XslTemplate.cs : Call above. * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since CurrentNode in for-each context have to be pulled at evaluation. 2003-12-16 Atsushi Enomoto * XsltCompiledContext.cs : Temporarily allow incorrectly resolved function for bugzilla #52144. It should be reverted soon. 2003-12-12 Atsushi Enomoto * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not implemented yet. * MSMslScriptManager.cs : modified generated assembly class to be unique through running AppDomain. * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast arguments to actual argument types. Bugzilla #51450 should be fixed. 2003-12-12 Atsushi Enomoto * HtmlEmitter.cs : Fixed incorrect character entity output. 2003-12-11 Atsushi Enomoto * Added ScriptCompilerInfo.cs. * MSXslScriptManager.cs : Fixed *true* author's name. Implemented basic msxsl:script support. * Compiler.cs : Added Evidence member. 2003-12-07 Atsushi Enomoto * Compiler.cs : Check stylesheet recursion. Check decimal-format name. * GenericOutputter.cs, Outputter.cs, TextOutputter.cs : Added WriteWhitespace() to assure not writing whitespaces as cdata. * XslAttributeSet.cs : Error check if attribute-set contains other than xsl:attribute. Error should be XsltException. * XslDecimalFormat.cs : Complete equality check. Allow just one character value for some attributes. * XslStylesheet.cs : Made whitespace control setting overridable. Added Version property (for the future compatibility mode). Check unrecongnized top level element. * XslTemplate.cs : Check priority as a number. * XslTransformProcessor.cs : PushCDataState is now PushElementState, for xsl:preserve-space and xsl:strip-space support. * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from incomplete), PushScope and Pop 2003-12-03 Atsushi Enomoto * HtmlEmitter.cs : CloseStartElement is needed almost everywhere. 2003-12-02 Atsushi Enomoto * Compiler.cs : In FromListString(), it should use default ns, not unqualified one. * GenericOutputter.cs : CheckState() - attribute's Prefix should take precedence. Doctype should be written even if SYSTEM id is absent. Fixed possible multiple xmlns output. * HtmlEmitter.cs : - Encoding output using META element. - Doctype name is fixed (html). - Double quotation on PUBLIC and SYSTEM missing. - Fixed incorrect tag name check for IMG. - '>' should not be escaped. * XmlWriterEmitter.cs : Added newline before doctype. In WriteComment(), "--" and tail '-' are not allowed (it escapes, while XmlWriter simply rejects). * XslTransformProcessor.cs : cdata-section-elements should enclose direct child tests only. Added PreserveWhitespace() (incomplete). * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete). 2003-11-28 Atsushi Enomoto * IdPattern.cs : This should work against multiple ids. 2003-11-27 Ben Maurer * Compiler.cs * MSXslScriptManager.cs * XslStylesheet.cs * XslTransformProcessor.cs * XsltCompiledContext.cs: Some work on msxsl script. 2003-11-24 Atsushi Enomoto (in general: cdata-section-elements support, correct document() base uri handling, and so on) * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet. And move to document element. Added XslNameUtil.FromListString(). * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs : Added WriteCDataSection(). * Outputter.cs, GenericOutputter.cs, TextOutputter.cs : Added InsideCDataSection. * GenericOutputter.cs : In .ctor(), WriteState should be succeeded from output XmlWriter. WriteNamespaceDecl() now drops declaration identical to existing one. Removed obsolete htmlEmulation. * XslOutput.cs : Added CDataSectionElements support. * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect(). * XslTransformProcessor.cs : Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput() now considers xsl:exclude-element-prefixes on literal element. Added PushCDataState() and PopCDataState(). * XsltCompiledContext.cs : When base uri of document() target is empty, then it should use stylesheet's BaseURI, not that of current document. 2003-11-21 Atsushi Enomoto * Compiler.cs : Modified decimal-format comparison code. * Outputter.cs, TextOutputter.cs, GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will be called only when required. * HtmlEmitter.cs : Improved indentation stuff. * XslDecimalFormat.cs : Added incomplete implementation of CheckSameAs() and FormatNumber(). * XslStylesheet.cs, XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces from StringDictionary to ArrayList of QName (to keep order). 2003-11-19 Atsushi Enomoto * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider node type (i.e. attribute and namespace). Removed extraneous Clone(). Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs. 2003-11-19 Atsushi Enomoto * Compiler.cs : Changed Keys from ArrayList to Hashtable. XslStylesheet.cs : Added Keys support here. * XslTransformProcessor.cs : Should call SetContext() to expressions before evaluating current nodes. * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager for KeyPattern. It now uses CompiledStyle.FindKeys(). 2003-11-13 Atsushi Enomoto * GenericOutputter.cs : Added HTML output support. Closer xmlns handling to Xalan tests and MS.NET implementation (only for test convenience). * XslOutput.cs : Indent holds string rathen than bool. Its default value varies in the context. When method="html", then default is "yes". * XslTransformProcessor.cs : Extension element prefixes should not be written as stylesheet namespaces. * XsltCompiledContext.cs : Return type of generate-id() is string. Implemented unparsed-entity-uri(). 2003-11-02 Atsushi Enomoto * Compiler.cs : More complete attribute set gathering. GetNamespacesToCopy() should only return Local namespaces. * GenericOutputter.cs : Added support for indentation. Added easy hack for html output. More correct Prefix handling (considers already defined ones). Namespace emmission is moved to CheckState(). * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs : Added WriteFullEndElement(). (i.e. IsEmptyElement support) * GenericOutputter.cs, Outputter.cs : Added CanProcessAttributes property for use-attribute-sets of xsl:copy. * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls. Added support for exclude-result-prefixes. * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns. 2003-10-30 Atsushi Enomoto * Compiler.cs : It is not important, but attribute order became closer to MS.NET and Xalan (assuming from OASIS tests). 2003-10-30 Atsushi Enomoto * GenericOutputter.cs : Attribute wasn't overwritten its properties because Attribute is struct it was let to another local variable. 2003-09-28 Ben Maurer * GenericOutputter.cs: make html output a warning, because doing xml will be right most of the time. 2003-09-28 Ben Maurer * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs here for a long time and it hurts thread safty and memory allocation. 2003-09-21 Ben Maurer * Compiler.cs: save the parser (will reduce memory allocation when Jackson's jay patch is committed). 2003-09-20 Ben Maurer * Attribute.cs: Change to struct. Remove QName class. * GenericOutputter.cs: use an Attribute [] rather than an ArrayList. Allows us not to allocate Attributes, which is great for speed. Roll our own allocation. 2003-09-20 Ben Maurer * Compiler.cs: add GetNsm to main class as well. 2003-09-20 Ben Maurer * Compiler.cs (ParseAvtAttribute): Get the attribue using our internal version so we get null if the attr doesnt exist. 2003-09-17 Ben Maurer * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case where curVarScope == null 2003-09-16 Ben Maurer * Compiler.cs: - Better handling of empty attributes (vs not being specified) - Bug in handling #default 2003-09-15 Ben Maurer * Compiler.cs: Off by one when parsing localname of QName * XslAttributeSet.cs: must evaluate used attr sets *BEFORE* children (so that they get overriden) 2003-09-15 Ben Maurer * GenericOutputter.cs: Output attributes in order recieved; not required by spec, but useful for running test cases. 2003-09-14 Oleg Tkachenko * GenericOutputter.cs - fix bug with outputting state. * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs, * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute. 2003-09-13 Ben Maurer * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone exprs on use, pass to nav. 2003-09-13 Ben Maurer * Compiler.cs: pass satic context to Pattern ctor. 2003-08-30 Oleg Tkachenko * New files: GenericOutputter.cs - generic Outputter implementation, Attribute.cs - represents outputted attribute, Emitter.cs - abstract output emitter, TextEmitter.cs - text emitter, XmlWriterEmitter.cs - emitter to XmlWriter. * Checking of duplicating attributes is done in GenericOutputter. * Namespace outputting logic is implemented in GenericOutputter. * Outputter.cs: Writing namespace declarations is delegated to derived classes (GenericOutputter). * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO). 2003-08-21 Ben Maurer * XslTransformProcessor.cs: evaluate variables at beginning when / is current node. 2003-08-21 Ben Maurer * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs: Fix up namespace handeling 2003-08-20 Ben Maurer * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for format-number. * XslDecimalFormat.cs: Stub for decimal-format. 2003-08-20 Ben Maurer * TextOutputter.cs: Add option to ignore element content (Oleg). 2003-08-19 Ben Maurer * Compiler.cs: Really give null for blank avt's 2003-08-19 Ben Maurer * Compiler.cs: Fixed lre/lre04. 2003-08-19 Atsushi Enomoto * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name won't have default namespace. See http://www.w3.org/TR/xslt#qname 2003-08-19 Ben Maurer * XslTransformProcessor.cs: add support for resolving documents. * XsltCompiledContext: add support for document () function. 2003-08-19 Ben Maurer * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some of the abstract methods in Outputter, making them call other functions with default values, remove impl's in derived classes. 2003-08-19 Ben Maurer * Outputter.cs: s/Close/Done * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing. * XslTransformProcessor.cs: Flush output when popping, pop at end. 2003-08-19 Ben Maurer * Outputter.cs: Add support for namespaces. 2003-08-19 Ben Maurer * Compiler.cs, XslOutput.cs, XslStylesheet.cs, XslTransformProcessor.cs: move output logic from XslStylesheet to Compiler. 2003-08-18 Ben Maurer * XslOutput.cs: add support for encoding. 2003-08-18 Ben Maurer * *.cs: Support for xsl:output. (Oleg) 2003-08-17 Ben Maurer * Compiler.cs: handle extension and excluded namespaces. 2003-08-17 Ben Maurer * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator from the stylesheet for correct namespace resolution. 2003-08-14 Atsushi Enomoto * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument introduced in .NET 1.1. 2) XmlResolver object is required for 'res'. 2003-08-07 Ben Maurer * XslTransformProcessor.cs: Add a table to detect when an object is busy. * XslAttributeSet.cs: Use the above table. Dont throw nullref exception when no use-attribute-sets are specified. 2003-08-04 Ben Maurer * Compiler.cs: Add support for boolean attributes (yes/no). 2003-08-04 Ben Maurer * Compiler.cs: Add method LocalNameOf, to get the local name of a string. * XslTransformProcessor.cs: Support for setting the XmlResolver. 2003-08-01 Ben Maurer * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging 2003-08-01 Ben Maurer * XslTransformProcessor.cs: Add EvaluateNumber method. 2003-07-31 Ben Maurer * XsltCompiledContext.cs: Implement more functions. 2003-07-31 Ben Maurer * Compiler.cs: Add support for key, utility function to parse QName's from the XsltContext. Store keys in the CompiledStyle, not in the Stylesheet. * XslKey.cs: Real implementation * XslStylesheet.cs: Move the keys to CompiledStyle. * XsltCompiledContext.cs: Implement the key function 2003-07-31 Ben Maurer * XsltCompiledContext.cs: Hmm, maybe I should actually *enable* the functions ;-). Also wrote current (). 2003-07-31 Ben Maurer * XsltCompiledContext.cs: Remove excess conversion stuff. It is done in XPath. Add stubs for XSLT functions. 2003-07-31 Ben Maurer * Compiler.cs: To resolve a variable you now need to pass the processor, so that it can be passed to IsEvaluated. A local will only be resolved if it has already been evaluated. * XsltCompiledContext.cs: Pass along the processor. 2003-07-30 Ben Maurer * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store variable values in the XslTransformProcessor. * XsltCompiledContext.cs: If the scope is null, don't look there! * Debug.cs: New method Assert 2003-07-30 Ben Maurer * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages * XslTransformProcessor.cs: Use strongtyped evaluation, using new internal methods in XPathNavigator. Remove verbose debugging messages. 2003-07-29 Ben Maurer * Initial Checkin