<body>

<body> (text body) contains the whole body of a single unitary text, excluding any front or back matter. 4 Default Text Structure
Moduletextstructure — 4 Default Text Structure
Attributes att.declaring (@decls)
Used by
May contain
Declaration

<rng:element name="body">
<rng:ref name="att.global.attributes"/>
<rng:ref name="att.declaring.attributes"/>
<rng:group>
<!-- globals as usual -->
 <rng:zeroOrMore>
  <rng:ref name="model.global"/>
 </rng:zeroOrMore>
<!--possibly some divTops, interspersed with globals -->
 <rng:optional>
  <rng:group>
   <rng:group>
    <rng:ref name="model.divTop"/>
   </rng:group>
   <rng:zeroOrMore>
    <rng:choice>
     <rng:ref name="model.global"/>
     <rng:ref name="model.divTop"/>
    </rng:choice>
   </rng:zeroOrMore>
  </rng:group>
 </rng:optional>
<!-- possibly some generated divs, interspersed with globals -->
 <rng:optional>
  <rng:group>
   <rng:group>
    <rng:ref name="model.divGenLike"/>
   </rng:group>
   <rng:zeroOrMore>
    <rng:choice>
     <rng:ref name="model.global"/>
     <rng:ref name="model.divGenLike"/>
    </rng:choice>
   </rng:zeroOrMore>
  </rng:group>
 </rng:optional>
 <rng:group>
<!-- now a choice between a) some divLike things, with globals and generated divs after them if needed b) some div1Like things, with globals and generated divs after them if needed c) same again, preceded by model.common -->
  <rng:choice>
<!-- a -->
   <rng:oneOrMore>
    <rng:group>
     <rng:group>
      <rng:ref name="model.divLike"/>
     </rng:group>
     <rng:zeroOrMore>
      <rng:choice>
       <rng:ref name="model.global"/>
       <rng:ref name="model.divGenLike"/>
      </rng:choice>
     </rng:zeroOrMore>
    </rng:group>
   </rng:oneOrMore>
<!-- b -->
   <rng:oneOrMore>
    <rng:group>
     <rng:group>
      <rng:ref name="model.div1Like"/>
     </rng:group>
     <rng:zeroOrMore>
      <rng:choice>
       <rng:ref name="model.global"/>
       <rng:ref name="model.divGenLike"/>
      </rng:choice>
     </rng:zeroOrMore>
    </rng:group>
   </rng:oneOrMore>
<!-- c -->
   <rng:group>
    <rng:oneOrMore>
     <rng:group>
      <rng:ref name="model.common"/>
     </rng:group>
     <rng:zeroOrMore>
      <rng:ref name="model.global"/>
     </rng:zeroOrMore>
    </rng:oneOrMore>
    <rng:optional>
     <rng:choice>
<!-- a -->
      <rng:oneOrMore>
       <rng:group>
        <rng:group>
         <rng:ref name="model.divLike"/>
        </rng:group>
        <rng:zeroOrMore>
         <rng:choice>
          <rng:ref name="model.global"/>
          <rng:ref name="model.divGenLike"/>
         </rng:choice>
        </rng:zeroOrMore>
       </rng:group>
      </rng:oneOrMore>
<!-- b -->
      <rng:oneOrMore>
       <rng:group>
        <rng:group>
         <rng:ref name="model.div1Like"/>
        </rng:group>
        <rng:zeroOrMore>
         <rng:choice>
          <rng:ref name="model.global"/>
          <rng:ref name="model.divGenLike"/>
         </rng:choice>
        </rng:zeroOrMore>
       </rng:group>
      </rng:oneOrMore>
     </rng:choice>
    </rng:optional>
   </rng:group>
  </rng:choice>
<!-- end of choice -->
 </rng:group>
<!-- finally, some divBottoms interspersed with globals -->
 <rng:zeroOrMore>
  <rng:group>
   <rng:group>
    <rng:ref name="model.divBottom"/>
   </rng:group>
   <rng:zeroOrMore>
    <rng:ref name="model.global"/>
   </rng:zeroOrMore>
  </rng:group>
 </rng:zeroOrMore>
</rng:group>
</rng:element>
element body
{
   att.global.attributes,
   att.declaring.attributes,
   (
      model.global*,
      ( ( model.divTop ), ( model.global | model.divTop )* )?,
      ( ( model.divGenLike ), ( model.global | model.divGenLike )* )?,
      (
         ( ( model.divLike ), ( model.global | model.divGenLike )* )+
       | ( ( model.div1Like ), ( model.global | model.divGenLike )* )+
       | (
            ( ( model.common ), model.global* )+,
            (
               ( ( model.divLike ), ( model.global | model.divGenLike )* )+
             | ( ( model.div1Like ), ( model.global | model.divGenLike )* )+
            )?
         )
      ),
      ( ( model.divBottom ), model.global* )*
   )
}
Example
<body>
 <l>Nu scylun hergan hefaenricaes uard</l>
 <l>metudæs maecti end his modgidanc</l>
 <l>uerc uuldurfadur sue he uundra gihuaes</l>
 <l>eci dryctin or astelidæ</l>
 <l>he aerist scop aelda barnum</l>
 <l>heben til hrofe haleg scepen.</l>
 <l>tha middungeard moncynnæs uard</l>
 <l>eci dryctin æfter tiadæ</l>
 <l>firum foldu frea allmectig</l>
 <trailer> primo cantauit Cædmon istud carmen.</trailer>
</body>