1 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
3 * XslFunctions.cs : XslTransform recovers from errors on document
4 resolution. Fixed bug #75663.
6 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
8 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
9 only for related elements.
11 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
13 * MSXslScriptManager.cs : it should ignore compiler warnings. This
16 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
18 * XslDecimalFormat.jvm.cs : added
20 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
22 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
23 support CodeDom). Use Guid.ToString("N").
25 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
27 * Compiler.cs : removed extraneous using_directive.
29 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
31 * XslKey.cs : the iterator does not require sorting (already sorted).
34 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
37 Variables are stored per stylesheet and added to compiler after
38 all of the contents are processed (handle import precedence).
39 Imports are now processed in prior to other contents (incorrect
40 imports are now rejected). After imports, process includes to
41 process nested imports. In-process included stylesheets are
42 temporarily stored in including stylesheet.
43 Handle keys like variables are handled.
44 Added Compile() that is splitted from .ctor().
46 Store keys in compiler and compiled stylesheet.
47 Duplicate variables in imports are now overriden as expected.
48 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
50 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
52 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
53 from each EvaluateXXX() methods.
54 * MsxslScriptManager.cs : not to leave reference to stylesheet
55 navigator, pass current node to Compile().
56 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
57 navigator cache for each pattern, to avoid Clone() and not to leave
58 reference to already-done instance navigator.
60 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
62 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
63 * XslKey.cs : Use XSLT pattern parser for match.
64 UsePattern is now "Use" (it is not a pattern).
65 Reimplemented Evaluate() to make full use of index table.
66 Added Matches() to handle shorter match evaluation. For const value
67 for key (e.g. key patterns), it could avoid Evaluate().
68 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
69 new KeyIndexTable.Matches().
70 * XslFunctions.cs : Added PatternMatches() that just delegates to new
71 XsltCompiledContext.MatchesKey().
73 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
75 * GenericOutputter.cs : commented out warned fields.
77 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
79 * XslKey.cs : removed last ListIterator.ctor() argument.
80 Reverted the last commit that changed internal key index change
81 from ArrayList to Hashtable. Avoid clone in CollectIndex().
82 Sort results in Evaluate() before passing list to ListIterator.
83 * XslFunctions.cs : removed last ListIterator.ctor() argument.
85 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
88 XsltCompiledContext.cs,
90 XslTransformProcessor.cs : Now dynamic context key index table is
91 separate from XslKey static context. Added KeyIndexTable class and
92 store it into XsltCompiledContext with hash name-table mapping.
93 Cache map from statically-named key to index table.
94 Use Hashtable for internal key cache instead of ArrayList.
96 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
98 * XslKey.cs : fixed node iteration on collecting key indices which
99 could have resulted in an infinite loop.
101 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
103 * XslDecimalFormat.cs : in some cases it does not throw format
106 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
108 * XsltCompiledContext.cs,
109 XslStylesheet.cs : Fixed significant performance loss on whitespace
112 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
114 * XslKey.cs : removed unused NeedAbsoluteMatching.
115 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
116 Added some missing ToString() overrides.
118 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
120 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
121 to work fine with xsl:*-space attributes as expected.
122 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
123 actually nothing. It should not use XsltContext.PreserveWhitespace()
124 because this method is used to control output, while the referenced
125 method is used to control source document.
127 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
129 * XslTemplate.cs : First non-element content were incorrectly ignored.
131 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
133 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
134 to reduce references to stylesheet XPathNavigator. To accomplish it,
135 IStaticXsltContext does not declare GetNsm() anymore. All xslt
136 function types now directly hold IStaticXsltContext.
137 * XslStylesheet.cs : removed "Compiler c" field.
138 Removed unused properties.
140 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
142 * GenericOutputter.cs : When WriteStartElement() requires to add
143 new namespace declaration, _currentNamespaceDecls needs to be set.
145 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
147 * GenericOutputter.cs : for duplicate attribute in an element, no need
148 to keep previous prefix.
150 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
152 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
153 namespace. Rewrite prefix only when there is non-empty namespace.
155 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
157 * XslStylesheet.cs : Now namespace aliases are collected in prior to
158 all other toplevel elements. Removed unused code.
160 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
162 * GenericOutputter.cs : compute attribute prefix only when actual
163 emission. Fixed some cases that namespace output was missing.
165 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
167 * GenericOutputter.cs : no need to use two collections to store
168 pending attributes. Just use ordered ListDictionary.
169 newNamespace.Add(int) causes extraneous boxing.
171 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
173 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
174 OutputLiteralNamespaceUriNodes() so that everyone can understand
175 what it means and when it should be invoked.
177 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
179 * Compiler.cs : added another CompileTemplateContent() which is
180 requred in xsl:for-each. Commented out unused method.
182 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
184 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
185 in stylesheet should be considered in TryElementNamespacesOutput().
186 ParseQNameListAttribute() is not properly working for filling
189 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
191 * XslStylesheet.cs : included stylesheet could be literal result
192 element as stylesheet (see the spec 2.6.1).
194 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
196 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
197 empty string when nsURI is empty.
198 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
199 unlike xml but like span, as written in the spec 16.2.
201 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
203 * XslCompiledContext.cs, XslTransformProcessor.cs :
204 According to errata E25, those namespaces 1) that has the same
205 name as current element's prefix, or an empty name when current
206 element's namespace URI is empty, are not written to output.
207 So added current element information to XPathContext and added
208 prefix parameter to PushElementState(), added xsl:copy check to
209 TryElementNamespacesOutput().
210 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
212 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
214 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
217 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
219 * XslTemplate.cs : According to the spec 5.7, it is an error for
220 xsl:template to have 'mode' without 'match'.
222 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
224 * Compiler.cs : added ns lookup with nsDecls Hashtable.
226 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
228 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
230 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
232 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
233 namespace "http://www.w3.org/XML/1998/namespace".
235 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
237 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
238 * HtmlEmitter.cs : CDATA nodes are written just as text.
239 * GenericOutputter.cs : custom format are treated just as XML output.
241 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
245 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
246 and WriteState. Writing XML declaration is done inside
247 DetermineOutputMethod().
249 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
251 * Compiler.cs : reverted previous fix, since it should be done
252 in XslTransformProcessor with root stylesheet.
253 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
254 don't output alias namespaces. And now consider null exclusions.
256 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
258 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
260 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
262 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
263 namespace nodes. Patch by Andrew Skiba with some fixes.
264 * XslTransformProcessor.cs : Patch by Andrew Skiba.
265 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
266 as to handle all namespace nodes to copy in stylesheet nodes.
267 Global parameterss are evaluated before global variables.
268 * XmlOutputter.cs : removed unused code.
272 * Actually variables and params should check reference recursion.
273 This patch incompletely fixes the problem.
274 * Those operations that considers excluded-result-prefixes must
275 also check those attributes of its ancestors.
277 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
279 * XmlWriterEmitter.cs : String.Replace() was insufficient for
280 sequential candidates for replacement. Patch by Andrew Skiba.
282 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
284 * GenericOutputter.cs : don't output extraneous xml declaration.
287 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
289 * XslStylesheet.cs : MS implementation had chosen to recover from
290 the error, in the way specified in the spec 7.7.1. Patch by Andrew
293 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
295 * XslTemplate.cs : if input is literal result element, it could result
296 in ArgumentException. Patch by Andrew Skiba.
298 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
300 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
301 NullReferenceException. Patch by Andrew Skiba.
303 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
305 * XslOutput.cs : MS.NET recovers from unknown encoding according to
306 XSLT spec 16.1. Patch by Andrew Skiba.
308 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
310 * HtmlEmitter.cs : patch by Andrew Skiba.
311 Remove extra element prefix output. simplify attribute prefix output.
312 Attribute output might have resulted in invalid element stack peek.
313 Output specified media type if any.
315 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
317 * Compiler.cs : Patch by Andrew Skiba.
318 wrap internal exception with XsltCompileException.
319 Raise an error for not-found document URI.
320 QName might contain sequential whitespaces and thus could be empty.
322 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
324 * XslAttributeSet.cs : just ignore other kind of nodes than element
325 in its content. Fix by Andrew Skiba.
327 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
329 * XslOutput.cs : for html and text output mode, just set internal
330 omitXmlDeclaration status true. Patch by Andrew Skiba.
332 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
334 * XslFunctions.cs : fixed line ending mixture.
336 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
338 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
341 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
344 Compiler.cs : XmlResolver.ResolveUri() may return null.
346 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
348 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
351 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
353 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
355 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
357 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
360 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
362 * XslStylesheet.cs : removed unused fields.
363 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
366 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
368 * Compiler.cs, XslTransformProcessor.cs :
369 when creating XmlTextReader, reuse XmlNameTable.
371 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
373 * Compiler.cs : Changes that reflects CompiledExpression changes.
375 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
377 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
378 This fixes bug #67390.
380 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
382 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
384 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
386 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
387 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
388 : Globalization. Removed unused code.
390 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
392 * XslKey.cs : Key-value search in absolute path search was
395 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
397 * HtmlEmitter.cs : Correct URL escape implementation.
399 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
401 * XslTransformProcessor.cs : On document() function, close the
402 XmlTextReader opened from uri string.
404 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
407 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
408 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
409 should override another overload.
411 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
413 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
414 assembly should not include the .dll extension.
416 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
419 - CompilePattern() now throws XsltCompileException for invalid
420 pattern, and add error location support.
421 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
422 Now it returns MSXslNodeSet instance (for msxsl:node-set).
423 * Debug.cs : don't throw System.Exception.
424 * XslFunctions.cs : Added MSXslNodeSet class.
425 * XslTemplate.cs : reflected CompilePattern() change.
426 * XslTransformProcessor.cs : don't throw System.Exception.
427 * XsltCompiledContext.cs : don't throw System.Exception.
429 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
433 XslStylesheet.cs : made classes/enums internal.
435 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
437 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
438 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
439 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
440 XslTransformProcessor.cs : Make extra classes internal.
442 * XslKey.cs : It should require sorting.
443 * Debug.cs : Just avoid debug output. Only who want to output should
446 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
448 * GenericOutputter.cs : Culture-independency fix.
449 Replaced StringCollection to ArrayList.
450 * XslOutput.cs : Culture-independency fix.
452 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
454 * Compiler.cs : When BaseURI is an empty string, it should not try to
455 create Uri instance. This will fix bug #56832, but not sure.
456 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
457 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
458 should be the TextReader's NewLine).
459 * MSXslScriptManager.cs : Should raise an error when the prefix which
460 was specified by "implements-prefix" was not found.
462 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
464 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
465 when BaseURI for msxsl:script node is not available. This fixes
467 Don't output line number in the error message, when it is 0.
469 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
471 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
473 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
478 XslTransformProcessor.cs :
479 Throw specific types of exceptions instead of Exception.
480 * XslFunctions.cs, XsltCompiledContext.cs :
481 added node argument for XsltExtensionFunction ctor() etc.
483 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
485 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
486 CodeDom. Compilation error should be caught. This fixes bug #55875.
488 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
490 * XslStylesheet.cs : "version" attribute is also required for embedded
493 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
496 XslStylesheet.cs : Reject xsl element other than stylesheet and
497 transform. Check mandatory version attribute (only for existence).
499 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
501 * MSXslScriptManager.cs : if extension namespace was not found in
502 the script, just return null. Patch by Joshua Tauberer.
504 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
506 * XslLiteralElement.cs : quick fix for ArgumentNullException which
507 was because of the combination of non-namespaced instances and
508 exclude-result-prefixes.
510 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
512 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
513 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
514 * XslFunctions.cs : hereby Added.
515 * Compiler.cs : Removed deleted usingdecl.
517 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
519 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
520 * XslKey.cs : Added ExprKeyContainer expression type, which is
521 designed to be matched at any level.
522 * Compiler.cs : support for ExprKeyContainer.
524 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
526 * XslKey.cs : Now it collects key and matching nodes at the first
527 evaluation time. After that, we can just get them from the table.
528 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
529 prohibited key() usage in "match" and "use" attributes in xsl:key.
530 Modified accessibility of some classes.
531 * GenericOutputter.cs,
535 XmlWriterEmitter.cs : made classes internal.
536 * XslOutput.cs : support line info for exception.
537 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
539 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
541 * XsltCompiledContext.cs : fixed the length of context info array.
543 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
545 * XsltCompiledContext.cs :
546 replaced EnumeratorIterator with ListIterator
548 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
550 * GenericOutputter.cs,
553 XslTemplate.cs : tiny foreach elimination.
555 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
557 * XslOutput.cs : Reverted. default encoding should be utf-8.
559 2004-01-14 Jackson Harper <jackson@ximian.com>
561 * GenericOutputter.cs: Add constructors that do not take an
562 encoding to fix build.
564 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
566 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
567 write XML declaration. It means that output supports non document
568 entity. This fixes bug #52729.
569 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
570 modified WriteStartDocument() signature to receive Encoding.
571 * GenericOutputter.cs :
572 - Added .ctor() which receives Encoding. (It is used for TextWriter
573 output to get actual encoding.)
574 - Added .ctor() to take an boolean argument which indicates it is
575 variable content or not. (When variable, it does not call
576 WriteStartDocument().)
578 XsltCompiledContext.cs : comment out WriteLine().
579 * XslOutput.cs : set default encoding utf-16.
581 2004-01-08 Nick Drochak <ndrochak@ieee.org>
583 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
585 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
587 * XslDecimalFormat.cs : implemented format-number() other than number
589 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
590 catch ArgumentException which will be thrown by formatting process.
592 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
594 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
596 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
598 * XsltCompiledContext.cs: Remove workaround now that monodoc
601 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
603 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
604 aliases at compilation time, so evaluate at the first run-time.
606 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
608 * GenericOutputter.cs : support for runtime-determined output type.
609 * HtmlEmitter.cs : Fixed invalid doctype output.
610 Fixed incorrect double attribute output on non-HTML elements.
611 Improved indentation. Fixed "selected" attribute output.
612 Don't have to convert "'" to "'".
613 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
614 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
615 * XslStylesheet.cs, XsltCompiledContext.cs :
616 space resolution consideration for import and wildcard.
618 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
620 * Compiler.cs, XslTransformProcessor.cs :
621 Use XmlValidatingReader to support id() for external stylesheets.
622 * XslKey.cs, XsltCompiledContext.cs :
623 to evaluate MatchPattern and UsePattern, SetContext() is required.
624 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
626 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
628 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
629 Added WriteWhitespace().
630 * GenericOutputter.cs, XslTemplate.cs : Call above.
631 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
632 CurrentNode in for-each context have to be pulled at evaluation.
634 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
636 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
637 function for bugzilla #52144. It should be reverted soon.
639 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
641 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
643 * MSMslScriptManager.cs : modified generated assembly class to be unique
644 through running AppDomain.
645 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
646 arguments to actual argument types. Bugzilla #51450 should be fixed.
648 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
650 * HtmlEmitter.cs : Fixed incorrect character entity output.
652 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
654 * Added ScriptCompilerInfo.cs.
655 * MSXslScriptManager.cs : Fixed *true* author's name.
656 Implemented basic msxsl:script support.
657 * Compiler.cs : Added Evidence member.
659 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
661 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
662 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
663 Added WriteWhitespace() to assure not writing whitespaces as cdata.
664 * XslAttributeSet.cs : Error check if attribute-set contains other than
665 xsl:attribute. Error should be XsltException.
666 * XslDecimalFormat.cs : Complete equality check. Allow just one
667 character value for some attributes.
668 * XslStylesheet.cs : Made whitespace control setting overridable.
669 Added Version property (for the future compatibility mode).
670 Check unrecongnized top level element.
671 * XslTemplate.cs : Check priority as a number.
672 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
673 for xsl:preserve-space and xsl:strip-space support.
674 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
675 incomplete), PushScope and Pop
677 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
679 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
681 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
683 * Compiler.cs : In FromListString(), it should use default ns,
685 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
686 precedence. Doctype should be written even if SYSTEM id is absent.
687 Fixed possible multiple xmlns output.
689 - Encoding output using META element.
690 - Doctype name is fixed (html).
691 - Double quotation on PUBLIC and SYSTEM missing.
692 - Fixed incorrect tag name check for IMG.
693 - '>' should not be escaped.
694 * XmlWriterEmitter.cs :
695 Added newline before doctype. In WriteComment(), "--" and tail
696 '-' are not allowed (it escapes, while XmlWriter simply rejects).
697 * XslTransformProcessor.cs : cdata-section-elements should enclose
698 direct child tests only. Added PreserveWhitespace() (incomplete).
699 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
701 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
703 * IdPattern.cs : This should work against multiple ids.
705 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
708 * MSXslScriptManager.cs
710 * XslTransformProcessor.cs
711 * XsltCompiledContext.cs: Some work on msxsl script.
713 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
715 (in general: cdata-section-elements support, correct document()
716 base uri handling, and so on)
717 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
718 And move to document element. Added XslNameUtil.FromListString().
719 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
720 Added WriteCDataSection().
721 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
722 Added InsideCDataSection.
723 * GenericOutputter.cs :
724 In .ctor(), WriteState should be succeeded from output XmlWriter.
725 WriteNamespaceDecl() now drops declaration identical to existing one.
726 Removed obsolete htmlEmulation.
727 * XslOutput.cs : Added CDataSectionElements support.
728 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
729 * XslTransformProcessor.cs :
730 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
731 now considers xsl:exclude-element-prefixes on literal element.
732 Added PushCDataState() and PopCDataState().
733 * XsltCompiledContext.cs : When base uri of document() target is empty,
734 then it should use stylesheet's BaseURI, not that of current document.
736 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
738 * Compiler.cs : Modified decimal-format comparison code.
741 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
742 be called only when required.
743 * HtmlEmitter.cs : Improved indentation stuff.
744 * XslDecimalFormat.cs : Added incomplete implementation of
745 CheckSameAs() and FormatNumber().
747 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
748 from StringDictionary to ArrayList of QName (to keep order).
750 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
752 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
753 node type (i.e. attribute and namespace). Removed extraneous Clone().
754 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
756 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
758 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
759 XslStylesheet.cs : Added Keys support here.
760 * XslTransformProcessor.cs : Should call SetContext() to expressions
761 before evaluating current nodes.
762 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
763 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
764 for KeyPattern. It now uses CompiledStyle.FindKeys().
766 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
768 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
769 to Xalan tests and MS.NET implementation (only for test convenience).
770 * XslOutput.cs : Indent holds string rathen than bool. Its default value
771 varies in the context. When method="html", then default is "yes".
772 * XslTransformProcessor.cs : Extension element prefixes should not
773 be written as stylesheet namespaces.
774 * XsltCompiledContext.cs : Return type of generate-id() is string.
775 Implemented unparsed-entity-uri().
777 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
779 * Compiler.cs : More complete attribute set gathering.
780 GetNamespacesToCopy() should only return Local namespaces.
781 * GenericOutputter.cs : Added support for indentation.
782 Added easy hack for html output.
783 More correct Prefix handling (considers already defined ones).
784 Namespace emmission is moved to CheckState().
785 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
786 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
787 * GenericOutputter.cs, Outputter.cs :
788 Added CanProcessAttributes property for
789 use-attribute-sets of xsl:copy.
790 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
791 Added support for exclude-result-prefixes.
792 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
794 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
796 * Compiler.cs : It is not important, but attribute order became closer
797 to MS.NET and Xalan (assuming from OASIS tests).
799 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
801 * GenericOutputter.cs : Attribute wasn't overwritten its properties
802 because Attribute is struct it was let to another local variable.
804 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
806 * GenericOutputter.cs: make html output a warning, because doing
807 xml will be right most of the time.
809 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
811 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
812 here for a long time and it hurts thread safty and memory
815 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
817 * Compiler.cs: save the parser (will reduce memory allocation when
818 Jackson's jay patch is committed).
820 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
822 * Attribute.cs: Change to struct. Remove QName class.
823 * GenericOutputter.cs: use an Attribute [] rather than an
824 ArrayList. Allows us not to allocate Attributes, which is great
825 for speed. Roll our own allocation.
827 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
829 * Compiler.cs: add GetNsm to main class as well.
831 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
833 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
834 internal version so we get null if the attr doesnt exist.
836 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
838 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
839 where curVarScope == null
841 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
844 - Better handling of empty attributes (vs not being specified)
845 - Bug in handling #default
847 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
849 * Compiler.cs: Off by one when parsing localname of QName
850 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
851 children (so that they get overriden)
853 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
855 * GenericOutputter.cs: Output attributes in order recieved; not
856 required by spec, but useful for running test cases.
858 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
860 * GenericOutputter.cs - fix bug with outputting state.
861 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
862 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
864 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
866 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
867 exprs on use, pass to nav.
869 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
871 * Compiler.cs: pass satic context to Pattern ctor.
873 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
876 GenericOutputter.cs - generic Outputter implementation,
877 Attribute.cs - represents outputted attribute,
878 Emitter.cs - abstract output emitter,
879 TextEmitter.cs - text emitter,
880 XmlWriterEmitter.cs - emitter to XmlWriter.
881 * Checking of duplicating attributes is done in GenericOutputter.
882 * Namespace outputting logic is implemented in GenericOutputter.
883 * Outputter.cs: Writing namespace declarations is delegated to
884 derived classes (GenericOutputter).
885 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
887 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
889 * XslTransformProcessor.cs: evaluate variables at beginning
890 when / is current node.
892 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
894 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
895 Fix up namespace handeling
897 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
899 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
901 * XslDecimalFormat.cs: Stub for decimal-format.
903 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
905 * TextOutputter.cs: Add option to ignore element content (Oleg).
907 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
909 * Compiler.cs: Really give null for blank avt's
911 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
913 * Compiler.cs: Fixed lre/lre04.
915 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
917 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
918 won't have default namespace. See http://www.w3.org/TR/xslt#qname
920 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
922 * XslTransformProcessor.cs: add support for resolving documents.
923 * XsltCompiledContext: add support for document () function.
925 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
927 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
928 of the abstract methods in Outputter, making them call other
929 functions with default values, remove impl's in derived classes.
931 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
933 * Outputter.cs: s/Close/Done
934 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
935 * XslTransformProcessor.cs: Flush output when popping, pop at end.
937 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
939 * Outputter.cs: Add support for namespaces.
941 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
943 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
944 XslTransformProcessor.cs: move output logic from XslStylesheet to
947 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
949 * XslOutput.cs: add support for encoding.
951 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
953 * *.cs: Support for xsl:output. (Oleg)
955 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
957 * Compiler.cs: handle extension and excluded namespaces.
959 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
961 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
962 from the stylesheet for correct namespace resolution.
964 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
966 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
967 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
969 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
971 * XslTransformProcessor.cs: Add a table to detect when an object
973 * XslAttributeSet.cs: Use the above table. Dont throw nullref
974 exception when no use-attribute-sets are specified.
976 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
978 * Compiler.cs: Add support for boolean attributes (yes/no).
980 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
982 * Compiler.cs: Add method LocalNameOf, to get the local name of a
984 * XslTransformProcessor.cs: Support for setting the XmlResolver.
986 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
988 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
990 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
992 * XslTransformProcessor.cs: Add EvaluateNumber method.
994 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
996 * XsltCompiledContext.cs: Implement more functions.
998 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1000 * Compiler.cs: Add support for key, utility function to parse
1001 QName's from the XsltContext. Store keys in the CompiledStyle, not
1003 * XslKey.cs: Real implementation
1004 * XslStylesheet.cs: Move the keys to CompiledStyle.
1005 * XsltCompiledContext.cs: Implement the key function
1007 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1009 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1010 the functions ;-). Also wrote current ().
1012 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1014 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1015 done in XPath. Add stubs for XSLT functions.
1017 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1019 * Compiler.cs: To resolve a variable you now need to pass the
1020 processor, so that it can be passed to IsEvaluated. A local will
1021 only be resolved if it has already been evaluated.
1022 * XsltCompiledContext.cs: Pass along the processor.
1024 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1026 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1027 variable values in the XslTransformProcessor.
1028 * XsltCompiledContext.cs: If the scope is null, don't look there!
1029 * Debug.cs: New method Assert
1031 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1033 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1034 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1035 internal methods in XPathNavigator. Remove verbose debugging messages.
1037 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>