<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Frames Module -->
<grammar xmlns="http://relaxng.org/ns/structure/1.0">

<include href="struct.rng">

  <define name="html">
    <element name="html">
      <ref name="html.attlist"/>
      <ref name="head"/>
      <ref name="frameset"/>
    </element>
  </define>

</include>

<define name="frameset">
  <element name="frameset">
    <ref name="frameset.attlist"/>
    <interleave>
      <oneOrMore>
	<choice>
	  <ref name="frameset"/>
	  <ref name="frame"/>
	</choice>
      </oneOrMore>
      <optional>
	<ref name="noframes"/>
      </optional>
    </interleave>
  </element>
</define>

<define name="frameset.attlist">
  <ref name="Core.attrib"/>
  <optional>
    <attribute name="cols">
      <ref name="MultiLength.datatype"/>
    </attribute>
  </optional>
  <optional>
    <attribute name="rows">
      <ref name="MultiLength.datatype"/>
    </attribute>
  </optional>
</define>

<define name="frame">
  <element name="frame">
    <ref name="frame.attlist"/>
  </element>
</define>

<define name="frame.attlist">
  <ref name="Core.attrib"/>
  <optional>
    <attribute name="longdesc">
      <ref name="URI.datatype"/>
    </attribute>
  </optional>
  <optional>
    <attribute name="src">
      <ref name="URI.datatype"/>
    </attribute>
  </optional>
  <optional>
    <attribute name="frameborder">
      <choice>
        <value>1</value>
        <value>0</value>
      </choice>
    </attribute>
  </optional>
  <optional>
    <attribute name="marginwidth">
      <ref name="Pixels.datatype"/>
    </attribute>
  </optional>
  <optional>
    <attribute name="marginheight">
      <ref name="Pixels.datatype"/>
    </attribute>
  </optional>
  <optional>
    <attribute name="noresize">
      <value>noresize</value>
    </attribute>
  </optional>
  <optional>
    <attribute name="scrolling">
      <choice>
        <value>yes</value>
        <value>no</value>
        <value>auto</value>
      </choice>
    </attribute>
  </optional>
</define>

<define name="noframes">
  <element name="noframes">
    <ref name="noframes.attlist"/>
    <ref name="body"/>
  </element>
</define>

<define name="noframes.attlist">
  <ref name="Common.attrib"/>
</define>

</grammar>