Co oznacza `xmlns` w HTML?

Atrybut xmlns w HTML oznacza „XML Namespace” (przestrzeń nazw XML) i służy do określenia, w jakiej przestrzeni nazw znajdują się elementy danej strony lub fragmentu dokumentu. Jest to kluczowy element w pracy z dokumentami opartymi na XML, takimi jak XHTML, i pozwala na jednoznaczną identyfikację elementów nawet wtedy, gdy używasz wielu technologii XML jednocześnie.

Do czego służy xmlns?

  • Przestrzenie nazw (namespaces) – służą do unikania konfliktów pomiędzy nazwami znaczników, szczególnie gdy w jednym dokumencie używasz elementów pochodzących z różnych standardów XML;
  • Atrybut xmlns – jednoznacznie określa, do jakiego standardu należą znaczniki, dzięki czemu przeglądarka lub inny parser XML wie, jak interpretować każdy z nich;
  • Standardowe zastosowanie xmlns – w HTML występuje podczas pracy z dokumentami XHTML, gdzie wymagane jest przestrzeganie ścisłych zasad XML.

Składnia i podstawowe zastosowanie

Atrybut xmlns umieszcza się najczęściej w tagu <html> na początku dokumentu:

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Przykład XHTML z xmlns</title>
  </head>
  <body>
    <p>Przykładowa treść strony.</p>
  </body>
</html>

W powyższym przykładzie:

  • Wartość http://www.w3.org/1999/xhtml – jednoznacznie wskazuje, iż cały dokument jest zgodny z przestrzenią nazw XHTML.

Kiedy używać xmlns?

Standard Czy używać xmlns?
XHTML Wymagane
HTML5 Opcjonalne, zwykle pomijane
HTML 4.01 Niedozwolone, ignorowane
  • W dokumentach XHTML (application/xhtml+xml) – atrybut xmlns jest wymagany i stanowi podstawę prawidłowej interpretacji kodu przez przeglądarki oraz inne narzędzia przetwarzające XML;
  • W czystych dokumentach HTML5 – nie trzeba – i nie powinno się – używać xmlns, ponieważ HTML5 nie jest ścisłym podzbiorem XML.

Przykłady użycia xmlns w praktyce

Tworzenie strony w XHTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Strona XHTML</title>
  </head>
  <body>
    <p>To jest dokument w XHTML.</p>
  </body>
</html>

Łączenie wielu przestrzeni nazw XML w jednym dokumencie

Jeśli musisz używać na stronie dodatkowych standardów XML (np. SVG, MathML), przypisujesz im własne przestrzenie nazw:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" xmlns:math="http://www.w3.org/1998/Math/MathML">
  <body>
    <svg:svg width="100" height="100">
      <svg:circle cx="50" cy="50" r="40" />
    </svg:svg>
    <math:math>
      <math:msup>
        <math:mi>x</math:mi>
        <math:mn>2</math:mn>
      </math:msup>
    </math:math>
  </body>
</html>

W powyższym przykładzie elementy SVG i MathML mają własne, jasno wskazane przestrzenie nazw, dzięki czemu parser wie, jak je interpretować i renderować.

Dlaczego xmlns jest istotny?

  • Rozszerzalność – umożliwia korzystanie z wielu standardów XML w jednym dokumencie;
  • Brak konfliktów nazw – dwie różne technologie mogą mieć elementy o tej samej nazwie (<title>), ale dzięki xmlns parser wie, do którego standardu się odwoływać;
  • Wymagania formalne – bez xmlns dokumenty XHTML mogą być niepoprawne zgodnie ze specyfikacją;
  • Poprawna walidacja – narzędzia do walidacji sprawdzają obecność i poprawność przestrzeni nazw.

Kiedy nie trzeba używać xmlns?

W nowoczesnych projektach opartych typowo o HTML5 nie musisz stosować atrybutu xmlns. Przeglądarki domyślnie traktują dokumenty HTML jako należące do przestrzeni nazw HTML5. xmlns nadal będzie poprawny, ale nie jest wymagany i zwykle nie ma żadnego wpływu na działanie strony.

Podsumowanie

Atrybut xmlns określa przynależność znaczników do konkretnej przestrzeni nazw XML. Jest niezbędny w dokumentach opartych na XML, takich jak XHTML, i pozwala na bezpieczne łączenie wielu technologii XML bez obawy o konflikt nazw elementów. Dzięki temu możesz wykorzystywać mocną strukturę XML w zgodnych standardach internetowych oraz korzystać m.in. ze standardów takich jak SVG czy MathML, zachowując pełną zgodność i czytelność kodu.

Programista i twórca serwisu Creative Coding, absolwent Politechniki Warszawskiej (WEiTI). Od 10+ lat łączy front‑end, grafikę generatywną i narzędzia dla twórców; opublikował 120+ projektów i artykułów, prowadził warsztaty dla 2 000+ uczestników. Pracuje z JavaScriptem, Three.js, P5.js i GLSL, bada wydajność i dokumentuje procesy, tworząc praktyczne przewodniki dla osób łączących kod z obrazem, dźwiękiem i interakcją.
Zostaw komentarz

Komentarze

Brak komentarzy. Dlaczego nie rozpoczniesz dyskusji?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *