1 2005-09-16 Atsushi Enomoto <atsushi@ximian.com>
3 * ScriptCompilerInfo.cs : Compile correct replacement result.
6 2005-09-10 Atsushi Enomoto <atsushi@ximian.com>
8 * Compiler.cs : (Compile) check children only when it is the document
9 element. Fixed bug #76046.
11 2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
13 * ScriptCompilerInfo.cs : It should not be "#line" when the source is
14 not C#. It should fix bug #75789.
16 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
18 * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
19 To minimize attribute iteration, use Pattern.EvaluatedNodeType.
22 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
24 * XslFunctions.cs : XslTransform recovers from errors on document
25 resolution. Fixed bug #75663.
27 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
29 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
30 only for related elements.
32 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
34 * MSXslScriptManager.cs : it should ignore compiler warnings. This
37 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
39 * XslDecimalFormat.jvm.cs : added
41 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
43 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
44 support CodeDom). Use Guid.ToString("N").
46 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
48 * Compiler.cs : removed extraneous using_directive.
50 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
52 * XslKey.cs : the iterator does not require sorting (already sorted).
55 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
58 Variables are stored per stylesheet and added to compiler after
59 all of the contents are processed (handle import precedence).
60 Imports are now processed in prior to other contents (incorrect
61 imports are now rejected). After imports, process includes to
62 process nested imports. In-process included stylesheets are
63 temporarily stored in including stylesheet.
64 Handle keys like variables are handled.
65 Added Compile() that is splitted from .ctor().
67 Store keys in compiler and compiled stylesheet.
68 Duplicate variables in imports are now overriden as expected.
69 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
71 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
73 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
74 from each EvaluateXXX() methods.
75 * MsxslScriptManager.cs : not to leave reference to stylesheet
76 navigator, pass current node to Compile().
77 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
78 navigator cache for each pattern, to avoid Clone() and not to leave
79 reference to already-done instance navigator.
81 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
83 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
84 * XslKey.cs : Use XSLT pattern parser for match.
85 UsePattern is now "Use" (it is not a pattern).
86 Reimplemented Evaluate() to make full use of index table.
87 Added Matches() to handle shorter match evaluation. For const value
88 for key (e.g. key patterns), it could avoid Evaluate().
89 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
90 new KeyIndexTable.Matches().
91 * XslFunctions.cs : Added PatternMatches() that just delegates to new
92 XsltCompiledContext.MatchesKey().
94 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
96 * GenericOutputter.cs : commented out warned fields.
98 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
100 * XslKey.cs : removed last ListIterator.ctor() argument.
101 Reverted the last commit that changed internal key index change
102 from ArrayList to Hashtable. Avoid clone in CollectIndex().
103 Sort results in Evaluate() before passing list to ListIterator.
104 * XslFunctions.cs : removed last ListIterator.ctor() argument.
106 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
109 XsltCompiledContext.cs,
111 XslTransformProcessor.cs : Now dynamic context key index table is
112 separate from XslKey static context. Added KeyIndexTable class and
113 store it into XsltCompiledContext with hash name-table mapping.
114 Cache map from statically-named key to index table.
115 Use Hashtable for internal key cache instead of ArrayList.
117 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
119 * XslKey.cs : fixed node iteration on collecting key indices which
120 could have resulted in an infinite loop.
122 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
124 * XslDecimalFormat.cs : in some cases it does not throw format
127 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
129 * XsltCompiledContext.cs,
130 XslStylesheet.cs : Fixed significant performance loss on whitespace
133 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
135 * XslKey.cs : removed unused NeedAbsoluteMatching.
136 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
137 Added some missing ToString() overrides.
139 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
141 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
142 to work fine with xsl:*-space attributes as expected.
143 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
144 actually nothing. It should not use XsltContext.PreserveWhitespace()
145 because this method is used to control output, while the referenced
146 method is used to control source document.
148 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
150 * XslTemplate.cs : First non-element content were incorrectly ignored.
152 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
154 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
155 to reduce references to stylesheet XPathNavigator. To accomplish it,
156 IStaticXsltContext does not declare GetNsm() anymore. All xslt
157 function types now directly hold IStaticXsltContext.
158 * XslStylesheet.cs : removed "Compiler c" field.
159 Removed unused properties.
161 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
163 * GenericOutputter.cs : When WriteStartElement() requires to add
164 new namespace declaration, _currentNamespaceDecls needs to be set.
166 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
168 * GenericOutputter.cs : for duplicate attribute in an element, no need
169 to keep previous prefix.
171 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
173 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
174 namespace. Rewrite prefix only when there is non-empty namespace.
176 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
178 * XslStylesheet.cs : Now namespace aliases are collected in prior to
179 all other toplevel elements. Removed unused code.
181 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
183 * GenericOutputter.cs : compute attribute prefix only when actual
184 emission. Fixed some cases that namespace output was missing.
186 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
188 * GenericOutputter.cs : no need to use two collections to store
189 pending attributes. Just use ordered ListDictionary.
190 newNamespace.Add(int) causes extraneous boxing.
192 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
194 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
195 OutputLiteralNamespaceUriNodes() so that everyone can understand
196 what it means and when it should be invoked.
198 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
200 * Compiler.cs : added another CompileTemplateContent() which is
201 requred in xsl:for-each. Commented out unused method.
203 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
205 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
206 in stylesheet should be considered in TryElementNamespacesOutput().
207 ParseQNameListAttribute() is not properly working for filling
210 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
212 * XslStylesheet.cs : included stylesheet could be literal result
213 element as stylesheet (see the spec 2.6.1).
215 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
217 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
218 empty string when nsURI is empty.
219 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
220 unlike xml but like span, as written in the spec 16.2.
222 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
224 * XslCompiledContext.cs, XslTransformProcessor.cs :
225 According to errata E25, those namespaces 1) that has the same
226 name as current element's prefix, or an empty name when current
227 element's namespace URI is empty, are not written to output.
228 So added current element information to XPathContext and added
229 prefix parameter to PushElementState(), added xsl:copy check to
230 TryElementNamespacesOutput().
231 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
233 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
235 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
238 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
240 * XslTemplate.cs : According to the spec 5.7, it is an error for
241 xsl:template to have 'mode' without 'match'.
243 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
245 * Compiler.cs : added ns lookup with nsDecls Hashtable.
247 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
249 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
251 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
253 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
254 namespace "http://www.w3.org/XML/1998/namespace".
256 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
258 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
259 * HtmlEmitter.cs : CDATA nodes are written just as text.
260 * GenericOutputter.cs : custom format are treated just as XML output.
262 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
266 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
267 and WriteState. Writing XML declaration is done inside
268 DetermineOutputMethod().
270 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
272 * Compiler.cs : reverted previous fix, since it should be done
273 in XslTransformProcessor with root stylesheet.
274 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
275 don't output alias namespaces. And now consider null exclusions.
277 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
279 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
281 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
283 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
284 namespace nodes. Patch by Andrew Skiba with some fixes.
285 * XslTransformProcessor.cs : Patch by Andrew Skiba.
286 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
287 as to handle all namespace nodes to copy in stylesheet nodes.
288 Global parameterss are evaluated before global variables.
289 * XmlOutputter.cs : removed unused code.
293 * Actually variables and params should check reference recursion.
294 This patch incompletely fixes the problem.
295 * Those operations that considers excluded-result-prefixes must
296 also check those attributes of its ancestors.
298 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
300 * XmlWriterEmitter.cs : String.Replace() was insufficient for
301 sequential candidates for replacement. Patch by Andrew Skiba.
303 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
305 * GenericOutputter.cs : don't output extraneous xml declaration.
308 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
310 * XslStylesheet.cs : MS implementation had chosen to recover from
311 the error, in the way specified in the spec 7.7.1. Patch by Andrew
314 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
316 * XslTemplate.cs : if input is literal result element, it could result
317 in ArgumentException. Patch by Andrew Skiba.
319 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
321 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
322 NullReferenceException. Patch by Andrew Skiba.
324 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
326 * XslOutput.cs : MS.NET recovers from unknown encoding according to
327 XSLT spec 16.1. Patch by Andrew Skiba.
329 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
331 * HtmlEmitter.cs : patch by Andrew Skiba.
332 Remove extra element prefix output. simplify attribute prefix output.
333 Attribute output might have resulted in invalid element stack peek.
334 Output specified media type if any.
336 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
338 * Compiler.cs : Patch by Andrew Skiba.
339 wrap internal exception with XsltCompileException.
340 Raise an error for not-found document URI.
341 QName might contain sequential whitespaces and thus could be empty.
343 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
345 * XslAttributeSet.cs : just ignore other kind of nodes than element
346 in its content. Fix by Andrew Skiba.
348 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
350 * XslOutput.cs : for html and text output mode, just set internal
351 omitXmlDeclaration status true. Patch by Andrew Skiba.
353 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
355 * XslFunctions.cs : fixed line ending mixture.
357 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
359 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
362 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
365 Compiler.cs : XmlResolver.ResolveUri() may return null.
367 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
369 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
372 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
374 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
376 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
378 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
381 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
383 * XslStylesheet.cs : removed unused fields.
384 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
387 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
389 * Compiler.cs, XslTransformProcessor.cs :
390 when creating XmlTextReader, reuse XmlNameTable.
392 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
394 * Compiler.cs : Changes that reflects CompiledExpression changes.
396 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
398 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
399 This fixes bug #67390.
401 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
403 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
405 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
407 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
408 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
409 : Globalization. Removed unused code.
411 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
413 * XslKey.cs : Key-value search in absolute path search was
416 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
418 * HtmlEmitter.cs : Correct URL escape implementation.
420 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
422 * XslTransformProcessor.cs : On document() function, close the
423 XmlTextReader opened from uri string.
425 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
428 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
429 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
430 should override another overload.
432 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
434 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
435 assembly should not include the .dll extension.
437 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
440 - CompilePattern() now throws XsltCompileException for invalid
441 pattern, and add error location support.
442 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
443 Now it returns MSXslNodeSet instance (for msxsl:node-set).
444 * Debug.cs : don't throw System.Exception.
445 * XslFunctions.cs : Added MSXslNodeSet class.
446 * XslTemplate.cs : reflected CompilePattern() change.
447 * XslTransformProcessor.cs : don't throw System.Exception.
448 * XsltCompiledContext.cs : don't throw System.Exception.
450 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
454 XslStylesheet.cs : made classes/enums internal.
456 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
458 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
459 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
460 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
461 XslTransformProcessor.cs : Make extra classes internal.
463 * XslKey.cs : It should require sorting.
464 * Debug.cs : Just avoid debug output. Only who want to output should
467 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
469 * GenericOutputter.cs : Culture-independency fix.
470 Replaced StringCollection to ArrayList.
471 * XslOutput.cs : Culture-independency fix.
473 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
475 * Compiler.cs : When BaseURI is an empty string, it should not try to
476 create Uri instance. This will fix bug #56832, but not sure.
477 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
478 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
479 should be the TextReader's NewLine).
480 * MSXslScriptManager.cs : Should raise an error when the prefix which
481 was specified by "implements-prefix" was not found.
483 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
485 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
486 when BaseURI for msxsl:script node is not available. This fixes
488 Don't output line number in the error message, when it is 0.
490 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
492 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
494 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
499 XslTransformProcessor.cs :
500 Throw specific types of exceptions instead of Exception.
501 * XslFunctions.cs, XsltCompiledContext.cs :
502 added node argument for XsltExtensionFunction ctor() etc.
504 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
506 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
507 CodeDom. Compilation error should be caught. This fixes bug #55875.
509 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
511 * XslStylesheet.cs : "version" attribute is also required for embedded
514 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
517 XslStylesheet.cs : Reject xsl element other than stylesheet and
518 transform. Check mandatory version attribute (only for existence).
520 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
522 * MSXslScriptManager.cs : if extension namespace was not found in
523 the script, just return null. Patch by Joshua Tauberer.
525 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
527 * XslLiteralElement.cs : quick fix for ArgumentNullException which
528 was because of the combination of non-namespaced instances and
529 exclude-result-prefixes.
531 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
533 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
534 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
535 * XslFunctions.cs : hereby Added.
536 * Compiler.cs : Removed deleted usingdecl.
538 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
540 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
541 * XslKey.cs : Added ExprKeyContainer expression type, which is
542 designed to be matched at any level.
543 * Compiler.cs : support for ExprKeyContainer.
545 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
547 * XslKey.cs : Now it collects key and matching nodes at the first
548 evaluation time. After that, we can just get them from the table.
549 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
550 prohibited key() usage in "match" and "use" attributes in xsl:key.
551 Modified accessibility of some classes.
552 * GenericOutputter.cs,
556 XmlWriterEmitter.cs : made classes internal.
557 * XslOutput.cs : support line info for exception.
558 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
560 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
562 * XsltCompiledContext.cs : fixed the length of context info array.
564 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
566 * XsltCompiledContext.cs :
567 replaced EnumeratorIterator with ListIterator
569 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
571 * GenericOutputter.cs,
574 XslTemplate.cs : tiny foreach elimination.
576 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
578 * XslOutput.cs : Reverted. default encoding should be utf-8.
580 2004-01-14 Jackson Harper <jackson@ximian.com>
582 * GenericOutputter.cs: Add constructors that do not take an
583 encoding to fix build.
585 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
587 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
588 write XML declaration. It means that output supports non document
589 entity. This fixes bug #52729.
590 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
591 modified WriteStartDocument() signature to receive Encoding.
592 * GenericOutputter.cs :
593 - Added .ctor() which receives Encoding. (It is used for TextWriter
594 output to get actual encoding.)
595 - Added .ctor() to take an boolean argument which indicates it is
596 variable content or not. (When variable, it does not call
597 WriteStartDocument().)
599 XsltCompiledContext.cs : comment out WriteLine().
600 * XslOutput.cs : set default encoding utf-16.
602 2004-01-08 Nick Drochak <ndrochak@ieee.org>
604 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
606 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
608 * XslDecimalFormat.cs : implemented format-number() other than number
610 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
611 catch ArgumentException which will be thrown by formatting process.
613 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
615 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
617 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
619 * XsltCompiledContext.cs: Remove workaround now that monodoc
622 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
624 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
625 aliases at compilation time, so evaluate at the first run-time.
627 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
629 * GenericOutputter.cs : support for runtime-determined output type.
630 * HtmlEmitter.cs : Fixed invalid doctype output.
631 Fixed incorrect double attribute output on non-HTML elements.
632 Improved indentation. Fixed "selected" attribute output.
633 Don't have to convert "'" to "'".
634 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
635 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
636 * XslStylesheet.cs, XsltCompiledContext.cs :
637 space resolution consideration for import and wildcard.
639 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
641 * Compiler.cs, XslTransformProcessor.cs :
642 Use XmlValidatingReader to support id() for external stylesheets.
643 * XslKey.cs, XsltCompiledContext.cs :
644 to evaluate MatchPattern and UsePattern, SetContext() is required.
645 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
647 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
649 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
650 Added WriteWhitespace().
651 * GenericOutputter.cs, XslTemplate.cs : Call above.
652 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
653 CurrentNode in for-each context have to be pulled at evaluation.
655 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
657 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
658 function for bugzilla #52144. It should be reverted soon.
660 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
662 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
664 * MSMslScriptManager.cs : modified generated assembly class to be unique
665 through running AppDomain.
666 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
667 arguments to actual argument types. Bugzilla #51450 should be fixed.
669 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
671 * HtmlEmitter.cs : Fixed incorrect character entity output.
673 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
675 * Added ScriptCompilerInfo.cs.
676 * MSXslScriptManager.cs : Fixed *true* author's name.
677 Implemented basic msxsl:script support.
678 * Compiler.cs : Added Evidence member.
680 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
682 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
683 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
684 Added WriteWhitespace() to assure not writing whitespaces as cdata.
685 * XslAttributeSet.cs : Error check if attribute-set contains other than
686 xsl:attribute. Error should be XsltException.
687 * XslDecimalFormat.cs : Complete equality check. Allow just one
688 character value for some attributes.
689 * XslStylesheet.cs : Made whitespace control setting overridable.
690 Added Version property (for the future compatibility mode).
691 Check unrecongnized top level element.
692 * XslTemplate.cs : Check priority as a number.
693 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
694 for xsl:preserve-space and xsl:strip-space support.
695 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
696 incomplete), PushScope and Pop
698 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
700 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
702 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
704 * Compiler.cs : In FromListString(), it should use default ns,
706 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
707 precedence. Doctype should be written even if SYSTEM id is absent.
708 Fixed possible multiple xmlns output.
710 - Encoding output using META element.
711 - Doctype name is fixed (html).
712 - Double quotation on PUBLIC and SYSTEM missing.
713 - Fixed incorrect tag name check for IMG.
714 - '>' should not be escaped.
715 * XmlWriterEmitter.cs :
716 Added newline before doctype. In WriteComment(), "--" and tail
717 '-' are not allowed (it escapes, while XmlWriter simply rejects).
718 * XslTransformProcessor.cs : cdata-section-elements should enclose
719 direct child tests only. Added PreserveWhitespace() (incomplete).
720 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
722 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
724 * IdPattern.cs : This should work against multiple ids.
726 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
729 * MSXslScriptManager.cs
731 * XslTransformProcessor.cs
732 * XsltCompiledContext.cs: Some work on msxsl script.
734 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
736 (in general: cdata-section-elements support, correct document()
737 base uri handling, and so on)
738 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
739 And move to document element. Added XslNameUtil.FromListString().
740 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
741 Added WriteCDataSection().
742 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
743 Added InsideCDataSection.
744 * GenericOutputter.cs :
745 In .ctor(), WriteState should be succeeded from output XmlWriter.
746 WriteNamespaceDecl() now drops declaration identical to existing one.
747 Removed obsolete htmlEmulation.
748 * XslOutput.cs : Added CDataSectionElements support.
749 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
750 * XslTransformProcessor.cs :
751 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
752 now considers xsl:exclude-element-prefixes on literal element.
753 Added PushCDataState() and PopCDataState().
754 * XsltCompiledContext.cs : When base uri of document() target is empty,
755 then it should use stylesheet's BaseURI, not that of current document.
757 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
759 * Compiler.cs : Modified decimal-format comparison code.
762 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
763 be called only when required.
764 * HtmlEmitter.cs : Improved indentation stuff.
765 * XslDecimalFormat.cs : Added incomplete implementation of
766 CheckSameAs() and FormatNumber().
768 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
769 from StringDictionary to ArrayList of QName (to keep order).
771 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
773 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
774 node type (i.e. attribute and namespace). Removed extraneous Clone().
775 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
777 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
779 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
780 XslStylesheet.cs : Added Keys support here.
781 * XslTransformProcessor.cs : Should call SetContext() to expressions
782 before evaluating current nodes.
783 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
784 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
785 for KeyPattern. It now uses CompiledStyle.FindKeys().
787 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
789 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
790 to Xalan tests and MS.NET implementation (only for test convenience).
791 * XslOutput.cs : Indent holds string rathen than bool. Its default value
792 varies in the context. When method="html", then default is "yes".
793 * XslTransformProcessor.cs : Extension element prefixes should not
794 be written as stylesheet namespaces.
795 * XsltCompiledContext.cs : Return type of generate-id() is string.
796 Implemented unparsed-entity-uri().
798 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
800 * Compiler.cs : More complete attribute set gathering.
801 GetNamespacesToCopy() should only return Local namespaces.
802 * GenericOutputter.cs : Added support for indentation.
803 Added easy hack for html output.
804 More correct Prefix handling (considers already defined ones).
805 Namespace emmission is moved to CheckState().
806 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
807 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
808 * GenericOutputter.cs, Outputter.cs :
809 Added CanProcessAttributes property for
810 use-attribute-sets of xsl:copy.
811 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
812 Added support for exclude-result-prefixes.
813 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
815 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
817 * Compiler.cs : It is not important, but attribute order became closer
818 to MS.NET and Xalan (assuming from OASIS tests).
820 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
822 * GenericOutputter.cs : Attribute wasn't overwritten its properties
823 because Attribute is struct it was let to another local variable.
825 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
827 * GenericOutputter.cs: make html output a warning, because doing
828 xml will be right most of the time.
830 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
832 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
833 here for a long time and it hurts thread safty and memory
836 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
838 * Compiler.cs: save the parser (will reduce memory allocation when
839 Jackson's jay patch is committed).
841 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
843 * Attribute.cs: Change to struct. Remove QName class.
844 * GenericOutputter.cs: use an Attribute [] rather than an
845 ArrayList. Allows us not to allocate Attributes, which is great
846 for speed. Roll our own allocation.
848 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
850 * Compiler.cs: add GetNsm to main class as well.
852 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
854 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
855 internal version so we get null if the attr doesnt exist.
857 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
859 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
860 where curVarScope == null
862 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
865 - Better handling of empty attributes (vs not being specified)
866 - Bug in handling #default
868 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
870 * Compiler.cs: Off by one when parsing localname of QName
871 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
872 children (so that they get overriden)
874 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
876 * GenericOutputter.cs: Output attributes in order recieved; not
877 required by spec, but useful for running test cases.
879 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
881 * GenericOutputter.cs - fix bug with outputting state.
882 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
883 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
885 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
887 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
888 exprs on use, pass to nav.
890 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
892 * Compiler.cs: pass satic context to Pattern ctor.
894 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
897 GenericOutputter.cs - generic Outputter implementation,
898 Attribute.cs - represents outputted attribute,
899 Emitter.cs - abstract output emitter,
900 TextEmitter.cs - text emitter,
901 XmlWriterEmitter.cs - emitter to XmlWriter.
902 * Checking of duplicating attributes is done in GenericOutputter.
903 * Namespace outputting logic is implemented in GenericOutputter.
904 * Outputter.cs: Writing namespace declarations is delegated to
905 derived classes (GenericOutputter).
906 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
908 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
910 * XslTransformProcessor.cs: evaluate variables at beginning
911 when / is current node.
913 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
915 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
916 Fix up namespace handeling
918 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
920 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
922 * XslDecimalFormat.cs: Stub for decimal-format.
924 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
926 * TextOutputter.cs: Add option to ignore element content (Oleg).
928 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
930 * Compiler.cs: Really give null for blank avt's
932 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
934 * Compiler.cs: Fixed lre/lre04.
936 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
938 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
939 won't have default namespace. See http://www.w3.org/TR/xslt#qname
941 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
943 * XslTransformProcessor.cs: add support for resolving documents.
944 * XsltCompiledContext: add support for document () function.
946 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
948 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
949 of the abstract methods in Outputter, making them call other
950 functions with default values, remove impl's in derived classes.
952 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
954 * Outputter.cs: s/Close/Done
955 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
956 * XslTransformProcessor.cs: Flush output when popping, pop at end.
958 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
960 * Outputter.cs: Add support for namespaces.
962 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
964 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
965 XslTransformProcessor.cs: move output logic from XslStylesheet to
968 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
970 * XslOutput.cs: add support for encoding.
972 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
974 * *.cs: Support for xsl:output. (Oleg)
976 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
978 * Compiler.cs: handle extension and excluded namespaces.
980 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
982 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
983 from the stylesheet for correct namespace resolution.
985 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
987 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
988 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
990 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
992 * XslTransformProcessor.cs: Add a table to detect when an object
994 * XslAttributeSet.cs: Use the above table. Dont throw nullref
995 exception when no use-attribute-sets are specified.
997 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
999 * Compiler.cs: Add support for boolean attributes (yes/no).
1001 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1003 * Compiler.cs: Add method LocalNameOf, to get the local name of a
1005 * XslTransformProcessor.cs: Support for setting the XmlResolver.
1007 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1009 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
1011 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1013 * XslTransformProcessor.cs: Add EvaluateNumber method.
1015 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1017 * XsltCompiledContext.cs: Implement more functions.
1019 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1021 * Compiler.cs: Add support for key, utility function to parse
1022 QName's from the XsltContext. Store keys in the CompiledStyle, not
1024 * XslKey.cs: Real implementation
1025 * XslStylesheet.cs: Move the keys to CompiledStyle.
1026 * XsltCompiledContext.cs: Implement the key function
1028 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1030 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1031 the functions ;-). Also wrote current ().
1033 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1035 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1036 done in XPath. Add stubs for XSLT functions.
1038 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1040 * Compiler.cs: To resolve a variable you now need to pass the
1041 processor, so that it can be passed to IsEvaluated. A local will
1042 only be resolved if it has already been evaluated.
1043 * XsltCompiledContext.cs: Pass along the processor.
1045 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1047 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1048 variable values in the XslTransformProcessor.
1049 * XsltCompiledContext.cs: If the scope is null, don't look there!
1050 * Debug.cs: New method Assert
1052 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1054 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1055 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1056 internal methods in XPathNavigator. Remove verbose debugging messages.
1058 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>