* Added XPath expansion and abbreviation to Parsers::XPathParser
* Improved the look of Element.inspect
* Added xpath() to Element and Attribute, allowing the generation of a unique
xpath for nodes of these types. This method for the other nodes still need to be
done
* Made REXML::XPathParser#match public
First pass at validation support. Minimal RelaxNG support.
* The tree parser is now an independant parser, like the rest.
* The first basic RelaxNG support is in. It supports elements, attributes,
choice, sequence, oneOrMany, zeroOrMany, and optional.
Improved support for converting XPaths to strings.
* XPath wasn't parsing ")" correctly.
Validation improvements:
* Fixed text
* Fixed attributes in choices
* Fixed text in choices. This change improves handling of all events that occur
without an end step (which is most of them).
* Fixed a bunch of cases
* Added support for <group>
* Added support for <value>
Workin' in the coal mine, goin' down, down, down...
* Entirely rewrote the validation code; the finite state machine, while cool,
didn't survive the encounter with Interleave. It was getting sort of hacky,
too. The new mechanism is less elegant, but is basically still a FSM, and is
more flexible without having to add hacks to extend it. Large chunks of the
FSM may be reusable in other validation mechanisms.
* Added interleave support
* Added suppert for mixed
* Added Kou's patch to normalize attribute values passed through the SAX2 and
Stream parsers.
* Applied Kou's preceding-sibling patch, which fixes the order of the axe results
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e