C# 为什么一些XML标记没有被反序列化
我使用外部提供的XSD使用XSD2代码生成C#代码库。反序列化XML时,除了BeperkingAlgemeen标记外,每个“修补”和“产品”都会被加载。我不知道如何操作生成的代码,以便在序列化XML时包含BeperkingAlgemeenC# 为什么一些XML标记没有被反序列化,c#,xml,serialization,xsd2code,C#,Xml,Serialization,Xsd2code,我使用外部提供的XSD使用XSD2代码生成C#代码库。反序列化XML时,除了BeperkingAlgemeen标记外,每个“修补”和“产品”都会被加载。我不知道如何操作生成的代码,以便在序列化XML时包含BeperkingAlgemeen 让我惊讶的是,重复的BePerkingeneAlgemeen标记周围没有“列表/集合”标记 没有错误。结果Vergunningen.Any(v=>v.beperkingengalgemeen.Any())不会产生任何结果 Xsd: Xml 有多个问题,但
让我惊讶的是,重复的BePerkingeneAlgemeen标记周围没有“列表/集合”标记 没有错误。结果Vergunningen.Any(v=>v.beperkingengalgemeen.Any())不会产生任何结果 Xsd:
Xml
有多个问题,但最具体的问题是:
- 删除所有
顺序=…
位;他们错了,正在破坏它
- xsd和xml不一致;听起来xml应该是
- 名称空间不清楚,并且缺少根元素
但是;这项工作:
使用System.Collections.Generic;
使用System.IO;
使用System.Xml.Serialization;
静态P类
{
静态void Main()
{
var ser=新的XmlSerializer(typeof(Vergunningen));
var v=(Vergunningen)ser.反序列化(新的StringReader(xml));
系统控制台写入线(v.Vergunning.vergunningnumer);
系统控制台写入线(v.Vergunning.PDCs.Count);
系统控制台写入线(v.Vergunning.beperkingengalgemeen.Count);
}
常量字符串xml=@“
多雷波姆
在krediet的Met消费组合中,使用Met BETREKING TO inkomensverzekeringen是非常必要的
在krediet的Met消费组合中,使用Met BETREKING TO inkomensverzekeringen是非常必要的
Met Betreking tot inkomensverzekeringen与Met抵押贷款公司合并后,将被视为金融机构的一员
Met betrekking tot inkomensverzekeringen在与Met vermogen合并的过程中,被视为是一家金融服务公司或Betalingsbechermers(超大型、arbeidsongeschiktheids-en werkloosheidsverzekeringen)的合作伙伴
与schadeverzekeringen分析员合作的Met适用于Boedelverzekeringen的金融监管部门,并与Met假设饮食相结合。
";
}
公共级维古宁根酒店
{
公共修补修补{get;set;}
}
公共类产品{}
[System.CodeDom.Compiler.GeneratedCodeAttribute(“Xsd2Code”,“4.2.0.31”)]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute(“代码”)]
//[System.Xml.Serialization.XmlTypeAttribute(命名空间=”http://www.afm.nl/WfdExternRegister/Export/3.0")]
公共部分类修补
{
私人名单;
私人名单;
私有字符串\u vergunningnumer;
私有系统。可空_startDatum;
私有系统。可为空的eindDatum;
[System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
公开列表PDC
{
得到
{
把这个还给我;
}
设置
{
这是._pDCs=值;
}
}
[System.Xml.Serialization.XmlElementAttribute(“BePerkingeAlgeMeeneAlgeMeen”)]
公开名单
{
得到
{
把这个还给我;
}
设置
{
这个。_beperkingelemeen=值;
}
}
[System.Xml.Serialization.XmlAttributeAttribute()]
公共字符串vergunningnumer
{
得到
{
把这个还给我;
}
设置
{
这是。_vergunningnumer=值;
}
}
[System.Xml.Serialization.XmlAttributeAttribute(DataType=“date”)]
public System.DateTime StartDatum
{
得到
{
如果(这个值)
{
返回此值。\u startDatum.Value;
}
其他的
{
返回默认值(System.DateTime);
}
}
设置
{
这是。_startDatum=值;
}
}
[System.Xml.Serialization.XmlIgnoreAttribute()]
指定的公共bool startDatum
{
得到
{
返回此。\u startDatum.HasValue;
}
设置
{
如果(值==false)
{
这是。_startDatum=null;
}
}
}
[System.Xml.Serialization.XmlAttributeAttribute(DataType=“date”)]
公共System.DateTime EindDatum
{
得到
{
如果(此.\u eindDatum.HasValue)
{
返回此值。\u eindDatum.Value;
}
其他的
{
返回默认值(System.DateTime);
}
}
设置
{
此值为.\u eindDatum=值;
}
}
[System.Xml.Serialization.XmlIgnoreAttribute()]
指定了公共bool eInddatum
{
得到
{
返回此值。\u eindDatum.HasValue;
}
设置
{
如果(值==false)
<xs:complexType name="Vergunning">
<xs:sequence>
<xs:element name="PDCs" nillable="true" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="Product" nillable="true" minOccurs="0" maxOccurs="unbounded" type="Product">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="BeperkingenAlgemeenenAlgemeen" type="BeperkingenAlgemeen" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="Vergunningnummer" type="xs:string" use="required" />
<xs:attribute name="StartDatum" type="xs:date" use="optional" />
<xs:attribute name="EindDatum" type="xs:date" use="optional" /> </xs:complexType>
<Vergunningen>
<Vergunning Vergunningnummer="12045521" StartDatum="2018-03-16">
<PDCs>
<Product ProductID="9ae90fa7-b276-e311-95d7-005056be011c" Omschrijving="Vermogen">
<Dienst DienstID="fba1bc4a-e3fa-df11-bb5a-005056be6692" Omschrijving="Adviseren" StartDatum="2018-03-16" />
<Dienst DienstID="faa1bc4a-e3fa-df11-bb5a-005056be6692" Omschrijving="Bemiddelen" StartDatum="2018-03-16" />
</Product>
<Product ProductID="fb84d39b-b276-e311-894a-005056be011d" Omschrijving="Schadeverzekeringen particulier">
<Dienst DienstID="fba1bc4a-e3fa-df11-bb5a-005056be6692" Omschrijving="Adviseren" StartDatum="2018-03-16" />
<Dienst DienstID="faa1bc4a-e3fa-df11-bb5a-005056be6692" Omschrijving="Bemiddelen" StartDatum="2018-03-16" />
</Product>
</PDCs>
<Beleidsbepalers>
<Beleidsbepaler>
<Initialen />
<Tussenvoegsels />
<Achternaam>Dorreboom</Achternaam>
<MeisjesNaam />
<MeisjesTussenvoegsels />
</Beleidsbepaler>
</Beleidsbepalers>
<BeperkingenAlgemeen BeperkingID="FB60" StartDatum="1900-01-01">
<Omschrijving>Met betrekking tot inkomensverzekeringen is het uitsluitend toegestaan de financiële dienst te verrichten voor betalingsbeschermers (overlijdensrisico-, arbeidsongeschiktheids- en werkloosheidsverzekeringen) in combinatie met consumptief krediet</Omschrijving>
</BeperkingenAlgemeen>
<BeperkingenAlgemeen BeperkingID="FB60" StartDatum="2018-03-16">
<Omschrijving>Met betrekking tot inkomensverzekeringen is het uitsluitend toegestaan de financiële dienst te verrichten voor betalingsbeschermers (overlijdensrisico-, arbeidsongeschiktheids- en werkloosheidsverzekeringen) in combinatie met consumptief krediet</Omschrijving>
</BeperkingenAlgemeen>
<BeperkingenAlgemeen BeperkingID="FB61" StartDatum="2018-03-16">
<Omschrijving>Met betrekking tot inkomensverzekeringen is het uitsluitend toegestaan de financiële dienst te verrichten voor betalingsbeschermers (overlijdensrisico-, arbeidsongeschiktheids- en werkloosheidsverzekeringen) in combinatie met hypothecair krediet</Omschrijving>
</BeperkingenAlgemeen>
<BeperkingenAlgemeen BeperkingID="FB62" StartDatum="2018-03-16">
<Omschrijving>Met betrekking tot inkomensverzekeringen is het uitsluitend toegestaan de financiële dienst te verrichten voor betalingsbeschermers (overlijdensrisico-, arbeidsongeschiktheids- en werkloosheidsverzekeringen) in combinatie met vermogen</Omschrijving>
</BeperkingenAlgemeen>
<BeperkingenAlgemeen BeperkingID="FB46" StartDatum="2018-03-16">
<Omschrijving>Met betrekking tot schadeverzekeringen particulier is het uitsluitend toegestaan de financiële dienst te verrichten voor opstal- en inboedelverzekeringen in combinatie met hypothecair krediet.</Omschrijving>
</BeperkingenAlgemeen>
</Vergunning>
</Vergunningen>
[System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "4.2.0.31")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.afm.nl/WfdExternRegister/Export/3.0")]
public partial class Vergunning
{
private List<Product> _pDCs;
private List<Beperking> _beperkingenAlgemeen;
private string _vergunningnummer;
private System.Nullable<System.DateTime> _startDatum;
private System.Nullable<System.DateTime> _eindDatum;
[System.Xml.Serialization.XmlArrayAttribute(IsNullable=true, Order=0)]
public List<Product> PDCs
{
get
{
return this._pDCs;
}
set
{
this._pDCs = value;
}
}
[System.Xml.Serialization.XmlElementAttribute("BeperkingenAlgemeenenAlgemeen", Order=1)]
public List<Beperking> BeperkingenAlgemeen
{
get
{
return this._beperkingenAlgemeen;
}
set
{
this._beperkingenAlgemeen = value;
}
}
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Vergunningnummer
{
get
{
return this._vergunningnummer;
}
set
{
this._vergunningnummer = value;
}
}
[System.Xml.Serialization.XmlAttributeAttribute(DataType="date")]
public System.DateTime StartDatum
{
get
{
if (this._startDatum.HasValue)
{
return this._startDatum.Value;
}
else
{
return default(System.DateTime);
}
}
set
{
this._startDatum = value;
}
}
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool StartDatumSpecified
{
get
{
return this._startDatum.HasValue;
}
set
{
if (value==false)
{
this._startDatum = null;
}
}
}
[System.Xml.Serialization.XmlAttributeAttribute(DataType="date")]
public System.DateTime EindDatum
{
get
{
if (this._eindDatum.HasValue)
{
return this._eindDatum.Value;
}
else
{
return default(System.DateTime);
}
}
set
{
this._eindDatum = value;
}
}
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool EindDatumSpecified
{
get
{
return this._eindDatum.HasValue;
}
set
{
if (value==false)
{
this._eindDatum = null;
}
}
}
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("Xsd2Code", "4.2.0.31")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.afm.nl/WfdExternRegister/Export/3.0")]
public partial class Beperking
{
private string _omschrijving;
private string _beperkingID;
private System.DateTime _startDatum;
private System.Nullable<System.DateTime> _eindDatum;
[System.Xml.Serialization.XmlElementAttribute(Order=0)]
public string Omschrijving
{
get
{
return this._omschrijving;
}
set
{
this._omschrijving = value;
}
}
[System.Xml.Serialization.XmlAttributeAttribute()]
public string BeperkingID
{
get
{
return this._beperkingID;
}
set
{
this._beperkingID = value;
}
}
[System.Xml.Serialization.XmlAttributeAttribute(DataType="date")]
public System.DateTime StartDatum
{
get
{
return this._startDatum;
}
set
{
this._startDatum = value;
}
}
[System.Xml.Serialization.XmlAttributeAttribute(DataType="date")]
public System.DateTime EindDatum
{
get
{
if (this._eindDatum.HasValue)
{
return this._eindDatum.Value;
}
else
{
return default(System.DateTime);
}
}
set
{
this._eindDatum = value;
}
}
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool EindDatumSpecified
{
get
{
return this._eindDatum.HasValue;
}
set
{
if (value==false)
{
this._eindDatum = null;
}
}
}
}