Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

XNamespace-Klasse

Stellt einen XML-Namespace dar. Diese Klasse kann nicht vererbt werden.

System.Object
  System.Xml.Linq.XNamespace

Namespace:  System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)
public sealed class XNamespace

Der XNamespace-Typ macht die folgenden Member verfügbar.

  Name Beschreibung
Öffentliche Eigenschaft Unterstützt von XNA Framework NamespaceName Ruft den URI (Uniform Resource Identifier) dieses Namespaces ab.
Öffentliche Eigenschaft Statischer Member Unterstützt von XNA Framework None Ruft das XNamespace-Objekt ab, das keinem Namespace entspricht.
Öffentliche Eigenschaft Statischer Member Unterstützt von XNA Framework Xml Ruft das XNamespace-Objekt ab, das dem XML-URI (http://www.w3.org/XML/1998/namespace) entspricht.
Öffentliche Eigenschaft Statischer Member Unterstützt von XNA Framework Xmlns Ruft das XNamespace-Objekt ab, das dem xmlns-URI (http://www.w3.org/2000/xmlns/) entspricht.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Methode Unterstützt von XNA Framework Equals Bestimmt, ob der angegebene XNamespace und der aktuelle XNamespace gleich sind. (Überschreibt Object.Equals(Object).)
Geschützte Methode Unterstützt von XNA Framework Finalize Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.)
Öffentliche Methode Statischer Member Unterstützt von XNA Framework Get Ruft einen XNamespace für den angegebenen URI (Uniform Resource Identifier) ab.
Öffentliche Methode Unterstützt von XNA Framework GetHashCode Ruft einen Hashcode für diese XNamespace ab. (Überschreibt Object.GetHashCode().)
Öffentliche Methode Unterstützt von XNA Framework GetName Gibt ein XName-Objekt zurück, das aus diesem XNamespace und dem angegebenen lokalen Namen erstellt wurde.
Öffentliche Methode Unterstützt von XNA Framework GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Geschützte Methode Unterstützt von XNA Framework MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche Methode Unterstützt von XNA Framework ToString Gibt den URI dieses XNamespace zurück. (Überschreibt Object.ToString().)
Zum Seitenanfang
  Name Beschreibung
Öffentlicher Operator Statischer Member Unterstützt von XNA Framework Addition Kombiniert ein XNamespace-Objekt mit einem lokalen Namen, um einen XName zu erstellen.
Öffentlicher Operator Statischer Member Unterstützt von XNA Framework Equality Gibt einen Wert zurück, der angibt, ob zwei Instanzen von XNamespace gleich sind.
Öffentlicher Operator Statischer Member Unterstützt von XNA Framework Implicit(String to XNamespace) Konvertiert eine Zeichenfolge mit einem URI (Uniform Resource Identifier) in einen XNamespace.
Öffentlicher Operator Statischer Member Unterstützt von XNA Framework Inequality Gibt einen Wert zurück, der angibt, ob zwei Instanzen von XNamespace ungleich sind.
Zum Seitenanfang

Diese Klasse stellt das XML-Konstrukt von Namespaces dar.

Jeder XName enthält einen XNamespace. Auch wenn sich ein Element nicht in einem Namespace befindet, enthält der XName des Elements einen Namespace, und zwar den Namespace XNamespace.None. Die XName.Namespace-Eigenschaft ist unter keinen Umständen null.

Erstellen eines XNamespace-Objekts

Das häufigste Verfahren zum Erstellen eines XNamespace-Objekts ist das Zuweisen einer Zeichenfolge zu dem Objekt. Sie können dann mithilfe der Überschreibung des Additionsoperators den Namespace mit einem lokalen Namen kombinieren. Diese Ausdrucksweise wird im folgenden Beispiel veranschaulicht:

XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root", "Content");
Console.WriteLine(root);

In Visual Basic deklarieren Sie jedoch i. d. R. einen globalen Standardnamespace wie folgt:

Imports <xmlns='http://www.adventure-works.com'>

Module Module1
    Sub Main()
        Dim root As XElement = _
            <Root>Content</Root>
        Console.WriteLine(root)
    End Sub
End Module

Dieses Beispiel erzeugt folgende Ausgabe:

<Root xmlns="http://www.adventure-works.com">Content</Root>

Beim Zuweisen einer Zeichenfolge zu einem XNamespace wird die implizite Konvertierung von String verwendet.

Weitere Informationen und Beispiele finden Sie unter Vorgehensweise: Erstellen eines Dokuments mit Namespaces (C#) (LINQ to XML).

Weitere Informationen zum Verwenden von Namespaces in Visual Basic finden Sie unter Namespaces in Visual Basic (LINQ to XML).

Steuern von Namespacepräfixen

Wenn Sie ein Attribut erstellen, das einen Namespace deklariert, wird das im Attribut angegebene Präfix im serialisierten XML beibehalten. Um ein Attribut zu erstellen, das einen Namespace mit einem Präfix deklariert, erstellen Sie ein Attribut, für das der Namespace des Namens des Attributs Xmlns lautet, und dessen Name das Namespacepräfix ist. Der Wert des Attributs ist der URI des Namespaces. Diese Ausdrucksweise wird im folgenden Beispiel veranschaulicht:

XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root",
    new XAttribute(XNamespace.Xmlns + "aw", "http://www.adventure-works.com"),
    "Content");
Console.WriteLine(root);

In Visual Basic verwenden Sie i. d. R eine globale Namespacedeklaration, statt einen Namespaceknoten zum Steuern von Namespacepräfixen zu erstellen:

Imports <xmlns:aw='http://www.adventure-works.com'>

Module Module1
    Sub Main()
        Dim root As XElement = _
            <aw:Root>Content</aw:Root>
        Console.WriteLine(root)
    End Sub
End Module

Dieses Beispiel erzeugt folgende Ausgabe:

<aw:Root xmlns:aw="http://www.adventure-works.com">Content</aw:Root>

Weitere Informationen finden Sie unter Vorgehensweise: Steuern von Namespacepräfixen (C#) (LINQ to XML).

Erstellen eines Standardnamespaces

Beim Erstellen eines Attributs, das ein Namespace ist und dessen Name den speziellen Wert "xmlns" aufweist, wird der Namespace als Standardnamespace deklariert, wenn die XML-Struktur serialisiert wird. Das spezielle Attribut mit dem Namen "xmlns" selbst befindet sich in keinem Namespace. Der Wert des Attributs ist der Namespace-URI.

Im folgenden Beispiel wird eine XML-Struktur erstellt, die ein Attribut enthält, das so deklariert ist, dass der Namespace der Standardnamespace ist:

XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root",
    new XAttribute("xmlns", "http://www.adventure-works.com"),
    new XElement(aw + "Child", "content")
);
Console.WriteLine(root);

In Visual Basic verwenden Sie i. d. R eine globale Standardnamespacedeklaration, statt einen Namespaceknoten zum Erzeugen eines Standardnamespaces zu erstellen:

Imports <xmlns='http://www.adventure-works.com'>

Module Module1
    Sub Main()
        Dim root As XElement = _
            <Root>
                <Child>content</Child>
            </Root>
        Console.WriteLine(root)
    End Sub
End Module

Dieses Beispiel erzeugt folgende Ausgabe:

<Root xmlns="http://www.adventure-works.com">
  <Child>content</Child>
</Root>

XNamespace-Atomisierung

XNamespace-Objekte sind mit Sicherheit atomisiert. Das bedeutet, dass zwei XNamespace-Objekte mit genau demselben URI dieselbe Instanz verwenden. Der Gleichheits- und Vergleichsoperator werden explizit für diesen Zweck bereitgestellt.

Verwenden von erweiterten Namen

Eine weitere Möglichkeit zum Angeben eines Namespaces und eines lokalen Namens ist die Verwendung eines erweiterten Namens im Format {namespace}name:

[C#]

XElement e = new XElement("{http://www.adventure-works.com}Root",
     new XAttribute("{http://www.adventure-works.com}Att", "content")
);
Console.WriteLine(e);
Dim e As XElement = New XElement("{http://www.adventure-works.com}Root", _
     New XAttribute("{http://www.adventure-works.com}Att", "content") _
)
Console.WriteLine(e)

Dieses Beispiel erzeugt folgende Ausgabe:

<Root p1:Att="content" xmlns:p1="http://www.adventure-works.com" xmlns="http://www.adventure-works.com" />

Diese Herangehensweise wirkt sich auf die Leistung aus. Bei jedem Übergeben einer Zeichenfolge mit einem erweiterten Namen an LINQ to XML muss der Name analysiert sowie der atomisierte Namespace und der atomisierte Name gesucht werden. Dieser Vorgang erfordert CPU-Zeit. Wenn Leistung von Bedeutung ist, sollten Sie eine andere Herangehensweise verwenden.

Für Visual Basic empfiehlt sich die Verwendung von XML-Literalen, die ohne erweiterte Namen erfolgt.

.NET Framework

Unterstützt in: 4, 3.5

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ