All, I want to create a soap envelope xml document eg.
Specify the namespace when you create the 'encodingStyle' XAttribute (by using ns + "encodingStyle"):
XAttribute encoding = new XAttribute(ns + "encodingStyle", "http://www.w3.org/2001/12/soap-encoding");
The two-parameter XAttribute constructor takes an XName as the first argument. This can either be constructed implicitly from a string (as in the code in your question), or directly by "adding" a string to an XNamespace to create an XName (as above).