If you programmatically add attributes with namespaces to an XElement, when the XElement is written out it will give each attribute a namespace prefix and then define a xmlns for that prefix. The way XElement does this is first it examines the namespaces already active and also those defined in the element...