1 2005-12-13 Andrew Skiba <andrews@mainsoft.com>
3 * XslDecimalFormat.jvm.cs: set correct defaults for NaN and Infinity
5 2005-11-30 Atsushi Enomoto <atsushi@ximian.com>
7 * ScriptCompilerInfo.cs : (VBCompilerInfo) There was a space between
8 '#' and 'ExternalResource'. bug #75789 should be fixed.
10 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
12 * XslKey.cs: fixed KeyIndexTable.Evaluate method, changed
13 XPathNavigator given to GetNodesByValue()
15 2005-11-17 Atsushi Enomoto <atsushi@ximian.com>
17 * XslCompiledContext.cs : since XsltContextInfo is struct, having
18 an array of this type and setting fields of each struct didn't
19 make sense. It thus blocked expected PreserveWhitespace behavior.
21 2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
23 * Compiler.cs : (FromString(s, hashtable)) pull default namespace
24 from the table for LRE (don't consider it as ""; spec. 7.1.2)
27 2005-09-16 Atsushi Enomoto <atsushi@ximian.com>
29 * ScriptCompilerInfo.cs : Compile correct replacement result.
32 2005-09-10 Atsushi Enomoto <atsushi@ximian.com>
34 * Compiler.cs : (Compile) check children only when it is the document
35 element. Fixed bug #76046.
37 2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
39 * ScriptCompilerInfo.cs : It should not be "#line" when the source is
40 not C#. It should fix bug #75789.
42 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
44 * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
45 To minimize attribute iteration, use Pattern.EvaluatedNodeType.
48 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
50 * XslFunctions.cs : XslTransform recovers from errors on document
51 resolution. Fixed bug #75663.
53 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
55 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
56 only for related elements.
58 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
60 * MSXslScriptManager.cs : it should ignore compiler warnings. This
63 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
65 * XslDecimalFormat.jvm.cs : added
67 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
69 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
70 support CodeDom). Use Guid.ToString("N").
72 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
74 * Compiler.cs : removed extraneous using_directive.
76 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
78 * XslKey.cs : the iterator does not require sorting (already sorted).
81 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
84 Variables are stored per stylesheet and added to compiler after
85 all of the contents are processed (handle import precedence).
86 Imports are now processed in prior to other contents (incorrect
87 imports are now rejected). After imports, process includes to
88 process nested imports. In-process included stylesheets are
89 temporarily stored in including stylesheet.
90 Handle keys like variables are handled.
91 Added Compile() that is splitted from .ctor().
93 Store keys in compiler and compiled stylesheet.
94 Duplicate variables in imports are now overriden as expected.
95 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
97 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
99 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
100 from each EvaluateXXX() methods.
101 * MsxslScriptManager.cs : not to leave reference to stylesheet
102 navigator, pass current node to Compile().
103 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
104 navigator cache for each pattern, to avoid Clone() and not to leave
105 reference to already-done instance navigator.
107 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
109 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
110 * XslKey.cs : Use XSLT pattern parser for match.
111 UsePattern is now "Use" (it is not a pattern).
112 Reimplemented Evaluate() to make full use of index table.
113 Added Matches() to handle shorter match evaluation. For const value
114 for key (e.g. key patterns), it could avoid Evaluate().
115 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
116 new KeyIndexTable.Matches().
117 * XslFunctions.cs : Added PatternMatches() that just delegates to new
118 XsltCompiledContext.MatchesKey().
120 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
122 * GenericOutputter.cs : commented out warned fields.
124 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
126 * XslKey.cs : removed last ListIterator.ctor() argument.
127 Reverted the last commit that changed internal key index change
128 from ArrayList to Hashtable. Avoid clone in CollectIndex().
129 Sort results in Evaluate() before passing list to ListIterator.
130 * XslFunctions.cs : removed last ListIterator.ctor() argument.
132 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
135 XsltCompiledContext.cs,
137 XslTransformProcessor.cs : Now dynamic context key index table is
138 separate from XslKey static context. Added KeyIndexTable class and
139 store it into XsltCompiledContext with hash name-table mapping.
140 Cache map from statically-named key to index table.
141 Use Hashtable for internal key cache instead of ArrayList.
143 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
145 * XslKey.cs : fixed node iteration on collecting key indices which
146 could have resulted in an infinite loop.
148 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
150 * XslDecimalFormat.cs : in some cases it does not throw format
153 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
155 * XsltCompiledContext.cs,
156 XslStylesheet.cs : Fixed significant performance loss on whitespace
159 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
161 * XslKey.cs : removed unused NeedAbsoluteMatching.
162 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
163 Added some missing ToString() overrides.
165 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
167 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
168 to work fine with xsl:*-space attributes as expected.
169 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
170 actually nothing. It should not use XsltContext.PreserveWhitespace()
171 because this method is used to control output, while the referenced
172 method is used to control source document.
174 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
176 * XslTemplate.cs : First non-element content were incorrectly ignored.
178 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
180 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
181 to reduce references to stylesheet XPathNavigator. To accomplish it,
182 IStaticXsltContext does not declare GetNsm() anymore. All xslt
183 function types now directly hold IStaticXsltContext.
184 * XslStylesheet.cs : removed "Compiler c" field.
185 Removed unused properties.
187 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
189 * GenericOutputter.cs : When WriteStartElement() requires to add
190 new namespace declaration, _currentNamespaceDecls needs to be set.
192 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
194 * GenericOutputter.cs : for duplicate attribute in an element, no need
195 to keep previous prefix.
197 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
199 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
200 namespace. Rewrite prefix only when there is non-empty namespace.
202 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
204 * XslStylesheet.cs : Now namespace aliases are collected in prior to
205 all other toplevel elements. Removed unused code.
207 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
209 * GenericOutputter.cs : compute attribute prefix only when actual
210 emission. Fixed some cases that namespace output was missing.
212 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
214 * GenericOutputter.cs : no need to use two collections to store
215 pending attributes. Just use ordered ListDictionary.
216 newNamespace.Add(int) causes extraneous boxing.
218 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
220 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
221 OutputLiteralNamespaceUriNodes() so that everyone can understand
222 what it means and when it should be invoked.
224 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
226 * Compiler.cs : added another CompileTemplateContent() which is
227 requred in xsl:for-each. Commented out unused method.
229 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
231 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
232 in stylesheet should be considered in TryElementNamespacesOutput().
233 ParseQNameListAttribute() is not properly working for filling
236 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
238 * XslStylesheet.cs : included stylesheet could be literal result
239 element as stylesheet (see the spec 2.6.1).
241 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
243 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
244 empty string when nsURI is empty.
245 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
246 unlike xml but like span, as written in the spec 16.2.
248 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
250 * XslCompiledContext.cs, XslTransformProcessor.cs :
251 According to errata E25, those namespaces 1) that has the same
252 name as current element's prefix, or an empty name when current
253 element's namespace URI is empty, are not written to output.
254 So added current element information to XPathContext and added
255 prefix parameter to PushElementState(), added xsl:copy check to
256 TryElementNamespacesOutput().
257 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
259 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
261 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
264 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
266 * XslTemplate.cs : According to the spec 5.7, it is an error for
267 xsl:template to have 'mode' without 'match'.
269 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
271 * Compiler.cs : added ns lookup with nsDecls Hashtable.
273 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
275 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
277 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
279 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
280 namespace "http://www.w3.org/XML/1998/namespace".
282 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
284 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
285 * HtmlEmitter.cs : CDATA nodes are written just as text.
286 * GenericOutputter.cs : custom format are treated just as XML output.
288 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
292 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
293 and WriteState. Writing XML declaration is done inside
294 DetermineOutputMethod().
296 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
298 * Compiler.cs : reverted previous fix, since it should be done
299 in XslTransformProcessor with root stylesheet.
300 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
301 don't output alias namespaces. And now consider null exclusions.
303 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
305 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
307 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
309 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
310 namespace nodes. Patch by Andrew Skiba with some fixes.
311 * XslTransformProcessor.cs : Patch by Andrew Skiba.
312 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
313 as to handle all namespace nodes to copy in stylesheet nodes.
314 Global parameterss are evaluated before global variables.
315 * XmlOutputter.cs : removed unused code.
319 * Actually variables and params should check reference recursion.
320 This patch incompletely fixes the problem.
321 * Those operations that considers excluded-result-prefixes must
322 also check those attributes of its ancestors.
324 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
326 * XmlWriterEmitter.cs : String.Replace() was insufficient for
327 sequential candidates for replacement. Patch by Andrew Skiba.
329 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
331 * GenericOutputter.cs : don't output extraneous xml declaration.
334 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
336 * XslStylesheet.cs : MS implementation had chosen to recover from
337 the error, in the way specified in the spec 7.7.1. Patch by Andrew
340 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
342 * XslTemplate.cs : if input is literal result element, it could result
343 in ArgumentException. Patch by Andrew Skiba.
345 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
347 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
348 NullReferenceException. Patch by Andrew Skiba.
350 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
352 * XslOutput.cs : MS.NET recovers from unknown encoding according to
353 XSLT spec 16.1. Patch by Andrew Skiba.
355 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
357 * HtmlEmitter.cs : patch by Andrew Skiba.
358 Remove extra element prefix output. simplify attribute prefix output.
359 Attribute output might have resulted in invalid element stack peek.
360 Output specified media type if any.
362 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
364 * Compiler.cs : Patch by Andrew Skiba.
365 wrap internal exception with XsltCompileException.
366 Raise an error for not-found document URI.
367 QName might contain sequential whitespaces and thus could be empty.
369 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
371 * XslAttributeSet.cs : just ignore other kind of nodes than element
372 in its content. Fix by Andrew Skiba.
374 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
376 * XslOutput.cs : for html and text output mode, just set internal
377 omitXmlDeclaration status true. Patch by Andrew Skiba.
379 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
381 * XslFunctions.cs : fixed line ending mixture.
383 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
385 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
388 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
391 Compiler.cs : XmlResolver.ResolveUri() may return null.
393 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
395 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
398 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
400 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
402 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
404 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
407 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
409 * XslStylesheet.cs : removed unused fields.
410 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
413 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
415 * Compiler.cs, XslTransformProcessor.cs :
416 when creating XmlTextReader, reuse XmlNameTable.
418 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
420 * Compiler.cs : Changes that reflects CompiledExpression changes.
422 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
424 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
425 This fixes bug #67390.
427 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
429 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
431 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
433 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
434 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
435 : Globalization. Removed unused code.
437 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
439 * XslKey.cs : Key-value search in absolute path search was
442 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
444 * HtmlEmitter.cs : Correct URL escape implementation.
446 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
448 * XslTransformProcessor.cs : On document() function, close the
449 XmlTextReader opened from uri string.
451 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
454 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
455 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
456 should override another overload.
458 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
460 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
461 assembly should not include the .dll extension.
463 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
466 - CompilePattern() now throws XsltCompileException for invalid
467 pattern, and add error location support.
468 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
469 Now it returns MSXslNodeSet instance (for msxsl:node-set).
470 * Debug.cs : don't throw System.Exception.
471 * XslFunctions.cs : Added MSXslNodeSet class.
472 * XslTemplate.cs : reflected CompilePattern() change.
473 * XslTransformProcessor.cs : don't throw System.Exception.
474 * XsltCompiledContext.cs : don't throw System.Exception.
476 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
480 XslStylesheet.cs : made classes/enums internal.
482 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
484 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
485 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
486 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
487 XslTransformProcessor.cs : Make extra classes internal.
489 * XslKey.cs : It should require sorting.
490 * Debug.cs : Just avoid debug output. Only who want to output should
493 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
495 * GenericOutputter.cs : Culture-independency fix.
496 Replaced StringCollection to ArrayList.
497 * XslOutput.cs : Culture-independency fix.
499 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
501 * Compiler.cs : When BaseURI is an empty string, it should not try to
502 create Uri instance. This will fix bug #56832, but not sure.
503 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
504 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
505 should be the TextReader's NewLine).
506 * MSXslScriptManager.cs : Should raise an error when the prefix which
507 was specified by "implements-prefix" was not found.
509 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
511 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
512 when BaseURI for msxsl:script node is not available. This fixes
514 Don't output line number in the error message, when it is 0.
516 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
518 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
520 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
525 XslTransformProcessor.cs :
526 Throw specific types of exceptions instead of Exception.
527 * XslFunctions.cs, XsltCompiledContext.cs :
528 added node argument for XsltExtensionFunction ctor() etc.
530 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
532 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
533 CodeDom. Compilation error should be caught. This fixes bug #55875.
535 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
537 * XslStylesheet.cs : "version" attribute is also required for embedded
540 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
543 XslStylesheet.cs : Reject xsl element other than stylesheet and
544 transform. Check mandatory version attribute (only for existence).
546 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
548 * MSXslScriptManager.cs : if extension namespace was not found in
549 the script, just return null. Patch by Joshua Tauberer.
551 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
553 * XslLiteralElement.cs : quick fix for ArgumentNullException which
554 was because of the combination of non-namespaced instances and
555 exclude-result-prefixes.
557 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
559 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
560 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
561 * XslFunctions.cs : hereby Added.
562 * Compiler.cs : Removed deleted usingdecl.
564 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
566 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
567 * XslKey.cs : Added ExprKeyContainer expression type, which is
568 designed to be matched at any level.
569 * Compiler.cs : support for ExprKeyContainer.
571 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
573 * XslKey.cs : Now it collects key and matching nodes at the first
574 evaluation time. After that, we can just get them from the table.
575 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
576 prohibited key() usage in "match" and "use" attributes in xsl:key.
577 Modified accessibility of some classes.
578 * GenericOutputter.cs,
582 XmlWriterEmitter.cs : made classes internal.
583 * XslOutput.cs : support line info for exception.
584 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
586 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
588 * XsltCompiledContext.cs : fixed the length of context info array.
590 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
592 * XsltCompiledContext.cs :
593 replaced EnumeratorIterator with ListIterator
595 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
597 * GenericOutputter.cs,
600 XslTemplate.cs : tiny foreach elimination.
602 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
604 * XslOutput.cs : Reverted. default encoding should be utf-8.
606 2004-01-14 Jackson Harper <jackson@ximian.com>
608 * GenericOutputter.cs: Add constructors that do not take an
609 encoding to fix build.
611 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
613 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
614 write XML declaration. It means that output supports non document
615 entity. This fixes bug #52729.
616 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
617 modified WriteStartDocument() signature to receive Encoding.
618 * GenericOutputter.cs :
619 - Added .ctor() which receives Encoding. (It is used for TextWriter
620 output to get actual encoding.)
621 - Added .ctor() to take an boolean argument which indicates it is
622 variable content or not. (When variable, it does not call
623 WriteStartDocument().)
625 XsltCompiledContext.cs : comment out WriteLine().
626 * XslOutput.cs : set default encoding utf-16.
628 2004-01-08 Nick Drochak <ndrochak@ieee.org>
630 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
632 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
634 * XslDecimalFormat.cs : implemented format-number() other than number
636 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
637 catch ArgumentException which will be thrown by formatting process.
639 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
641 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
643 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
645 * XsltCompiledContext.cs: Remove workaround now that monodoc
648 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
650 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
651 aliases at compilation time, so evaluate at the first run-time.
653 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
655 * GenericOutputter.cs : support for runtime-determined output type.
656 * HtmlEmitter.cs : Fixed invalid doctype output.
657 Fixed incorrect double attribute output on non-HTML elements.
658 Improved indentation. Fixed "selected" attribute output.
659 Don't have to convert "'" to "'".
660 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
661 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
662 * XslStylesheet.cs, XsltCompiledContext.cs :
663 space resolution consideration for import and wildcard.
665 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
667 * Compiler.cs, XslTransformProcessor.cs :
668 Use XmlValidatingReader to support id() for external stylesheets.
669 * XslKey.cs, XsltCompiledContext.cs :
670 to evaluate MatchPattern and UsePattern, SetContext() is required.
671 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
673 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
675 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
676 Added WriteWhitespace().
677 * GenericOutputter.cs, XslTemplate.cs : Call above.
678 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
679 CurrentNode in for-each context have to be pulled at evaluation.
681 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
683 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
684 function for bugzilla #52144. It should be reverted soon.
686 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
688 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
690 * MSMslScriptManager.cs : modified generated assembly class to be unique
691 through running AppDomain.
692 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
693 arguments to actual argument types. Bugzilla #51450 should be fixed.
695 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
697 * HtmlEmitter.cs : Fixed incorrect character entity output.
699 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
701 * Added ScriptCompilerInfo.cs.
702 * MSXslScriptManager.cs : Fixed *true* author's name.
703 Implemented basic msxsl:script support.
704 * Compiler.cs : Added Evidence member.
706 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
708 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
709 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
710 Added WriteWhitespace() to assure not writing whitespaces as cdata.
711 * XslAttributeSet.cs : Error check if attribute-set contains other than
712 xsl:attribute. Error should be XsltException.
713 * XslDecimalFormat.cs : Complete equality check. Allow just one
714 character value for some attributes.
715 * XslStylesheet.cs : Made whitespace control setting overridable.
716 Added Version property (for the future compatibility mode).
717 Check unrecongnized top level element.
718 * XslTemplate.cs : Check priority as a number.
719 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
720 for xsl:preserve-space and xsl:strip-space support.
721 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
722 incomplete), PushScope and Pop
724 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
726 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
728 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
730 * Compiler.cs : In FromListString(), it should use default ns,
732 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
733 precedence. Doctype should be written even if SYSTEM id is absent.
734 Fixed possible multiple xmlns output.
736 - Encoding output using META element.
737 - Doctype name is fixed (html).
738 - Double quotation on PUBLIC and SYSTEM missing.
739 - Fixed incorrect tag name check for IMG.
740 - '>' should not be escaped.
741 * XmlWriterEmitter.cs :
742 Added newline before doctype. In WriteComment(), "--" and tail
743 '-' are not allowed (it escapes, while XmlWriter simply rejects).
744 * XslTransformProcessor.cs : cdata-section-elements should enclose
745 direct child tests only. Added PreserveWhitespace() (incomplete).
746 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
748 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
750 * IdPattern.cs : This should work against multiple ids.
752 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
755 * MSXslScriptManager.cs
757 * XslTransformProcessor.cs
758 * XsltCompiledContext.cs: Some work on msxsl script.
760 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
762 (in general: cdata-section-elements support, correct document()
763 base uri handling, and so on)
764 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
765 And move to document element. Added XslNameUtil.FromListString().
766 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
767 Added WriteCDataSection().
768 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
769 Added InsideCDataSection.
770 * GenericOutputter.cs :
771 In .ctor(), WriteState should be succeeded from output XmlWriter.
772 WriteNamespaceDecl() now drops declaration identical to existing one.
773 Removed obsolete htmlEmulation.
774 * XslOutput.cs : Added CDataSectionElements support.
775 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
776 * XslTransformProcessor.cs :
777 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
778 now considers xsl:exclude-element-prefixes on literal element.
779 Added PushCDataState() and PopCDataState().
780 * XsltCompiledContext.cs : When base uri of document() target is empty,
781 then it should use stylesheet's BaseURI, not that of current document.
783 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
785 * Compiler.cs : Modified decimal-format comparison code.
788 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
789 be called only when required.
790 * HtmlEmitter.cs : Improved indentation stuff.
791 * XslDecimalFormat.cs : Added incomplete implementation of
792 CheckSameAs() and FormatNumber().
794 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
795 from StringDictionary to ArrayList of QName (to keep order).
797 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
799 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
800 node type (i.e. attribute and namespace). Removed extraneous Clone().
801 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
803 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
805 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
806 XslStylesheet.cs : Added Keys support here.
807 * XslTransformProcessor.cs : Should call SetContext() to expressions
808 before evaluating current nodes.
809 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
810 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
811 for KeyPattern. It now uses CompiledStyle.FindKeys().
813 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
815 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
816 to Xalan tests and MS.NET implementation (only for test convenience).
817 * XslOutput.cs : Indent holds string rathen than bool. Its default value
818 varies in the context. When method="html", then default is "yes".
819 * XslTransformProcessor.cs : Extension element prefixes should not
820 be written as stylesheet namespaces.
821 * XsltCompiledContext.cs : Return type of generate-id() is string.
822 Implemented unparsed-entity-uri().
824 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
826 * Compiler.cs : More complete attribute set gathering.
827 GetNamespacesToCopy() should only return Local namespaces.
828 * GenericOutputter.cs : Added support for indentation.
829 Added easy hack for html output.
830 More correct Prefix handling (considers already defined ones).
831 Namespace emmission is moved to CheckState().
832 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
833 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
834 * GenericOutputter.cs, Outputter.cs :
835 Added CanProcessAttributes property for
836 use-attribute-sets of xsl:copy.
837 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
838 Added support for exclude-result-prefixes.
839 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
841 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
843 * Compiler.cs : It is not important, but attribute order became closer
844 to MS.NET and Xalan (assuming from OASIS tests).
846 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
848 * GenericOutputter.cs : Attribute wasn't overwritten its properties
849 because Attribute is struct it was let to another local variable.
851 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
853 * GenericOutputter.cs: make html output a warning, because doing
854 xml will be right most of the time.
856 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
858 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
859 here for a long time and it hurts thread safty and memory
862 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
864 * Compiler.cs: save the parser (will reduce memory allocation when
865 Jackson's jay patch is committed).
867 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
869 * Attribute.cs: Change to struct. Remove QName class.
870 * GenericOutputter.cs: use an Attribute [] rather than an
871 ArrayList. Allows us not to allocate Attributes, which is great
872 for speed. Roll our own allocation.
874 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
876 * Compiler.cs: add GetNsm to main class as well.
878 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
880 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
881 internal version so we get null if the attr doesnt exist.
883 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
885 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
886 where curVarScope == null
888 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
891 - Better handling of empty attributes (vs not being specified)
892 - Bug in handling #default
894 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
896 * Compiler.cs: Off by one when parsing localname of QName
897 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
898 children (so that they get overriden)
900 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
902 * GenericOutputter.cs: Output attributes in order recieved; not
903 required by spec, but useful for running test cases.
905 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
907 * GenericOutputter.cs - fix bug with outputting state.
908 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
909 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
911 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
913 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
914 exprs on use, pass to nav.
916 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
918 * Compiler.cs: pass satic context to Pattern ctor.
920 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
923 GenericOutputter.cs - generic Outputter implementation,
924 Attribute.cs - represents outputted attribute,
925 Emitter.cs - abstract output emitter,
926 TextEmitter.cs - text emitter,
927 XmlWriterEmitter.cs - emitter to XmlWriter.
928 * Checking of duplicating attributes is done in GenericOutputter.
929 * Namespace outputting logic is implemented in GenericOutputter.
930 * Outputter.cs: Writing namespace declarations is delegated to
931 derived classes (GenericOutputter).
932 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
934 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
936 * XslTransformProcessor.cs: evaluate variables at beginning
937 when / is current node.
939 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
941 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
942 Fix up namespace handeling
944 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
946 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
948 * XslDecimalFormat.cs: Stub for decimal-format.
950 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
952 * TextOutputter.cs: Add option to ignore element content (Oleg).
954 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
956 * Compiler.cs: Really give null for blank avt's
958 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
960 * Compiler.cs: Fixed lre/lre04.
962 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
964 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
965 won't have default namespace. See http://www.w3.org/TR/xslt#qname
967 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
969 * XslTransformProcessor.cs: add support for resolving documents.
970 * XsltCompiledContext: add support for document () function.
972 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
974 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
975 of the abstract methods in Outputter, making them call other
976 functions with default values, remove impl's in derived classes.
978 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
980 * Outputter.cs: s/Close/Done
981 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
982 * XslTransformProcessor.cs: Flush output when popping, pop at end.
984 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
986 * Outputter.cs: Add support for namespaces.
988 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
990 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
991 XslTransformProcessor.cs: move output logic from XslStylesheet to
994 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
996 * XslOutput.cs: add support for encoding.
998 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1000 * *.cs: Support for xsl:output. (Oleg)
1002 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1004 * Compiler.cs: handle extension and excluded namespaces.
1006 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1008 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
1009 from the stylesheet for correct namespace resolution.
1011 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1013 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
1014 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
1016 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
1018 * XslTransformProcessor.cs: Add a table to detect when an object
1020 * XslAttributeSet.cs: Use the above table. Dont throw nullref
1021 exception when no use-attribute-sets are specified.
1023 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1025 * Compiler.cs: Add support for boolean attributes (yes/no).
1027 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1029 * Compiler.cs: Add method LocalNameOf, to get the local name of a
1031 * XslTransformProcessor.cs: Support for setting the XmlResolver.
1033 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1035 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
1037 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1039 * XslTransformProcessor.cs: Add EvaluateNumber method.
1041 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1043 * XsltCompiledContext.cs: Implement more functions.
1045 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1047 * Compiler.cs: Add support for key, utility function to parse
1048 QName's from the XsltContext. Store keys in the CompiledStyle, not
1050 * XslKey.cs: Real implementation
1051 * XslStylesheet.cs: Move the keys to CompiledStyle.
1052 * XsltCompiledContext.cs: Implement the key function
1054 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1056 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1057 the functions ;-). Also wrote current ().
1059 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1061 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1062 done in XPath. Add stubs for XSLT functions.
1064 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1066 * Compiler.cs: To resolve a variable you now need to pass the
1067 processor, so that it can be passed to IsEvaluated. A local will
1068 only be resolved if it has already been evaluated.
1069 * XsltCompiledContext.cs: Pass along the processor.
1071 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1073 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1074 variable values in the XslTransformProcessor.
1075 * XsltCompiledContext.cs: If the scope is null, don't look there!
1076 * Debug.cs: New method Assert
1078 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1080 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1081 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1082 internal methods in XPathNavigator. Remove verbose debugging messages.
1084 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>