Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

XmlNamespaceDeclarationsAttribute-Klasse

 

Veröffentlicht: Oktober 2016

Gibt an, dass die Zieleigenschaft, der Parameter, der Rückgabewert oder der Member Präfixe enthält, die Namespaces zugeordnet sind, welche innerhalb eines XML-Dokuments verwendet werden.

Namespace:   System.Xml.Serialization
Assembly:  System.Xml (in System.Xml.dll)

System.Object
  System.Attribute
    System.Xml.Serialization.XmlNamespaceDeclarationsAttribute

[AttributeUsageAttribute(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.ReturnValue, 
	AllowMultiple = false)]
public class XmlNamespaceDeclarationsAttribute : Attribute

NameBeschreibung
System_CAPS_pubmethodXmlNamespaceDeclarationsAttribute()

Initialisiert eine neue Instanz der XmlNamespaceDeclarationsAttribute-Klasse.

NameBeschreibung
System_CAPS_pubpropertyTypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.(Geerbt von „Attribute“.)

NameBeschreibung
System_CAPS_pubmethodEquals(Object)

Diese API unterstützt die Produkt Infrastruktur und sollte nicht direkt aus dem Code verwendet werden. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_protmethodFinalize()

Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Geerbt von „Object“.)

System_CAPS_pubmethodGetHashCode()

Gibt den Hashcode für diese Instanz zurück.(Geerbt von „Attribute“.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodIsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodMatch(Object)

Ruft beim Überschreiben in einer abgeleiteten Klasse gibt einen Wert, der angibt, ob diese Instanz gleich ein angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_protmethodMemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.(Geerbt von „Object“.)

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

NameBeschreibung
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.(Geerbt von „Attribute“.)

Die XmlNamespaceDeclarationsAttribute Attribut kann nur angewendet werden einmal in einer Klasse in ein Feld oder eine Eigenschaft, ein XmlSerializerNamespaces Objekt.

Die XmlNamespaceDeclarationsAttribute können Sie die Präfixe und die zugehörigen Namespaces, Speichern eines XML-Dokuments verwendet. Z. B. eine gemeinsame Verwendung des Attributs zum Speichern von XPath-Daten ist gemäß Definition durch das World Wide Web Consortium (www.w3.org)-Dokument mit dem Namen "XML Language (XPath) Version 1.0". XPath ist eine Zeichenfolge, die viele Namespace-Präfixe und lokale Namen sowie weitere Syntax enthält.

Die XPath-Sprache kann für die Zuordnung eines Präfixes mit einem Pfad und das Präfix im XML-Dokument. Das folgende XML-Dokument mit dem Namen "auswählen" enthält z. B. ein Präfix ("cal"), die einem bestimmten URI (http://www.cohowinery.com/calendar/) zugeordnet. Das-Element enthält ein Attribut namens "Path", die der XPath-Ausdruck enthält.

<select xmlns:cal ="http://www.cohowinery.com/calendar/" path="cal:appointments/@startTime" />

Das Schema für diese möglicherweise:

<element name="select">
   <complexType>
      <simpleContent>
         <attribute name="path" />
      </simpleContent>
   </complexType>
</element>

Ohne die XmlNamespaceDeclarationsAttribute, die Zuordnung zwischen dem Präfix und Namespace geht verloren.

Um die Zuordnung zwischen dem Präfix und Namespace-URI beizubehalten, fügen Sie ein Element, das gibt ein XmlSerializerNamespaces -Objekt und Anwenden der XmlNamespaceDeclarationsAttribute -Attribut des Elements, wie im folgenden C#- und Visual Basic-Code gezeigt:

// C#
public class Select {
  [XmlAttribute] public string path;
  [XmlNamespaceDeclarations] public XmlSerializerNamespaces xmlns;
}
' Visual Basic
Public Class Select
   <XmlAttribute> Public path As String
   <XmlNamespaceDeclarations> Public xmlns As XmlSerializerNamespaces
End Class

Bei der Serialisierung enthält das Schema für das generierte XML-Dokument das XML-Schema Definition (XSD)-Element mit dem Namen appinfo. Außerdem enthält das Element Metadatenelement keepNamespaceDeclarations, legen Sie auf den Namen des Mitglieds, das die Deklarationen enthält. Das folgende XML-Fragment zeigt das Schema:

<xs:element name="select">
   <xs:complexType>
      <xs:annotation> 
         <xs:appinfo>
          <keepNamespaceDeclarations>xmlns</keepNamespaceDeclarations>
         </xs:appinfo> 
      </xs:annotation> 
      <xs:simpleContent>
         <xs:attribute name="path" />
      </xs:simpleContent>
   </xs:complexType>
</xs:element>

Bei der Deserialisierung der xmlns Feld enthält ein XmlSerializerNamespaces -Objekt, das alle Definitionen der Namespace-Präfix enthält.

Der Benutzer kann bei der Serialisierung Präfix-Namespacepaare zum Hinzufügen der XmlSerializerNamespaces -Objekt unter Verwendung der Add Methode. Dies wird im folgenden C#- und Visual Basic-Code dargestellt:

// C#
using System;
using System.IO;
using System.Xml.Serialization;
[XmlRoot("select")]
public class Select {
   [XmlAttribute]
   public string xpath;
   [XmlNamespaceDeclarations]
   public XmlSerializerNamespaces xmlns;
}
public class Test {
   public static void Main(string[] args) {
      Select mySelect = new Select();
      mySelect.xpath = "myNS:ref/@common:y";
      mySelect.xmlns = new XmlSerializerNamespaces();
      mySelect.xmlns.Add("MyNS", "myNS.tempuri.org");
      mySelect.xmlns.Add("common", "common.tempuri.org");
      XmlSerializer ser = new XmlSerializer(typeof(Select));
      ser.Serialize(Console.Out, mySelect);
   }
}
// Output:
// <?xml version="1.0" encoding="IBM437"?>
// <select xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
// xmlns:common="common.tempuri.org" xmlns:MyNS="myNS.tempuri.org" xpath="myNS:ref/@common:y" />
' Visual Basic
Imports System
Imports System.IO
Imports System.Xml.Serialization
<XmlRoot("select")> _
Public Class SelectPath
   <XmlAttribute> _
   Public xpath As String 
   <XmlNamespaceDeclarations> _
   public xmlns As XmlSerializerNamespaces 
End Class
Public Class Test 
   Public Shared Sub Main() 
      Dim mySelect As SelectPath = New SelectPath()
      mySelect.xpath = "myNS:ref/@common:y"
      mySelect.xmlns = New XmlSerializerNamespaces()
      mySelect.xmlns.Add("MyNS", "myNS.tempuri.org")
      mySelect.xmlns.Add("common", "common.tempuri.org")
      Dim ser As XmlSerializer = New XmlSerializer(mySelect.GetType)
      ser.Serialize(Console.Out, mySelect)
   End Sub
End Class
'Output:
' <?xml version="1.0" encoding="IBM437"?>
' <select xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
' xmlns:common="common.tempuri.org" xmlns:MyNS="myNS.tempuri.org" xpath="myNS:ref/@common:y" />

Beachten Sie außerdem, dass der Member, auf dem das Attribut angewendet wird, nur die Präfix-Namespacepaare enthält, die von der Klasse definierten XML-Element gehören. Beispielsweise wird im folgenden XML-Dokument nur das Präfix Paar "cal", jedoch nicht das Präfix "X" erfasst. Um diese Daten abzurufen, fügen Sie ein Element mit der XmlNamespaceDeclarationsAttribute auf die Klasse, repräsentiert die root Element.

<?xml version="1.0"?>
<x:root xmlns:x="http://www.cohowinery.com/x/">
  <x:select xmlns:cal="http://www.cohowinery.com/calendar/" path="cal:appointments/@cal:startTime" />
</x:root>

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: