Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
XNamespace-Klasse
Stellt einen XML-Namespace dar. Diese Klasse kann nicht vererbt werden.
Assembly: System.Xml.Linq (in System.Xml.Linq.dll)
Der XNamespace-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
NamespaceName | Ruft den URI (Uniform Resource Identifier) dieses Namespaces ab. |
|
None | Ruft das XNamespace-Objekt ab, das keinem Namespace entspricht. |
|
Xml | Ruft das XNamespace-Objekt ab, das dem XML-URI (http://www.w3.org/XML/1998/namespace) entspricht. |
|
Xmlns | Ruft das XNamespace-Objekt ab, das dem xmlns-URI (http://www.w3.org/2000/xmlns/) entspricht. |
| Name | Beschreibung | |
|---|---|---|
|
Equals | Bestimmt, ob der angegebene XNamespace und der aktuelle XNamespace gleich sind. (Überschreibt Object.Equals(Object).) |
|
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.) |
|
Get | Ruft einen XNamespace für den angegebenen URI (Uniform Resource Identifier) ab. |
|
GetHashCode | Ruft einen Hashcode für diese XNamespace ab. (Überschreibt Object.GetHashCode().) |
|
GetName | Gibt ein XName-Objekt zurück, das aus diesem XNamespace und dem angegebenen lokalen Namen erstellt wurde. |
|
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) |
|
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
|
ToString | Gibt den URI dieses XNamespace zurück. (Überschreibt Object.ToString().) |
| Name | Beschreibung | |
|---|---|---|
|
Addition | Kombiniert ein XNamespace-Objekt mit einem lokalen Namen, um einen XName zu erstellen. |
|
Equality | Gibt einen Wert zurück, der angibt, ob zwei Instanzen von XNamespace gleich sind. |
|
Implicit(String to XNamespace) | Konvertiert eine Zeichenfolge mit einem URI (Uniform Resource Identifier) in einen XNamespace. |
|
Inequality | Gibt einen Wert zurück, der angibt, ob zwei Instanzen von XNamespace ungleich sind. |
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:
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.
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.