https://www.w3.org/TR/REC-xml-names/ Attribute Names for Namespace Declaration [1] NSAttName ::= PrefixedAttName | DefaultAttName [2] PrefixedAttName ::= 'xmlns:' NCName [NSC: Reserved Prefixes and Namespace Names] [3] DefaultAttName ::= 'xmlns' [4] NCName ::= Name - (Char* ':' Char*) /* An XML Name, minus the ":" */ Qualified Name [7] QName ::= PrefixedName | UnprefixedName [8] PrefixedName ::= Prefix ':' LocalPart [9] UnprefixedName ::= LocalPart [10] Prefix ::= NCName [11] LocalPart ::= NCName Element Names [12] STag ::= '<' QName (S Attribute)* S? '>' [NSC: Prefix Declared] [13] ETag ::= '' [NSC: Prefix Declared] [14] EmptyElemTag ::= '<' QName (S Attribute)* S? '/>' [NSC: Prefix Declared] Attribute [15] Attribute ::= NSAttName Eq AttValue | QName Eq AttValue [NSC: Prefix Declared] [NSC: No Prefix Undeclaring] [NSC: Attributes Unique] Qualified Names in Declarations [16] doctypedecl ::= '' [17] elementdecl ::= '' [18] cp ::= (QName | choice | seq) ('?' | '*' | '+')? [19] Mixed ::= '(' S? '#PCDATA' (S? '|' S? QName)* S? ')*' | '(' S? '#PCDATA' S? ')' [20] AttlistDecl ::= '' [21] AttDef ::= S (QName | NSAttName) S AttType S DefaultDecl