1 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
3 * MSXslScriptManager.cs : it should ignore compiler warnings. This
6 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
8 * XslDecimalFormat.jvm.cs : added
10 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
12 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
13 support CodeDom). Use Guid.ToString("N").
15 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
17 * Compiler.cs : removed extraneous using_directive.
19 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
21 * XslKey.cs : the iterator does not require sorting (already sorted).
24 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
27 Variables are stored per stylesheet and added to compiler after
28 all of the contents are processed (handle import precedence).
29 Imports are now processed in prior to other contents (incorrect
30 imports are now rejected). After imports, process includes to
31 process nested imports. In-process included stylesheets are
32 temporarily stored in including stylesheet.
33 Handle keys like variables are handled.
34 Added Compile() that is splitted from .ctor().
36 Store keys in compiler and compiled stylesheet.
37 Duplicate variables in imports are now overriden as expected.
38 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
40 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
42 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
43 from each EvaluateXXX() methods.
44 * MsxslScriptManager.cs : not to leave reference to stylesheet
45 navigator, pass current node to Compile().
46 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
47 navigator cache for each pattern, to avoid Clone() and not to leave
48 reference to already-done instance navigator.
50 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
52 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
53 * XslKey.cs : Use XSLT pattern parser for match.
54 UsePattern is now "Use" (it is not a pattern).
55 Reimplemented Evaluate() to make full use of index table.
56 Added Matches() to handle shorter match evaluation. For const value
57 for key (e.g. key patterns), it could avoid Evaluate().
58 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
59 new KeyIndexTable.Matches().
60 * XslFunctions.cs : Added PatternMatches() that just delegates to new
61 XsltCompiledContext.MatchesKey().
63 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
65 * GenericOutputter.cs : commented out warned fields.
67 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
69 * XslKey.cs : removed last ListIterator.ctor() argument.
70 Reverted the last commit that changed internal key index change
71 from ArrayList to Hashtable. Avoid clone in CollectIndex().
72 Sort results in Evaluate() before passing list to ListIterator.
73 * XslFunctions.cs : removed last ListIterator.ctor() argument.
75 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
78 XsltCompiledContext.cs,
80 XslTransformProcessor.cs : Now dynamic context key index table is
81 separate from XslKey static context. Added KeyIndexTable class and
82 store it into XsltCompiledContext with hash name-table mapping.
83 Cache map from statically-named key to index table.
84 Use Hashtable for internal key cache instead of ArrayList.
86 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
88 * XslKey.cs : fixed node iteration on collecting key indices which
89 could have resulted in an infinite loop.
91 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
93 * XslDecimalFormat.cs : in some cases it does not throw format
96 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
98 * XsltCompiledContext.cs,
99 XslStylesheet.cs : Fixed significant performance loss on whitespace
102 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
104 * XslKey.cs : removed unused NeedAbsoluteMatching.
105 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
106 Added some missing ToString() overrides.
108 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
110 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
111 to work fine with xsl:*-space attributes as expected.
112 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
113 actually nothing. It should not use XsltContext.PreserveWhitespace()
114 because this method is used to control output, while the referenced
115 method is used to control source document.
117 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
119 * XslTemplate.cs : First non-element content were incorrectly ignored.
121 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
123 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
124 to reduce references to stylesheet XPathNavigator. To accomplish it,
125 IStaticXsltContext does not declare GetNsm() anymore. All xslt
126 function types now directly hold IStaticXsltContext.
127 * XslStylesheet.cs : removed "Compiler c" field.
128 Removed unused properties.
130 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
132 * GenericOutputter.cs : When WriteStartElement() requires to add
133 new namespace declaration, _currentNamespaceDecls needs to be set.
135 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
137 * GenericOutputter.cs : for duplicate attribute in an element, no need
138 to keep previous prefix.
140 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
142 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
143 namespace. Rewrite prefix only when there is non-empty namespace.
145 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
147 * XslStylesheet.cs : Now namespace aliases are collected in prior to
148 all other toplevel elements. Removed unused code.
150 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
152 * GenericOutputter.cs : compute attribute prefix only when actual
153 emission. Fixed some cases that namespace output was missing.
155 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
157 * GenericOutputter.cs : no need to use two collections to store
158 pending attributes. Just use ordered ListDictionary.
159 newNamespace.Add(int) causes extraneous boxing.
161 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
163 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
164 OutputLiteralNamespaceUriNodes() so that everyone can understand
165 what it means and when it should be invoked.
167 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
169 * Compiler.cs : added another CompileTemplateContent() which is
170 requred in xsl:for-each. Commented out unused method.
172 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
174 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
175 in stylesheet should be considered in TryElementNamespacesOutput().
176 ParseQNameListAttribute() is not properly working for filling
179 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
181 * XslStylesheet.cs : included stylesheet could be literal result
182 element as stylesheet (see the spec 2.6.1).
184 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
186 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
187 empty string when nsURI is empty.
188 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
189 unlike xml but like span, as written in the spec 16.2.
191 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
193 * XslCompiledContext.cs, XslTransformProcessor.cs :
194 According to errata E25, those namespaces 1) that has the same
195 name as current element's prefix, or an empty name when current
196 element's namespace URI is empty, are not written to output.
197 So added current element information to XPathContext and added
198 prefix parameter to PushElementState(), added xsl:copy check to
199 TryElementNamespacesOutput().
200 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
202 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
204 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
207 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
209 * XslTemplate.cs : According to the spec 5.7, it is an error for
210 xsl:template to have 'mode' without 'match'.
212 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
214 * Compiler.cs : added ns lookup with nsDecls Hashtable.
216 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
218 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
220 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
222 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
223 namespace "http://www.w3.org/XML/1998/namespace".
225 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
227 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
228 * HtmlEmitter.cs : CDATA nodes are written just as text.
229 * GenericOutputter.cs : custom format are treated just as XML output.
231 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
235 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
236 and WriteState. Writing XML declaration is done inside
237 DetermineOutputMethod().
239 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
241 * Compiler.cs : reverted previous fix, since it should be done
242 in XslTransformProcessor with root stylesheet.
243 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
244 don't output alias namespaces. And now consider null exclusions.
246 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
248 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
250 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
252 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
253 namespace nodes. Patch by Andrew Skiba with some fixes.
254 * XslTransformProcessor.cs : Patch by Andrew Skiba.
255 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
256 as to handle all namespace nodes to copy in stylesheet nodes.
257 Global parameterss are evaluated before global variables.
258 * XmlOutputter.cs : removed unused code.
262 * Actually variables and params should check reference recursion.
263 This patch incompletely fixes the problem.
264 * Those operations that considers excluded-result-prefixes must
265 also check those attributes of its ancestors.
267 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
269 * XmlWriterEmitter.cs : String.Replace() was insufficient for
270 sequential candidates for replacement. Patch by Andrew Skiba.
272 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
274 * GenericOutputter.cs : don't output extraneous xml declaration.
277 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
279 * XslStylesheet.cs : MS implementation had chosen to recover from
280 the error, in the way specified in the spec 7.7.1. Patch by Andrew
283 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
285 * XslTemplate.cs : if input is literal result element, it could result
286 in ArgumentException. Patch by Andrew Skiba.
288 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
290 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
291 NullReferenceException. Patch by Andrew Skiba.
293 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
295 * XslOutput.cs : MS.NET recovers from unknown encoding according to
296 XSLT spec 16.1. Patch by Andrew Skiba.
298 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
300 * HtmlEmitter.cs : patch by Andrew Skiba.
301 Remove extra element prefix output. simplify attribute prefix output.
302 Attribute output might have resulted in invalid element stack peek.
303 Output specified media type if any.
305 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
307 * Compiler.cs : Patch by Andrew Skiba.
308 wrap internal exception with XsltCompileException.
309 Raise an error for not-found document URI.
310 QName might contain sequential whitespaces and thus could be empty.
312 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
314 * XslAttributeSet.cs : just ignore other kind of nodes than element
315 in its content. Fix by Andrew Skiba.
317 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
319 * XslOutput.cs : for html and text output mode, just set internal
320 omitXmlDeclaration status true. Patch by Andrew Skiba.
322 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
324 * XslFunctions.cs : fixed line ending mixture.
326 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
328 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
331 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
334 Compiler.cs : XmlResolver.ResolveUri() may return null.
336 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
338 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
341 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
343 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
345 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
347 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
350 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
352 * XslStylesheet.cs : removed unused fields.
353 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
356 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
358 * Compiler.cs, XslTransformProcessor.cs :
359 when creating XmlTextReader, reuse XmlNameTable.
361 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
363 * Compiler.cs : Changes that reflects CompiledExpression changes.
365 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
367 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
368 This fixes bug #67390.
370 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
372 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
374 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
376 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
377 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
378 : Globalization. Removed unused code.
380 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
382 * XslKey.cs : Key-value search in absolute path search was
385 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
387 * HtmlEmitter.cs : Correct URL escape implementation.
389 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
391 * XslTransformProcessor.cs : On document() function, close the
392 XmlTextReader opened from uri string.
394 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
397 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
398 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
399 should override another overload.
401 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
403 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
404 assembly should not include the .dll extension.
406 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
409 - CompilePattern() now throws XsltCompileException for invalid
410 pattern, and add error location support.
411 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
412 Now it returns MSXslNodeSet instance (for msxsl:node-set).
413 * Debug.cs : don't throw System.Exception.
414 * XslFunctions.cs : Added MSXslNodeSet class.
415 * XslTemplate.cs : reflected CompilePattern() change.
416 * XslTransformProcessor.cs : don't throw System.Exception.
417 * XsltCompiledContext.cs : don't throw System.Exception.
419 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
423 XslStylesheet.cs : made classes/enums internal.
425 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
427 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
428 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
429 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
430 XslTransformProcessor.cs : Make extra classes internal.
432 * XslKey.cs : It should require sorting.
433 * Debug.cs : Just avoid debug output. Only who want to output should
436 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
438 * GenericOutputter.cs : Culture-independency fix.
439 Replaced StringCollection to ArrayList.
440 * XslOutput.cs : Culture-independency fix.
442 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
444 * Compiler.cs : When BaseURI is an empty string, it should not try to
445 create Uri instance. This will fix bug #56832, but not sure.
446 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
447 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
448 should be the TextReader's NewLine).
449 * MSXslScriptManager.cs : Should raise an error when the prefix which
450 was specified by "implements-prefix" was not found.
452 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
454 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
455 when BaseURI for msxsl:script node is not available. This fixes
457 Don't output line number in the error message, when it is 0.
459 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
461 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
463 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
468 XslTransformProcessor.cs :
469 Throw specific types of exceptions instead of Exception.
470 * XslFunctions.cs, XsltCompiledContext.cs :
471 added node argument for XsltExtensionFunction ctor() etc.
473 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
475 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
476 CodeDom. Compilation error should be caught. This fixes bug #55875.
478 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
480 * XslStylesheet.cs : "version" attribute is also required for embedded
483 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
486 XslStylesheet.cs : Reject xsl element other than stylesheet and
487 transform. Check mandatory version attribute (only for existence).
489 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
491 * MSXslScriptManager.cs : if extension namespace was not found in
492 the script, just return null. Patch by Joshua Tauberer.
494 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
496 * XslLiteralElement.cs : quick fix for ArgumentNullException which
497 was because of the combination of non-namespaced instances and
498 exclude-result-prefixes.
500 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
502 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
503 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
504 * XslFunctions.cs : hereby Added.
505 * Compiler.cs : Removed deleted usingdecl.
507 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
509 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
510 * XslKey.cs : Added ExprKeyContainer expression type, which is
511 designed to be matched at any level.
512 * Compiler.cs : support for ExprKeyContainer.
514 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
516 * XslKey.cs : Now it collects key and matching nodes at the first
517 evaluation time. After that, we can just get them from the table.
518 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
519 prohibited key() usage in "match" and "use" attributes in xsl:key.
520 Modified accessibility of some classes.
521 * GenericOutputter.cs,
525 XmlWriterEmitter.cs : made classes internal.
526 * XslOutput.cs : support line info for exception.
527 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
529 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
531 * XsltCompiledContext.cs : fixed the length of context info array.
533 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
535 * XsltCompiledContext.cs :
536 replaced EnumeratorIterator with ListIterator
538 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
540 * GenericOutputter.cs,
543 XslTemplate.cs : tiny foreach elimination.
545 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
547 * XslOutput.cs : Reverted. default encoding should be utf-8.
549 2004-01-14 Jackson Harper <jackson@ximian.com>
551 * GenericOutputter.cs: Add constructors that do not take an
552 encoding to fix build.
554 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
556 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
557 write XML declaration. It means that output supports non document
558 entity. This fixes bug #52729.
559 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
560 modified WriteStartDocument() signature to receive Encoding.
561 * GenericOutputter.cs :
562 - Added .ctor() which receives Encoding. (It is used for TextWriter
563 output to get actual encoding.)
564 - Added .ctor() to take an boolean argument which indicates it is
565 variable content or not. (When variable, it does not call
566 WriteStartDocument().)
568 XsltCompiledContext.cs : comment out WriteLine().
569 * XslOutput.cs : set default encoding utf-16.
571 2004-01-08 Nick Drochak <ndrochak@ieee.org>
573 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
575 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
577 * XslDecimalFormat.cs : implemented format-number() other than number
579 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
580 catch ArgumentException which will be thrown by formatting process.
582 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
584 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
586 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
588 * XsltCompiledContext.cs: Remove workaround now that monodoc
591 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
593 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
594 aliases at compilation time, so evaluate at the first run-time.
596 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
598 * GenericOutputter.cs : support for runtime-determined output type.
599 * HtmlEmitter.cs : Fixed invalid doctype output.
600 Fixed incorrect double attribute output on non-HTML elements.
601 Improved indentation. Fixed "selected" attribute output.
602 Don't have to convert "'" to "'".
603 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
604 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
605 * XslStylesheet.cs, XsltCompiledContext.cs :
606 space resolution consideration for import and wildcard.
608 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
610 * Compiler.cs, XslTransformProcessor.cs :
611 Use XmlValidatingReader to support id() for external stylesheets.
612 * XslKey.cs, XsltCompiledContext.cs :
613 to evaluate MatchPattern and UsePattern, SetContext() is required.
614 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
616 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
618 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
619 Added WriteWhitespace().
620 * GenericOutputter.cs, XslTemplate.cs : Call above.
621 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
622 CurrentNode in for-each context have to be pulled at evaluation.
624 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
626 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
627 function for bugzilla #52144. It should be reverted soon.
629 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
631 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
633 * MSMslScriptManager.cs : modified generated assembly class to be unique
634 through running AppDomain.
635 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
636 arguments to actual argument types. Bugzilla #51450 should be fixed.
638 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
640 * HtmlEmitter.cs : Fixed incorrect character entity output.
642 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
644 * Added ScriptCompilerInfo.cs.
645 * MSXslScriptManager.cs : Fixed *true* author's name.
646 Implemented basic msxsl:script support.
647 * Compiler.cs : Added Evidence member.
649 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
651 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
652 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
653 Added WriteWhitespace() to assure not writing whitespaces as cdata.
654 * XslAttributeSet.cs : Error check if attribute-set contains other than
655 xsl:attribute. Error should be XsltException.
656 * XslDecimalFormat.cs : Complete equality check. Allow just one
657 character value for some attributes.
658 * XslStylesheet.cs : Made whitespace control setting overridable.
659 Added Version property (for the future compatibility mode).
660 Check unrecongnized top level element.
661 * XslTemplate.cs : Check priority as a number.
662 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
663 for xsl:preserve-space and xsl:strip-space support.
664 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
665 incomplete), PushScope and Pop
667 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
669 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
671 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
673 * Compiler.cs : In FromListString(), it should use default ns,
675 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
676 precedence. Doctype should be written even if SYSTEM id is absent.
677 Fixed possible multiple xmlns output.
679 - Encoding output using META element.
680 - Doctype name is fixed (html).
681 - Double quotation on PUBLIC and SYSTEM missing.
682 - Fixed incorrect tag name check for IMG.
683 - '>' should not be escaped.
684 * XmlWriterEmitter.cs :
685 Added newline before doctype. In WriteComment(), "--" and tail
686 '-' are not allowed (it escapes, while XmlWriter simply rejects).
687 * XslTransformProcessor.cs : cdata-section-elements should enclose
688 direct child tests only. Added PreserveWhitespace() (incomplete).
689 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
691 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
693 * IdPattern.cs : This should work against multiple ids.
695 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
698 * MSXslScriptManager.cs
700 * XslTransformProcessor.cs
701 * XsltCompiledContext.cs: Some work on msxsl script.
703 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
705 (in general: cdata-section-elements support, correct document()
706 base uri handling, and so on)
707 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
708 And move to document element. Added XslNameUtil.FromListString().
709 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
710 Added WriteCDataSection().
711 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
712 Added InsideCDataSection.
713 * GenericOutputter.cs :
714 In .ctor(), WriteState should be succeeded from output XmlWriter.
715 WriteNamespaceDecl() now drops declaration identical to existing one.
716 Removed obsolete htmlEmulation.
717 * XslOutput.cs : Added CDataSectionElements support.
718 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
719 * XslTransformProcessor.cs :
720 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
721 now considers xsl:exclude-element-prefixes on literal element.
722 Added PushCDataState() and PopCDataState().
723 * XsltCompiledContext.cs : When base uri of document() target is empty,
724 then it should use stylesheet's BaseURI, not that of current document.
726 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
728 * Compiler.cs : Modified decimal-format comparison code.
731 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
732 be called only when required.
733 * HtmlEmitter.cs : Improved indentation stuff.
734 * XslDecimalFormat.cs : Added incomplete implementation of
735 CheckSameAs() and FormatNumber().
737 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
738 from StringDictionary to ArrayList of QName (to keep order).
740 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
742 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
743 node type (i.e. attribute and namespace). Removed extraneous Clone().
744 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
746 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
748 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
749 XslStylesheet.cs : Added Keys support here.
750 * XslTransformProcessor.cs : Should call SetContext() to expressions
751 before evaluating current nodes.
752 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
753 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
754 for KeyPattern. It now uses CompiledStyle.FindKeys().
756 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
758 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
759 to Xalan tests and MS.NET implementation (only for test convenience).
760 * XslOutput.cs : Indent holds string rathen than bool. Its default value
761 varies in the context. When method="html", then default is "yes".
762 * XslTransformProcessor.cs : Extension element prefixes should not
763 be written as stylesheet namespaces.
764 * XsltCompiledContext.cs : Return type of generate-id() is string.
765 Implemented unparsed-entity-uri().
767 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
769 * Compiler.cs : More complete attribute set gathering.
770 GetNamespacesToCopy() should only return Local namespaces.
771 * GenericOutputter.cs : Added support for indentation.
772 Added easy hack for html output.
773 More correct Prefix handling (considers already defined ones).
774 Namespace emmission is moved to CheckState().
775 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
776 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
777 * GenericOutputter.cs, Outputter.cs :
778 Added CanProcessAttributes property for
779 use-attribute-sets of xsl:copy.
780 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
781 Added support for exclude-result-prefixes.
782 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
784 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
786 * Compiler.cs : It is not important, but attribute order became closer
787 to MS.NET and Xalan (assuming from OASIS tests).
789 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
791 * GenericOutputter.cs : Attribute wasn't overwritten its properties
792 because Attribute is struct it was let to another local variable.
794 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
796 * GenericOutputter.cs: make html output a warning, because doing
797 xml will be right most of the time.
799 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
801 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
802 here for a long time and it hurts thread safty and memory
805 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
807 * Compiler.cs: save the parser (will reduce memory allocation when
808 Jackson's jay patch is committed).
810 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
812 * Attribute.cs: Change to struct. Remove QName class.
813 * GenericOutputter.cs: use an Attribute [] rather than an
814 ArrayList. Allows us not to allocate Attributes, which is great
815 for speed. Roll our own allocation.
817 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
819 * Compiler.cs: add GetNsm to main class as well.
821 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
823 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
824 internal version so we get null if the attr doesnt exist.
826 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
828 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
829 where curVarScope == null
831 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
834 - Better handling of empty attributes (vs not being specified)
835 - Bug in handling #default
837 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
839 * Compiler.cs: Off by one when parsing localname of QName
840 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
841 children (so that they get overriden)
843 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
845 * GenericOutputter.cs: Output attributes in order recieved; not
846 required by spec, but useful for running test cases.
848 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
850 * GenericOutputter.cs - fix bug with outputting state.
851 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
852 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
854 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
856 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
857 exprs on use, pass to nav.
859 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
861 * Compiler.cs: pass satic context to Pattern ctor.
863 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
866 GenericOutputter.cs - generic Outputter implementation,
867 Attribute.cs - represents outputted attribute,
868 Emitter.cs - abstract output emitter,
869 TextEmitter.cs - text emitter,
870 XmlWriterEmitter.cs - emitter to XmlWriter.
871 * Checking of duplicating attributes is done in GenericOutputter.
872 * Namespace outputting logic is implemented in GenericOutputter.
873 * Outputter.cs: Writing namespace declarations is delegated to
874 derived classes (GenericOutputter).
875 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
877 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
879 * XslTransformProcessor.cs: evaluate variables at beginning
880 when / is current node.
882 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
884 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
885 Fix up namespace handeling
887 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
889 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
891 * XslDecimalFormat.cs: Stub for decimal-format.
893 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
895 * TextOutputter.cs: Add option to ignore element content (Oleg).
897 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
899 * Compiler.cs: Really give null for blank avt's
901 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
903 * Compiler.cs: Fixed lre/lre04.
905 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
907 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
908 won't have default namespace. See http://www.w3.org/TR/xslt#qname
910 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
912 * XslTransformProcessor.cs: add support for resolving documents.
913 * XsltCompiledContext: add support for document () function.
915 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
917 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
918 of the abstract methods in Outputter, making them call other
919 functions with default values, remove impl's in derived classes.
921 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
923 * Outputter.cs: s/Close/Done
924 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
925 * XslTransformProcessor.cs: Flush output when popping, pop at end.
927 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
929 * Outputter.cs: Add support for namespaces.
931 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
933 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
934 XslTransformProcessor.cs: move output logic from XslStylesheet to
937 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
939 * XslOutput.cs: add support for encoding.
941 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
943 * *.cs: Support for xsl:output. (Oleg)
945 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
947 * Compiler.cs: handle extension and excluded namespaces.
949 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
951 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
952 from the stylesheet for correct namespace resolution.
954 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
956 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
957 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
959 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
961 * XslTransformProcessor.cs: Add a table to detect when an object
963 * XslAttributeSet.cs: Use the above table. Dont throw nullref
964 exception when no use-attribute-sets are specified.
966 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
968 * Compiler.cs: Add support for boolean attributes (yes/no).
970 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
972 * Compiler.cs: Add method LocalNameOf, to get the local name of a
974 * XslTransformProcessor.cs: Support for setting the XmlResolver.
976 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
978 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
980 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
982 * XslTransformProcessor.cs: Add EvaluateNumber method.
984 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
986 * XsltCompiledContext.cs: Implement more functions.
988 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
990 * Compiler.cs: Add support for key, utility function to parse
991 QName's from the XsltContext. Store keys in the CompiledStyle, not
993 * XslKey.cs: Real implementation
994 * XslStylesheet.cs: Move the keys to CompiledStyle.
995 * XsltCompiledContext.cs: Implement the key function
997 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
999 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1000 the functions ;-). Also wrote current ().
1002 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1004 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1005 done in XPath. Add stubs for XSLT functions.
1007 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1009 * Compiler.cs: To resolve a variable you now need to pass the
1010 processor, so that it can be passed to IsEvaluated. A local will
1011 only be resolved if it has already been evaluated.
1012 * XsltCompiledContext.cs: Pass along the processor.
1014 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1016 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1017 variable values in the XslTransformProcessor.
1018 * XsltCompiledContext.cs: If the scope is null, don't look there!
1019 * Debug.cs: New method Assert
1021 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1023 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1024 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1025 internal methods in XPathNavigator. Remove verbose debugging messages.
1027 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>