我試圖序列化對象以導入到另一個軟件,問題是,要導入的XML中的元素包含「:」(p.e .: < ftr:filter>
)。
我聲明瞭類覆蓋這些名稱與[XmlAttribute("ftr:filter")]
和[XMLElement(ftr:differentFilter")]
,但串行器產品不同的節點。我敢打賭,它與編碼有關,但我無法改變結果(以爲我改變了編碼)。類
實施例:XMLSerializer更改元素的名稱
public class ListPrijemkaRequest
{
[XmlAttribute("version")]
public string Version { get; set; }
[XmlAttribute("prijemkaVersion")]
public string PrijemkaVersion { get; set; }
[XmlElement("lst:requestPrijemka")]
public List<RequestPrijemka> Requests { get; set; }
}
public class RequestPrijemka
{
[XmlElement("ftr:filter")]
public RequestDateFilter Filter { get; set; }
}
期望ooutput:
< lst:listPrijemkaRequest version="2.0" prijemkaVersion="2.0">
< lst:requestPrijemka>
< ftr:filter>
< ftr:dateFrom>2013-01-10</ftr:dateFrom>
< ftr:dateTill>2013-03-30</ftr:dateTill>
< /ftr:filter>
< /lst:requestPrijemka>
< /lst:listPrijemkaRequest>
獲得的輸出:
< lst_x003A_listPrijemkaRequest version="2.0" prijemkaVersion="2.0">
< lst_x003A_requestPrijemka>
< ftr_x003A_filter>
< ftr_x003A_dateFrom>2013-01-10</ftr_x003A_dateFrom>
< ftr_x003A_dateTill>2013-03-30</ftr_x003A_dateTill>
< /ftr_x003A_filter>
< /lst_x003A_requestPrijemka>
< /lst_x003A_listPrijemkaRequest>
除非ftr/lst是名稱空間,否則不建議在節點名稱中使用冒號。 其他軟件是否需要它們? – derape
我試圖導入SW的供應商提供了多個帶有多個命名空間的XSD文件,但我只需要兩個(類似於15),我無法從這兩個生成類。我有什麼辦法可以將這些冒號「硬編碼」成名字嗎? 編輯:好點,我會嘗試導入名稱空間未定義的文檔... – Klemikaze
不,不工作。 – Klemikaze