Przestrzenie nazw w XML

Przestrzenie nazw w XMLprzestrzenie nazw w języku XML, które identyfikowane są przez referencje IRI lub URI i pozwalają na stosowanie wielu języków opartych na XML-u w jednym pliku XML. Zostały stworzone przez W3C, aby zapobiec problemom spowodowanym przez powtarzanie się tych samych elementów w różnych językach. Przykład: element <title /> jest używany i w XHTML-u i w Atomie, ale dzięki temu że XHTML ma przestrzeń nazw http://www.w3.org/1999/xhtml, a Atom – http://www.w3.org/2005/Atom, programy interpretujące XML mogą je rozróżniać.

Identyfikatory przestrzeni nazw

[edytuj | edytuj kod]

Identyfikatorem przestrzeni nazw może być dowolna referencja IRI poza pustym łańcuchem znaków. Natomiast używanie relatywnych IRI jest niezalecane. Identyfikatory przestrzeni nazw są identyczne, tylko gdy sekwencja znaków jest identyczna. Porównywana jest także wielkość znaków. Przed porównywaniem nie następuje żadne kodowanie znaków niewystępujących w ASCII, więc identyfikatory:

  • http://www.example.org/rosé
  • http://www.example.org/ros%c3%a9
  • http://www.example.org/ros%c3%A9
  • http://www.example.org/ros%C3%a9
  • http://www.example.org/ros%C3%A9

są różnymi identyfikatorami, mimo że odnoszą się do tego samego miejsca w Internecie. Jedyny proces występujący przed porównywaniem to zamiana encji na odpowiadające im znaki.

Deklarowanie przestrzeni nazw

[edytuj | edytuj kod]

Przestrzeń nazw można zadeklarować przez dodanie do dowolnego elementu jednego atrybutu, którego wartością będzie jej identyfikator. Aby zadeklarować główną przestrzeń nazw, powinien być to atrybut xmlns. Aby zadeklarować jakąś inną przestrzeń nazw, powinien być to atrybut xmlns:prefix („prefix” trzeba zastąpić przez wybrany prefiks dla elementów i atrybutów).

Przestrzeń nazw jest zadeklarowana tylko dla elementu, którego atrybut ją deklaruje oraz dla jego dzieci. Inne elementy jej nie widzą.

Używanie przestrzeni nazw

[edytuj | edytuj kod]

Wszystkie elementy, których nazwy nie zostały poprzedzone prefiksem, trafiają do głównej przestrzeni nazw. Wszystkie atrybuty, których nazwy nie zostały poprzedzone prefiksem, trafiają do przestrzeni nazw używanej przez element, do którego należą. Aby umieścić element lub atrybut w innej przestrzeni nazw, należy poprzedzić jego nazwę prefiksem prefix: („prefix” trzeba zastąpić przez ten sam prefiks, pod którym zadeklarowana jest przestrzeń nazw).

Linki zewnętrzne

[edytuj | edytuj kod]