1 2005-12-24 Atsushi Enomoto <atsushi@ximian.com>
3 * Compiler.cs : pass stylesheet version to XslOutput to determine
4 "indent" value validity.
5 * XslOutput.cs, HtmlEmitter.cs, GenericOutputter.cs : Reverted
6 buggy changes on "indent" attribute handling.
7 http://www.w3.org/TR/xslt#section-HTML-Output-Method
9 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
11 * XslOutput.cs: Reduced indentation of cases in switch statement.
13 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
15 * ScriptCompilerInfo.cs: Fixed line endings.
16 * XslStylesheet.cs: Beautify error messages.
17 * Debug.cs: Fixed line endings.
18 * XslOutput.cs: Indent is now bool instead of string, use
19 MoveToAttribute to navigate through attributes instead of using
20 GetAttribute, as we also need to distinguish attributes with
21 zero-length value from attributes that are not specified for
22 correct implementation of DOCTYPE. Implemented validation for
23 value of "omit-xml-declaration", "standalone" and "indent".
24 We now throw a XsltCompileException for unknown attribute.
25 * XmlWriterEmitter.cs: only skip WriteDocType is systemId is null.
26 * HtmlEmitter.cs: XslOutput.Indent is now bool. Fixed WriteDocType
28 * XmlDecimalFormat.cs: Beautify error messages.
29 * XslTemplate.cs: Beautify error messages.
30 * GenericOutputter.cs: XslOutput.Indent is now bool.
31 * Compiler.cs: Beautify error messages.
33 2005-12-21 Atsushi Enomoto <atsushi@ximian.com>
35 * XslTemplate.cs : don't check name and mode attributes on
36 non-'xsl:template' element. This should fix bug #77051.
38 2005-12-13 Andrew Skiba <andrews@mainsoft.com>
40 * XslDecimalFormat.jvm.cs: set correct defaults for NaN and Infinity
42 2005-11-30 Atsushi Enomoto <atsushi@ximian.com>
44 * ScriptCompilerInfo.cs : (VBCompilerInfo) There was a space between
45 '#' and 'ExternalResource'. bug #75789 should be fixed.
47 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
49 * XslKey.cs: fixed KeyIndexTable.Evaluate method, changed
50 XPathNavigator given to GetNodesByValue()
52 2005-11-17 Atsushi Enomoto <atsushi@ximian.com>
54 * XslCompiledContext.cs : since XsltContextInfo is struct, having
55 an array of this type and setting fields of each struct didn't
56 make sense. It thus blocked expected PreserveWhitespace behavior.
58 2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
60 * Compiler.cs : (FromString(s, hashtable)) pull default namespace
61 from the table for LRE (don't consider it as ""; spec. 7.1.2)
64 2005-09-16 Atsushi Enomoto <atsushi@ximian.com>
66 * ScriptCompilerInfo.cs : Compile correct replacement result.
69 2005-09-10 Atsushi Enomoto <atsushi@ximian.com>
71 * Compiler.cs : (Compile) check children only when it is the document
72 element. Fixed bug #76046.
74 2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
76 * ScriptCompilerInfo.cs : It should not be "#line" when the source is
77 not C#. It should fix bug #75789.
79 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
81 * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
82 To minimize attribute iteration, use Pattern.EvaluatedNodeType.
85 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
87 * XslFunctions.cs : XslTransform recovers from errors on document
88 resolution. Fixed bug #75663.
90 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
92 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
93 only for related elements.
95 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
97 * MSXslScriptManager.cs : it should ignore compiler warnings. This
100 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
102 * XslDecimalFormat.jvm.cs : added
104 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
106 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
107 support CodeDom). Use Guid.ToString("N").
109 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
111 * Compiler.cs : removed extraneous using_directive.
113 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
115 * XslKey.cs : the iterator does not require sorting (already sorted).
118 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
121 Variables are stored per stylesheet and added to compiler after
122 all of the contents are processed (handle import precedence).
123 Imports are now processed in prior to other contents (incorrect
124 imports are now rejected). After imports, process includes to
125 process nested imports. In-process included stylesheets are
126 temporarily stored in including stylesheet.
127 Handle keys like variables are handled.
128 Added Compile() that is splitted from .ctor().
130 Store keys in compiler and compiled stylesheet.
131 Duplicate variables in imports are now overriden as expected.
132 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
134 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
136 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
137 from each EvaluateXXX() methods.
138 * MsxslScriptManager.cs : not to leave reference to stylesheet
139 navigator, pass current node to Compile().
140 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
141 navigator cache for each pattern, to avoid Clone() and not to leave
142 reference to already-done instance navigator.
144 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
146 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
147 * XslKey.cs : Use XSLT pattern parser for match.
148 UsePattern is now "Use" (it is not a pattern).
149 Reimplemented Evaluate() to make full use of index table.
150 Added Matches() to handle shorter match evaluation. For const value
151 for key (e.g. key patterns), it could avoid Evaluate().
152 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
153 new KeyIndexTable.Matches().
154 * XslFunctions.cs : Added PatternMatches() that just delegates to new
155 XsltCompiledContext.MatchesKey().
157 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
159 * GenericOutputter.cs : commented out warned fields.
161 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
163 * XslKey.cs : removed last ListIterator.ctor() argument.
164 Reverted the last commit that changed internal key index change
165 from ArrayList to Hashtable. Avoid clone in CollectIndex().
166 Sort results in Evaluate() before passing list to ListIterator.
167 * XslFunctions.cs : removed last ListIterator.ctor() argument.
169 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
172 XsltCompiledContext.cs,
174 XslTransformProcessor.cs : Now dynamic context key index table is
175 separate from XslKey static context. Added KeyIndexTable class and
176 store it into XsltCompiledContext with hash name-table mapping.
177 Cache map from statically-named key to index table.
178 Use Hashtable for internal key cache instead of ArrayList.
180 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
182 * XslKey.cs : fixed node iteration on collecting key indices which
183 could have resulted in an infinite loop.
185 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
187 * XslDecimalFormat.cs : in some cases it does not throw format
190 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
192 * XsltCompiledContext.cs,
193 XslStylesheet.cs : Fixed significant performance loss on whitespace
196 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
198 * XslKey.cs : removed unused NeedAbsoluteMatching.
199 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
200 Added some missing ToString() overrides.
202 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
204 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
205 to work fine with xsl:*-space attributes as expected.
206 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
207 actually nothing. It should not use XsltContext.PreserveWhitespace()
208 because this method is used to control output, while the referenced
209 method is used to control source document.
211 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
213 * XslTemplate.cs : First non-element content were incorrectly ignored.
215 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
217 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
218 to reduce references to stylesheet XPathNavigator. To accomplish it,
219 IStaticXsltContext does not declare GetNsm() anymore. All xslt
220 function types now directly hold IStaticXsltContext.
221 * XslStylesheet.cs : removed "Compiler c" field.
222 Removed unused properties.
224 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
226 * GenericOutputter.cs : When WriteStartElement() requires to add
227 new namespace declaration, _currentNamespaceDecls needs to be set.
229 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
231 * GenericOutputter.cs : for duplicate attribute in an element, no need
232 to keep previous prefix.
234 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
236 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
237 namespace. Rewrite prefix only when there is non-empty namespace.
239 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
241 * XslStylesheet.cs : Now namespace aliases are collected in prior to
242 all other toplevel elements. Removed unused code.
244 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
246 * GenericOutputter.cs : compute attribute prefix only when actual
247 emission. Fixed some cases that namespace output was missing.
249 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
251 * GenericOutputter.cs : no need to use two collections to store
252 pending attributes. Just use ordered ListDictionary.
253 newNamespace.Add(int) causes extraneous boxing.
255 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
257 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
258 OutputLiteralNamespaceUriNodes() so that everyone can understand
259 what it means and when it should be invoked.
261 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
263 * Compiler.cs : added another CompileTemplateContent() which is
264 requred in xsl:for-each. Commented out unused method.
266 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
268 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
269 in stylesheet should be considered in TryElementNamespacesOutput().
270 ParseQNameListAttribute() is not properly working for filling
273 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
275 * XslStylesheet.cs : included stylesheet could be literal result
276 element as stylesheet (see the spec 2.6.1).
278 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
280 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
281 empty string when nsURI is empty.
282 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
283 unlike xml but like span, as written in the spec 16.2.
285 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
287 * XslCompiledContext.cs, XslTransformProcessor.cs :
288 According to errata E25, those namespaces 1) that has the same
289 name as current element's prefix, or an empty name when current
290 element's namespace URI is empty, are not written to output.
291 So added current element information to XPathContext and added
292 prefix parameter to PushElementState(), added xsl:copy check to
293 TryElementNamespacesOutput().
294 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
296 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
298 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
301 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
303 * XslTemplate.cs : According to the spec 5.7, it is an error for
304 xsl:template to have 'mode' without 'match'.
306 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
308 * Compiler.cs : added ns lookup with nsDecls Hashtable.
310 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
312 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
314 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
316 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
317 namespace "http://www.w3.org/XML/1998/namespace".
319 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
321 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
322 * HtmlEmitter.cs : CDATA nodes are written just as text.
323 * GenericOutputter.cs : custom format are treated just as XML output.
325 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
329 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
330 and WriteState. Writing XML declaration is done inside
331 DetermineOutputMethod().
333 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
335 * Compiler.cs : reverted previous fix, since it should be done
336 in XslTransformProcessor with root stylesheet.
337 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
338 don't output alias namespaces. And now consider null exclusions.
340 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
342 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
344 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
346 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
347 namespace nodes. Patch by Andrew Skiba with some fixes.
348 * XslTransformProcessor.cs : Patch by Andrew Skiba.
349 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
350 as to handle all namespace nodes to copy in stylesheet nodes.
351 Global parameterss are evaluated before global variables.
352 * XmlOutputter.cs : removed unused code.
356 * Actually variables and params should check reference recursion.
357 This patch incompletely fixes the problem.
358 * Those operations that considers excluded-result-prefixes must
359 also check those attributes of its ancestors.
361 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
363 * XmlWriterEmitter.cs : String.Replace() was insufficient for
364 sequential candidates for replacement. Patch by Andrew Skiba.
366 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
368 * GenericOutputter.cs : don't output extraneous xml declaration.
371 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
373 * XslStylesheet.cs : MS implementation had chosen to recover from
374 the error, in the way specified in the spec 7.7.1. Patch by Andrew
377 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
379 * XslTemplate.cs : if input is literal result element, it could result
380 in ArgumentException. Patch by Andrew Skiba.
382 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
384 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
385 NullReferenceException. Patch by Andrew Skiba.
387 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
389 * XslOutput.cs : MS.NET recovers from unknown encoding according to
390 XSLT spec 16.1. Patch by Andrew Skiba.
392 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
394 * HtmlEmitter.cs : patch by Andrew Skiba.
395 Remove extra element prefix output. simplify attribute prefix output.
396 Attribute output might have resulted in invalid element stack peek.
397 Output specified media type if any.
399 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
401 * Compiler.cs : Patch by Andrew Skiba.
402 wrap internal exception with XsltCompileException.
403 Raise an error for not-found document URI.
404 QName might contain sequential whitespaces and thus could be empty.
406 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
408 * XslAttributeSet.cs : just ignore other kind of nodes than element
409 in its content. Fix by Andrew Skiba.
411 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
413 * XslOutput.cs : for html and text output mode, just set internal
414 omitXmlDeclaration status true. Patch by Andrew Skiba.
416 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
418 * XslFunctions.cs : fixed line ending mixture.
420 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
422 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
425 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
428 Compiler.cs : XmlResolver.ResolveUri() may return null.
430 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
432 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
435 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
437 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
439 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
441 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
444 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
446 * XslStylesheet.cs : removed unused fields.
447 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
450 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
452 * Compiler.cs, XslTransformProcessor.cs :
453 when creating XmlTextReader, reuse XmlNameTable.
455 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
457 * Compiler.cs : Changes that reflects CompiledExpression changes.
459 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
461 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
462 This fixes bug #67390.
464 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
466 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
468 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
470 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
471 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
472 : Globalization. Removed unused code.
474 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
476 * XslKey.cs : Key-value search in absolute path search was
479 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
481 * HtmlEmitter.cs : Correct URL escape implementation.
483 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
485 * XslTransformProcessor.cs : On document() function, close the
486 XmlTextReader opened from uri string.
488 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
491 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
492 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
493 should override another overload.
495 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
497 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
498 assembly should not include the .dll extension.
500 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
503 - CompilePattern() now throws XsltCompileException for invalid
504 pattern, and add error location support.
505 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
506 Now it returns MSXslNodeSet instance (for msxsl:node-set).
507 * Debug.cs : don't throw System.Exception.
508 * XslFunctions.cs : Added MSXslNodeSet class.
509 * XslTemplate.cs : reflected CompilePattern() change.
510 * XslTransformProcessor.cs : don't throw System.Exception.
511 * XsltCompiledContext.cs : don't throw System.Exception.
513 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
517 XslStylesheet.cs : made classes/enums internal.
519 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
521 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
522 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
523 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
524 XslTransformProcessor.cs : Make extra classes internal.
526 * XslKey.cs : It should require sorting.
527 * Debug.cs : Just avoid debug output. Only who want to output should
530 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
532 * GenericOutputter.cs : Culture-independency fix.
533 Replaced StringCollection to ArrayList.
534 * XslOutput.cs : Culture-independency fix.
536 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
538 * Compiler.cs : When BaseURI is an empty string, it should not try to
539 create Uri instance. This will fix bug #56832, but not sure.
540 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
541 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
542 should be the TextReader's NewLine).
543 * MSXslScriptManager.cs : Should raise an error when the prefix which
544 was specified by "implements-prefix" was not found.
546 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
548 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
549 when BaseURI for msxsl:script node is not available. This fixes
551 Don't output line number in the error message, when it is 0.
553 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
555 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
557 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
562 XslTransformProcessor.cs :
563 Throw specific types of exceptions instead of Exception.
564 * XslFunctions.cs, XsltCompiledContext.cs :
565 added node argument for XsltExtensionFunction ctor() etc.
567 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
569 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
570 CodeDom. Compilation error should be caught. This fixes bug #55875.
572 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
574 * XslStylesheet.cs : "version" attribute is also required for embedded
577 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
580 XslStylesheet.cs : Reject xsl element other than stylesheet and
581 transform. Check mandatory version attribute (only for existence).
583 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
585 * MSXslScriptManager.cs : if extension namespace was not found in
586 the script, just return null. Patch by Joshua Tauberer.
588 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
590 * XslLiteralElement.cs : quick fix for ArgumentNullException which
591 was because of the combination of non-namespaced instances and
592 exclude-result-prefixes.
594 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
596 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
597 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
598 * XslFunctions.cs : hereby Added.
599 * Compiler.cs : Removed deleted usingdecl.
601 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
603 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
604 * XslKey.cs : Added ExprKeyContainer expression type, which is
605 designed to be matched at any level.
606 * Compiler.cs : support for ExprKeyContainer.
608 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
610 * XslKey.cs : Now it collects key and matching nodes at the first
611 evaluation time. After that, we can just get them from the table.
612 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
613 prohibited key() usage in "match" and "use" attributes in xsl:key.
614 Modified accessibility of some classes.
615 * GenericOutputter.cs,
619 XmlWriterEmitter.cs : made classes internal.
620 * XslOutput.cs : support line info for exception.
621 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
623 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
625 * XsltCompiledContext.cs : fixed the length of context info array.
627 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
629 * XsltCompiledContext.cs :
630 replaced EnumeratorIterator with ListIterator
632 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
634 * GenericOutputter.cs,
637 XslTemplate.cs : tiny foreach elimination.
639 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
641 * XslOutput.cs : Reverted. default encoding should be utf-8.
643 2004-01-14 Jackson Harper <jackson@ximian.com>
645 * GenericOutputter.cs: Add constructors that do not take an
646 encoding to fix build.
648 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
650 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
651 write XML declaration. It means that output supports non document
652 entity. This fixes bug #52729.
653 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
654 modified WriteStartDocument() signature to receive Encoding.
655 * GenericOutputter.cs :
656 - Added .ctor() which receives Encoding. (It is used for TextWriter
657 output to get actual encoding.)
658 - Added .ctor() to take an boolean argument which indicates it is
659 variable content or not. (When variable, it does not call
660 WriteStartDocument().)
662 XsltCompiledContext.cs : comment out WriteLine().
663 * XslOutput.cs : set default encoding utf-16.
665 2004-01-08 Nick Drochak <ndrochak@ieee.org>
667 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
669 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
671 * XslDecimalFormat.cs : implemented format-number() other than number
673 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
674 catch ArgumentException which will be thrown by formatting process.
676 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
678 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
680 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
682 * XsltCompiledContext.cs: Remove workaround now that monodoc
685 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
687 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
688 aliases at compilation time, so evaluate at the first run-time.
690 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
692 * GenericOutputter.cs : support for runtime-determined output type.
693 * HtmlEmitter.cs : Fixed invalid doctype output.
694 Fixed incorrect double attribute output on non-HTML elements.
695 Improved indentation. Fixed "selected" attribute output.
696 Don't have to convert "'" to "'".
697 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
698 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
699 * XslStylesheet.cs, XsltCompiledContext.cs :
700 space resolution consideration for import and wildcard.
702 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
704 * Compiler.cs, XslTransformProcessor.cs :
705 Use XmlValidatingReader to support id() for external stylesheets.
706 * XslKey.cs, XsltCompiledContext.cs :
707 to evaluate MatchPattern and UsePattern, SetContext() is required.
708 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
710 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
712 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
713 Added WriteWhitespace().
714 * GenericOutputter.cs, XslTemplate.cs : Call above.
715 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
716 CurrentNode in for-each context have to be pulled at evaluation.
718 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
720 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
721 function for bugzilla #52144. It should be reverted soon.
723 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
725 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
727 * MSMslScriptManager.cs : modified generated assembly class to be unique
728 through running AppDomain.
729 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
730 arguments to actual argument types. Bugzilla #51450 should be fixed.
732 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
734 * HtmlEmitter.cs : Fixed incorrect character entity output.
736 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
738 * Added ScriptCompilerInfo.cs.
739 * MSXslScriptManager.cs : Fixed *true* author's name.
740 Implemented basic msxsl:script support.
741 * Compiler.cs : Added Evidence member.
743 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
745 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
746 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
747 Added WriteWhitespace() to assure not writing whitespaces as cdata.
748 * XslAttributeSet.cs : Error check if attribute-set contains other than
749 xsl:attribute. Error should be XsltException.
750 * XslDecimalFormat.cs : Complete equality check. Allow just one
751 character value for some attributes.
752 * XslStylesheet.cs : Made whitespace control setting overridable.
753 Added Version property (for the future compatibility mode).
754 Check unrecongnized top level element.
755 * XslTemplate.cs : Check priority as a number.
756 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
757 for xsl:preserve-space and xsl:strip-space support.
758 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
759 incomplete), PushScope and Pop
761 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
763 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
765 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
767 * Compiler.cs : In FromListString(), it should use default ns,
769 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
770 precedence. Doctype should be written even if SYSTEM id is absent.
771 Fixed possible multiple xmlns output.
773 - Encoding output using META element.
774 - Doctype name is fixed (html).
775 - Double quotation on PUBLIC and SYSTEM missing.
776 - Fixed incorrect tag name check for IMG.
777 - '>' should not be escaped.
778 * XmlWriterEmitter.cs :
779 Added newline before doctype. In WriteComment(), "--" and tail
780 '-' are not allowed (it escapes, while XmlWriter simply rejects).
781 * XslTransformProcessor.cs : cdata-section-elements should enclose
782 direct child tests only. Added PreserveWhitespace() (incomplete).
783 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
785 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
787 * IdPattern.cs : This should work against multiple ids.
789 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
792 * MSXslScriptManager.cs
794 * XslTransformProcessor.cs
795 * XsltCompiledContext.cs: Some work on msxsl script.
797 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
799 (in general: cdata-section-elements support, correct document()
800 base uri handling, and so on)
801 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
802 And move to document element. Added XslNameUtil.FromListString().
803 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
804 Added WriteCDataSection().
805 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
806 Added InsideCDataSection.
807 * GenericOutputter.cs :
808 In .ctor(), WriteState should be succeeded from output XmlWriter.
809 WriteNamespaceDecl() now drops declaration identical to existing one.
810 Removed obsolete htmlEmulation.
811 * XslOutput.cs : Added CDataSectionElements support.
812 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
813 * XslTransformProcessor.cs :
814 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
815 now considers xsl:exclude-element-prefixes on literal element.
816 Added PushCDataState() and PopCDataState().
817 * XsltCompiledContext.cs : When base uri of document() target is empty,
818 then it should use stylesheet's BaseURI, not that of current document.
820 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
822 * Compiler.cs : Modified decimal-format comparison code.
825 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
826 be called only when required.
827 * HtmlEmitter.cs : Improved indentation stuff.
828 * XslDecimalFormat.cs : Added incomplete implementation of
829 CheckSameAs() and FormatNumber().
831 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
832 from StringDictionary to ArrayList of QName (to keep order).
834 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
836 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
837 node type (i.e. attribute and namespace). Removed extraneous Clone().
838 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
840 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
842 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
843 XslStylesheet.cs : Added Keys support here.
844 * XslTransformProcessor.cs : Should call SetContext() to expressions
845 before evaluating current nodes.
846 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
847 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
848 for KeyPattern. It now uses CompiledStyle.FindKeys().
850 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
852 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
853 to Xalan tests and MS.NET implementation (only for test convenience).
854 * XslOutput.cs : Indent holds string rathen than bool. Its default value
855 varies in the context. When method="html", then default is "yes".
856 * XslTransformProcessor.cs : Extension element prefixes should not
857 be written as stylesheet namespaces.
858 * XsltCompiledContext.cs : Return type of generate-id() is string.
859 Implemented unparsed-entity-uri().
861 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
863 * Compiler.cs : More complete attribute set gathering.
864 GetNamespacesToCopy() should only return Local namespaces.
865 * GenericOutputter.cs : Added support for indentation.
866 Added easy hack for html output.
867 More correct Prefix handling (considers already defined ones).
868 Namespace emmission is moved to CheckState().
869 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
870 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
871 * GenericOutputter.cs, Outputter.cs :
872 Added CanProcessAttributes property for
873 use-attribute-sets of xsl:copy.
874 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
875 Added support for exclude-result-prefixes.
876 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
878 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
880 * Compiler.cs : It is not important, but attribute order became closer
881 to MS.NET and Xalan (assuming from OASIS tests).
883 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
885 * GenericOutputter.cs : Attribute wasn't overwritten its properties
886 because Attribute is struct it was let to another local variable.
888 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
890 * GenericOutputter.cs: make html output a warning, because doing
891 xml will be right most of the time.
893 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
895 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
896 here for a long time and it hurts thread safty and memory
899 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
901 * Compiler.cs: save the parser (will reduce memory allocation when
902 Jackson's jay patch is committed).
904 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
906 * Attribute.cs: Change to struct. Remove QName class.
907 * GenericOutputter.cs: use an Attribute [] rather than an
908 ArrayList. Allows us not to allocate Attributes, which is great
909 for speed. Roll our own allocation.
911 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
913 * Compiler.cs: add GetNsm to main class as well.
915 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
917 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
918 internal version so we get null if the attr doesnt exist.
920 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
922 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
923 where curVarScope == null
925 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
928 - Better handling of empty attributes (vs not being specified)
929 - Bug in handling #default
931 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
933 * Compiler.cs: Off by one when parsing localname of QName
934 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
935 children (so that they get overriden)
937 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
939 * GenericOutputter.cs: Output attributes in order recieved; not
940 required by spec, but useful for running test cases.
942 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
944 * GenericOutputter.cs - fix bug with outputting state.
945 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
946 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
948 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
950 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
951 exprs on use, pass to nav.
953 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
955 * Compiler.cs: pass satic context to Pattern ctor.
957 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
960 GenericOutputter.cs - generic Outputter implementation,
961 Attribute.cs - represents outputted attribute,
962 Emitter.cs - abstract output emitter,
963 TextEmitter.cs - text emitter,
964 XmlWriterEmitter.cs - emitter to XmlWriter.
965 * Checking of duplicating attributes is done in GenericOutputter.
966 * Namespace outputting logic is implemented in GenericOutputter.
967 * Outputter.cs: Writing namespace declarations is delegated to
968 derived classes (GenericOutputter).
969 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
971 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
973 * XslTransformProcessor.cs: evaluate variables at beginning
974 when / is current node.
976 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
978 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
979 Fix up namespace handeling
981 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
983 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
985 * XslDecimalFormat.cs: Stub for decimal-format.
987 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
989 * TextOutputter.cs: Add option to ignore element content (Oleg).
991 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
993 * Compiler.cs: Really give null for blank avt's
995 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
997 * Compiler.cs: Fixed lre/lre04.
999 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1001 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
1002 won't have default namespace. See http://www.w3.org/TR/xslt#qname
1004 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1006 * XslTransformProcessor.cs: add support for resolving documents.
1007 * XsltCompiledContext: add support for document () function.
1009 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1011 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
1012 of the abstract methods in Outputter, making them call other
1013 functions with default values, remove impl's in derived classes.
1015 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1017 * Outputter.cs: s/Close/Done
1018 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
1019 * XslTransformProcessor.cs: Flush output when popping, pop at end.
1021 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1023 * Outputter.cs: Add support for namespaces.
1025 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1027 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
1028 XslTransformProcessor.cs: move output logic from XslStylesheet to
1031 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1033 * XslOutput.cs: add support for encoding.
1035 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1037 * *.cs: Support for xsl:output. (Oleg)
1039 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1041 * Compiler.cs: handle extension and excluded namespaces.
1043 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1045 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
1046 from the stylesheet for correct namespace resolution.
1048 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1050 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
1051 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
1053 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
1055 * XslTransformProcessor.cs: Add a table to detect when an object
1057 * XslAttributeSet.cs: Use the above table. Dont throw nullref
1058 exception when no use-attribute-sets are specified.
1060 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1062 * Compiler.cs: Add support for boolean attributes (yes/no).
1064 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1066 * Compiler.cs: Add method LocalNameOf, to get the local name of a
1068 * XslTransformProcessor.cs: Support for setting the XmlResolver.
1070 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1072 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
1074 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1076 * XslTransformProcessor.cs: Add EvaluateNumber method.
1078 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1080 * XsltCompiledContext.cs: Implement more functions.
1082 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1084 * Compiler.cs: Add support for key, utility function to parse
1085 QName's from the XsltContext. Store keys in the CompiledStyle, not
1087 * XslKey.cs: Real implementation
1088 * XslStylesheet.cs: Move the keys to CompiledStyle.
1089 * XsltCompiledContext.cs: Implement the key function
1091 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1093 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1094 the functions ;-). Also wrote current ().
1096 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1098 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1099 done in XPath. Add stubs for XSLT functions.
1101 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1103 * Compiler.cs: To resolve a variable you now need to pass the
1104 processor, so that it can be passed to IsEvaluated. A local will
1105 only be resolved if it has already been evaluated.
1106 * XsltCompiledContext.cs: Pass along the processor.
1108 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1110 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1111 variable values in the XslTransformProcessor.
1112 * XsltCompiledContext.cs: If the scope is null, don't look there!
1113 * Debug.cs: New method Assert
1115 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1117 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1118 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1119 internal methods in XPathNavigator. Remove verbose debugging messages.
1121 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>