Przestrzenie nazw w XML (ang. namespaces)
Język XML pozwala ze sobią mieszać różne bazowane na XML języki, np. XHTML, SVG, MathML, Atom, RDF, itp.
Aby przeglądarki (lub inne korzystające z nich programy) mogły rozróżnić które języki zostały użyte wykorzystują przestrzenie nazw.
Każdy element i atrybut XML może być w przestrzeni nazw. Przestrzeń nazw jest jakby uzupełnieniem nazwy elementu, np. elementy <title>
w XHTML
i <title>
w Atom mają taką samą nazwę, ale odróżnia je przestrzeń nazw:
XHTML:<title> + http://www.w3.org/1999/xhtml
Atom:<title> + http://www.w3.org/2005/Atom
Przestrzeń nazw to URI, ale wcale nie musi wskazywać istniejącej strony. Używa się adresów po to, aby ułatwić autorom wybranie przestrzeni nazw, które na pewno będą unikalne i pod ich kontrolą.
Przedrostki i xmlns
Oczywiście pisanie przestrzeni nazw obok każdego elementu było by zbyt uciążliwe:
<http://www.w3.org/1999/xhtml:title>
Tytuł w XHTML</http://www.w3.org/1999/xhtml:title>
Dlatego istnieje atrybut xmlns
, który deklaruje jaką przestrzeń nazw ma element i jego potomkowie.
<html xmlns="http://www.w3.org/1999/xhtml"><title>Tytuł w XHTML</title></html>
Jeśli używa się kilku przestrzeni nazw naprzemiennie, można zadeklarować dla nich przedrostki i używać przedrostka zamiast pełnej nazwy:
<przedrostek:html xmlns:przedrostek="http://www.w3.org/1999/xhtml">
<przedrostek:title>Tytuł w XHTML</przedrostek:title>
</przedrostek:html>
Zmodyfikowano: 04.08.2006, 14:29