他の要素を指す要素記述形式。それを解釈するのが要素。
全てURIで」、データアクセスで使うページ/要素取得記法(要素を呼び出す記法ではない)。要素に他の要素を複数与えるために使う。
これもプラグインで。デフォルトでは記法定義なし。汎用記法で使う。

参照記法


:Done/セレクターは属性値デコレーションに使えない[?] Edit

:i/システムが書くページ裏[?] Edit

:i/セレクターでは上位/下位ページも指定可能に[?] Edit

:i/ページ属性はセレクターで読む Edit

:i/要素埋め込み Edit

書き方 Edit

…querySelector風表現…

部分は汎用記法

ページパスの表現も含む。
どう書くか?→ページを示すURIと、要素のインスタンス名/要素のクラス名の列をつなげて。ここに特定(見解も)を含めなければいけない??
要素にはインスタンス名を付けられるようにしたい。名前は重複するかも知れないので、IDというより名前。

querySelectorAll風セレクター Edit

タグ名にあたるのが要素のクラス名。
継承したクラス名にあたるのが要素インスタンスが持つ"dotAnnotations"属性。ノートアプリの「タグ」にあたるもの。でもこの言葉はもうマークアップタグとして使ってしまっているので。
:nth…とか:firstとか:evenみたいな疑似セレクターにあたるものは必要なものを似せて実装。

セレクター要素が必要。表現を解釈して要素セットを出力する要素。以前の参照記法にあたるもの。

XPath風でもいい Edit

XPathだとURIやページ名とひと続きになっていい。(ページ名の区切りは変更可能だけど)
ただ、CSSで使われるquerySelector風形式よりも使われてなさそう。CSS使う人だけが利用者ではないのでこの点は考えなくてもいい。

リンク関連名でフィルタリング Edit

エレメント取得はデータアクセスで要素取得すればいい。
ページセットのほうはリンク要素を取得して関連名でフィルタリングするもの。それをページセットで返せればいいので。

リンクのセット→ページセット
はセットの要素を個別に扱う必要がある。

:Done/セットの扱い
:i/参照記法は不要

セレクターでやること Edit

  1. トークン化、空白類区切り
  2. 行頭から解析
  3. DOM風をトークン通りに辿る
    1. 辿れないときは無かったことに→null
      空セットではなく。
    2. 辿れたら→要素セット
      要素セットの順序は決まっていない。混乱するような順序ではない。

Selector Edit

Selector要素。
全てURIで」の要素指示の部分の解釈もする。

実装はVisitorパターン。
Visitorが解析後のセレクター記法を持って、要素を収集していく。

Acceptorにどんな順番で道案内させるかは、Visitorセレクターを読んで決める。Acceptorは全てのセレクターに対応できるよう選択肢を用意。

ページ名と一体化 Edit

ページパス+要素パス

埋め込み要素ではページ名属性名を指定することも可能。

全てURIで」はパラメーターをDictionaryで与えるようなもの。これを使うので一体にする必要はない。