- From: Brock Murch <bmurch@seas.marine.usf.edu>
- Date: Mon, 16 Jun 2003 13:51:07 -0400
- To: Lincoln Stein <lstein@cshl.org>, www-validator@w3.org
Dear Lincoln : You probably saw the email from the w3-validator regarding the issue: "The validator is correct - you are not allowed to put "--" inside an XML comment. (Even in (SGML) HTML it would be wrong in this case.) In XHTML the content of the script element is #PCDATA, not CDATA (since XML doesn't have the latter), so all markup is treated normally. In particular, you do indeed want a CDATA section so that you don't need to escape markup characters all over the place; but you do not want to put the script inside <!-- -->, because in XHTML's script element that really is a comment. You may wish to consider using <script src="..." /> instead." So, that being the case, that the XHTML's script element is really a comment, and if I am scripting for XHTML ( thus assuming that the browser is capable of parsing according to the DOCTYPE ), perhaps this code snippet would work OK for CGI.pm ########################################### # Original Coding ########################################### # my $cdata_start = "\n<!-- Hide script\n"; # $cdata_start .= "$comment<![CDATA[\n" if $XHTML; # my $cdata_end = $XHTML ? "\n$comment]]>" : $comment; # $cdata_end .= " End script hiding -->\n"; ########################################### #insert for XHTML validation Testing ########################################### my $cdata_start = "\n<!-- Hide script\n" unless $XHTML; $cdata_start .= "$comment<![CDATA[\n" if $XHTML; my $cdata_end = $XHTML ? "\n$comment]]>" : $comment; $cdata_end .= " End script hiding -->\n" unless $XHTML; This seems to work just fine and will not affect the backwards compatibility issue unless the programmer is specifically coding for XHTML..... I believe that if the XHTML DOCTYPE is specified, the the XHTML rules really should be in place. I really can't follow the w3 suggestion: ' You may wish to consider using <script src="..." /> instead."' Since my perl script generates all the javascript on the fly, and creating and cleaning up files is a tremendous drag. This seems to work for me anyways, perhaps you might consider incorporating it? Brock Murch On Sunday 15 June 2003 5:34 pm, Lincoln Stein wrote: > Sadly, removing the comments will break the display on older browsers, so I > can't do that. > > Lincoln > > On Friday 13 June 2003 01:44 pm, Brock Murch wrote: > > Mr. Stein & Validator List: > > > > Background: > > perl -MCGI -e 'print $CGI::VERSION' > 2.95 > > perl -v >This is perl, v5.8.0 built for i386-linux-thread-multi > > server:Apache/2.0.40 (Red Hat Linux) mod_perl/1.99_05-dev Perl/v5.8.0 > > mod_auth_pgsql/0.9.12 PHP/4.2.2 mod_python/3.0.0 Python/2.2.1 > > mod_ssl/2.0.40 OpenSSL/0.9.6b DAV/2 > > cat /etc/redhat-release > > Red Hat Linux release 8.0 (Psyche) > > > > When trying to validate xhtml I am having an error: > > > > This is the code snippet: > > > > print $query->header(-target=>'_blank'); > > print $query->start_html( -title=>"$title", > > -script=>"$javascript", > > -onLoad=>"launch()", > > -head=>[ Link({-rel=>'stylesheet', > > -type=>'text/css', > > -href=>'/css/SSTProject.css'}), > > Link({-rel=>'stylesheet', > > -type=>'text/css', > > -href=>'/css/common.css'})] > > ); > > > > Basically the XML validator chokes on comments inside the <script> tag > > with xhtml. If there is a open <!-- to hide the script... (placed there > > via the CGI.pm module) and later a decrement is used (ie var this-- ) the > > parser calls it a "invalid comment declaration" I have saved a copy of > > the script output as a static page here: > > > > http://www.imars.usf.edu/SST/animate_CGI.html > > http://validator.w3.org/check?uri=http%3A%2F%2Fwww.imars.usf.edu%2FSST%2F > >an imate_CGI.html > > > > To make the page pass the parse test I only need to do remove the > > <!--comments tags-->: > > > > eg: > > diff animate.html animate_CGI.html > > 9c9 > > < > > --- > > > > > <!-- Hide script > > > > 298c298 > > < //]]> > > --- > > > > > //]]> End script hiding --> > > > > The page is then validated > > > > http://www.imars.usf.edu/SST/animate.html > > http://validator.w3.org/check?uri=http%3A%2F%2Fwww.imars.usf.edu%2FSST%2F > >an imate.html > > > > Any ideas on this? I am not a member of the list so please mail me > > directly.
Received on Monday, 16 June 2003 14:04:55 UTC