2009-04-15 Atsushi Enomoto * XslForEach.cs : disabled an intelligent optimization for dotnet compatibility bug, #487065. 2008-10-02 Atsushi Enomoto * XslVariable.cs : now XPathNodeIterator.Current is always null at position 0, so reduced dependency on it. * XslCopy.cs : now CurrentNode property cannot be moved, so copy it to a local variable. 2008-06-03 Atsushi Enomoto * XslVariable.cs : In XslGeneralVariable.Evaluate(), always wrap custom XPathNodeIterator with XsltContext so that the iterator can resolve variables. Fixed bug #316238. 2008-01-19 Atsushi Enomoto * XslCopyOf.cs : when the evaluated argument was RTF (it could happen when variable or extensions are used), copy the node itself, not only its children. Fixed bug #322551. 2007-12-17 Atsushi Enomoto * XslValueOf.cs : allow external elements in xsl:value-of. Fixed bug #348786. 2007-10-30 Atsushi Enomoto * XslMessage.cs, XslText.cs, XslVariable.cs, XslNumber.cs, XslElement.cs, XslIf.cs, XslFallback.cs, XslCopyOf.cs, XslValueOf.cs, XslComment.cs, XslAttribute.cs, XslApplyImports.cs, XslApplyTemplates.cs, XslForEach.cs, XslCallTemplate.cs, XslCopy.cs, XslProcessingInstruction.cs, XslChoose.cs: refactory on checking invalid attributes. Fixed bug #333806. 2007-08-08 Atsushi Enomoto * XslCallTemplate.cs : significant whitespace should be allowed as its content. Fixed bug #82357. 2007-06-28 Atsushi Enomoto * XslText.cs XslMessage.cs XslVariable.cs XslNotSupportedOperation.cs XslNumber.cs XslElement.cs XslIf.cs XslCopyOf.cs XslFallback.cs XslValueOf.cs XslComment.cs XslAttribute.cs XslApplyImports.cs XslApplyTemplates.cs XslLiteralElement.cs XslCompiledElement.cs XslTemplateContent.cs XslForEach.cs XslCallTemplate.cs XslCopy.cs XslProcessingInstruction.cs XslChoose.cs : minimum required injection for debugger. 2007-01-09 Atsushi Enomoto * XslMessage.cs : added MONO_XSLT_MESSAGE_OUTPUT environment variable support to switch xsl:message output ('none' and 'stderr', or stdout by default). 2005-04-07 Atsushi Enomoto * XslForEach.cs : push current node context after iterating "selected" node-set. 2005-03-15 Atsushi Enomoto * XslApplyTemplates.cs, XslSort.cs : use new XslSortEvaluator.cs instead of XPathExpression.AddSort() to handle XSLT current node context correctly. 2005-12-23 Gert Driesen * XslVariable.cs: Beautify error messages. * XslElement.cs: Same. * XslAvt.cs: Same. * XslAttribute.cs: Same. * XslApplyTemplates.cs: Same. * XslTemplateContent.cs: Same. * XslCallTemplate.cs: Same. * XslCopy.cs: Same. * XslChoose.cs: Same. 2005-03-15 Atsushi Enomoto * XslVariable.cs : removed last ListIterator.ctor() argument. 2005-03-09 Atsushi Enomoto * XslText.cs : whitespace nodes should be written at any time, once they constructed this instance. 2005-03-09 Atsushi Enomoto * XslVariable.cs : clone stored XPathNavigator items before storing. * XslAttribute.cs : tiny code reduction. 2005-03-08 Atsushi Enomoto * XslAttribute.cs : In Evaluate(), name strings are not computed as expected especially when they are bound to non-empty namespace. 2005-03-07 Atsushi Enomoto * XslLiteralElement.cs : literal attributes should also consider namespace aliases. 2005-03-07 Atsushi Enomoto * XslAttribute.cs, XslLiteralElement.cs : Now namespace aliases are collected in prior to template evaluation, so compute expected prefix at compile time. 2005-03-07 Atsushi Enomoto * XslLiteralElement.cs : renamed TryElementNamespacesOutput() to OutputLiteralNamespaceUriNodes() so that everyone can understand what it means and when it should be invoked. * XslCopy.cs : So for example literal namespace URIs should not be copied here ;-) 2005-03-04 Atsushi Enomoto * XslTemplateContent.cs : inside template, fallback is ignored. 2005-03-04 Atsushi Enomoto * XslNotSupportedOperation.cs : Added xsl:fallback support. 2005-03-04 Atsushi Enomoto * XslNotSupportedOperation.cs : added not-supported template content type. Such elements should be rejected only run-time (since there could be future-version-only template content). * XslCompiledElement.cs : added XslCompiledElementBase type, for not invoking Compile() in base .ctor() (in some types this design forces us to add extraneous protected fields to the base type). * XslTemplateContent.cs : added "sort" element check (except for xsl:for-each, it should be skipped). 2005-03-03 Atsushi Enomoto * XslElement.cs : reject incorrectly qualified name attribute. 2005-03-02 Atsushi Enomoto * XslElement.cs : name should be splitted regardless of "namespace" attribute existence. Removed XPathNavigatorNsm dependency. 2005-03-02 Atsushi Enomoto * XslElement.cs : We throw exception when element name is resolved as invalid cname, so it should not ignore such name like ":foo". Fixed ambiguous error message. Removed unused code. 2005-03-02 Atsushi Enomoto * XslElement.cs, XslCopyOf.cs, XslLiteralElement.cs, XslCopy.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-24 Atsushi Enomoto * XslAttribute.cs : reduced reference to stylesheet XPathNavigator by keeping nsDecls. 2005-02-23 Atsushi Enomoto * XslNumber.cs : Fixed incorrect 0 padding for 1) unsupported (and thus default '1') pattern and 2) suffixed pattern with non-number char(s). 2005-02-18 Atsushi Enomoto * XslCopy.cs, XslCopyOf.cs : copy namespace nodes in the transformation input == not limited to "local" namespace nodes. 2005-02-17 Atsushi Enomoto * XslNumber.cs : maybe I had better explain why I needed own Round(). 2005-02-17 Atsushi Enomoto * XslNumber.cs : We must round double value before formatting it as alphabets or roman numbers. 2005-02-17 Atsushi Enomoto * XslAttribute.cs : It does not have to probe prefix at run time. 2005-02-17 Atsushi Enomoto * XslLiteralElement.cs, XslCopy.cs : Now that exclude-element-prefixes and extension- element-prefixes are handled in GetNamespacesToCopy(), we could just remove those collector routine. Also, literal elements were still trying to output namespaces outside TryElementNamespacesOutput. 2005-02-16 Atsushi Enomoto * XslCopy.cs : According to the spec 7.5, namespace nodes should be copied. Patch by Andrew Skiba. * XslLiteralElement.cs, XslElement.cs : Change in sync with TryElementNamespacesOutput(). * XslStylesheet.cs : version check was incorrectly done. Should check empty string, not null. 2005-02-15 Atsushi Enomoto * XslMessage.cs, XslOperation.cs, XslAttribute.cs, XslComment.cs, XslProcessingInstruction.cs : simplified code by using XslOperation.EvaluateAsString(). It will also help optimization. 2005-02-14 Atsushi Enomoto * XslApplyTemplates.cs : significant whitespace should not be regarded as invalid element. Patch by Andrew Skiba. 2005-02-09 Atsushi Enomoto * XslNumber.cs : For group size, use decimal instead of integer to allow such number that is larger than int.MaxValue. patch by Andrew Skiba. 2005-02-09 Atsushi Enomoto * XslForEach.cs : Don't bork at . Patch by Andrew Skiba. 2005-02-08 Atsushi Enomoto * XslProcessingInstruction.cs : MS.NET recovers from invalid PI name (it must be both NCName and PITarget, or must be ignored). Patch by Andrew Skiba. 2005-02-08 Atsushi Enomoto * XslTemplateContent.cs : MS.NET recovers from incorrect non-text children in attribute, PI and comments. Patch by Andrew Skiba. 2004-01-17 Atsushi Enomoto * XslVariable.cs : use DTMXPathDocumentWriter2. 2004-11-28 Atsushi Enomoto * XslVariable.cs : Local param might be overriden by XsltArgumentList. 2004-11-26 Atsushi Enomoto * XslElement.cs : warning removal. 2004-11-24 Atsushi Enomoto * XslVariable.cs, XslComment.cs XslApplyImports.cs, XslCompiledElement.cs : removed unused field. 2004-06-18 Atsushi Enomoto * XslNumber.cs : Globalization. Removed unused code. 2004-05-20 Atsushi Enomoto * XslCopyOf.cs : When evaluation result was result tree fragment (i.e. XPathNavigator) output its content (children). * XslNumber.cs : Reflected CompilePattern() change. * XslTemplateContent.cs : Don't throw System.Exception. * XslVariable.cs : XslVariableInformation.Evaluate() now returns XPathNavigator, not NodeSet (it should not return "children", since the node pointed by XPathNavigator should be referenced as Root). 2004-05-12 Atsushi Enomoto * XslNumber.cs : made enum internal 2004-04-24 Atsushi Enomoto * XslApplyImport.cs, XslApplyTemplates.cs, XslAttribute.cs, XslAvt.cs, XslCallTemplate.cs, XslComment.cs, XslCompiledElement.cs, XslCopy.cs, XslCopyOf.cs, XslElement.cs, XslFallback.cs, XslForeach.cs, XslIf.cs, XslLiteralElement.cs, XslMessage.cs, XslNumber.cs, XslOperation.cs, XslProcessingInstruction.cs, XslTemplateContent.cs, XslText.cs, XslValueOf.cs, XslVariable.cs : make extra classes internal. 2004-04-24 Atsushi Enomoto * XslProcessingInstruction.cs : Culture independency fix. 2004-04-01 Atsushi Enomoto * XslVariable.cs : When evaluated variable was BaseIterator, its iterated nodes must be collected in prior. Otherwise, it might be evaluated later with inconsistent level of variable stack in XslTransformProcessor. This fixes bug #55876. 2004-03-22 Atsushi Enomoto * XslApplyTemplates.cs, XslAvt.cs, XslCallTemplate.cs, XslChoose.cs, XslIf.cs, XslMessage.cs, XslNumber.cs, XslVariable.cs : Throw XsltCompileException instead of Exception. * XslVariable.cs : Reject invalid attributes. 2004-02-13 Atsushi Enomoto * XslVariable.cs : Replaced XmlNodeWriter with DTMXPathDocumentWriter. 2004-01-27 Atsushi Enomoto * XslIf.cs : When content is empty, skip content evaluation. 2004-01-14 Atsushi Enomoto * XslVariable.cs : Use new GenericOutputter.ctor() to indicate it is created for variable. (It is required not to output "PI for xmldecl" incorrectly.) * XslNumber.cs : trivial code refactoring. * XslCopy.cs : comment out WriteLine(). 2004-01-08 Nick Drochak * XslAttribute.cs: Removed unused variable 2003-12-20 Atsushi Enomoto * XslLiteralElement.cs : considering xsl:imports, we have to evaluate namespace aliases at the first evaluation. * XslNumber.cs : Fixed incorrect "any" level numbering (and optimization), format string handling, grouping-separator. 2003-12-16 Atsushi Enomoto * XslLiteralElement.cs : Pretty fix for prefix. * XslNumber.cs : Fix for rounding value and decimal digits hack. 2003-12-05 Atsushi Enomoto * XslAttribute.cs, XslElement.cs, XslVariable.cs : Check name. * XslChoose.cs : Check content validity (xsl:when or xsl:otherwise). * XslComment.cs, XslCopy.cs, XslProcessingInstruction.cs, XslValueOf.cs : Check content and attributes. * XslCompiledElement.cs : Added ParentType to check content validity. * XslCopy.cs : Check attribute set existence. * XslCopy.cs, XslCopyOf.cs Don't output whitspace as cdata. * XslLiteralElement.cs : Added extension element prefixes as namespace exclusion target. Consider namespace-aliases. * XslNumber.cs : level="any" should also be emptiable. MatchesCount() should also consider node type. Reverted a little formatting stuff. * XslTemplateContent.cs : Check if content nodes are containable. * XslText.cs : New .ctor() argument, specifying if it is whitespace. Never output whitespace as cdata. 2003-12-03 Atsushi Enomoto * XslNumber.cs : Fixed GetFormatNumber() not to emit number (0) in case of count 0. Improved format-string, but still wondering. 2003-12-02 Atsushi Enomoto * XslElement.cs, XslCopy.cs, XslCopyOf.cs, XslLiteralElement.cs : Modified cdata-section-elements handling. * XslAttribute.cs, XslElement.cs : Fixed incorrect prefix handling. * XslComment.cs : In case of empty value, don't call value.Evaluate(). * XslCopyOf.cs : Element node should consider cdata-section elements. 2003-11-28 Atsushi Enomoto * XslCopy.cs, XslCopyOf.cs : namespace nodes should be written. 2003-11-24 Atsushi Enomoto * XslAttribute.cs, XslElement.cs, XslLiteralElement.cs : More precise namespace handling. * XslCopy.cs, XslElement.cs, XslLiteralElement.cs : Added cdata-section-elements support. * XslNumber.cs : Cases when value is NodeSet should be allowed. Default output should be 1,2,3... not exception. see XSLT spec 7.7.1 2003-11-21 Atsushi Enomoto * XslAttribute.cs : Name verification. * XslElement.cs : Name verification. Consider IsEmptyElement. * XslCopy.cs : copy namespace nodes too. 2003-11-09 Atsushi Enomoto * XslAttribute.cs : namespace should be String.Empty if no specification exists. * XslNumber.cs : default format string is "1". See XSLT spec. 7.7.1. 2003-11-03 Atsushi Enomoto * XslCompiledElement.cs, XslAttribute.cs, XslElement.cs : Removed Clone() everywhere. Limited only to required places. 2003-11-02 Atsushi Enomoto * XslCompiledElement.cs : Added InputNode for namespace-prefix support. * XslAttribute.cs, XslElement.cs, XslLiteralElement.cs : Correct Prefix support. * XslLiteralElement.cs : Moved xmlns output after attribute sets. * XslCopy.cs : Added use-attribute-sets support for Root XPath type. * XslCopy.cs, XslCopyOf.cs, XslLiteralElement.cs : Support for IsEmptyElement (XslElement not yet. confirm what OASIS tests expect). * XslCopy.cs, XslElement.cs, XslLiteralElement.cs : Support for stylesheet xmlns decls emission. 2003-09-20 Ben Maurer * XslAttribute.cs, XslElement.cs: Allow dynamically parsed names. 2003-09-19 Ben Maurer * XslCopyOf.cs: handle attributes. 2003-09-15 Ben Maurer * XslLiteralElement.cs: must evaluate used attr sets *BEFORE* children (so that they get overriden). 2003-09-14 Oleg Tkachenko * XslCopyOf.cs - WriteAttributeString instead of WriteStartAttribute/WriteString/WriteEndAttribute. 2003-09-13 Ben Maurer * XslLiteralElement.cs: reduce enumerator allocation. 2003-08-30 Oleg Tkachenko * XslAttribute.cs: output is now done to TextOutputter, which outputs to a StringWriter. * XslVariable.cs: output is done to GenericOutputter. 2003-08-21 Atsushi Enomoto * XslVariable.cs : use newly introduced XmlNodeWriter.ctor(false) to support for tree fragment, not only for single element. 2003-08-20 Ben Maurer * XslComment.cs, XslMessage.cs, XslProcessingInsturction.cs: Ignore element contnet, per spec. (Oleg) 2003-08-19 Ben Maurer * XslNumber.cs: Better support for formatting. 2003-08-19 Ben Maurer * XslNumber.cs: Support for multiple level numbering 2003-08-19 Ben Maurer * XslNumber.cs: Initial support. 2003-08-19 Ben Maurer * XslCopyOf.cs, XslLiteralElement: Use namespace support in Outputter. 2003-08-19 Ben Maurer * XslVariable.cs: sync to API changes. 2003-08-18 Ben Maurer * *.cs: Support for xsl:output. (Oleg) 2003-08-17 Ben Maurer * XslCopyOf.cs: handle default ns * XslFallback.cs: implement * XslLiteralElement.cs: copy namespaces that were declared. * XslTemplateContent.cs: handle ext elements 2003-08-17 Ben Maurer * XslComment.cs, XslTemplateContent.cs: remove dead variables. 2003-08-14 Gonzalo Paniagua Javier * XslComment.cs: patch by BenM that implements Evaluate. 2003-08-14 Atsushi Enomoto * XslCallTemplates.cs : Forgot to commit ;-) 2003-08-14 Atsushi Enomoto * XslApplyTemplates.cs, XslCallTemplate.cs : Should accept other than element content such as comment and PI. * XslNumber.cs : In Compile(), 'value' might not exist. (Think about it later if how it should be.) * XslTemplateContent.cs : "comment" and "number" support. (I know they are still incomplete.) 2003-08-14 Atsushi Enomoto * Added XslComment.cs. 2003-08-05 Ben Maurer * XslVariable.cs: Fix up how variables are evaluated. 2003-08-04 Ben Maurer * XslMessage.cs: Implement. 2003-08-04 Ben Maurer * XslText.cs: I can make that parsing simpler! * XslText.cs, XslValueof.cs: support for disable-output-escaping. 2003-08-04 Ben Maurer * XslElement.cs, XslAttribute.cs: Better support for namespaces. * XslAvt.cs: When precalculating, if the AVT is null (ie, the attribute was not specified), just return null, that will be the result. 2003-08-01 Ben Maurer * XslNumber.cs: More stubbing. 2003-07-31 Ben Maurer * XslNumber.cs: Stub for parsing xsl:number. 2003-07-31 Ben Maurer * XslVariable.cs: Add IsEvaluated. 2003-07-30 Ben Maurer * XslApplyTemplates.cs, XslCallTemplate.cs, XslCompiledElement.cs, XslTemplateContent.cs, XslVariable.cs: Store variable values in the XslTransformProcessor 2003-07-30 Ben Maurer * XslAvt.cs, XslCopyOf.cs, XslIf.cs, XslText.cs, XslValueOf.cs, XslVariable.cs: Use new strong typed methods, remove verbose debugging messages. 2003-07-29 Ben Maurer * Initial Checkin