@F Seiler
re XPath you're quite right. I'd completely forgotten about that usage. But, why bother? XPath/XSLT was designed to be readable and writable by people, so it had to be reasonably legible (I understand that earlier versions of these (or just xpath??) tried to express it all in XML but abandoned that approach for readability). How much of XAML as XML are we going to be directly interacting with - probably little at first, none when the tools mature. I may be wrong in this, if so please correct me, but assuming I'm not then where is XML used? Storing it? Space doesn't matter, and compress it if it does. Processing it? Use an appropriate format, whatever you wish. Writing it if we actually need to? Again, use an appropriate format - like a proper language and *not* XML (how hard is it to write some lex/yacc [*] anyway to do the necessary translation. Trivial).
And claiming that twisting XML was done for readability - I don't believe it. I can't find the ref but MS admitted that it tried to make SOAP XML syntax so unwieldy that you had to use their tools instead.
And as for the dot syntax <Rectangle.Fill>, that's deliberate abuse of XML. It has to be.
Just as a thought, and please note that I became familiar with XML before namespaces were introduced properly and I've not had cause to use them, could this not have been done with namespaces, eg.
<root xmlns:XAML_FILL="..."> ... <XAML_FILL:Rectangle> ...
Could this be made to work? If so it would preserve XML behaviour and give MS what they want.
And by the way, this is going to be a problem in general:
<Button Content="Click me" Grid.Row="1" Grid.Column="0" />
That's because the Content bit is an attribute and is thus subject to attribute normalisation, so all leading and trailing whitespaces are stripped, and any whitespaces within are collapsed to a single whitespace. Could this be part of the plan? Well, MSXML has this bug whereby whitespace normalisation is *not* done. Thus breaking the standard. Maybe it's been fixed in the last 2 years, I doubt it.
I still am suspicious.
[*] probably lex.net and yacc# these days.