Namespace

Namespace

Namensraum (englisch namespace) ist ein Begriff aus der Informatik.

Ein Name identifiziert ein Objekt. Zur eindeutigen Zuordnung ist jedoch der entsprechende Kontext – eben der Namensraum - zu beachten. Die Beschreibung geschieht üblicherweise durch die "Punkt"-Notation. Neben der "Punkt"-Notation sind aber auch andere Zeichen gebräuchlich, z. B. bei Dateinamen "" oder "/". Einige Namensräume (z. B. Dateisysteme) sind hierarchisch aufgebaut; d. h. Namensräume können selbst wieder aus Namensräumen bestehen. Namensräume werden dazu verwendet, Konflikte bei der Namensvergabe zu verhindern. Graphisch sind Namensräume mit Bäumen äquivalent; d. h. Namensräume haben eine Wurzel (einen festen, definierten Ausgangspunkt), Knoten (Verzeichnisse) und Blätter (Objekte).

Die Idee von Namensräumen wird auch in anderen Bereichen unter anderen Namen verwendet, z. B. in der Telefonie. Jeder Teilnehmer erhält eine individuelle Rufnummer (z. B. 4711) und diese wird lokal vergeben. Das Telefonnetz ist hierbei in Unternetze unterteilt, und die Identifikation erfolgt über die Vorwahl. Somit kann jede Rufnummer mehrfach vergeben werden, sie muss nur innerhalb des Unternetzes eindeutig sein. Bei einem Anruf im selben Vorwahlbereich reicht somit die Angabe der Rufnummer 4711. Soll ein Teilnehmer aus dem Vorwahlbereich 0815 kontaktiert werden, der ebenfalls die Rufnummer 4711 besitzt, so wählt man die 0815 vor. Durch diese Technik können mehrere Teilnehmer die gleiche Rufnummer 4711 besitzen. In diesem Beispiel wäre die 0815 der Namensraum, 4711 der eigentliche Name, und das Telefon das identifizierte Objekt.

Beim Erstellen von Programmen kann ein Autor unter Benutzung von Namensräumen große Programmpakete mit vielen definierten Namen schreiben, ohne sich Gedanken machen zu müssen, ob die neu eingeführten Namen in Konflikt zu anderen Namen stehen. Im Unterschied zu der Situation ohne Namensräume wird hier nicht der ganze Name neu eingeführt, sondern nur ein Teil des Namens, nämlich der des Namensraumes.

Ein Namensraum ist ein deklaratorischer Bereich, der einen zusätzlichen Bezeichner an jeden Namen anheftet, der darin deklariert wurde. Dieser zusätzliche Bezeichner macht es weniger wahrscheinlich, dass ein Namenskonflikt auftritt mit Namen, die anderswo im Programm deklariert wurden. Es ist möglich, den gleichen Namen in unterschiedlichen Namensräumen ohne Konflikt zu verwenden, auch wenn der gleiche Name in der gleichen Übersetzungseinheit vorkommt. Solange er in unterschiedlichen Namensräumen erscheint, ist jeder Name eindeutig aufgrund des zugefügten Namensraumbezeichners.

Beispiel C++:

namespace one
{
  char func(char);
  class String { ... };
}
// somelib.h
namespace SomeLib
{
  class String { ... };
}

Die meisten modernen Programmiersprachen unterstützen Namensräume. Die Auszeichnungssprache XML unterstützt ebenfalls Namensräume, wobei der Präfix durch einen Doppelpunkt vom lokalen Namen getrennt wird.

Öffentliche Namensräume

Bei öffentlichen Namensräumen gibt es besonders das Problem der Verwaltung, denn alle (Markt-)Teilnehmer müssen sich einigen, so dass kein Name zwei unterschiedliche Dinge bezeichnet. Aus diesem Grund gibt es in der Regel Verwaltungsorganisationen, die Namensräume oder Teilbereiche davon verwalten und Ausschnitte davon für einzelne Teilnehmer reservieren. Hier wiederum gibt es das Problem, dass diese Verwaltungsorganisationen in der Regel selbst eine Monopol-Stellung haben, so dass sie bei Gewinnorientierung Monopolpreise zum Nachteil der Teilnehmer erzielen könnten. Zudem stellt ein solches Monopol eine Schwachstelle dar, denn bei Ausfall der Verwaltungsorganisation kann je nach Integration der Teilnehmer der Geschäftsbetrieb dieser Teilnehmer erheblich gestört werden. Dies gilt nicht nur, aber auch für das Domain Name System, denn die Namensauflösung muss in diesem Fall online geschehen.

Siehe auch


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Namespace — This article is about namespaces in general. For their use in computing, see Namespace (computer science). For their use in Wikipedia, see Wikipedia:Namespace. In general, a namespace is a container that provides context for the identifiers… …   Wikipedia

  • namespace —    In Microsoft Active Directory, a collection of unique domain names. A namespace can be contiguous or disjointed. In a contiguous namespace, a child domain always contains the name of the parent, for example, accounting.sybex .com as a… …   Dictionary of networking

  • NameSpace — Espace de noms Pour une explication plus détaillée sur l utilisation du terme dans Wikipédia, voir Aide:Espace de noms. Un espace de noms (namespace) est un ensemble de ce qui est désignable dans un contexte donné par une méthode d accès donnée… …   Wikipédia en Français

  • Namespace — Espace de noms Pour une explication plus détaillée sur l utilisation du terme dans Wikipédia, voir Aide:Espace de noms. Un espace de noms (namespace) est un ensemble de ce qui est désignable dans un contexte donné par une méthode d accès donnée… …   Wikipédia en Français

  • namespace — 1. noun A conceptual space that groups classes, identifiers, etc. to avoid conflicts with items in unrelated code that have the same names. 2. verb To categorize by placing into a namespace. Something I havent captured in this schema is that the… …   Wiktionary

  • Namespace-based Validation Dispatching Language — (NVDL) is an XML schema language for validating XML documents that integrate with multiple namespaces. It is an ISO/IEC standard, and it is Part 4 of the DSDL schema specification. Much of the work on NVDL is based on the older Namespace Routing… …   Wikipedia

  • Namespace (computer science) — For namespaces in general, see Namespace. A namespace (sometimes also called a name scope) is an abstract container or environment created to hold a logical grouping of unique identifiers or symbols (i.e., names). An identifier defined in a… …   Wikipedia

  • Namespace-based Validation Dispatching Language — Die Namespace based Validation Dispatching Language (NVDL) ist eine XML Schemasprache zum Validieren von XML Dokumenten, deren Struktur mit verschiedenen Schemasprachen und in unterschiedlichen Namensräumen definiert wurde. NVDL ist ein ISO/IEC… …   Deutsch Wikipedia

  • Namespace Routing Language — In its simplest form, a Namespace Routing Language (NRL) schema consists of a mapping from namespace URIs to schema URIs. An NRL schema is written in XML. DSDL Part 4 (ISO/IEC 19757 4), NVDL is based on NRL. External links NRL home page NVDL… …   Wikipedia

  • Namespace — …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”