1 2004-10-28 Atsushi Enomoto <atsushi@ximian.com>
3 * XQueryConvert.cs : hexbinary to base64 is now byte[] to byte[].
5 2004-10-22 Atsushi Enomoto <atsushi@ximian.com>
7 * XQueryConvert.cs : now it is in System.Xml and made as public.
9 2004-10-08 Atsushi Enomoto <atsushi@ximian.com>
11 * XQueryParser.jay : I was mixing XPath1 class and XPath2.
13 2004-10-08 Atsushi Enomoto <atsushi@ximian.com>
15 * XQueryCliFunction.cs : native method invokation was still crashing.
17 2004-10-08 Atsushi Enomoto <atsushi@ximian.com>
21 Added WrapperIterator, RemovalIterator for fn:remove(),
22 InsertingIterator for fn:insertBefore() and DistinctValueIterator
23 for fn:distinct-values().
24 * XQueryCliFunction.cs :
25 Improved error message. Handle null argument as empty sequence.
27 Fixed incorrect function name fn:zero-or-more -> fn:zero-or-one.
28 * XQueryFunctionCliImpl.cs :
29 Implemented some functions. Fixed some function signatures.
31 2004-10-07 Atsushi Enomoto <atsushi@ximian.com>
33 * XPath2Expression.cs, XPathSequence.cs :
34 Changed ListIterator.ctor() signature not to demand current sequence.
35 * XQueryCliFunction.cs, XQueryFunctionCliImpl.cs :
36 Now, to represent a sequence, IEnumerable is not used anymore (it is
37 confusing because System.String is also IEnumerable). So those native
38 functions should just require XPathSequence (for user functions?
39 not idea how MS will solve the "problem").
41 If a native function method has [XQueryFunctionContext] attribute,
42 then it means that the function requires current sequence, so fill
43 it before invoking the method.
44 * XQueryFunctionContextAttribute.cs : added, to mark "it needs
45 current sequence" for fn:position() and fn:count().
47 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
49 * XPathSequence.cs, XQueryTokenizer.cs :
50 removed commented && unused code.
51 * XQueryContext.cs, XQueryCliFunction.cs, XQueryFunction.cs,
52 XQueryFunctionCliImpl.cs :
53 Now that position() requires current sequence that is not managed by
54 XQueryContextManager (that is for FLWOR), it need to support
55 XPathSequence input as the current node information.
57 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
59 * XQueryParser.jay, XQueryTokenizer.cs :
60 Added attribute value template support.
61 * XPath2Expression.cs : Inside attribute value, expressions must not
62 serialize attributes as attribute node but should just pick value up.
63 e.g. attr="{foo/@bar}" and <elem>{foo/@bar}</elem> are different.
65 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
67 * XQueryParser.jay, XPath2Expression.cs, XPathSequence.cs :
68 two or more Filter expressions could be simply constructed as
69 nested FilterExpr objects.
71 2004-09-22 Atsushi Enomoto <atsushi@ximian.com>
73 * SequenceType.cs : return TypedValue instead of null in case of
75 * XPath2Expression.cs : now FunctionCallExpr also handles evaluation.
76 * XPathSequence.cs : rewrote FLWORIterator to iterate forlet
77 expressions based on index.
79 2004-09-13 Atsushi Enomoto <atsushi@ximian.com>
81 * SequenceType.cs, XPath2Expression.cs :
82 Added SequenceType.IsNumeric(XmlTypeCode).
83 In type comparison, untyped XPathNavigator is xdt:untypedAtomic
84 (not sure as yet if it is always correct.)
85 * XQueryComparisonOperator.cs : rewrote all numeric comparison using
88 2004-09-12 Atsushi Enomoto <atsushi@ximian.com>
90 * XPath2Expression.cs : ComparisonExpr.CompareAtomic() should consider
91 spec-conformant untypedAtomic handling.
92 * XQueryContext.cs : Variables were incorrectly added to the older
93 context. Fixed Context and ContextManager constructors that were
94 in silly chicken-and-egg.
95 * XPathSequence.cs : now Context property always returns current
96 XQuery context (will be fixed; it is workaround for variable
97 resolution). In For iteration, context sequence should vary.
98 * XQueryComparisonOperator.cs : All value comparison failed to return
99 true when both operands are the same types.
100 * XsltCommand.cs : use XmlWriter.Create().
102 2004-09-08 Atsushi Enomoto <atsushi@ximian.com>
104 * XPathSequence.cs : workarounded bug #65521. Erased foreach inside
107 2004-09-08 Atsushi Enomoto <atsushi@ximian.com>
109 * XPath2Expression.cs : fixed EnclosedExpr.Compile() that resulted
110 in index out of range.
111 * XPathSequence.cs : FLWORIterator got working, but only when compiled
112 with .NET 2.0 csc (still weird Invalid IL error happens).
114 2004-08-31 Atsushi Enomoto <atsushi@ximian.com>
116 * XPath2Expression.cs,
118 Implemented GroupExpr.Evaluate() [union/intersect/except].
119 Fixed incorrect iterator input for DescendantExpr.Evaluate().
120 MinusExpr is (already) implemented not to be evaluated.
121 * XQueryExpression.cs :
122 PI name and nameExpr could be implemented.
123 * XQueryFunction.cs :
124 UserFunctionCallExpr.Invoke() should not be invoked.
125 * XQueryFunctionCliImpl.cs :
126 Implemented count(), doc(). Halfly implemented trace().
127 * XmlQueryException.cs : Serializable.
129 2004-08-31 Atsushi Enomoto <atsushi@ximian.com>
131 * XPath2Expression.cs :
132 Implemented the whole ComparisonExpr.Evaluate(). It now handles
133 empty sequence expectedly.
134 * XQueryComparisonOperator.cs : added.
136 2004-08-31 Atsushi Enomoto <atsushi@ximian.com>
138 * XPath2Expression.cs :
139 Revised some parameters for XPathSequence classes ctor().
140 Don't require XPathSequence while they are not required.
141 AxisIterator need to accept only current node as its input.
142 Implemented node comparison operators.
143 Removed AxisStepExpr.ParentStep (in the future it might hold line
145 * XQueryParser.jay : changes wrt AxisStepExpr.ParentStep.
146 * XPathSequence.cs, XQueryExpression.cs, XQueryFunction.cs :
147 Removed some extraneous code.
148 NodeIterator.ctor() now requires XPathNavigator and XQueryContext
149 instead of XPathSequence.
150 Added SelfIterator (derived from NodeIterator).
152 2004-08-31 Atsushi Enomoto <atsushi@ximian.com>
154 * XQueryArithmeticOperator.cs : added.
155 * XPath2Expression.cs, XQueryParser.jay :
156 renamed some ArithmeticOperator enumeration members.
157 Implemented ArithmeticOperationExpr.Evaluate().
159 2004-08-30 Atsushi Enomoto <atsushi@ximian.com>
161 * XPathSequence.cs : fixed NodeIterator to get correct current node
162 from the input sequence. Now open MoveNext() again as public to
163 allow override by NodeIterator.
165 2004-08-30 Atsushi Enomoto <atsushi@ximian.com>
167 * XPath2Expression.cs : empty ExprSequence should not be allowed for
168 FLWORExpr.WhereClause. It should be null.
169 * XPathSequence.cs : ExprSequenceIterator.Clone() was missing copy of
170 the input sequence. FLWORIterator.MoveNext() had incorrect !(not)
171 and wrong Where test.
172 * XQueryContext.cs : sequence should be cloned when pushed to context.
174 2004-08-30 Atsushi Enomoto <atsushi@ximian.com>
176 * XQueryCommandImpl.cs : dust cleaning :(
178 2004-08-30 Atsushi Enomoto <atsushi@ximian.com>
180 * XQueryASTCompiler.cs, XQueryStaticContext.cs :
181 Now it requires Evidence and XQueryCommandImpl for security check
183 * XQueryCommandImpl.cs :
184 Provide Evidence for compiler. Added some code for message dispatch.
186 Now don't pool variable only in XQueryContextManager.
187 When variable name could not be resolved, return empty sequence
188 (not sure if it is always correct).
189 Fixes which reflects XPathEmptySequence.ctor() parameter changes.
190 * XQueryCliFunction.cs :
191 Now it requires CAS if Evidence is supplied (in the future
192 Evidence won't be null _at any time_).
194 implemented GetFallbackType(). Fixed some comments.
196 Don't require XPathSequence as an argument for XPathEmptySequence.
197 Implemented FilteredIterator.
198 Implemented FLWORIterator partly (not working).
199 Fixed some incorrect exception type: XPathEx- to XmlQueryEx-.
200 Dispatch message event to XQueryStaticContext.OnMessageEvent().
201 Added EnumeratorIterator.
203 Fixes which reflects XPathEmptySequence.ctor() parameter changes.
204 * XQueryExpression.cs :
205 Commonized content serialization for node constructors.
206 * XPath2Expression.cs :
207 use XPathItem.TypedValue instead of (string) Value.
208 In effective boolean value computation, Check Decimal as well.
209 Fixed misimplemented QuantifiedExpr.EvaluateAsBoolean().
210 Fix which reflects XQueryContext.PushVariables() changes.
211 Handle possible null argument on ParenthesizedExpr i.e. "( )".
213 2004-08-26 Atsushi Enomoto <atsushi@ximian.com>
215 * XPath2Expression.cs :
216 Fixed PathRootExpr.Evaluate() that always failed.
217 Renamed PathChildExpr to PathSlashExpr, PathDescendantExpr to
218 PathSlash2Expr, and added abstract PathStepExpr.
219 PathSlash2Expr.Evaluate() now uses PathStepIterator
221 - Modified MoveNextCore() as protected.
222 - Fixed SingleItemIterator.MoveNext() to be simple.
223 - Renamed ChildPathIterator to PathStepIterator. Mostly copied
224 SlashIterator logic from Iterator.cs into PathStepIterator.
225 - Removed DescendantPathIterator ("//" should be the same as
226 "/descendant-or-self::node()/").
227 - NodeIterator.Node should come from current node, not context node.
228 - Added dummy flag for NodeIterator's copy constructor (that resulted
229 in incorrect copying for some usecases).
230 * XQueryParser.jay : Fixes in sync with Expr class name changes.
232 2004-08-26 Atsushi Enomoto <atsushi@ximian.com>
234 * XPath2Expression.cs :
235 Don't compute node's EBV based on atomized value.
237 2004-08-26 Atsushi Enomoto <atsushi@ximian.com>
239 * XPath2Expression.cs : in Compiler(), function call's arguments must
241 * XQueryASTCompiler.cs : When function is external, it should not try
242 to compile body, and tries to handle it as a native CLI method (I
243 don't like this name resolution design very much, so it is likely
245 * XQueryCliFunction.cs : trivial code comment fix.
246 * XQueryFunction : added user-specified function call support.
247 When CLI function returned null, don't wrap null and just return
249 * XQueryFunctionCliImpl.cs : fn:nilled() requires certain node.
250 Implemented numeric functions (in the future they might be
251 rewritten to avoid boxing).
252 * XQueryTokenizer.cs : Skip XQuery comment inside default state.
253 PI and XML comment are not read correctly.
255 2004-08-25 Atsushi Enomoto <atsushi@ximian.com>
257 * XPath2Expression.cs :
258 Check write state before writing document node.
259 Check if navigator's SchemaInfo is null or not before atomizing.
260 Use individual axis-based iterator in AxisStepExpr.Evaluate().
261 * XPathSequence.cs : added individual axis-based iterator.
262 Removed commented NodeKindTestIterator.
263 * XQueryCliFunction.cs, XQueryContext.cs, XQueryFunction.cs :
264 Now XQueryContext.CurrentItem explicitly throws exception if
265 no context node was provided (also XQueryCommand.Execute() is
266 fixed not to provide empty document as input).
267 Now XQueryFunction should not access to CurrentItem unless it is
269 * XQueryFunctionCliImpl.cs : fixed more method signatures.
271 2004-08-25 Atsushi Enomoto <atsushi@ximian.com>
273 * removed IXmlCompilerInclude.cs (does not exist anymore).
275 2004-08-25 Atsushi Enomoto <atsushi@ximian.com>
277 * SequenceType.cs : moved type inference method to XPathAtomicValue.
278 Use IsArray in runtime type inference. Initialize fields completely.
279 Handle collection to runtime type for functions that takes array.
280 * XPath2Expression.cs : Add whitespaces on serializing XPath items.
281 EBV != atomized boolean value. Add Atomize() for XPathItem (Atomize()
282 for XPathSequence should be removed in the future).
283 Replaced some ExprSequence to ExprSingle for optimization.
284 * XQueryFunctionCliImpl.cs : Fixed some return types.
285 * XQueryTokenizer.cs : Fixed weird ReadDecimal().
287 2004-08-24 Atsushi Enomoto <atsushi@ximian.com>
289 * SequenceType.cs : added ToRuntimeType().
290 * XPath2Expression.cs : override is required.
291 * XPathSequence.cs : fixed ExprSequenceIterator.MoveNext() that caused
293 * XQueryCompileContext.cs : CultureInfo was missing.
294 * XQueryContext.cs : CurrentContext must be created after setting
296 * XQueryConvert.cs : DateTimeToString() was missing.
297 * XQueryFunction.cs : convert parameters to runtime type before
298 being used in Invoke(). Use function's ReturnType to create typed
300 * XQueryParser.jay : create XQueryFunctionArgumentList instance
301 for function calls that does not have parameters.
303 2004-08-23 Atsushi Enomoto <atsushi@ximian.com>
305 * SequenceType.cs, XPath2Expression.cs, XQueryASTCompiler.cs,
306 XQueryCliFunction.cs, XQueryCompileOptions.cs, XQueryContext.cs,
307 XQueryConvert.cs, XQueryExpression.cs, XQueryFunction,cs,
308 XQueryFunctionCliImpl.cs, XQueryFunctionTable.cs,
309 XQueryModuleProlog.cs, XQueryParser.jay, XQueryStaticContext.cs,
311 Eliminate MS.Internal.Xml.* classes. More null check everywhere and
312 make Compile() pass though as a dummy. Unified FunctionParam into
313 XQueryFunctionArgument. More kind error message. Several fixes.
315 2004-08-20 Atsushi Enomoto <atsushi@ximian.com>
317 * XQueryExpression.cs : Content for XmlTextConstructor might be null,
318 and use literal text for constructor argument if supplied.
319 * XQueryParser.jay, XQueryTokenizer.cs : Element content literal
320 string was not parsed and kept correctly. Parse CDATA section.
322 2004-08-20 Atsushi Enomoto <atsushi@ximian.com>
324 * XPath2Expression.cs, XQueryConvert.cs, XQueryExpression.cs,
325 XQueryModuleProlog.cs, XQueryParser.jay, XQueryTokenizer.cs :
326 several changes for XQueryCommand.Execute() implementation.
328 2004-08-20 Atsushi Enomoto <atsushi@ximian.com>
330 * XQueryContext.cs, XQueryStaticContext.cs, SequenceType.cs,
331 XPathSequence.cs, XQueryFunction.cs, XQueryFunctionTable.cs,
332 XQueryCliFunction.cs, XQueryCompileContext.cs, XQueryASTCompiler.cs,
333 XQueryCommandImpl.cs, XQueryFunctionCliImpl :
334 new files for XQuery implementation.
336 2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
338 * XmlQueryCompileException.cs : removed extra GetObjectData().
339 * XsltCommand.cs : fixed signatures of Compile() and Execute() methods.
341 2004-07-27 Atsushi Enomoto <atsushi@ximian.com>
345 XQueryModuleProlog.cs,
347 Removed SchemaContext. StepExpr and XPathAxis redesign.
348 (Partially) updated Prolog to match with XQuery 7/23/2004 spec.
349 XML comment/PI/CDATA recognition in tokenizer.
351 2004-07-26 Atsushi Enomoto <atsushi@ximian.com>
356 XQueryModuleProlog.cs,
358 XQueryExpression.cs : added.
360 2004-07-23 Atsushi Enomoto <atsushi@ximian.com>
362 * XmlQueryCompileException.cs, XmlQueryException.cs :
363 added internal constructor that supplies error location.
364 Removed Message property.
366 2004-07-20 Atsushi Enomoto <atsushi@ximian.com>
368 * XsltCommand.cs, XmlArgumentList.cs : sealed. Added missing MonoTODO.
369 * XQueryConvert.cs : added. (namespace is temporarily MS.Internal.Xml)
371 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
373 * IXmlCompilerInclude.cs,
375 QuertEventHandler.cs,
377 XsltCommand.cs : added.
379 * XmlQueryArgumentList.cs,
380 XsltProcessor.cs : removed (only in .NET 1.2).
383 XmlQueryCompileException.cs,
384 XmlQueryException.cs : updated API to that of .NET 2.0.
386 2003-12-14 Tim Coleman <tim@timcoleman.com>
387 * ChangeLog XmlCommand.cs XmlQueryArgumentList.cs
388 * XmlQueryCompileException.cs XmlQueryException.cs XsltProcessor.cs:
389 Move classes from the System.Data.SqlXml assembly where they