summaryrefslogtreecommitdiffstats
path: root/htdocs/docs
diff options
context:
space:
mode:
Diffstat (limited to 'htdocs/docs')
-rwxr-xr-xhtdocs/docs/devel.html163
-rwxr-xr-xhtdocs/docs/errors.html549
-rwxr-xr-xhtdocs/docs/help.html106
-rwxr-xr-xhtdocs/docs/index.html60
-rwxr-xr-xhtdocs/docs/sgml.html130
-rwxr-xr-xhtdocs/docs/users.html177
6 files changed, 1185 insertions, 0 deletions
diff --git a/htdocs/docs/devel.html b/htdocs/docs/devel.html
new file mode 100755
index 0000000..4581279
--- /dev/null
+++ b/htdocs/docs/devel.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+ <head>
+ <title>W3C HTML Validation Service Developers Manual</title>
+ <link rev="made" href="mailto:gerald@w3.org" />
+ <link rel="stylesheet" type="text/css" href="/base.css" />
+ <meta name="keywords" content="HTML, Hypertext Markup Language, Validation, W3C HTML Validation Service" />
+ <meta name="description" content="W3C's easy-to-use HTML validation service, based on an SGML parser." />
+ <meta name="revision" content="$Id: devel.html,v 1.1 2001-02-23 09:06:49 link Exp $" />
+ <meta name="modified" content="$Date: 2001-02-23 09:06:49 $" />
+ </head>
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000ee" vlink="#551a8b">
+ <h1><a href="http://www.w3.org/"><img align="left"
+ src="http://www.w3.org/Icons/WWW/w3c_home" height="48" border="0"
+ alt="W3C" /></a> HTML Validator Developers Manual</h1>
+ <p align="right" class="navbar">
+ <a href="about.html">About this service</a> |
+ <a href="whatsnew.html">What's new</a> |
+ <a href="source/">Source code</a> |
+ <a href="feedback.html">Feedback</a><br clear="right"/>
+ <a href="file-upload.html">Upload files</a> |
+ <a href="http://lists.w3.org/Archives/Public/www-validator/">www-validator archives</a> |
+ <a href="http://jigsaw.w3.org/css-validator/">CSS validator</a> |
+ <a href="checklink">Link checker</a><br clear="right"/>
+ <a href="http://www.w3.org/People/Raggett/tidy/">HTML Tidy</a> |
+ <a href="http://www.w3.org/MarkUp/">HTML home</a> |
+ <a href="http://www.w3.org/TR/html401/">HTML 4.01</a> |
+ <a href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a>
+ <br clear="all" />
+ </p>
+
+ <p>
+ The W3C HTML Validation Service consists of an SGML Parser, an SGML
+ catalog, a CGI program and it's configuration files. In addition it
+ relies on a moderately large set of Perl modules for it's operation.
+ </p>
+ <p>
+ This document tries to draw a roadmap of the prerequisits and what the
+ different parts of the system do. It is intended for system
+ administrators and people interested in helping developing the validator.
+ This is not end user documentation. See the
+ <a href="users.html">User Manual</a> for usage instructions.
+ </p>
+
+ <div id="prereq" class="stb">
+ <h2>Prerequisites</h2>
+ <p>
+ Apart from a properly configured web server, the Validator needs a
+ SGML parser -- that does all the heard work -- and several Perl
+ modules used by the "check" CGI script.
+ </p>
+ <p>
+ The SGML parser we're currently using is "lq-nsgmls", which is <a
+ href="http://www.jclark.com/">James Clark</a>'s
+ <a href="http://www.jclark.com/sp/">SP</a> with patches from Liam Quinn.
+ </p>
+ <p>
+ In the future we may switch to a different parser to improve error
+ reporting and XML support.
+ <a href="http://OpenJade.sourceforge.net/">OpenSP</a> from the OpenJade
+ team springs to mind.
+ </p>
+ <p>
+ The canonical list of Perl modules we use can be found in the source
+ for the "check" CGI script. There is a bunch of lines that of the form
+ "use Foo::Bar" where each "Foo::Bar" represents a module. Most modules
+ can be found on <a href="http://www.cpan.org/">CPAN</a>. The following
+ list was complete when CVS spit out: <code>$Date: 2001-02-23 09:06:49 $</code>. <tt>:-)</tt>
+ </p>
+ <dl>
+ <dt><code>LWP::UserAgent</code></dt>
+ <dd>
+ Gisle Aas« most excellent WWW library for Perl. This is where our
+ support for downloading pages off the net comes from.
+ </dd>
+ <dt><code>URI::Escape</code></dt>
+ <dd>Module to handle escaping special characters in URIs</dd>
+ <dt><code>CGI::Carp</code></dt>
+ <dd>CGI-aware warn()/die()</dd>
+ <dt><code>CGI</code></dt>
+ <dd>
+ The all-singing, all-dancing,
+ everything-<em>and</em>-the-kitchen-sink, Perl CGI library. This
+ takes care of all those niggly little bits of CGI for us and make
+ options parsing and file upload a breeze.
+ </dd>
+ <dt><code>Text::Wrap</code></dt>
+ <dd>Wrap text to a sane width. Needed for source output in results.</dd>
+ <dt><code>Text::Iconv</code></dt>
+ <dd>
+ Perl-native interface to the (g)libc iconv(3) library. Handles
+ charset conversion issues.
+ </dd>
+ </dl>
+ </div>
+ <div id="config" class="stb">
+ <h2>Configuration Files</h2>
+ <p>
+ The validator uses a number of configuration files -- most of which
+ are really mapping tables of some form -- to avoid having to check in
+ a new version of the code every time a new version of HTML comes out.
+ All configuration files can be found in
+ <code>$CVSROOT/validator/htdocs/config/</code>.
+ </p>
+ <p>
+ To really understand what each does you should read the source, but
+ here is a short description to get you started.
+ </p>
+ <dl>
+ <dt>eref.cfg</dt>
+ <dd>
+ Contains the mappings from element names to an URI fragment
+ (relative to a configurable URI) for their definitions. Used
+ in output when the "Show Source Input" option is enabled.
+ </dd>
+ <dt>fpis.cfg</dt>
+ <dd>
+ Maps FPIs to plain text version strings.
+ </dd>
+ <dt>frag.cfg</dt>
+ <dd>
+ Maps error messages to an URI fragment identifier where an
+ explanation of that error can be found. Currently not used and may
+ be phased out in the future (to be replaced with a more robust
+ system).
+ </dd>
+ <dt>type.cfg</dt>
+ <dd>
+ Maps MIME/HTTP Content-Types to an internal "document type" which
+ is used for treating HTML, XML, and XHTML in different ways.
+ </dd>
+ <dt>"check.cfg"</dt>
+ <dd>
+ We don't have one yet, but we intend to. Maybe you'll write the
+ support for us? <tt>:-)</tt>
+ </dd>
+ </dl>
+ </div>
+ <div id="todo" class="stb">
+ <h2>TODO</h2>
+ <p>
+ The TODO list for the Validator is online at
+ &lt;URL:<a href="/todo.html">http://validator.w3.org/todo.html</a>&gt;.
+ This is probably the best place to start.
+ </p>
+ <p>
+ However this list is by no means comprehensive. Feel free to suggest
+ other features that should be on this list or send patches for your
+ favourite feature.
+ </p>
+ <p>
+ Keep in mind that features should be of general utility and that the
+ point if the validator is that it does an <em>objective</em>
+ validation instead of just what some random developer happens to
+ think is a Good Idea&reg;. While extra features are nice, they
+ shouldn't dilute the value of the validator as an objective check.
+ </p>
+ </div>
+ </body>
+</html>
diff --git a/htdocs/docs/errors.html b/htdocs/docs/errors.html
new file mode 100755
index 0000000..85c49aa
--- /dev/null
+++ b/htdocs/docs/errors.html
@@ -0,0 +1,549 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+ <head>
+ <title>W3C HTML Validation Error Messages</title>
+ <link rev="made" href="mailto:gerald@w3.org" />
+ <link rel="stylesheet" type="text/css" href="/base.css" />
+ <meta name="keywords" content="HTML, Hypertext Markup Language, Validation, W3C HTML Validation Service" />
+ <meta name="description" content="W3C's easy-to-use HTML validation service, based on an SGML parser." />
+ <meta name="revision" content="$Id: errors.html,v 1.1 2001-02-23 09:06:49 link Exp $" />
+ <meta name="modified" content="$Date: 2001-02-23 09:06:49 $" />
+ </head>
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000ee" vlink="#551a8b">
+ <h1><a href="http://www.w3.org/"><img align="left"
+ src="http://www.w3.org/Icons/WWW/w3c_home" height="48" border="0"
+ alt="W3C" /></a> HTML Validator Error Messages</h1>
+ <p align="right" class="navbar">
+ <a href="about.html">About this service</a> |
+ <a href="whatsnew.html">What's new</a> |
+ <a href="source/">Source code</a> |
+ <a href="feedback.html">Feedback</a><br clear="right"/>
+ <a href="file-upload.html">Upload files</a> |
+ <a href="http://lists.w3.org/Archives/Public/www-validator/">www-validator archives</a> |
+ <a href="http://jigsaw.w3.org/css-validator/">CSS validator</a> |
+ <a href="checklink">Link checker</a><br clear="right"/>
+ <a href="http://www.w3.org/People/Raggett/tidy/">HTML Tidy</a> |
+ <a href="http://www.w3.org/MarkUp/">HTML home</a> |
+ <a href="http://www.w3.org/TR/html401/">HTML 4.01</a> |
+ <a href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a>
+ <br clear="all" />
+ </p>
+
+ <dl>
+ <dt id="unterm-comment-1">"entity end not allowed in comment"</dt>
+ <dd>
+ <p>
+ Unterminated comment. The position indicator points to the very end of
+ the file, where the problem was detected; to find the beginning of the
+ comment, try searching for the last occurrence of
+ `<code>&lt;!--</code>' in the document.
+ </p>
+ </dd>
+ <dt id="unterm-comment-2">"name start character invalid: only s and comment allowed in comment declaration"</dt>
+ <dd>
+ <p>
+ Unterminated comments again. This time, you have a case like:
+ </p>
+ <pre>
+ &lt;!-- This is the first unterminated comment &gt;
+ &lt;!-- This is the second one &gt;
+ </pre>
+ <p>
+ The Validator (correctly) interprets the `<code>--</code>' in the
+ second comment as terminating the first comment, and then interprets
+ the text of the second comment as text between comments, which is not
+ allowed.
+ </p>
+ </dd>
+ <dt id="bad-comment">"unknown declaration type `FOO'"</dt>
+ <dd>
+ <p>
+ Most likely an invalid comment of the form <code>&lt;!invalid
+ comment&gt;</code>; The Validator is (correctly) attempting to
+ interpret it as an <a href="sgml.html#sgml">SGML</a> markup
+ declaration.
+ </p>
+ </dd>
+ <dt id="attr-quoted">"an attribute value must be a literal unless it contains only name characters"</dt>
+ <dd>
+ <p>
+ You have an attribute whose value needs to be in quotes. If an
+ attribute value contains any character other than letters, digits,
+ hyphens and periods, it must be enclosed in double quotes (single
+ quotes would also be okay from an <a href="sgml.html#sgml">SGML</a>
+ standpoint, but some browsers don't recognize them).
+ </p>
+ </dd>
+ <dt id="attr-char">"character `X' not allowed in attribute specification list"</dt>
+ <dd>
+ <p>
+ The Validator has found a character inside an HTML tag that isn't
+ allowed there. This usually means you didn't put an attribute value in
+ quotes when necessary. It also probably means that the character in
+ question is not allowed in the value of the attribute at all, or you
+ would have received the <a href="#attr-quoted">previous error</a>
+ instead. See <a href="#bad-attr-char">below</a> for more information.
+ </p>
+ <p>
+ You can also get in trouble by forgetting the closing quote on an
+ attribute. For instance:
+ </p>
+ <pre>
+ &lt;IMG SRC="http://foo.com/fred.gif&gt;
+ &lt;IMG SRC="http://foo.com/joe.gif&gt;
+ </pre>
+ <p>
+ The Validator will (correctly) interpret this as a SRC value of
+ <code>"http://foo.com/fred.gif&gt; &lt;IMG SRC="</code>, and then
+ choke on the following `:'. In this case, the position indicator in
+ the error message may be several lines below the line with the missing
+ quote.
+ </p>
+ </dd>
+ <dt id="name-length">"length of attribute value must not exceed LITLEN less NORMSEP (1022)"</dt>
+ <dd>
+ <p>
+ This usually occurs in conjunction with the
+ <a href="#attr-char">previous error</a>. It almost always means that
+ you've forgotten a closing quote on an attribute value. For instance,
+ in:
+ </p>
+ <pre>
+ &lt;IMG SRC="fred.gif&gt;
+ &lt;!-- 50 lines of stuff --&gt;
+ &lt;IMG SRC="joe.gif"&gt;
+ </pre>
+ <p>
+ The SRC value for the first <code>&lt;IMG&gt;</code> is the entire
+ fifty lines of stuff up to the next double quote, which probably
+ exceeds the <a href="sgml.html#sgml">SGML</a>-defined length limit for
+ HTML string literals. Note that the position indicator in the error
+ message points to where the attribute value <em>ended</em> &mdash; in
+ this case, the <code>"joe.gif"</code> line.
+ </p>
+ </dd>
+ <dt id="undef-tag">"element `FOO' undefined"</dt>
+ <dd>
+ <p>
+ You've used an unknown tag (represented here by FOO). Make sure the
+ DTD indicated by your DOCTYPE actually includes this element.
+ </p>
+ <p>
+ If the tag in question is a frame-related tag you must use the
+ "Frameset" DTD, and if you use (deprecated) physical markup ("FONT"
+ and friends) you must use the "Transitional" DTD.
+ </p>
+ </dd>
+ <dt id="not-allowed">"document type does not allow element "FOO" here"</dt>
+ <dd>
+ <p>
+ Straightforward, but not terribly informative. There are a
+ <em>lot</em> of different errors that will generate this error
+ message:
+ </p>
+ <ul>
+ <li>
+ Using an unknown tag. In this case, the next error will be
+ <a href="#undef-tag">"element `FOO' undefined"</a>.
+ </li>
+ <li>
+ Using a tag in the wrong place. For instance,
+ <code>&lt;TABLE&gt;&lt;TD&gt;blah&lt;/TABLE&gt;</code> will cause
+ this error. The trick here is that <code>&lt;TABLE&gt;</code> cannot
+ <em>directly</em> contain <code>&lt;TD&gt;</code>'s; it contains
+ <code>&lt;TR&gt;</code>'s which contain <code>&lt;TD&gt;</code>'s.
+ The above example should be
+ <code>&lt;TABLE&gt;&lt;TR&gt;&lt;TD&gt;blah&lt;/TABLE&gt;</code>.
+ </li>
+ </ul>
+ </dd>
+ <dt id="not-contained">document type does not allow element "FOO" here; assuming missing "BAR" start-tag</dt>
+ <dd>
+ <p>
+ Similar to the <a href="#not-allowed">previous error</a>, but more
+ specific: in this case, you have a FOO element that is not contained
+ in a BAR element when FOO is not allowed outside of BAR. Some of the
+ most common causes of this error are:
+ </p>
+ <ul>
+ <li>
+ Using the <code>DD</code> element as a fake paragraph indent.
+ <code>DD</code> is not allowed outside of a <code>DL</code> element.
+ </li>
+ <li>
+ Improper construction of a nested list. An inner UL or OL in a
+ nested list may not appear directly within an outer UL/OL, but only
+ within an LI of the outer UL/OL, as in the following example:
+ <pre>
+ &lt;OL&gt;
+ &lt;LI&gt;Obtain the following items:
+ &lt;UL&gt;
+ &lt;LI&gt;Ham&lt;/LI&gt;
+ &lt;LI&gt;Bread; one of:
+ &lt;UL&gt;
+ &lt;LI&gt;White&lt;/LI&gt;
+ &lt;LI&gt;Rye&lt;/LI&gt;
+ &lt;LI&gt;Whole wheat&lt;/LI&gt;
+ &lt;/UL&gt;
+ &lt;/LI&gt; &lt;!-- End of the "Bread" &lt;LI&gt; --&gt;
+ &lt;LI&gt;Cheese&lt;/LI&gt;
+ &lt;/UL&gt;
+ &lt;/LI&gt; &lt;!-- End of the "Obtain" &lt;LI&gt; --&gt;
+ &lt;LI&gt;Place ham and cheese between two slices of bread&lt;/LI&gt;
+ &lt;LI&gt;Consume the resulting ham-and-cheese sandwich&lt;/LI&gt;
+ &lt;/OL&gt;
+ </pre>
+ <p>
+ The <code>&lt;/LI&gt;</code> end tags are optional and are only
+ included above to emphasize how the structure of the nested list
+ is arranged; if you omit them, the parser will infer their
+ presence in the locations shown above.
+ </p>
+ </li>
+ </ul>
+ <p>
+ The Validator has inserted a BAR start tag where it thinks there needs
+ to be one; it will probably complain later on that <a href="#no-end-tag">the
+ corresponding end tag is also missing</a>.
+ </p>
+ </dd>
+ <dt id="not-allowed-contained">"document type does not allow element "FOO" here; assuming missing "BAR" start-tag"</dt>
+ <dd>
+ <p>
+ Similar to the <a href="#not-allowed">previous error</a>, but more
+ specific: in this case, you have a FOO element that is not contained
+ in a BAR element when FOO is not allowed outside of BAR. Probably the
+ most common cause of this error is the use of the <code>DD</code>
+ element as a fake paragraph indent; <code>DD</code> is not allowed
+ outside of a <code>DL</code> element.
+ </p>
+ <p>
+ The Validator has inserted a BAR start tag where it thinks there needs
+ to be one; it will probably complain later on that <a
+ href="#no-end-tag">the corresponding end tag is also missing</a>.
+ </p>
+ </dd>
+ <dt id="undef-attr">"there is no attribute `FOO'"</dt>
+ <dd>
+ <p>
+ You have used an attribute with an element that is defined not to have
+ that attribute. This is most commonly caused by using
+ vendor-specific attributes without setting the document type
+ appropriately.
+ </p>
+ </dd>
+ <dt id="undef-attr-val">"`FOO' is not a member of the group specified in the declared value of this attribute"</dt>
+ <dd>
+ <p>
+ Similar to the <a href="#undef-attr">previous error</a>; this time,
+ you're using an attribute that is defined for the element, but with a
+ value that isn't defined for the attribute. For instance, the Netscape
+ extension <code>&lt;IMG ALIGN=ABSMIDDLE&gt;</code> will cause this
+ error; ABSMIDDLE isn't one of the allowed values for the ALIGN
+ attribute of <code>&lt;IMG&gt;</code> (unless, of course, you provided
+ a Netscape document type).
+ </p>
+ <p>
+ If you're using the Netscape document type, the BORDER attribute of
+ <code>&lt;TABLE&gt;</code> can cause this error.
+ </p>
+ <p>
+ This error can also be caused, oddly enough, by missing close quotes
+ on attribute values. For instance, given:
+ </p>
+ <pre>
+ &lt;IMG SRC="fred.gif&gt; &lt;IMG SRC="joe.gif&gt;
+ </pre>
+ <p>
+ The Validator will (correctly) see a SRC attribute of
+ <code>"fred.gif&gt; &lt;IMG SRC="</code>, and then try to interpret
+ JOE.GIF as an attribute of <code>&lt;IMG&gt;</code>.
+ </p>
+ </dd>
+ <dt id="bad-attr-char">"syntax of attribute value does not conform to declared value"</dt>
+ <dd>
+ <p>
+ Yet another attribute error; this time, the attribute in question was
+ defined to take a numeric value, or an <a
+ href="sgml.html#sgml">SGML</a> identifier value, and you used a
+ character that doesn't match what it was expecting.
+ </p>
+ <p>
+ One potentially annoying source of this error is the <code>TD
+ WIDTH</code> attribute. Whether intentionally or by oversight, the
+ HTML 3.2 DTD defines this attribute to have a value type of NUMBER,
+ which means that <code>&lt;TD WIDTH="50%"&gt;</code> is not allowed.
+ </p>
+ </dd>
+ <dt id="bad-name-attr">"value of attribute "FOO" invalid: "#" cannot start a name"</dt>
+ <dd>
+ <p>
+ A special case of <a href="#bad-attr-char">the previous error</a>; the
+ attribute in question is defined to take as value an SGML name token,
+ which must begin with a letter.
+ </p>
+ </dd>
+ <dt id="bad-abbrev-attr">"`FOO' is not a member of a group specified for any attribute"</dt>
+ <dd>
+ <p>
+ Another attribute error, this time referring to an "abbreviated"
+ attribute. <a href="sgml.html#sgml">SGML</a> allows you to omit the
+ name of an attribute if the attribute value is unambiguous. For
+ instance, <code>&lt;IMG ISMAP&gt;</code> is actually an abbreviation
+ of <code>&lt;IMG ISMAP=ISMAP&gt;</code>. (Technically, this also means
+ that e.g. <code>&lt;P ALIGN=CENTER&gt;</code> could be abbreviated to
+ <code>&lt;P CENTER&gt;</code>, but it is unlikely that current
+ browsers will get this right.) The Validator has found something that
+ looks like an abbreviated attribute but doesn't match the value of any
+ attribute for this element. For instance, a typo like <code>&lt;IMG
+ ISNAP&gt;</code> would produce this error.
+ </p>
+ <p>
+ A missing close quote on a previous attribute value can also trigger
+ this error if the next quote it finds is followed by something that
+ looks like an abbreviated attribute; for instance, <code>&lt;IMG
+ SRC="fred.gif&gt;&lt;IMG SRC="joe.gif&gt;</code> would produce this
+ error, referring to the "attribute value" <code>JOE.GIF</code>.
+ </p>
+ </dd>
+ <dt id="missing-attr">"required attribute `FOO' not specified"</dt>
+ <dd>
+ <p>
+ You left off a required attribute of the indicated element. The most
+ common such omitted attribute is the <code>ALT</code> attribute of the
+ <code>AREA</code> element; browsers will typically use these to build
+ a menu equivalent to your client-side imagemap if the user has
+ disabled image loading, so you'll want to use a meaningful value here.
+ </p>
+ </dd>
+ <dt id="no-end-tag">"end tag for `FOO' omitted, but its declaration does not permit this"</dt>
+ <dd>
+ <p>
+ You forgot to close something. FOO is the element you forgot to close
+ (and the next message, `start tag was here' points to the particular
+ instance of FOO in question); the positional indicator points to where
+ The Validator expected you to close the element. There are a few
+ common ways that this can happen:
+ </p>
+ <ul>
+ <li>
+ You've put something inside the FOO element that isn't allowed
+ there. For instance, <code>&lt;UL&gt;&lt;LI&gt;&lt;H4&gt;fake font
+ change&lt;/H4&gt;&lt;/UL&gt;</code> will cause this error, since
+ headers aren't allowed inside <code>&lt;UL&gt;</code>'s; The
+ Validator assumes that you meant to close the
+ <code>&lt;UL&gt;</code> before opening the <code>&lt;H4&gt;</code>.
+ </li>
+ <li>
+ Interlocked elements. For instance,
+ <code>&lt;B&gt;&lt;I&gt;nope&lt;/B&gt;&lt;/I&gt;</code> will cause
+ this error. HTML requires that you close elements ``inside-out'' ---
+ that is, the last element you opened is the first element you should
+ close. In this example, you'd have to close the
+ <code>&lt;I&gt;</code> before the <code>&lt;B&gt;</code>.
+ </li>
+ <li>
+ Unclosed <code>&lt;A&gt;</code> tags. Yes, even <code>&lt;A
+ NAME="foo"&gt;</code> has to have a corresponding
+ <code>&lt;/A&gt;</code>. Note that an empty <code>&lt;A
+ NAME&gt;</code> element won't be recognized by some browsers; be
+ sure to put at least a word or two inside the
+ <code>&lt;A&gt;</code>.
+ </li>
+ <li>
+ Having unadorned text where The Validator was expecting a
+ sub-element of FOO. For instance, <code>&lt;DL&gt;fake
+ indent&lt;/DL&gt;</code> will produce this error, since inside a
+ <code>&lt;DL&gt;</code>, The Validator only expects to see
+ <code>&lt;DT&gt;</code>'s and <code>&lt;DD&gt;</code>'s.
+ </li>
+ <li>
+ A tag of the form <code>&lt;TABLE WIDTH=100%&gt;</code>. The
+ previous error should have been that the `%' was <a
+ href="#attr-char">"not allowed in attribute specification list"</a>.
+ What's happening here is that, in trying to get past the `%', The
+ Validator has become confused and thinks the `%' is <em>inside</em>
+ the <code>&lt;TABLE&gt;...&lt;/TABLE&gt;</code>, thus triggering the
+ error message for the previous reason. This error will likely be
+ followed by mistaken complaints that your <code>&lt;TR&gt;</code>'s
+ are <a href="#not-allowed">"not allowed here"</a>, plus a complaint
+ about your <code>&lt;/TABLE&gt;</code> end tag. The solution is to
+ put the attribute value in quotes; ie. <code>&lt;TABLE
+ WIDTH="100%"&gt;</code>.
+ </li>
+ </ul>
+ <p>
+ In general, you should always explicitly close all elements and
+ quote all attribute values.
+ </p>
+ </dd>
+ <dt id="floating-close">"end tag for element "FOO" which is not open"</dt>
+ <dd>
+ <p>
+ The Validator found an end tag, represented here by FOO, without a
+ corresponding start tag. This frequently occurs in conjunction with
+ the <a href="#no-end-tag">previous error</a>. For instance, given
+ <code>&lt;B&gt;&lt;I&gt;nope&lt;/B&gt;&lt;/I&gt;</code>, The Validator
+ will insert a <code>&lt;/I&gt;</code> before the
+ <code>&lt;/B&gt;</code>, and then will find the
+ <code>&lt;/I&gt;</code> after the <code>&lt;/B&gt;</code> and will
+ have nothing to match it with.
+ </p>
+ <p>
+ A subtle variation of this is <code>&lt;P&gt;&lt;H4&gt;fake font
+ change&lt;/H4&gt;&lt;/P&gt;</code>. <code>&lt;H4&gt;</code>'s aren't
+ allowed inside <code>&lt;P&gt;</code>'s, but since HTML allows you to
+ omit the <code>&lt;/P&gt;</code> end tag for paragraphs, The Validator
+ assumes that you meant <code>&lt;P&gt;&lt;/P&gt;&lt;H4&gt;fake font
+ change&lt;/H4&gt;&lt;/P&gt;</code>, in which case the final
+ <code>&lt;/P&gt;</code> is indeed superfluous.
+ </p>
+ <p>
+ This error can also be caused by incorrectly supplying an end tag for
+ "empty" elements like <code>&lt;HR&gt;</code>, <code>&lt;BR&gt;</code>
+ or <code>&lt;IMG&gt;</code>.
+ </p>
+ </dd>
+ <dt id="omitted-content">"end tag for `FOO' which is not finished"</dt>
+ <dd>
+ <p>
+ You have a FOO element, but you have omitted some required sub-element
+ of it. For instance, a <code>TABLE</code> with no <code>TR</code>'s
+ would cause this error.
+ </p>
+ </dd>
+ <dt id="no-start-tag">"start tag for `FOO' omitted, but its declaration does not permit this"</dt>
+ <dd>
+ <p>
+ The Validator expected you to start a FOO element at the indicated
+ point. This probably means you've put unadorned text somewhere it
+ isn't allowed; for instance, <code>&lt;UL&gt;fake
+ indent&lt;/UL&gt;</code> will cause this error.
+ </p>
+ </dd>
+ <dt id="bad-entity">"general entity `FOO' not defined and no default entity"</dt>
+ <dd>
+ <p>
+ The Validator has found an entity (something like
+ <code>&amp;this;</code>) that it doesn't recognize. There are a few
+ possibilities:
+ </p>
+ <ul>
+ <li>
+ The entity <code>&amp;quot;</code> in conjunction with the HTML 3.2
+ <code>DOCTYPE</code>. This entity was <a
+ href="http://lists.w3.org/Archives/Public/www-html/msg00636.html">accidentally
+ omitted</a> from the most recent version of the HTML 3.2 DTD. You
+ should be able to ignore this error safely, though if you wish, you
+ can replace <code>&amp;quot;</code> with the equivalent character
+ entity <code>&amp;#34;</code>.
+ </li>
+ <li>
+ The entity <code>&amp;nbsp;</code> in conjunction with the Mozilla
+ <code>DOCTYPE</code>. WebTechs' Mozilla DTD, which The Validator
+ uses, inexplicably does not define this entity. This error message
+ should not cause a problem, though you may wish to switch to the
+ equivalent but more widely handled character entity
+ <code>&amp;#160;</code>.
+ </li>
+ <li>
+ An unterminated entity; for instance, <code>this&amp;ampthat</code>
+ for "this&amp;that", which The Validator (correctly) interprets as a
+ request for the entity <code>&amp;ampthat;</code>. Technically, any
+ non-alphanumeric character (such as a space) will suffice to
+ terminate the entity, but some browsers get this wrong; the safest
+ thing to do is to terminate all entities with a semicolon, turning
+ our example into <code>this&amp;amp;that</code>.
+ </li>
+ <li>
+ <p>
+ A URL for a CGI program that uses `&amp;' as a separator, such as
+ "<code>http://host/prog?x=1&amp;y=2</code>". This is a common
+ problem: the inventors of CGI didn't think things through very
+ carefully when they decided to use the '&amp;' character as a
+ separator between CGI arguments, because '&amp;' has special
+ status in HTML. The only way to get around this is for the author
+ of the CGI program to use a different value between arguments,
+ like ';' or '|', which would allow the link to be coded as
+ <code>&lt;img src="http://site/cgi?opt1=val1;opt2=val2"&gt;</code>
+ or whatever.
+ </p>
+ <p>
+ Please contact the maintainer of the CGI program you are linking
+ to, and ask them to use a different character for their separator.
+ (Normally this is extremely easy to add to the CGI program;
+ multiple characters can also be used so existing links using the
+ '&amp;' character will still work.)
+ </p>
+ </li>
+ </ul>
+ </dd>
+ <dt id="bad-char">"non SGML character number ###"</dt>
+ <dd>
+ <p>
+ You've used an illegal character in your text. HTML uses the standard
+ ISO8859-1 character encoding, and ISO8859-1 leaves undefined 65
+ character codes (0 to 31 inclusive and 127 to 159 inclusive); The
+ Validator has found one of these undefined characters in your
+ document. The character may appear on your browser as a curly quote,
+ or a trademark symbol, or some other fancy glyph; on a different
+ computer, however, it will likely appear as a completely different
+ character, or nothing at all.
+ </p>
+ <p>
+ Your best bet is to replace the character with the nearest equivalent
+ ASCII character, or to use an appropriate <a
+ href="http://www.w3.org/hypertext/WWW/MarkUp/html3/latin1.html">character
+ entity</a>. For more information on ISO8859-1, see <a
+ href="http://ppewww.ph.gla.ac.uk/%7Eflavell/aflavell.html">Alan
+ Flavell</a>'s excellent <a
+ href="http://ppewww.ph.gla.ac.uk/%7Eflavell/iso8859/">ISO8859-1/HTML
+ reference</a>.
+ </p>
+ <p>
+ This error can also be triggered by formatting characters embedded in
+ documents by some word processors. If you use a word processor to edit
+ your HTML documents, be sure to use the "Save as ASCII" or similar
+ command to save the document without formatting information.
+ </p>
+ </dd>
+ <dt id="unicode-char">"`####' is not a valid character number"</dt>
+ <dd>
+ <p>
+ You'll get several occurrences of this error if you use the Cougar
+ DTD. Cougar uses the 16-bit UCS-4 (a.k.a. "Unicode") character set
+ instead of the 8-bit ISO8859-1 character set used by HTML 2.0 and HTML
+ 3.2. It also defines mnemonic entities for various Unicode characters;
+ for instance, the entity <code>&amp;trade;</code> is defined as the
+ character entity <code>&amp;#8482;</code>, which is the Unicode
+ trademark character. Unfortunately, the <code>nsgmls</code> executable
+ used by The Validator does not appear to have 16-bit character support
+ compiled in, and so it chokes on these 16-bit character entities.
+ </p>
+ <p>
+ These errors are not produced by anything in your document and should
+ not otherwise affect the validation of your document, so you can
+ pretty much ignore them.
+ </p>
+ </dd>
+ <dt id="bad-pub-id">"cannot generate system identifier for entity `HTML'"</dt>
+ <dd>
+ <p>
+ Your <code>DOCTYPE</code> declaration contains a public identifier
+ that The Validator doesn't recognize. See the <a
+ href="sgml.html#doctype">discussion of <code>DOCTYPE</code></a> for an
+ explanation of what's happening, and what public identifiers The
+ Validator recognizes.
+ </p>
+ <p>
+ Note that all of the rest of the errors you received are meaningless;
+ The Validator was unable to find a <a href="sgml.html#dtd">DTD</a> to
+ work from, and thus could not validate your document.
+ </p>
+ </dd>
+ </dl>
+ </body>
+</html>
diff --git a/htdocs/docs/help.html b/htdocs/docs/help.html
new file mode 100755
index 0000000..277916a
--- /dev/null
+++ b/htdocs/docs/help.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+ <head>
+ <title>W3C HTML Validation Service Help</title>
+ <link rev="made" href="mailto:gerald@w3.org" />
+ <link rel="stylesheet" type="text/css" href="/base.css" />
+ <meta name="keywords" content="HTML, Hypertext Markup Language, Validation,
+ W3C HTML Validation Service" />
+ <meta name="description" content="W3C's easy-to-use HTML validation
+ service, based on an SGML parser." />
+ <meta name="revision" content="$Id: help.html,v 1.1 2001-02-23 09:06:49 link Exp $" />
+ <meta name="modified" content="$Date: 2001-02-23 09:06:49 $" />
+ </head>
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000ee" vlink="#551a8b">
+ <h1><a href="http://www.w3.org/"><img align="left"
+ src="http://www.w3.org/Icons/WWW/w3c_home" height="48" border="0"
+ alt="W3C" /></a> HTML Validator Help</h1>
+ <p align="right" class="navbar">
+ <a href="about.html">About this service</a> |
+ <a href="whatsnew.html">What's new</a> |
+ <a href="source/">Source code</a> |
+ <a href="feedback.html">Feedback</a><br clear="right"/>
+ <a href="file-upload.html">Upload files</a> |
+ <a href="http://lists.w3.org/Archives/Public/www-validator/">www-validator
+ archives</a> |
+ <a href="http://jigsaw.w3.org/css-validator/">CSS validator</a> |
+ <a href="checklink">Link checker</a><br clear="right"/>
+ <a href="http://www.w3.org/People/Raggett/tidy/">HTML Tidy</a> |
+ <a href="http://www.w3.org/MarkUp/">HTML home</a> |
+ <a href="http://www.w3.org/TR/html401/">HTML 4.01</a> |
+ <a href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a>
+ <br clear="all" />
+ </p>
+ <div>
+ <h2 id="what-is-it">What does The Validator do?</h2>
+ The Validator is sort of like <code>lint</code> for C. It compares
+ your HTML document to the defined syntax of HTML and reports any
+ discrepancies.
+ </div>
+ <div>
+ <h2 id="why-validate">Why should I validate my HTML pages?</h2>
+ <p>
+ One of the important maxims of computer programming is: <q>Be
+ conservative in what you produce; be liberal in what you accept.</q>
+ </p>
+ <p>
+ Browsers follow the second half of this maxim by accepting Web pages
+ and trying to display them even if they're not legal HTML. Usually
+ this means that the browser will try to make educated guesses about
+ what you probably meant. The problem is that different browsers (or
+ even different versions of the same browser) will make different
+ guesses about the same illegal construct; worse, if your HTML is
+ <em>really</em> pathological, the browser could get hopelessly
+ confused and produce a mangled mess, or even crash.
+ </p>
+ <p>
+ That's why you want to follow the first half of the maxim by making
+ sure your pages are legal HTML. The best way to do that is by
+ running your documents through one or more HTML validators.
+ </p>
+ </div>
+ <div><h2 id="others">What other validators are there?</h2><p>FIXME</p></div>
+ <div>
+ <h2 id="how">How does The Validator work?</h2>
+ The Validator is based on <a href="http://www.jclark.com/">James
+ Clark</a>'s <code><a href="http://www.jclark.com/sp/">nsgmls</a></code>
+ SGML parser. The Validator itself is a CGI script that fetches your
+ URL, passes it through <code>nsgmls</code>, and post-processes the
+ resulting error list for easier reading.
+ </div>
+ <div>
+ <h2 id="choosing-dtd">How do I set The Validator to validate in
+ HTML2/HTML3/Netscape mode?</h2>
+ Unlike WebTechs, The Validator does not allow you to select a document
+ type on the fly. If your document is not intended to be HTML
+ 2.0-compliant, you must add a corresponding <code>DOCTYPE</code>
+ declaration to your document; see <a href="sgml.html#doctype">the
+ section on <code>DOCTYPE</code></a> for more information. If your
+ document does not have a <code>DOCTYPE</code> declaration, The
+ Validator will assume an HTML 4.0 document type (and will tell
+ you it is doing so).
+ </div>
+ <div>
+ <h2 id="munged-doctype">Help! The Validator spewed a zillion error
+ messages on my page!</h2>
+ <p>
+ Don't panic. Did The Validator complain about your
+ <code>DOCTYPE</code> declaration (or lack thereof)? Make sure your
+ document has a syntactically correct <code>DOCTYPE</code>
+ declaration, as described in the <a href="sgml.html#doctype">section
+ on <code>DOCTYPE</code></a>, and make sure it correctly identifies
+ the type of HTML you're using. Then run it through The Validator
+ again; if you're lucky, you should get a lot fewer errors.
+ </p>
+ <p>
+ If this doesn't help, then you may be experiencing a cascade failure
+ &mdash; one error that gets The Validator so confused that it can't
+ make sense of the rest of your page. Try correcting the first few
+ errors and running your page through The Validator again.
+ </p>
+ </div>
+ </body>
+</html>
diff --git a/htdocs/docs/index.html b/htdocs/docs/index.html
new file mode 100755
index 0000000..76b6cc6
--- /dev/null
+++ b/htdocs/docs/index.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+ <head>
+ <title>W3C HTML Validation Service Documentation Index</title>
+ <link rev="made" href="mailto:gerald@w3.org" />
+ <link rel="stylesheet" type="text/css" href="/base.css" />
+ <meta name="keywords" content="HTML, Hypertext Markup Language, Validation,
+ W3C HTML Validation Service" />
+ <meta name="description" content="W3C's easy-to-use HTML validation
+ service, based on an SGML parser." />
+ <meta name="revision" content="$Id: index.html,v 1.1 2001-02-23 09:06:49 link Exp $" />
+ <meta name="modified" content="$Date: 2001-02-23 09:06:49 $" />
+ </head>
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000ee" vlink="#551a8b">
+ <h1><a href="http://www.w3.org/"><img align="left"
+ src="http://www.w3.org/Icons/WWW/w3c_home" height="48" border="0"
+ alt="W3C" /></a> HTML Validator Help Index</h1>
+ <p align="right" class="navbar">
+ <a href="about.html">About this service</a> |
+ <a href="whatsnew.html">What's new</a> |
+ <a href="source/">Source code</a> |
+ <a href="feedback.html">Feedback</a><br clear="right"/>
+ <a href="file-upload.html">Upload files</a> |
+ <a href="http://lists.w3.org/Archives/Public/www-validator/">www-validator
+ archives</a> |
+ <a href="http://jigsaw.w3.org/css-validator/">CSS validator</a> |
+ <a href="checklink">Link checker</a><br clear="right"/>
+ <a href="http://www.w3.org/People/Raggett/tidy/">HTML Tidy</a> |
+ <a href="http://www.w3.org/MarkUp/">HTML home</a> |
+ <a href="http://www.w3.org/TR/html401/">HTML 4.01</a> |
+ <a href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a>
+ <br clear="all" />
+ </p>
+
+ <p>
+ Here you'll find the documentation for The W3C HTML Validation Service.
+ What little there is of it; additions eagerly accepted! <tt>:-)</tt>
+ </p>
+ <dl>
+ <dt><a href="help.html">W3C Validator Help</a></dt>
+ <dd><p>A quick intro and help to get you started.</p></dd>
+ <dt><a href="users.html">W3C Validator Users Guide</a></dt>
+ <dd><p>The Users Guide for the W3C Validator.</p></dd>
+ <dt><a href="sgml.html">SGML Cheat Sheet</a></dt>
+ <dd>
+ <p>
+ A quick introduction to SGML concepts as they apply to the
+ Validator with links to further information.
+ </p>
+ </dd>
+ <dt><a href="errors.html">W3C Validator Error Messages</a></dt>
+ <dd><p>Explanations of common error messages.</p></dd>
+ <dt><a href="devel.html">Developer Information</a></dt>
+ <dd><p>Information about the Validator for programmers.</p></dd>
+ </dl>
+ </body>
+</html>
diff --git a/htdocs/docs/sgml.html b/htdocs/docs/sgml.html
new file mode 100755
index 0000000..564064f
--- /dev/null
+++ b/htdocs/docs/sgml.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+ <head>
+ <title>W3C HTML Validator SGML Intro</title>
+ <link rev="made" href="mailto:gerald@w3.org" />
+ <link rel="stylesheet" type="text/css" href="/base.css" />
+ <meta name="keywords" content="HTML, Hypertext Markup Language, Validation, W3C HTML Validation Service" />
+ <meta name="description" content="W3C's easy-to-use HTML validation service, based on an SGML parser." />
+ <meta name="revision" content="$Id: sgml.html,v 1.1 2001-02-23 09:06:49 link Exp $" />
+ <meta name="modified" content="$Date: 2001-02-23 09:06:49 $" />
+ </head>
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000ee" vlink="#551a8b">
+ <h1><a href="http://www.w3.org/"><img align="left"
+ src="http://www.w3.org/Icons/WWW/w3c_home" height="48" border="0"
+ alt="W3C" /></a> HTML Validator SGML Intro</h1>
+ <p align="right" class="navbar">
+ <a href="about.html">About this service</a> |
+ <a href="whatsnew.html">What's new</a> |
+ <a href="source/">Source code</a> |
+ <a href="feedback.html">Feedback</a><br clear="right"/>
+ <a href="file-upload.html">Upload files</a> |
+ <a href="http://lists.w3.org/Archives/Public/www-validator/">www-validator archives</a> |
+ <a href="http://jigsaw.w3.org/css-validator/">CSS validator</a> |
+ <a href="checklink">Link checker</a><br clear="right"/>
+ <a href="http://www.w3.org/People/Raggett/tidy/">HTML Tidy</a> |
+ <a href="http://www.w3.org/MarkUp/">HTML home</a> |
+ <a href="http://www.w3.org/TR/html401/">HTML 4.01</a> |
+ <a href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a>
+ <br clear="all" />
+ </p>
+
+ <div>
+ <h2 id="sgml">What is SGML?</h2>
+ <p>
+ SGML stands for Standard Generalized Markup Language. This is
+ actually a slight misnomer, since SGML is actually a
+ <em>meta-language</em> &mdash; that is, a language for writing markup
+ languages. HTML is a markup language written in SGML &mdash; an "SGML
+ application", to use the terminology.
+ </p>
+ <p>
+ You don't actually have to know much about SGML to use The Validator
+ successfully. If you're interested, though, I recommend TEI's
+ <a href="http://etext.virginia.edu/tei-tocs1.html">"A Gentle
+ Introduction to SGML"</a> as a good starting point. An additional SGML
+ resource can be found on
+ <a href="http://www.oasis-open.org/cover/sgml-xml.html">SIL's SGML
+ Web Page</a>.
+ </p>
+ </div>
+
+ <div>
+ <h2 id="dtd">What is a DTD?</h2>
+ <p>
+ For our purposes, a DTD, or Document Type Definition, is simply a file
+ that defines the syntax of a <a href="#sgml">SGML</a>-based language.
+ The DTD's for
+ <a href="http://w3.org/MarkUp/html-spec/">HTML 2.0</a>
+ and <a href="http://w3.org/TR/REC-html32">HTML 3.2</a>
+ were written by the HTML Working Group of the
+ <a href="http://www.ietf.org/"><abbr title="Internet Engineering Task Force">IETF</abbr></a>,
+ in collaboration with the <a href="http://w3.org"><abbr title="World Wide Web Consortium">W3C</abbr></a>.
+ From <a href="http://w3.org/TR/html4">HTML 4.0</a> on (this includes
+ <a href="http://w3.org/TR/xhtml1">XHTML</a>), the standards (both
+ prose and DTDs) have been written by the
+ <a href="http://w3.org"><abbr title="World Wide Web Consortium">W3C</abbr></a>.
+ </p>
+ </div>
+
+ <div>
+ <h2 id="doctype">What is this <code>DOCTYPE</code> thing The Validator
+ keeps pestering me for?</h2>
+
+ <p>
+ A <code>DOCTYPE</code> is a <a href="#sgml">SGML</a> document type
+ declaration. Its purpose is to tell an SGML parser what
+ <a href="#dtd">DTD</a> it should use to parse the document. It appears
+ as the first line of the document, and has the form:
+ <code>&lt;!DOCTYPE html PUBLIC "quoted string"&gt;</code>
+ </p>
+ <p>
+ The quoted string is called a <dfn>public identifier</dfn>; it refers
+ to the desired DTD by a "well-known" name, usually defined by an
+ associated standard.
+ </p>
+ <p>
+ Most Web browsers don't actually use an SGML parser (in fact, none
+ that I'm aware of do), and so they don't need a <code>DOCTYPE</code>
+ declaration, and will ignore it if present. The Validator, however,
+ does use an SGML parser, and therefore needs a <code>DOCTYPE</code>
+ declaration. The Validator is more insistent on this point than
+ WebTechs was, which would insert a <code>DOCTYPE</code> on the fly
+ for you; The Validator requires that your <code>DOCTYPE</code> already
+ be in the document.
+ </p>
+ <p>
+ So now you're preparing to add a <code>DOCTYPE</code> to your document.
+ Be sure that the syntax is as described above, and that you use the
+ correct public identifier; otherwise, The Validator will use the wrong
+ DTD, or will be unable to find a DTD at all, and will produce a huge
+ list of absolutely meaningless errors. The Validator's
+ <a href="catalog">public identifier catalog</a> lists all the public
+ identifiers The Validator recognizes for various types of HTML; of
+ those, the following public identifiers are most likely to be widely
+ recognized:
+ </p>
+ <dl>
+ <dt><code>For HTML 2.0...</code></dt><dd>...use "-//IETF//DTD HTML 2.0//EN"</dd>
+ <dt><code>For HTML 4.0...</code></dt><dd>...use "-//W3C//DTD HTML 4.0//EN"</dd>
+ <dt><code>For HTML 4.0 Transitional...</code></dt><dd>...use "-//W3C//DTD HTML 4.0 Transitional//EN"</dd>
+ <dt><code>For HTML 4.0 Frameset...</code></dt><dd>...use "-//W3C//DTD HTML 4.0 Framset//EN"</dd>
+ </dl>
+ <p>Note that the string must appear exactly as shown, including case.</p>
+ <p class="warning">
+ <strong>WARNING:</strong></a> Some HTML editors will insert a
+ <code>DOCTYPE</code> declaration for you. Unfortunately, this
+ pre-inserted <code>DOCTYPE</code> will sometimes confuse
+ The Validator. This usually occurs when the inserted
+ <code>DOCTYPE</code> does not correspond to the generated HTML.
+ If your editor adds a <code>DOCTYPE</code> to your page, you may
+ need to correct it as described above before running your page through
+ The Validator.
+ </p>
+ </div>
+ </body>
+</html>
+
diff --git a/htdocs/docs/users.html b/htdocs/docs/users.html
new file mode 100755
index 0000000..0a89cff
--- /dev/null
+++ b/htdocs/docs/users.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+ <head>
+ <title>W3C HTML Validation Service User Manual</title>
+ <link rev="made" href="mailto:gerald@w3.org" />
+ <link rel="stylesheet" type="text/css" href="/base.css" />
+ <meta name="keywords" content="HTML, Hypertext Markup Language, Validation,
+ W3C HTML Validation Service" />
+ <meta name="description" content="W3C's easy-to-use HTML validation
+ service, based on an SGML parser." />
+ <meta name="revision" content="$Id: users.html,v 1.1 2001-02-23 09:06:49 link Exp $" />
+ <meta name="modified" content="$Date: 2001-02-23 09:06:49 $" />
+ </head>
+
+ <body bgcolor="#FFFFFF" text="#000000" link="#0000ee" vlink="#551a8b">
+ <h1><a href="http://www.w3.org/"><img align="left"
+ src="http://www.w3.org/Icons/WWW/w3c_home" height="48" border="0"
+ alt="W3C" /></a> HTML Validator User Manual</h1>
+ <p align="right" class="navbar">
+ <a href="about.html">About this service</a> |
+ <a href="whatsnew.html">What's new</a> |
+ <a href="source/">Source code</a> |
+ <a href="feedback.html">Feedback</a><br clear="right"/>
+ <a href="file-upload.html">Upload files</a> |
+ <a href="http://lists.w3.org/Archives/Public/www-validator/">www-validator
+ archives</a> |
+ <a href="http://jigsaw.w3.org/css-validator/">CSS validator</a> |
+ <a href="checklink">Link checker</a><br clear="right"/>
+ <a href="http://www.w3.org/People/Raggett/tidy/">HTML Tidy</a> |
+ <a href="http://www.w3.org/MarkUp/">HTML home</a> |
+ <a href="http://www.w3.org/TR/html401/">HTML 4.01</a> |
+ <a href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a>
+ <br clear="all" />
+ </p>
+
+ <div id="Quickstart" class="stb">
+ <h2>QuickStart</h2>
+ <p>
+ Just type (or Cut&amp;Paste) the URL for the page you want to validate
+ into the text field on the form and press the "Validate this page"
+ button.
+ </p>
+ <p>
+ If you have a local file you want to validate, choose the "File Upload"
+ link from the navigation menu. Select the button labelled "Browse..."
+ (or something like that, depending on your browser) and choose the file
+ you want to upload in the usual manner for your OS.
+ </p>
+ </div>
+
+ <div id="Introduction" class="stb">
+ <h2>Introduction</h2>
+ <p>
+ The W3C HTML Validation Service is a web gateway to a well known SGML
+ parser called SP. SP will take your HTML and compare it to a set of
+ objective syntax rules called a "DTD", a Document Type Definition. This
+ way you can be sure your HTML is really valid and not just that it
+ conforms to some random programmer's idea of "nice" HTML. Note that
+ valid HTML does not guarantee that your pages will work ok in all
+ browsers. Most of them are severly broken and you may need to find
+ alternate ways of achieveing your goal.
+ </p>
+ <p>
+ When you send an URL to the W3C HTML Validation Service, it will fetch
+ that URL and feed it to the SGML parser. If you upload a file it'll get
+ fed directly into the SGML parser. We then take the output from the
+ SGML parser and format it nicely as HTML and send it back to your web
+ browser. The W3C HTML Validation Service isn't generating any of the
+ error messages; they are all generated by the underlying SGML Parser
+ which is checking your HTML against the actual standard for the version
+ of HTML you are using.
+ </p>
+ </div>
+
+ <div id="Options" class="stb">
+ <h2>The Options</h2>
+ <p>
+ In addition to the text field where you enter an URL -- or the file
+ selection field if you are uploading files -- there are a few
+ checkboxes that alter the behaviour of the validator. The options are:
+ </p>
+
+ <dl>
+ <dt>Show source input (<code>ss</code>)</dt>
+ <dd>
+ Displays the HTML source of the document you validated and links
+ error messages directly to lines in this output. Makes it easy to
+ see what's wrong.
+ </dd>
+ <dt>Show an outline of this document (<code>outline</code>)</dt>
+ <dd>
+ Will generate an outline of your document from the H1 - H6 elements.
+ For a properly formed document, this will be a nicely nested tree
+ structure. The visualization of your document's structure makes it
+ easier to see where you've skipped a heading.
+ </dd>
+ <dt>Show parse tree (<code>sp</code>)</dt>
+ <dd>
+ Shows you exactly how the SGML Parser read your document. Probably
+ best used only by advanced users as it deals with low-level SGML
+ constructs.
+ </dd>
+ <dt>exclude attributes from the parse tree (<code>noatt</code>)</dt>
+ <dd>Supress attributes from the parse tree to make it more readable.</dd>
+ </dl>
+ </div>
+
+ <div id="Calling" class="stb">
+ <h2>Calling the Validator</h2>
+ <p>
+ You can link directly to the Validator home page, or you can call the
+ Validator CGI program. The home page is &lt;URL:<a
+ href="http://validator.w3.org/">http://validator.w3.org/</a>&gt; at
+ the moment (and for the forseeable future) and the CGI program can be
+ reached at &lt;URL:<a
+ href="http://validator.w3.org/check">http://validator.w3.org/check</a>&gt;.
+ </p>
+ <p>
+ If you call the CGI program with extra path info matching "/referer"
+ (i.e. &lt;URL:<a href="http://validator.w3.org/check/referer">http://validator.w3.org/check/referer</a>&gt;)
+ it will fetch the refering document and validate that. This means that
+ if you embed a link to that URL in your pages, following on that link
+ will send you the validation results for that page.
+ </p>
+ <p>
+ You can also link to the validation results for a specific page. You do
+ this by giving "check" an "uri" parameter pointing at the page you want
+ to validate. For example &lt;URL:<a href="http://validator.w3.org/check?uri=http://www.example.com/">http://validator.w3.org/check?uri=http://www.example.com/</a>&gt;
+ will validate the www.example.com home page.
+ </p>
+ <p>
+ The various options are listed above in the section
+ "<a href="#Options">The Options</a>" in paranthesis after the long
+ name. To add options to your links directly, append the options
+ separated by a semi-colon. For example &lt;URL:<a href="http://validator.w3.org/check?uri=http://www.example.com/;ss;outline;sp">http://validator.w3.org/check?uri=http://www.example.com/;ss;outline;sp</a>&gt;
+ will validate the example.com home page with "Show Source", "Outline" and
+ "Show Parse Tree" on, but "Exclude Attributes" off.
+ </p>
+ <p>
+ You may also see these separated by amperstands and equal-signs, but
+ this usage is deprecated and support may be removed at some time in the
+ future.
+ </p>
+ </div>
+
+ <div id="Interpret" class="stb">
+ <h2>Interpreting the results</h2>
+ <p>
+ Interpreting the error messages isn't quite what you'd call easy. The
+ error messages are generated in the context of a full SGML environment
+ which demands a somewhat higher level of technical detail then your
+ average HTML document. We're working on ways to make the error messages
+ more friendly, but for now feel free to email the
+ <a href="mailto:www-validator@w3.org">www-validator@w3.org</a>
+ mailinglist if you need help interpreting the results. This will have
+ the added benefit of letting us know which error messages are causing
+ the most trouble so we can fix those first. Please be as specific as
+ possible and include the <em>exact</em> error message and, preferably, an URL
+ we can validate to see for ourselves.
+ </p>
+ </div>
+ <div id="Installing" class="stb">
+ <h2>Installing a local Validator</h2>
+ <p>
+ You can download the Validator to tun on your own system, but it's not
+ recommended for average users as the process is rather complex and
+ involves obscure incantations on the command line. <tt>:-)</tt>
+ </p>
+ <p>
+ If you feel you're up to the task, you can find the information you need
+ in our <a href="devel.html">Developer Manual</a>.
+ </p>
+ </div>
+ </body>
+</html>