XamlName Grammar

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

Unicode category Description
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].