XNamespace Klasse

Definition

Stellt einen XML-Namespace dar.Represents an XML namespace. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

public ref class XNamespace sealed
public sealed class XNamespace
type XNamespace = class
Public NotInheritable Class XNamespace
Vererbung
XNamespace

Hinweise

Diese Klasse stellt das XML-Konstrukt von Namespaces dar.This class represents the XML construct of namespaces.

Jeder XName enthält eine XNamespace.Every XName contains an XNamespace. Auch wenn sich ein Element nicht in einem Namespace befindet, enthält der XName des Elements einen Namespace, und zwar XNamespace.None.Even if an element is not in a namespace, the element's XName still contains a namespace, XNamespace.None. Es ist gewährleistet, dass die XName.Namespace-Eigenschaft nicht null ist.The XName.Namespace property is guaranteed to not be null.

Erstellen eines XNamespace-ObjektsCreating an XNamespace Object

Die gängigste Art, ein XNamespace Objekt zu erstellen, besteht darin, ihm eine Zeichenfolge zuzuweisen.The most common way to create an XNamespace object is to simply assign a string to it. Anschließend können Sie den Namespace mit einem lokalen Namen kombinieren, indem Sie die außer Kraft setzung des Additions Operators verwenden.You can then combine the namespace with a local name by using the override of the addition operator. Das folgende Beispiel zeigt diese Ausdrucksweise:The following example shows this idiom:

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

In Visual Basic würden Sie in der Regel jedoch wie folgt einen globalen Standard Namespace deklarieren:However, in Visual Basic, you would typically declare a global default namespace, as follows:

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 die folgende Ausgabe:This example produces the following output:

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

Beim Zuweisen einer Zeichenfolge XNamespace zu einer wird die implizite StringKonvertierung von verwendet.Assigning a string to an XNamespace uses the implicit conversion from String.

Weitere Informationen finden Sie unter How to: Weitere Informationen und Beispiele finden Sie unter ErstellenC#eines Dokuments mit Namespaces () (LINQ to XML) .See How to: Create a Document with Namespaces (C#) (LINQ to XML) for more information and examples.

Weitere Informationen zur Verwendung von Namespaces in Visual Basic finden Sie unter Namespaces in Visual Basic (LINQ to XML) .See Namespaces in Visual Basic (LINQ to XML) for more information on using namespaces in Visual Basic.

Steuern von Namespace PräfixenControlling Namespace Prefixes

Wenn Sie ein Attribut erstellen, das einen Namespace deklariert, wird das im-Attribut angegebene Präfix im serialisierten XML-Code beibehalten.If you create an attribute that declares a namespace, the prefix specified in the attribute will be persisted in the serialized XML. Beim Erstellen eines Attributs, das einen Namespace mit einem Präfix deklariert, erstellen Sie ein Attribut, bei dem der Namespace des Namens des Attributs Xmlns lautet und der Name des Attributs das Namespacepräfix ist.To create an attribute that declares a namespace with a prefix, you create an attribute where the namespace of the name of the attribute is Xmlns, and the name of the attribute is the namespace prefix. Der Wert des Attributs ist der URI des Namespace.The value of the attribute is the URI of the namespace. Das folgende Beispiel zeigt diese Ausdrucksweise:The following example shows this idiom:

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);  
Dim aw As XNamespace = "http://www.adventure-works.com"  
Dim root As XElement = New XElement(aw + "Root", _  
    New XAttribute(XNamespace.Xmlns + "aw", "http://www.adventure-works.com"), _  
    "Content")  
Console.WriteLine(root)  

In Visual Basic verwenden Sie in der Regel eine globale Namespace Deklaration, anstatt einen Namespace Knoten zum Steuern von Namespace Präfixen zu erstellen:In Visual Basic, instead of creating a namespace node to control namespace prefixes, you would typically use a global namespace declaration:

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 die folgende Ausgabe:This example produces the following output:

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

Weitere Informationen finden Sie unter Vorgehensweise: Steuerelement-Namespace Präfixe (C#) (LINQ to XML).For more information, see How to: Control Namespace Prefixes (C#) (LINQ to XML).

Erstellen eines Standard NamespaceCreating a Default Namespace

Wenn beim Erstellen eines Attributs, das ein Namespace sein wird, der Attribut Name den Sonderwert "xmlns" aufweist, wird der Namespace bei der Serialisierung der XML-Struktur als Standard Namespace deklariert.When constructing an attribute that will be a namespace, if the attribute name has the special value of "xmlns", then when the XML tree is serialized, the namespace will be declared as the default namespace. Das spezielle Attribut mit dem Namen "xmlns" ist in keinem Namespace enthalten.The special attribute with the name of "xmlns" itself is not in any namespace. Der Wert des-Attributs ist der Namespace-URI.The value of the attribute is the namespace URI.

Im folgenden Beispiel wird eine XML-Struktur erstellt, die ein Attribut enthält, das so deklariert ist, dass der Namespace zum Standard Namespace wird:The following example creates an XML tree that contains an attribute that is declared in such a way that the namespace will become the default namespace:

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);  
Dim aw As XNamespace = "http://www.adventure-works.com"  
Dim root As XElement = 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 in der Regel eine globale Standard Namespace Deklaration, anstatt einen Namespace Knoten zum Erstellen eines Standard Namespace zu erstellen:In Visual Basic, instead of creating a namespace node to create a default namespace, you would typically use a global default namespace declaration:

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 die folgende Ausgabe:This example produces the following output:

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

XNamespace-AtomisierungXNamespace Atomization

Es ist gewährleistet, dass XNamespace-Objekte atomisiert werden, d. h., wenn zwei XNamespace-Objekte exakt denselben URI besitzen, verwenden sie dieselbe Instanz.XNamespace objects are guaranteed to be atomized; that is, if two XNamespace objects have exactly the same URI, they will share the same instance. Die Gleichheits-und Vergleichs Operatoren werden zu diesem Zweck explizit bereitgestellt.The equality and comparison operators are provided explicitly for this purpose.

Verwenden erweiterter NamenUsing Expanded Names

Eine andere Möglichkeit, einen Namespace und einen lokalen Namen anzugeben, ist die Verwendung eines erweiterten Namens in {namespace}nameder Form:Another way to specify a namespace and a local name is to use an expanded name in the form {namespace}name:

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 die folgende Ausgabe:This example produces the following output:

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

Dieser Ansatz wirkt sich aber negativ auf die Leistung aus.This approach has performance implications. Jedes Mal, wenn Sie eine Zeichenfolge, die einen erweiterten Namen enthält, an LINQ to XMLLINQ to XML übergeben, muss der Name analysiert und nach dem atomisierten Namespace und dem atomisierten Namen gesucht werden.Each time that you pass a string that contains an expanded name to LINQ to XMLLINQ to XML, it must parse the name, find the atomized namespace, and find the atomized name. Dieser Prozess nimmt CPU-Zeit in Anspruch.This process takes CPU time. Wenn die Leistung wichtig ist, können Sie einen anderen Ansatz verwenden.If performance is important, you may want to use a different approach.

Mit Visual Basic wird empfohlen, XML-Literale zu verwenden, die nicht die Verwendung erweiterter Namen einschließen.With Visual Basic, the recommended approach is to use XML literals, which does not involve the use of expanded names.

Eigenschaften

NamespaceName

Ruft den URI (Uniform Resource Identifier) dieses Namespaces ab.Gets the Uniform Resource Identifier (URI) of this namespace.

None

Ruft das XNamespace-Objekt ab, das keinem Namespace entspricht.Gets the XNamespace object that corresponds to no namespace.

Xml

Ruft das XNamespace-Objekt ab, das dem XML-URI (http://www.w3.org/XML/1998/namespace) entspricht.Gets the XNamespace object that corresponds to the XML URI (http://www.w3.org/XML/1998/namespace).

Xmlns

Ruft das XNamespace-Objekt ab, das dem xmlns-URI (http://www.w3.org/2000/xmlns/) entspricht.Gets the XNamespace object that corresponds to the xmlns URI (http://www.w3.org/2000/xmlns/).

Methoden

Equals(Object)

Bestimmt, ob das angegebene XNamespace und das aktuelle XNamespace gleich sind.Determines whether the specified XNamespace is equal to the current XNamespace.

Get(String)

Ruft einen XNamespace für den angegebenen URI (Uniform Resource Identifier) ab.Gets an XNamespace for the specified Uniform Resource Identifier (URI).

GetHashCode()

Ruft einen Hashcode für diesen XNamespace ab.Gets a hash code for this XNamespace.

GetName(String)

Gibt ein XName-Objekt zurück, das aus diesem XNamespace und dem angegebenen lokalen Namen erstellt wurde.Returns an XName object created from this XNamespace and the specified local name.

GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
ToString()

Gibt den URI dieses XNamespace zurück.Returns the URI of this XNamespace.

Operatoren

Addition(XNamespace, String)

Kombiniert ein XNamespace-Objekt mit einem lokalen Namen, um einen XName zu erstellen.Combines an XNamespace object with a local name to create an XName.

Equality(XNamespace, XNamespace)

Gibt einen Wert zurück, der angibt, ob zwei Instanzen von XNamespace gleich sind.Returns a value indicating whether two instances of XNamespace are equal.

Implicit(String to XNamespace)

Konvertiert eine Zeichenfolge mit einem URI (Uniform Resource Identifier) in einen XNamespace.Converts a string containing a Uniform Resource Identifier (URI) to an XNamespace.

Inequality(XNamespace, XNamespace)

Gibt einen Wert zurück, der angibt, ob zwei Instanzen von XNamespace ungleich sind.Returns a value indicating whether two instances of XNamespace are not equal.

Gilt für:

Siehe auch