version 1 . Node = Text / Element . Text = string . Element = / @withAttributes < @localName symbol [@attributes Attributes @children Node ...]> / @withoutAttributes < @localName symbol @children [Node ...]> . Attributes = { symbol: string ...:... } .