- From: Joe English <joe@trystero.art.com>
- Date: Tue, 24 Sep 1996 14:36:20 PDT
- To: www-html@w3.org
Peter Flynn <pflynn@curia.ucc.ie> wrote: > Parsing the file > > <!doctype html system "html3.dtd"> > <html><head><title>Test</title></head><body> > <pre> > PROCEDURE frob > BEGIN > IF silly <> foolish THEN > WRITELN("Oooops."); > END > </pre></body></html> > > produces the following from sgmls: > > sgmls: SGML error at test.html, line 6 at ">": > PRE end-tag implied by short start-tag (no GI); not minimizable > > In other words, because PRE allows markup within it, any "<" in PRE is > expected to be the start of a valid element, and thus to be followed by > [-\.a-zA-Z]+ Not exactly... "<" is a delimiter-in-context, which means that it's only recognized as markup when it's followed by certain other things. In this case, one of the things that can follow it is the TAGC delimiter ">". (The sequence "<>" is an "empty start-tag". Don't ask...) Constructs like: <pre> if x <= y & x < z </pre> will pass through an SGML parser without an error (though it's no doubt a better idea to type <pre> if x <= y & x < z </pre> instead, if for no other reason than it's easier to remember to always use < than to remember all of SGML's delimiter recognition rules.) --Joe English joe@art.com
Received on Tuesday, 24 September 1996 17:36:41 UTC