Coding Microsoft

XAML Schema?

For a recent question on whether there is a published Schema for XAML, Microsoft’s Clemens Vasters (who was earlier one of the RDs before joining the Mothership – we miss you Clemens) had this good explanation to say (Reproduced verbatim with permission below):

“XAML doesn’t really have a schema since it’s a direct representation of .NET object tree that (of course) allows user extension to appear practically everywhere. So even if you’d have a base schema for all the classes that WPF brings along with it, you could not have a schema that also includes all the derived classes, new controls and other extensions you and everyone else will ever write. Strictly speaking, XAML is really mostly a serialization convention that allows building and reshaping complex object trees declaratively and using tools whose builders don’t want to deal with the intricacies of tackling a full programming language when generating object-trees into and parsing object-trees out of a file (as the Windows Forms designer effectively has to today)”

If you are adventurous and want to dive down on what  I am talking about, you might want to check out the XSD files installed by .NET FX 3.0 at this path “C:\Program Files\Microsoft Visual Studio 8\Xml\Schemas\Xaml*.xsd