2012-08-27 71 views
1

我很困惑的是如何設置的xmlns是第一個屬性,我用下面的代碼生成一個XML文件如何設置的xmlns作爲第一XML屬性

XNamespace ns = "http://www.openarchives.org/OAI/2.0/"; 
XNamespace xsiNs = "http://www.w3.org/2001/XMLSchema-instance"; 
XDocument xDoc = new XDocument(
new XDeclaration("1.0", "UTF-8", "no"), 
new XElement(ns + "gpx", 
    new XAttribute(XNamespace.Xmlns + "xsi", xsiNs), 
    new XAttribute(xsiNs + "schemaLocation", 
     "http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"), 
)); 

howevery,結果總是

<?xml version="1.0" encoding="UTF-8"?> 
<gpx 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http:// 
www.openarchives.org/OAI/2.0/OAI-PMH.xsd" 
xmlns="http://www.openarchives.org/OAI/2.0/"> 

我的意思是Iwwant xmlns =「http://www.openarchives.org/OAI/2.0/」在第一個。所以當我調用xElement.FirstAttribute時,它應該是xmlns而不是xmlns:xsi,任何想法?

+0

任何一個可以幫助我嗎?謝謝 – danmiao

回答

0

將其設置手動把它加爲元素中的第一個屬性:

new XElement(ns + "gpx", 
    new XAttribute("xmlns", ns.NamespaceName), // add it here 
    new XAttribute(XNamespace.Xmlns + "xsi", xsiNs), 
    new XAttribute(xsiNs + "schemaLocation", 
     "http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"), 
)