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

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.10

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24