2016-04-03 13 views
1

im mich über die Bedeutung der folgenden Sätze fragen:Bedeutung von XML-Namen

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core"> 

Was genau diese Sätze zu tun?

Offensichtlich binden sie die betreffende HTML-Tag-Bibliothek an das Präfix h: jsf/html oder f: jsf/core oder Standard xhtml. Es wird gesagt, dass diese Tag-Bibliotheken "Namespaces" sind - das bedeutet eine Sammlung von Elementen und Attributen, die diese HTML-Tags definieren, auf die wir mit den angegebenen Präfixen zugreifen können - oder nicht?

Bedeutet das, dass die obigen URIs mich zu einer Art von DTDs weiterleiten, wo die Tag-Elemente definiert sind?

Antwort

2

Ja: https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=xml%20namespaces

Ein Namespace-Name ist ein Uniform Resource Identifier (URI). In der Regel beschreibt der URI, der für den Namespace eines bestimmten XML-Vokabulars ausgewählt wurde, eine Ressource unter der Kontrolle des Autors oder der Organisation, die das Vokabular definiert, z. B. eine URL für den Webserver des Autors. Die Namespace-Spezifikation erfordert jedoch nicht, dass der Namespace-URI zum Abrufen von Informationen verwendet wird. Es wird einfach von einem XML-Parser als String behandelt. Zum Beispiel enthält das Dokument unter http://www.w3.org/1999/xhtml selbst keinen Code. Es beschreibt den XHTML-Namespace einfach für menschliche Leser. Wenn Sie einen URI (z. B. "http://www.w3.org/1999/xhtml") verwenden, um einen Namespace anstelle einer einfachen Zeichenfolge (z. B. "xhtml") zu identifizieren, wird die Wahrscheinlichkeit verringert, dass unterschiedliche Namespaces doppelte Bezeichner verwenden.

Obwohl der Begriff Namespace-URI weit verbreitet ist, wird er in der W3C-Empfehlung als Namespacename bezeichnet. Die Spezifikation schreibt nicht genau die genauen Regeln für Namespace-Namen vor (sie besagt nicht explizit, dass Parser Dokumente zurückweisen müssen, deren Namespace-Name kein gültiger Uniform Resource Identifier ist), und viele XML-Parser erlauben die Verwendung beliebiger Zeichenketten. In Version 1.1 der Empfehlung wird der Namespacename zu einem Internationalized Resource Identifier, der die Verwendung von Nicht-ASCII-Zeichen lizenziert, die in der Praxis bereits von fast jeder XML-Software akzeptiert wurden. Der Begriff Namespace URI besteht jedoch nicht nur in der populären Verwendung, sondern auch in vielen anderen Spezifikationen von W3C und anderswo.

Nach der Veröffentlichung der Namespaces-Empfehlung gab es eine intensive Debatte darüber, wie ein relativer URI gehandhabt werden sollte. Einige argumentierten strikt, dass er nur als Zeichenkette behandelt werden sollte. Andere argumentierten mit der Überzeugung, dass sie geändert werden sollte in einen absoluten URI, indem es gegen den Basis-URI des Dokuments aufgelöst wird. [3] Das Ergebnis der Debatte war eine Entscheidung des W3C, dass relative URIs veraltet waren. [4]

Die Verwendung von URIs in Form von URLs im HTTP-Schema (z. B. http://www.w3.org/1999/xhtml) ist üblich, obwohl keine formale Beziehung zum HTTP-Protokoll besteht. Die Namespaces-Spezifikation sagt nicht, was passieren soll, wenn eine solche URL dereferenziert wird (dh wenn Software versucht, ein Dokument von diesem Ort abzurufen). Eine Konvention, die von einigen Benutzern übernommen wurde, besteht darin, ein RDDL-Dokument am Ort zu platzieren. [5] Im Allgemeinen sollten Benutzer jedoch davon ausgehen, dass der Namespace-URI einfach ein Name und nicht die Adresse eines Dokuments im Web ist.