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