Attribute Specialization: XSD Version

As for DTD-based attribute domains, an XSD attribute domain module consists of a single XSD document whose name is "attributeNameAttDomain.xsd", e.g., phase-of-moonAttDomain.xsd.

The XSD document contains a single <xs:attributeGroup> declaration:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
  xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
  <xs:attributeGroup name="phase-of-moon-d-attribute">
    <xs:attribute name="phase-of-moon" type="xs:string"/>
  </xs:attributeGroup>
</xs:schema>buteGroup>
</xs:schema>
You integrate the attribute into shell XSDs by including the attribute module document and adding an entry for the attribute domain to the @domains attribute declaration. For example:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  elementFormDefault="qualified" 
  attributeFormDefault="unqualified" 
  xmlns:ditaarch="http://dita.oasis-open.org/architecture/2005/">
  
  <xs:include schemaLocation="xsd/phase-of-moonAttDomain.xsd" />
  
  <!--  ================ GROUP DEFINITIONS =====================  -->
  <xs:include schemaLocation="urn:oasis:names:tc:dita:xsd:metaDeclGrp.xsd:1.2"/>
  <xs:include schemaLocation="urn:oasis:names:tc:dita:xsd:tblDeclGrp.xsd:1.2"/>
  <xs:include schemaLocation="urn:oasis:names:tc:dita:xsd:topicGrp.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:topicMod.xsd:1.2"/>

  <xs:redefine schemaLocation="urn:oasis:names:tc:dita:xsd:commonElementGrp.xsd:1.2">
    <xs:attributeGroup name="props-attribute-extensions">
      <xs:attributeGroup ref="props-attribute-extensions"/>
      <xs:attributeGroup ref="phase-of-moon-d-attribute"/>
    </xs:attributeGroup>
 </xs:redefine>
  
  <xs:group name="info-types">
    <xs:sequence/>    
  </xs:group>
  
  <xs:attributeGroup name="domains-att">
    <xs:attribute name="domains" type="xs:string" default="a(props phase-of-moon)"/>
  </xs:attributeGroup>
  
</xs:schema>

This example is a topic shell integrates only the attribute domain. In practice you would normally include a number of element domains in addition to any attribute domains.