1 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
3 * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
4 To minimize attribute iteration, use Pattern.EvaluatedNodeType.
7 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
9 * XslFunctions.cs : XslTransform recovers from errors on document
10 resolution. Fixed bug #75663.
12 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
14 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
15 only for related elements.
17 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
19 * MSXslScriptManager.cs : it should ignore compiler warnings. This
22 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
24 * XslDecimalFormat.jvm.cs : added
26 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
28 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
29 support CodeDom). Use Guid.ToString("N").
31 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
33 * Compiler.cs : removed extraneous using_directive.
35 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
37 * XslKey.cs : the iterator does not require sorting (already sorted).
40 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
43 Variables are stored per stylesheet and added to compiler after
44 all of the contents are processed (handle import precedence).
45 Imports are now processed in prior to other contents (incorrect
46 imports are now rejected). After imports, process includes to
47 process nested imports. In-process included stylesheets are
48 temporarily stored in including stylesheet.
49 Handle keys like variables are handled.
50 Added Compile() that is splitted from .ctor().
52 Store keys in compiler and compiled stylesheet.
53 Duplicate variables in imports are now overriden as expected.
54 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
56 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
58 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
59 from each EvaluateXXX() methods.
60 * MsxslScriptManager.cs : not to leave reference to stylesheet
61 navigator, pass current node to Compile().
62 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
63 navigator cache for each pattern, to avoid Clone() and not to leave
64 reference to already-done instance navigator.
66 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
68 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
69 * XslKey.cs : Use XSLT pattern parser for match.
70 UsePattern is now "Use" (it is not a pattern).
71 Reimplemented Evaluate() to make full use of index table.
72 Added Matches() to handle shorter match evaluation. For const value
73 for key (e.g. key patterns), it could avoid Evaluate().
74 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
75 new KeyIndexTable.Matches().
76 * XslFunctions.cs : Added PatternMatches() that just delegates to new
77 XsltCompiledContext.MatchesKey().
79 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
81 * GenericOutputter.cs : commented out warned fields.
83 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
85 * XslKey.cs : removed last ListIterator.ctor() argument.
86 Reverted the last commit that changed internal key index change
87 from ArrayList to Hashtable. Avoid clone in CollectIndex().
88 Sort results in Evaluate() before passing list to ListIterator.
89 * XslFunctions.cs : removed last ListIterator.ctor() argument.
91 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
94 XsltCompiledContext.cs,
96 XslTransformProcessor.cs : Now dynamic context key index table is
97 separate from XslKey static context. Added KeyIndexTable class and
98 store it into XsltCompiledContext with hash name-table mapping.
99 Cache map from statically-named key to index table.
100 Use Hashtable for internal key cache instead of ArrayList.
102 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
104 * XslKey.cs : fixed node iteration on collecting key indices which
105 could have resulted in an infinite loop.
107 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
109 * XslDecimalFormat.cs : in some cases it does not throw format
112 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
114 * XsltCompiledContext.cs,
115 XslStylesheet.cs : Fixed significant performance loss on whitespace
118 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
120 * XslKey.cs : removed unused NeedAbsoluteMatching.
121 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
122 Added some missing ToString() overrides.
124 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
126 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
127 to work fine with xsl:*-space attributes as expected.
128 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
129 actually nothing. It should not use XsltContext.PreserveWhitespace()
130 because this method is used to control output, while the referenced
131 method is used to control source document.
133 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
135 * XslTemplate.cs : First non-element content were incorrectly ignored.
137 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
139 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
140 to reduce references to stylesheet XPathNavigator. To accomplish it,
141 IStaticXsltContext does not declare GetNsm() anymore. All xslt
142 function types now directly hold IStaticXsltContext.
143 * XslStylesheet.cs : removed "Compiler c" field.
144 Removed unused properties.
146 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
148 * GenericOutputter.cs : When WriteStartElement() requires to add
149 new namespace declaration, _currentNamespaceDecls needs to be set.
151 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
153 * GenericOutputter.cs : for duplicate attribute in an element, no need
154 to keep previous prefix.
156 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
158 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
159 namespace. Rewrite prefix only when there is non-empty namespace.
161 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
163 * XslStylesheet.cs : Now namespace aliases are collected in prior to
164 all other toplevel elements. Removed unused code.
166 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
168 * GenericOutputter.cs : compute attribute prefix only when actual
169 emission. Fixed some cases that namespace output was missing.
171 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
173 * GenericOutputter.cs : no need to use two collections to store
174 pending attributes. Just use ordered ListDictionary.
175 newNamespace.Add(int) causes extraneous boxing.
177 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
179 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
180 OutputLiteralNamespaceUriNodes() so that everyone can understand
181 what it means and when it should be invoked.
183 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
185 * Compiler.cs : added another CompileTemplateContent() which is
186 requred in xsl:for-each. Commented out unused method.
188 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
190 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
191 in stylesheet should be considered in TryElementNamespacesOutput().
192 ParseQNameListAttribute() is not properly working for filling
195 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
197 * XslStylesheet.cs : included stylesheet could be literal result
198 element as stylesheet (see the spec 2.6.1).
200 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
202 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
203 empty string when nsURI is empty.
204 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
205 unlike xml but like span, as written in the spec 16.2.
207 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
209 * XslCompiledContext.cs, XslTransformProcessor.cs :
210 According to errata E25, those namespaces 1) that has the same
211 name as current element's prefix, or an empty name when current
212 element's namespace URI is empty, are not written to output.
213 So added current element information to XPathContext and added
214 prefix parameter to PushElementState(), added xsl:copy check to
215 TryElementNamespacesOutput().
216 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
218 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
220 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
223 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
225 * XslTemplate.cs : According to the spec 5.7, it is an error for
226 xsl:template to have 'mode' without 'match'.
228 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
230 * Compiler.cs : added ns lookup with nsDecls Hashtable.
232 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
234 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
236 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
238 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
239 namespace "http://www.w3.org/XML/1998/namespace".
241 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
243 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
244 * HtmlEmitter.cs : CDATA nodes are written just as text.
245 * GenericOutputter.cs : custom format are treated just as XML output.
247 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
251 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
252 and WriteState. Writing XML declaration is done inside
253 DetermineOutputMethod().
255 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
257 * Compiler.cs : reverted previous fix, since it should be done
258 in XslTransformProcessor with root stylesheet.
259 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
260 don't output alias namespaces. And now consider null exclusions.
262 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
264 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
266 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
268 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
269 namespace nodes. Patch by Andrew Skiba with some fixes.
270 * XslTransformProcessor.cs : Patch by Andrew Skiba.
271 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
272 as to handle all namespace nodes to copy in stylesheet nodes.
273 Global parameterss are evaluated before global variables.
274 * XmlOutputter.cs : removed unused code.
278 * Actually variables and params should check reference recursion.
279 This patch incompletely fixes the problem.
280 * Those operations that considers excluded-result-prefixes must
281 also check those attributes of its ancestors.
283 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
285 * XmlWriterEmitter.cs : String.Replace() was insufficient for
286 sequential candidates for replacement. Patch by Andrew Skiba.
288 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
290 * GenericOutputter.cs : don't output extraneous xml declaration.
293 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
295 * XslStylesheet.cs : MS implementation had chosen to recover from
296 the error, in the way specified in the spec 7.7.1. Patch by Andrew
299 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
301 * XslTemplate.cs : if input is literal result element, it could result
302 in ArgumentException. Patch by Andrew Skiba.
304 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
306 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
307 NullReferenceException. Patch by Andrew Skiba.
309 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
311 * XslOutput.cs : MS.NET recovers from unknown encoding according to
312 XSLT spec 16.1. Patch by Andrew Skiba.
314 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
316 * HtmlEmitter.cs : patch by Andrew Skiba.
317 Remove extra element prefix output. simplify attribute prefix output.
318 Attribute output might have resulted in invalid element stack peek.
319 Output specified media type if any.
321 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
323 * Compiler.cs : Patch by Andrew Skiba.
324 wrap internal exception with XsltCompileException.
325 Raise an error for not-found document URI.
326 QName might contain sequential whitespaces and thus could be empty.
328 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
330 * XslAttributeSet.cs : just ignore other kind of nodes than element
331 in its content. Fix by Andrew Skiba.
333 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
335 * XslOutput.cs : for html and text output mode, just set internal
336 omitXmlDeclaration status true. Patch by Andrew Skiba.
338 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
340 * XslFunctions.cs : fixed line ending mixture.
342 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
344 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
347 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
350 Compiler.cs : XmlResolver.ResolveUri() may return null.
352 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
354 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
357 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
359 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
361 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
363 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
366 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
368 * XslStylesheet.cs : removed unused fields.
369 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
372 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
374 * Compiler.cs, XslTransformProcessor.cs :
375 when creating XmlTextReader, reuse XmlNameTable.
377 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
379 * Compiler.cs : Changes that reflects CompiledExpression changes.
381 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
383 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
384 This fixes bug #67390.
386 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
388 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
390 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
392 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
393 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
394 : Globalization. Removed unused code.
396 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
398 * XslKey.cs : Key-value search in absolute path search was
401 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
403 * HtmlEmitter.cs : Correct URL escape implementation.
405 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
407 * XslTransformProcessor.cs : On document() function, close the
408 XmlTextReader opened from uri string.
410 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
413 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
414 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
415 should override another overload.
417 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
419 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
420 assembly should not include the .dll extension.
422 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
425 - CompilePattern() now throws XsltCompileException for invalid
426 pattern, and add error location support.
427 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
428 Now it returns MSXslNodeSet instance (for msxsl:node-set).
429 * Debug.cs : don't throw System.Exception.
430 * XslFunctions.cs : Added MSXslNodeSet class.
431 * XslTemplate.cs : reflected CompilePattern() change.
432 * XslTransformProcessor.cs : don't throw System.Exception.
433 * XsltCompiledContext.cs : don't throw System.Exception.
435 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
439 XslStylesheet.cs : made classes/enums internal.
441 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
443 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
444 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
445 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
446 XslTransformProcessor.cs : Make extra classes internal.
448 * XslKey.cs : It should require sorting.
449 * Debug.cs : Just avoid debug output. Only who want to output should
452 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
454 * GenericOutputter.cs : Culture-independency fix.
455 Replaced StringCollection to ArrayList.
456 * XslOutput.cs : Culture-independency fix.
458 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
460 * Compiler.cs : When BaseURI is an empty string, it should not try to
461 create Uri instance. This will fix bug #56832, but not sure.
462 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
463 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
464 should be the TextReader's NewLine).
465 * MSXslScriptManager.cs : Should raise an error when the prefix which
466 was specified by "implements-prefix" was not found.
468 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
470 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
471 when BaseURI for msxsl:script node is not available. This fixes
473 Don't output line number in the error message, when it is 0.
475 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
477 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
479 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
484 XslTransformProcessor.cs :
485 Throw specific types of exceptions instead of Exception.
486 * XslFunctions.cs, XsltCompiledContext.cs :
487 added node argument for XsltExtensionFunction ctor() etc.
489 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
491 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
492 CodeDom. Compilation error should be caught. This fixes bug #55875.
494 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
496 * XslStylesheet.cs : "version" attribute is also required for embedded
499 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
502 XslStylesheet.cs : Reject xsl element other than stylesheet and
503 transform. Check mandatory version attribute (only for existence).
505 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
507 * MSXslScriptManager.cs : if extension namespace was not found in
508 the script, just return null. Patch by Joshua Tauberer.
510 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
512 * XslLiteralElement.cs : quick fix for ArgumentNullException which
513 was because of the combination of non-namespaced instances and
514 exclude-result-prefixes.
516 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
518 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
519 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
520 * XslFunctions.cs : hereby Added.
521 * Compiler.cs : Removed deleted usingdecl.
523 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
525 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
526 * XslKey.cs : Added ExprKeyContainer expression type, which is
527 designed to be matched at any level.
528 * Compiler.cs : support for ExprKeyContainer.
530 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
532 * XslKey.cs : Now it collects key and matching nodes at the first
533 evaluation time. After that, we can just get them from the table.
534 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
535 prohibited key() usage in "match" and "use" attributes in xsl:key.
536 Modified accessibility of some classes.
537 * GenericOutputter.cs,
541 XmlWriterEmitter.cs : made classes internal.
542 * XslOutput.cs : support line info for exception.
543 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
545 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
547 * XsltCompiledContext.cs : fixed the length of context info array.
549 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
551 * XsltCompiledContext.cs :
552 replaced EnumeratorIterator with ListIterator
554 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
556 * GenericOutputter.cs,
559 XslTemplate.cs : tiny foreach elimination.
561 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
563 * XslOutput.cs : Reverted. default encoding should be utf-8.
565 2004-01-14 Jackson Harper <jackson@ximian.com>
567 * GenericOutputter.cs: Add constructors that do not take an
568 encoding to fix build.
570 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
572 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
573 write XML declaration. It means that output supports non document
574 entity. This fixes bug #52729.
575 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
576 modified WriteStartDocument() signature to receive Encoding.
577 * GenericOutputter.cs :
578 - Added .ctor() which receives Encoding. (It is used for TextWriter
579 output to get actual encoding.)
580 - Added .ctor() to take an boolean argument which indicates it is
581 variable content or not. (When variable, it does not call
582 WriteStartDocument().)
584 XsltCompiledContext.cs : comment out WriteLine().
585 * XslOutput.cs : set default encoding utf-16.
587 2004-01-08 Nick Drochak <ndrochak@ieee.org>
589 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
591 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
593 * XslDecimalFormat.cs : implemented format-number() other than number
595 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
596 catch ArgumentException which will be thrown by formatting process.
598 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
600 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
602 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
604 * XsltCompiledContext.cs: Remove workaround now that monodoc
607 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
609 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
610 aliases at compilation time, so evaluate at the first run-time.
612 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
614 * GenericOutputter.cs : support for runtime-determined output type.
615 * HtmlEmitter.cs : Fixed invalid doctype output.
616 Fixed incorrect double attribute output on non-HTML elements.
617 Improved indentation. Fixed "selected" attribute output.
618 Don't have to convert "'" to "'".
619 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
620 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
621 * XslStylesheet.cs, XsltCompiledContext.cs :
622 space resolution consideration for import and wildcard.
624 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
626 * Compiler.cs, XslTransformProcessor.cs :
627 Use XmlValidatingReader to support id() for external stylesheets.
628 * XslKey.cs, XsltCompiledContext.cs :
629 to evaluate MatchPattern and UsePattern, SetContext() is required.
630 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
632 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
634 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
635 Added WriteWhitespace().
636 * GenericOutputter.cs, XslTemplate.cs : Call above.
637 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
638 CurrentNode in for-each context have to be pulled at evaluation.
640 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
642 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
643 function for bugzilla #52144. It should be reverted soon.
645 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
647 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
649 * MSMslScriptManager.cs : modified generated assembly class to be unique
650 through running AppDomain.
651 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
652 arguments to actual argument types. Bugzilla #51450 should be fixed.
654 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
656 * HtmlEmitter.cs : Fixed incorrect character entity output.
658 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
660 * Added ScriptCompilerInfo.cs.
661 * MSXslScriptManager.cs : Fixed *true* author's name.
662 Implemented basic msxsl:script support.
663 * Compiler.cs : Added Evidence member.
665 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
667 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
668 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
669 Added WriteWhitespace() to assure not writing whitespaces as cdata.
670 * XslAttributeSet.cs : Error check if attribute-set contains other than
671 xsl:attribute. Error should be XsltException.
672 * XslDecimalFormat.cs : Complete equality check. Allow just one
673 character value for some attributes.
674 * XslStylesheet.cs : Made whitespace control setting overridable.
675 Added Version property (for the future compatibility mode).
676 Check unrecongnized top level element.
677 * XslTemplate.cs : Check priority as a number.
678 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
679 for xsl:preserve-space and xsl:strip-space support.
680 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
681 incomplete), PushScope and Pop
683 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
685 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
687 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
689 * Compiler.cs : In FromListString(), it should use default ns,
691 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
692 precedence. Doctype should be written even if SYSTEM id is absent.
693 Fixed possible multiple xmlns output.
695 - Encoding output using META element.
696 - Doctype name is fixed (html).
697 - Double quotation on PUBLIC and SYSTEM missing.
698 - Fixed incorrect tag name check for IMG.
699 - '>' should not be escaped.
700 * XmlWriterEmitter.cs :
701 Added newline before doctype. In WriteComment(), "--" and tail
702 '-' are not allowed (it escapes, while XmlWriter simply rejects).
703 * XslTransformProcessor.cs : cdata-section-elements should enclose
704 direct child tests only. Added PreserveWhitespace() (incomplete).
705 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
707 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
709 * IdPattern.cs : This should work against multiple ids.
711 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
714 * MSXslScriptManager.cs
716 * XslTransformProcessor.cs
717 * XsltCompiledContext.cs: Some work on msxsl script.
719 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
721 (in general: cdata-section-elements support, correct document()
722 base uri handling, and so on)
723 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
724 And move to document element. Added XslNameUtil.FromListString().
725 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
726 Added WriteCDataSection().
727 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
728 Added InsideCDataSection.
729 * GenericOutputter.cs :
730 In .ctor(), WriteState should be succeeded from output XmlWriter.
731 WriteNamespaceDecl() now drops declaration identical to existing one.
732 Removed obsolete htmlEmulation.
733 * XslOutput.cs : Added CDataSectionElements support.
734 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
735 * XslTransformProcessor.cs :
736 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
737 now considers xsl:exclude-element-prefixes on literal element.
738 Added PushCDataState() and PopCDataState().
739 * XsltCompiledContext.cs : When base uri of document() target is empty,
740 then it should use stylesheet's BaseURI, not that of current document.
742 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
744 * Compiler.cs : Modified decimal-format comparison code.
747 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
748 be called only when required.
749 * HtmlEmitter.cs : Improved indentation stuff.
750 * XslDecimalFormat.cs : Added incomplete implementation of
751 CheckSameAs() and FormatNumber().
753 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
754 from StringDictionary to ArrayList of QName (to keep order).
756 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
758 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
759 node type (i.e. attribute and namespace). Removed extraneous Clone().
760 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
762 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
764 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
765 XslStylesheet.cs : Added Keys support here.
766 * XslTransformProcessor.cs : Should call SetContext() to expressions
767 before evaluating current nodes.
768 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
769 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
770 for KeyPattern. It now uses CompiledStyle.FindKeys().
772 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
774 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
775 to Xalan tests and MS.NET implementation (only for test convenience).
776 * XslOutput.cs : Indent holds string rathen than bool. Its default value
777 varies in the context. When method="html", then default is "yes".
778 * XslTransformProcessor.cs : Extension element prefixes should not
779 be written as stylesheet namespaces.
780 * XsltCompiledContext.cs : Return type of generate-id() is string.
781 Implemented unparsed-entity-uri().
783 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
785 * Compiler.cs : More complete attribute set gathering.
786 GetNamespacesToCopy() should only return Local namespaces.
787 * GenericOutputter.cs : Added support for indentation.
788 Added easy hack for html output.
789 More correct Prefix handling (considers already defined ones).
790 Namespace emmission is moved to CheckState().
791 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
792 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
793 * GenericOutputter.cs, Outputter.cs :
794 Added CanProcessAttributes property for
795 use-attribute-sets of xsl:copy.
796 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
797 Added support for exclude-result-prefixes.
798 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
800 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
802 * Compiler.cs : It is not important, but attribute order became closer
803 to MS.NET and Xalan (assuming from OASIS tests).
805 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
807 * GenericOutputter.cs : Attribute wasn't overwritten its properties
808 because Attribute is struct it was let to another local variable.
810 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
812 * GenericOutputter.cs: make html output a warning, because doing
813 xml will be right most of the time.
815 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
817 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
818 here for a long time and it hurts thread safty and memory
821 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
823 * Compiler.cs: save the parser (will reduce memory allocation when
824 Jackson's jay patch is committed).
826 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
828 * Attribute.cs: Change to struct. Remove QName class.
829 * GenericOutputter.cs: use an Attribute [] rather than an
830 ArrayList. Allows us not to allocate Attributes, which is great
831 for speed. Roll our own allocation.
833 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
835 * Compiler.cs: add GetNsm to main class as well.
837 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
839 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
840 internal version so we get null if the attr doesnt exist.
842 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
844 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
845 where curVarScope == null
847 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
850 - Better handling of empty attributes (vs not being specified)
851 - Bug in handling #default
853 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
855 * Compiler.cs: Off by one when parsing localname of QName
856 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
857 children (so that they get overriden)
859 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
861 * GenericOutputter.cs: Output attributes in order recieved; not
862 required by spec, but useful for running test cases.
864 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
866 * GenericOutputter.cs - fix bug with outputting state.
867 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
868 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
870 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
872 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
873 exprs on use, pass to nav.
875 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
877 * Compiler.cs: pass satic context to Pattern ctor.
879 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
882 GenericOutputter.cs - generic Outputter implementation,
883 Attribute.cs - represents outputted attribute,
884 Emitter.cs - abstract output emitter,
885 TextEmitter.cs - text emitter,
886 XmlWriterEmitter.cs - emitter to XmlWriter.
887 * Checking of duplicating attributes is done in GenericOutputter.
888 * Namespace outputting logic is implemented in GenericOutputter.
889 * Outputter.cs: Writing namespace declarations is delegated to
890 derived classes (GenericOutputter).
891 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
893 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
895 * XslTransformProcessor.cs: evaluate variables at beginning
896 when / is current node.
898 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
900 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
901 Fix up namespace handeling
903 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
905 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
907 * XslDecimalFormat.cs: Stub for decimal-format.
909 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
911 * TextOutputter.cs: Add option to ignore element content (Oleg).
913 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
915 * Compiler.cs: Really give null for blank avt's
917 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
919 * Compiler.cs: Fixed lre/lre04.
921 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
923 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
924 won't have default namespace. See http://www.w3.org/TR/xslt#qname
926 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
928 * XslTransformProcessor.cs: add support for resolving documents.
929 * XsltCompiledContext: add support for document () function.
931 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
933 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
934 of the abstract methods in Outputter, making them call other
935 functions with default values, remove impl's in derived classes.
937 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
939 * Outputter.cs: s/Close/Done
940 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
941 * XslTransformProcessor.cs: Flush output when popping, pop at end.
943 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
945 * Outputter.cs: Add support for namespaces.
947 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
949 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
950 XslTransformProcessor.cs: move output logic from XslStylesheet to
953 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
955 * XslOutput.cs: add support for encoding.
957 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
959 * *.cs: Support for xsl:output. (Oleg)
961 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
963 * Compiler.cs: handle extension and excluded namespaces.
965 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
967 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
968 from the stylesheet for correct namespace resolution.
970 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
972 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
973 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
975 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
977 * XslTransformProcessor.cs: Add a table to detect when an object
979 * XslAttributeSet.cs: Use the above table. Dont throw nullref
980 exception when no use-attribute-sets are specified.
982 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
984 * Compiler.cs: Add support for boolean attributes (yes/no).
986 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
988 * Compiler.cs: Add method LocalNameOf, to get the local name of a
990 * XslTransformProcessor.cs: Support for setting the XmlResolver.
992 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
994 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
996 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
998 * XslTransformProcessor.cs: Add EvaluateNumber method.
1000 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1002 * XsltCompiledContext.cs: Implement more functions.
1004 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1006 * Compiler.cs: Add support for key, utility function to parse
1007 QName's from the XsltContext. Store keys in the CompiledStyle, not
1009 * XslKey.cs: Real implementation
1010 * XslStylesheet.cs: Move the keys to CompiledStyle.
1011 * XsltCompiledContext.cs: Implement the key function
1013 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1015 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1016 the functions ;-). Also wrote current ().
1018 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1020 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1021 done in XPath. Add stubs for XSLT functions.
1023 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1025 * Compiler.cs: To resolve a variable you now need to pass the
1026 processor, so that it can be passed to IsEvaluated. A local will
1027 only be resolved if it has already been evaluated.
1028 * XsltCompiledContext.cs: Pass along the processor.
1030 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1032 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1033 variable values in the XslTransformProcessor.
1034 * XsltCompiledContext.cs: If the scope is null, don't look there!
1035 * Debug.cs: New method Assert
1037 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1039 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1040 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1041 internal methods in XPathNavigator. Remove verbose debugging messages.
1043 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>