<!-- ============================================================= -->
<!--                                                               -->
<!--  (c) 2009 Justsystems Canada Inc. All Rights Reserved         -->
<!--                                                               -->
<!-- ============================================================= -->
<!--                    HEADER                                     -->
<!-- ============================================================= -->
<!--  MODULE:    DITA Component DTD                                -->
<!--  VERSION:   1.2                                               -->
<!--  DATE:      December 2009                                     -->
<!--                                                               -->
<!-- ============================================================= -->

<!-- ============================================================= -->
<!--                    PUBLIC DOCUMENT TYPE DEFINITION            -->
<!--                    TYPICAL INVOCATION                         -->
<!--                                                               -->
<!--  Refer to this file by the following public identfier
 
PUBLIC "-//XMETAL//DTD DITA Component//EN"

OR

PUBLIC "-//XMETAL//DTD DITA Component//EN"

      Delivered as file "ditacomponent.dtd"                        -->

<!-- ============================================================= -->
<!--                    DOMAIN ENTITY DECLARATIONS                 -->
<!-- ============================================================= -->


<!ENTITY % ui-d-dec     PUBLIC 
"-//OASIS//ENTITIES DITA User Interface Domain//EN" 
"uiDomain.ent"                                  >
%ui-d-dec;

<!ENTITY % hi-d-dec     PUBLIC 
"-//OASIS//ENTITIES DITA Highlight Domain//EN" 
"highlightDomain.ent"                           >
%hi-d-dec;

<!ENTITY % pr-d-dec     PUBLIC 
"-//OASIS//ENTITIES DITA Programming Domain//EN" 
"programmingDomain.ent"                         >
%pr-d-dec;

<!ENTITY % sw-d-dec     PUBLIC 
"-//OASIS//ENTITIES DITA Software Domain//EN" 
"softwareDomain.ent"                            >
%sw-d-dec;

<!ENTITY % ut-d-dec     PUBLIC 
"-//OASIS//ENTITIES DITA Utilities Domain//EN" 
"utilitiesDomain.ent"                           >
%ut-d-dec;

<!ENTITY % indexing-d-dec     PUBLIC 
"-//OASIS//ENTITIES DITA Indexing Domain//EN" 
"indexingDomain.ent"                             >
%indexing-d-dec;

<!ENTITY % concept-dec    PUBLIC 
"-//OASIS//ENTITIES DITA 1.2 Concept//EN" 
"concept.ent"                                    >
%concept-dec;

<!ENTITY % reference-dec  PUBLIC 
"-//OASIS//ENTITIES DITA 1.2 Reference//EN" 
"reference.ent"                                  >
%reference-dec;

<!ENTITY % task-dec		  PUBLIC 
"-//OASIS//ENTITIES DITA 1.2 Task//EN" 
"task.ent"                                       >
%task-dec;

<!ENTITY % learningInteractionBase-d-dec 
  PUBLIC "-//OASIS//ENTITIES DITA Learning Interaction Base Domain//EN" 
         "learningInteractionBaseDomain.ent">
%learningInteractionBase-d-dec;

<!ENTITY % learning-d-dec 
  PUBLIC "-//OASIS//ENTITIES DITA Learning Domain//EN" 
         "learningDomain.ent">
%learning-d-dec;

<!ENTITY % learningmeta-d-dec 
  PUBLIC "-//OASIS//ENTITIES DITA Learning Metadata Domain//EN" 
         "learningMetadataDomain.ent">
%learningmeta-d-dec;

<!ENTITY % learningBase-dec     
  PUBLIC "-//OASIS//ENTITIES DITA 1.2 Learning Base//EN" 
         "learningBase.ent"
>%learningBase-dec;

<!ENTITY % learningContent-dec     
  PUBLIC "-//OASIS//ENTITIES DITA 1.2 Learning Content//EN" 
         "learningContent.ent"
>%learningContent-dec;

<!ENTITY % learningAssesment-dec     
  PUBLIC "-//OASIS//ENTITIES DITA 1.2 Learning Assessment//EN" 
         "learningAssessment.ent"
>%learningAssesment-dec;

<!ENTITY % learningSummary-dec     
  PUBLIC "-//OASIS//ENTITIES DITA 1.2 Learning Summary//EN" 
         "learningSummary.ent"
>%learningSummary-dec;

<!ENTITY % taskreq-d-dec     
  PUBLIC "-//OASIS//ENTITIES DITA Task Requirements Domain//EN" 
         "taskreqDomain.ent"
>%taskreq-d-dec;

<!ENTITY % hazard-d-dec     
  PUBLIC "-//OASIS//ENTITIES DITA Hazard Statement Domain//EN" 
         "hazardstatementDomain.ent"
>%hazard-d-dec;

<!-- ============================================================= -->
<!--                    DOMAIN EXTENSIONS                          -->
<!-- ============================================================= -->
<!--                    One for each extended base element, with
                        the name of the domain(s) in which the
                        extension was declared                     -->

<!ENTITY % pre          "pre     | %pr-d-pre;     | %sw-d-pre;     | 
                                   %ui-d-pre;"                       >
<!ENTITY % keyword      "keyword | %pr-d-keyword; | %sw-d-keyword; |
                                   %ui-d-keyword;"                   >
<!ENTITY % ph           "ph      | %pr-d-ph;      | %sw-d-ph;      | 
                                    %hi-d-ph;     | %ui-d-ph;"       >
<!ENTITY % fig          "fig     | %pr-d-fig;     | %ut-d-fig;"      >
<!ENTITY % dl           "dl      | %pr-d-dl;"                        >
<!ENTITY % index-base   "index-base | %indexing-d-index-base;"       >
<!ENTITY % lcInteractionBase "lcInteractionBase |
                         %learning-d-lcInteractionBase;
                        ">
<!ENTITY % metadata     "metadata |
                         %learningmeta-d-metadata;
                         ">


<!-- ============================================================= -->
<!--                    TOPIC NESTING OVERRIDE                     -->
<!-- ============================================================= -->

<!--                    Redefine the infotype entity to exclude 
                        other topic types and disallow nesting     -->
<!ENTITY % comp-info-types 
                        "component"                                  >


<!-- ============================================================= -->
<!--                    DOMAINS ATTRIBUTE OVERRIDE                 -->
<!-- ============================================================= -->
<!--                    Must be declared ahead of the DTDs, which
                        puts @domains first in order               -->

<!ENTITY included-domains 
                          "&hi-d-att; 
                           &ut-d-att; 
                           &indexing-d-att;
						   &hazard-d-att;
                           &concept-att;
                           &reference-att; 
                           &task-att; 
                           &learningInteractionBase-d-att;
                           &learning-d-att;
                           &learningmeta-d-att; 
                           &learningBase-att;
                           &learningContent-att;
                           &learningSummary-att; 
                           &learningAssessment-att;
	                       &taskreq-d-att;
  "
>


<!-- ============================================================= -->
<!--                    TOPIC ELEMENT INTEGRATION                  -->
<!-- ============================================================= -->

<!--                    Embed topic to get generic elements        -->
<!ENTITY % topic-type   PUBLIC "-//OASIS//ELEMENTS DITA Topic//EN"
"topic.mod"> 
 %topic-type;
        
<!--                    Embed task to get specific elements        -->
<!ENTITY % task-typemod PUBLIC 
"-//OASIS//ELEMENTS DITA Task//EN" 
"task.mod"                                      >
 %task-typemod;

<!--                     Embed reference to get specific elements  -->
<!ENTITY % reference-typemod 
                         PUBLIC 
"-//OASIS//ELEMENTS DITA Reference//EN" 
"reference.mod"                                 >
 %reference-typemod;

<!--                    Embed concept to get specific elements     -->
<!ENTITY % concept-typemod 
                        PUBLIC 
"-//OASIS//ELEMENTS DITA Concept//EN" 
"concept.mod"                                   >
 %concept-typemod;

<!--                    Embed glossary to get specific elements     -->
<!ENTITY % glossary-typemod 
                        PUBLIC 
"-//OASIS//ELEMENTS DITA Glossary//EN" 
"glossary.mod"                                   >
 %glossary-typemod;

<!--                    Embed glossaryGroup to get specific elements     -->
<!ENTITY % glossgroup-typemod 
                        PUBLIC 
"-//OASIS//ELEMENTS DITA Glossary Group//EN" 
"glossgroup.mod"                                   >
 %glossgroup-typemod;

<!--Embed learningBase to get specific elements -->
<!ENTITY % learningBase-typemod PUBLIC 
"-//OASIS//ELEMENTS DITA Learning Base//EN" 
"learningBase.mod">
%learningBase-typemod;

<!--Embed learningAssessment to get specific elements -->
<!ENTITY % learningAssessment-typemod PUBLIC 
"-//OASIS//ELEMENTS DITA Learning Assessment//EN" 
"learningAssessment.mod">
%learningAssessment-typemod;

<!--Embed learningContent to get specific elements -->
<!ENTITY % learningContent-typemod
  PUBLIC "-//OASIS//ELEMENTS DITA Learning Content//EN" 
	"learningContent.mod">
%learningContent-typemod;

<!--Embed learningSummary to get specific elements -->
<!ENTITY % learningSummary-typemod
  PUBLIC "-//OASIS//ELEMENTS DITA Learning Summary//EN" 
	"learningSummary.mod">
%learningSummary-typemod;

<!--Embed learningOverview to get specific elements -->
<!ENTITY % learningOverview-typemod PUBLIC 
"-//OASIS//ELEMENTS DITA Learning Overview//EN" 
"learningOverview.mod">
%learningOverview-typemod;

<!--Embed learningPlan to get specific elements -->
<!ENTITY % learningPlan-typemod PUBLIC 
"-//OASIS//ELEMENTS DITA Learning Plan//EN" 
"learningPlan.mod">
%learningPlan-typemod;



<!--                    Embed specialized to get specific elements -->
<!ENTITY % specialized-typemods
                        PUBLIC
"-//XMETAL//DTD DITA Component Specialized Typemods//EN"
"dcspecialized-typemods.ent"                                      >
 %specialized-typemods;

<!--                    Embed component to get specific elements   -->
<!ENTITY % component-typemod 
                        PUBLIC 
"-//XMETAL//ELEMENTS DITA Component//EN" 
"ditacomponent.mod"                                               >
 %component-typemod; 

<!-- ============================================================= -->
<!--                    DOMAIN ELEMENT INTEGRATION                 -->
<!-- ============================================================= -->


<!ENTITY % ui-d-def     PUBLIC 
"-//OASIS//ELEMENTS DITA User Interface Domain//EN" 
"uiDomain.mod"                                                      >
%ui-d-def;

<!ENTITY % hi-d-def     PUBLIC 
"-//OASIS//ELEMENTS DITA Highlight Domain//EN" 
"highlightDomain.mod"                                               >
%hi-d-def;

<!ENTITY % pr-d-def     PUBLIC 
"-//OASIS//ELEMENTS DITA Programming Domain//EN" 
"programmingDomain.mod"                                             >
%pr-d-def;

<!ENTITY % sw-d-def     PUBLIC 
"-//OASIS//ELEMENTS DITA Software Domain//EN" 
"softwareDomain.mod"                                                >
%sw-d-def;

<!ENTITY % ut-d-def     PUBLIC 
"-//OASIS//ELEMENTS DITA Utilities Domain//EN" 
"utilitiesDomain.mod"                                               >
%ut-d-def;

<!ENTITY % indexing-d-def     PUBLIC 
"-//OASIS//ELEMENTS DITA Indexing Domain//EN" 
"indexingDomain.mod"                                                 >
%indexing-d-def;

<!ENTITY % learningInteractionBase-d-def
  PUBLIC "-//OASIS//ELEMENTS DITA Learning Interaction Base Domain//EN" 
         "learningInteractionBaseDomain.mod">
%learningInteractionBase-d-def;

<!ENTITY % learning-d-def
  PUBLIC "-//OASIS//ELEMENTS DITA Learning Domain//EN" 
         "learningDomain.mod">
%learning-d-def;

<!ENTITY % learningmeta-d-def
  PUBLIC "-//OASIS//ELEMENTS DITA Learning Metadata Domain//EN" 
         "learningMetadataDomain.mod">
%learningmeta-d-def;

<!-- =============== End DITA Component DTD  ======================= -->

