For the first question, x is a prefix (~alias) for the namespace which can be used in the xaml. For more info see for example:
http://msdn.microsoft.com/en-us/library/ms747086.aspx[
^]
Don't know the actual reason for the second question, but I'd guess it's because the syntax conforms the XML namespace declaration. However, namespaces starting http aren't always used. For example if you refer to a namespace in the current project, the syntax is different. For example:
xmlns:MyNamespace="clr-namespace:MyProject.Controls;assembly=MyProject">