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/xhtmlAtom:<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:html><http://www.w3.org/1999/xhtml:head><http://www.w3.org/1999/xhtml:title>Tytuł w XHTML</http://www.w3.org/1999/xhtml:title></http://www.w3.org/1999/xhtml:head><http://www.w3.org/1999/xhtml:body>Treść w XHTML</http://www.w3.org/1999/xhtml:body></http://www.w3.org/1999/xhtml:html>
Dlatego istnieje atrybut xmlns, który deklaruje jaką przestrzeń nazw ma element i jego potomkowie.
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Tytuł w XHTML</title></head><body>Treść w XHTML</body></html>
Jeśli używa się kilku przestrzeni nazw naprzemiennie, można zadeklarować dla nich przedrostki i używać przedrostka zamiast pełnej nazwy:
<xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml"><xhtml:head><xhtml:title>Tytuł w XHTML</xhtml:title></xhtml:head><xhtml:body>Treść w XHTML</xhtml:body></xhtml:html>
Zmodyfikowano: 16.08.2011, 08:49