我们有一个类似于的XML:
<Contract Contract="123">
<Contractbegin Contractbegin="20130301" />
<Contractend Contractend="20130331" />
</Contract>
这些类看起来像
public class Contract
{
[XmlElement("Contractbegin")]
public Contractbegin Contractbegin {get; set;}
[XmlElement("Contractend")]
public Contractend Contractend {get; set;}
}
public class Contractbegin
{
[XmlAttribute("Contractbegin")]
public String value {get;set;}
}
public class Contractend
{
[XmlAttribute("Contractend")]
public String value {get;set;}
}
我只有两个问题:
是否可以在不使用包装类Contractend和Contractbegin的情况下反序列化?
是否有可能为此创建一个公共类?因为Contractbegin和-end看起来差不多......我很确定必须要做更多的事情... general = D
提前致谢。
修改
之前的xml只是一个例子,这是真实的样子:
<Vorgang Vorgang="Vorgang1">
<Lieferrichtung Lieferrichtung="Z07" />
<Vertragsbeginn Vertragsbeginn="20130301" />
<Vertragsende Vertragsende="20130331" />
<Bilanzierungsbeginn Bilanzierungsbeginn="20130301" />
<Bilanzierungsende Bilanzierungsende="20130331" />
<Netznutzungsvertrag Netznutzungsvertrag="E02" />
<Zahler_der_Netznutzung Zahler_der_Netznutzung="E10" />
<Bilanzierungsgebiet Bilanzierungsgebiet="11YV00000000080S">
<ID ID="11YV00000000080S" />
</Bilanzierungsgebiet>
<Regelzone Regelzone="10YDE-VE-------2">
<ID ID="10YDE-VE-------2" />
</Regelzone>
<Bilanzkreis Bilanzkreis="11XGASAG-STROM-5">
<ID ID="11XGASAG-STROM-5" />
</Bilanzkreis>
<Zaehlpunkt Zaehlpunkt="DE0000801230500000000000012520182">
<ID ID="DE0000801230500000000000012520182" />
</Zaehlpunkt>
<Standardlastprofil__syn_ Standardlastprofil__syn_="HB">
<Profil Profil="HB" />
<Codeliste Codeliste="89" />
</Standardlastprofil__syn_>
<Zaehlverfahren Zaehlverfahren="E02">
<Verfahren Verfahren="E02" />
</Zaehlverfahren>
<Haushaltskunde Haushaltskunde="Z15">
<Haushaltskunde Haushaltskunde="Z15" />
</Haushaltskunde>
<Zaehlpunktdaten Zaehlpunktdaten="1">
<Bezeichnung Bezeichnung="DE0000801230500000000000012520182" />
<Jahresverbrauchsprognose Jahresverbrauchsprognose="2322">
<Prognose Prognose="2322" />
</Jahresverbrauchsprognose>
<Zeitreihentyp__Z21_ Zeitreihentyp__Z21_="SLS">
<Code Code="SLS" />
</Zeitreihentyp__Z21_>
</Zaehlpunktdaten>
<Zaehler Zaehler="2">
<Zaehlpunkt Zaehlpunkt="DE0000801230500000000000012520182" />
<Zaehlertyp Zaehlertyp="Z30">
<Nummer Nummer="31078265" />
</Zaehlertyp>
</Zaehler>
<Kunde Kunde="Zozula">
<Nachname_Firma Nachname_Firma="Zozula" />
<Vorname Vorname="Octavian" />
<Typ Typ="Z01" />
</Kunde>
<Lieferanschrift Lieferanschrift="Rackebüller Weg18">
<Strasse Strasse="Rackebüller Weg" />
<Hausnummer Hausnummer="18" />
<Ort Ort="Berlin" />
<PLZ PLZ="12305" />
<Land Land="DE" />
</Lieferanschrift>
</Vorgang>
因此,例如,使用元素Haushaltskunde,我无法创建xsd文件,并且无法继续生成类=(
答案 0 :(得分:1)
由于您的问题与xml -> poco
有关,而不是相反,这意味着确实存在某种xml
,这意味着您不应该首先手动编写课程! (除非当然有一些奇怪的情况)
在visual studio命令提示符中执行此操作:
xsd.exe yourexamplefile.xml
xsd.exe yourexamplefile.xsd /classes
瞧!现在您有一个自动生成的C#
类,您可以将其序列化并反序列化为您的内容。
鉴于您的具体情况虽然这不起作用,因为xsd.exe
无法处理递归元素,但工具available here can。首先使用那个,然后正常使用xsd.exe
来生成C#
类。