Well put, techgnome. Based on that criteria, HTML is "not a programming language", and I like how it ties into my observation that a Word document's certainly not a programming language despite checking many of the boxes HTML does.

XAML is sort of hard to evaluate against those, but might actually qualify as a programming language!

XAML represents a .NET object graph. It can be used to express even a non-UI object graph, though it'd be a strange use. Through use of several constructs such as Triggers or the Visual State Manager, it does have some concept of control flow, though no loops exist. Whether it has "temporary storage" is an interesting question, as a TextBox bound to a String variable is technically the same thing as a String variable, and one can make a UI where something appears/disappears based on that value completely in XAML.

But I think, despite those arguments, it's still so limited without the rest of WPF we have to consider it like HTML to be a "development" language but not "programming". I'm trying to figure out how to make a XAML-only solution that, say, sums the value in two text boxes and places the result in a third. To get there, you NEED to have some non-XAML class. You could try, really hard, to pretend like you did it in XAML with a really funky BindingConverter, but you can only implement a BindingConverter in VB/C#. So it's very much like HTML: to accomplish what we consider "programming", XAML has to be paired with VB or C#. You can interpret some XAML and display it without needing to compile any VB/C#, but anything non-trivial has to rely on "actual" code. In many ways, I'd say HTML is more standalone than XAML.