@@ -0,0 +1,17 @@
1+-- Taken from https://www.w3.org/TR/xml11/ and simplified
2+
3+[1] document ::= content
4+[39] element ::= XMLDecl | EmptyElemTag | STag content ETag
5+[23] XMLDecl ::= '<?xml' (S Attribute)* S? '?>'
6+[10] AttValue ::= '"' [^<"] '"' | "'" [^<'] "'"
7+[44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'
8+[25] Eq ::= S? '=' S?
9+[40] STag ::= '<' Name (S Attribute)* S? '>' [WFC: Unique Att Spec]
10+[41] Attribute ::= Name Eq AttValue
11+[43] content ::= (element | CDSect | Comment | [^<]+)*
12+[42] ETag ::= '</' Name S? '>'
13+[18] CDSect ::= CDStart CData CDEnd
14+[19] CDStart ::= '<![CDATA['
15+[20] CData ::= (Char* - (Char* ']]>' Char*))
16+[21] CDEnd ::= ']]>'
17+[15] Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'