stringtypeexp -> <Sequence> stringtypeexp* </Sequence> | <Optional> stringtypeexp </Optional> | <ZeroOrMore> stringtypeexp </ZeroOrMore> | <OneOrMore> stringtypeexp </OneOrMore> | <Union> stringtypeexp* </Union> | <Intersection> stringtypeexp* </Intersection> | <Complement> stringtypeexp </Complement> | <Repeat Value="..."> stringtypeexp </Repeat> | <Empty/> | <String Value="..."/> | <CharSet Value="..."/> | <CharRange Start=".." End=".."/> | <AnyChar/>String types are used to specify both valid attribute values and valid character data.
All reasonable data types can be specified using regular expressions. A few examples: