C# xml Deserializer kann den Kinderknoten nicht deserialisierenC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 C# xml Deserializer kann den Kinderknoten nicht deserialisieren

Post by Anonymous »

Ich habe eine XSD und eine von xsd.exe generierte Klasse, mit der ich ein XML -Dokument deserialisieren kann. Aus irgendeinem Grund kann ein Knoten ziemlich tief in das XML -Dokument nicht deserialisieren, und ich kann nicht herausfinden, warum es dies tun würde ... < /p>

Hier ist, wie ich es deserialisiere: < /p>

XmlSchema schema = XmlSchema.Read(XmlReader.Create("X12_00401_271.xsd"), null);
XmlSerializer _xSerializer = new XmlSerializer(typeof(X12_00401_271));
using (XmlReader _xReader = XmlReader.Create(path))
{
_xResponse = _xSerializer.Deserialize(_xReader) as X12_00401_271;
}
< /code>

Der relevante Teil des XSD sieht ungefähr wie: < / p > < b r / > < b r / > < c o d e > & l t ; x s : e l e m e n t n a m e = " T S 2 7 1 A 1 _ 2 1 1 0 C _ L o o p " & g t ; < b r / > & l t ; x s : a n n o t a t i o n & g t ; < b r / > & l t ; x s : a p p i n f o & g t ; < b r / > & l t ; b : r e c o r d I n f o s t r u c t u r e = " d e l i m i t e d " d e l i m i t e r _ t y p e = " i n h e r i t _ r e c o r d " < b r / > f i e l d _ o r d e r = " i n f i x " c o u n t _ i g n o r e = " y e s " c h i l d _ d e l i m i t e r = " d e f a u l t " < b r / > t r i g g e r _ f i e l d = " E B _ S u b s c r i b e r E l i g i b i l i t y O r B e n e f i t I n f o r m a t i o n _ T S 2 7 1 A 1 _ 2 1 1 0 C / E B 0 1 _ _ E l i g i b i l i t y O r B e n e f i t I n f o r m a t i o n " < b r / > t r i g g e r _ v a l u e = " 1 2 3 4 5 6 7 8 A B C D E F G H I J K L M N O P Q R S T U V W X Y M C C B " < b r / > n o t e s = " S u b s c r i b e r E l i g i b i l i t y o r B e n e f i t I n f o r m a t i o n " / & g t ; < b r / > & l t ; / x s : a p p i n f o & g t ; < b r / > & l t ; / x s : a n n o t a t i o n & g t ; < b r / > & l t ; x s : c o m p l e x T y p e & g t ; < b r / > & l t ; x s : s e q u e n c e & g t ; < b r / > & l t ; x s : e l e m e n t m i n O c c u r s = " 1 " m a x O c c u r s = " 1 " r e f = " E B _ S u b s c r i b e r E l i g i b i l i t y O r B e n e f i t I n f o r m a tion_TS271A1_2110C" />

















< /code>

< /p>

Wob























< /code>

< /p>
















< /code>

< /p>

























< /code>

< /p>

The Generated Class for the last correct loop is:

[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
< /code>

-System.SerializabableTtribute() weibliches
-System.diagnostics />..System.xml.Serialization.xmltypeTtribute(anonymousType=True, Namespace = "http://schemas.microsoft.com/biztalk/edi/x12/2006")]
-System.xml.Serialization.xmlrootattribute(NameSpace="http://schemas.microsoft.com/biztalk/edi/x12/2006 ", isnullable = false)]
öffentliche Teilungsklasse TS271A1_2110C_LOOP {/PLOSPLECT TS271A1_2110C_LOOP {PLOPIAL CLASS 2> ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​
private EB_SubscriberEligibilityOrBenefitInformation_TS271A1_2110C eB_SubscriberEligibilityOrBenefitInformation_TS271A1_2110CField;

private HSD_HealthCareServicesDelivery_TS271A1_2110C[] hSD_HealthCareServicesDelivery_TS271A1_2110CField;

private REF_SubscriberAdditionalIdentification_TS271A1_2110C[] rEF_SubscriberAdditionalIdentification_TS271A1_2110CField;

private DTP_SubscriberEligibilityBenefitDate_TS271A1_2110C[] dTP_SubscriberEligibilityBenefitDate_TS271A1_2110CField;

private AAA_SubscriberRequestValidation_TS271A1_2110C[] aAA_SubscriberRequestValidation_TS271A1_2110CField;

private MSG_MessageText_TS271A1_2110C[] mSG_MessageText_TS271A1_2110CField;

private TS271A1_2115C_Loop[] tS271A1_2115C_LoopField;

private TS271A1_2110C_LoopLSLoop lSLoopField;

///
public EB_SubscriberEligibilityOrBenefitInformation_TS271A1_2110C EB_SubscriberEligibilityOrBenefitInformation_TS271A1_2110C {
get {
return this.eB_SubscriberEligibilityOrBenefitInformation_TS271A1_2110CField;
}
set {
this.eB_SubscriberEligibilityOrBenefitInformation_TS271A1_2110CField = value;
}
}

///
[System.Xml.Serialization.XmlElementAttribute("HSD_HealthCareServicesDelivery_TS271A1_2110C")]
public HSD_HealthCareServicesDelivery_TS271A1_2110C[] HSD_HealthCareServicesDelivery_TS271A1_2110C {
get {
return this.hSD_HealthCareServicesDelivery_TS271A1_2110CField;
}
set {
this.hSD_HealthCareServicesDelivery_TS271A1_2110CField = value;
}
}

///
[System.Xml.Serialization.XmlElementAttribute("REF_SubscriberAdditionalIdentification_TS271A1_2110C")]
public REF_SubscriberAdditionalIdentification_TS271A1_2110C[] REF_SubscriberAdditionalIdentification_TS271A1_2110C {
get {
return this.rEF_SubscriberAdditionalIdentification_TS271A1_2110CField;
}
set {
this.rEF_SubscriberAdditionalIdentification_TS271A1_2110CField = value;
}
}

///
[System.Xml.Serialization.XmlElementAttribute("DTP_SubscriberEligibilityBenefitDate_TS271A1_2110C")]
public DTP_SubscriberEligibilityBenefitDate_TS271A1_2110C[] DTP_SubscriberEligibilityBenefitDate_TS271A1_2110C {
get {
return this.dTP_SubscriberEligibilityBenefitDate_TS271A1_2110CField;
}
set {
this.dTP_SubscriberEligibilityBenefitDate_TS271A1_2110CField = value;
}
}

///
[System.Xml.Serialization.XmlElementAttribute("AAA_SubscriberRequestValidation_TS271A1_2110C")]
public AAA_SubscriberRequestValidation_TS271A1_2110C[] AAA_SubscriberRequestValidation_TS271A1_2110C {
get {
return this.aAA_SubscriberRequestValidation_TS271A1_2110CField;
}
set {
this.aAA_SubscriberRequestValidation_TS271A1_2110CField = value;
}
}

///
[System.Xml.Serialization.XmlElementAttribute("MSG_MessageText_TS271A1_2110C")]
public MSG_MessageText_TS271A1_2110C[] MSG_MessageText_TS271A1_2110C {
get {
return this.mSG_MessageText_TS271A1_2110CField;
}
set {
this.mSG_MessageText_TS271A1_2110CField = value;
}
}

///
[System.Xml.Serialization.XmlElementAttribute("TS271A1_2115C_Loop")]
public TS271A1_2115C_Loop[] TS271A1_2115C_Loop {
get {
return this.tS271A1_2115C_LoopField;
}
set {
this.tS271A1_2115C_LoopField = value;
}
}

///
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public TS271A1_2110C_LoopLSLoop LSLoop {
get {
return this.lSLoopField;
}
set {
this.lSLoopField = value;
}
}
< /code>

} < /p>

Für diejenigen, die mit dem Standard vertraut sind, ist dies speziell ein HIPAA 271, und ich kann die 2120C -Schleife nicht deserialisieren. Für den Rest von Ihnen denke ich nicht, dass das für das spezifische Problem wichtig ist ... < /p>

Ich habe den Knoten, den ich benötige, sowohl in der XSD als auch in der tatsächlichen XML -Datei, die ich analyse, verifiziert habe. Irgendwelche Vorschläge, wo ich als nächstes nachsehen soll?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post