• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:[[:t/セレクター]] [[:t/要素]] [[:t/データアクセス]]  [[:t/ビルトイン]]  [[:t/記法]]
RIGHT:[[:t/セレクター]] [[:t/要素]] [[:t/データアクセス]] 

他の要素を指す要素。
「[[全てURIで]]」、データアクセスで使うページ/要素取得記法。要素に他の要素を複数与えるために使う。ビルトインで記法あり。
「[[全てURIで]]」、データアクセスで使うページ/要素取得記法。要素に他の要素を複数与えるために使う。
これもプラグインで。デフォルトでは記法定義なし。汎用記法で使う。

***書き方 [#kdbf06bd]
 …jQuery風(CSS風)表現…
''…''部分をどうするか??

''…''部分は汎用記法。
***jQuery風セレクター [#oa4d5853]
またはCSS風セレクターで、要素を指定。

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

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


***XPath風ではない [#l736a169]
"XPath風"は要らない。構造を無視したアクセスがしたい。


***リンクを関連名でフィルタリング [#k5ca34df]

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

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

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

RIGHT:[[:t/要素]] [[:t/開発]] [[:t/API]] [[:t/ページセット]]
***セレクターでやること [#m6646769]
+トークン化、空白類区切り
+行頭から解析
+DOM風をトークン通りに辿る
++辿れないときは無かったことに→null
空セットではなく。
++辿れたら→要素セット
要素セットの順序は決まっていない。混乱するような順序ではない。


***Selector [#haf7df70]
Selector要素。
「全てURIで」の要素指示の部分の解釈もする。

jQueryとCSSの共通点を実装。

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

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

***書き方 [#o0dc62c2]
jQueryとCSSの共通点。
ページパスの表現も含む。
どう書くか??