C# içindeki bir nesneye bazı xml'yi serileştirme sorunları yaşamaya devam ediyor.C# Nesneye XML gönderilmesi
I alma hatası ...
xmlns=''> was not expected.
Ben şöyle benim sınıftır üretmek için alınan XSD
...<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="xml.AAAAAAA.com/commerce/apres-vente_technique/assistance" xmlns:pgp="xml.AAAAAAA.com/commerce/apres-vente_technique/assistance" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="ListeAvisRemboursements">
<xs:annotation>
<xs:documentation>Liste des avis de remboursements</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="AvisRemboursement" type="pgp:AvisRemboursementType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="AvisRemboursementType">
<xs:annotation>
<xs:documentation>Avis de remboursement lié à une DC</xs:documentation>
</xs:annotation>
<xs:sequence>
(snipped)
aşağıdaki gibi ben içe çalışılıyor dosyasıdır:
<?xml version="1.0" encoding="UTF-8"?>
<ListeAvisRemboursements xmlns:ast="xml.AAAAAAA.com/commerce/apres-vente_technique/assistance">
<ast:AvisRemboursement NumeroDT="3826961" CodeRA="020545G01" NumeroDC="1">
<ast:DateTraitement>2010-06-22</ast:DateTraitement>
<ast:MontantDC>25.0</ast:MontantDC>
<ast:MontantMO>0.0</ast:MontantMO>
<ast:SommeAD>25.0</ast:SommeAD>
<ast:MontantPR>0.0</ast:MontantPR>
<ast:SommePR>0.0</ast:SommePR>
<ast:FraisGestion>0.0</ast:FraisGestion>
<ast:NombreHeuresTotalRemboursees>0</ast:NombreHeuresTotalRemboursees>
<ast:Etat>C</ast:Etat>
<ast:NoteCredit>319984</ast:NoteCredit>
<ast:Imputation>030</ast:Imputation>
<ast:ListInterventionsPR/>
<ast:ListInterventionsMO/>
</ast:AvisRemboursement>
": Ast xmlns" ve bu konuda şikayetleri (snipped)
Ben neler olduğunu düşünmek .Net xml derserialize çalıştığında, ilk içeren satırı vurur olmasıdır. Anladığım kadarıyla, .Net, hedef sınıftaki bir ortak özelliğe ait özellikleri eşlemeye çalışacaktır (ve xmlns denilen birini bulamazsınız. Veya ad boşluklarını nasıl işlediğimde yanlış bir şey var.
Serpantifikasyon kodum aşağıda görünüyor gibidir: Ben de XML belgesine bir ad yönetici ekleyerek çeşitli kombinasyonlarını denedi
XmlDocument _Doc = new XmlDocument();
_Doc.Load(@"C:\inputfile.xml");
XmlSerializer _XMLSer = new XmlSerializer(typeof(ListeAvisRemboursements));
ListeAvisRemboursements _X = (ListeAvisRemboursements)_XMLSer.Deserialize(new StringReader(_Doc.OuterXml));
..
anlıyorumXmlNamespaceManager _Ns = new XmlNamespaceManager(_Doc.NameTable);
_Ns.AddNamespace("ast", "xml.AAAAAAA.com/commerce/apres-vente_technique/assistance");
Ben .NET anlatmak için kullanabilir bir yolu var ne kabul etmek için ad alanları
Bu sorunla ilgili bazı yardımlar için müthiş olur.
---
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "xml.AAAAAAA.com/commerce/apres-vente_technique/assistance")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "xml.AAAAAAA.com/commerce/apres-vente_technique/assistance", IsNullable = false)]
public partial class ListeAvisRemboursements
{
private AvisRemboursementType[] avisRemboursementField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("AvisRemboursement")]
public AvisRemboursementType[] AvisRemboursement
{
get
{
return this.avisRemboursementField;
}
set
{
this.avisRemboursementField = value;
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "xml.AAAAAAA.com/commerce/apres-vente_technique/assistance")]
public partial class AvisRemboursementType
{
private System.DateTime dateTraitementField;
private double montantDCField;
private double montantMOField;
private double sommeADField;
private double montantPRField;
ListeAvisRemboursements sınıfınızın snippet'ini yayınlayabilir misiniz? – RameshVel