XamlName Grammar is a specific grammar that is defined in the XAML language specification [MS-XAML], which is reproduced here for convenience.
From the XAML Specification
The [MS-XAML] specification defines the grammar XamlName to identify the set of legal symbolic identifiers used for types and properties.
String values that are of type XamlName must conform to the following grammar:
XamlName ::= NameStartChar ( NameChar )* NameStartChar ::= LetterCharacter | '_' NameChar ::= NameStartChar | DecimalDigit | CombiningCharacter LetterCharacter ::= UnicodeLu | UnicodeLl | UnicodeLo | UnicodeLt | UnicodeNl DecimalDigit ::= UnicodeNd CombiningCharacter ::= UnicodeMn | UnicodeMc
Which assumes the following general category values as defined in the Unicode Character Database
Lu Letter, Uppercase Ll Letter, Lowercase Lt Letter, Titlecase Lm Letter, Modifier Lo Letter, Other Mn Mark, Non-Spacing Mc Mark, Spacing Combining Nd Number, Decimal Nl Number, Letter
XAML defines a second grammar, DottedXamlName, that is used for property and event qualified references, and also for attached members. For more information, see DependencyProperty and XAML Overview (WPF).
String values that are of type DottedXamlName must conform to the following grammar:
DottedXamlName ::= XamlName '.' XamlName
For the complete specification, see [MS-XAML].