<!-- ...................................................................... -->
<!-- XHTML Frames Module  ................................................. -->
<!-- file: xhtml-frames-1.mod

     This is XHTML, a reformulation of HTML as a modular XML application.
     Copyright 1998-2000 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: $Id: xhtml-frames-1.mod,v 1.7 2000/06/17 13:40:22 ahby Exp $ SMI

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

       PUBLIC "-//W3C//ELEMENTS XHTML Frames 1.0//EN"
       SYSTEM "xhtml-frames-1.mod"

     Revisions:
     (none)
     ....................................................................... -->

<!-- Frames 

        frameset, frame, noframes

     This module declares frame-related element types and attributes.
-->

<!ENTITY % frameset.qname  "frameset" >
<!ENTITY % frame.qname  "frame" >
<!ENTITY % noframes.qname  "noframes" >

<!-- comma-separated list of MultiLength -->
<!ENTITY % MultiLengths.datatype "CDATA" >

<!-- render in this frame --> 
<!ENTITY % FrameTarget.datatype "CDATA" >

<!-- The content model for XHTML documents depends on whether 
     the <head> is followed by a <frameset> or <body> element. 
--> 
 
<!ENTITY % frameset.content 
     "(( %frameset.qname; | %frame.qname; )+, %noframes.qname;? )" >
<!ELEMENT %frameset.qname;  %frameset.content; >
<!ATTLIST %frameset.qname; 
      %Core.attrib;
      rows         %MultiLengths.datatype;  #IMPLIED
      cols         %MultiLengths.datatype;  #IMPLIED
> 
 
<!-- reserved frame names start with "_" otherwise starts with letter --> 

<!ENTITY % frame.content  "EMPTY" >
<!ELEMENT %frame.qname;  %frame.content; >
<!ATTLIST %frame.qname; 
      %Core.attrib;
      longdesc     %URI.datatype;           #IMPLIED
      src          %URI.datatype;           #IMPLIED
      frameborder  ( 1 | 0 )                '1'
      marginwidth  %Pixels.datatype;        #IMPLIED
      marginheight %Pixels.datatype;        #IMPLIED
      noresize     ( noresize )             #IMPLIED
      scrolling    ( yes | no | auto )      'auto'
> 
 
<!-- changes to other declarations .................... -->

<!-- redefine content model for html element, 
     substituting frameset for body -->
<!ENTITY % html.content 
     "( %head.qname;, %frameset.qname; )" >
 
<!-- alternate content container for non frame-based rendering --> 
 
<!ENTITY % noframes.content "( %body.qname; )"> 
<!ELEMENT %noframes.qname;  %noframes.content; >
<!ATTLIST %noframes.qname; 
      %Common.attrib;
> 

<!-- add 'target' attribute to 'a' element -->
<!ATTLIST %a.qname;
      target       %FrameTarget.datatype;   #IMPLIED
>

<!-- add 'target' attribute to 'area' element -->
<!ATTLIST %area.qname;
      target       %FrameTarget.datatype;   #IMPLIED
>

<!-- add 'target' attribute to 'link' element -->
<!ATTLIST %link.qname;
      target       %FrameTarget.datatype;   #IMPLIED
>

<!-- add 'target' attribute to 'form' element -->
<!ATTLIST %form.qname;
      target       %FrameTarget.datatype;   #IMPLIED
>

<!-- add 'target' attribute to 'base' element -->
<!ATTLIST %base.qname;
      target       %FrameTarget.datatype;   #IMPLIED
>

<!-- end of xhtml-frames-1.mod -->
