<?xml version="1.0" encoding="utf-8"?>
<!--
 | (C) Copyright IBM Corporation 2005 - 2006. All Rights Reserved.
 *-->
<!-- vocabulary declarations -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:ditaarch="http://dita.oasis-open.org/architecture/2005/">
  <xs:include schemaLocation="../../../schema/referenceGrp.xsd"/>
  <xs:include schemaLocation="apiRefGrp.xsd"/>

  <xs:include schemaLocation="../../../schema/programmingDomain.xsd"/>
  <xs:include schemaLocation="../../../schema/highlightDomain.xsd"/>
  <xs:include schemaLocation="../../../schema/softwareDomain.xsd"/>
  <xs:include schemaLocation="../../../schema/uiDomain.xsd"/>
  <xs:include schemaLocation="../../../schema/utilitiesDomain.xsd"/>
  <xs:include schemaLocation="apiDomain.xsd"/>
  
  
  <xs:import namespace="http://dita.oasis-open.org/architecture/2005/" schemaLocation="../../../schema/ditaarch.xsd"/>
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="../../../schema/xml.xsd"/>
  
  
  <!-- vocabulary substitution -->
  <xs:redefine schemaLocation="../../../schema/topicGrp.xsd">
  <xs:group name="pre">
    <xs:choice>
      <xs:group ref="pre"/>
      <xs:group ref="pr-d-pre"/>
      <xs:group ref="sw-d-pre"/>
      <xs:group ref="ui-d-pre"/>
    </xs:choice>
  </xs:group>
  <xs:group name="keyword">
    <xs:choice>
      <xs:group ref="keyword"/>
      <xs:group ref="pr-d-keyword"/>
      <xs:group ref="sw-d-keyword"/>
      <xs:group ref="ui-d-keyword"/>
    </xs:choice>
  </xs:group>
  <xs:group name="ph">
    <xs:choice>
      <xs:group ref="ph"/>
      <xs:group ref="pr-d-ph"/>
      <xs:group ref="sw-d-ph"/>
      <xs:group ref="hi-d-ph"/>
      <xs:group ref="ui-d-ph"/>
    </xs:choice>
  </xs:group>
  <xs:group name="fig">
    <xs:choice>
      <xs:group ref="fig"/>
      <xs:group ref="pr-d-fig"/>
      <xs:group ref="ut-d-fig"/>
    </xs:choice>
  </xs:group>
  <xs:group name="dl">
    <xs:choice>
      <xs:group ref="dl"/>
      <xs:group ref="pr-d-dl"/>
    </xs:choice>
  </xs:group>
  <xs:group name="xref">
    <xs:choice>
      <xs:group ref="xref"/>
      <xs:group ref="api-d-xref"/>
    </xs:choice>
  </xs:group>
  </xs:redefine>
  <!-- Declare the domains -->
  
  <!-- Embed the base topic module to define the base elements -->
  <!-- Embed the base reference module to define the base elements -->
  <!-- Embed the API module to get the generic API Reference elements -->
  <!-- vocabulary definitions -->

  <xs:redefine schemaLocation="../../../schema/topicMod.xsd" >
  	<xs:complexType name="topic.class">
  		<xs:complexContent>
  			<xs:extension base="topic.class">
  				<xs:attribute name="domains" type="xs:string" default="(topic ui-d) (topic hi-d) (topic pr-d) (topic sw-d)                            (topic ut-d) (topic pr-d api-d)"/>
  			</xs:extension>
  		</xs:complexContent>
  	</xs:complexType>
  </xs:redefine>
  <xs:redefine schemaLocation="../../../schema/referenceMod.xsd" >
  	<xs:complexType name="reference.class">
  		<xs:complexContent>
  			<xs:extension base="reference.class">
  				<xs:attribute name="domains" type="xs:string" default="(topic ui-d) (topic hi-d) (topic pr-d) (topic sw-d)                            (topic ut-d) (topic pr-d api-d)"/>
  			</xs:extension>
  		</xs:complexContent>
  	</xs:complexType>
  </xs:redefine>

  <xs:redefine schemaLocation="apiRefMod.xsd" >
  	<xs:complexType name="apiRef.class">
  		<xs:complexContent>
  			<xs:extension base="apiRef.class">
  				<xs:attribute name="domains" type="xs:string" default="(topic ui-d) (topic hi-d) (topic pr-d) (topic sw-d)                            (topic ut-d) (topic pr-d api-d)"/>
  			</xs:extension>
  		</xs:complexContent>
  	</xs:complexType>
  </xs:redefine>

  <!-- Define topic nesting -->
  <xs:group name="info-types" >
    <xs:sequence>
      <xs:group ref="apiRef-info-types"/>
    </xs:sequence>
  </xs:group>
  
</xs:schema>
