Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
XML-Namespaces ordnen Element- und Attributnamen in einem XML-Dokument benutzerdefinierten und vordefinierten URIs zu. Zum Erstellen dieser Zuordnungen definieren Sie Präfixe für Namespace-URIs und verwenden diese Präfixe, um Element- und Attributnamen in XML-Daten zu qualifizieren. Namespaces verhindern Konflikte mit Element- und Attributnamen und ermöglichen es Elementen und Attributen desselben Namens, anders zu behandeln und zu überprüfen.
Deklarieren von Namespaces
Um einen Namespace für ein Element zu deklarieren, verwenden Sie das xmlns:
Attribut:
xmlns:<name>=<"uri">
wobei <name>
das Namespacepräfix ist und <"uri">
der URI ist, der den Namespace identifiziert. Nachdem Sie das Präfix deklariert haben, können Sie es verwenden, um Elemente und Attribute in einem XML-Dokument zu qualifizieren und sie dem Namespace-URI zuzuordnen. Da das Namespacepräfix in einem Dokument verwendet wird, sollte es kurz sein.
In diesem Beispiel werden zwei BOOK
Elemente definiert. Das erste Element wird durch das Präfix qualifiziert, mybook
und das zweite Element wird durch das Präfix qualifiziert. bb
Jedes Präfix ist einem anderen Namespace-URI zugeordnet:
<mybook:BOOK xmlns:mybook="http://www.contoso.com/books.dtd">
<bb:BOOK xmlns:bb="urn:blueyonderairlines" />
</mybook:BOOK>
Um zu kennzeichnen, dass ein Element Teil eines bestimmten Namespaces ist, fügen Sie ihr das Namespacepräfix hinzu. Wenn beispielsweise ein Author
Element zum mybook
Namespace gehört, wird es als <mybook:Author>
deklariert.
Deklarationsbereich
Ein Namespace ist ab dem Deklarationspunkt bis zum Ende des Elements wirksam, in dem es deklariert wurde. In diesem Beispiel gilt der im BOOK
Element definierte Namespace nicht für Elemente außerhalb des BOOK
Elements, z. B. das Publisher
Element:
<Author>Joe Smith</Author>
<BOOK xmlns:book="http://www.contoso.com">
<title>My Wonderful Day</title>
<price>$3.95</price>
</BOOK>
<Publisher>
<Name>MSPress</Name>
</Publisher>
Ein Namespace muss deklariert werden, bevor er verwendet werden kann, muss aber nicht oben im XML-Dokument angezeigt werden.
Wenn Sie mehrere Namespaces in einem XML-Dokument verwenden, können Sie einen Namespace als Standardnamespace definieren, um ein übersichtlicher aussehendes Dokument zu erstellen. Der Standardnamespace wird im Stammelement deklariert und gilt für alle nicht qualifizierten Elemente im Dokument. Standardnamespaces gelten nur für Elemente, nicht für Attribute.
Um den Standardnamespace zu verwenden, lassen Sie das Präfix und den Doppelpunkt aus der Deklaration für das Element aus:
<BOOK xmlns="http://www.contoso.com/books.dtd">
...
</BOOK>
Verwalten von Namespaces
Die XmlNamespaceManager Klasse speichert eine Sammlung von Namespace-URIs und deren Präfixen, und Sie können Namespaces aus dieser Auflistung nachschlagen, hinzufügen und entfernen. In bestimmten Kontexten ist diese Klasse für eine bessere XML-Verarbeitungsleistung erforderlich. Die XsltContext-Klasse verwendet XmlNamespaceManager für die XPath-Unterstützung.
Der Namespace-Manager führt keine Überprüfung der Namespaces durch, geht jedoch davon aus, dass Präfixe und Namespaces bereits überprüft wurden und der W3C-Namespaces-Spezifikation entsprechen.
Hinweis
LINQ TO XML in C# und Visual Basic verwenden XmlNamespaceManager nicht zum Verwalten von Namespaces. Informationen zur Verwaltung von Namespaces bei der Verwendung von LINQ to XML finden Sie in der LINQ-Dokumentation unter Arbeiten mit XML-Namespaces (C#) und Arbeiten mit XML-Namespaces (Visual Basic).
Hier sind einige der Verwaltungs- und Nachschlageaufgaben, die Sie mit der XmlNamespaceManager Klasse ausführen können. Für weitere Informationen und Beispiele folgen Sie den Links zur Referenzseite für jede Methode oder Eigenschaft.
Bis | Verwendung |
---|---|
Hinzufügen eines Namespaces | AddNamespace-Methode |
Entfernen eines Namespaces | RemoveNamespace-Methode |
Finden Sie den URI für den Standardnamespace | DefaultNamespace-Eigenschaft |
Suchen des URI für ein Namespacepräfix | LookupNamespace-Methode |
Suchen des Präfixes für einen Namespace-URI | LookupPrefix-Methode |
Eine Liste von Namespaces im aktuellen Knoten abrufen | GetNamespacesInScope-Methode |
Festlegen des Gültigkeitsbereichs für einen Namespace | Die Methoden PushScope und PopScope |
Überprüfen, ob ein Präfix im aktuellen Bereich definiert ist | HasNamespace-Methode |
Abrufen der Namenstabelle, die für die Suche nach Präfixen und URIs verwendet wird | NameTable-Eigenschaft |