Moved corner images.
Created example grammar for human direction-giving.
Useful translation stylesheet from XSD to RNG
Changed prototyping logic to better support multiple inheritance; not yet universally used. Introduced ref, define, quantified elements. Added caching to dom2rule(...) to eliminate memory leak when recursively expanding ref and define. Introduced return value from walks to indicate how much of the sequence they've consumed. Modified ...OrReject implementation to accept startfrom and endreject parameters to indicate the sequence range over which rule matching is enforced. Added ContentThingyRule to support content-oriented validation in the future (e.g. data in attributes or in text nodes). Ensured logic permits array return from dom2rule (not just a single rule). Added DataThingyRule (but not yet with any validation logic). Introduced replay procedure to CachingWalker, to regenerate validation events after they have been assessed as suitable in aggregate (e.g. oneOrMore, group).
Whitespace changes.
Fixed for moved background corner images.
Added new test group for validation of human direction-giving sessions.
Whitespace changes.
Introduced GPX representation for reference within human direction-giving application domain.
Updated grammar structures.
Added journey test scenarios.
Updated for new jquery and removed livequery.
Changed for simplistic (terminal-style) coloring scheme to indicate validation and well-formedness status.
Lots of nice domains where humans give and receive instructions.
Added 'prototypeFrom(...)' and 'copyToPrototype' methods to global Function, to simplify prototypal inheritance declarations, and reimplemented all 'class' declarations to suit. Draft implementation of ChoiceThingyRule walkSequence(...). Created allValid(...) function on CachingWalker for simplified validation logic.
Introduced initial example grammar and validation for Journey domain example.
An example verbatim from Joe Finney
Added walkCharacters (to ContentThingyRule), and walkString (to StringThingyRule) to allow recursion and validation of characters respectively. Implemented StringThingyRule and its subclasses DataThingyRule and LiteralThingyRule to provide character validation logic. Changed getCacheStatus to getCachedStatus for consistency with getCachedRule change. Added 'related' dictionary to ThingyRuleError to provide more contextual information. Changed getAttribute to getAttributeValue. Added documentation about contract for implementing walkSequence methods. Added SingleThingyRule inheritance heirarchy. Created Walker inheritance heirarchy. Completely reimplemented CachingWalker to facilitate delayed playback of maps and sequences as alternative to synchronous CompoundWalker traversal followed by xxxRejected calls. Added recursive validation of Attributes (to handle character validation of Attribute values).
Fixed for name change from getAttribute to getAttributeValue.
Added numerical sort function. Introduced utility function for iterating over RelaxNG DOM nodes when parsing grammars from serialised XML. Introduced DataThingyRule logic compatible with both Attribute and Element parenting (handling special case of inserting TextNode rule). Changed logic of walkSequence...() and walkString...() functions to return an integer indicating the number of positions consumed before returning. Removed use of CompoundWalker in favour of CachingWalker. Added documentation for walkSequence, walkString and walkMap. Fixed latent bug in ElementThingyRule where recursion didn't validate attributes. Simplified xRequired and xRejected logic (only one should ever be fired and xRejected only fired by container rules). Simplified constructor heirarchy for Quantified rules. Fixed latent bug from misnamed value in error reporting string. Removed spurious unreachable line after return value. Unrolled foreach iteration in getCachedCarets(). Refactored replayPositions to use cached positions as canonical caret range.