1 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
4 XsltCompiledContext.cs,
6 XslTransformProcessor.cs : Now dynamic context key index table is
7 separate from XslKey static context. Added KeyIndexTable class and
8 store it into XsltCompiledContext with hash name-table mapping.
9 Cache map from statically-named key to index table.
10 Use Hashtable for internal key cache instead of ArrayList.
12 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
14 * XslKey.cs : fixed node iteration on collecting key indices which
15 could have resulted in an infinite loop.
17 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
19 * XslDecimalFormat.cs : in some cases it does not throw format
22 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
24 * XsltCompiledContext.cs,
25 XslStylesheet.cs : Fixed significant performance loss on whitespace
28 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
30 * XslKey.cs : removed unused NeedAbsoluteMatching.
31 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
32 Added some missing ToString() overrides.
34 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
36 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
37 to work fine with xsl:*-space attributes as expected.
38 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
39 actually nothing. It should not use XsltContext.PreserveWhitespace()
40 because this method is used to control output, while the referenced
41 method is used to control source document.
43 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
45 * XslTemplate.cs : First non-element content were incorrectly ignored.
47 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
49 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
50 to reduce references to stylesheet XPathNavigator. To accomplish it,
51 IStaticXsltContext does not declare GetNsm() anymore. All xslt
52 function types now directly hold IStaticXsltContext.
53 * XslStylesheet.cs : removed "Compiler c" field.
54 Removed unused properties.
56 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
58 * GenericOutputter.cs : When WriteStartElement() requires to add
59 new namespace declaration, _currentNamespaceDecls needs to be set.
61 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
63 * GenericOutputter.cs : for duplicate attribute in an element, no need
64 to keep previous prefix.
66 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
68 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
69 namespace. Rewrite prefix only when there is non-empty namespace.
71 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
73 * XslStylesheet.cs : Now namespace aliases are collected in prior to
74 all other toplevel elements. Removed unused code.
76 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
78 * GenericOutputter.cs : compute attribute prefix only when actual
79 emission. Fixed some cases that namespace output was missing.
81 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
83 * GenericOutputter.cs : no need to use two collections to store
84 pending attributes. Just use ordered ListDictionary.
85 newNamespace.Add(int) causes extraneous boxing.
87 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
89 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
90 OutputLiteralNamespaceUriNodes() so that everyone can understand
91 what it means and when it should be invoked.
93 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
95 * Compiler.cs : added another CompileTemplateContent() which is
96 requred in xsl:for-each. Commented out unused method.
98 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
100 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
101 in stylesheet should be considered in TryElementNamespacesOutput().
102 ParseQNameListAttribute() is not properly working for filling
105 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
107 * XslStylesheet.cs : included stylesheet could be literal result
108 element as stylesheet (see the spec 2.6.1).
110 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
112 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
113 empty string when nsURI is empty.
114 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
115 unlike xml but like span, as written in the spec 16.2.
117 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
119 * XslCompiledContext.cs, XslTransformProcessor.cs :
120 According to errata E25, those namespaces 1) that has the same
121 name as current element's prefix, or an empty name when current
122 element's namespace URI is empty, are not written to output.
123 So added current element information to XPathContext and added
124 prefix parameter to PushElementState(), added xsl:copy check to
125 TryElementNamespacesOutput().
126 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
128 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
130 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
133 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
135 * XslTemplate.cs : According to the spec 5.7, it is an error for
136 xsl:template to have 'mode' without 'match'.
138 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
140 * Compiler.cs : added ns lookup with nsDecls Hashtable.
142 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
144 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
146 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
148 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
149 namespace "http://www.w3.org/XML/1998/namespace".
151 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
153 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
154 * HtmlEmitter.cs : CDATA nodes are written just as text.
155 * GenericOutputter.cs : custom format are treated just as XML output.
157 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
161 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
162 and WriteState. Writing XML declaration is done inside
163 DetermineOutputMethod().
165 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
167 * Compiler.cs : reverted previous fix, since it should be done
168 in XslTransformProcessor with root stylesheet.
169 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
170 don't output alias namespaces. And now consider null exclusions.
172 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
174 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
176 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
178 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
179 namespace nodes. Patch by Andrew Skiba with some fixes.
180 * XslTransformProcessor.cs : Patch by Andrew Skiba.
181 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
182 as to handle all namespace nodes to copy in stylesheet nodes.
183 Global parameterss are evaluated before global variables.
184 * XmlOutputter.cs : removed unused code.
188 * Actually variables and params should check reference recursion.
189 This patch incompletely fixes the problem.
190 * Those operations that considers excluded-result-prefixes must
191 also check those attributes of its ancestors.
193 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
195 * XmlWriterEmitter.cs : String.Replace() was insufficient for
196 sequential candidates for replacement. Patch by Andrew Skiba.
198 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
200 * GenericOutputter.cs : don't output extraneous xml declaration.
203 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
205 * XslStylesheet.cs : MS implementation had chosen to recover from
206 the error, in the way specified in the spec 7.7.1. Patch by Andrew
209 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
211 * XslTemplate.cs : if input is literal result element, it could result
212 in ArgumentException. Patch by Andrew Skiba.
214 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
216 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
217 NullReferenceException. Patch by Andrew Skiba.
219 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
221 * XslOutput.cs : MS.NET recovers from unknown encoding according to
222 XSLT spec 16.1. Patch by Andrew Skiba.
224 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
226 * HtmlEmitter.cs : patch by Andrew Skiba.
227 Remove extra element prefix output. simplify attribute prefix output.
228 Attribute output might have resulted in invalid element stack peek.
229 Output specified media type if any.
231 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
233 * Compiler.cs : Patch by Andrew Skiba.
234 wrap internal exception with XsltCompileException.
235 Raise an error for not-found document URI.
236 QName might contain sequential whitespaces and thus could be empty.
238 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
240 * XslAttributeSet.cs : just ignore other kind of nodes than element
241 in its content. Fix by Andrew Skiba.
243 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
245 * XslOutput.cs : for html and text output mode, just set internal
246 omitXmlDeclaration status true. Patch by Andrew Skiba.
248 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
250 * XslFunctions.cs : fixed line ending mixture.
252 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
254 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
257 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
260 Compiler.cs : XmlResolver.ResolveUri() may return null.
262 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
264 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
267 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
269 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
271 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
273 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
276 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
278 * XslStylesheet.cs : removed unused fields.
279 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
282 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
284 * Compiler.cs, XslTransformProcessor.cs :
285 when creating XmlTextReader, reuse XmlNameTable.
287 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
289 * Compiler.cs : Changes that reflects CompiledExpression changes.
291 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
293 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
294 This fixes bug #67390.
296 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
298 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
300 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
302 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
303 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
304 : Globalization. Removed unused code.
306 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
308 * XslKey.cs : Key-value search in absolute path search was
311 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
313 * HtmlEmitter.cs : Correct URL escape implementation.
315 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
317 * XslTransformProcessor.cs : On document() function, close the
318 XmlTextReader opened from uri string.
320 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
323 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
324 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
325 should override another overload.
327 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
329 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
330 assembly should not include the .dll extension.
332 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
335 - CompilePattern() now throws XsltCompileException for invalid
336 pattern, and add error location support.
337 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
338 Now it returns MSXslNodeSet instance (for msxsl:node-set).
339 * Debug.cs : don't throw System.Exception.
340 * XslFunctions.cs : Added MSXslNodeSet class.
341 * XslTemplate.cs : reflected CompilePattern() change.
342 * XslTransformProcessor.cs : don't throw System.Exception.
343 * XsltCompiledContext.cs : don't throw System.Exception.
345 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
349 XslStylesheet.cs : made classes/enums internal.
351 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
353 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
354 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
355 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
356 XslTransformProcessor.cs : Make extra classes internal.
358 * XslKey.cs : It should require sorting.
359 * Debug.cs : Just avoid debug output. Only who want to output should
362 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
364 * GenericOutputter.cs : Culture-independency fix.
365 Replaced StringCollection to ArrayList.
366 * XslOutput.cs : Culture-independency fix.
368 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
370 * Compiler.cs : When BaseURI is an empty string, it should not try to
371 create Uri instance. This will fix bug #56832, but not sure.
372 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
373 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
374 should be the TextReader's NewLine).
375 * MSXslScriptManager.cs : Should raise an error when the prefix which
376 was specified by "implements-prefix" was not found.
378 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
380 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
381 when BaseURI for msxsl:script node is not available. This fixes
383 Don't output line number in the error message, when it is 0.
385 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
387 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
389 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
394 XslTransformProcessor.cs :
395 Throw specific types of exceptions instead of Exception.
396 * XslFunctions.cs, XsltCompiledContext.cs :
397 added node argument for XsltExtensionFunction ctor() etc.
399 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
401 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
402 CodeDom. Compilation error should be caught. This fixes bug #55875.
404 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
406 * XslStylesheet.cs : "version" attribute is also required for embedded
409 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
412 XslStylesheet.cs : Reject xsl element other than stylesheet and
413 transform. Check mandatory version attribute (only for existence).
415 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
417 * MSXslScriptManager.cs : if extension namespace was not found in
418 the script, just return null. Patch by Joshua Tauberer.
420 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
422 * XslLiteralElement.cs : quick fix for ArgumentNullException which
423 was because of the combination of non-namespaced instances and
424 exclude-result-prefixes.
426 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
428 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
429 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
430 * XslFunctions.cs : hereby Added.
431 * Compiler.cs : Removed deleted usingdecl.
433 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
435 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
436 * XslKey.cs : Added ExprKeyContainer expression type, which is
437 designed to be matched at any level.
438 * Compiler.cs : support for ExprKeyContainer.
440 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
442 * XslKey.cs : Now it collects key and matching nodes at the first
443 evaluation time. After that, we can just get them from the table.
444 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
445 prohibited key() usage in "match" and "use" attributes in xsl:key.
446 Modified accessibility of some classes.
447 * GenericOutputter.cs,
451 XmlWriterEmitter.cs : made classes internal.
452 * XslOutput.cs : support line info for exception.
453 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
455 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
457 * XsltCompiledContext.cs : fixed the length of context info array.
459 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
461 * XsltCompiledContext.cs :
462 replaced EnumeratorIterator with ListIterator
464 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
466 * GenericOutputter.cs,
469 XslTemplate.cs : tiny foreach elimination.
471 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
473 * XslOutput.cs : Reverted. default encoding should be utf-8.
475 2004-01-14 Jackson Harper <jackson@ximian.com>
477 * GenericOutputter.cs: Add constructors that do not take an
478 encoding to fix build.
480 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
482 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
483 write XML declaration. It means that output supports non document
484 entity. This fixes bug #52729.
485 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
486 modified WriteStartDocument() signature to receive Encoding.
487 * GenericOutputter.cs :
488 - Added .ctor() which receives Encoding. (It is used for TextWriter
489 output to get actual encoding.)
490 - Added .ctor() to take an boolean argument which indicates it is
491 variable content or not. (When variable, it does not call
492 WriteStartDocument().)
494 XsltCompiledContext.cs : comment out WriteLine().
495 * XslOutput.cs : set default encoding utf-16.
497 2004-01-08 Nick Drochak <ndrochak@ieee.org>
499 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
501 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
503 * XslDecimalFormat.cs : implemented format-number() other than number
505 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
506 catch ArgumentException which will be thrown by formatting process.
508 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
510 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
512 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
514 * XsltCompiledContext.cs: Remove workaround now that monodoc
517 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
519 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
520 aliases at compilation time, so evaluate at the first run-time.
522 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
524 * GenericOutputter.cs : support for runtime-determined output type.
525 * HtmlEmitter.cs : Fixed invalid doctype output.
526 Fixed incorrect double attribute output on non-HTML elements.
527 Improved indentation. Fixed "selected" attribute output.
528 Don't have to convert "'" to "'".
529 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
530 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
531 * XslStylesheet.cs, XsltCompiledContext.cs :
532 space resolution consideration for import and wildcard.
534 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
536 * Compiler.cs, XslTransformProcessor.cs :
537 Use XmlValidatingReader to support id() for external stylesheets.
538 * XslKey.cs, XsltCompiledContext.cs :
539 to evaluate MatchPattern and UsePattern, SetContext() is required.
540 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
542 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
544 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
545 Added WriteWhitespace().
546 * GenericOutputter.cs, XslTemplate.cs : Call above.
547 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
548 CurrentNode in for-each context have to be pulled at evaluation.
550 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
552 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
553 function for bugzilla #52144. It should be reverted soon.
555 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
557 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
559 * MSMslScriptManager.cs : modified generated assembly class to be unique
560 through running AppDomain.
561 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
562 arguments to actual argument types. Bugzilla #51450 should be fixed.
564 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
566 * HtmlEmitter.cs : Fixed incorrect character entity output.
568 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
570 * Added ScriptCompilerInfo.cs.
571 * MSXslScriptManager.cs : Fixed *true* author's name.
572 Implemented basic msxsl:script support.
573 * Compiler.cs : Added Evidence member.
575 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
577 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
578 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
579 Added WriteWhitespace() to assure not writing whitespaces as cdata.
580 * XslAttributeSet.cs : Error check if attribute-set contains other than
581 xsl:attribute. Error should be XsltException.
582 * XslDecimalFormat.cs : Complete equality check. Allow just one
583 character value for some attributes.
584 * XslStylesheet.cs : Made whitespace control setting overridable.
585 Added Version property (for the future compatibility mode).
586 Check unrecongnized top level element.
587 * XslTemplate.cs : Check priority as a number.
588 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
589 for xsl:preserve-space and xsl:strip-space support.
590 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
591 incomplete), PushScope and Pop
593 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
595 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
597 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
599 * Compiler.cs : In FromListString(), it should use default ns,
601 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
602 precedence. Doctype should be written even if SYSTEM id is absent.
603 Fixed possible multiple xmlns output.
605 - Encoding output using META element.
606 - Doctype name is fixed (html).
607 - Double quotation on PUBLIC and SYSTEM missing.
608 - Fixed incorrect tag name check for IMG.
609 - '>' should not be escaped.
610 * XmlWriterEmitter.cs :
611 Added newline before doctype. In WriteComment(), "--" and tail
612 '-' are not allowed (it escapes, while XmlWriter simply rejects).
613 * XslTransformProcessor.cs : cdata-section-elements should enclose
614 direct child tests only. Added PreserveWhitespace() (incomplete).
615 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
617 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
619 * IdPattern.cs : This should work against multiple ids.
621 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
624 * MSXslScriptManager.cs
626 * XslTransformProcessor.cs
627 * XsltCompiledContext.cs: Some work on msxsl script.
629 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
631 (in general: cdata-section-elements support, correct document()
632 base uri handling, and so on)
633 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
634 And move to document element. Added XslNameUtil.FromListString().
635 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
636 Added WriteCDataSection().
637 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
638 Added InsideCDataSection.
639 * GenericOutputter.cs :
640 In .ctor(), WriteState should be succeeded from output XmlWriter.
641 WriteNamespaceDecl() now drops declaration identical to existing one.
642 Removed obsolete htmlEmulation.
643 * XslOutput.cs : Added CDataSectionElements support.
644 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
645 * XslTransformProcessor.cs :
646 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
647 now considers xsl:exclude-element-prefixes on literal element.
648 Added PushCDataState() and PopCDataState().
649 * XsltCompiledContext.cs : When base uri of document() target is empty,
650 then it should use stylesheet's BaseURI, not that of current document.
652 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
654 * Compiler.cs : Modified decimal-format comparison code.
657 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
658 be called only when required.
659 * HtmlEmitter.cs : Improved indentation stuff.
660 * XslDecimalFormat.cs : Added incomplete implementation of
661 CheckSameAs() and FormatNumber().
663 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
664 from StringDictionary to ArrayList of QName (to keep order).
666 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
668 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
669 node type (i.e. attribute and namespace). Removed extraneous Clone().
670 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
672 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
674 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
675 XslStylesheet.cs : Added Keys support here.
676 * XslTransformProcessor.cs : Should call SetContext() to expressions
677 before evaluating current nodes.
678 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
679 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
680 for KeyPattern. It now uses CompiledStyle.FindKeys().
682 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
684 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
685 to Xalan tests and MS.NET implementation (only for test convenience).
686 * XslOutput.cs : Indent holds string rathen than bool. Its default value
687 varies in the context. When method="html", then default is "yes".
688 * XslTransformProcessor.cs : Extension element prefixes should not
689 be written as stylesheet namespaces.
690 * XsltCompiledContext.cs : Return type of generate-id() is string.
691 Implemented unparsed-entity-uri().
693 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
695 * Compiler.cs : More complete attribute set gathering.
696 GetNamespacesToCopy() should only return Local namespaces.
697 * GenericOutputter.cs : Added support for indentation.
698 Added easy hack for html output.
699 More correct Prefix handling (considers already defined ones).
700 Namespace emmission is moved to CheckState().
701 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
702 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
703 * GenericOutputter.cs, Outputter.cs :
704 Added CanProcessAttributes property for
705 use-attribute-sets of xsl:copy.
706 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
707 Added support for exclude-result-prefixes.
708 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
710 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
712 * Compiler.cs : It is not important, but attribute order became closer
713 to MS.NET and Xalan (assuming from OASIS tests).
715 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
717 * GenericOutputter.cs : Attribute wasn't overwritten its properties
718 because Attribute is struct it was let to another local variable.
720 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
722 * GenericOutputter.cs: make html output a warning, because doing
723 xml will be right most of the time.
725 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
727 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
728 here for a long time and it hurts thread safty and memory
731 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
733 * Compiler.cs: save the parser (will reduce memory allocation when
734 Jackson's jay patch is committed).
736 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
738 * Attribute.cs: Change to struct. Remove QName class.
739 * GenericOutputter.cs: use an Attribute [] rather than an
740 ArrayList. Allows us not to allocate Attributes, which is great
741 for speed. Roll our own allocation.
743 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
745 * Compiler.cs: add GetNsm to main class as well.
747 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
749 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
750 internal version so we get null if the attr doesnt exist.
752 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
754 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
755 where curVarScope == null
757 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
760 - Better handling of empty attributes (vs not being specified)
761 - Bug in handling #default
763 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
765 * Compiler.cs: Off by one when parsing localname of QName
766 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
767 children (so that they get overriden)
769 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
771 * GenericOutputter.cs: Output attributes in order recieved; not
772 required by spec, but useful for running test cases.
774 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
776 * GenericOutputter.cs - fix bug with outputting state.
777 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
778 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
780 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
782 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
783 exprs on use, pass to nav.
785 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
787 * Compiler.cs: pass satic context to Pattern ctor.
789 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
792 GenericOutputter.cs - generic Outputter implementation,
793 Attribute.cs - represents outputted attribute,
794 Emitter.cs - abstract output emitter,
795 TextEmitter.cs - text emitter,
796 XmlWriterEmitter.cs - emitter to XmlWriter.
797 * Checking of duplicating attributes is done in GenericOutputter.
798 * Namespace outputting logic is implemented in GenericOutputter.
799 * Outputter.cs: Writing namespace declarations is delegated to
800 derived classes (GenericOutputter).
801 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
803 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
805 * XslTransformProcessor.cs: evaluate variables at beginning
806 when / is current node.
808 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
810 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
811 Fix up namespace handeling
813 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
815 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
817 * XslDecimalFormat.cs: Stub for decimal-format.
819 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
821 * TextOutputter.cs: Add option to ignore element content (Oleg).
823 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
825 * Compiler.cs: Really give null for blank avt's
827 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
829 * Compiler.cs: Fixed lre/lre04.
831 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
833 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
834 won't have default namespace. See http://www.w3.org/TR/xslt#qname
836 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
838 * XslTransformProcessor.cs: add support for resolving documents.
839 * XsltCompiledContext: add support for document () function.
841 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
843 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
844 of the abstract methods in Outputter, making them call other
845 functions with default values, remove impl's in derived classes.
847 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
849 * Outputter.cs: s/Close/Done
850 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
851 * XslTransformProcessor.cs: Flush output when popping, pop at end.
853 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
855 * Outputter.cs: Add support for namespaces.
857 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
859 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
860 XslTransformProcessor.cs: move output logic from XslStylesheet to
863 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
865 * XslOutput.cs: add support for encoding.
867 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
869 * *.cs: Support for xsl:output. (Oleg)
871 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
873 * Compiler.cs: handle extension and excluded namespaces.
875 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
877 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
878 from the stylesheet for correct namespace resolution.
880 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
882 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
883 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
885 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
887 * XslTransformProcessor.cs: Add a table to detect when an object
889 * XslAttributeSet.cs: Use the above table. Dont throw nullref
890 exception when no use-attribute-sets are specified.
892 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
894 * Compiler.cs: Add support for boolean attributes (yes/no).
896 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
898 * Compiler.cs: Add method LocalNameOf, to get the local name of a
900 * XslTransformProcessor.cs: Support for setting the XmlResolver.
902 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
904 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
906 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
908 * XslTransformProcessor.cs: Add EvaluateNumber method.
910 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
912 * XsltCompiledContext.cs: Implement more functions.
914 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
916 * Compiler.cs: Add support for key, utility function to parse
917 QName's from the XsltContext. Store keys in the CompiledStyle, not
919 * XslKey.cs: Real implementation
920 * XslStylesheet.cs: Move the keys to CompiledStyle.
921 * XsltCompiledContext.cs: Implement the key function
923 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
925 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
926 the functions ;-). Also wrote current ().
928 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
930 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
931 done in XPath. Add stubs for XSLT functions.
933 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
935 * Compiler.cs: To resolve a variable you now need to pass the
936 processor, so that it can be passed to IsEvaluated. A local will
937 only be resolved if it has already been evaluated.
938 * XsltCompiledContext.cs: Pass along the processor.
940 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
942 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
943 variable values in the XslTransformProcessor.
944 * XsltCompiledContext.cs: If the scope is null, don't look there!
945 * Debug.cs: New method Assert
947 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
949 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
950 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
951 internal methods in XPathNavigator. Remove verbose debugging messages.
953 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>