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