1 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
4 XslStylesheet.cs : Reject xsl element other than stylesheet and
5 transform. Check mandatory version attribute (only for existence).
7 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
9 * MSXslScriptManager.cs : if extension namespace was not found in
10 the script, just return null. Patch by Joshua Tauberer.
12 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
14 * XslLiteralElement.cs : quick fix for ArgumentNullException which
15 was because of the combination of non-namespaced instances and
16 exclude-result-prefixes.
18 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
20 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
21 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
22 * XslFunctions.cs : hereby Added.
23 * Compiler.cs : Removed deleted usingdecl.
25 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
27 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
28 * XslKey.cs : Added ExprKeyContainer expression type, which is
29 designed to be matched at any level.
30 * Compiler.cs : support for ExprKeyContainer.
32 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
34 * XslKey.cs : Now it collects key and matching nodes at the first
35 evaluation time. After that, we can just get them from the table.
36 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
37 prohibited key() usage in "match" and "use" attributes in xsl:key.
38 Modified accessibility of some classes.
39 * GenericOutputter.cs,
43 XmlWriterEmitter.cs : made classes internal.
44 * XslOutput.cs : support line info for exception.
45 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
47 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
49 * XsltCompiledContext.cs : fixed the length of context info array.
51 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
53 * XsltCompiledContext.cs :
54 replaced EnumeratorIterator with ListIterator
56 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
58 * GenericOutputter.cs,
61 XslTemplate.cs : tiny foreach elimination.
63 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
65 * XslOutput.cs : Reverted. default encoding should be utf-8.
67 2004-01-14 Jackson Harper <jackson@ximian.com>
69 * GenericOutputter.cs: Add constructors that do not take an
70 encoding to fix build.
72 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
74 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
75 write XML declaration. It means that output supports non document
76 entity. This fixes bug #52729.
77 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
78 modified WriteStartDocument() signature to receive Encoding.
79 * GenericOutputter.cs :
80 - Added .ctor() which receives Encoding. (It is used for TextWriter
81 output to get actual encoding.)
82 - Added .ctor() to take an boolean argument which indicates it is
83 variable content or not. (When variable, it does not call
84 WriteStartDocument().)
86 XsltCompiledContext.cs : comment out WriteLine().
87 * XslOutput.cs : set default encoding utf-16.
89 2004-01-08 Nick Drochak <ndrochak@ieee.org>
91 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
93 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
95 * XslDecimalFormat.cs : implemented format-number() other than number
97 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
98 catch ArgumentException which will be thrown by formatting process.
100 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
102 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
104 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
106 * XsltCompiledContext.cs: Remove workaround now that monodoc
109 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
111 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
112 aliases at compilation time, so evaluate at the first run-time.
114 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
116 * GenericOutputter.cs : support for runtime-determined output type.
117 * HtmlEmitter.cs : Fixed invalid doctype output.
118 Fixed incorrect double attribute output on non-HTML elements.
119 Improved indentation. Fixed "selected" attribute output.
120 Don't have to convert "'" to "'".
121 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
122 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
123 * XslStylesheet.cs, XsltCompiledContext.cs :
124 space resolution consideration for import and wildcard.
126 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
128 * Compiler.cs, XslTransformProcessor.cs :
129 Use XmlValidatingReader to support id() for external stylesheets.
130 * XslKey.cs, XsltCompiledContext.cs :
131 to evaluate MatchPattern and UsePattern, SetContext() is required.
132 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
134 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
136 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
137 Added WriteWhitespace().
138 * GenericOutputter.cs, XslTemplate.cs : Call above.
139 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
140 CurrentNode in for-each context have to be pulled at evaluation.
142 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
144 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
145 function for bugzilla #52144. It should be reverted soon.
147 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
149 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
151 * MSMslScriptManager.cs : modified generated assembly class to be unique
152 through running AppDomain.
153 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
154 arguments to actual argument types. Bugzilla #51450 should be fixed.
156 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
158 * HtmlEmitter.cs : Fixed incorrect character entity output.
160 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
162 * Added ScriptCompilerInfo.cs.
163 * MSXslScriptManager.cs : Fixed *true* author's name.
164 Implemented basic msxsl:script support.
165 * Compiler.cs : Added Evidence member.
167 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
169 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
170 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
171 Added WriteWhitespace() to assure not writing whitespaces as cdata.
172 * XslAttributeSet.cs : Error check if attribute-set contains other than
173 xsl:attribute. Error should be XsltException.
174 * XslDecimalFormat.cs : Complete equality check. Allow just one
175 character value for some attributes.
176 * XslStylesheet.cs : Made whitespace control setting overridable.
177 Added Version property (for the future compatibility mode).
178 Check unrecongnized top level element.
179 * XslTemplate.cs : Check priority as a number.
180 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
181 for xsl:preserve-space and xsl:strip-space support.
182 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
183 incomplete), PushScope and Pop
185 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
187 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
189 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
191 * Compiler.cs : In FromListString(), it should use default ns,
193 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
194 precedence. Doctype should be written even if SYSTEM id is absent.
195 Fixed possible multiple xmlns output.
197 - Encoding output using META element.
198 - Doctype name is fixed (html).
199 - Double quotation on PUBLIC and SYSTEM missing.
200 - Fixed incorrect tag name check for IMG.
201 - '>' should not be escaped.
202 * XmlWriterEmitter.cs :
203 Added newline before doctype. In WriteComment(), "--" and tail
204 '-' are not allowed (it escapes, while XmlWriter simply rejects).
205 * XslTransformProcessor.cs : cdata-section-elements should enclose
206 direct child tests only. Added PreserveWhitespace() (incomplete).
207 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
209 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
211 * IdPattern.cs : This should work against multiple ids.
213 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
216 * MSXslScriptManager.cs
218 * XslTransformProcessor.cs
219 * XsltCompiledContext.cs: Some work on msxsl script.
221 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
223 (in general: cdata-section-elements support, correct document()
224 base uri handling, and so on)
225 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
226 And move to document element. Added XslNameUtil.FromListString().
227 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
228 Added WriteCDataSection().
229 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
230 Added InsideCDataSection.
231 * GenericOutputter.cs :
232 In .ctor(), WriteState should be succeeded from output XmlWriter.
233 WriteNamespaceDecl() now drops declaration identical to existing one.
234 Removed obsolete htmlEmulation.
235 * XslOutput.cs : Added CDataSectionElements support.
236 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
237 * XslTransformProcessor.cs :
238 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
239 now considers xsl:exclude-element-prefixes on literal element.
240 Added PushCDataState() and PopCDataState().
241 * XsltCompiledContext.cs : When base uri of document() target is empty,
242 then it should use stylesheet's BaseURI, not that of current document.
244 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
246 * Compiler.cs : Modified decimal-format comparison code.
249 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
250 be called only when required.
251 * HtmlEmitter.cs : Improved indentation stuff.
252 * XslDecimalFormat.cs : Added incomplete implementation of
253 CheckSameAs() and FormatNumber().
255 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
256 from StringDictionary to ArrayList of QName (to keep order).
258 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
260 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
261 node type (i.e. attribute and namespace). Removed extraneous Clone().
262 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
264 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
266 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
267 XslStylesheet.cs : Added Keys support here.
268 * XslTransformProcessor.cs : Should call SetContext() to expressions
269 before evaluating current nodes.
270 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
271 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
272 for KeyPattern. It now uses CompiledStyle.FindKeys().
274 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
276 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
277 to Xalan tests and MS.NET implementation (only for test convenience).
278 * XslOutput.cs : Indent holds string rathen than bool. Its default value
279 varies in the context. When method="html", then default is "yes".
280 * XslTransformProcessor.cs : Extension element prefixes should not
281 be written as stylesheet namespaces.
282 * XsltCompiledContext.cs : Return type of generate-id() is string.
283 Implemented unparsed-entity-uri().
285 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
287 * Compiler.cs : More complete attribute set gathering.
288 GetNamespacesToCopy() should only return Local namespaces.
289 * GenericOutputter.cs : Added support for indentation.
290 Added easy hack for html output.
291 More correct Prefix handling (considers already defined ones).
292 Namespace emmission is moved to CheckState().
293 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
294 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
295 * GenericOutputter.cs, Outputter.cs :
296 Added CanProcessAttributes property for
297 use-attribute-sets of xsl:copy.
298 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
299 Added support for exclude-result-prefixes.
300 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
302 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
304 * Compiler.cs : It is not important, but attribute order became closer
305 to MS.NET and Xalan (assuming from OASIS tests).
307 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
309 * GenericOutputter.cs : Attribute wasn't overwritten its properties
310 because Attribute is struct it was let to another local variable.
312 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
314 * GenericOutputter.cs: make html output a warning, because doing
315 xml will be right most of the time.
317 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
319 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
320 here for a long time and it hurts thread safty and memory
323 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
325 * Compiler.cs: save the parser (will reduce memory allocation when
326 Jackson's jay patch is committed).
328 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
330 * Attribute.cs: Change to struct. Remove QName class.
331 * GenericOutputter.cs: use an Attribute [] rather than an
332 ArrayList. Allows us not to allocate Attributes, which is great
333 for speed. Roll our own allocation.
335 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
337 * Compiler.cs: add GetNsm to main class as well.
339 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
341 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
342 internal version so we get null if the attr doesnt exist.
344 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
346 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
347 where curVarScope == null
349 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
352 - Better handling of empty attributes (vs not being specified)
353 - Bug in handling #default
355 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
357 * Compiler.cs: Off by one when parsing localname of QName
358 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
359 children (so that they get overriden)
361 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
363 * GenericOutputter.cs: Output attributes in order recieved; not
364 required by spec, but useful for running test cases.
366 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
368 * GenericOutputter.cs - fix bug with outputting state.
369 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
370 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
372 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
374 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
375 exprs on use, pass to nav.
377 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
379 * Compiler.cs: pass satic context to Pattern ctor.
381 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
384 GenericOutputter.cs - generic Outputter implementation,
385 Attribute.cs - represents outputted attribute,
386 Emitter.cs - abstract output emitter,
387 TextEmitter.cs - text emitter,
388 XmlWriterEmitter.cs - emitter to XmlWriter.
389 * Checking of duplicating attributes is done in GenericOutputter.
390 * Namespace outputting logic is implemented in GenericOutputter.
391 * Outputter.cs: Writing namespace declarations is delegated to
392 derived classes (GenericOutputter).
393 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
395 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
397 * XslTransformProcessor.cs: evaluate variables at beginning
398 when / is current node.
400 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
402 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
403 Fix up namespace handeling
405 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
407 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
409 * XslDecimalFormat.cs: Stub for decimal-format.
411 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
413 * TextOutputter.cs: Add option to ignore element content (Oleg).
415 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
417 * Compiler.cs: Really give null for blank avt's
419 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
421 * Compiler.cs: Fixed lre/lre04.
423 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
425 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
426 won't have default namespace. See http://www.w3.org/TR/xslt#qname
428 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
430 * XslTransformProcessor.cs: add support for resolving documents.
431 * XsltCompiledContext: add support for document () function.
433 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
435 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
436 of the abstract methods in Outputter, making them call other
437 functions with default values, remove impl's in derived classes.
439 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
441 * Outputter.cs: s/Close/Done
442 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
443 * XslTransformProcessor.cs: Flush output when popping, pop at end.
445 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
447 * Outputter.cs: Add support for namespaces.
449 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
451 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
452 XslTransformProcessor.cs: move output logic from XslStylesheet to
455 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
457 * XslOutput.cs: add support for encoding.
459 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
461 * *.cs: Support for xsl:output. (Oleg)
463 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
465 * Compiler.cs: handle extension and excluded namespaces.
467 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
469 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
470 from the stylesheet for correct namespace resolution.
472 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
474 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
475 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
477 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
479 * XslTransformProcessor.cs: Add a table to detect when an object
481 * XslAttributeSet.cs: Use the above table. Dont throw nullref
482 exception when no use-attribute-sets are specified.
484 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
486 * Compiler.cs: Add support for boolean attributes (yes/no).
488 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
490 * Compiler.cs: Add method LocalNameOf, to get the local name of a
492 * XslTransformProcessor.cs: Support for setting the XmlResolver.
494 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
496 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
498 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
500 * XslTransformProcessor.cs: Add EvaluateNumber method.
502 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
504 * XsltCompiledContext.cs: Implement more functions.
506 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
508 * Compiler.cs: Add support for key, utility function to parse
509 QName's from the XsltContext. Store keys in the CompiledStyle, not
511 * XslKey.cs: Real implementation
512 * XslStylesheet.cs: Move the keys to CompiledStyle.
513 * XsltCompiledContext.cs: Implement the key function
515 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
517 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
518 the functions ;-). Also wrote current ().
520 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
522 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
523 done in XPath. Add stubs for XSLT functions.
525 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
527 * Compiler.cs: To resolve a variable you now need to pass the
528 processor, so that it can be passed to IsEvaluated. A local will
529 only be resolved if it has already been evaluated.
530 * XsltCompiledContext.cs: Pass along the processor.
532 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
534 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
535 variable values in the XslTransformProcessor.
536 * XsltCompiledContext.cs: If the scope is null, don't look there!
537 * Debug.cs: New method Assert
539 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
541 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
542 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
543 internal methods in XPathNavigator. Remove verbose debugging messages.
545 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>