
<!doctype Memo [
<!element Memo         - - (Salutation, P*, Closing?)>
<!element Salutation   O O (Date & To & Address?)>
<!element (P|Closing|To|Address) - O (#PCDATA)>
<!element Date - O EMPTY>
<!attlist Date
	numeric CDATA #REQUIRED
]>

<!-- reset parser " ]> -->


<!doctype memo system>
<Memo>
<Date numeric="1994-06-12"> 
<To>Third Floor
<p>Please limit coffee breaks to 10 minutes.
<Closing>The Management
</Memo>

<!-- reset parser " ]> -->


Memo -> <Memo>, Salutation, P, Closing, </Memo>	
Salutation -> Date, To	
Date -> <Date numeric="1994-06-12">	
To -> <To>, "Third Floor"	
P -> <P>, "Please limit coffee breaks to 10 minutes."	
Closing -> <Closing>, "The Management"

<!-- reset parser " ]> -->


<!doctype foo>
<!DOCTYPE foo SYSTEM>
<!doctype bar system "abcdef">
<!doctype BaZ public "-//owner//DTD description//EN">
<!doctype BAZ Public "-//owner//DTD desc//EN" "sysid">
<!>
another way to escape < and &: <<!>xxx &<!>abc;
<!-- xyz -->
<!-- xyz -- --def-->
<!---- ---- ---->
<!------------>
<!doctype foo --my document type-- system "abc">

<!-- reset parser " ]> -->

<! doctype> <!,doctype> <!23>
<!- xxx -> <!-> <!-!>

<!-- reset parser " ]> -->

<!doctype xxx,yyy>
<!usemap map1>
<!-- comment-- xxx>
<!-- comment -- ->
<!----->

<!-- reset parser " ]> -->

<!doctype foo foo foo>
<!doctype foo 23 17>
<!junk decl>

<!-- reset parser " ]> -->


<!doctype doc [ <!element doc - - ANY> ]>
<!doctype doc  %stuff >
<![ IGNORE [ lkjsdflkj sdflkj sdflkj  ]]>
<![ CDATA [ lskdjf lskdjf lksjdf ]]>

<!-- reset parser " ]> -->

<x> yyy </X>
<abc.DEF   > ggg </abc.def >
<abc123.-23>
<A>abc def <b>xxx</b>def</a>
<A>abc def <b>xxxdef</a>

<!-- reset parser " ]> -->

< x > <324 </234>
<==> < b>
<%%%> <---> <...> <--->

<!-- reset parser " ]> -->

<xyz!> <abc/>
</xxx/> <xyz&def> <abc_def>

<!-- reset parser " ]> -->

<> xyz </>
<xxx<yyy> </yyy</xxx>
<xxx/content/

<!-- reset parser " ]> -->

<x attr="val">
<x ATTR ="val" val>
<y aTTr1= "val1">
<td WIDTH=12pt>
<yy attr1='xyz' attr2="def" attr3='xy"z' attr4="abc'def">
<xx abc='abc&#34;def'>
<xx aBC="fred &amp; barney">
<z attr1 = val1 attr2 = 23 attr3 = 'abc'>
<xx val1 val2 attr3=.76meters>
<a href=foo.html> ..</a> <a href=foo-bar.html>..</a>

<!-- reset parser " ]> -->

<x attr = abc$#@>
<y attr1,attr2>
<tt =xyz>
<z attr += 2>
<xx attr=50%>
<a href=http://foo/bar/>
<a href="http://foo/bar/> ... </a> ... <a href="xyz">...</a>
<xx "abc">
<xxx abc=>

<!-- reset parser " ]> -->


&#38; &#200;
&amp; &ouml;
&#38 &#200,xxx
&amp &abc() &xy12/..\
To illustrate the X tag, write &lt;X&gt;

<!-- reset parser " ]> -->

a & b, a &# b
a &, b &. c
a &#-xx &100

<!-- reset parser " ]> -->


&#2000000; &#20.7 &#20-35
&#23x;

<!-- reset parser " ]> -->


&#SPACE;
&#RE;

<!-- reset parser " ]> -->


<?>
<?style tt = font courier>
<?page break>
<?experiment> ... <?/experiment> 

<!-- reset parser " ]> -->

<xX val1 val2 aTTr3=".76meters">

<!-- reset parser " ]> -->

[Tag/Data]
Start Tag: `<xx'
  Attr Name: `'
  Name: `val1'
  Attr Name: `'
  Name: `val2'
  Attr Name: `attr3'
  Name Token: `.76meters'
  Tag Close: `>'

<!-- reset parser " ]> -->

<!Doctype Foo --my document type-- System "abc">

<!-- reset parser " ]> -->

[Aux Markup]
Markup Decl: `<!doctype'
  Name: `foo'
  Comment: `--my document type--'
  Name: `system'
  Literal: `"abc"'
  Tag Close: `>'

<!-- reset parser " ]> -->

<tag xxx=yyy ?>xxx <![IGNORE[ a<b>c]]> zzz

<!-- reset parser " ]> -->

[Err/Lim]
!!Error!!: `bad character in tag'
  Data: `?'
[Tag/Data]
Start Tag: `<tag'
  Attr Name: `xxx'
  Name Token: `yyy'
  Tag Close: `>'
[Tag/Data]
Data: `xxx '
[Err/Lim]
!!Limitation!!: `marked sections not supported'
  Data: `<!['
[Err/Lim]
!!Limitation!!: `declaration subset: skipping'
  Data: `IGNORE[ a<b>c'
[Tag/Data]
Data: ` zzz'

<!-- reset parser " ]> -->


Named Character Reference
&#SPACE;
&#RS &#RE;

<!-- reset parser " ]> -->


NET tags
<name/.../

Unclosed Start Tag
<name1<name2>

Empty Start Tag
<>

Empty End Tag
</>

<!-- reset parser " ]> -->

MD5 Checksum			  Filename
21f7b70ec7135531bc84fd4c5e3cdf3d  <A HREF="http://www.w3.org/pub/WWW/MarkUp/SGML/sgml-lex/sgml-lex-19960207.tar.gz">sgml-lex-19960207.tar.gz</A> (<A HREF="http://www.w3.org/pub/WWW/MarkUp/SGML/sgml-lex/sgml-lex-19960207.tar.gz.asc">pgp sig</A>)
083e21759d223b1005402120cdbf8169  <A HREF="http://www.w3.org/pub/WWW/MarkUp/SGML/sgml-lex/sgml-lex-19960207.zip">sgml-lex-19960207.zip</A> (<A HREF="http://www.w3.org/pub/WWW/MarkUp/SGML/sgml-lex/sgml-lex-19960207.zip.asc">pgp sig</A>)

<!-- reset parser " ]> -->


Message-Id: <199503202311.SAA23789@EBT-INC.EBT.COM>
Date: Mon, 20 Mar 1995 18:21:23 -0500
To: html-wg@oclc.org, sgml-internet@ebt.com
From: sjd@ebt.com (Steven J. DeRose)
Subject: SGML Open recommendations on HTML 3

<!-- reset parser " ]> -->

