<?xml version="1.0" encoding="iso-8859-1"?>

<!-- start of legalxhtml-1.mod -->
<!-- .............................................. -->
<!-- file: legalxhtml-1.mod

     Copyright Hypergrove Engineering, All Rights Reserved.
     
     Revision: $Id: legalxhtml-1.mod,v 1.0 

     This DTD module defines an XHTML Host Language Document Type.
     Accordingly, it follows these rules:
     
     1.  The document type must be defined using one of the implementation methods
         defined by the W3C. Currently this is limited to XML DTDs and XML Schema.
         
     2.  The schema which defines the document type must have a unique identifier 
         as defined in Naming Rules [p.19] that uses the string "XHTML" in its 
         first token of the public text description.
         
     3.  The schema which defines the document type must include, at a minimum, 
         the Structure, Hypertext, Text, and List modules defined in this specification.
         
     4.  For each of the W3C-defined modules that are included, all of the elements, 
         attributes, types of attributes (including any required enumerated value lists), 
         and any required minimal content models must be included (and optionally extended) 
         in the document type’s content model. When content models are extended, all of the 
         elements and attributes (along with their types or any required enumerated value 
         lists) required in the original content model must continue to be required.
         
     5.  The schema that defines the document type may define additional elements and 
         attributes. However, these must be in their own XML namespace [XMLNAMES] 
         [p.256] . If additional elements are defined by a module, the attributes 
         defined in included XHTML modules are available for use on those elements, 
         but MUST be referenced using their namespace-qualified identifier (e.g., xhtml:id). 
         The semantics of the attributes remain the same as when used on an 
         XHTML-namespace element.
     
     This DTD module uses these PUBLIC and SYSTEM identifiers:

       PUBLIC "-//HYPERGROVE//DTD XHTML LEGAL 1.0//EN"
       SYSTEM "http://www.hypergrove.com//DTD/legalxhtml.mod"
       
     Author: John McClure, Hypergrove Engineering, Inc.
     
     Revisions:
     2005-01-05   Initial Draft
     ........................................................ -->

<!-- LegalXHTML Module Element Definitions

     1. <legal:id> - Text for an identifier of a block element within a legal instrument.
         
         Minimal Content Model: (PCDATA|Inline)*
     
     2. <legal:instrument> - Container for legal material within a larger XHTML document. 
         
         Minimal Content Model: (div*,legal:pagearea*,Flow*,legal:endorsement+,div*)
         
     3. <legal:footnote> - Container for content placed as a footnote for text on a page
         
         Minimal Content Model: (PCDATA|Inline)*
         
     4. <legal:footer> - Container for content placed as a running footer.
         
         Minimal Content Model: (PCDATA|Inline)*
         
     5. <legal:page> - Container for content formatted as a page.
         
         Minimal Content Model: (Flow)*
         
     6. <legal:header> - Container for content placed as a running header.
         
         Minimal Content Model: (PCDATA|Inline)*
         
     7. <legal:endorsement> - Text for an endorsement to a legal instrument.
         
         Minimal Content Model: (PCDATA|Inline)*
         
     8. <legal:sidebar> - Container for flowed content on a page within a legal instrument
         
         Minimal Content Model: (PCDATA|Flow)*
         
     9. <legal:authority> - Container for identifying a legal authority within a legal instrument
         
         Minimal Content Model: (PCDATA|Flow)*
         
-->
         

<!-- ........................................................ -->
<!-- legal: Namespace Definition ............................ -->
     
<!-- Declare default prefix for items defined in this module  -->
<!-- Note that NS.prefixed can be overridden by the XHTML     -->
<!-- Framework or by a document instance.                     -->
     
<!ENTITY % NS.prefixed "INCLUDE" >
<!ENTITY % legal.prefixed "%NS.prefixed;" >

<!-- Declare the namespace of this module -->
<!ENTITY % legal.xmlns "http://www.hypergrove.com/xmlns/legalxhtml" >

<!-- Declare the default prefix for this module -->
<!ENTITY % legal.prefix "legal" >

<!-- Declare the prefix for this module -->
<![%legal.prefixed;[
<!ENTITY % legal.pfx "%legal.prefix;:" >
]]>
<!ENTITY % legal.pfx "" >

<!-- Declare the xml namespace attribute for this module -->
<![%legal.prefixed;[
<!ENTITY % legal.xmlns.extra.attrib
    "xmlns:%legal.prefix;   %URI.datatype;  #FIXED  '%legal.xmlns;'" >
]]>
<!ENTITY % legal.xmlns.extra.attrib "" >

<!-- Declare the extra namespace that should be included in the XHTML
     elements -->
<!ENTITY % XHTML.xmlns.extra.attrib
    %legal.xmlns.extra.attrib; >


<!-- ......................................................... -->
<!-- instrument: Element Definition .......................... -->

<!-- The instrument element encapusulates document content that is 
     considered a legal instrument by its parties.
     
     Its content model builds on a body element by adding the
     attachment, layout, and endorsement elements.
-->

<!ENTITY % instrument.element  "INCLUDE" >
<![%instrument.element;[
<!ENTITY % instrument.content  
                        "( %body.content;|%attachment.qname;* )" >
<!ENTITY % instrument.qname  "instrument" >
<!ELEMENT %instrument.qname;  %instrument.content; >
<!-- end of instrument.element -->]]>

<!ENTITY % instrument.attlist  "INCLUDE" >
<![%instrument.attlist;[
<!ATTLIST %instrument.qname;
      %XHTML.xmlns.attrib;
      %I18n.attrib;
>
<!-- end of instrument.attlist -->]]>

<!-- ......................................................... -->
<!-- attachment: Element Definition .......................... -->

<!-- The attachment element encapsulates content that is formally 
     attached to an instrument. 
     
     Its content model is the same as a body element.
-->

<!ENTITY % attachment.element  "INCLUDE" >
<![%attachment.element;[
<!ENTITY % attachment.content  "( %body.content; )+" >
<!ENTITY % attachment.qname  "attachment" >
<!ELEMENT %attachment.qname;  %attachment.content; >
<!-- end of attachment.element -->]]>

<!ENTITY % attachment.attlist  "INCLUDE" >
<![%attachment.attlist;[
<!ATTLIST %attachment.qname;
      %XHTML.xmlns.attrib;
      %I18n.attrib;
>
<!-- end of attachment.attlist -->]]>

<!-- ......................................................... -->
<!-- layout: Element Definition .............................. -->

<!-- The layout element encapsulate text or image content that
     is to be placed into a certain area of a document when 
     rendered, such as a running page footer or header. 
     All content outside of a layout element is rendered in the
     "running body" portion of a document.
-->

<!ENTITY % layout.element  "INCLUDE" >
<![%layout.element;[
<!ENTITY % layout.content  "( #PCDATA )" >
<!ENTITY % layout.qname  "layout" >
<!ELEMENT %layout.qname;  %layout.content; >
<!-- end of layout.element -->]]>

<!ENTITY % layout.attlist  "INCLUDE" >
<![%layout.attlist;[
<!ATTLIST %layout.qname;
      %XHTML.xmlns.attrib;
      %I18n.attrib;
>
<!-- end of layout.attlist -->]]>

<!-- ......................................................... -->
<!-- endorsement: Element Definition ........................... -->

<!-- The endorsement element is an inline element that encapsulates
     any representation of a endorsement said affixed to the legal
     instrument. Every legal instrument requires at least one
     endorsement element. Every legal instrument said "executed"
     contains non-empty endorsement elements.
-->

<!ENTITY % endorsement.element  "INCLUDE" >
<![%endorsement.element;[
<!ENTITY % endorsement.content  "( #PCDATA )" >
<!ENTITY % endorsement.qname  "endorsement" >
<!ELEMENT %endorsement.qname;  %endorsement.content; >
<!-- end of endorsement.element -->]]>

<!ENTITY % endorsement.attlist  "INCLUDE" >
<![%endorsement.attlist;[
<!ATTLIST %endorsement.qname;
      %XHTML.xmlns.attrib;
      %I18n.attrib;
>
<!-- end of endorsement.attlist -->]]>

<!-- end of legalxhtml-1.mod -->

