<?xml version="1.0" encoding="UTF-8"?>
<!-- This file is part of the DITA learning and training content 
     specialization working design. It is a work-in-progress by
     the OASIS DITA learning and training content specialization 
     sub-committee.-->
<!--             (C) Copyright OASIS Open 2007, 2009                    -->
<!--             All Rights Reserved.                              -->
<!-- ============================================================= -->
<!--                    HEADER                                     -->
<!-- ============================================================= -->
<!--  MODULE:    DITA learningContent XSD                             -->
<!--  VERSION:   0.1                                               -->
<!--  DATE:      May 2007                                          -->
<!--                                                               -->
<!-- ============================================================= -->
<!-- SYSTEM:     Darwin Information Typing Architecture (DITA)     -->
<!--                                                               -->
<!-- PURPOSE:    W3C XML Schema to describe DITA Learning Base     -->
<!--                                                               -->
<!-- ORIGINAL CREATION DATE:                                       -->
<!--             May 2007                                          -->
<!--                                                               -->
<!--  UPDATES:                                                     -->
<!-- ============================================================= -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:ditaarch="http://dita.oasis-open.org/architecture/2005/" elementFormDefault="qualified"
    attributeFormDefault="unqualified">
    <!-- Add the domains to the base topic XML Schema -->
    <!--  ================ TOPIC DOMAINS =====================  -->
    <xs:include schemaLocation="urn:oasis:names:tc:dita:xsd:highlightDomain.xsd:1.2"/>
    <xs:include schemaLocation="urn:oasis:names:tc:dita:xsd:utilitiesDomain.xsd:1.2"/>
    <xs:include schemaLocation="urn:oasis:names:tc:dita:xsd:indexingDomain.xsd:1.2"/>
    <xs:include schemaLocation="urn:oasis:names:tc:dita:spec:learning:xsd:learningMetadataDomain.xsd:1.2" />
    <xs:include schemaLocation="urn:oasis:names:tc:dita:spec:learning:xsd:learningDomain.xsd:1.2"/>


    <!--  ================ GROUP DEFINITIONS =====================  -->
    <xs:include schemaLocation="urn:oasis:names:tc:dita:xsd:topicGrp.xsd:1.2"/>
    <xs:include schemaLocation="urn:oasis:names:tc:dita:xsd:tblDeclGrp.xsd:1.2"/>


    <!-- =================  MODULE INLCUDE DEFINITION  ==================  -->
    <xs:include schemaLocation="urn:oasis:names:tc:dita:xsd:commonElementMod.xsd:1.2"/>
    <!-- ======== Table elements ======== -->
    <xs:include schemaLocation="urn:oasis:names:tc:dita:xsd:tblDeclMod.xsd:1.2"/>
    <!-- ======= MetaData elements, plus keyword and indexterm ======= -->
    <xs:include schemaLocation="urn:oasis:names:tc:dita:xsd:metaDeclMod.xsd:1.2"/>

    <xs:include schemaLocation="urn:oasis:names:tc:dita:xsd:referenceGrp.xsd:1.2"/>
    <xs:include schemaLocation="urn:oasis:names:tc:dita:xsd:taskGrp.xsd:1.2"/>
    <xs:include schemaLocation="urn:oasis:names:tc:dita:xsd:conceptGrp.xsd:1.2"/>


    <xs:redefine schemaLocation="urn:oasis:names:tc:dita:xsd:commonElementGrp.xsd:1.2">
      
        <xs:group name="ph">
            <xs:choice>
                <xs:group ref="ph"/>
                <xs:group ref="hi-d-ph"/>
            </xs:choice>
        </xs:group>
   
    <xs:group name="fig">
      <xs:choice>
        <xs:group ref="fig"/>
        <xs:group ref="ut-d-fig"/>
      </xs:choice>
    </xs:group>
      
        <xs:group name="index-base">
            <xs:choice>
                <xs:group ref="index-base"/>
                <xs:group ref="indexing-d-index-base"/>
            </xs:choice>
        </xs:group>
      
        <xs:group name="note">
            <xs:choice>
                <xs:group ref="note"/>
                <xs:group ref="learning-d-note"/>
            </xs:choice>
        </xs:group>
    </xs:redefine>
    <xs:redefine schemaLocation="urn:oasis:names:tc:dita:xsd:metaDeclGrp.xsd:1.2">
        <xs:group name="metadata">
            <xs:choice>
                <xs:group ref="metadata"/>
                <xs:group ref="learningmeta-d-metadata"/>
            </xs:choice>
        </xs:group>
    </xs:redefine>
  
  
   <xs:redefine schemaLocation="urn:oasis:names:tc:dita:spec:learning:xsd:learningInteractionBaseDomain.xsd:1.2">
     <xs:group name="lcInteractionBase">
      <xs:choice>
        <xs:group ref="lcInteractionBase"/>
        <xs:group ref="learning-d-lcInteractionBase"/>
      </xs:choice>
    </xs:group>
  </xs:redefine>
  
    <!--  ================ INFO TYPES =====================  -->
      <xs:include schemaLocation="urn:oasis:names:tc:dita:spec:learning:xsd:learningContentGrp.xsd:1.2"/>
      <xs:include schemaLocation="urn:oasis:names:tc:dita:spec:learning:xsd:learningBaseGrp.xsd:1.2"/>
      <xs:include schemaLocation="urn:oasis:names:tc:dita:spec:learning:xsd:learningSummaryGrp.xsd:1.2"/>
      <xs:include schemaLocation="urn:oasis:names:tc:dita:spec:learning:xsd:learningAssessmentGrp.xsd:1.2"/>    
    
       <xs:redefine schemaLocation="urn:oasis:names:tc:dita:xsd:topicMod.xsd:1.2">
        <xs:group name="topic-info-types">
            <xs:sequence>
                <xs:group ref="info-types"/>
            </xs:sequence>
        </xs:group>
    </xs:redefine>
    <xs:redefine schemaLocation="urn:oasis:names:tc:dita:xsd:taskMod.xsd:1.2">
        <xs:group name="task-info-types">
            <xs:sequence>
                <xs:group ref="info-types"/>
            </xs:sequence>
        </xs:group>
    </xs:redefine>
    <xs:redefine schemaLocation="urn:oasis:names:tc:dita:xsd:referenceMod.xsd:1.2">

        <xs:group name="reference-info-types">
            <xs:choice>
                <xs:group ref="info-types"/>
            </xs:choice>
        </xs:group>
    </xs:redefine>
    <xs:redefine schemaLocation="urn:oasis:names:tc:dita:xsd:conceptMod.xsd:1.2">
        <xs:group name="concept-info-types">
            <xs:choice>
                <xs:group ref="info-types"/>
            </xs:choice>
        </xs:group>
    </xs:redefine>


    <xs:redefine schemaLocation="urn:oasis:names:tc:dita:spec:learning:xsd:learningContentMod.xsd:1.2">
        <xs:group name="learningContent-info-types">
            <xs:choice>
                <xs:group ref="info-types"/>
            </xs:choice>
        </xs:group>
      
        <xs:group name="learningContent.content">
            <xs:sequence>
              <xs:group ref="learningContent.content"/>
               <xs:element ref="learningAssessment" minOccurs="0"/>
                <xs:element ref="learningSummary" minOccurs="0"/>
            </xs:sequence>
        </xs:group>
    </xs:redefine>
     
     

    <xs:redefine schemaLocation="urn:oasis:names:tc:dita:spec:learning:xsd:learningAssessmentMod.xsd:1.2">
        <xs:group name="learningAssessment-info-types">
            <xs:choice>
                <xs:group ref="info-types"/>
            </xs:choice>
        </xs:group>
    </xs:redefine>

    <xs:redefine schemaLocation="urn:oasis:names:tc:dita:spec:learning:xsd:learningSummaryMod.xsd:1.2">
        <xs:group name="learningSummary-info-types">
            <xs:sequence>
                <xs:group ref="info-types"/>
            </xs:sequence>
        </xs:group>
    </xs:redefine>

    <xs:include schemaLocation="urn:oasis:names:tc:dita:spec:learning:xsd:learningBaseMod.xsd:1.2"/>


  <xs:group name="info-types">
      <xs:choice>
        <xs:element ref="topic"/>
        <xs:element ref="task"/>
        <xs:element ref="concept"/>
        <xs:element ref="reference"/>
      </xs:choice>
     </xs:group>

    <xs:attributeGroup name="domains-att">
        <xs:attribute name="domains" type="xs:string"
                              default="(topic hi-d)  
                                              (topic indexing-d) 
                                              (topic ut-d)
                                              (topic learningmeta-d) 
                                              (topic learningInteractionBase-d learning-d) 
                                              (topic learningBase+learningInteractionBase-d)
                                              (topic learningBase+learningInteractionBase-d learningAssessment)
                                              (topic learningBase+learningInteractionBase-d learningContent)  
                                              (topic learningBase+learningInteractionBase-d learningSummary) 
                                              (topic concept) 
                                              (topic reference)
                                              (topic task)"
        />
    </xs:attributeGroup>

</xs:schema>
