Я использовал XSD, предоставленный извне, чтобы гееренировать кодовую базу C#, используя Xsd2Code. Каждый 'vergunning' и 'product' загружается при десериализации XML, кроме тега BeperkingAlgemeen. Я не могу понять, как манипулировать сгенерированным кодом, чтобы BeperkingAlgemeen включался при сериализации XML.
. Что меня удивляет, так это то, что повторяющиеся теги BeperkingenAlgemeen не имеют окружающего «списка / коллекции». тег.
Нет ошибки. Результат Vergunningen.Any (v => v.BeperkingenAlgemeen.Any ()) не дает результатов.
Xsd:
<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>
Xml
<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>
Сгенерированный C# код:
[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;
}
}
}
}
BeperkingAlgemeen
[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;
}
}
}
}
Полный XSD