Diagramma di riferimento delle espressioni regolari dello schema XML
Nel diagramma seguente sono indicate le relazioni delle espressioni regolari dello schema XML.
regExp :: = branch ('|' branch) *
branch :: = piece*
piece :: = atom quantifier?
quantifier :: = [?*+] | ('{'quantity'}')
quantity :: = quantRange | quantMin | QuantExact
quantRange :: = QuantExact ',' QuantExact
quantMin :: = QuantExact ','
QuantExact :: = [0-9]+
atom :: = Char | charClass | ('(' regExp ')')
Char :: = [^.\?*+()|#x5B#x5D]
charClass ::= charClassEsc | charClassExpr
charClassExpr ::= '[' charGroup ']'
charGroup ::= posCharGroup | negCharGroup | charClassSub
posCharGroup ::= ( charRange | charClassEsc ) +
negCharGroup ::= '^' posCharGroup
charClassSub ::= ( posCharGroup | negCharGroup ) '-' charClassExpr
charRange ::= seRange | XmlCharRef | XmlCharIncDash
seRange ::= charOrEsc '-' charOrEsc
XmlCharRef ::= ( '&#' [0-9]+ ';' ) | ('&#x' [0-9a-fA-F]+ ';' )
charOrEsc ::= XmlChar | SingleCharEsc
XmlChar ::= [^\#x2D#x5B#x5D]
XmlCharIncDash ::= [^\#x5B#x5D]
charClassEsc ::= ( SingleCharEsc | MultiCharEsc | catEsc | complEsc )
SingleCharEsc ::= '\' [nrt\|.?*+(){} #x2Dx5B#X5D#x5E]
catEsc ::= '\p{' charProp '}'
complEsc ::= '\P{' charProp '}'
charProp ::= IsCategory | IsBlock
IsCategory ::= Letters | Marks | Numbers | Punctuation | Separators |
Symbols | Others
Letters ::= 'L' [ultmo]?
Marks ::= 'M' [nce]?
Numbers ::= 'N' [dlo]?
Punctuation ::= 'P' [cdseifo]?
Separators ::= 'Z' [slp]?
Symbols ::= 'S' [mcko]?
Others ::= 'O' [cfon]?
IsBlock ::= 'Is' [a-zA-Z0-9#x2D]+
MultiCharEsc::='.' | ('\' [sSiIcCdDwW])(