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

セレクター記法。ビルトイン要素なので記法付き。
セレクター記法。参照以外に書き込みにも使うので「セレクター記法」と呼んだほうがいい。ビルトイン要素なので記法付き。
「[[全てURIで]]」、データアクセスで使うページ/要素取得記法。要素に他の要素を与えるために使う。

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

***jQuery風セレクター [#oa4d5853]
またはCSS風セレクターで、要素を指定。

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

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


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


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

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

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

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

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


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

jQueryとCSSの共通点を実装。

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

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