- From: Benjamin Niemann <pink@odahoda.de>
- Date: Mon, 11 Sep 2006 10:43:09 +0200
- To: www-validator@w3.org
Hello,
Matias wrote:
> Validating Error [404]: "character X is the first character of a
> delimiter but occurred as data"
>
> Please, i donīt understand this error, Iīm using this javascript code:
> <script type="text/javascript">
> var months=new Array(13);
> months[1]="Enero";
> months[2]="Febrero";
> months[3]="Marzo";
> months[4]="Abril";
> months[5]="Mayo";
> months[6]="Junio";
> months[7]="Julio";
> months[8]="Augosto";
> months[9]="Septiembre";
> months[10]="Octubre";
> months[11]="Noviembre";
> months[12]="Dciembre";
> var time=new Date();
> var lmonth=months[time.getMonth() + 1];
> var date=time.getDate();
> var year=time.getYear();
> if (year < 2000)
> year = year + 1900;
> document.write(date + " de " + lmonth + " de " + year);
> </script>
> The mistake appears in this line: if (year < 2000)
> My personal web page is a valid xhtml 1.0 strict.
In XHTML the content of the SCRIPT element is PCDATA, so the parser (which
does not know anything about JavaScript) expects the '<' to start a start-
or end-tag.
Enclose the script content with '<![CDATA[' ... ']]>' to tell the parser
that you don't want characters like '<' to be parsed as markup delimiters.
Or move the script into an external file and reference it with
<script src=".." type="text/javascript"></script>.
In HTML the SCRIPT element has CDATA content, so the parser would ignore any
markup delimiters (like '<', '&', ...) except for '</' followed by a
character (a..z, A..Z), which markes the end of the element content. So you
would not have this problem with HTML.
Hope that helps,
Benjamin
--
Benjamin Niemann
Email: pink at odahoda dot de
WWW: http://pink.odahoda.de/
Received on Monday, 11 September 2006 08:43:40 UTC