blob: 6db19549e535ed461f89fcf4372a7a2a9a886eee (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
|
---
title: RDF データソース
slug: Archive/Mozilla/XUL/Tutorial/RDF_Datasources
tags:
- Tutorials
- XUL
- XUL_Tutorial
translation_of: Archive/Mozilla/XUL/Tutorial/RDF_Datasources
---
<p>
</p><div class="prevnext" style="text-align: right;">
<p><a href="/ja/docs/XUL_Tutorial:Trees_and_Templates" style="float: left;">« 前のページ</a><a href="/ja/docs/XUL_Tutorial:Advanced_Rules">次のページ »</a></p>
</div>
<p>このセクションでは、いくつかのデータソースと、独自の RDF ファイルをデータソースとして使用する方法を見ていきます。
</p>
<h3 id=".E3.81.84.E3.82.8D.E3.81.84.E3.82.8D.E3.81.AA_Mozilla_.E3.83.87.E3.83.BC.E3.82.BF.E3.82.BD.E3.83.BC.E3.82.B9" name=".E3.81.84.E3.82.8D.E3.81.84.E3.82.8D.E3.81.AA_Mozilla_.E3.83.87.E3.83.BC.E3.82.BF.E3.82.BD.E3.83.BC.E3.82.B9"> いろいろな Mozilla データソース </h3>
<p>Mozilla では、多くの組み込みのデータソースを提供しています。
ここでは、そのうちのいくつかを例と一覧で示していきます。
それらは、フィールドについては対応するデータに応じて異なりますが、動作については、ブックマークの場合と非常によく似た挙動を示します。
</p>
<h3 id=".E5.B1.A5.E6.AD.B4.E3.83.AA.E3.82.B9.E3.83.88" name=".E5.B1.A5.E6.AD.B4.E3.83.AA.E3.82.B9.E3.83.88"> 履歴リスト </h3>
<p>履歴 (history) データソースは、利用者の履歴リスト、つまり利用者が最近訪れた URL のリストへのアクセスを提供します。
リソースは、データソースとして、<code>rdf:history</code> を指定することで参照できます。
以下の表は、履歴データソースから取得できるリソース (あるいはフィールド) を示しています。
テンプレートを作成するとき、リソースの値を使いたい場所に、表中の URL の値を置いてください。
</p>
<table class="fullwidth-table">
<tbody><tr>
<td>Date</td>
<td><span class="nowiki">http://home.netscape.com/NC-rdf#Date</span></td>
<td>最後に訪れた日付</td>
</tr>
<tr>
<td>Name</td>
<td><span class="nowiki">http://home.netscape.com/NC-rdf#Name</span></td>
<td>ページのタイトル</td>
</tr>
<tr>
<td>Page</td>
<td><span class="nowiki">http://home.netscape.com/NC-rdf#Page</span></td>
<td>ページの名前</td>
</tr>
<tr>
<td>Referrer</td>
<td><span class="nowiki">http://home.netscape.com/NC-rdf#Referrer</span></td>
<td>ページの参照元</td>
</tr>
<tr>
<td>URL</td>
<td><span class="nowiki">http://home.netscape.com/NC-rdf#URL</span></td>
<td>ページの URL</td>
</tr>
<tr>
<td>Visit Count</td>
<td><span class="nowiki">http://home.netscape.com/NC-rdf#VisitCount</span></td>
<td>ページの訪問回数</td>
</tr>
</tbody></table>
<p>履歴リストを表示する場合、通常はツリーを利用して、上記のフィールドから表示する必要があるものを選択して表示させることになります。
テンプレートから使用するためには、上の URL 値を、<code>button</code> や <code>treecell</code> の <code>label</code> 属性に置いてください。
また、<code>ref</code> 属性の値としては、<code>NC:HistoryRoot</code> を指定できます。
もしくは、<code>NC:HistoryByDate</code> を指定することで、日付単位でまとめられた履歴を取得することも可能です。
</p>
<h4 id=".E5.B1.A5.E6.AD.B4.E3.83.AA.E3.82.B9.E3.83.88.E3.81.AE.E4.BE.8B" name=".E5.B1.A5.E6.AD.B4.E3.83.AA.E3.82.B9.E3.83.88.E3.81.AE.E4.BE.8B"> 履歴リストの例 </h4>
<p>それでは、履歴リストを表示する例を見ることにしましょう。
履歴を、Name、URL、Date という 3 つのカラムからなるツリー内に表示させることにします。
</p><p><span id="%E4%BE%8B_1"><a id="%E4%BE%8B_1"></a><strong>例 1</strong></span> : <a href="https://developer.mozilla.org/samples/xultu/examples/ex_datasrc_1.xul.txt">ソース</a>
</p>
<pre><tree flex="1" datasources="rdf:history" ref="NC:HistoryRoot">
<treecols>
<treecol id="name" label="Name" flex="1"/>
<treecol id="url" label="URL" flex="1"/>
<treecol id="date" label="Date" flex="1"/>
</treecols>
<template>
<rule>
<treechildren>
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://home.netscape.com/NC-rdf#Name"/>
<treecell label="rdf:http://home.netscape.com/NC-rdf#URL"/>
<treecell label="rdf:http://home.netscape.com/NC-rdf#Date"/>
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
</pre>
<h3 id=".E3.81.9D.E3.81.AE.E4.BB.96.E3.81.AE.E3.83.87.E3.83.BC.E3.82.BF.E3.82.BD.E3.83.BC.E3.82.B9" name=".E3.81.9D.E3.81.AE.E4.BB.96.E3.81.AE.E3.83.87.E3.83.BC.E3.82.BF.E3.82.BD.E3.83.BC.E3.82.B9"> その他のデータソース </h3>
<p>以下の表では、Mozilla で利用可能な、それ以外のデータソースをいくつかリストしています。
これらのリソースは、どれでも必要に応じて使用することが可能です。
</p>
<dl><dt> Bookmarks (<span class="nowiki">rdf:bookmarks</span>) </dt><dd> ブックマークは、利用者のブックマークリストから生成されます。
</dd></dl>
<table class="fullwidth-table">
<tbody><tr>
<th colspan="3">リソース</th>
</tr>
<tr>
<td>Added Date</td>
<td><span class="nowiki">http://home.netscape.com/NC-rdf#BookmarkAddDate</span></td>
<td>ブックマークが追加された日付</td>
</tr>
<tr>
<td>Description</td>
<td><span class="nowiki">http://home.netscape.com/NC-rdf#Description</span></td>
<td>ブックマークの説明</td>
</tr>
<tr>
<td>Last Modified</td>
<td><span class="nowiki">http://home.netscape.com/WEB-rdf#LastModifiedDate</span></td>
<td>最終更新日付</td>
</tr>
<tr>
<td>Last Visited</td>
<td><span class="nowiki">http://home.netscape.com/WEB-rdf#LastVisitDate</span></td>
<td>最後に訪れた日付</td>
</tr>
<tr>
<td>Name</td>
<td><span class="nowiki">http://home.netscape.com/NC-rdf#Name</span></td>
<td>ブックマークの名前</td>
</tr>
<tr>
<td>Shortcut URL</td>
<td><span class="nowiki">http://home.netscape.com/NC-rdf#ShortcutURL</span></td>
<td>カスタムキーワードフィールド</td>
</tr>
<tr>
<td>URL</td>
<td><span class="nowiki">http://home.netscape.com/NC-rdf#URL</span></td>
<td>リンク先 URL</td>
</tr>
</tbody></table>
<table class="fullwidth-table">
<tbody><tr>
<th colspan="2">Bookmarks のルートとして指定可能な値</th>
</tr>
<tr>
<td>NC:BookmarksRoot</td>
<td>ブックマーク階層のトップレベル</td>
</tr>
<tr>
<td>NC:IEFavoritesRoot</td>
<td>利用者の IE のお気に入りに対応するブックマークフォルダ</td>
</tr>
<tr>
<td>NC:PersonalToolbarFolder</td>
<td>パーソナルなツールバーフォルダに対応するブックマークフォルダ</td>
</tr>
</tbody></table>
<dl><dt> Files (<span class="nowiki">rdf:files</span>)
</dt><dd>利用者環境の (ローカルな) ファイルの情報を参照します。
</dd></dl>
<table class="fullwidth-table">
<tbody><tr>
<th colspan="3">リソース</th>
</tr>
<tr>
<td>Name</td>
<td><span class="nowiki">http://home.netscape.com/NC-rdf#Name</span></td>
<td>ファイルの名前</td>
</tr>
<tr>
<td>URL</td>
<td><span class="nowiki">http://home.netscape.com/NC-rdf#URL</span></td>
<td>ファイルの URL</td>
</tr>
</tbody></table>
<table class="fullwidth-table">
<tbody><tr>
<th colspan="2">Files のルートとして指定可能な値</th>
</tr>
<tr>
<td>NC:FilesRoot</td>
<td>ファイルシステムのトップレベル。(通常、ドライブのリスト)</td>
</tr>
<tr>
<td>ファイルの URL</td>
<td><code>ref</code> 属性に、ファイル URL を指定することで、特定のディレクトリを参照するように選択できます。例えば、<code><a class=" external" rel="freelink">file:///windows</a></code> や <code><a class=" external" rel="freelink">files:///usr/local</a></code> のような指定が可能です。</td>
</tr>
</tbody></table>
<p>ファイルデータソースは、実際に必要になったときにリソースの確定を行うタイプのデータソースの一例になります。
ツリーやメニューを表示させるとき、実際にデータが表示される前に、ファイルシステム中のすべてのファイルを走査してリソース情報として確定するのは望ましい動作ではないはずです。
実際のファイルデータソースは、その時点でツリー要素 (あるいはその他の要素) が表示する必要があるファイルとディレクトリについてだけが走査されて確定するように動作します。
</p>
<h3 id=".E8.A4.87.E5.90.88.E3.83.87.E3.83.BC.E3.82.BF.E3.82.BD.E3.83.BC.E3.82.B9" name=".E8.A4.87.E5.90.88.E3.83.87.E3.83.BC.E3.82.BF.E3.82.BD.E3.83.BC.E3.82.B9"> 複合データソース </h3>
<p>以下の例で示すように、<code>datasources</code> 属性には複数のデータソースを空白文字 (whitespace) で区切って指定できます。
これは、指定されたすべてのデータソースからデータを読み込む効果があります。
</p>
<pre><tree datasources="rdf:bookmarks rdf:history animals.rdf" ref="NC:BookmarksRoot">
</pre>
<p>この例は、リソースを、ブックマークと履歴の組み込みデータソースと、<code>animals.rdf</code> ファイルから読み込みます。
これらは 1 つの複合データソースに結合されるため、あたかも 1 つのデータソースであるかのように使用することが可能です。
</p><p>また、特殊なデータソースである <code>rdf:null</code> は、何にも対応しません。
このデータソースは、スクリプトを使用してデータソースを動的に設定する場合に、
初期値としてどのデータソースも指定したくない場合や、指定する URL が正確に分からない場合に使うことができます。
</p>
<h3 id=".E3.82.AB.E3.82.B9.E3.82.BF.E3.83.A0_RDF_.E3.83.87.E3.83.BC.E3.82.BF.E3.82.BD.E3.83.BC.E3.82.B9" name=".E3.82.AB.E3.82.B9.E3.82.BF.E3.83.A0_RDF_.E3.83.87.E3.83.BC.E3.82.BF.E3.82.BD.E3.83.BC.E3.82.B9"> カスタム RDF データソース </h3>
<p>上記の組み込みのデータソースは、どれでも必要に応じて使用することが可能です。
これ以外にも、メールやアドレス帳、検索などについてもデータソースが提供されています。
しかしながら、RDF ファイルに保存された、独自の RDF データソースを使いたい場合もあるかもしれません。
このために必要なことは、RDF ファイルの URL を <code><code id="a-datasources"><a href="https://developer.mozilla.org/ja/docs/Mozilla/Tech/XUL/Attribute/datasources">datasources</a></code></code> 属性に置くだけです。
このときの RDF ファイルは、ローカルでもリモートでも構いません。
</p><p>RDF ファイルを使用する場合にも、組み込みのデータソースの場合と完全に同等の機能が提供されています。
例えば、特定の型にマッチしたコンテントを生成するためにルールを指定することが可能です。
このときは、<code><code><a href="/ja/docs/Mozilla/Tech/XUL/rule" title="rule">rule</a></code></code> 要素に指定した属性が、RDF の <code>Description</code> 要素の属性とマッチした場合に、マッチしたことになります。
また、階層的な RDF ファイルを作ることも可能です。
</p>
<h4 id="RDF_.E3.83.95.E3.82.A1.E3.82.A4.E3.83.AB.E3.82.92.E4.BD.BF.E7.94.A8.E3.81.97.E3.81.9F.E4.BE.8B" name="RDF_.E3.83.95.E3.82.A1.E3.82.A4.E3.83.AB.E3.82.92.E4.BD.BF.E7.94.A8.E3.81.97.E3.81.9F.E4.BE.8B"> RDF ファイルを使用した例 </h4>
<p>以下の例は、RDF ファイルをデータソースとして使用する方法を示しています。
使用する RDF ファイルは結構大きいため、
別ファイルで参照するようにしておきます: <a href="https://developer.mozilla.org/samples/xultu/examples/animals.txt">ソース</a> <a href="https://developer.mozilla.org/samples/xultu/examples/animals.rdf">RDF</a>
</p><p><span id="%E4%BE%8B_2"><a id="%E4%BE%8B_2"></a><strong>例 2</strong></span> : <a href="https://developer.mozilla.org/samples/xultu/examples/ex_datasrc_2.xul.txt">ソース</a> <a href="https://developer.mozilla.org/samples/xultu/examples/ex_datasrc_2.xul">表示</a>
</p>
<pre><tree flex="1" width="200" height="200"
datasources="animals.rdf" ref="http://www.some-fictitious-zoo.com/all-animals">
<treecols>
<treecol id="name" label="Name" primary="true" flex="1"/>
<treecol id="species" label="Species" flex="1"/>
</treecols>
<template>
<rule>
<treechildren>
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.some-fictitious-zoo.com/rdf#name"/>
<treecell label="rdf:http://www.some-fictitious-zoo.com/rdf#species"/>
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
</pre>
<p><img alt="画像:datasrc1.jpg">
</p><p>ここでは、データはファイルから生成されています。
また、<code><code id="a-ref"><a href="https://developer.mozilla.org/ja/docs/Mozilla/Tech/XUL/Attribute/ref">ref</a></code></code> 属性は、RDF ファイルのルート要素、つまり、トップレベルの <code>Seq</code> に設定されています。
これによって、animals に含まれている完全なリストが取得できます。
なお、必要であれば、<code><code id="a-ref"><a href="https://developer.mozilla.org/ja/docs/Mozilla/Tech/XUL/Attribute/ref">ref</a></code></code> 属性の値を、それ以外の <code>about</code> 属性の値に変更することで、返されるデータの範囲を制限することが可能です。
例えば、reptiles (爬虫類) だけを表示するには、<code><span class="nowiki">http://www.some-fictitious-zoo.com/reptiles</span></code> という値を指定します。
</p>
<h4 id="ref_.E5.B1.9E.E6.80.A7.E3.81.AE.E8.A8.AD.E5.AE.9A.E4.BE.8B" name="ref_.E5.B1.9E.E6.80.A7.E3.81.AE.E8.A8.AD.E5.AE.9A.E4.BE.8B"> ref 属性の設定例 </h4>
<p>以下の例は、<code><code id="a-ref"><a href="https://developer.mozilla.org/ja/docs/Mozilla/Tech/XUL/Attribute/ref">ref</a></code></code> 属性を設定することで、RDF データソースの特定部分を表示する方法を示しています。
</p><p><span id="%E4%BE%8B_3"><a id="%E4%BE%8B_3"></a><strong>例 3</strong></span> : <a href="https://developer.mozilla.org/samples/xultu/examples/ex_datasrc_3.xul.txt">ソース</a> <a href="https://developer.mozilla.org/samples/xultu/examples/ex_datasrc_3.xul">表示</a>
</p>
<pre><window
id="example-window"
title="History List"
xmlns:ANIMALS="http://www.some-fictitious-zoo.com/rdf#"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<button label="Click here to see the mammals the zoo has" type="menu"
datasources="animals.rdf" ref="http://www.some-fictitious-zoo.com/mammals">
<template>
<rule ANIMALS:specimens="0"></rule>
<rule>
<menupopup>
<menuitem uri="rdf:*" label="rdf:http://www.some-fictitious-zoo.com/rdf#name"/>
</menupopup>
</rule>
</template>
</button>
</window>
</pre>
<p>この例では、mammals (哺乳類) だけを求めたい場合を想定して、mammals リストの URI を選択しています。
例の中で、<code><code id="a-ref"><a href="https://developer.mozilla.org/ja/docs/Mozilla/Tech/XUL/Attribute/ref">ref</a></code></code> 属性の値が、<code><span class="nowiki">http://www.some-fictitious-zoo.com/mammals</span></code> に設定されていて、
これが、RDF ファイル の <code>Seq</code> 要素の 1 つと対応していることを確認してください。
この設定によって、このリストの子孫だけが返されることになります。
</p><p>また、ここでは、ルールが 2 つ使われています。
最初のルールは、ANIMALS:specimens 属性が 0 に設定されたリソースすべてをキャッチします。
<span style="color: darkgreen; background: #ef9;">【訳注: specimen は「見本」という意味 -- この場合は、飼育されている頭数のことと思われる】</span>
RDF ファイルを参照して、各 <code>Description</code> 要素に対してこの属性が設定されていることと、
その中に、値が 0 で設定されているのものがあることを確認してみてください。
これらの値が 0 で設定されている要素には、最初のルールがマッチすることになりますが、
このルールにはコンテントがないため、これらのリソースに対しては何の表示も行われません。
この方法は、表示したくないデータを隠す場合に役に立ちます。
</p><p>2 番目のルールは、それ以外のすべてのリソースに適用され、ポップアップメニューの行を生成します。
最終的には、specimen に 0 以外が設定された、すべての mammals を含んだポップアップメニューが得られることになります。
</p><p>次のセクションでは、ルールに関する全ての構文について見ていきます。
</p><div class="prevnext" style="text-align: right;">
<p><a href="/ja/docs/XUL_Tutorial:Trees_and_Templates" style="float: left;">« 前のページ</a><a href="/ja/docs/XUL_Tutorial:Advanced_Rules">次のページ »</a></p>
</div>
<div class="noinclude">
</div>
|