ChangeLog 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611
  1. 2004-02-16 Atsushi Enomoto <[email protected]>
  2. * Expression.cs : Added EvaluatedNodeType and NeedAbsoluteMatching
  3. to reduce extraneous Matches() trial.
  4. * Iterator.cs : Removed unused MergedIterator.
  5. * XPathNavigator.cs : Optimized Matches() not to evaluate ancestors
  6. unnecessarily. (Test with NeedAbsoluteMatching).
  7. 2004-02-10 Atsushi Enomoto <[email protected]>
  8. * Iterator.cs : Added overriden Count properties for some iterators
  9. (this fixes the half of #50678).
  10. Added ListIterator class (which can reduce GetEnumerator()).
  11. In some places we can omit clone for Current property, so added
  12. some check logic (It has no effect as yet).
  13. * Expression.cs, DefaultContext.cs :
  14. use ListIterator instead of EnumeratorIterator.
  15. 2004-02-08 Atsushi Enomoto <[email protected]>
  16. * DefaultContext.cs, Expression.cs, Iterator.cs :
  17. tiny foreach elimination.
  18. 2004-02-05 Atsushi Enomoto <[email protected]>
  19. * DefaultContext.cs : trivial processing order fix.
  20. 2004-01-27 Atsushi Enomoto <[email protected]>
  21. * DefaultContext.cs : Avoid exception if possible.
  22. * Iterator.cs : Fixed PrecedingSiblingIterator.MoveNext(). When the
  23. nav was positioned at the first, it incorrectly points itself.
  24. Don't add names to name table while it is useless and expensive.
  25. 2004-01-08 Nick Drochak <[email protected]>
  26. * Iterator.cs: Removed unused variable.
  27. 2003-12-18 Atsushi Enomoto <[email protected]>
  28. * Parser.jay : now it supresses error output from jay.
  29. * DefaultContext.cs : (XPathFunctionSubstring) exclude -Infinity.
  30. * Tokenizer.cs : better error message.
  31. * XPathDocument.cs : Use XmlValidatingReader to support id() function.
  32. (just found MS.NET actually supports it)
  33. 2003-12-16 Atsushi Enomoto <[email protected]>
  34. * Iterator.cs : On its iteration, moving Current must not affect to
  35. MoveNext(). To assure this, Current must be a clone of navigator.
  36. Removed unused code.
  37. 2003-12-07 Atsushi Enomoto <[email protected]>
  38. * Tokenizer.cs : Removed some TODOs. (trivial ;-)
  39. * Iterator.cs : ParensIterator can inherit from BaseIterator.
  40. SlashIterator copy .ctor() always failed to clone. This fixes Count.
  41. 2003-12-03 Atsushi Enomoto <[email protected]>
  42. * Expression.cs : XPathSorters.Compare() should compare document
  43. position. See last sentence of XSLT 1.0 secion 10.
  44. 2003-12-03 Atsushi Enomoto <[email protected]>
  45. * DefaultContext.cs : Overrode all functions' ToString().
  46. XPathFunctions.ToNumber() trims whitespaces at both side.
  47. Fixed NullReferenceException in normalize-space().
  48. * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
  49. attribute or namespace node correctly.
  50. SlashIterator.Clone() didn't clone "next node iterator" correctly.
  51. EnumeratorIterator.ctor() should raise an error (not at Clone())
  52. when the target IEnumerator is not ICloneable.
  53. 2003-11-28 Atsushi Enomoto <[email protected]>
  54. * Expression.cs : namespace axis now traversed in reverse order, so it
  55. requires sorting.
  56. * Iterator.cs : UnionIterator.Clone() was incomplete.
  57. NamespaceItarator() should be reverse order (special handling
  58. because of XPathNavigator specification).
  59. 2003-11-24 Atsushi Enomoto <[email protected]>
  60. * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
  61. * XPathNavigator.cs : ComparePosition() didn't handle attributes
  62. correctly.
  63. 2003-11-24 Atsushi Enomoto <[email protected]>
  64. * Parser.jay, Expression.cs, Iterator.cs :
  65. Added ExprParens and ParensIterator classes which is used to handle
  66. precedence of parenthesized expressions.
  67. (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
  68. * Expression.cs, Iterator.cs :
  69. Added RequireSorting property for each Expr and BaseIterator classes.
  70. SlashIterator.MoveNext() now considers correct sorting. But
  71. considering performance, it separates two logics, sorted and sortless
  72. depending on RequireSorting of left iterator and right expression.
  73. * Iterator.cs :
  74. SimpleIterator.ctor() should consider when nav is null.
  75. FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
  76. not return any nodes.
  77. AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
  78. positions.
  79. AncestorIterator.MoveNext() should skip Root if context node is
  80. Root itself.
  81. FollowingIterator.MoveNext() should not handle children of context
  82. itself.
  83. PrecedingIterator.MoveNext() should skip its ancestors.
  84. AxisIterator.ReverseAxis should be dependent on its containing iter.
  85. UnionIterator.MoveNext() should consider comparison of nodes in
  86. different document. The behavior is implementation dependent.
  87. (see XSLT spec 12.1)
  88. 2003-11-19 Atsushi Enomoto <[email protected]>
  89. * Added XPathComparer.cs
  90. * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base
  91. iterator correctly, and sort results.
  92. 2003-11-19 Atsushi Enomoto <[email protected]>
  93. * DefaultContext.cs : Imcomplete fix ;-)
  94. 2003-11-19 Atsushi Enomoto <[email protected]>
  95. * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
  96. XPathFunctionId.cs : Exposed Id expression.
  97. * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
  98. will be used to solve evaluation precedence problem).
  99. 2003-11-09 Atsushi Enomoto <[email protected]>
  100. * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
  101. inconsistent order, and 2)may return duplicate result nodes.
  102. 2003-11-06 Ben Maurer <[email protected]>
  103. * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
  104. it inherit from the base class. This made b[2] evaluated on
  105. <a /><b /><c /><a /><b /><c /> return the first b node because
  106. in the ChildIterator it was the second node and seemed to satsify
  107. the predicate.
  108. 2003-11-04 Atsushi Enomoto <[email protected]>
  109. * Iterator.cs : Added bool ReverseAxis property to identify whether
  110. the iterator is in reverse order or not. Added ComparablePosition
  111. for correct position comparison for PredicateIterator and reverse-
  112. order-axes. Modified AncestorIterator, AncestorOrSelfIterator,
  113. PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
  114. return their nodes in document order. This fixes bugzilla #39079.
  115. 2003-10-15 Atsushi Enomoto <[email protected]>
  116. * Iterator.cs : DescendantIterator and FollowingIterator also should
  117. not MoveNext() after they reached to the end.
  118. 2003-10-13 Atsushi Enomoto <[email protected]>
  119. * Iterator.cs : Fixed UnionIterator who ignores document order.
  120. Fixed SlashIterator whose MoveNext() should finish at its end.
  121. 2003-09-27 Ben Maurer <[email protected]>
  122. * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
  123. use NameTable so we dont call strcmp.
  124. 2003-09-27 Ben Maurer <[email protected]>
  125. * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
  126. not "abc".
  127. * Iterator.cs, Expression.cs: All axes are
  128. SimpleIterators. SimpleIterators are gaurenteed to give the same
  129. XPathNavigator in Current. Make AxisIterator take a
  130. SimpleIterator, not any old BaseIterator. Will allow us to make
  131. NameTable optimizations and avoid quite a few strcmp's.
  132. 2003-09-24 Ben Maurer <[email protected]>
  133. * Expression.cs: make // work right, must use another slash itr.
  134. 2003-09-21 Ben Maurer <[email protected]>
  135. * Expression.cs: cant use $$ before assigned.
  136. 2003-09-21 Ben Maurer <[email protected]>
  137. * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
  138. 2003-09-20 Ben Maurer <[email protected]>
  139. * Expression.cs: num != double.NaN does not work.
  140. 2003-09-19 Ben Maurer <[email protected]>
  141. * Expression.cs: in NodeTypeTest dont throw an exception if it is
  142. an unknown node type (allows for better Pattern debugging).
  143. 2003-09-17 Ben Maurer <[email protected]>
  144. * DefaultContext.cs: implement sum () and translate ().
  145. 2003-09-13 Ben Maurer <[email protected]>
  146. * XPathNavigator.cs: Make methods where you pass in the context,
  147. so that we dont have to clone expressions so much.
  148. 2003-09-06 Ben Maurer <[email protected]>
  149. * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
  150. system functions are actually expressions. Will allow for some
  151. nice optimizations.
  152. 2003-08-25 Ben Maurer <[email protected]>
  153. * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
  154. improvement in the method (5ms/call -> .7 ms / call) measured by
  155. monodoc's rendering of N:System.
  156. * Expression.cs: Utility methods to support above.
  157. 2003-08-13 Piers Haken <[email protected]>
  158. * Iterator.cs:
  159. fix MergedIterator.Clone(), now clones other's iterators
  160. fix DescendantIterator.Clone(), now copies depth
  161. make iterator cloning constructors more type-specific
  162. 2003-08-01 Piers Haken <[email protected]>
  163. * Expression.cs: added NodeNamespaceTest
  164. * XPathNavigator.cs: implement Select* with namespaces
  165. 2003-07-31 Ben Maurer <[email protected]>
  166. * Iterator.cs: Allow creation of an EnumeratorIterator with an
  167. XmlNamespaceManager.
  168. 2003-07-31 Piers Haken <[email protected]>
  169. * Parser.jay:
  170. Nested predicates (uses ExprFilter instead)
  171. more type safety
  172. make grammar look more like w3c spec
  173. * Expression.cs:
  174. remove ExprStep, ExprPredicates
  175. NodeTest is now a NodeSet
  176. more type-safety
  177. * Iterator.cs:
  178. PredicateIterator now only takes a single predicate expression
  179. more type-safety
  180. * XPathNavigator.cs:
  181. simplified SelectTest
  182. * XPathException.cs:
  183. fixed indenting
  184. 2003-07-30 Duncan Mak <[email protected]>
  185. * XPathException.cs
  186. (GetObjectData):
  187. (Message): Added.
  188. 2003-07-29 Piers Haken <[email protected]>
  189. * DefaultContext.cs: 'local-name' returns String, not NodeSet!
  190. 2003-07-29 Piers Haken <[email protected]>
  191. * XPathNavigator.cs:
  192. * Expression.cs:
  193. add typesafe Evaluate* methods
  194. 2003-07-29 Piers Haken <[email protected]>
  195. * DefaultContext.cs: fix 'substring-after'
  196. 2003-07-29 Piers Haken <[email protected]>
  197. * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
  198. 2003-07-29 Ben Maurer <[email protected]>
  199. * Iterator.cs: dont throw exceptions on tostring ()
  200. 2003-07-28 Piers Haken <[email protected]>
  201. * DefaultContext.cs: better handling of null argument lists
  202. * XPathNavigator.cs: implement ComparePosition
  203. 2003-07-28 Piers Haken <[email protected]>
  204. * Expression.cs: boolean operators: handle comparing .Any better
  205. 2003-07-28 Piers Haken <[email protected]>
  206. * DefaultContext.cs: count() should return a double
  207. * Expression.cs: better support for handling non-double numbers
  208. 2003-07-28 Piers Haken <[email protected]>
  209. * DefaultContext.cs: better function param matching
  210. 2003-07-27 Piers Haken <[email protected]>
  211. * Expression.cs:
  212. * DefaultContext.cs:
  213. catch FormatExceptions while parsing numbers
  214. 2003-07-27 Piers Haken <[email protected]>
  215. * Expression.cs:
  216. fix case sorting order
  217. allow EvaluateNumber to take XPathResultType.Any
  218. 2003-07-27 Piers Haken <[email protected]>
  219. * Expression.cs:
  220. * Tokenizer.cs:
  221. don't pass null to XmlQualifiedName constructor
  222. 2003-07-27 Piers Haken <[email protected]>
  223. * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
  224. 2003-07-27 Piers Haken <[email protected]>
  225. * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
  226. 2003-07-26 Piers Haken <[email protected]>
  227. * Expression.cs: fix function evaluation with ambigous argument types
  228. * XPathNavigator.cs: fix silly null reference bug
  229. 2003-07-26 Piers Haken <[email protected]>
  230. * Iterator.cs:
  231. * DefaultContext.cs:
  232. ArrayListIterator->EnumeratorIterator
  233. * Expression.cs: add sorting support
  234. 2003-07-26 Piers Haken <[email protected]>
  235. * Tokenizer.cs:
  236. * Parser.jay:
  237. move QName parsing into tokenizer
  238. * Expression.cs:
  239. fix evaluating XPathResultType.Any
  240. fix ExprDiv.ToString()
  241. fix NodeTypeTest.ToString() (for namespace axis)
  242. 2003-07-25 Piers Haken <[email protected]>
  243. * Expression.cs: return clone of $var evaluation
  244. 2003-07-26 Piers Haken <[email protected]>
  245. * Iterator.cs: add setter for NamespaceManager
  246. * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
  247. * Expression.cs: fix func/var exception strings
  248. 2003-07-25 Piers Haken <[email protected]>
  249. * Expression.cs: implement ExprFilter.Evaluate
  250. 2003-07-25 Piers Haken <[email protected]>
  251. * Expression.cs: implement ExprVariable.Evaluate
  252. 2003-07-24 Ben Maurer <[email protected]>
  253. * DefaultContext.cs: implement lang ()
  254. 2003-07-24 Piers Haken <[email protected]>
  255. * Parser.jay:
  256. * Expression.cs:
  257. allow ExprUNION to take non-nodeset (eg, $var) arguments
  258. 2003-07-24 Piers Haken <[email protected]>
  259. * Tokenizer.cs: fix variable references
  260. * Parser.jay:
  261. * Expression.cs:
  262. * XPathNavigator.cs:
  263. use XmlQualifiedName
  264. 2003-06-30 Atsushi Enomoto <[email protected]>
  265. * XPathDocument.cs : removed Driver class and restored authors' name
  266. (though it is completely rewrote).
  267. 2003-06-30 Atsushi Enomoto <[email protected]>
  268. * XPathDocument.cs : Replaced existing stub class with real
  269. XPathDocument implementation.
  270. 2003-04-28 Piers Haken <[email protected]>
  271. * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
  272. 2003-03-07 Piers Haken <[email protected]>
  273. * Tokenizer.cs: allow '.'s in NCNames
  274. 2003-03-07 Piers Haken <[email protected]>
  275. * Exression.cs:
  276. * DefaultContext.cs:
  277. fixed function argument resolution
  278. 2003-02-09 Piers Haken <[email protected]>
  279. * XPathNavigator.cs:
  280. * Iterator.cs:
  281. * Expression.cs: fix namespace handling
  282. 2003-01-04 Piers Haken <[email protected]>
  283. * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
  284. 2003-02-02 Piers Haken <[email protected]>
  285. * Parser.jay: add token names
  286. * Tokenizer.cs: fix NCName tokenization
  287. 2003-01-02 Atsushi Enomoto <[email protected]>
  288. * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
  289. (It should be a temporary fix.)
  290. 2002-09-22 Nick Drochak <[email protected]>
  291. * Parser.cs: Remove extraneous "using" that was stopping the build.
  292. 2002-09-21 Piers Haken <[email protected]>
  293. * XPathException: implementation
  294. * Expression.cs:
  295. * Iterator.cs:
  296. * Parser.jay:
  297. * Tokenizer.jay:
  298. * XPathNavigator.jay:
  299. use XPathException.
  300. 2002-09-13 Gonzalo Paniagua Javier <[email protected]>
  301. * Parser.cs: commented out non-existent namespace (it compiles fine
  302. with mcs because of a bug that is already on bugzilla).
  303. 2002-09-12 Piers Haken <[email protected]>
  304. * Tokenizer.cs: fix parsing numbers that start with '.'
  305. * DefaultContext.cs: use MS-compatible formatting of doubles
  306. 2002-09-12 Piers Haken <[email protected]>
  307. * Iterator.cs: added NullIterator to handle unspecified contexts
  308. * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
  309. * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
  310. 2002-09-12 Piers Haken <[email protected]>
  311. * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
  312. * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
  313. * DefaultContext.cs: fix id() return type.
  314. 2002-09-03 Gonzalo Paniagua Javier <[email protected]>
  315. * DefaultContext.cs: fixed bug #28840.
  316. * Expression.cs: added FIXME.
  317. 2002-08-17 Jason Diamond <[email protected]>
  318. * XPathNavigator.cs: Fixed matching on patterns that look like
  319. absolute XPath expressions.
  320. 2002-08-17 Jason Diamond <[email protected]>
  321. * XPathNavigator.cs: Added naive (but working) implementation of
  322. Matches.
  323. 2002-07-31 Piers Haken <[email protected]>
  324. * XPathDocument.cs: simple, XmlDocument-based implementation
  325. 2002-07-25 Piers Haken <[email protected]>
  326. * DefaultContext.cs: implement XPathFunctionName 'name()' function.
  327. 2002-07-17 Piers Haken <[email protected]>
  328. * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
  329. * Parser.jay: remove redundant production
  330. * Expression.cs: add switches for debugging under VS.NET
  331. 2002-07-17 Piers Haken <[email protected]>
  332. * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
  333. 2002-07-15 Piers Haken <[email protected]>
  334. * Iterator.cs:
  335. - rename UnionIterator to MergedIterator,
  336. - create new UnionIterator to implment uniqueness for '|' operator
  337. - fix position bug in ArrayListIterator.Clone()
  338. * Expression.cs: use new UnionIterator constructor syntax
  339. 2002-07-12 Piers Haken <[email protected]>
  340. * Iterator.cs: PredicateIterator: handle numeric predicates
  341. * Parser.jay: add some debugging support: yyparseDebug
  342. * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
  343. 2002-06-29 Piers Haken <[email protected]>
  344. * Expression.cs:
  345. - remove dead code
  346. - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
  347. - remove NodeTestTypes enum
  348. - remove NodeTestTypeAny (functionality provided by base now)
  349. - fix ExprStep to handle wildcard QNames
  350. * Parser.jay:
  351. - moved to Mono.Xml.XPath namespace
  352. - use XPathResultType
  353. - handle wildcard QNames
  354. * Tokenizer.cs: moved to Mono.Xml.XPath namespace
  355. * XPathNavigator.cs: implement
  356. - IsDescendant
  357. - SelectAncestors
  358. - SelectDescendants
  359. - SelectChildren
  360. * XPathResultType.cs: fix enum values
  361. 2002-06-24 Jason Diamond <[email protected]>
  362. * XPathScanner.cs: Removed.
  363. 2002-06-24 Dick Porter <[email protected]>
  364. * XmlCaseOrder.cs: Fix namespace
  365. 2002-06-23 Piers Haken <[email protected]>
  366. * DefaultContext.cs: implemented XPathFUnctionId
  367. * Iterator.cs: new ArrayListIterator for id() support
  368. 2002-06-23 Piers Haken <[email protected]>
  369. * XPathNavigator.cs: implement:
  370. - Compile
  371. - Evaluate
  372. - Clone
  373. - Select
  374. - ToString
  375. - some forwarding methods
  376. * XPathNodeIterator: implement caching Count
  377. * Tokenizer.cs: new XPath tokenizer
  378. * Parser.jay: new XPath grammar
  379. * Parser.cs: new precompiled XPath grammar
  380. * Expression.cs: new XPath expression objects
  381. * Iterator.cs: new XPath result/context objects
  382. * DefaultContext.cs: new XPath function binding context
  383. 2002-05-08 Tim Coleman <[email protected]>
  384. * XPathDocument.cs:
  385. * XPathException.cs: New stub files added.
  386. 2002-04-12 Duncan Mak <[email protected]>
  387. * XmlCaseOrder.cs: Moved to here from System.Xml.
  388. 2002-03-26 Jason Diamond <[email protected]>
  389. * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated
  390. steps. Both absolution and relative abbreviated location paths.
  391. 2002-03-25 Jason Diamond <[email protected]>
  392. * XPathScanner.cs: Added new file. This class is supposed to be internal
  393. but that would make it impossible to test.
  394. 2002-03-08 Duncan Mak <[email protected]>
  395. * XPathNamespaceScope.cs:
  396. * XPathNodeType.cs:
  397. * XPathResultType.cs:
  398. * XmlDataType.cs:
  399. * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
  400. implementation. XPathResultType is interesting as EnumCheck does
  401. not show the Navigator element, but shows the String element twice.
  402. 2002-03-08 Jason Diamond <[email protected]>
  403. * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
  404. 2002-03-06 Jason Diamond <[email protected]>
  405. * ChangeLog: Added to this directory.
  406. * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
  407. XPathResultType.cs: New files.
  408. * XPathNavigator.cs: Stubbed out all properties and methods.