<?xml version="1.0" encoding="UTF-8"?>
<!-- ============================================================= -->
<!-- MODULE:    Mulberry Technologies Tag Library Collective       -->
<!--            v8 DTD                                             -->
<!-- VERSION:   8                                                  -->
<!-- DATE:      January, 2015                                      -->
<!-- ============================================================= -->

<!-- =============================================================
     Formal Public Identifier:
1"-//Mulberry//DTD Mulberry Technologies Tag Library Collective v8 XML 20140505//EN"
     ============================================================= -->

<!-- ============================================================= -->
<!-- SYSTEM:    Mulberry Tag Library                               -->
<!--                                                               -->
<!-- PURPOSE:   For validating tag library collectives, i.e. sets  -->
<!--            of related tag library components to be published  -->
<!--            in a comprehensive set of documentation covering   -->
<!--            several profiles.                                  -->
<!--                                                               -->
<!-- MODULES REQUIRED:                                             -->
<!--            1) XHTML Table Model                               -->
<!--            2) ISO Character Entity Sets                       -->
<!--            3) Mulberry Tag Library DTD (Taglib8.dtd)          -->
<!--                                                               -->
<!-- CREATED FOR:                                                  -->
<!--            Mulberry Technologies, Inc.                        -->
<!--                                                               -->
<!-- ORIGINAL CREATION DATE:                                       -->
<!--            June 2010                                          -->
<!--                                                               -->
<!-- CREATED BY:                                                   -->
<!--            Mulberry Technologies, Inc. (BTU/wap)              -->
<!--            17 West Jefferson Street, Suite 207                -->
<!--            Rockville, MD  20850  USA                          -->
<!--            Phone:  +1 301-315-9631                            -->
<!--            Fax:    +1 301-315-8285                            -->
<!--            e-mail: info@mulberrytech.com                      -->
<!--            WWW:    http://www.mulberrytech.com                -->
<!-- ============================================================= -->

<!-- ============================================================= -->
<!--                   DESIGN CONSIDERATIONS                       -->
<!-- ============================================================= -->

<!-- This DTD describes a document model providing for high-level
     description of a tag set supporting several distinct profiles,
     any of which might have been individually described in a
     standard-issue Mulberry Tag Library, but whose basis in the
     unified tag set introduces requirements for managing and
     describing them together.

     Essentially, that is, this model consolidates some information
     about a tag set in the same way as a Mulberry Tag Library does,
     while expecting other information to be described at the level
     of the individual profile.                                    -->
     
<!-- ============================================================= -->
<!--                   CHANGE HISTORY                              -->
<!-- ============================================================= -->

<!-- =============================================================

  4.  FOR NISO STD                                   2015-01-26  (dal)
      Added <niso-profile-title> to <profile.meta>
      for use only when generating the NISO Standard from a JATS
      collective. New element holds the profile-specific seciton
      title of the Standard.                                       -->

<!-- =============================================================

  3.  Added @NSIO attribute to designate which       2015-01-15  (cmg)
      to be included in Standards documents                        -->
 
<!-- =============================================================

  2.  Added @xml:base to mtl:profile                 2014-05-13  (dal)
      to avoid Oxygen Preferences errors on XIclude                -->
 
<!-- ============================================================= 

  1.  Converted to Tablib8 version (cmg)             2014-01-08
       - Tablib8 constructed to include attribute examples
       - Addede <pub-date> to <profile.metadata>
     
     ============================================================= 
  0. Prototype version (wap)                            2010-06-03

                                                                   -->
<!-- ============================================================= -->
<!--                   DECLARATION OF TAG LIBRARY DTD              -->
<!-- ============================================================= -->

<!--                     TAG LIBRARY DTD                           -->
<!--                     Lower-level components for this DTD are all 
                         found  therein.                           -->

<!ENTITY % TLD           SYSTEM "Taglib8.dtd"                        >

<!-- ============================================================= -->
<!--                    INTERNAL PARAMETER ENTITIES                -->
<!-- ============================================================= -->

<!--                    ELEMENT INFO MODEL                         -->
<!--                    Element description in a collective file.  -->
<!ENTITY % elem.info.model
                       "(elem.tag, elem.name, index*,
                         definition, remarks?, related.elem?,
                         content.model*, model.desc?, present.info?,
                         module.defined?, profile.elem.info*,
                         rev.history?)"                              >


<!--                    ATTRIBUTE INFO MODEL                       -->
<!--                    Attribute description in a collective file.-->
<!ENTITY % attr.info.model
                       "(attr.tag, attr.name, index*,
                         definition, attr.usage?, remarks?,
                         present.info?, attr.value.info?,
                         profile.attr.info*,
                         rev.history?)"                              >


<!--                    PARAMETER ENTITY INFO MODEL                -->
<!--                    PE description in a collective file.       -->
<!ENTITY % pe.info.model
                       "(pe.tag, pe.name, index*, definition,
                         remarks?, content.model*, module.defined?,
                         profile.pe.info*, rev.history?)"            >


<!--                    PROFILE ELEMENT INFORMATION MODEL          -->
<!ENTITY % profile.elem.info.model
                       "(index*, remarks?, related.elem?,
                         content.model*, model.desc?, present.info?,
                         module.defined?, rev.history?)"             >

<!--                    PROFILE ATTRIBUTE INFORMATION MODEL        -->
<!ENTITY % profile.attr.info.model
                       "(index*, attr.usage?, remarks?,
                         present.info?, attr.value.info?,
                         rev.history?)"                              >

<!--                    PROFILE ATTRIBUTE INFORMATION MODEL        -->
<!ENTITY % profile.pe.info.model
                       "(index*, remarks?, content.model*,
                         module.defined?, rev.history?)"             >


<!-- ============================================================= -->
<!--                   INVOCATION OF STANDARD TAG LIBRARY DTD      -->
<!-- ============================================================= -->

%TLD;

<!-- Hereafter we are free to use parameter entities declared in
     the main taglib DTD.                                          -->

<!-- ============================================================= -->
<!--                    DEFINITION DOC TOP LEVEL                   -->
<!-- ============================================================= -->


<!--                    Tag Library Collective Document            -->
<!ELEMENT  mtl:taglib.collective
                        (metadata, intro, (collective | chapter |
                         mtl:profile | xi:include)*, app* )          >
<!--         xmlns:mtl namespace def for Mulberry XSD extensions.  -->
<!ATTLIST  mtl:taglib.collective
             xmlns:xi   CDATA #FIXED "http://www.w3.org/2001/XInclude"
             xmlns:mtl  CDATA                              #REQUIRED >


<!--                    COLLECTIVE PART                            -->
<!--       Groups together information common to all
           profiles                                                -->
<!ELEMENT  collective
                        (title, intro?, (chapter |
                         elem.sec | attr.sec | pe.sec |
                         profile.info)*)                             >
<!ATTLIST  collective
             id         ID                                  #IMPLIED >


<!--                    PROFILE INFO                               -->
<!ELEMENT  profile.info (title, intro?, chapter*, profile.elem.sec,
                         profile.attr.sec)                           >
<!ATTLIST  profile.info
             id         ID                                 #IMPLIED
             profile    CDATA                              #REQUIRED >


<!--                    PROFILE ELEMENT SECTION                    -->
<!--       The element definitions section of each profile
           can have its own Introduction  -->
<!ELEMENT  profile.elem.sec
                        (intro?)                                     >


<!--                    PROFILE ATTRIBUTE SECTION                  -->
<!--       Same for the attribute definitions section              -->
<!ELEMENT  profile.attr.sec
                        (intro?)                                     >


<!--                    PROFILE                                    -->
<!--       Describes a particular profile or subset of the tag set,
           expresed as a single DTD.                               -->
<!ELEMENT  mtl:profile
                        (profile.metadata,
                        (intro | chapter | profile.elem.intro |
                         profile.attr.intro | profile.pe.intro |
                         context.info | dtd.sec | index.sec |
                         %toc-placeholders;)* )                      >
<!ATTLIST  mtl:profile
             xmlns:xi   CDATA #FIXED "http://www.w3.org/2001/XInclude"
             xmlns:mtl  CDATA                              #IMPLIED
             xml:base   CDATA                              #IMPLIED  >


<!--                    PROFILE METADATA                           -->
<!--                    Metadata specific to a single profile file
                        for a collective. Used for title, publication
                        date and other title page and header info for
                        the Tag Library (and for JATS, the NISO
                        Standard).                                 -->
<!ELEMENT  profile.metadata
                        (title, niso-profile-title?, shortname, 
                         headname?, pub.date)                        >


<!--                    NISO-ONLY SECTION TITLE                    -->
<!--                    The title to be used on the NISO Standard
                        section that describes this particular 
                        profile.                                   -->
<!ELEMENT  niso-profile-title
                        (#PCDATA | %text; | linebrk)*                >
<!ATTLIST  niso-profile-title
             id         ID                                  #IMPLIED >


<!--                    APPENDIX                                   -->
<!--                    An appendix is just a special form of
                        chapter supporting special numbering       -->
<!ELEMENT  app          (title, index*, (%para.level;)*, intro?,
                         section*)                                   >
<!ATTLIST  app
            NISO       (no|yes)                            #IMPLIED 
            id         ID                                  #IMPLIED >


<!-- ============================================================= -->
<!--                    PROFILE-SPECIFIC ELEMENTS                  -->
<!-- ============================================================= -->


<!--                    PROFILE ELEMENT DEFINITIONS INTRO          -->
<!--                    The Element Definitions Section of each 
                        profile typically has its own Introduction,
                        not shared with other profiles.            -->
<!ELEMENT  profile.elem.intro
                        (intro)                                      >
<!ATTLIST  profile.elem.intro
            NISO       (no|yes)                            #IMPLIED  >
 

<!--                    PROFILE ATTRIBUTE DEFINITIONS INTRO        -->
<!--                    The Attribute Definitions Section of each 
                        profile typically has its own Introduction,
                        not shared with other profiles.            -->
<!ELEMENT  profile.attr.intro
                        (intro)                                      >
<!ATTLIST  profile.attr.intro
           NISO       (no|yes)                            #IMPLIED  >


<!--                    PROFILE PE DEFINITIONS INTRO               -->
<!--                    The Parameter Entity Definitions Section of 
                        each profile typically has its own 
                        Introduction, not shared with other profiles.
                                                                   -->
<!ELEMENT  profile.pe.intro
                        (intro)                                      >
<!ATTLIST  profile.pe.intro
            NISO       (no|yes)                            #IMPLIED  >


<!--                    PROFILE ELEMENT INFO                       -->
<!--                    Used in the collective file to mark an 
                        element as part of the particular tag set 
                        named in the profile attribute. This element 
                        may be empty if the element shares content 
                        with other tag sets, or it may contain 
                        information particular to this element in the 
                        named tag set.                             -->
<!ELEMENT  profile.elem.info
                        %profile.elem.info.model;                    >
<!ATTLIST  profile.elem.info
                         profile CDATA                     #REQUIRED >


<!--                    PROFILE ATTRIBUTE INFO                     -->
<!--                    Used in the collective file to mark an 
                        attribute as part of the particular tag set 
                        named in the profile attribute. This element 
                        may be empty if the attribute shares content 
                        with other tag sets, or it may contain 
                        information particular to this attribute in 
                        the named tag set.                         -->
<!ELEMENT  profile.attr.info
                        %profile.attr.info.model;                    >
<!ATTLIST  profile.attr.info
                        profile CDATA                      #REQUIRED >
 
                       
<!--                    PROFILE PE INFO                            -->
<!--                    Used in the collective file to mark a PE
                        as part of the particular tag set named  
                        in the profile attribute. This element may be 
                        empty if the PE shares content with other 
                        tag sets, or it may contain information 
                        particular to the PE in the named tag set. -->
<!ELEMENT  profile.pe.info
                        %profile.pe.info.model;                      >
<!ATTLIST  profile.pe.info
                        profile CDATA                      #REQUIRED >


<!-- ============================================================= -->
<!--                    EXAMPLES DOCUMENT ELEMENTS                 -->
<!-- ============================================================= -->
<!-- For maintaining sets of examples in external documents        -->

<!--                    EXAMPLES SET                               -->
<!--                    An external document containing a set of 
                        references to examples of element and/or 
                        attribute usage.                           -->
<!ELEMENT  mtl:examples.set (elem.examp | attr.examp)*               >
<!--         xmlns:mtl namespace def for Mulberry XSD extensions.  -->
<!ATTLIST  mtl:examples.set
             xmlns:mtl  CDATA                              #REQUIRED >


<!--                    ELEMENT EXAMPLES                           -->
<!--                    Examples for an element                    -->
<!ELEMENT  elem.examp   (examp.group*)                               >
<!--       The unique ID for the element; should correspond to an
           elem.info/@name in a main taglib                        -->
<!ATTLIST  elem.examp   name ID                            #REQUIRED >


<!--                    ATTRIBUTE EXAMPLES                         -->
<!--                    Examples for an attribute                  -->
<!ELEMENT  attr.examp   (examp.group*)                               >
<!--       The unique ID for the attribute; should correspond to an
           attr.info/@name in a main taglib                        -->
<!ATTLIST  attr.examp   name ID                            #REQUIRED >


<!-- ============================================================= -->
<!--                    XINCLUDE DECLARATIONS                      -->
<!-- ============================================================= -->
<!-- See http://www.w3.org/TR/xinclude/                            -->

<!ELEMENT xi:include (xi:fallback?)>
<!ATTLIST xi:include
    xmlns:xi        CDATA       #FIXED    "http://www.w3.org/2001/XInclude"
    href            CDATA       #IMPLIED
    parse           (xml|text)  "xml"
    xpointer        CDATA       #IMPLIED
    encoding        CDATA       #IMPLIED
    accept          CDATA       #IMPLIED
    accept-language CDATA       #IMPLIED
>

<!ELEMENT xi:fallback ANY>
<!ATTLIST xi:fallback
    xmlns:xi   CDATA   #FIXED   "http://www.w3.org/2001/XInclude"
>
<!-- ================== END OF TAG LIBRARY COLLECTIVE D=========== -->
