/[suikacvs]/markup/selectors/ssft/ssft-work.en.html
Suika

Diff of /markup/selectors/ssft/ssft-work.en.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by wakaba, Sat Sep 22 12:50:06 2007 UTC revision 1.6 by wakaba, Tue Oct 2 10:13:58 2007 UTC
# Line 10  Line 10 
10  <div class="header">  <div class="header">
11  <h1>Selectors Serialization Format for Testing (<abbr>SSFT</abbr>)  <h1>Selectors Serialization Format for Testing (<abbr>SSFT</abbr>)
12  Specification</h1>  Specification</h1>
13  <h2>Working Draft 22 September 2007</h2>  <h2>Working Draft <time datetime=2007-10-02>2 October 2007</time></h2>
14    
15  <dl class="versions-uri">  <dl class="versions-uri">
16  <dt>This Version</dt>  <dt>This Version</dt>
# Line 23  Specification</h1> Line 23  Specification</h1>
23  <dt>Latest Working Draft</dt>  <dt>Latest Working Draft</dt>
24  -->  -->
25  <!-- <dt>Previous Version</dt> -->  <!-- <dt>Previous Version</dt> -->
26    <dt>Version History</dt>
27      <dd><code class=URI>&lt;<a href="http://suika.fam.cx/gate/cvs/markup/selectors/ssft/ssft.en.html">http://suika.fam.cx/gate/cvs/markup/selectors/ssft/ssft.en.html</a>&gt;</code></dd>
28  </dl>  </dl>
29  <dl class="authors" id="author">  <dl class="authors" id="author">
30  <dt>Author</dt>  <dt>Author</dt>
# Line 32  Specification</h1> Line 34  Specification</h1>
34        >w@suika.fam.cx</a>&gt;</code></dd>        >w@suika.fam.cx</a>&gt;</code></dd>
35  </dl>  </dl>
36    
37  <p class="copyright" lang="en">&#xA9; 2007 <a  <p class="copyright" lang="en">&#xA9; <time>2007</time> <a
38      href="http://suika.fam.cx/~wakaba/who?" rel="author">Wakaba</a>.      href="http://suika.fam.cx/~wakaba/who?" rel="author">Wakaba</a>.
39  Permission is granted to copy, distribute and/or modify this document  Permission is granted to copy, distribute and/or modify this document
40  under the terms of the <a rel="license"  under the terms of the <a rel="license"
# Line 57  available at <code class="URI">&lt;<a Line 59  available at <code class="URI">&lt;<a
59  <div id="status" class="section">  <div id="status" class="section">
60  <h2>Status of This Document</h2>  <h2>Status of This Document</h2>
61    
62  <p><em>This section describes the status of this document  <p class=section-info><em>This section describes the status of this document
63  at the time of its publication.  Other documents  at the time of its publication.  Other documents
64  might supersede this document.</em></p>  might supersede this document.</em></p>
65    
66  <p>This document is a working draft.  <p>This document is a working draft, produced as part
67  It might be updated, replaced, or obsoleted by  of the <a href="http://suika.fam.cx/www/manakai-core/doc/web/">manakai</a>
68    project.  It might be updated, replaced, or obsoleted by
69  other documents at any time.  It is inappropriate to  other documents at any time.  It is inappropriate to
70  cite this document as other than <q>work in progress</q>.</p>  cite this document as other than <q>work in progress</q>.</p>
71    
# Line 77  normative version.</p> Line 80  normative version.</p>
80  <div id="introduction" class="section">  <div id="introduction" class="section">
81  <h2>Introduction</h2>  <h2>Introduction</h2>
82    
83    <p class=section-info>This section is <em>non-normative</em>.</p>
84    
85    <p>Selectors
86    <cite class="bibref normative">[<a href="#ref-SELECTORS">SELECTORS</a>]</cite>
87    are patterns that match against elements
88    in a tree structure and are used in Web technologies, including
89    <a href="http://www.w3.org/TR/CSS21"><abbr title="Cascading Style Sheets">CSS</abbr></a>
90    <cite class="bibref informative">[<a href="#ref-CSS">CSS</a>]</cite>,
91    <a href="http://whatwg.org/html5"><abbr title="Hypertext Markup Language">HTML</abbr>5</a>
92    <cite class="bibref informative">[<a href="#ref-HTML5">HTML5</a>]</cite>,
93    <a href="http://www.mozilla.org/projects/xbl/xbl2.html"><abbr title="XML Binding Language">XBL</abbr>2</a>
94    <cite class="bibref informative">[<a href="#ref-XBL2">XBL2</a>]</cite>, and
95    <a href="http://dev.w3.org/cvsweb/~checkout~/2006/webapi/selectors-api/Overview.html?rev=1.28&amp;content-type=text/html;%20charset=utf-8">Selectors
96    <abbr>API</abbr></a>
97    <cite class="bibref informative">[<a href="#ref-SAPI">SAPI</a>]</cite>.</p>
98    
99  <div class="issue ed">...</div>  <div class="issue ed">...</div>
100    
101    <p><a href="http://dev.w3.org/cvsweb/csswg/cssom/Overview.html">The
102    <abbr title="Cascading Style Sheets Object Model">CSSOM</abbr>
103    specification</a>
104    <cite class="bibref informative">[<a href="#ref-CSSOM">CSSOM</a>]</cite>
105    is trying to define an algorithm to
106    <a href="http://dev.w3.org/cvsweb/~checkout~/csswg/cssom/Overview.html?rev=1.55&amp;content-type=text/html;%20charset=utf-8#serializing0">serialize
107    a group of selectors</a> for the purpose of <code>selectorText</code>
108    attribute.  However, the algorithm is incomplete
109    <time datetime=2007-09-25>at the time of the writing</time>.  
110    Note that current Web browser implementations
111    of the <code>selectorText</code> attribute are consistently broken
112    in not escaping unsafe identifiers.</p>
113    
114  </div>  </div>
115    
116  <div class="section" id="terminology">  <div class="section" id="terminology">
# Line 90  normative version.</p> Line 122  normative version.</p>
122  <q><em class="rfc2119">SHOULD NOT</em></q>, and  <q><em class="rfc2119">SHOULD NOT</em></q>, and
123  <q><em class=rfc2119>MAY</em></q> in this  <q><em class=rfc2119>MAY</em></q> in this
124  document are to be interpreted as described in  document are to be interpreted as described in
125  <abbr title="Request for Comments">RFC</abbr> 2119  <a href="urn:ietf:rfc:2119"><abbr title="Request for Comments">RFC</abbr>
126    2119</a>
127  <cite class="bibref normative">[<a href="#ref-KEYWORDS">KEYWORDS</a>]</cite>.</p>  <cite class="bibref normative">[<a href="#ref-KEYWORDS">KEYWORDS</a>]</cite>.</p>
128    
129    <!-- Strictly speaking the paragraph below is not part of terminology. -->
130    <p>All examples and notes in this specification are non-normative,
131    as are all sections explicitly marked non-normative.  Everything
132    else in this specification is normative.</p>
133  </div>  </div>
134    
135  <div class="section" id="serializing">  <div class="section" id="serializing">
# Line 102  document are to be interpreted as descri Line 140  document are to be interpreted as descri
140  for now.</p>  for now.</p>
141  </div>  </div>
142    
143    <p><dfn id=newline>Newline</dfn> is <code class=char>U+000A</code>
144    <code class=charname>LINE FEED</code> <span class=ed>or
145    U+000D U+000A or U+000A ??</span>.</p>
146    
147    <!-- TODO: link terms to Selectors -->
148    
149    <p>To <dfn id=algorithm-serialize-a-group-of-selectors>serialize a group of
150    selectors</dfn> (<dfn id=var-gs><var>gs</var></dfn>):</p>
151    <ol>
152    <li>Let <dfn id=var-result><var>result</var></dfn> an empty string.</li>
153    <li>For each selector (<dfn id=var-selector><var>selector</var></dfn>) in
154    <var>gs</var>:
155      <ol>
156      <li>If <var>selector</var> is <em>not</em> the first selector
157      in the group of selectors, then append a <code class=char>U+002C</code>
158      <code class=charname>COMMA</code> followed by a
159      <a href="#newline">newline</a> to <var>result</var>.</li>
160      <li>Append four <code class=char>U+0020</code>
161      <code class=charname>SPACE</code> characters to <var>result</var>.</li>
162      <li>Process each sequence of simple selectors or
163      combinator in <var>selector</var> by following algorithm:
164        <dl class=switch>
165        <dt>If it is a sequence of simle selector
166        (<dfn id=var-sss><var>sss</var></dfn>)</dt>
167          <dd class=ed>@@</dd>
168        <dt>If it is a combinator (<dfn id=var-c><var>c</var></dfn>)</dt>
169          <dd>
170            <ol>
171            <li>Append two <code class=char>U+0020</code>
172            <code class=charname>SPACE</code> characters to <var>result</var>.</li>
173            <li>
174              <dl class=switch>
175              <dt>If <var>c</var> is descendant combinator (white space)</dt>
176                <dd>Append a <code class=char>U+0020</code>
177                <code class=charname>SPACE</code> character to
178                <var>result</var>.</dd>
179              <dt>If <var>c</var> is child combinator
180              (<code class=char>></code>)</dt>
181                <dd>Append a <code class=char>U+003E</code>
182                <code class=charname>GREATER-THAN SIGN</code> character to
183                <var>result</var>.</dd>
184              <dt>If <var>c</var> is adjacent sibling combinator
185              (<code class=char>+</code>)</dt>
186                <dd>Append a <code class=char>U+002B</code>
187                <code class=charname>PLUS SIGN</code> character to
188                <var>result</var>.</dd>
189              <dt>If <var>c</var> is general sibling combinator
190              (<code class=char>~</code>)</dt>
191                <dd>Append a <code class=char>U+007E</code>
192                <code class=charname>TILDE</code> character to
193                <var>result</var>.</dd>
194              </dl>
195            </li>
196            <li>Append a <code class=char>U+0020</code>
197            <code class=charname>SPACE</code> character to
198            <var>result</var>.</li>
199            </ol>
200          </dd>
201        </dl>
202      </ol>
203    </li>
204    <li>Then, <var>result</var> is the
205    <abbr title="Selectors Serialization Format for Testing">SFFT</abbr>
206    representation of the group of selectors.</li>
207    </ol>
208    
209    <p>To <dfn id=algorithm-serialize-a-simple-selector>serialize a simple
210    selector</dfn> (<dfn><var id=var-ss>ss</var></dfn>):</p>
211    <dl class=switch>
212    <dt>If <var>ss</var> is a type or universal selector</dt>
213      <dd><dl class=switch>
214      <dt>If a namespace URI is specified (via namespace prefix, or
215      by omitting namespace prefix where a default namespace is specified)</dt>
216        <dd class="ed">@@</dd>
217      <dt>If the null namespace is specified (by zero$B!>(Blength namespace
218      prefix)</dt>
219        <dd>Return a <code class=char>U+007C</code> <code class=charname>VERTICAL
220        BAR</code> character, followed by either local name (if <var>ss</var>
221        is a type selector) or a <code class=char>U+002A</code>
222        <code class=charname>ASTERISK</code> character (if <var>ss</var>
223        is a universal selector).</dd>
224      <dt>If no namespace is specified (by namespace prefix <code>*</code>,
225      or by omitting namespace prefix where no default namespace is specified)</dt>
226        <dd>Return a <code class=char>U+002A</code>
227        <code class=charname>ASTERISK</code> character, followed by a
228        <code class=char>U+007C</code> <code class=charname>VERTICAL BAR</code>
229        character, followed by either local name (if <var>ss</var>
230        is a type selector) or a <code class=char>U+002A</code>
231        <code class=charname>ASTERISK</code> character (if <var>ss</var>
232        is a universal selector).</dd>
233      </dl></dd>
234    <dt class=ed>@@</dt>
235    </dl>
236    
237  </div>  </div>
238    
239  <div class="section" id="parsing">  <div class="section" id="parsing">
# Line 112  Groups of Selectors</h2> Line 244  Groups of Selectors</h2>
244  <p>Since <a href="#serializing">the serializing algorithm</a> is  <p>Since <a href="#serializing">the serializing algorithm</a> is
245  so designed that it always output a valid  so designed that it always output a valid
246  <a href="http://www.w3.org/TR/css3-selectors/#grouping">group of  <a href="http://www.w3.org/TR/css3-selectors/#grouping">group of
247  selectors</a>, no special parser for the <abbr>SFFT</abbr>  selectors</a>, no special parser for
248    <abbr title="Selectors Serialization Format for Testing">SFFT</abbr>
249  is necessary.  Any conforming  is necessary.  Any conforming
250  <a href="http://www.w3.org/TR/css3-selectors/#grouping">group of  <a href="http://www.w3.org/TR/css3-selectors/#grouping">group of
251  selectors</a> parser <em class=rfc2119>MAY</em> be used  selectors</a> parser <em class=rfc2119>MAY</em> be used
# Line 123  groups of selectors.</p> Line 256  groups of selectors.</p>
256  <div class="section" id="examples">  <div class="section" id="examples">
257  <h2>Examples</h2>  <h2>Examples</h2>
258    
259  <p>This section is <em>informative</em>.</p>  <p class=section-info>This section is <em>non-normative</em>.</p>
260    
261  <div class="ed issue">  <div class="ed issue">
262  <p><a href="http://suika.fam.cx/gate/2007/css/parser-interface">Try demo</a>,  <p><a href="http://suika.fam.cx/gate/2007/css/parser-interface">Try demo</a>,
# Line 147  by choosing <q>Selectors</q> radio butto Line 280  by choosing <q>Selectors</q> radio butto
280    
281  <dl>  <dl>
282  <dt id="ref-KEYWORDS">KEYWORDS</dt>  <dt id="ref-KEYWORDS">KEYWORDS</dt>
283    <dd class="ed">RFC 2119.  The exact version of the specification    <dd><cite><a href="urn:ietf:rfc:2119">Key words for use in
284    is referenced.</dd>    <abbr>RFCs</abbr> to Indicate Requirement Levels</a></cite>,
285      <abbr title="Internet Engineering Task Force">IETF</abbr>
286      <a href="urn:ietf:bcp:14"><abbr title="Best Current Practice">BCP</abbr>
287      14</a>, <abbr title="Request for Comments">RFC</abbr> 2119,
288      <time datetime=1997-03>March 1997</time>.
289      This version of the specification is referenced</dd>
290  <dt id=ref-SELECTORS>SELECTORS</dt>  <dt id=ref-SELECTORS>SELECTORS</dt>
291    <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215"><cite>Selectors</cite></a>,    <dd><a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215"><cite>Selectors</cite></a>,
292    <abbr title="World Wide Web Consortium">W3C</abbr> Working Draft,    <abbr title="World Wide Web Consortium">W3C</abbr> Working Draft,
293    15 December 2005.  Work in progress.      <time datetime=2005-12-15>15 December 2005</time>.  Work in progress.  
294    <a href="http://www.w3.org/TR/css3-selectors">The latest version</a>    <a href="http://www.w3.org/TR/css3-selectors">The latest version</a>
295    of the specification is referenced.</dd>    of the specification is referenced.</dd>
296  </dl>  </dl>
297  </div>  </div>
298    
299  <div id="informative-references" class="section informative reference">  <div id="informative-references" class="section informative reference">
300  <h3>Informative References</h3>  <h3>Non-normative References</h3>
301    
302  <dl>  <dl>
303  <dt id=ref-CSSOM</dt>CSSOM</dt>  <dt id=ref-CSS>CSS</dt>
304    <dd class=ed>CSSOM specification, W3C ED, work in progress.</dd>    <dd><cite><a href="http://www.w3.org/TR/2007/CR-CSS21-20070719">Cascading
305      Style Sheets Level 2 Revision 1 (<abbr>CSS</abbr> 2.1)
306      Specification</a></cite>,
307      <abbr title="World Wide Web Consortium">W3C</abbr> Candidate
308      Recommendation, <time datetime=2007-07-19>19 July 2007</time>.
309      Work in progress.  The latest version of the specification is
310      available at
311      <code class=URI>&lt;<a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a>></code>.</dd>
312    <dt id=ref-CSSOM>CSSOM</dt>
313      <dd><cite><a href="http://dev.w3.org/cvsweb/~checkout~/csswg/cssom/Overview.html?rev=1.55&amp;content-type=text/html;%20charset=utf-8">Cascading
314      Style Sheets Object Model (<abbr>CSSOM</abbr>)</a></cite>,
315      <abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft,
316      <time datetime=2007-06-18>18 June 2007</time>.  Work in progress.
317      The latest Editor's Draft of the specification is available at
318      <code class=URI>&lt;<a href="http://dev.w3.org/csswg/cssom/Overview.html">http://dev.w3.org/csswg/cssom/Overview.html</a>></code>.</dd>
319    <dt id=ref-HTML5>HTML5</dt>
320      <dd><cite><a href="http://whatwg.org/html5"><abbr>HTML</abbr> 5</a></cite>,
321      <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr>
322      Working Draft.  Work in progress.</dd>
323    <dt id=ref-SAPI>SAPI</dt>
324      <dd><cite><a href="http://dev.w3.org/cvsweb/~checkout~/2006/webapi/selectors-api/Overview.html?rev=1.28&amp;content-type=text/html;%20charset=utf-8">Selectors <abbr>API</abbr></a></cite>,
325      <abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft,
326      <time datetime=2007-08-29>29 August 2007</time>.  Work in progress.
327      The latest Editor's Draft of the specification is available at
328      <code class=URI>&lt;<a href="http://dev.w3.org/2006/webapi/selectors-api/Overview.html">http://dev.w3.org/2006/webapi/selectors-api/Overview.html</a>></code>.
329      The latest published version of the specification is available at
330      <code class=URI>&lt;<a href="http://www.w3.org/TR/selectors-api/">http://www.w3.org/TR/selectors-api/</a>></code>.</dd>
331    <dt id=XBL2>XBL2</dt>
332      <dd><cite><a href="http://www.mozilla.org/projects/xbl/xbl2.html"><abbr>XBL</abbr>
333      2.0</a></cite>, Mozilla.org, <time datetime=2007-03-15>15 Mar 2007</time>.
334      Work in progress.  The latest
335      <abbr title="World Wide Web Consortium">W3C</abbr>$B!>(Bpublished
336      version of the specification is available at
337      <code class=URI>&lt;<a href="http://www.w3.org/TR/xbl/">http://www.w3.org/TR/xbl/</a>></code>.</dd>
338  </dl>  </dl>
339  </div>  </div>
340    

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.6

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24