Hallo Giovanni,
Es werden die Namensräume von XML erklärt. Dabei wird ein Präfix erstellt,
der Bezug auf eine URI nimmt. Wieso? Und Wieso kann die URI einfach irendwie
heißen? Ich versteh das nicht ganz?
Das Ziel dabei ist es, einen eindeutigen und persistenten Namen für dieses
Namensraum zu erstellen. Persistenz bedeutet soviel, daß sich der Name
nicht ändert. Die Anforderungen an einen Namen ist also, daß er kein zweites
Mal auftaucht und sich in der Zukunft nicht ändert. Anstatt nun ein neues
Konzept zu erstellen, wird einfach ein gegebenes und schon verstandenes
Namenskonzept genommen, das der URI, da diese die Anforderungen erfüllt.
Zum Beispiel: Angenommen bei SELFHTML wird zu irgendwelchen Zwecken die
XML-Sprache SelfML 1.0 entwickelt. Man könnte nun als Namen einfach
"SelfML" nehmen, ja. Aber was ist, wenn nun das Projekt SELFLINUX zu
eigenen Zwecken auch eine XML-Sprache entwickelt und diese auch "SelfML"
nennt? Dann könnte es bei einer eventuellen Vermischung der beiden Sprachen
zu technischen Problemen kommen.
Erste einfache Lösung: Man berücksichtigt, daß unser SelfML ein Produkt
von SELFHTML ist und benennt den Namen um in SELFHTML:SelfML. Wenn man
ihn als urn:selfhtml:selfml schreibt, kommt übrigens ein URN, ein
Uniform Resource Name heraus. URNs sind eine Teilmenge von URIs, den
Uniform Resource Identifiers.
Aber was passiert nun, wenn das französische SELFHTML zu seinen Zwecken
ein anderes SelfML entwickelt, wenn Patrick und Serge plötzlich Lust
darauf haben? Und wenn sie dieses genauso benennen? Sehr unwahrscheinlich,
aber der technische Standard soll ja alles mögliche abdecken.
Man besinnt sich darauf, was ein Projekt eindeutig identifizieren kann
und weltweit eindeutig ist. Und so etwas eindeutiges gibt es schon, es sind
Domainnamen in den uns bekannten URLs. SELFHTML Deutsch und SELFHTML
Französisch könnten als Namen nun diese beiden wählen und es gäbe keine
Konflikte:
http://selfhtml.teamone.de/namespace/SelfML
http://www.selfhtml.com.fr/namespace/SelfML
Nebenbei: Man muß ja nicht unbedingt eine HTTP-URL nehmen. Es gibt ja
auch noch andere URL-Schemata. Zum Beispiel tel://-URLs. Auch wenn das
wenig sinnvoll erscheint. ;-)
Ist das schon ideal oder könnte es noch etwas besseres geben? Ja. SELFHTML
könnte ja nicht immer unter selfhtml.teamone.de residieren, sondern die
Domain wechseln. Das heißt die zweite Anforderung, die Persistenz eines
Namens ist nicht mehr gegeben (In unserem Beispiel den sehr, sehr, sehr
unwahrscheinlichen Fall, wenn sich jemand dann selfhtml.teamone.de
reserverieren würde und auch eine Sprache namens SelfML entwickelt und
ihr auch obigen Namen reserviert). Schon wieder ein Konflikt.
Über Persistenz von URIs und URLs wurde schon häufiger nachgedacht, ein
Gedanke ist es, daß URIs praktisch ewig gleich bleiben. Ein Resultat
davon ist das Projekt PURL: http://www.purl.org/ Dort kann man unter
purl.org auch wieder Namen reservieren und diese auf die tatsächliche
gerade existierende Seite weiterleiten. Und man kann auch einfach Namen
reservieren, die man nur für einen Namensraum benutzt.
Und hier gilt wieder wie bei Domains das Prinzip »First come, first serve«,
das heißt, wer am ersten reserviert, kriegt den Namen. Damit wird wieder
für Eindeutigkeit gesorgt. Wenn SELFHTML also flink ist, könnte es sowas
wie http://purl.org/selfhtml/namensraeume/selfml/1.0 reservieren. Es
kann jedoch auch sein, daß Patrick und Serge vom französischen SELFHTML
schneller sind. Was aber nicht wirklich ein Problem sein, könnte, wir
könnten uns ja absprechen. ;-)
Klingt kompliziert? Es sind aber alles Überlegungen, die man machen muß,
wenn man nach einem eindeutigen und zukunftsfähigen Namen für seinen
Namensraum sucht. Und ich finde URLs sind hier eine recht praktikable
Lösung, PURL-URLs auch, wenn nicht gerade purl.org irgendwann den Dienst
aufgibt.
Tim