Namespaces in XML
Z Wikipedii
Namespaces in XML - Przestrzenie nazw w XML-u - są identyfikowane 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ć.
Spis treści |
[edytuj] Identyfikatory przestrzeni nazw
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.
[edytuj] Deklarowanie przestrzeni nazw
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
(oczywiście "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ą.
[edytuj] Używanie przestrzeni nazw
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:
(oczywiście "prefix" trzeba zastąpić przez ten sam prefiks, pod którym zadeklarowana jest przestrzeń nazw).
[edytuj] Linki zewnętrzne
- Specyfikacja Namespaces in XML 1.1 (Second Edition) (en)
- Polskie tłumaczenie specyfikacji Namespaces in XML 1.1
- Specyfikacja Namespaces in XML 1.0 (en)
- Polskie tłumaczenie specyfikacji Namespaces in XML 1.0
- Rozdział kursu XML w w3schools.com poświęcony przestrzeniom nazw (en)
Rdzenne technologie XML-a: Namespaces in XML • XML Inclusions (XInclude) • XML Information Set • xml:id
XML Events • XML Fragment Interchange • XML Base • Associating Style Sheets with XML documents
Języki stylistyczne: Cascading Style Sheets (CSS) • Document Style Semantics and Specification Language (DSSSL), Rodzina Extensible Stylesheet Language:
Extensible Stylesheet Language (XSL) • XSL Formatting Objects (XSL-FO) • XSL Transformations (XSLT) • XML Path Language (XPath)
Języki z rodziny XML Linking: XML Linking Language (XLink) • XML Base • XML Pointer Language (XPointer)
Języki zapytań dokumentów XML: XML Path Language (XPath) • XML Query Language (XQuery) • XML Syntax for XQuery (XQueryX)
Rodzaje schematów dokumentów XML: Document Type Definition (DTD) • XML Schema • REgular LAnguage for XML Next Generation (RELAX NG)