Ogólne#

Sets#

W tym miejscu umieszczam powtarzające się specyficzne pojęcia i algorytmy w dziale SETS, czyli mogą mieć one zastosowanie dla wszystkich interfejsów z tego działu.

Pojęcia#

ordered set of tokens

Obiekt typu DOMTokenList jest skojarzony z uporządkowanym zestawem słów # (ordered set of tokens), który początkowo jest pusty.

Obiekt typu DOMTokenList jest także skojarzony z elementem oraz nazwą lokalną jakiegoś atrybutu.

#Kiedy obiekt typu DOMTokenList jest tworzony i skojarzony z nim element posiada atrybut wskazywany przez nazwę lokalną jakiegoś atrybutu skojarzoną z tym obiektem lub atrybut wskazywany przez skojarzoną nazwę lokalną jakiegoś atrybutu w skojarzonym elemencie jest ustawiany, to ustaw uporządkowany zestawem słów w tym obiekcie na nową wartość (sparsowaną).

#Kiedy atrybut wskazywany przez skojarzoną nazwę lokalną jakiegoś atrybutu posiadany w skojarzonym elemencie jest usuwany, to ustaw uporządkowany zestawem słów w tym obiekcie na pusty zestaw.

supported tokens

Obowiązujące specyfikacje mogą definiować obsługiwane słowa # (supported tokens) dla nazwy lokalnej jakiegoś atrybutu skojarzonej z obiektem typu DOMTokenList.

supported property indices

Obsługiwane indeksy właściwości # (supported property indices) w obiekcie typu DOMTokenList są liczbami z przedziału od 0 do liczby słów z jego uporządkowanego zestawu słów minus jeden. Jeśli uporządkowany zestaw słów jest pusty, to indeksy właściwości nie są obsługiwane.

Algorytmy#

update steps

Kroki aktualizacji # (update steps) w zestawie słów DOM domTokenList polegają na ustawieniu wartość atrybut dla elementu skojarzonego z domTokenList, z przekazaniem nazwy lokalnej jakiegoś atrybutu skojarzonej z domTokenList oraz wyniku serializacji uporządkowanego zestawu dla uporządkowanego zestawu słów skojarzonego z domTokenList.

serialize steps

Kroki serializacji # (serialize steps) w zestawie słów DOM domTokenList polegają na zwróceniu wyniku pobrania wartości atrybutu z przekazaniem elementu skojarzonego z domTokenList oraz nazwy lokalnej jakiegoś atrybutu skojarzonej z domTokenList.

validation steps

Kroki walidacji # (validation steps) w zestawie słów DOM domTokenList dla słowa token są następujące:

  1. Jeśli nazwa lokalna jakiegoś atrybutu skojarzona z domTokenList nie definiuje obsługiwanych słów, to zrzuć błąd TypeError.
  2. Niech lowercase token będzie kopią token po konwersji na małe znaki ASCII.
  3. Jeśli lowercase token jest obecne w obsługiwanych słowach, to zwróć boolowską wartość true.
  4. Zwróć boolowską wartość false.

Ordered sets

Ordered sets

ordered set serializer

Serializacja uporządkowanego zestawu # (ordered set serializer) pobiera uporządkowany zestaw set i, jeśli zestaw nie jest pusty, to zwraca połączone łańcuchy znakowe z set oddzielone od siebie znakiem U+0020 SPACE (znak spacji), w przeciwnym razie zwraca pusty łańcuch znakowy.

W uproszczeniu można powiedzieć, że powyższy algorytm pobiera jakiś uporządkowany zestaw (np. słów), a następnie zamienia go na łańcuch znakowy, gdzie separatorem między słowami będzie znak spacji. Jest to przeciwieństwem parsowania uporządkowanego zestawu.

ordered set parser

Parsowanie uporządkowanego zestawu # (ordered set parser) pobiera łańcuch znakowy input i wykonuje następujące kroki:

  1. Niech position będzie wskaźnikiem w input, wstępnie ustawionym na początku łańcucha znakowego.
  2. Niech tokens będzie uporządkowanym zestawem słów, wstępnie pustym.
  3. Pomiń białe znaki ASCII.
  4. Dopóki (while) position nie wskazuje na koniec w input:

    1. Zbierz sekwencję punktów kodowych z przekazaniem kolejnych punktów kodowych z input, które nie są białymi znakami ASCII.
    2. Jeśli zebrany łańcuch znakowy nie znajduje się w tokens, to dodaj zebrany łańcuch znakowy do tokens.
    3. Pomiń białe znaki ASCII.
  5. Zwróć tokens.

W uproszczeniu można powiedzieć, że powyższy algorytm pobiera jakiś łańcuch znakowy i tworzy uporządkowany zestaw słów, którego elementami będą poszczególne słowa z przekazanego łańcucha znakowego (duplikaty są ignorowane). Białe znaki ASCII w łańcuchu znakowym są traktowane jak separator między słowami i automatycznie pomijane w tworzonym zestawie. Jest to przeciwieństwem serializacji uporządkowanego zestawu.

collect a code point sequence

Aby zebrać sekwencję punktów kodowych # (collect a code point sequence) z punktów kodowych code points należy wykonać następujące kroki:

  1. Niech input i position będą tymi samymi zmiennymi, jak zmienne o tych samych nazwach w algorytmie wywołującym te kroki.
  2. Niech result będzie pustym łańcuchem znakowym.
  3. Dopóki (while) position nie wskazuje na koniec w input oraz punkt kodowy z position jest jednym z code points, to dołącz ten punkt kodowy na końcu result i przesuń position na następny punkt kodowy w input.
  4. Zwróć result.
skip ASCII whitespace

Aby pominąć białe znaki ASCII # (skip ASCII whitespace) należy zebrać sekwencję punktów kodowych z przekazaniem punktów kodowych, którymi są białe znaki ASCII. Zebrane znaki nie będą używane przez wywołujący algorytm.

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

Ogólne (H1) Sets (H2) Pojęcia (H3) ordered set of tokens (H4) supported tokens (H4) supported property indices (H4) Algorytmy (H3) update steps (H4) serialize steps (H4) validation steps (H4) Ordered sets (H4) ordered set serializer (H5) ordered set parser (H5) collect a code point sequence (H5) skip ASCII whitespace (H5)