/[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.6 by wakaba, Tue Oct 2 10:13:58 2007 UTC revision 1.7 by wakaba, Sun Oct 7 08:50:13 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 <time datetime=2007-10-02>2 October 2007</time></h2>  <h2>Working Draft <time datetime=2007-10-07>7 October 2007</time></h2>
14    
15  <dl class="versions-uri">  <dl class="versions-uri">
16  <dt>This Version</dt>  <dt>This Version</dt>
# Line 80  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>  <p class=section-info>This section is <em>non$B!>(Bnormative</em>.</p>
84    
85  <p>Selectors  <p>Selectors
86  <cite class="bibref normative">[<a href="#ref-SELECTORS">SELECTORS</a>]</cite>  <cite class="bibref normative">[<a href="#ref-SELECTORS">SELECTORS</a>]</cite>
# Line 127  document are to be interpreted as descri Line 127  document are to be interpreted as descri
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. -->  <!-- Strictly speaking the paragraph below is not part of terminology. -->
130  <p>All examples and notes in this specification are non-normative,  <p>All examples and notes in this specification are non$B!>(Bnormative,
131  as are all sections explicitly marked non-normative.  Everything  as are all sections explicitly marked non$B!>(Bnormative.  Everything
132  else in this specification is normative.</p>  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 140  else in this specification is normative. Line 145  else in this specification is normative.
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><dfn id=newline title=newline>Newline</dfn> is
149  <code class=charname>LINE FEED</code> <span class=ed>or  <code class=char>U+000A</code> <code class=charname>LINE FEED</code>
150  U+000D U+000A or U+000A ??</span>.</p>  <span class=ed>or U+000D U+000A or U+000A ??</span>.</p>
151    
152  <!-- TODO: link terms to Selectors -->  <!-- TODO: link terms to Selectors -->
153    
154  <p>To <dfn id=algorithm-serialize-a-group-of-selectors>serialize a group of  <p>To
155  selectors</dfn> (<dfn id=var-gs><var>gs</var></dfn>):</p>  <dfn id=algorithm-serialize-a-group-of-selectors title="serialize a group of selectors">serialize
156    a group of selectors (<dfn id=var-gs><var>gs</var></dfn>)</dfn>:</p>
157  <ol>  <ol>
158  <li>Let <dfn id=var-result><var>result</var></dfn> an empty string.</li>  <li>Let <dfn id=var-result><var>result</var></dfn> an empty string.</li>
159  <li>For each selector (<dfn id=var-selector><var>selector</var></dfn>) in  <li>For each selector (<dfn id=var-selector><var>selector</var></dfn>) in
# Line 155  selectors</dfn> (<dfn id=var-gs><var>gs< Line 161  selectors</dfn> (<dfn id=var-gs><var>gs<
161    <ol>    <ol>
162    <li>If <var>selector</var> is <em>not</em> the first selector    <li>If <var>selector</var> is <em>not</em> the first selector
163    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>
164    <code class=charname>COMMA</code> followed by a    <code class=charname>COMMA</code> (<code class=char>,</code>) followed by a
165    <a href="#newline">newline</a> to <var>result</var>.</li>    <a href="#newline">newline</a> to <var>result</var>.</li>
166    <li>Append four <code class=char>U+0020</code>    <li>Append four <code class=char>U+0020</code>
167    <code class=charname>SPACE</code> characters to <var>result</var>.</li>    <code class=charname>SPACE</code> characters to <var>result</var>.</li>
# Line 179  selectors</dfn> (<dfn id=var-gs><var>gs< Line 185  selectors</dfn> (<dfn id=var-gs><var>gs<
185            <dt>If <var>c</var> is child combinator            <dt>If <var>c</var> is child combinator
186            (<code class=char>></code>)</dt>            (<code class=char>></code>)</dt>
187              <dd>Append a <code class=char>U+003E</code>              <dd>Append a <code class=char>U+003E</code>
188              <code class=charname>GREATER-THAN SIGN</code> character to              <code class=charname>GREATER-THAN SIGN</code>
189              <var>result</var>.</dd>              (<code class=char>></code>) character to <var>result</var>.</dd>
190            <dt>If <var>c</var> is adjacent sibling combinator            <dt>If <var>c</var> is adjacent sibling combinator
191            (<code class=char>+</code>)</dt>            (<code class=char>+</code>)</dt>
192              <dd>Append a <code class=char>U+002B</code>              <dd>Append a <code class=char>U+002B</code>
193              <code class=charname>PLUS SIGN</code> character to              <code class=charname>PLUS SIGN</code> (<code class=char>+</code>)
194              <var>result</var>.</dd>              character to <var>result</var>.</dd>
195            <dt>If <var>c</var> is general sibling combinator            <dt>If <var>c</var> is general sibling combinator
196            (<code class=char>~</code>)</dt>            (<code class=char>~</code>)</dt>
197              <dd>Append a <code class=char>U+007E</code>              <dd>Append a <code class=char>U+007E</code>
198              <code class=charname>TILDE</code> character to              <code class=charname>TILDE</code> (<code class=char>~</code>)
199              <var>result</var>.</dd>              character to <var>result</var>.</dd>
200            </dl>            </dl>
201          </li>          </li>
202          <li>Append a <code class=char>U+0020</code>          <li>Append a <code class=char>U+0020</code>
# Line 206  selectors</dfn> (<dfn id=var-gs><var>gs< Line 212  selectors</dfn> (<dfn id=var-gs><var>gs<
212  representation of the group of selectors.</li>  representation of the group of selectors.</li>
213  </ol>  </ol>
214    
215  <p>To <dfn id=algorithm-serialize-a-simple-selector>serialize a simple  <p>To
216  selector</dfn> (<dfn><var id=var-ss>ss</var></dfn>):</p>  <dfn id=algorithm-serialize-a-simple-selector title="serialize a simple selector">serialize
217    a simple selector (<dfn><var id=var-ss>ss</var></dfn>)</dfn>:</p>
218  <dl class=switch>  <dl class=switch>
219  <dt>If <var>ss</var> is a type or universal selector</dt>  <dt>If <var>ss</var> is a type or universal selector</dt>
220    <dd><dl class=switch>    <dd>
221    <dt>If a namespace URI is specified (via namespace prefix, or      <ol>
222    by omitting namespace prefix where a default namespace is specified)</dt>      <li>
223      <dd class="ed">@@</dd>        <dl class=switch>
224    <dt>If the null namespace is specified (by zero$B!>(Blength namespace        <dt>If a namespace URI is specified (via namespace prefix, or
225    prefix)</dt>        by omitting namespace prefix where a default namespace is specified)</dt>
226      <dd>Return a <code class=char>U+007C</code> <code class=charname>VERTICAL          <dd class="ed">@@</dd>
227      BAR</code> character, followed by either local name (if <var>ss</var>        <dt>If the null namespace is specified (by zero$B!>(Blength namespace
228      is a type selector) or a <code class=char>U+002A</code>        prefix)</dt>
229      <code class=charname>ASTERISK</code> character (if <var>ss</var>          <dd>Append a <code class=char>U+007C</code>
230      is a universal selector).</dd>          <code class=charname>VERTICAL BAR</code> (<code class=char>|</code>)
231    <dt>If no namespace is specified (by namespace prefix <code>*</code>,          character to <var>result</var>.</dd>
232    or by omitting namespace prefix where no default namespace is specified)</dt>        <dt>If no namespace is specified (by namespace prefix <code>*</code>,
233      <dd>Return a <code class=char>U+002A</code>        or by omitting namespace prefix where no default namespace is
234      <code class=charname>ASTERISK</code> character, followed by a        specified)</dt>
235      <code class=char>U+007C</code> <code class=charname>VERTICAL BAR</code>          <dd>Append a <code class=char>U+002A</code>
236      character, followed by either local name (if <var>ss</var>          <code class=charname>ASTERISK</code> (<code class=char>*</code>)
237      is a type selector) or a <code class=char>U+002A</code>          character, followed by a <code class=char>U+007C</code>
238      <code class=charname>ASTERISK</code> character (if <var>ss</var>          <code class=charname>VERTICAL BAR</code> (<code class=char>|</code>)
239      is a universal selector).</dd>          character, to <var>result</var>.</dd>
240    </dl></dd>        </dl>
241  <dt class=ed>@@</dt>      </li>
242        <li>If <var>ss</var> is a type selector, append the
243        <span class=ed>@@ normalized</span> local name to <var>result</var>.</li>
244        <li>If <var>ss</var> is a universal selector, append
245        a <code class=char>U+002A</code> <code class=charname>ASTERISK</code>
246        (<code class=char>*</code>) character to <var>result</var>.</li>
247        </ol>
248      </dd>
249    <dt>If <var>ss</var> is an attribute selector</dt>
250      <dd class=ed>@@</dd>
251    <dt>If <var>ss</var> is a class selector</dt>
252      <dd>Append a <code class=char>U+002E</code> <code class=charname>FULL
253      STOP</code> (<code class=char>.</code>) character, followed
254      by <span class=ed>@@ normalized</span> class name,
255      <var>result</var>.</dd>
256    <dt>If <var>ss</var> is an <abbr>ID</abbr> selector</dt>
257      <dd>Append a <code class=char>U+0023</code> <code class=charname>NUMBER
258      SIGN</code> (<code class=char>#</code>) character, followed
259      by <span class=ed>@@ normalized</span> <abbr>ID</abbr>,
260      to <var>result</var>.</dd>
261    <dt>If <var>ss</var> is a pseudo$B!>(Bclass selector</dt>
262      <dd>
263        <ol>
264        <li>Append a <code class=char>U+003A</code>
265        <code class=charname>COLON</code> (<code class=char>:</code>) character
266        to <var>result</var>.</li>
267        <li>Append <span class=ed>@@ normalized</span>
268        pseudo$B!>(Bclass name to <var>result</var>.</li>
269        <li>Append any arguments as following:
270          <dl class=switch>
271          <dt>If pseudo$B!>(Bclass name is <code>lang</code></dt>
272            <dd>
273              <ol>
274              <li>Append a <code class=char>U+0028</code> <code class=charname>LEFT
275              PARENTHESIS</code> (<code class=char>(</code>) character
276              to <var>result</var>.</li>
277              <li>Append <span class=ed>@@ normalized</span>
278              language tag (the argument) to <var>result</var>.</li>
279              <li>Append a <code class=char>U+0029</code>
280              <code class=charname>RIGHT PARENTHESIS</code>
281              (<code class=char>)</code>) character
282              to <var>result</var>.</li>
283              </ol>
284            </dd>
285          <dt>If pseudo$B!>(Bclass name is <code>-manakai-contains</code></dt>
286            <dd>
287              <ol>
288              <li>Append a <code class=char>U+0028</code> <code class=charname>LEFT
289              PARENTHESIS</code> (<code class=char>(</code>) character
290              to <var>result</var>.</li>
291              <li>Append <span class=ed>@@ normalized</span>
292              string (the argument) to <var>result</var>.</li>
293              <li>Append a <code class=char>U+0029</code>
294              <code class=charname>RIGHT PARENTHESIS</code>
295              (<code class=char>)</code>) character
296              to <var>result</var>.</li>
297              </ol>
298            </dd>
299          <dt>If pseudo$B!>(Bclass name is <code>nth-child</code>,
300          <code>nth-last-child</code>, <code>nth-of-type</code>, or
301          <code>nth-last-of-type</code></dt>
302            <dd>
303              <ol>
304              <li>Append a <code class=char>U+0028</code> <code class=charname>LEFT
305              PARENTHESIS</code> (<code class=char>(</code>) character
306              to <var>result</var>.</li>
307              <li>Append <span class=ed>@@ normalized</span>
308              integer <var>a</var> to <var>result</var>.
309              If the argument is a keyword <code>odd</code> or <code>even</code>,
310              <var>a</var> is <code>2</code>.  If <var>a</var> and
311              <code>n</code> is omitted, <var>a</var> is assumed as
312              <code>0</code>.  Otherwise, if <var>a</var> is omitted,
313              it is assumed as <code>1</code> (or <code>-1</code>,
314              if there is a <code class=char>U+002D</code>
315              <code class=charname>HYPHEN-MINUS</code> (<code class=char>-</code>)
316              character).</li>
317              <li>Append a <code class=char>U+006E</code>
318              <code class=charname>LATIN SMALL LETTER N</code>
319              (<code class=char>n</code>) character to <var>result</var>.</li>
320              <li>Append <span class=ed>@@ normalized</span>
321              integer <var>b</var> to <var>result</var>.
322              It <em class=rfc2119>MUST</em> be preceded by a sign,
323              either <code class=char>U+002B</code> <code class=charname>PLUS
324              SIGN</code> (<code class=char>+</code>) or
325              <code class=char>U+002D</code>
326              <code class=charname>HYPHEN-MINUS</code> (<code class=char>-</code>)
327              character.  If the argument is a keyword <code>odd</code>,
328              <var>b</var> is <code>1</code>.  If the argument
329              is a keyword <code>even</code>, <var>b</var> is
330              <code>0</code>.  If <var>b</var> is omitted, it is assumed as
331              <code>0</code>.  The sign of <code>0</code>
332              <em class=rfc2119>MUST</em> be <code class=char>U+002B</code>
333              <code class=charname>PLUS SIGN</code>
334              (<code class=char>+</code>).</li>
335              <li>Append a <code class=char>U+0029</code>
336              <code class=charname>RIGHT PARENTHESIS</code>
337              (<code class=char>)</code>) character
338              to <var>result</var>.</li>
339              </ol>
340            </dd>
341          <dt>If pseudo$B!>(Bclass name is <code>not</code></dt>
342            <dd class=ed>@@</dd>
343          </dl>
344        </li>
345        </ol>
346      </dd>
347    <dt>If <var>ss</var> is a pseudo$B!>(Belement</dt>
348      <dd>
349        <ol>
350        <li>Append two <code class=char>U+003A</code>
351        <code class=charname>COLON</code> characters (<code>::</code>)
352        to <var>result</var>.</li>
353        <li>Append <span class=ed>@@ normalized</span>
354        pseudo$B!>(Belement name to <var>result</var>.</li>
355        <!-- For future version: append "(", arguments, ")", if any. -->
356        </ol>
357      </dd>
358  </dl>  </dl>
359    
360  </div>  </div>
# Line 256  groups of selectors.</p> Line 379  groups of selectors.</p>
379  <div class="section" id="examples">  <div class="section" id="examples">
380  <h2>Examples</h2>  <h2>Examples</h2>
381    
382  <p class=section-info>This section is <em>non-normative</em>.</p>  <p class=section-info>This section is <em>non$B!>(Bnormative</em>.</p>
383    
384  <div class="ed issue">  <div class="ed issue">
385  <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>,
386  by choosing <q>Selectors</q> radio button.</a></p>  by choosing <q>Selectors</q> radio button.</p>
387    
388  <div class="example figure block">  <div class="example figure block">
389  <div class="caption">...</div>  <div class="caption">...</div>
# Line 273  by choosing <q>Selectors</q> radio butto Line 396  by choosing <q>Selectors</q> radio butto
396  </div>  </div>
397    
398  <div id="references" class="section reference">  <div id="references" class="section reference">
399  <h2>References</h1>  <h2>References</h2>
400    
401  <div id="normative-references" class="section normative reference">  <div id="normative-references" class="section normative reference">
402  <h3>Normative References</h3>  <h3>Normative References</h3>
# Line 297  by choosing <q>Selectors</q> radio butto Line 420  by choosing <q>Selectors</q> radio butto
420  </div>  </div>
421    
422  <div id="informative-references" class="section informative reference">  <div id="informative-references" class="section informative reference">
423  <h3>Non-normative References</h3>  <h3>Non$B!>(Bnormative References</h3>
424    
425  <dl>  <dl>
426  <dt id=ref-CSS>CSS</dt>  <dt id=ref-CSS>CSS</dt>

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

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24