1 2006-01-13 Atsushi Enomoto <atsushi@ximian.com>
3 * GenericOutputter.cs : When writing string, use WriteWhitespace()
4 instead of WhiteString() when its state is not Content. This fixes
5 BVTs_bvt066 case (broken after implementing strict state check in
8 2005-12-24 Gert Driesen <drieseng@users.sourceforge.net>
10 * XslOutput.cs: Do not report error for unknown value for "standalone"
11 and "omit-xml-declaration" attributes, and extranous attributes if
12 stylesheet version is not "1.0".
14 2005-12-24 Atsushi Enomoto <atsushi@ximian.com>
16 * Compiler.cs : pass stylesheet version to XslOutput to determine
17 "indent" value validity.
18 * XslOutput.cs, HtmlEmitter.cs, GenericOutputter.cs : Reverted
19 buggy changes on "indent" attribute handling.
20 http://www.w3.org/TR/xslt#section-HTML-Output-Method
22 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
24 * XslOutput.cs: Reduced indentation of cases in switch statement.
26 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
28 * ScriptCompilerInfo.cs: Fixed line endings.
29 * XslStylesheet.cs: Beautify error messages.
30 * Debug.cs: Fixed line endings.
31 * XslOutput.cs: Indent is now bool instead of string, use
32 MoveToAttribute to navigate through attributes instead of using
33 GetAttribute, as we also need to distinguish attributes with
34 zero-length value from attributes that are not specified for
35 correct implementation of DOCTYPE. Implemented validation for
36 value of "omit-xml-declaration", "standalone" and "indent".
37 We now throw a XsltCompileException for unknown attribute.
38 * XmlWriterEmitter.cs: only skip WriteDocType is systemId is null.
39 * HtmlEmitter.cs: XslOutput.Indent is now bool. Fixed WriteDocType
41 * XmlDecimalFormat.cs: Beautify error messages.
42 * XslTemplate.cs: Beautify error messages.
43 * GenericOutputter.cs: XslOutput.Indent is now bool.
44 * Compiler.cs: Beautify error messages.
46 2005-12-21 Atsushi Enomoto <atsushi@ximian.com>
48 * XslTemplate.cs : don't check name and mode attributes on
49 non-'xsl:template' element. This should fix bug #77051.
51 2005-12-13 Andrew Skiba <andrews@mainsoft.com>
53 * XslDecimalFormat.jvm.cs: set correct defaults for NaN and Infinity
55 2005-11-30 Atsushi Enomoto <atsushi@ximian.com>
57 * ScriptCompilerInfo.cs : (VBCompilerInfo) There was a space between
58 '#' and 'ExternalResource'. bug #75789 should be fixed.
60 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
62 * XslKey.cs: fixed KeyIndexTable.Evaluate method, changed
63 XPathNavigator given to GetNodesByValue()
65 2005-11-17 Atsushi Enomoto <atsushi@ximian.com>
67 * XslCompiledContext.cs : since XsltContextInfo is struct, having
68 an array of this type and setting fields of each struct didn't
69 make sense. It thus blocked expected PreserveWhitespace behavior.
71 2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
73 * Compiler.cs : (FromString(s, hashtable)) pull default namespace
74 from the table for LRE (don't consider it as ""; spec. 7.1.2)
77 2005-09-16 Atsushi Enomoto <atsushi@ximian.com>
79 * ScriptCompilerInfo.cs : Compile correct replacement result.
82 2005-09-10 Atsushi Enomoto <atsushi@ximian.com>
84 * Compiler.cs : (Compile) check children only when it is the document
85 element. Fixed bug #76046.
87 2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
89 * ScriptCompilerInfo.cs : It should not be "#line" when the source is
90 not C#. It should fix bug #75789.
92 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
94 * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
95 To minimize attribute iteration, use Pattern.EvaluatedNodeType.
98 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
100 * XslFunctions.cs : XslTransform recovers from errors on document
101 resolution. Fixed bug #75663.
103 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
105 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
106 only for related elements.
108 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
110 * MSXslScriptManager.cs : it should ignore compiler warnings. This
113 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
115 * XslDecimalFormat.jvm.cs : added
117 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
119 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
120 support CodeDom). Use Guid.ToString("N").
122 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
124 * Compiler.cs : removed extraneous using_directive.
126 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
128 * XslKey.cs : the iterator does not require sorting (already sorted).
131 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
134 Variables are stored per stylesheet and added to compiler after
135 all of the contents are processed (handle import precedence).
136 Imports are now processed in prior to other contents (incorrect
137 imports are now rejected). After imports, process includes to
138 process nested imports. In-process included stylesheets are
139 temporarily stored in including stylesheet.
140 Handle keys like variables are handled.
141 Added Compile() that is splitted from .ctor().
143 Store keys in compiler and compiled stylesheet.
144 Duplicate variables in imports are now overriden as expected.
145 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
147 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
149 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
150 from each EvaluateXXX() methods.
151 * MsxslScriptManager.cs : not to leave reference to stylesheet
152 navigator, pass current node to Compile().
153 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
154 navigator cache for each pattern, to avoid Clone() and not to leave
155 reference to already-done instance navigator.
157 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
159 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
160 * XslKey.cs : Use XSLT pattern parser for match.
161 UsePattern is now "Use" (it is not a pattern).
162 Reimplemented Evaluate() to make full use of index table.
163 Added Matches() to handle shorter match evaluation. For const value
164 for key (e.g. key patterns), it could avoid Evaluate().
165 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
166 new KeyIndexTable.Matches().
167 * XslFunctions.cs : Added PatternMatches() that just delegates to new
168 XsltCompiledContext.MatchesKey().
170 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
172 * GenericOutputter.cs : commented out warned fields.
174 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
176 * XslKey.cs : removed last ListIterator.ctor() argument.
177 Reverted the last commit that changed internal key index change
178 from ArrayList to Hashtable. Avoid clone in CollectIndex().
179 Sort results in Evaluate() before passing list to ListIterator.
180 * XslFunctions.cs : removed last ListIterator.ctor() argument.
182 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
185 XsltCompiledContext.cs,
187 XslTransformProcessor.cs : Now dynamic context key index table is
188 separate from XslKey static context. Added KeyIndexTable class and
189 store it into XsltCompiledContext with hash name-table mapping.
190 Cache map from statically-named key to index table.
191 Use Hashtable for internal key cache instead of ArrayList.
193 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
195 * XslKey.cs : fixed node iteration on collecting key indices which
196 could have resulted in an infinite loop.
198 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
200 * XslDecimalFormat.cs : in some cases it does not throw format
203 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
205 * XsltCompiledContext.cs,
206 XslStylesheet.cs : Fixed significant performance loss on whitespace
209 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
211 * XslKey.cs : removed unused NeedAbsoluteMatching.
212 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
213 Added some missing ToString() overrides.
215 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
217 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
218 to work fine with xsl:*-space attributes as expected.
219 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
220 actually nothing. It should not use XsltContext.PreserveWhitespace()
221 because this method is used to control output, while the referenced
222 method is used to control source document.
224 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
226 * XslTemplate.cs : First non-element content were incorrectly ignored.
228 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
230 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
231 to reduce references to stylesheet XPathNavigator. To accomplish it,
232 IStaticXsltContext does not declare GetNsm() anymore. All xslt
233 function types now directly hold IStaticXsltContext.
234 * XslStylesheet.cs : removed "Compiler c" field.
235 Removed unused properties.
237 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
239 * GenericOutputter.cs : When WriteStartElement() requires to add
240 new namespace declaration, _currentNamespaceDecls needs to be set.
242 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
244 * GenericOutputter.cs : for duplicate attribute in an element, no need
245 to keep previous prefix.
247 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
249 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
250 namespace. Rewrite prefix only when there is non-empty namespace.
252 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
254 * XslStylesheet.cs : Now namespace aliases are collected in prior to
255 all other toplevel elements. Removed unused code.
257 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
259 * GenericOutputter.cs : compute attribute prefix only when actual
260 emission. Fixed some cases that namespace output was missing.
262 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
264 * GenericOutputter.cs : no need to use two collections to store
265 pending attributes. Just use ordered ListDictionary.
266 newNamespace.Add(int) causes extraneous boxing.
268 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
270 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
271 OutputLiteralNamespaceUriNodes() so that everyone can understand
272 what it means and when it should be invoked.
274 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
276 * Compiler.cs : added another CompileTemplateContent() which is
277 requred in xsl:for-each. Commented out unused method.
279 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
281 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
282 in stylesheet should be considered in TryElementNamespacesOutput().
283 ParseQNameListAttribute() is not properly working for filling
286 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
288 * XslStylesheet.cs : included stylesheet could be literal result
289 element as stylesheet (see the spec 2.6.1).
291 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
293 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
294 empty string when nsURI is empty.
295 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
296 unlike xml but like span, as written in the spec 16.2.
298 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
300 * XslCompiledContext.cs, XslTransformProcessor.cs :
301 According to errata E25, those namespaces 1) that has the same
302 name as current element's prefix, or an empty name when current
303 element's namespace URI is empty, are not written to output.
304 So added current element information to XPathContext and added
305 prefix parameter to PushElementState(), added xsl:copy check to
306 TryElementNamespacesOutput().
307 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
309 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
311 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
314 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
316 * XslTemplate.cs : According to the spec 5.7, it is an error for
317 xsl:template to have 'mode' without 'match'.
319 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
321 * Compiler.cs : added ns lookup with nsDecls Hashtable.
323 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
325 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
327 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
329 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
330 namespace "http://www.w3.org/XML/1998/namespace".
332 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
334 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
335 * HtmlEmitter.cs : CDATA nodes are written just as text.
336 * GenericOutputter.cs : custom format are treated just as XML output.
338 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
342 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
343 and WriteState. Writing XML declaration is done inside
344 DetermineOutputMethod().
346 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
348 * Compiler.cs : reverted previous fix, since it should be done
349 in XslTransformProcessor with root stylesheet.
350 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
351 don't output alias namespaces. And now consider null exclusions.
353 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
355 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
357 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
359 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
360 namespace nodes. Patch by Andrew Skiba with some fixes.
361 * XslTransformProcessor.cs : Patch by Andrew Skiba.
362 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
363 as to handle all namespace nodes to copy in stylesheet nodes.
364 Global parameterss are evaluated before global variables.
365 * XmlOutputter.cs : removed unused code.
369 * Actually variables and params should check reference recursion.
370 This patch incompletely fixes the problem.
371 * Those operations that considers excluded-result-prefixes must
372 also check those attributes of its ancestors.
374 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
376 * XmlWriterEmitter.cs : String.Replace() was insufficient for
377 sequential candidates for replacement. Patch by Andrew Skiba.
379 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
381 * GenericOutputter.cs : don't output extraneous xml declaration.
384 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
386 * XslStylesheet.cs : MS implementation had chosen to recover from
387 the error, in the way specified in the spec 7.7.1. Patch by Andrew
390 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
392 * XslTemplate.cs : if input is literal result element, it could result
393 in ArgumentException. Patch by Andrew Skiba.
395 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
397 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
398 NullReferenceException. Patch by Andrew Skiba.
400 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
402 * XslOutput.cs : MS.NET recovers from unknown encoding according to
403 XSLT spec 16.1. Patch by Andrew Skiba.
405 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
407 * HtmlEmitter.cs : patch by Andrew Skiba.
408 Remove extra element prefix output. simplify attribute prefix output.
409 Attribute output might have resulted in invalid element stack peek.
410 Output specified media type if any.
412 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
414 * Compiler.cs : Patch by Andrew Skiba.
415 wrap internal exception with XsltCompileException.
416 Raise an error for not-found document URI.
417 QName might contain sequential whitespaces and thus could be empty.
419 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
421 * XslAttributeSet.cs : just ignore other kind of nodes than element
422 in its content. Fix by Andrew Skiba.
424 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
426 * XslOutput.cs : for html and text output mode, just set internal
427 omitXmlDeclaration status true. Patch by Andrew Skiba.
429 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
431 * XslFunctions.cs : fixed line ending mixture.
433 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
435 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
438 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
441 Compiler.cs : XmlResolver.ResolveUri() may return null.
443 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
445 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
448 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
450 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
452 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
454 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
457 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
459 * XslStylesheet.cs : removed unused fields.
460 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
463 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
465 * Compiler.cs, XslTransformProcessor.cs :
466 when creating XmlTextReader, reuse XmlNameTable.
468 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
470 * Compiler.cs : Changes that reflects CompiledExpression changes.
472 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
474 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
475 This fixes bug #67390.
477 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
479 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
481 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
483 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
484 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
485 : Globalization. Removed unused code.
487 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
489 * XslKey.cs : Key-value search in absolute path search was
492 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
494 * HtmlEmitter.cs : Correct URL escape implementation.
496 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
498 * XslTransformProcessor.cs : On document() function, close the
499 XmlTextReader opened from uri string.
501 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
504 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
505 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
506 should override another overload.
508 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
510 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
511 assembly should not include the .dll extension.
513 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
516 - CompilePattern() now throws XsltCompileException for invalid
517 pattern, and add error location support.
518 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
519 Now it returns MSXslNodeSet instance (for msxsl:node-set).
520 * Debug.cs : don't throw System.Exception.
521 * XslFunctions.cs : Added MSXslNodeSet class.
522 * XslTemplate.cs : reflected CompilePattern() change.
523 * XslTransformProcessor.cs : don't throw System.Exception.
524 * XsltCompiledContext.cs : don't throw System.Exception.
526 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
530 XslStylesheet.cs : made classes/enums internal.
532 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
534 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
535 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
536 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
537 XslTransformProcessor.cs : Make extra classes internal.
539 * XslKey.cs : It should require sorting.
540 * Debug.cs : Just avoid debug output. Only who want to output should
543 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
545 * GenericOutputter.cs : Culture-independency fix.
546 Replaced StringCollection to ArrayList.
547 * XslOutput.cs : Culture-independency fix.
549 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
551 * Compiler.cs : When BaseURI is an empty string, it should not try to
552 create Uri instance. This will fix bug #56832, but not sure.
553 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
554 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
555 should be the TextReader's NewLine).
556 * MSXslScriptManager.cs : Should raise an error when the prefix which
557 was specified by "implements-prefix" was not found.
559 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
561 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
562 when BaseURI for msxsl:script node is not available. This fixes
564 Don't output line number in the error message, when it is 0.
566 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
568 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
570 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
575 XslTransformProcessor.cs :
576 Throw specific types of exceptions instead of Exception.
577 * XslFunctions.cs, XsltCompiledContext.cs :
578 added node argument for XsltExtensionFunction ctor() etc.
580 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
582 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
583 CodeDom. Compilation error should be caught. This fixes bug #55875.
585 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
587 * XslStylesheet.cs : "version" attribute is also required for embedded
590 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
593 XslStylesheet.cs : Reject xsl element other than stylesheet and
594 transform. Check mandatory version attribute (only for existence).
596 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
598 * MSXslScriptManager.cs : if extension namespace was not found in
599 the script, just return null. Patch by Joshua Tauberer.
601 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
603 * XslLiteralElement.cs : quick fix for ArgumentNullException which
604 was because of the combination of non-namespaced instances and
605 exclude-result-prefixes.
607 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
609 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
610 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
611 * XslFunctions.cs : hereby Added.
612 * Compiler.cs : Removed deleted usingdecl.
614 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
616 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
617 * XslKey.cs : Added ExprKeyContainer expression type, which is
618 designed to be matched at any level.
619 * Compiler.cs : support for ExprKeyContainer.
621 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
623 * XslKey.cs : Now it collects key and matching nodes at the first
624 evaluation time. After that, we can just get them from the table.
625 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
626 prohibited key() usage in "match" and "use" attributes in xsl:key.
627 Modified accessibility of some classes.
628 * GenericOutputter.cs,
632 XmlWriterEmitter.cs : made classes internal.
633 * XslOutput.cs : support line info for exception.
634 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
636 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
638 * XsltCompiledContext.cs : fixed the length of context info array.
640 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
642 * XsltCompiledContext.cs :
643 replaced EnumeratorIterator with ListIterator
645 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
647 * GenericOutputter.cs,
650 XslTemplate.cs : tiny foreach elimination.
652 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
654 * XslOutput.cs : Reverted. default encoding should be utf-8.
656 2004-01-14 Jackson Harper <jackson@ximian.com>
658 * GenericOutputter.cs: Add constructors that do not take an
659 encoding to fix build.
661 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
663 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
664 write XML declaration. It means that output supports non document
665 entity. This fixes bug #52729.
666 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
667 modified WriteStartDocument() signature to receive Encoding.
668 * GenericOutputter.cs :
669 - Added .ctor() which receives Encoding. (It is used for TextWriter
670 output to get actual encoding.)
671 - Added .ctor() to take an boolean argument which indicates it is
672 variable content or not. (When variable, it does not call
673 WriteStartDocument().)
675 XsltCompiledContext.cs : comment out WriteLine().
676 * XslOutput.cs : set default encoding utf-16.
678 2004-01-08 Nick Drochak <ndrochak@ieee.org>
680 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
682 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
684 * XslDecimalFormat.cs : implemented format-number() other than number
686 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
687 catch ArgumentException which will be thrown by formatting process.
689 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
691 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
693 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
695 * XsltCompiledContext.cs: Remove workaround now that monodoc
698 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
700 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
701 aliases at compilation time, so evaluate at the first run-time.
703 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
705 * GenericOutputter.cs : support for runtime-determined output type.
706 * HtmlEmitter.cs : Fixed invalid doctype output.
707 Fixed incorrect double attribute output on non-HTML elements.
708 Improved indentation. Fixed "selected" attribute output.
709 Don't have to convert "'" to "'".
710 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
711 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
712 * XslStylesheet.cs, XsltCompiledContext.cs :
713 space resolution consideration for import and wildcard.
715 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
717 * Compiler.cs, XslTransformProcessor.cs :
718 Use XmlValidatingReader to support id() for external stylesheets.
719 * XslKey.cs, XsltCompiledContext.cs :
720 to evaluate MatchPattern and UsePattern, SetContext() is required.
721 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
723 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
725 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
726 Added WriteWhitespace().
727 * GenericOutputter.cs, XslTemplate.cs : Call above.
728 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
729 CurrentNode in for-each context have to be pulled at evaluation.
731 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
733 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
734 function for bugzilla #52144. It should be reverted soon.
736 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
738 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
740 * MSMslScriptManager.cs : modified generated assembly class to be unique
741 through running AppDomain.
742 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
743 arguments to actual argument types. Bugzilla #51450 should be fixed.
745 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
747 * HtmlEmitter.cs : Fixed incorrect character entity output.
749 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
751 * Added ScriptCompilerInfo.cs.
752 * MSXslScriptManager.cs : Fixed *true* author's name.
753 Implemented basic msxsl:script support.
754 * Compiler.cs : Added Evidence member.
756 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
758 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
759 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
760 Added WriteWhitespace() to assure not writing whitespaces as cdata.
761 * XslAttributeSet.cs : Error check if attribute-set contains other than
762 xsl:attribute. Error should be XsltException.
763 * XslDecimalFormat.cs : Complete equality check. Allow just one
764 character value for some attributes.
765 * XslStylesheet.cs : Made whitespace control setting overridable.
766 Added Version property (for the future compatibility mode).
767 Check unrecongnized top level element.
768 * XslTemplate.cs : Check priority as a number.
769 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
770 for xsl:preserve-space and xsl:strip-space support.
771 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
772 incomplete), PushScope and Pop
774 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
776 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
778 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
780 * Compiler.cs : In FromListString(), it should use default ns,
782 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
783 precedence. Doctype should be written even if SYSTEM id is absent.
784 Fixed possible multiple xmlns output.
786 - Encoding output using META element.
787 - Doctype name is fixed (html).
788 - Double quotation on PUBLIC and SYSTEM missing.
789 - Fixed incorrect tag name check for IMG.
790 - '>' should not be escaped.
791 * XmlWriterEmitter.cs :
792 Added newline before doctype. In WriteComment(), "--" and tail
793 '-' are not allowed (it escapes, while XmlWriter simply rejects).
794 * XslTransformProcessor.cs : cdata-section-elements should enclose
795 direct child tests only. Added PreserveWhitespace() (incomplete).
796 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
798 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
800 * IdPattern.cs : This should work against multiple ids.
802 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
805 * MSXslScriptManager.cs
807 * XslTransformProcessor.cs
808 * XsltCompiledContext.cs: Some work on msxsl script.
810 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
812 (in general: cdata-section-elements support, correct document()
813 base uri handling, and so on)
814 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
815 And move to document element. Added XslNameUtil.FromListString().
816 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
817 Added WriteCDataSection().
818 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
819 Added InsideCDataSection.
820 * GenericOutputter.cs :
821 In .ctor(), WriteState should be succeeded from output XmlWriter.
822 WriteNamespaceDecl() now drops declaration identical to existing one.
823 Removed obsolete htmlEmulation.
824 * XslOutput.cs : Added CDataSectionElements support.
825 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
826 * XslTransformProcessor.cs :
827 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
828 now considers xsl:exclude-element-prefixes on literal element.
829 Added PushCDataState() and PopCDataState().
830 * XsltCompiledContext.cs : When base uri of document() target is empty,
831 then it should use stylesheet's BaseURI, not that of current document.
833 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
835 * Compiler.cs : Modified decimal-format comparison code.
838 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
839 be called only when required.
840 * HtmlEmitter.cs : Improved indentation stuff.
841 * XslDecimalFormat.cs : Added incomplete implementation of
842 CheckSameAs() and FormatNumber().
844 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
845 from StringDictionary to ArrayList of QName (to keep order).
847 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
849 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
850 node type (i.e. attribute and namespace). Removed extraneous Clone().
851 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
853 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
855 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
856 XslStylesheet.cs : Added Keys support here.
857 * XslTransformProcessor.cs : Should call SetContext() to expressions
858 before evaluating current nodes.
859 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
860 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
861 for KeyPattern. It now uses CompiledStyle.FindKeys().
863 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
865 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
866 to Xalan tests and MS.NET implementation (only for test convenience).
867 * XslOutput.cs : Indent holds string rathen than bool. Its default value
868 varies in the context. When method="html", then default is "yes".
869 * XslTransformProcessor.cs : Extension element prefixes should not
870 be written as stylesheet namespaces.
871 * XsltCompiledContext.cs : Return type of generate-id() is string.
872 Implemented unparsed-entity-uri().
874 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
876 * Compiler.cs : More complete attribute set gathering.
877 GetNamespacesToCopy() should only return Local namespaces.
878 * GenericOutputter.cs : Added support for indentation.
879 Added easy hack for html output.
880 More correct Prefix handling (considers already defined ones).
881 Namespace emmission is moved to CheckState().
882 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
883 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
884 * GenericOutputter.cs, Outputter.cs :
885 Added CanProcessAttributes property for
886 use-attribute-sets of xsl:copy.
887 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
888 Added support for exclude-result-prefixes.
889 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
891 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
893 * Compiler.cs : It is not important, but attribute order became closer
894 to MS.NET and Xalan (assuming from OASIS tests).
896 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
898 * GenericOutputter.cs : Attribute wasn't overwritten its properties
899 because Attribute is struct it was let to another local variable.
901 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
903 * GenericOutputter.cs: make html output a warning, because doing
904 xml will be right most of the time.
906 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
908 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
909 here for a long time and it hurts thread safty and memory
912 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
914 * Compiler.cs: save the parser (will reduce memory allocation when
915 Jackson's jay patch is committed).
917 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
919 * Attribute.cs: Change to struct. Remove QName class.
920 * GenericOutputter.cs: use an Attribute [] rather than an
921 ArrayList. Allows us not to allocate Attributes, which is great
922 for speed. Roll our own allocation.
924 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
926 * Compiler.cs: add GetNsm to main class as well.
928 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
930 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
931 internal version so we get null if the attr doesnt exist.
933 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
935 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
936 where curVarScope == null
938 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
941 - Better handling of empty attributes (vs not being specified)
942 - Bug in handling #default
944 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
946 * Compiler.cs: Off by one when parsing localname of QName
947 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
948 children (so that they get overriden)
950 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
952 * GenericOutputter.cs: Output attributes in order recieved; not
953 required by spec, but useful for running test cases.
955 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
957 * GenericOutputter.cs - fix bug with outputting state.
958 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
959 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
961 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
963 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
964 exprs on use, pass to nav.
966 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
968 * Compiler.cs: pass satic context to Pattern ctor.
970 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
973 GenericOutputter.cs - generic Outputter implementation,
974 Attribute.cs - represents outputted attribute,
975 Emitter.cs - abstract output emitter,
976 TextEmitter.cs - text emitter,
977 XmlWriterEmitter.cs - emitter to XmlWriter.
978 * Checking of duplicating attributes is done in GenericOutputter.
979 * Namespace outputting logic is implemented in GenericOutputter.
980 * Outputter.cs: Writing namespace declarations is delegated to
981 derived classes (GenericOutputter).
982 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
984 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
986 * XslTransformProcessor.cs: evaluate variables at beginning
987 when / is current node.
989 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
991 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
992 Fix up namespace handeling
994 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
996 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
998 * XslDecimalFormat.cs: Stub for decimal-format.
1000 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
1002 * TextOutputter.cs: Add option to ignore element content (Oleg).
1004 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1006 * Compiler.cs: Really give null for blank avt's
1008 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1010 * Compiler.cs: Fixed lre/lre04.
1012 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1014 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
1015 won't have default namespace. See http://www.w3.org/TR/xslt#qname
1017 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1019 * XslTransformProcessor.cs: add support for resolving documents.
1020 * XsltCompiledContext: add support for document () function.
1022 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1024 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
1025 of the abstract methods in Outputter, making them call other
1026 functions with default values, remove impl's in derived classes.
1028 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1030 * Outputter.cs: s/Close/Done
1031 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
1032 * XslTransformProcessor.cs: Flush output when popping, pop at end.
1034 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1036 * Outputter.cs: Add support for namespaces.
1038 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1040 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
1041 XslTransformProcessor.cs: move output logic from XslStylesheet to
1044 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1046 * XslOutput.cs: add support for encoding.
1048 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1050 * *.cs: Support for xsl:output. (Oleg)
1052 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1054 * Compiler.cs: handle extension and excluded namespaces.
1056 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1058 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
1059 from the stylesheet for correct namespace resolution.
1061 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1063 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
1064 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
1066 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
1068 * XslTransformProcessor.cs: Add a table to detect when an object
1070 * XslAttributeSet.cs: Use the above table. Dont throw nullref
1071 exception when no use-attribute-sets are specified.
1073 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1075 * Compiler.cs: Add support for boolean attributes (yes/no).
1077 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1079 * Compiler.cs: Add method LocalNameOf, to get the local name of a
1081 * XslTransformProcessor.cs: Support for setting the XmlResolver.
1083 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1085 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
1087 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1089 * XslTransformProcessor.cs: Add EvaluateNumber method.
1091 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1093 * XsltCompiledContext.cs: Implement more functions.
1095 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1097 * Compiler.cs: Add support for key, utility function to parse
1098 QName's from the XsltContext. Store keys in the CompiledStyle, not
1100 * XslKey.cs: Real implementation
1101 * XslStylesheet.cs: Move the keys to CompiledStyle.
1102 * XsltCompiledContext.cs: Implement the key function
1104 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1106 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1107 the functions ;-). Also wrote current ().
1109 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1111 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1112 done in XPath. Add stubs for XSLT functions.
1114 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1116 * Compiler.cs: To resolve a variable you now need to pass the
1117 processor, so that it can be passed to IsEvaluated. A local will
1118 only be resolved if it has already been evaluated.
1119 * XsltCompiledContext.cs: Pass along the processor.
1121 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1123 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1124 variable values in the XslTransformProcessor.
1125 * XsltCompiledContext.cs: If the scope is null, don't look there!
1126 * Debug.cs: New method Assert
1128 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1130 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1131 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1132 internal methods in XPathNavigator. Remove verbose debugging messages.
1134 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>