Obsługa przestrzeni nazw w modelu DOM

Model obiektów dokumentów XML (DOM) jest w pełni świadomy przestrzeni nazw. Obsługiwane są tylko dokumenty XML obsługujące przestrzeń nazw. Konsorcjum World Wide Web Consortium (W3C) określa, że aplikacje DOM, które implementują poziom 1, mogą nie uwzględniać przestrzeni nazw, a funkcje modelu DOM Level 2 są uwzględniane w przestrzeni nazw. Jednak wszystkie funkcje modelu DOM XML są świadome przestrzeni nazw, niezależnie od tego, czy metoda pochodzi z rekomendacji DOM poziomu 1 lub poziomu 2.

Na przykład w ustawieniu obsługującym przestrzeń nazw wywoływanie metody setAttribute("A:b", "123"), jak określono w poleceniu poziomu DOM 1, nie powoduje atrybutu z prefiksem A i lokalną nazwą b. Spowodowałoby to atrybut o wartości A:b.

W środowisku obsługującym przestrzeń nazw wywołanie elementu DOM Level 2 setAttribute("A:b", "123") powoduje wystąpienie atrybutu A z prefiksem i lokalną nazwą b. W ten sposób działa dom programu Microsoft .NET Framework.

W związku z tym dla wszystkich metod, które przyjmują parametr name, te metody również przyjmują prefiks, aby zakwalifikować nazwę. Parametr name, taki jak A:b w metodzie setAttribute DOM Level 1, jest analizowany w następujący sposób:

  • Jeśli nie ma dwukropka (:) znaków, nazwa lokalna jest ustawiona na name parametr, a prefiks i identyfikator NamespaceURI są pustymi ciągami.

  • Jeśli zostanie znaleziony dwukropek, nazwa jest podzielona na dwie części na podstawie położenia pierwszego dwukropka. Prefiks jest ustawiony na ciąg znaleziony przed dwukropkiem, a nazwa lokalna jest ustawiona na ciąg znaleziony po dwukropku. W przypadku metod, które nie przyjmują wartości identyfikatora NamespaceURI, identyfikator NamespaceURI nie jest rozpoznawany i pozostaje ustawiony na pusty ciąg. W przeciwnym razie identyfikator NamespaceURI jest ustawiony na ciąg przekazany do metody . Jeśli prefiks jest niezdefiniowany, właściwości Save i InnerXml i OuterXml zakończą się niepowodzeniem.

Zobacz też