DITA-OT_CXX_Plugin/cxxapiref/xsd/cxxClass.mod.xsd
changeset 4 468f4c8d3d5b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DITA-OT_CXX_Plugin/cxxapiref/xsd/cxxClass.mod.xsd	Wed Aug 11 14:49:30 2010 +0100
@@ -0,0 +1,831 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ================================================================= -->
+<!-- HEADER -->
+<!-- ================================================================= -->
+<!-- MODULE:    C++ Class DTD -->
+<!-- VERSION:   0.6.0 -->
+<!-- DATE:      May 2009 -->
+<!---->
+<!-- ================================================================= -->
+<!-- ================================================================= -->
+<!-- PUBLIC DOCUMENT TYPE DEFINITION -->
+<!-- TYPICAL INVOCATION -->
+<!---->
+<!--
+  Refer to this file by the following public identifier or an 
+        appropriate system identifier 
+  PUBLIC "-//NOKIA//DTD DITA C++ API Class Reference Type v0.6.0//EN"
+        Delivered as file "cxxClass.dtd"
+-->
+<!-- ================================================================= -->
+<!-- SYSTEM:     Darwin Information Typing Architecture (DITA) -->
+<!---->
+<!-- PURPOSE:    C++ API Reference for Classes -->
+<!---->
+<!-- ORIGINAL CREATION DATE: -->
+<!-- November 2009 -->
+<!---->
+<!-- Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). -->
+<!-- All rights reserved. -->
+<!---->
+<!-- Change History (latest at top): -->
+<!-- +++++++++++++++++++++++++++++++ -->
+<!-- 2010-05-14 PaulRoss: Fixed templates. -->
+<!-- 2010-02-16 VOG: Updated. -->
+<!-- 2010-02-10 PaulRoss: Updated. -->
+<!-- 2009-11-16 PaulRoss: Initial design. -->
+<!---->
+<!-- ================================================================= -->
+<!--
+  Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+  All rights reserved.
+-->
+<!-- ============ Hooks for domain extension ============ -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:ditaarch="http://dita.oasis-open.org/architecture/2005/">
+  <xs:import namespace="http://dita.oasis-open.org/architecture/2005/" schemaLocation="../../../schema/base/xsd/ditaarch.xsd"/>
+  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="../../../schema/base/xsd/xml.xsd"/>
+  <xs:group name="cxxClassDetail">
+    <xs:sequence>
+      <xs:element ref="cxxClassDetail"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassDefinition">
+    <xs:sequence>
+      <xs:element ref="cxxClassDefinition"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassAbstract">
+    <xs:sequence>
+      <xs:element ref="cxxClassAbstract"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassAccessSpecifier">
+    <xs:sequence>
+      <xs:element ref="cxxClassAccessSpecifier"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassDerivations">
+    <xs:sequence>
+      <xs:element ref="cxxClassDerivations"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassDerivation">
+    <xs:sequence>
+      <xs:element ref="cxxClassDerivation"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxStructDerivation">
+    <xs:sequence>
+      <xs:element ref="cxxStructDerivation"/>
+    </xs:sequence>
+  </xs:group>
+  <!-- Templates -->
+  <xs:group name="cxxClassTemplateParameters">
+    <xs:sequence>
+      <xs:element ref="cxxClassTemplateParameters"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassTemplateParameter">
+    <xs:sequence>
+      <xs:element ref="cxxClassTemplateParameter"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassTemplateParameterType">
+    <xs:sequence>
+      <xs:element ref="cxxClassTemplateParameterType"/>
+    </xs:sequence>
+  </xs:group>
+  <!-- Derivation -->
+  <xs:group name="cxxClassDerivationAccessSpecifier">
+    <xs:sequence>
+      <xs:element ref="cxxClassDerivationAccessSpecifier"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassDerivationVirtual">
+    <xs:sequence>
+      <xs:element ref="cxxClassDerivationVirtual"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassBaseClass">
+    <xs:sequence>
+      <xs:element ref="cxxClassBaseClass"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassBaseStruct">
+    <xs:sequence>
+      <xs:element ref="cxxClassBaseStruct"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassBaseUnion">
+    <xs:sequence>
+      <xs:element ref="cxxClassBaseUnion"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassInherits">
+    <xs:sequence>
+      <xs:element ref="cxxClassInherits"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:complexType name="cxxClassInheritsDetail">
+    <xs:complexContent>
+      <xs:extension base="cxxClassInheritsDetail.element"/>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:group name="cxxClassFunctionInherited">
+    <xs:sequence>
+      <xs:element ref="cxxClassFunctionInherited"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassVariableInherited">
+    <xs:sequence>
+      <xs:element ref="cxxClassVariableInherited"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassEnumerationInherited">
+    <xs:sequence>
+      <xs:element ref="cxxClassEnumerationInherited"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassEnumeratorInherited">
+    <xs:sequence>
+      <xs:element ref="cxxClassEnumeratorInherited"/>
+    </xs:sequence>
+  </xs:group>
+  <!-- Nested members -->
+  <xs:group name="cxxClassNestedDetail">
+    <xs:sequence>
+      <xs:element ref="cxxClassNestedDetail"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassNestedClass">
+    <xs:sequence>
+      <xs:element ref="cxxClassNestedClass"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassNestedStruct">
+    <xs:sequence>
+      <xs:element ref="cxxClassNestedStruct"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassNestedUnion">
+    <xs:sequence>
+      <xs:element ref="cxxClassNestedUnion"/>
+    </xs:sequence>
+  </xs:group>
+  <!-- Location elements -->
+  <xs:group name="cxxClassAPIItemLocation">
+    <xs:sequence>
+      <xs:element ref="cxxClassAPIItemLocation"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassDeclarationFile">
+    <xs:sequence>
+      <xs:element ref="cxxClassDeclarationFile"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassDeclarationFileLine">
+    <xs:sequence>
+      <xs:element ref="cxxClassDeclarationFileLine"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassDefinitionFile">
+    <xs:sequence>
+      <xs:element ref="cxxClassDefinitionFile"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassDefinitionFileLineStart">
+    <xs:sequence>
+      <xs:element ref="cxxClassDefinitionFileLineStart"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassDefinitionFileLineEnd">
+    <xs:sequence>
+      <xs:element ref="cxxClassDefinitionFileLineEnd"/>
+    </xs:sequence>
+  </xs:group>
+  <!-- ============ Hooks for shell DTD ============ -->
+  <xs:group name="cxxClass-types-default">
+    <xs:choice>
+      <xs:element ref="cxxClassNested"/>
+      <xs:element ref="cxxFunction"/>
+      <xs:element ref="cxxDefine"/>
+      <xs:element ref="cxxVariable"/>
+      <xs:element ref="cxxEnumeration"/>
+      <xs:element ref="cxxTypedef"/>
+    </xs:choice>
+  </xs:group>
+  <xs:group name="cxxClass-info-types">
+    <xs:sequence>
+      <xs:group ref="cxxClass-types-default"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassNested-types-default">
+    <xs:sequence>
+      <xs:element ref="no-topic-nesting"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:group name="cxxClassNested-info-types">
+    <xs:sequence>
+      <xs:group ref="cxxClassNested-types-default"/>
+    </xs:sequence>
+  </xs:group>
+  <!-- ============ Topic specializations ============ -->
+  <!-- (%cxxClass-info-types;)* -->
+  <xs:element name="cxxClass">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:group ref="apiName"/>
+        <xs:group minOccurs="0" ref="shortdesc"/>
+        <xs:group minOccurs="0" ref="prolog"/>
+        <xs:group ref="cxxClassDetail"/>
+        <xs:group minOccurs="0" ref="related-links"/>
+        <xs:group minOccurs="0" maxOccurs="unbounded" ref="cxxClass-info-types"/>
+        <xs:group minOccurs="0" maxOccurs="unbounded" ref="cxxClassInherits"/>
+      </xs:sequence>
+      <xs:attribute name="id" use="required" type="xs:ID"/>
+      <xs:attribute name="conref"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attribute ref="xml:lang"/>
+      <xs:attributeGroup ref="arch-atts"/>
+      <xs:attribute name="domains" default="(topic ui-d) (topic hi-d) (topic pr-d) (topic sw-d)                            (topic ut-d) (topic pr-d api-d) (topic pr-d api-d cxxapi-d)"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/topic reference/reference apiRef/apiRef apiClassifier/apiClassifier cxxClass/cxxClass "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassDetail">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:group minOccurs="0" ref="cxxClassDefinition"/>
+        <xs:group minOccurs="0" ref="apiDesc"/>
+        <xs:choice minOccurs="0" maxOccurs="unbounded">
+          <xs:group ref="example"/>
+          <xs:group ref="section"/>
+          <xs:group ref="apiImpl"/>
+        </xs:choice>
+      </xs:sequence>
+      <xs:attributeGroup ref="id-atts"/>
+      <xs:attribute name="translate">
+        <xs:simpleType>
+          <xs:restriction base="xs:token">
+            <xs:enumeration value="yes"/>
+            <xs:enumeration value="no"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute ref="xml:lang"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/body reference/refbody apiRef/apiDetail apiClassifier/apiClassifierDetail cxxClass/cxxClassDetail "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassDefinition">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:group minOccurs="0" ref="cxxClassAccessSpecifier"/>
+        <xs:group minOccurs="0" ref="cxxClassAbstract"/>
+        <xs:group minOccurs="0" ref="cxxClassDerivations"/>
+        <xs:group minOccurs="0" ref="cxxClassTemplateParameters"/>
+        <xs:group ref="cxxClassAPIItemLocation"/>
+      </xs:sequence>
+      <xs:attribute name="spectitle"/>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/section reference/section apiRef/apiDef apiClassifier/apiClassifierDef cxxClass/cxxClassDefinition "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassAccessSpecifier">
+    <xs:complexType>
+      <xs:attribute name="name" default="access">
+        <xs:simpleType>
+          <xs:restriction base="xs:string">
+            <xs:enumeration value="access"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="value" default="public">
+        <xs:simpleType>
+          <xs:restriction base="xs:token">
+            <xs:enumeration value="public"/>
+            <xs:enumeration value="protected"/>
+            <xs:enumeration value="private"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/state reference/state apiRef/apiQualifier apiClassifier/apiQualifier cxxClass/cxxClassAccessSpecifier "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassAbstract">
+    <xs:complexType>
+      <xs:attribute name="name" default="abstract">
+        <xs:simpleType>
+          <xs:restriction base="xs:string">
+            <xs:enumeration value="abstract"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="value" default="abstract">
+        <xs:simpleType>
+          <xs:restriction base="xs:string">
+            <xs:enumeration value="abstract"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/state reference/state apiRef/apiQualifier apiClassifier/apiQualifier cxxClass/cxxClassAbstract "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassDerivations">
+    <xs:complexType>
+      <xs:choice maxOccurs="unbounded">
+        <xs:group ref="cxxClassDerivation"/>
+        <xs:group ref="cxxStructDerivation"/>
+      </xs:choice>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/ph reference/ph apiRef/apiDefItem apiClassifier/apiDefItem cxxClass/cxxClassDerivations "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassDerivation">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:group ref="cxxClassDerivationAccessSpecifier"/>
+        <xs:group minOccurs="0" maxOccurs="unbounded" ref="cxxClassDerivationVirtual"/>
+        <xs:choice>
+          <xs:group ref="cxxClassBaseClass"/>
+          <xs:group ref="cxxClassBaseStruct"/>
+          <xs:group ref="cxxClassBaseUnion"/>
+        </xs:choice>
+      </xs:sequence>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/ph reference/ph apiRef/apiDefItem apiClassifier/apiDefItem cxxClass/cxxClassDerivation "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassInherits">
+    <xs:complexType>
+      <xs:complexContent>
+        <xs:extension base="cxxClassInheritsDetail">
+          <xs:attributeGroup ref="univ-atts"/>
+          <xs:attribute name="outputclass"/>
+          <xs:attribute name="domains" default="(topic ui-d) (topic hi-d) (topic pr-d) (topic sw-d)                            (topic ut-d) (topic pr-d api-d) (topic pr-d api-d cxxapi-d)"/>
+          <xs:attributeGroup ref="global-atts"/>
+          <xs:attribute name="class" default="- topic/topic reference/reference apiRef/apiRef apiClassifier/apiClassifier cxxClass/cxxClassInherits "/>
+        </xs:extension>
+      </xs:complexContent>
+    </xs:complexType>
+  </xs:element>
+  <xs:complexType name="cxxClassInheritsDetail.element">
+    <xs:sequence>
+      <xs:element ref="cxxClassInheritsDetail"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:element name="cxxClassInheritsDetail">
+    <xs:complexType>
+      <xs:choice maxOccurs="unbounded">
+        <xs:group ref="cxxClassFunctionInherited"/>
+        <xs:group ref="cxxClassVariableInherited"/>
+        <xs:group ref="cxxClassEnumerationInherited"/>
+        <xs:group ref="cxxClassEnumeratorInherited"/>
+      </xs:choice>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attribute name="domains" default="(topic ui-d) (topic hi-d) (topic pr-d) (topic sw-d)                            (topic ut-d) (topic pr-d api-d) (topic pr-d api-d cxxapi-d)"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/body reference/refbody apiRef/apiDetail apiClassifier/apiDetail cxxClass/cxxClassInheritsDetail "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassFunctionInherited">
+    <xs:complexType mixed="true">
+      <xs:attribute name="href"/>
+      <xs:attribute name="keyref"/>
+      <xs:attribute name="type"/>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="format"/>
+      <xs:attribute name="scope">
+        <xs:simpleType>
+          <xs:restriction base="xs:token">
+            <xs:enumeration value="local"/>
+            <xs:enumeration value="peer"/>
+            <xs:enumeration value="external"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/xref reference/xref apiRef/apiRelation apiClassifier/apiRelation cxxClass/cxxClassFunctionInherited  "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassVariableInherited">
+    <xs:complexType mixed="true">
+      <xs:attribute name="href"/>
+      <xs:attribute name="keyref"/>
+      <xs:attribute name="type"/>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="format"/>
+      <xs:attribute name="scope">
+        <xs:simpleType>
+          <xs:restriction base="xs:token">
+            <xs:enumeration value="local"/>
+            <xs:enumeration value="peer"/>
+            <xs:enumeration value="external"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/xref reference/xref apiRef/apiRelation apiClassifier/apiRelation cxxClass/cxxClassVariableInherited "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassEnumerationInherited">
+    <xs:complexType mixed="true">
+      <xs:attribute name="href"/>
+      <xs:attribute name="keyref"/>
+      <xs:attribute name="type"/>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="format"/>
+      <xs:attribute name="scope">
+        <xs:simpleType>
+          <xs:restriction base="xs:token">
+            <xs:enumeration value="local"/>
+            <xs:enumeration value="peer"/>
+            <xs:enumeration value="external"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/xref reference/xref apiRef/apiRelation apiClassifier/apiRelation cxxClass/cxxClassEnumerationInherited "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassEnumeratorInherited">
+    <xs:complexType mixed="true">
+      <xs:attribute name="href"/>
+      <xs:attribute name="keyref"/>
+      <xs:attribute name="type"/>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="format"/>
+      <xs:attribute name="scope">
+        <xs:simpleType>
+          <xs:restriction base="xs:token">
+            <xs:enumeration value="local"/>
+            <xs:enumeration value="peer"/>
+            <xs:enumeration value="external"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/xref reference/xref apiRef/apiRelation apiClassifier/apiRelation cxxClass/cxxClassEnumeratorInherited "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassDerivationAccessSpecifier">
+    <xs:complexType>
+      <xs:attribute name="name" default="access">
+        <xs:simpleType>
+          <xs:restriction base="xs:string">
+            <xs:enumeration value="access"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="value" default="public">
+        <xs:simpleType>
+          <xs:restriction base="xs:token">
+            <xs:enumeration value="public"/>
+            <xs:enumeration value="protected"/>
+            <xs:enumeration value="private"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/state reference/state apiRef/apiQualifier apiClassifier/apiQualifier cxxClass/cxxClassDerivationAccessSpecifier "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassDerivationVirtual">
+    <xs:complexType>
+      <xs:attribute name="name" default="virtual">
+        <xs:simpleType>
+          <xs:restriction base="xs:string">
+            <xs:enumeration value="virtual"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="value" default="true">
+        <xs:simpleType>
+          <xs:restriction base="xs:string">
+            <xs:enumeration value="true"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/state reference/state apiRef/apiQualifier apiClassifier/apiQualifier cxxClass/cxxClassDerivationVirtual "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassBaseClass">
+    <xs:complexType mixed="true">
+      <xs:attribute name="href"/>
+      <xs:attribute name="keyref"/>
+      <xs:attribute name="type"/>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="format"/>
+      <xs:attribute name="scope">
+        <xs:simpleType>
+          <xs:restriction base="xs:token">
+            <xs:enumeration value="local"/>
+            <xs:enumeration value="peer"/>
+            <xs:enumeration value="external"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/xref reference/xref apiRef/apiRelation apiClassifier/apiBaseClassifier cxxClass/cxxClassBaseClass "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassBaseStruct">
+    <xs:complexType mixed="true">
+      <xs:attribute name="href"/>
+      <xs:attribute name="keyref"/>
+      <xs:attribute name="type"/>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="format"/>
+      <xs:attribute name="scope">
+        <xs:simpleType>
+          <xs:restriction base="xs:token">
+            <xs:enumeration value="local"/>
+            <xs:enumeration value="peer"/>
+            <xs:enumeration value="external"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/xref reference/xref apiRef/apiRelation apiClassifier/apiBaseClassifier cxxClass/cxxClassBaseStruct "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassBaseUnion">
+    <xs:complexType mixed="true">
+      <xs:attribute name="href"/>
+      <xs:attribute name="keyref"/>
+      <xs:attribute name="type"/>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="format"/>
+      <xs:attribute name="scope">
+        <xs:simpleType>
+          <xs:restriction base="xs:token">
+            <xs:enumeration value="local"/>
+            <xs:enumeration value="peer"/>
+            <xs:enumeration value="external"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/xref reference/xref apiRef/apiRelation apiClassifier/apiBaseClassifier cxxClass/cxxClassBaseUnion "/>
+    </xs:complexType>
+  </xs:element>
+  <!--  Templates -->
+  <xs:element name="cxxClassTemplateParameters">
+    <xs:complexType>
+      <xs:group maxOccurs="unbounded" ref="cxxClassTemplateParameter"/>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/ph reference/ph apiRef/apiDefItem apiClassifier/apiDefItem cxxClass/cxxClassTemplateParameters "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassTemplateParameter">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:group ref="cxxClassTemplateParameterType"/>
+        <xs:group minOccurs="0" ref="apiDefNote"/>
+      </xs:sequence>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/ph reference/ph apiRef/apiDefItem apiClassifier/apiDefItem cxxClass/cxxClassTemplateParameter "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassTemplateParameterType">
+    <xs:complexType mixed="true">
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/ph reference/ph apiRef/apiDefItem apiClassifier/apiDefItem cxxClass/cxxClassTemplateParameterType "/>
+    </xs:complexType>
+  </xs:element>
+  <!-- Location -->
+  <xs:element name="cxxClassAPIItemLocation">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:group ref="cxxClassDeclarationFile"/>
+        <xs:group ref="cxxClassDeclarationFileLine"/>
+        <xs:group minOccurs="0" ref="cxxClassDefinitionFile"/>
+        <xs:group minOccurs="0" ref="cxxClassDefinitionFileLineStart"/>
+        <xs:group minOccurs="0" ref="cxxClassDefinitionFileLineEnd"/>
+      </xs:sequence>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/ph reference/ph apiRef/apiDefItem apiClassifier/apiDefItem cxxClass/cxxClassAPIItemLocation "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassDeclarationFile">
+    <xs:complexType>
+      <xs:attribute name="name" default="filePath">
+        <xs:simpleType>
+          <xs:restriction base="xs:string">
+            <xs:enumeration value="filePath"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="value" use="required"/>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/state reference/state apiRef/apiQualifier apiClassifier/apiQualifier cxxClass/cxxClassDeclarationFile "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassDeclarationFileLine">
+    <xs:complexType>
+      <xs:attribute name="name" default="lineNumber">
+        <xs:simpleType>
+          <xs:restriction base="xs:string">
+            <xs:enumeration value="lineNumber"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="value" use="required"/>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/state reference/state apiRef/apiQualifier apiClassifier/apiQualifier cxxClass/cxxClassDeclarationFileLine "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassDefinitionFile">
+    <xs:complexType>
+      <xs:attribute name="name" default="filePath">
+        <xs:simpleType>
+          <xs:restriction base="xs:string">
+            <xs:enumeration value="filePath"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="value" use="required"/>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/state reference/state apiRef/apiQualifier apiClassifier/apiQualifier cxxClass/cxxClassDefinitionFile "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassDefinitionFileLineStart">
+    <xs:complexType>
+      <xs:attribute name="name" default="lineNumber">
+        <xs:simpleType>
+          <xs:restriction base="xs:string">
+            <xs:enumeration value="lineNumber"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="value" use="required"/>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/state reference/state apiRef/apiQualifier apiClassifier/apiQualifier cxxClass/cxxClassDefinitionFileLineStart "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassDefinitionFileLineEnd">
+    <xs:complexType>
+      <xs:attribute name="name" default="lineNumber">
+        <xs:simpleType>
+          <xs:restriction base="xs:string">
+            <xs:enumeration value="lineNumber"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="value" use="required"/>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/state reference/state apiRef/apiQualifier apiClassifier/apiQualifier cxxClass/cxxClassDefinitionFileLineEnd "/>
+    </xs:complexType>
+  </xs:element>
+  <!-- Nested members -->
+  <xs:element name="cxxClassNested">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:group ref="cxxClassNestedDetail"/>
+        <xs:group minOccurs="0" maxOccurs="unbounded" ref="cxxClassNested-info-types"/>
+      </xs:sequence>
+      <xs:attribute name="conref"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attribute ref="xml:lang"/>
+      <xs:attributeGroup ref="arch-atts"/>
+      <xs:attribute name="domains" default="(topic ui-d) (topic hi-d) (topic pr-d) (topic sw-d)                            (topic ut-d) (topic pr-d api-d) (topic pr-d api-d cxxapi-d)"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/topic reference/reference apiRef/apiRef apiClassifier/apiClassifier cxxClass/cxxClassNested "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassNestedDetail">
+    <xs:complexType>
+      <xs:choice maxOccurs="unbounded">
+        <xs:group ref="cxxClassNestedClass"/>
+        <xs:group ref="cxxClassNestedStruct"/>
+        <xs:group ref="cxxClassNestedUnion"/>
+      </xs:choice>
+      <xs:attributeGroup ref="id-atts"/>
+      <xs:attribute name="translate">
+        <xs:simpleType>
+          <xs:restriction base="xs:token">
+            <xs:enumeration value="yes"/>
+            <xs:enumeration value="no"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute ref="xml:lang"/>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/body reference/refbody apiRef/apiDetail apiClassifier/apiDetail cxxClass/cxxClassNestedDetail "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassNestedClass">
+    <xs:complexType mixed="true">
+      <xs:attribute name="href"/>
+      <xs:attribute name="keyref"/>
+      <xs:attribute name="type"/>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="format"/>
+      <xs:attribute name="scope">
+        <xs:simpleType>
+          <xs:restriction base="xs:token">
+            <xs:enumeration value="local"/>
+            <xs:enumeration value="peer"/>
+            <xs:enumeration value="external"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/xref reference/xref apiRef/apiRelation apiClassifier/apiRelation cxxClass/cxxClassNestedClass "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassNestedStruct">
+    <xs:complexType mixed="true">
+      <xs:attribute name="href"/>
+      <xs:attribute name="keyref"/>
+      <xs:attribute name="type"/>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="format"/>
+      <xs:attribute name="scope">
+        <xs:simpleType>
+          <xs:restriction base="xs:token">
+            <xs:enumeration value="local"/>
+            <xs:enumeration value="peer"/>
+            <xs:enumeration value="external"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/xref reference/xref apiRef/apiRelation apiClassifier/apiRelation cxxClass/cxxClassNestedStruct "/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cxxClassNestedUnion">
+    <xs:complexType mixed="true">
+      <xs:attribute name="href"/>
+      <xs:attribute name="keyref"/>
+      <xs:attribute name="type"/>
+      <xs:attributeGroup ref="univ-atts"/>
+      <xs:attribute name="format"/>
+      <xs:attribute name="scope">
+        <xs:simpleType>
+          <xs:restriction base="xs:token">
+            <xs:enumeration value="local"/>
+            <xs:enumeration value="peer"/>
+            <xs:enumeration value="external"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="outputclass"/>
+      <xs:attributeGroup ref="global-atts"/>
+      <xs:attribute name="class" default="- topic/xref reference/xref apiRef/apiRelation apiClassifier/apiRelation cxxClass/cxxClassNestedUnion "/>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>
+<!-- ============ Class attributes for type ancestry ============ -->
+<!-- Representing inheritance -->
+<!-- Templates -->
+<!-- Nested members -->
+<!-- Location elements -->
+<!-- Inheritance sub-topics -->