Artikel-ID: 327071 - Geändert am: Montag, 12. Februar 2007 - Version: 2.5

Update: Qualifizierte Attribute in XML-Schemas werden nicht ordnungsgemäß serialisiert

Auf dieser Seite

Alles erweitern | Alles schließen

Problembeschreibung

Qualified -Attribute in ein XML-Schema führen nicht in den korrekten Deklarationen in der XSD oder WSDL-generierten Code.

Lösung

Ein Hotfix zur Behebung dieses Problems ist inzwischen bei Microsoft erhältlich; dieser Hotfix wurde jedoch ausschließlich zur Behebung des in diesem Artikel beschriebenen Problems entwickelt. Deshalb sollten Sie nur Systeme aktualisieren, bei denen dieses spezielle Problem auftritt. Dieser Hotfix wird unter Umständen zu einem späteren Zeitpunkt weiteren Tests unterzogen. Wenn durch dieses Problem nicht schwerwiegend beeinträchtigt ist, empfiehlt Microsoft daher, auf das nächste Microsoft .NET Framework Service Pack warten, das diesen Hotfix enthält.

Wenn Sie das Problem sofort beheben möchten, wenden Sie sich an Microsoft Product Support Services, um das Update zu erhalten. Eine vollständige Liste mit Telefonnummern der Microsoft-Produktsupport und Informationen Supportkosten der folgenden Microsoft-Website:
http://support.microsoft.com/contactus/?ws=support (http://support.microsoft.com/contactus/?ws=support)
Hinweis : in speziellen Fällen Gebühren, die normalerweise für Support-Anrufe anfallen abgebrochen werden können, wenn eine Microsoft-Supportmitarbeiter feststellt, dass ein bestimmtes Update Ihr Problem behoben wird. Normale Servicegebühren werden jedoch für weitere Fragen und Problemlösungen erhoben, die mit dem fraglichen Update nicht in direktem Zusammenhang stehen.

Die englische Version dieses Updates weist die in der nachstehenden Tabelle aufgelisteten Dateiattribute (oder höher) auf. Die Datums- und Uhrzeitangaben für diese Dateien werden in Coordinated Universal Time () angegeben. Wenn Sie sich die Dateiinformationen ansehen, werden diese Angaben in die lokale Zeit konvertiert. Um die Differenz zwischen UTC und der Ortszeit zu ermitteln verwenden Sie die Registerkarte Zeitzone des Tools ? Datum und Uhrzeit in der Systemsteuerung.

   Date          Time    Version        Size        File name        Platform
   --------------------------------------------------------------------------
   31-Jul-2002   11:27   1.0.3705.299   1,298,432   System.Xml.dll   i386
				

Abhilfe

Um dieses Problem zu umgehen, fügen Sie die XmlSchemaForm.Qualified festgelegt Deklarationen für den generierten Code manuell hinzu.

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.

Weitere Informationen

Standardmäßig wird das .NET Framework davon ausgegangen, dass Attribute nicht deklariert Unqualified sind. Dadurch kann Fehler erstellen, wenn ein Attribut nicht als gekennzeichnete Attribut deklariert ist.

Schritte zum Reproduzieren des Verhaltens

Gehen Sie folgendermaßen vor, um das Problem zu reproduzieren:
  1. Erstellen Sie eine Datei mit dem Namen Test.xsd, die das folgende Schema enthält:
    <xs:schema elementFormDefault="unqualified"
        xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="purchaseOrder" type="PurchaseOrderType" />
        <xs:complexType name="PurchaseOrderType">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" form="unqualified" name="shipTo"
              type="xs:string" />
        </xs:sequence>
        <xs:attribute form="unqualified" name="a1" type="xs:string" />
        <xs:attribute form="qualified"   name="a2" type="xs:string" />
        <xs:attribute                    name="a3" type="xs:string" />
      </xs:complexType>
    </xs:schema>
    					
  2. An einer Eingabeaufforderung von Visual Studio .NET oder Microsoft .NET Framework geben Xsd/c test.xsd , und drücken Sie anschließend die [EINGABETASTE].
Dieser Befehl erstellt eine Datei namens Test.cs, die den generierten Code enthält. Dieser Code enthält die folgenden:
[System.Xml.Serialization.XmlElementAttribute
      (Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public string shipTo;
    
    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute
          (Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public string a1;
    
    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string a2;
    
    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string a3;
				
Nachdem Sie den Hotfix anwenden, der generierte Code die folgenden ist:
[System.Xml.Serialization.XmlElementAttribute
      (Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public string shipTo;
    
    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string a1;
    
    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute
          (Form=System.Xml.Schema.XmlSchemaForm.Qualified)]
    public string a2;
    
    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string a3;
				

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft .NET Framework 1.0 Service Pack 1
Keywords: 
kbmt kbhotfixserver kbqfe kbbug kbfix kbqfe KB327071 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 327071  (http://support.microsoft.com/kb/327071/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Retired KB ArticleDisclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.
 

SPRACHE AUSWÄHLEN

 

Related Support Centers