597 lines
32 KiB
Plaintext
597 lines
32 KiB
Plaintext
!-
|
||
<div class=Section1>
|
||
|
||
<h1>Fit Spe<st1:PersonName>c</st1:PersonName>ifi<st1:PersonName>c</st1:PersonName>ation,
|
||
v1.1</h1>
|
||
|
||
<p> </p>
|
||
|
||
<p>Fit is a tool for improving <st1:PersonName>c</st1:PersonName>ommuni<st1:PersonName>c</st1:PersonName>ation
|
||
between <st1:PersonName>c</st1:PersonName>ustomers, programmers, and
|
||
testers. It allows the <st1:PersonName>c</st1:PersonName>ustomer to des<st1:PersonName>c</st1:PersonName>ribe
|
||
his or her requirements in a way that <st1:PersonName>c</st1:PersonName>an be <st1:PersonName>c</st1:PersonName>he<st1:PersonName>c</st1:PersonName>ked
|
||
against the a<st1:PersonName>c</st1:PersonName>tual program.</p>
|
||
|
||
<p> </p>
|
||
|
||
<p>The te<st1:PersonName>c</st1:PersonName>hnique Fit uses is <st1:PersonName>c</st1:PersonName>alled
|
||
"spe<st1:PersonName>c</st1:PersonName>ifi<st1:PersonName>c</st1:PersonName>ation
|
||
by example." It allows <st1:PersonName>c</st1:PersonName>ustomers to
|
||
<st1:PersonName>c</st1:PersonName>reate a do<st1:PersonName>c</st1:PersonName>ument
|
||
with tables that des<st1:PersonName>c</st1:PersonName>ribe spe<st1:PersonName>c</st1:PersonName>ifi<st1:PersonName>c</st1:PersonName>
|
||
examples of how the software should work. Fit looks at the do<st1:PersonName>c</st1:PersonName>ument
|
||
and <st1:PersonName>c</st1:PersonName>he<st1:PersonName>c</st1:PersonName>ks to
|
||
see if the software works the way the tables say it should.</p>
|
||
|
||
<p> </p>
|
||
|
||
<p>Fit uses small programs, <st1:PersonName>c</st1:PersonName>alled
|
||
"fixtures," to <st1:PersonName>c</st1:PersonName>onne<st1:PersonName>c</st1:PersonName>t
|
||
tables to software. Programmers on the development team are responsible
|
||
for <st1:PersonName>c</st1:PersonName>reating those fixtures. Customers
|
||
are responsible for <st1:PersonName>c</st1:PersonName>reating the tables.
|
||
Testers work with both groups of people to help make sure that all situations
|
||
are adequately <st1:PersonName>c</st1:PersonName>overed. The three groups
|
||
work together, intera<st1:PersonName>c</st1:PersonName>tively, to <st1:PersonName>c</st1:PersonName>reate
|
||
great software.</p>
|
||
|
||
<p> </p>
|
||
|
||
<p>This do<st1:PersonName>c</st1:PersonName>ument, and the do<st1:PersonName>c</st1:PersonName>uments
|
||
it referen<st1:PersonName>c</st1:PersonName>es, des<st1:PersonName>c</st1:PersonName>ribes
|
||
Fit using spe<st1:PersonName>c</st1:PersonName>ifi<st1:PersonName>c</st1:PersonName>ation
|
||
by example. It is, itself, an example of how to use Fit.<span
|
||
style='mso-spacerun:yes'> </span>If all the pass <st1:PersonName>c</st1:PersonName>ells
|
||
in the table below are <st1:PersonName>c</st1:PersonName>olored green, then you
|
||
<st1:PersonName>c</st1:PersonName>an be <st1:PersonName>c</st1:PersonName>onfident
|
||
that your <st1:PersonName>c</st1:PersonName>opy of Fit meets this spe<st1:PersonName>c</st1:PersonName>ifi<st1:PersonName>c</st1:PersonName>ation.</p>
|
||
|
||
<p><o:p> </o:p></p>
|
||
|
||
<p>Using Fit to test itself, as we do here, leads to <st1:PersonName>c</st1:PersonName>ir<st1:PersonName>c</st1:PersonName>ular
|
||
logi<st1:PersonName>c</st1:PersonName> that <st1:PersonName>c</st1:PersonName>an
|
||
be unraveled more easily by the <st1:PersonName>c</st1:PersonName>omputer than
|
||
by humans.<span style='mso-spacerun:yes'> </span>To avoid a heada<st1:PersonName>c</st1:PersonName>he,
|
||
ignore the fa<st1:PersonName>c</st1:PersonName>t that this do<st1:PersonName>c</st1:PersonName>ument
|
||
is written in HTML or that the tables use Fit fixtures.<span
|
||
style='mso-spacerun:yes'> </span>Instead, just think of it as a regular do<st1:PersonName>c</st1:PersonName>ument--one
|
||
that happens to be <st1:PersonName>c</st1:PersonName>olored green and red.</p>
|
||
|
||
<p><o:p> </o:p></p>
|
||
|
||
<p>Fun<st1:PersonName>c</st1:PersonName>tional <st1:PersonName>c</st1:PersonName>hanges
|
||
to <span class=GramE>Fit</span> that are new in this version of the spe<st1:PersonName>c</st1:PersonName>
|
||
are <span style='background:yellow;mso-highlight:yellow'>highlighted yellow</span>.<span
|
||
style='mso-spacerun:yes'> </span>Layout, formatting, and other non-fun<st1:PersonName>c</st1:PersonName>tional
|
||
<st1:PersonName>c</st1:PersonName>hanges to the spe<st1:PersonName>c</st1:PersonName>ifi<st1:PersonName>c</st1:PersonName>ation
|
||
are not highlighted.</p>
|
||
|
||
<p><o:p> </o:p></p>
|
||
|
||
<h2>Details</h2>
|
||
|
||
<p> </p>
|
||
|
||
<p>Fit knows how to do these things:</p>
|
||
|
||
<p> </p>
|
||
|
||
<table class=MsoTableGrid border=1 cellspacing=0 cellpadding=0
|
||
style='border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
|
||
mso-yfti-tbllook:480;mso-padding-alt:0in 5.4pt 0in 5.4pt;mso-border-insideh:
|
||
.5pt solid windowtext;mso-border-insidev:.5pt solid windowtext'>
|
||
<tr style='mso-yfti-irow:0'>
|
||
<td valign=top style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><span class=SpellE><span style='color:silver'>fat.Referen</span></span><st1:PersonName><span
|
||
class=SpellE><span style='color:silver'>c</span></span></st1:PersonName><span
|
||
class=SpellE><span style='color:silver'>eFixture</span></span><span
|
||
style='color:silver'><o:p></o:p></span></p>
|
||
</td>
|
||
<td valign=top style='border:solid windowtext 1.0pt;border-left:none;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><o:p> </o:p></p>
|
||
</td>
|
||
<td valign=top style='border:solid windowtext 1.0pt;border-left:none;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><o:p> </o:p></p>
|
||
</td>
|
||
<td valign=top style='border:solid windowtext 1.0pt;border-left:none;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><o:p> </o:p></p>
|
||
</td>
|
||
</tr>
|
||
<tr style='mso-yfti-irow:1'>
|
||
<td valign=top style='border:solid windowtext 1.0pt;border-top:none;
|
||
mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><b>Des</b><st1:PersonName><b>c</b></st1:PersonName><b>ription</b></p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><b>Lo</b><st1:PersonName><b>c</b></st1:PersonName><b>ation</b></p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><b>Result()</b></p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><b><i style='mso-bidi-font-style:normal'>Note<o:p></o:p></i></b></p>
|
||
</td>
|
||
</tr>
|
||
<tr style='mso-yfti-irow:2'>
|
||
<td valign=top style='border:solid windowtext 1.0pt;border-top:none;
|
||
mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p>Parse HTML do<st1:PersonName>c</st1:PersonName>uments</p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><a href="parse.html">parse.html</a></p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p>pass</p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><o:p> </o:p></p>
|
||
</td>
|
||
</tr>
|
||
<tr style='mso-yfti-irow:3'>
|
||
<td valign=top style='border:solid windowtext 1.0pt;border-top:none;
|
||
mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p>Modify HTML do<st1:PersonName>c</st1:PersonName>uments</p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><a href="annotation.html">annotation.html</a></p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p>pass</p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><o:p> </o:p></p>
|
||
</td>
|
||
</tr>
|
||
<tr style='mso-yfti-irow:4'>
|
||
<td valign=top style='border:solid windowtext 1.0pt;border-top:none;
|
||
mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p>Interpret tables using fixtures<span style='mso-tab-count:1'> </span></p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><a href="fixtures.html">fixtures.html</a></p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><o:p> </o:p></p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><i style='mso-bidi-font-style:normal'>in</i><st1:PersonName><i
|
||
style='mso-bidi-font-style:normal'>c</i></st1:PersonName><i
|
||
style='mso-bidi-font-style:normal'>omplete<o:p></o:p></i></p>
|
||
</td>
|
||
</tr>
|
||
<tr style='mso-yfti-irow:5;mso-yfti-lastrow:yes'>
|
||
<td valign=top style='border:solid windowtext 1.0pt;border-top:none;
|
||
mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p>Provide a <st1:PersonName>c</st1:PersonName>ommand-line interfa<st1:PersonName>c</st1:PersonName>e</p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><st1:PersonName>c</st1:PersonName>li.html</p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><o:p> </o:p></p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><i style='mso-bidi-font-style:normal'>in</i><st1:PersonName><i
|
||
style='mso-bidi-font-style:normal'>c</i></st1:PersonName><i
|
||
style='mso-bidi-font-style:normal'>omplete<o:p></o:p></i></p>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<p><o:p> </o:p></p>
|
||
|
||
<p>Cli<st1:PersonName>c</st1:PersonName>k the links for details about how Fit
|
||
does ea<st1:PersonName>c</st1:PersonName>h of these things.<span
|
||
style='mso-spacerun:yes'> </span>This spe<st1:PersonName>c</st1:PersonName>ifi<st1:PersonName>c</st1:PersonName>ation
|
||
is a work in progress and the fixtures and <st1:PersonName>c</st1:PersonName>ommand-line
|
||
interfa<st1:PersonName>c</st1:PersonName>e portion are in<st1:PersonName>c</st1:PersonName>omplete.<span
|
||
style='mso-spacerun:yes'> </span>Implementers: you may ignore these se<st1:PersonName>c</st1:PersonName>tions
|
||
for now.</p>
|
||
|
||
<div style='border:none;border-bottom:solid windowtext 1.0pt;padding:0in 0in 1.0pt 0in'>
|
||
|
||
<p><o:p> </o:p></p>
|
||
|
||
<p>Fit is available for many programming languages.<span
|
||
style='mso-spacerun:yes'> </span>The se<st1:PersonName>c</st1:PersonName>tions
|
||
above apply to all implementations of Fit.<span style='mso-spacerun:yes'>
|
||
</span>Extensions spe<st1:PersonName>c</st1:PersonName>ifi<st1:PersonName>c</st1:PersonName>
|
||
to this implementation of Fit are des<st1:PersonName>c</st1:PersonName>ribed
|
||
here:</p>
|
||
|
||
<p><o:p> </o:p></p>
|
||
|
||
<table class=MsoTableGrid border=1 cellspacing=0 cellpadding=0
|
||
style='border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
|
||
mso-yfti-tbllook:480;mso-padding-alt:0in 5.4pt 0in 5.4pt;mso-border-insideh:
|
||
.5pt solid windowtext;mso-border-insidev:.5pt solid windowtext'>
|
||
<tr style='mso-yfti-irow:0'>
|
||
<td valign=top style='border:solid windowtext 1.0pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><span class=SpellE><span style='color:silver'>fat.Referen</span></span><st1:PersonName><span
|
||
class=SpellE><span style='color:silver'>c</span></span></st1:PersonName><span
|
||
class=SpellE><span style='color:silver'>eFixture</span></span><span
|
||
style='color:silver'><o:p></o:p></span></p>
|
||
</td>
|
||
<td valign=top style='border:solid windowtext 1.0pt;border-left:none;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><o:p> </o:p></p>
|
||
</td>
|
||
<td valign=top style='border:solid windowtext 1.0pt;border-left:none;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><o:p> </o:p></p>
|
||
</td>
|
||
</tr>
|
||
<tr style='mso-yfti-irow:1'>
|
||
<td valign=top style='border:solid windowtext 1.0pt;border-top:none;
|
||
mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><b>Des</b><st1:PersonName><b>c</b></st1:PersonName><b>ription</b></p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><b>Lo</b><st1:PersonName><b>c</b></st1:PersonName><b>ation</b></p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><b>Result()</b></p>
|
||
</td>
|
||
</tr>
|
||
<tr style='mso-yfti-irow:2;mso-yfti-lastrow:yes'>
|
||
<td valign=top style='border:solid windowtext 1.0pt;border-top:none;
|
||
mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p>Implementation-spe<st1:PersonName>c</st1:PersonName>ifi<st1:PersonName>c</st1:PersonName>
|
||
extensions</p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><a href="extensions.html">extensions.html</a></p>
|
||
</td>
|
||
<td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;
|
||
border-right:solid windowtext 1.0pt;mso-border-top-alt:solid windowtext .5pt;
|
||
mso-border-left-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt;
|
||
padding:0in 5.4pt 0in 5.4pt'>
|
||
<p>pass</p>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<p><o:p> </o:p></p>
|
||
|
||
<h2><a name="_Toc90928256">Errata</a></h2>
|
||
|
||
<p class=MsoNormal><o:p> </o:p></p>
|
||
|
||
<p class=MsoNormal>Known errors and omissions, to be fixed in a future version:</p>
|
||
|
||
<p class=MsoNormal><o:p> </o:p></p>
|
||
|
||
<ul style='margin-top:0in' type=disc>
|
||
<li class=MsoNormal style='mso-list:l4 level1 lfo3;tab-stops:list .5in'>The
|
||
<<span class=SpellE>wiki</span>> tag is not spe<st1:PersonName>c</st1:PersonName>ified.</li>
|
||
<li class=MsoNormal style='mso-list:l4 level1 lfo3;tab-stops:list .5in'>Parsing-related
|
||
errors are des<st1:PersonName>c</st1:PersonName>ribed but the errors
|
||
arent spe<st1:PersonName>c</st1:PersonName>ified.</li>
|
||
<li class=MsoNormal style='mso-list:l4 level1 lfo3;tab-stops:list .5in'>Nested
|
||
tables are not spe<st1:PersonName>c</st1:PersonName>ified</li>
|
||
<li class=MsoNormal style='mso-list:l4 level1 lfo3;tab-stops:list .5in'>Argument
|
||
list (next to fixture name) is not spe<st1:PersonName>c</st1:PersonName>ified.</li>
|
||
<li class=MsoNormal style='mso-list:l4 level1 lfo3;tab-stops:list .5in'>Parser
|
||
<st1:PersonName>c</st1:PersonName>an handle any XML <span class=SpellE>heirar</span><st1:PersonName><span
|
||
class=SpellE>c</span></st1:PersonName><span class=SpellE>hy</span>, but
|
||
only <table>, <<span class=SpellE><span class=GramE>tr</span></span>>,
|
||
<td> is spe<st1:PersonName>c</st1:PersonName>ified.</li>
|
||
<li class=MsoNormal style='mso-list:l4 level1 lfo3;tab-stops:list .5in'>Files
|
||
are expe<st1:PersonName>c</st1:PersonName>ted to be CP1252, but this is
|
||
not spe<st1:PersonName>c</st1:PersonName>ified.</li>
|
||
</ul>
|
||
|
||
<h2><a name="_Toc90928257">To Do</a></h2>
|
||
|
||
<p><o:p> </o:p></p>
|
||
|
||
<p>To look at in a future release:</p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l4 level1 lfo3;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Why is info text <st1:PersonName>c</st1:PersonName>oming
|
||
out with a line break when this spe<st1:PersonName>c</st1:PersonName> is
|
||
run?<span style='mso-spacerun:yes'> </span>(Be<st1:PersonName>c</st1:PersonName>ause
|
||
Word <st1:PersonName>c</st1:PersonName>reates empty <st1:PersonName>c</st1:PersonName>ells
|
||
with this markup: <p>&<span class=SpellE><span class=GramE>nbsp</span></span><span
|
||
class=GramE>;</span></p>.<span style='mso-spacerun:yes'> </span><span
|
||
class=SpellE>A</span><st1:PersonName><span class=SpellE>c</span></st1:PersonName><st1:PersonName><span
|
||
class=SpellE>c</span></st1:PersonName><span class=SpellE>omodate</span> this?)</p>
|
||
|
||
<ul style='margin-top:0in' type=disc>
|
||
<li class=MsoNormal style='mso-list:l4 level1 lfo3;tab-stops:list .5in'>Possible
|
||
bug: when a variable <st1:PersonName>c</st1:PersonName>olumn has a blank <st1:PersonName>c</st1:PersonName>ell
|
||
(in a <span class=SpellE>ColumnFixture</span>), the value is filled in but
|
||
it isnt shown in grey.</li>
|
||
<li class=MsoNormal style='mso-list:l4 level1 lfo3;tab-stops:list .5in'>More
|
||
flexibility in <st1:PersonName><span class=SpellE>c</span></st1:PersonName><span
|
||
class=SpellE>harset</span> handling.</li>
|
||
</ul>
|
||
|
||
<p class=MsoNormal><o:p> </o:p></p>
|
||
|
||
<p class=MsoNormal>Possible feature <st1:PersonName>c</st1:PersonName>hanges:</p>
|
||
|
||
<ul style='margin-top:0in' type=disc>
|
||
<li class=MsoNormal style='mso-list:l4 level1 lfo3;tab-stops:list .5in'>Add
|
||
blank keyword?</li>
|
||
<li class=MsoNormal style='mso-list:l4 level1 lfo3;tab-stops:list .5in'><span
|
||
class=GramE>make</span> <span class=SpellE>fat.Referen</span><st1:PersonName><span
|
||
class=SpellE>c</span></st1:PersonName><span class=SpellE>eFixture</span>
|
||
a standard fit fixture?</li>
|
||
<li class=MsoNormal style='mso-list:l4 level1 lfo3;tab-stops:list .5in'>Provide
|
||
a way for <span class=SpellE>ColumnFixture</span> to easily annotate a <st1:PersonName>c</st1:PersonName>ell
|
||
(in<st1:PersonName>c</st1:PersonName>luding when it passes)</li>
|
||
<li class=MsoNormal style='mso-list:l4 level1 lfo3;tab-stops:list .5in'>Data
|
||
setup fixture, similar to <span class=SpellE>RowFixture</span>[?]</li>
|
||
</ul>
|
||
|
||
<p><o:p> </o:p></p>
|
||
|
||
<h2>Change History</h2>
|
||
|
||
<p><o:p> </o:p></p>
|
||
|
||
<p>Changes in version 1.1:</p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo7;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><b>HTML to text: Added</b> support for class
|
||
attribute in MS Word <p> tag parsing</p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo7;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><b>HTML to text: Clarified </b>handling of
|
||
leading and trailing line breaks</p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo7;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><b>Text to HTML: Changed </b>handling of ba<st1:PersonName>c</st1:PersonName>kwards
|
||
line feed</p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo7;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><b>Fixture loading: Added </b>spe<st1:PersonName>c</st1:PersonName>ifi<st1:PersonName>c</st1:PersonName>
|
||
error messages when fixtures dont load</p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo7;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><b>Standard annotations: Changed </b>all HTML to
|
||
put quotes around <st1:PersonName>c</st1:PersonName>olor attributes</p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo7;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><b>Standard annotations: Changed </b>error and
|
||
info annotations to <st1:PersonName>c</st1:PersonName>onvert new text to
|
||
HTML.</p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo7;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><b>Standard annotations: Changed</b> wrong and
|
||
error annotations to strip mark-up from original <st1:PersonName>c</st1:PersonName>ell.</p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo7;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><b>Standard annotations: Changed </b><span
|
||
style='mso-bidi-font-weight:bold'>error annotation to use standard font size
|
||
for error message.</span></p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo7;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><b>Malformed HTML Parsing: Changed </b><span
|
||
style='mso-bidi-font-weight:bold'>un</span><st1:PersonName><span
|
||
style='mso-bidi-font-weight:bold'>c</span></st1:PersonName><span
|
||
style='mso-bidi-font-weight:bold'>losed table, <span class=SpellE><span
|
||
class=GramE>tr</span></span>, and td tags to generate an error.</span></p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo7;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><span class=SpellE><b>ColumnFixture</b></span><b>:
|
||
Changed </b><span style='mso-bidi-font-weight:bold'>headers to allow multiple words.<span
|
||
style='mso-spacerun:yes'> </span>(<span class=GramE>not</span> yet spe</span><st1:PersonName><span
|
||
style='mso-bidi-font-weight:bold'>c</span></st1:PersonName><span
|
||
style='mso-bidi-font-weight:bold'>ified.)</span></p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo7;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><b style='mso-bidi-font-weight:normal'>Fixture
|
||
loading: Added</b> argument list by fixture name.<span
|
||
style='mso-spacerun:yes'> </span>(<span class=GramE>not</span> yet spe<st1:PersonName>c</st1:PersonName>ified.)</p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo7;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><b style='mso-bidi-font-weight:normal'>Parsing:
|
||
Added</b> support for nested tables.<span style='mso-spacerun:yes'>
|
||
</span>(not yet spe<st1:PersonName>c</st1:PersonName>ified.)</p>
|
||
|
||
<p><o:p> </o:p></p>
|
||
|
||
<p>Changes in version 1.0:</p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l2 level1 lfo9;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><b>Rewrite </b>of the spe<st1:PersonName>c</st1:PersonName>.</p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l2 level1 lfo9;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><b>HTML to text: Changed </b>&<span
|
||
class=SpellE>nbsp</span>; entity to <st1:PersonName>c</st1:PersonName>ombine
|
||
with other leading and trailing <span class=SpellE>whitespa</span><st1:PersonName><span
|
||
class=SpellE>c</span></st1:PersonName><span class=SpellE>e</span>.</p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l2 level1 lfo9;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><b>HTML to text: Changed </b>non-breaking spa<st1:PersonName>c</st1:PersonName>e
|
||
<st1:PersonName>c</st1:PersonName>hara<st1:PersonName>c</st1:PersonName>ter to <i>not</i>
|
||
<st1:PersonName>c</st1:PersonName>ombine with other internal <span
|
||
class=SpellE>whitespa</span><st1:PersonName><span class=SpellE>c</span></st1:PersonName><span
|
||
class=SpellE>e</span>.</p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l2 level1 lfo9;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><b>HTML to text: Added </b><st1:PersonName>c</st1:PersonName>onversion
|
||
of <<span class=SpellE>br</span>> and <p> tags to line-feed <st1:PersonName>c</st1:PersonName>hara<st1:PersonName>c</st1:PersonName>ters.</p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l2 level1 lfo9;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><b>HTML to text: Added </b><st1:PersonName>c</st1:PersonName>onversion
|
||
of smart quotes to regular quotes.</p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l2 level1 lfo9;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><b>Text to HTML: Added </b><st1:PersonName>c</st1:PersonName>onversion
|
||
of line-feed <st1:PersonName>c</st1:PersonName>hara<st1:PersonName>c</st1:PersonName>ters
|
||
to <<span class=SpellE>br</span>> tags.</p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l2 level1 lfo9;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><b>Text to HTML: Added </b><st1:PersonName>c</st1:PersonName>onversion
|
||
of adjoining spa<st1:PersonName>c</st1:PersonName>es to &<span
|
||
class=SpellE>nbsp</span>; entities.</p>
|
||
|
||
<p><o:p> </o:p></p>
|
||
|
||
<p>Initial version:</p>
|
||
|
||
<p style='margin-left:.5in;text-indent:-.25in;mso-list:l2 level1 lfo9;
|
||
tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
|
||
mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
|
||
style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Experimental spe<st1:PersonName>c</st1:PersonName>ifi<st1:PersonName>c</st1:PersonName>ation
|
||
<st1:PersonName>c</st1:PersonName>reated by <st1:PersonName>Ward Cunningham</st1:PersonName>
|
||
and <st1:PersonName>Jim Shore</st1:PersonName>.</p>
|
||
|
||
<p><o:p> </o:p></p>
|
||
|
||
<p> </p>
|
||
|
||
</div>
|
||
|
||
<p style='margin-bottom:12.0pt'><o:p> </o:p></p>
|
||
|
||
<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0
|
||
style='border-collapse:collapse;mso-padding-alt:0in 0in 0in 0in'>
|
||
<tr style='mso-yfti-irow:0;mso-yfti-lastrow:yes'>
|
||
<td valign=top style='padding:0in 5.4pt 0in 5.4pt'>
|
||
<p><span class=SpellE><span style='color:silver'>fit.Summary</span></span></p>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<p> </p>
|
||
|
||
-!
|
||
----
|
||
!contents
|