/[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.4 by wakaba, Tue Sep 25 13:57:09 2007 UTC revision 1.9 by wakaba, Mon Oct 15 00:52:18 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 25 September 2007</h2>  <h2>Working Draft <time datetime=2007-10-15>15 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>This section is <em>informative</em>.</p>  <p class=section-info>This section is <em>non$B!>(Bnormative</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  <p><a href="http://dev.w3.org/cvsweb/csswg/cssom/Overview.html">The
102  <abbr title="Cascading Style Sheets Object Model">CSSOM</abbr>  <abbr title="Cascading Style Sheets Object Model">CSSOM</abbr>
103  specification</a>  specification</a>
104  <cite class="bibref informative">[<a href="#bib-CSSOM">CSSOM</a>]</cite>  <cite class="bibref informative">[<a href="#ref-CSSOM">CSSOM</a>]</cite>
105  is trying to define an algorithm to  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  <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>  a group of selectors</a> for the purpose of <code>selectorText</code>
108  attribute.  However, the algorithm is incomplete  attribute.  However, the algorithm is incomplete
109  at the time of the writing.  Note that current Web browser implementations  <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  of the <code>selectorText</code> attribute are consistently broken
112  in not escaping unsafe identifiers.</p>  in not escaping unsafe identifiers.</p>
113    
# Line 104  in not escaping unsafe identifiers.</p> Line 122  in not escaping unsafe identifiers.</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$B!>(Bnormative,
131    as are all sections explicitly marked non$B!>(Bnormative.  Everything
132    else in this specification is normative.</p>
133    
134    <p>For the purpose of this specification, pseudo$B!>(Belements are also
135    referred to as <dfn title="simple selector" id=simple-selector>simple
136    selectors</dfn> and are considered as part of the last sequence of
137    simple selector in a selector.</p>
138  </div>  </div>
139    
140  <div class="section" id="serializing">  <div class="section" id="serializing">
# Line 116  document are to be interpreted as descri Line 145  document are to be interpreted as descri
145  for now.</p>  for now.</p>
146  </div>  </div>
147    
148  <p><dfn id=newline>Newline</dfn> is <code class=char>U+000A</code>  <p>No <abbr title="Selectors Serialization Format for Testing">SSFT</abbr>
149  <code class=charname>LINE FEED</code> <span class=ed>or  representation is defined for an invalid group of selectors.</p>
150  U+000D U+000A or U+000A ??</span>.</p>  
151    <div class="note memo">
152    <p>The serialized representation will not contain any comment.</p>
153    </div>
154    
155  <!-- TODO: link terms to Selectors -->  <!-- TODO: link terms to Selectors -->
156    
157    <p>To
158    <dfn id=algorithm-serialize-a-group-of-selectors title="serialize a group of selectors">serialize
159    a group of selectors (<dfn id=var-gs><var>gs</var></dfn>)</dfn>:</p>
160  <ol>  <ol>
161  <li>Let <var>result</var> an empty string.</li>  <li>Let <dfn id=var-result><var>result</var></dfn> an empty string.</li>
162  <li>For each selector (<var>selector</var>) in the group of selectors:  <li>For each selector (<dfn id=var-selector><var>selector</var></dfn>) in
163    <var>gs</var>:
164    <ol>    <ol>
165    <li>If <var>selector</var> is <em>not</em> the first selector    <li>If <var>selector</var> is <em>not</em> the first selector
166    in the group of selectors, then append a <code class=char>U+002C</code>    in the group of selectors, then append a <code class=char>U+002C</code>
167    <code class=charname>COMMA</code> followed by a    <code class=charname>COMMA</code> (<code class=char>,</code>) followed by a
168    <a href="#newline">newline</a> to <var>result</var>.</li>    <a href="#newline">newline</a> to <var>result</var>.</li>
169    <li>Append four <code class=char>U+0020</code>    <li>Append four <code class=char>U+0020</code>
170    <code class=charname>SPACE</code> characters to <var>result</var>.</li>    <code class=charname>SPACE</code> characters to <var>result</var>.</li>
171    <li>Process each sequence of simple selectors or    <li>Process each sequence of simple selectors or
172    combinator in <var>selector</var> by following algorithm:    combinator in <var>selector</var> by following algorithm:
173      <dl class=switch>      <dl class=switch>
174      <dt>If it is a sequence of simle selector (<var>sss</var>)</dt>      <dt>If it is a sequence of simle selector
175        <dd class=ed>@@</dd>      (<dfn id=var-sss><var>sss</var></dfn>)</dt>
176      <dt>If it is a combinator (<var>c</var>)</dt>        <dd>
177            <ol>
178            <li class=ed><a href="#algorithm-serialize-a-simple-selector">Serialize
179            each simple selector</a> in <var>sss</var>.</li>
180            <li class=ed>sort</li>
181            <li>Append a <a href="#newline">newline</a> to <var>result</var>.</li>
182            </ol>
183          </dd>
184        <dt>If it is a combinator (<dfn id=var-c><var>c</var></dfn>)</dt>
185        <dd>        <dd>
186          <ol>          <ol>
187          <li>Append two <code class=char>U+0020</code>          <li>Append two <code class=char>U+0020</code>
# Line 151  U+000D U+000A or U+000A ??</span>.</p> Line 195  U+000D U+000A or U+000A ??</span>.</p>
195            <dt>If <var>c</var> is child combinator            <dt>If <var>c</var> is child combinator
196            (<code class=char>></code>)</dt>            (<code class=char>></code>)</dt>
197              <dd>Append a <code class=char>U+003E</code>              <dd>Append a <code class=char>U+003E</code>
198              <code class=charname>GREATER-THAN SIGN</code> character to              <code class=charname>GREATER-THAN SIGN</code>
199              <var>result</var>.</dd>              (<code class=char>></code>) character to <var>result</var>.</dd>
200            <dt>If <var>c</var> is adjacent sibling combinator            <dt>If <var>c</var> is adjacent sibling combinator
201            (<code class=char>+</code>)</dt>            (<code class=char>+</code>)</dt>
202              <dd>Append a <code class=char>U+0020</code>              <dd>Append a <code class=char>U+002B</code>
203              <code class=charname>SPACE</code> character to              <code class=charname>PLUS SIGN</code> (<code class=char>+</code>)
204              <var>result</var>.</dd>              character to <var>result</var>.</dd>
205            <dt>If <var>c</var> is general sibling combinator            <dt>If <var>c</var> is general sibling combinator
206            (<code class=char>~</code>)</dt>            (<code class=char>~</code>)</dt>
207              <dd>Append a <code class=char>U+007E</code>              <dd>Append a <code class=char>U+007E</code>
208              <code class=charname>TILDE</code> character to              <code class=charname>TILDE</code> (<code class=char>~</code>)
209              <var>result</var>.</dd>              character to <var>result</var>.</dd>
210            </dl>            </dl>
211          </li>          </li>
212          <li>Append a <code class=char>U+0020</code>          <li>Append a <code class=char>U+0020</code>
# Line 174  U+000D U+000A or U+000A ??</span>.</p> Line 218  U+000D U+000A or U+000A ??</span>.</p>
218    </ol>    </ol>
219  </li>  </li>
220  <li>Then, <var>result</var> is the  <li>Then, <var>result</var> is the
221  <abbr title="Selectors Serialization Format for Testing">SFFT</abbr>  <abbr title="Selectors Serialization Format for Testing">SSFT</abbr>
222  representation of the group of selectors.</li>  representation of <var>gs</var>.</li>
223  </ol>  </ol>
224    
225    <p>To
226    <dfn id=algorithm-serialize-a-simple-selector title="serialize a simple selector">serialize
227    a simple selector (<dfn><var id=var-ss>ss</var></dfn>)</dfn>:</p>
228    <dl class=switch>
229    <dt>If <var>ss</var> is a type or universal selector</dt>
230      <dd>
231        <ol>
232        <li>
233          <dl class=switch>
234          <dt>If a namespace URI is specified (via namespace prefix, or
235          by omitting namespace prefix where a default namespace is specified)</dt>
236            <dd class="ed">@@</dd>
237          <dt>If the null namespace is specified (by zero$B!>(Blength namespace
238          prefix)</dt>
239            <dd>Append a <code class=char>U+007C</code>
240            <code class=charname>VERTICAL BAR</code> (<code class=char>|</code>)
241            character to <var>result</var>.</dd>
242          <dt>If no namespace is specified (by namespace prefix <code>*</code>,
243          or by omitting namespace prefix where no default namespace is
244          specified)</dt>
245            <dd>Append a <code class=char>U+002A</code>
246            <code class=charname>ASTERISK</code> (<code class=char>*</code>)
247            character, followed by a <code class=char>U+007C</code>
248            <code class=charname>VERTICAL BAR</code> (<code class=char>|</code>)
249            character, to <var>result</var>.</dd>
250          </dl>
251        </li>
252        <li>If <var>ss</var> is a type selector, append the
253        <span class=ed>@@ normalized</span> local name to <var>result</var>.</li>
254        <li>If <var>ss</var> is a universal selector, append
255        a <code class=char>U+002A</code> <code class=charname>ASTERISK</code>
256        (<code class=char>*</code>) character to <var>result</var>.</li>
257        </ol>
258      </dd>
259    <dt>If <var>ss</var> is an attribute selector</dt>
260      <dd>
261        <ol>
262        <li>Append a <code class=char>U+005B</code> <code class=charname>LEFT
263        SQUARE BRACKET</code> (<code class=char>[</code>) to
264        <var>result</var>.</li>
265        <li>
266          Append a namespace prefix as following:
267          <dl>
268          <dt>If a namespace URI is specified</dt>
269            <dd class=ed>@@</dd>
270            <dd class=ed>@@ Current reference implementation is wrong,
271            since its result of sorting depends on namespace prefix.</dd>
272          <dt>If the null namespace is specified</dt>
273            <dd>Append a <code class=char>U+007C</code>
274            <code class=charname>VERTICAL BAR</code> character to
275            <var>result</var>.</dd>
276          <dt>If no namespace is specified</dt>
277            <dd>Append a <code class=char>U+002A</code>
278            <code class=charname>ASTERISK</code> (<code class=char>*</code>)
279            character, followed by a <code class=char>U+007C</code>
280            <code class=charname>VERTICAL BAR</code> (<code class=char>|</code>)
281            character, to <var>result</var>.</dd>
282          </dl>
283        </li>
284        <li>Append the <span class=ed>@@ normalized</span> local name to
285        <var>result</var>.</li>
286        <li>If a value is specified in <var>ss</var>:
287          <ol>
288          <li>Depending on the way to match, append <code>=</code>,
289          <code>~=</code>, <code>|=</code>, <code>^=</code>,
290          <code>$=</code>, or <code>*=</code> to <var>result</var>.</li>
291          <li>Append the <span class=ed>@@ normalized</span> value to
292          <var>result</var>.</li>
293          </ol>
294        </li>
295        <li>Append a <code class=char>U+005D</code> <code class=charname>RIGHT
296        SQUARE BRACKET</code> (<code class=char>]</code>) to
297        <var>result</var>.</li>
298        </ol>
299      </dd>
300    <dt>If <var>ss</var> is a class selector</dt>
301      <dd>Append a <code class=char>U+002E</code> <code class=charname>FULL
302      STOP</code> (<code class=char>.</code>) character, followed
303      by <span class=ed>@@ normalized</span> class name,
304      <var>result</var>.</dd>
305    <dt>If <var>ss</var> is an <abbr>ID</abbr> selector</dt>
306      <dd>Append a <code class=char>U+0023</code> <code class=charname>NUMBER
307      SIGN</code> (<code class=char>#</code>) character, followed
308      by <span class=ed>@@ normalized</span> <abbr>ID</abbr>,
309      to <var>result</var>.</dd>
310    <dt>If <var>ss</var> is a pseudo$B!>(Bclass selector</dt>
311      <dd>
312        <ol>
313        <li>Append a <code class=char>U+003A</code>
314        <code class=charname>COLON</code> (<code class=char>:</code>) character
315        to <var>result</var>.</li>
316        <li>Append the <span class=ed>@@ normalized</span> name of the
317        pseudo$B!>(Bclass to <var>result</var>.</li>
318        <li>Append any arguments as following:
319          <dl class=switch>
320          <dt>If the name of the pseudo$B!>(Bclass is <code>lang</code></dt>
321            <dd>
322              <ol>
323              <li>Append a <code class=char>U+0028</code> <code class=charname>LEFT
324              PARENTHESIS</code> (<code class=char>(</code>) character
325              to <var>result</var>.</li>
326              <li>Append <span class=ed>@@ normalized</span>
327              language tag (the argument) to <var>result</var>.</li>
328              <li>Append a <code class=char>U+0029</code>
329              <code class=charname>RIGHT PARENTHESIS</code>
330              (<code class=char>)</code>) character
331              to <var>result</var>.</li>
332              </ol>
333            </dd>
334          <dt>If the name of the pseudo$B!>(Bclass is
335          <code>-manakai-contains</code></dt>
336            <dd>
337              <ol>
338              <li>Append a <code class=char>U+0028</code> <code class=charname>LEFT
339              PARENTHESIS</code> (<code class=char>(</code>) character
340              to <var>result</var>.</li>
341              <li>Append <span class=ed>@@ normalized</span>
342              string (the argument) to <var>result</var>.</li>
343              <li>Append a <code class=char>U+0029</code>
344              <code class=charname>RIGHT PARENTHESIS</code>
345              (<code class=char>)</code>) character
346              to <var>result</var>.</li>
347              </ol>
348            </dd>
349          <dt>If name of the pseudo$B!>(Bclass is either <code>nth-child</code>,
350          <code>nth-last-child</code>, <code>nth-of-type</code>, or
351          <code>nth-last-of-type</code></dt>
352            <dd>
353              <ol>
354              <li>Append a <code class=char>U+0028</code> <code class=charname>LEFT
355              PARENTHESIS</code> (<code class=char>(</code>) character
356              to <var>result</var>.</li>
357              <li>Append <span class=ed>@@ normalized</span>
358              integer <var>a</var> to <var>result</var>.
359              If the argument is a keyword <code>odd</code> or <code>even</code>,
360              <var>a</var> is <code>2</code>.  If <var>a</var> and
361              <code>n</code> is omitted, <var>a</var> is assumed as
362              <code>0</code>.  Otherwise, if <var>a</var> is omitted,
363              it is assumed as <code>1</code> (or <code>-1</code>,
364              if there is a <code class=char>U+002D</code>
365              <code class=charname>HYPHEN-MINUS</code> (<code class=char>-</code>)
366              character).</li>
367              <li>Append a <code class=char>U+006E</code>
368              <code class=charname>LATIN SMALL LETTER N</code>
369              (<code class=char>n</code>) character to <var>result</var>.</li>
370              <li>Append <span class=ed>@@ normalized</span>
371              integer <var>b</var> to <var>result</var>.
372              It <em class=rfc2119>MUST</em> be preceded by a sign,
373              either <code class=char>U+002B</code> <code class=charname>PLUS
374              SIGN</code> (<code class=char>+</code>) or
375              <code class=char>U+002D</code>
376              <code class=charname>HYPHEN-MINUS</code> (<code class=char>-</code>)
377              character.  If the argument is a keyword <code>odd</code>,
378              <var>b</var> is <code>1</code>.  If the argument
379              is a keyword <code>even</code>, <var>b</var> is
380              <code>0</code>.  If <var>b</var> is omitted, it is assumed as
381              <code>0</code>.  The sign of <code>0</code>
382              <em class=rfc2119>MUST</em> be <code class=char>U+002B</code>
383              <code class=charname>PLUS SIGN</code>
384              (<code class=char>+</code>).</li>
385              <li>Append a <code class=char>U+0029</code>
386              <code class=charname>RIGHT PARENTHESIS</code>
387              (<code class=char>)</code>) character
388              to <var>result</var>.</li>
389              </ol>
390            </dd>
391          <dt>If the name of the pseudo$B!>(Bclass is <code>not</code></dt>
392            <dd>
393              <ol>
394                <li>Append a string of <code class=char>U+003A</code>
395                <code class=charname>COLON</code>, <code class=char>U+006E</code>
396                <code class=charname>LATIN SMALL LETTER N</code>,
397                <code class=char>U+006F</code> <code class=charname>LATIN
398                SMALL LETTER O</code>, <code class=char>U+0074</code>
399                <code class=charname>LATIN SMALL LETTER T</code>, and
400                <code class=char>U+0028</code> <code class=charname>LEFT
401                PARENTHESIS</code> (<code>:not(</code>), followed by a
402                <a href="#newline">newline</a>, to <var>result</var>.</li>
403                <li>Append four <code class=char>U+0020</code>
404                <code class=charname>SPACE</code> characters to
405                <var>result</var>.</li>
406                <li>Append four <code class=char>U+0020</code>
407                <code class=charname>SPACE</code> characters to
408                <var>result</var> again.</li>
409                <li><a href="#algorithm-serialize-a-simple-selector">Serialize
410                the simple selector specified as the argument to the
411                <code>not</code> pseudo$B!>(Bclass</a>.</li>
412                <li>Append a <a href="#newline">newline</a> to
413                <var>result</var>.</li>
414                <li>Append four <code class=char>U+0020</code>
415                <code class=charname>SPACE</code> characters to
416                <var>result</var>.</li>
417                <li>Append a <code class=char>U+0029</code>
418                <code class=charname>RIGHT PARENTHESIS</code>
419                (<code class=char>)</code>) character
420                to <var>result</var>.</li>
421              </ol>
422            </dd>
423          </dl>
424        </li>
425        </ol>
426      </dd>
427    <dt>If <var>ss</var> is a pseudo$B!>(Belement</dt>
428      <dd>
429        <ol>
430        <li>Append two <code class=char>U+003A</code>
431        <code class=charname>COLON</code> characters (<code>::</code>)
432        to <var>result</var>.</li>
433        <li>Append the <span class=ed>@@ normalized</span> name of the
434        pseudo$B!>(Belement to <var>result</var>.</li>
435        <!-- For future version: append "(", arguments, ")", if any. -->
436        </ol>
437      </dd>
438    </dl>
439    
440    
441    <p>A <dfn id=newline title=newline>newline</dfn>
442    <em class=rfc2119>SHOULD</em> be represented as a
443    <code class=char>U+000A</code> <code class=charname>LINE FEED</code>
444    character.  However, depending on the context where
445    the <abbr title="Selectors Serialization Format for Testing">SSFT</abbr>
446    representation is in use, a sequence of
447    <code class=char>U+000D</code> <code class=charname>CARRIAGE RETURN</code>
448    followed by a <code class=char>U+000A</code>
449    <code class=charname>LINE FEED</code> (i.e. a
450    <code>CRLF</code> sequence) or a character
451    <code class=char>U+000D</code> <code class=charname>CARRIAGE RETURN</code>
452    <em class=rfc2119>MAY</em> be used as a <a href="#newline">newline</a> instead.
453    <a href="#newline">Newline</a> representations
454    <em class=rfc2119>SHOULD</em> be consistent in an
455    <abbr title="Selectors Serialization Format for Testing">SSFT</abbr>
456    representation.</p>
457    
458    <div class="note memo">
459    <p>Therefore, newlines must be normalized before
460    <abbr title="Selectors Serialization Format for Testing">SSFT</abbr>
461    representations are literally compared.</p>
462    </div>
463    
464  </div>  </div>
465    
466  <div class="section" id="parsing">  <div class="section" id="parsing">
467  <h2>Parsing  <h2>Parsing
468  <abbr title="Selectors Serialization Format for Testing">SFFT</abbr>  <abbr title="Selectors Serialization Format for Testing">SSFT</abbr>
469  Groups of Selectors</h2>  Groups of Selectors</h2>
470    
471  <p>Since <a href="#serializing">the serializing algorithm</a> is  <p>Since <a href="#serializing">the serializing algorithm</a> is
472  so designed that it always output a valid  so designed that it always output a valid
473  <a href="http://www.w3.org/TR/css3-selectors/#grouping">group of  <a href="http://www.w3.org/TR/css3-selectors/#grouping">group of
474  selectors</a>, no special parser for  selectors</a>, no special parser for the
475  <abbr title="Selectors Serialization Format for Testing">SFFT</abbr>  <abbr title="Selectors Serialization Format for Testing">SSFT</abbr>
476  is necessary.  Any conforming  representation is necessary.  Any conforming parser for
477  <a href="http://www.w3.org/TR/css3-selectors/#grouping">group of  <a href="http://www.w3.org/TR/css3-selectors/#grouping">groups of
478  selectors</a> parser <em class=rfc2119>MAY</em> be used  selectors</a> <em class=rfc2119>MAY</em> be used
479  to parse <abbr title="Selectors Serialization Format for Testing">SFFT</abbr>  to parse <abbr title="Selectors Serialization Format for Testing">SSFT</abbr>
480  groups of selectors.</p>  representations of groups of selectors.</p>
481  </div>  </div>
482    
483  <div class="section" id="examples">  <div class="section" id="examples">
484  <h2>Examples</h2>  <h2>Examples</h2>
485    
486  <p>This section is <em>informative</em>.</p>  <p class=section-info>This section is <em>non$B!>(Bnormative</em>.</p>
487    
488  <div class="ed issue">  <div class="ed issue">
489  <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>,
490  by choosing <q>Selectors</q> radio button.</a></p>  by choosing <q>Selectors</q> radio button.</p>
491    
492  <div class="example figure block">  <div class="example figure block">
493  <div class="caption">...</div>  <div class="caption">...</div>
# Line 217  by choosing <q>Selectors</q> radio butto Line 500  by choosing <q>Selectors</q> radio butto
500  </div>  </div>
501    
502  <div id="references" class="section reference">  <div id="references" class="section reference">
503  <h2>References</h1>  <h2>References</h2>
504    
505  <div id="normative-references" class="section normative reference">  <div id="normative-references" class="section normative reference">
506  <h3>Normative References</h3>  <h3>Normative References</h3>
# Line 228  by choosing <q>Selectors</q> radio butto Line 511  by choosing <q>Selectors</q> radio butto
511    <abbr>RFCs</abbr> to Indicate Requirement Levels</a></cite>,    <abbr>RFCs</abbr> to Indicate Requirement Levels</a></cite>,
512    <abbr title="Internet Engineering Task Force">IETF</abbr>    <abbr title="Internet Engineering Task Force">IETF</abbr>
513    <a href="urn:ietf:bcp:14"><abbr title="Best Current Practice">BCP</abbr>    <a href="urn:ietf:bcp:14"><abbr title="Best Current Practice">BCP</abbr>
514    14</a>, <abbr title="Request for Comments">RFC</abbr> 2119, March 1997.    14</a>, <abbr title="Request for Comments">RFC</abbr> 2119,
515      <time datetime=1997-03>March 1997</time>.
516    This version of the specification is referenced</dd>    This version of the specification is referenced</dd>
517  <dt id=ref-SELECTORS>SELECTORS</dt>  <dt id=ref-SELECTORS>SELECTORS</dt>
518    <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>,
519    <abbr title="World Wide Web Consortium">W3C</abbr> Working Draft,    <abbr title="World Wide Web Consortium">W3C</abbr> Working Draft,
520    15 December 2005.  Work in progress.      <time datetime=2005-12-15>15 December 2005</time>.  Work in progress.  
521    <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>
522    of the specification is referenced.</dd>    of the specification is referenced.</dd>
523  </dl>  </dl>
524  </div>  </div>
525    
526  <div id="informative-references" class="section informative reference">  <div id="informative-references" class="section informative reference">
527  <h3>Informative References</h3>  <h3>Non$B!>(Bnormative References</h3>
528    
529  <dl>  <dl>
530    <dt id=ref-CSS>CSS</dt>
531      <dd><cite><a href="http://www.w3.org/TR/2007/CR-CSS21-20070719">Cascading
532      Style Sheets Level 2 Revision 1 (<abbr>CSS</abbr> 2.1)
533      Specification</a></cite>,
534      <abbr title="World Wide Web Consortium">W3C</abbr> Candidate
535      Recommendation, <time datetime=2007-07-19>19 July 2007</time>.
536      Work in progress.  The latest version of the specification is
537      available at
538      <code class=URI>&lt;<a href="http://www.w3.org/TR/CSS21">http://www.w3.org/TR/CSS21</a>></code>.</dd>
539  <dt id=ref-CSSOM>CSSOM</dt>  <dt id=ref-CSSOM>CSSOM</dt>
540    <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    <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
541    Style Sheets Object Model (<abbr>CSSOM</abbr>)</a></cite>,    Style Sheets Object Model (<abbr>CSSOM</abbr>)</a></cite>,
542    <abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft,    <abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft,
543    18 June 2007.  Work in progress.  The latest Editor's Draft    <time datetime=2007-06-18>18 June 2007</time>.  Work in progress.
544    of the specification is available at    The latest Editor's Draft of the specification is available at
545    <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>    <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>
546    <dt id=ref-HTML5>HTML5</dt>
547      <dd><cite><a href="http://whatwg.org/html5"><abbr>HTML</abbr> 5</a></cite>,
548      <abbr title="Web Hypertext Application Technology Working Group">WHATWG</abbr>
549      Working Draft.  Work in progress.</dd>
550    <dt id=ref-SAPI>SAPI</dt>
551      <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>,
552      <abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft,
553      <time datetime=2007-08-29>29 August 2007</time>.  Work in progress.
554      The latest Editor's Draft of the specification is available at
555      <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>.
556      The latest published version of the specification is available at
557      <code class=URI>&lt;<a href="http://www.w3.org/TR/selectors-api/">http://www.w3.org/TR/selectors-api/</a>></code>.</dd>
558    <dt id=XBL2>XBL2</dt>
559      <dd><cite><a href="http://www.mozilla.org/projects/xbl/xbl2.html"><abbr>XBL</abbr>
560      2.0</a></cite>, Mozilla.org, <time datetime=2007-03-15>15 Mar 2007</time>.
561      Work in progress.  The latest
562      <abbr title="World Wide Web Consortium">W3C</abbr>$B!>(Bpublished
563      version of the specification is available at
564      <code class=URI>&lt;<a href="http://www.w3.org/TR/xbl/">http://www.w3.org/TR/xbl/</a>></code>.</dd>
565  </dl>  </dl>
566  </div>  </div>
567    

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.9

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24