我需要使用串行創建具有某些外觀的xml:XML命名空間
EPIT11V21 curpit11 = new EPIT11V21(curdec.id);
XmlSerializer serializer = new XmlSerializer(typeof(EPIT11V21));
using (TextWriter writer = new StreamWriter(@"F:\xml\Xml.xml"))
{
serializer.Serialize(writer, curpit11);
}
在我的EPIT11V21類被聲明:
[XmlRoot("Deklaracja")]
public class EPIT11V21
{
public EPIT11V21() { }
public EPIT11V21(int XPDeclarationID)
{
this.Pouczenie = "Za uchybienie obowiązkom płatnika grozi odpowiedzialność przewidziana w Kodeksie karnym skarbowym.";
//this.Zalaczniki = "";
}
}
public Podmiot1PIT11V21 Podmiot1 = new Podmiot1PIT11V21();
public String Pouczenie { get; set; }
public String Zalaczniki{ get; set; }
與子類:
public class Podmiot1PIT11V21
{
public Podmiot1PIT11V21(){}
[XmlAttribute("rola")]
public string rola = "Płatnik";
public OsobaNiefizycznaPIT11V21 OsobaNieFizyczna = new OsobaNiefizycznaPIT11V21();
}
public class OsobaNiefizycznaPIT11V21
{
public OsobaNiefizycznaPIT11V21(){}
public string NIP = "0000000000";
public string PelnaNazwa = "XXXXXXXX";
}
如何裝飾其部件以獲得這樣的效果:
<?xml version="1.0" encoding="UTF-8"?>
<Deklaracja xsi:schemaLocation="http://crd.gov.pl/wzor/2014/12/08/1887/ http://crd.gov.pl/wzor/2014/12/08/1887/schemat.xsd" xmlns="http://crd.gov.pl/wzor/2014/12/08/1887/" xmlns:etd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2011/06/21/eD/DefinicjeTypy/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:zzu="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2011/10/07/eD/ORDZU/">
<Podmiot1 rola="Płatnik">
<etd:OsobaNiefizyczna>
<etd:NIP>0000000000</etd:NIP>
<etd:PelnaNazwa>XXXXXXXXXXXXX</etd:PelnaNazwa>
</etd:OsobaNiefizyczna>
</Podmiot1>
<Zalaczniki>
</Zalaczniki>
</Deklaracja>
,我會在第二行:
<Deklaracja xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
還怎麼裝飾這clasess所以要得到ETD:前綴作爲例子?
感謝您的快速響應我會測試它。還有一個問題,我不知道好的xml構建,我如何更改該代碼以使Deklaracja的屬性順序像我在示例中給出的一樣。在你的輸出中,它們的順序不同。 – romeck 2015-02-11 06:08:28
就我所知,你不能用'XmlSerializer'來控制名稱空間屬性的順序。但是,根據[XML規範第3.1節](http://www.w3.org/TR/REC-xml/#sec-starttags),「開始標記或空元素標記中的屬性規範的順序並不重要「。所以這應該不重要。但是,如果您必須按照特定順序(出於政治原因)具有屬性,則可能需要將XML重新加載到「XDocument」中,然後按照以下算法操作:https://stackoverflow.com/questions/28420906/xdocument -save-removing-node-prefixes/28424698#28424698 – dbc 2015-02-11 06:13:14