<?xml version="1.0" ?>
<!--
	Schema definition for Ribbon Extensibility

	Copyright (c) Microsoft Corporation. All rights reserved.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.0" 
	targetNamespace="http://schemas.microsoft.com/office/2006/01/customui"
						xmlns="http://schemas.microsoft.com/office/2006/01/customui"
	elementFormDefault="qualified"
	attributeFormDefault="unqualified"
>
  <xsd:annotation>
    <xsd:documentation>
      ----------------------------------------------------------------------
      Schema definition for Ribbon Extensibility
      ----------------------------------------------------------------------
    </xsd:documentation>
  </xsd:annotation>

  <xsd:annotation>
    <xsd:documentation>
      ----------------------------------------------------------------------
      Attribute types
      ----------------------------------------------------------------------
    </xsd:documentation>
  </xsd:annotation>

  <xsd:simpleType name="ST_QID">
    <xsd:annotation>
      <xsd:documentation>

        The qualified ID of a control.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:QName">
      <xsd:minLength value="1"/>
      <xsd:maxLength value="1024"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ST_ID">
    <xsd:annotation>
      <xsd:documentation>

        The custom ID of a control.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:NCName">
      <xsd:minLength value="1"/>
      <xsd:maxLength value="1024"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ST_UniqueID">
    <xsd:annotation>
      <xsd:documentation>

        A unique ID.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:ID">
      <xsd:minLength value="1"/>
      <xsd:maxLength value="1024"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ST_Delegate">
    <xsd:annotation>
      <xsd:documentation>

        A callback. Callbacks are used to provide status, update properties or perform actions.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:minLength value="1"/>
      <xsd:maxLength value="1024"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ST_StringLength">
    <xsd:annotation>
      <xsd:documentation>

        A numeric argument for maximum string length in controls.
        String length is limited to 1024 characters.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:positiveInteger">
      <xsd:minInclusive value="1"/>
      <xsd:maxInclusive value="1024"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ST_GalleryRowColumnCount">
    <xsd:annotation>
      <xsd:documentation>

        A numeric argument for the maximum number of rows or columns in galleries.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:positiveInteger">
      <xsd:minInclusive value="1"/>
      <xsd:maxInclusive value="1024"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ST_GalleryItemWidthHeight">
    <xsd:annotation>
      <xsd:documentation>

        A numeric argument for the maximum width or height of a gallery item.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:positiveInteger">
      <xsd:minInclusive value="1"/>
      <xsd:maxInclusive value="4096"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ST_String">
    <xsd:annotation>
      <xsd:documentation>

        A string argument.
        String length is limited to 1024 characters.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:minLength value="1"/>
      <xsd:maxLength value="1024"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ST_LongString">
    <xsd:annotation>
      <xsd:documentation>

        A long string argument.
        String length is limited to 4096 characters.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:minLength value="1"/>
      <xsd:maxLength value="4096"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ST_Uri">
    <xsd:annotation>
      <xsd:documentation>

        A string argument for a path to a file or a resource.
        String length is limited to 1024 characters.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:minLength value="1"/>
      <xsd:maxLength value="1024"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ST_Size">
    <xsd:annotation>
      <xsd:documentation>

        The size of a button. Values are "normal" or "large."

      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="normal"/>
      <xsd:enumeration value="large"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ST_ItemSize">
    <xsd:annotation>
      <xsd:documentation>

        The size of items in a menu. Values are "normal" or "large."

      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="normal"/>
      <xsd:enumeration value="large"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ST_BoxStyle">
    <xsd:annotation>
      <xsd:documentation>

        A box control. Values are "horizontal" or "vertical."

      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="horizontal"/>
      <xsd:enumeration value="vertical"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ST_Keytip">
    <xsd:annotation>
      <xsd:documentation>

        A keytip. Value is 1-3 alphanumeric characters.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:token">
      <xsd:minLength value="1"/>
      <xsd:maxLength value="3"/>
      <xsd:whiteSpace value="collapse"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:annotation>
    <xsd:documentation>
      ----------------------------------------------------------------------
      Attributes
      ----------------------------------------------------------------------
    </xsd:documentation>
  </xsd:annotation>

  <xsd:attributeGroup name="AG_IDCustom">
    <xsd:annotation>
      <xsd:documentation>

        Attributes for a custom control ID.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="id" type="ST_UniqueID" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          The ID of a custom UI element. IDs must be unique.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="idQ" type="ST_QID" use="optional">
      <xsd:annotation>
        <xsd:documentation>

          A qualified control ID.  Qualified IDs allow different add-ins to modify the same custom group, tab, or menu.

        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_IDMso">
    <xsd:annotation>
      <xsd:documentation>

        The ID of a built-in control.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="idMso" type="ST_ID" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          The ID of a built-in control.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_Tag">
    <xsd:annotation>
      <xsd:documentation>

        Custom data.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="tag" type="ST_String" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Custom data.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>


  <xsd:attributeGroup name="AG_Title">
    <xsd:annotation>
      <xsd:documentation>

        The title of a menu.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="title" type="ST_String" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          The title of a menu.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="getTitle" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback for the title of a menu.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_IDAttributes">
    <xsd:annotation>
      <xsd:documentation>

        Attributes that specify control ID.
        One of id, idMso, or idQ must be specified to identify a control.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attributeGroup ref="AG_IDCustom"/>
    <xsd:attributeGroup ref="AG_IDMso"/>
    <xsd:attributeGroup ref="AG_Tag"/>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_Image">
    <xsd:annotation>
      <xsd:documentation>

        The image or icon of a control.
        Image attributes are mutually exclusive - only one of
        "image", "imageMso", or "getImage" may be specified.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="image" type="ST_Uri" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          A custom image or icon.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="imageMso" type="ST_ID" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          The image of a built-in control.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="getImage" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback for a custom image.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_CommonAttributes">
    <xsd:annotation>
      <xsd:documentation>

        Attributes that can be applied to all commands and controls.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attributeGroup ref="AG_Enabled"/>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_PositionAttributes">
    <xsd:annotation>
      <xsd:documentation>

        Attributes that set the position of an object relative to its siblings,
        such as the position of a control within a group or position of a tab relative to other tabs.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="insertAfterMso" type="ST_ID" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          The ID of built-in control to be inserted after.
          Mutually exclusive with InsertBeforeMso, InsertAfterQ, InsertBeforeQ.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="insertBeforeMso" type="ST_ID" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          The ID of built-in control to be inserted before.
          Mutually exclusive with InsertAfterMso, InsertAfterQ, InsertBeforeQ.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="insertAfterQ" type="ST_QID" use="optional" >
      <xsd:annotation>
        <xsd:documentation>
          The ID of control to be inserted after.
          Mutually exclusive with InsertAfterMso, InsertBeforeMso, InsertBeforeQ.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="insertBeforeQ" type="ST_QID" use="optional" >
      <xsd:annotation>
        <xsd:documentation>
          The ID of control to be inserted before.
          Mutually exclusive with InsertAfterMso, InsertBeforeMso, InsertAfterQ.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_Enabled">
    <xsd:annotation>
      <xsd:documentation>

        Attributes for a control's enabled state.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="enabled" type="xsd:boolean" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Whether the control is enabled.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="getEnabled" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback that returns true if the control is enabled.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_Visible">
    <xsd:annotation>
      <xsd:documentation>

        Attributes for a control's visibility.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="visible" type="xsd:boolean" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Whether the control is visible.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="getVisible" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback that returns true if the control is visible.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_Label">
    <xsd:annotation>
      <xsd:documentation>

        Attributes that set a control's label.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="label" type="ST_String" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Sets the label.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="getLabel" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback that sets the label.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_Keytip">
    <xsd:annotation>
      <xsd:documentation>

        Attributes to set a control's keytip.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="keytip" type="ST_Keytip" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Sets the keytip.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="getKeytip" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback that sets the keytip.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_Screentip">
    <xsd:annotation>
      <xsd:documentation>

        Attributes for a control's screentip.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="screentip" type="ST_String" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Sets the screentip, which appears on mouse hover.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="getScreentip" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback that sets the screentip.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="supertip" type="ST_String" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Sets the supertip, a large screentip.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="getSupertip" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback that sets the supertip, a large screentip.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_Description">
    <xsd:annotation>
      <xsd:documentation>


      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="description" type="ST_LongString" use="optional">
      <xsd:annotation>
        <xsd:documentation>
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="getDescription" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback that sets the description.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_UIAttributes">
    <xsd:annotation>
      <xsd:documentation>

        Attributes that can be applied to all controls.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attributeGroup ref="AG_CommonAttributes"/>
    <xsd:attributeGroup ref="AG_Label"/>
    <xsd:attributeGroup ref="AG_PositionAttributes"/>
    <xsd:attributeGroup ref="AG_Visible"/>
    <xsd:attributeGroup ref="AG_Keytip"/>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_ItemAttributes">
    <xsd:annotation>
      <xsd:documentation>

        Common attributes that can be applied to controls and groups.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attributeGroup ref="AG_Image"/>
    <xsd:attributeGroup ref="AG_Screentip"/>
    <xsd:attributeGroup ref="AG_UIAttributes"/>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_ControlAttributes">
    <xsd:annotation>
      <xsd:documentation>

        Attributes applied to controls.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attributeGroup ref="AG_ItemAttributes"/>
    <xsd:attribute name="showLabel" type="xsd:boolean" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Whether to show a control's label.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="getShowLabel" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback for whether to show a control's label.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="showImage" type="xsd:boolean" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Whether to show a control's image.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="getShowImage" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback for whether to show a control's image.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_Action">
    <xsd:annotation>
      <xsd:documentation>

        Callback fired on user action.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="onAction" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback fired on user action (for example, a button press).
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_SizeAttributes">
    <xsd:annotation>
      <xsd:documentation>

        A size attribute.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="size" type="ST_Size" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          The size of a control.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="getSize" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback for a control's size.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_DropDownAttributes">
    <xsd:annotation>
      <xsd:documentation>

        Common attributes for controls with dropdowns (such as comboBox, gallery, or dropDown).

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="showItemImage" type="xsd:boolean" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Whether item images are shown in the dropdown.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="getItemCount" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback for the number of items in the dropdown.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="getItemLabel" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback for an item's label.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="getItemScreentip" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback for an item's screentip.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="getItemSupertip" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback for an item's supertip.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="getItemImage" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback for an item's image.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="getItemID" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback for an item's ID.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="sizeString" type="ST_String" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          A representative string that sets the control's width.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_GetContentAttributes">
    <xsd:annotation>
      <xsd:documentation>

        Attributes for dynamic controls that support the getContent callback.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="getContent" type="ST_Delegate" use="required">
      <xsd:annotation>
        <xsd:documentation>
          Callback that returns the dynamic content for this control.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:attributeGroup name="AG_DynamicContentAttributes">
    <xsd:annotation>
      <xsd:documentation>

        Attributes for controls that support dynamic content.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="invalidateContentOnDrop" type="xsd:boolean" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Whether to fire callback for dynamic content each time the control is dropped.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>

  <xsd:annotation>
    <xsd:documentation>
      ----------------------------------------------------------------------
      Global settings
      ----------------------------------------------------------------------
    </xsd:documentation>
  </xsd:annotation>

  <xsd:complexType name="CT_Command" mixed="false">
    <xsd:annotation>
      <xsd:documentation>

        Attribute overrides for all controls with specified built-in ID.
        For example
        &lt;command idMso="Print" enabled="false"&gt;
        disables all instances of the Print button.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attributeGroup ref="AG_Action"/>
    <xsd:attributeGroup ref="AG_Enabled"/>
    <xsd:attributeGroup ref="AG_IDMso"/>
  </xsd:complexType>

  <xsd:annotation>
    <xsd:documentation>
      ----------------------------------------------------------------------
      Controls
      ----------------------------------------------------------------------
    </xsd:documentation>
  </xsd:annotation>

  <xsd:complexType name="CT_ControlBase">
    <xsd:annotation>
      <xsd:documentation>

        Base control type.
        Doesn't define ID attributes.
        Abstract type, not to be used directly.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attributeGroup ref="AG_ControlAttributes"/>
  </xsd:complexType>

  <xsd:complexType name="CT_Control">
    <xsd:annotation>
      <xsd:documentation>

        A type of control that can be used to
        enable, disable, or clone an existing control.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_ControlBase">
        <xsd:attributeGroup ref="AG_IDAttributes"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_ControlCloneRegular">
    <xsd:annotation>
      <xsd:documentation>

        A clone of a built-in control.
        Only the most common attributes can be applied here; to set
        control-specific properties the actual control type must be specified.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:restriction base="CT_Control">
        <xsd:attribute name="id" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              Custom controls can't be cloned.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:restriction>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_ControlClone">
    <xsd:annotation>
      <xsd:documentation>

        A clone of built-in control that can be sized.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:restriction base="CT_Button">
        <xsd:attribute name="id" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              Custom controls can't be cloned.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="onAction" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              OnAction does not apply to 'control'.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:restriction>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_ControlCloneQat">
    <xsd:annotation>
      <xsd:documentation>

        Specifies a clone of built-in or custom control in QAT.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_ControlBase">
        <xsd:attribute name="id" type="ST_ID" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              Custom id to clone from.
              Can refer to a custom ID in same file.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="idQ" type="ST_QID" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              A qualified control ID.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attributeGroup ref="AG_IDMso"/>
        <xsd:attributeGroup ref="AG_Description"/>
        <xsd:attributeGroup ref="AG_SizeAttributes"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_LabelControl">
    <xsd:annotation>
      <xsd:documentation>

        Shows text and/or icon but can't have any associated actions.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:restriction base="CT_Control">
        <xsd:attribute name="image" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              Image does not apply to labelControl.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="imageMso" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              ImageMso does not apply to labelControl.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="getImage" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              GetImage does not apply to labelControl.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="keytip" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              Keytip does not apply to labelControl.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="getKeytip" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              GetKeyTip does not apply to labelControl.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="showImage" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              ShowImage does not apply to labelControl.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="getShowImage" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              GetShowImage does not apply to labelControl.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:restriction>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_ButtonRegular">
    <xsd:annotation>
      <xsd:documentation>

        A fixed-size button.
        Size of this button is determined by its container such as a menu.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_Control">
        <xsd:attributeGroup ref="AG_Action"/>
        <xsd:attributeGroup ref="AG_Enabled"/>
        <xsd:attributeGroup ref="AG_Description"/>
        <xsd:attributeGroup ref="AG_Image"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_Button">
    <xsd:annotation>
      <xsd:documentation>

        A push-type button.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_ButtonRegular">
        <xsd:attributeGroup ref="AG_SizeAttributes"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_VisibleButton">
    <xsd:annotation>
      <xsd:documentation>

        A button which is always visible.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:restriction base="CT_ButtonRegular">
        <xsd:attribute name="visible" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              Visible does not apply to these buttons.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="getVisible" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              GetVisible does not apply to these buttons.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:restriction>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_ToggleButtonRegular">
    <xsd:annotation>
      <xsd:documentation>

        A fixed-size button with an on/off state like the 'Bold' button.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_ButtonRegular">
        <xsd:attribute name="getPressed" type="ST_Delegate" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              Callback for whether the button is pressed.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_ToggleButton">
    <xsd:annotation>
      <xsd:documentation>

        A button with an on/off state that can be sized.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_ToggleButtonRegular">
        <xsd:attributeGroup ref="AG_SizeAttributes"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_VisibleToggleButton">
    <xsd:annotation>
      <xsd:documentation>

        A toggleButton which is always visible.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:restriction base="CT_ToggleButtonRegular">
        <xsd:attribute name="visible" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              Visible does not apply to these buttons.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="getVisible" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              GetVisible does not apply to these buttons.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:restriction>
    </xsd:complexContent>
  </xsd:complexType>


  <xsd:complexType name="CT_CheckBox">
    <xsd:annotation>
      <xsd:documentation>

        A check box.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:restriction base="CT_ToggleButtonRegular">
        <xsd:attribute name="image" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              Image does not apply to checkBox.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="imageMso" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              ImageMso does not apply to checkBox.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="getImage" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              GetImage does not apply to checkBox.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="showImage" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              ShowImage does not apply to checkBox.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="getShowImage" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              GetShowImage does not apply to checkBox.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="showLabel" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              ShowLabel does not apply to checkBox.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="getShowLabel" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              GetShowLabel does not apply to checkBox.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:restriction>
    </xsd:complexContent>
  </xsd:complexType>


  <xsd:complexType name="CT_EditBox">
    <xsd:annotation>
      <xsd:documentation>
        An editBox.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_Control">
        <xsd:attributeGroup ref="AG_Enabled"/>
        <xsd:attributeGroup ref="AG_Image"/>
        <xsd:attribute name="maxLength" type="ST_StringLength" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              The maximum number of characters the user may enter.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="getText" type="ST_Delegate" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              Callback for to populate text in the edit box before the user edits it.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="onChange" type="ST_Delegate" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              Callback that fires when the user changes the editBox content.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="sizeString" type="ST_String" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              A representative string that sets the control's width.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>


  <xsd:complexType name="CT_Item">
    <xsd:annotation>
      <xsd:documentation>

        An item in a dropdown-type control.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="id" type="ST_UniqueID" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          The ID of an item.  Items cannot use idMso or idQ.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="label" type="ST_String" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          An item label.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="image" type="ST_Uri" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          An item image.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="imageMso" type="ST_ID" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          A built-in image.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="screentip" type="ST_String" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          The screentip.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="supertip" type="ST_String" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          The supertip.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>

  <xsd:complexType name="CT_ComboBox">
    <xsd:annotation>
      <xsd:documentation>

        A comboBox control.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_EditBox">
        <xsd:sequence>
          <xsd:element name="item" type="CT_Item" minOccurs="0" maxOccurs="1000">
            <xsd:annotation>
              <xsd:documentation>
                An item in a comboBox.
                When selected, the label of the item becomes text content of the comboBox.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:attributeGroup ref="AG_DropDownAttributes"/>
        <xsd:attributeGroup ref="AG_DynamicContentAttributes"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>


  <xsd:complexType name="CT_DropDownRegular">
    <xsd:annotation>
      <xsd:documentation>

        A dropdown-type control with a fixed size.
        Contains items followed by buttons.
        OnAction reports the selected item.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_Control">
        <xsd:sequence>
          <xsd:element name="item" type="CT_Item" minOccurs="0" maxOccurs="1000">
            <xsd:annotation>
              <xsd:documentation>
                An item in the dropdown.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="button" type="CT_ButtonRegular" minOccurs="0" maxOccurs="16">
            <xsd:annotation>
              <xsd:documentation>
                Button in footer of dropdown.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <xsd:attributeGroup ref="AG_Action"/>
        <xsd:attributeGroup ref="AG_Enabled"/>
        <xsd:attributeGroup ref="AG_Image"/>
        <xsd:attributeGroup ref="AG_DropDownAttributes"/>
        <xsd:attribute name="getSelectedItemID" type="ST_Delegate" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              Callback that returns the ID of currently selected item.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="getSelectedItemIndex" type="ST_Delegate" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              Callback that returns the index of currently selected item.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="showItemLabel" type="xsd:boolean" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              Whether the label is shown or hidden on dropdown items.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_GalleryRegular">
    <xsd:annotation>
      <xsd:documentation>

        A dropdown grid control that can be sized.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_DropDownRegular">
        <xsd:attributeGroup ref="AG_Description"/>
        <xsd:attributeGroup ref="AG_DynamicContentAttributes"/>
        <xsd:attribute name="columns" type="ST_GalleryRowColumnCount" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              Number of columns in dropdown gallery.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="rows" type="ST_GalleryRowColumnCount" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              Number of rows in dropdown gallery.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="itemWidth" type="ST_GalleryItemWidthHeight" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              Item width in pixels.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="itemHeight" type="ST_GalleryItemWidthHeight" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              Item height in pixels.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="getItemWidth" type="ST_Delegate" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              Callback that returns the item width.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="getItemHeight" type="ST_Delegate" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              Callback that returns the item height.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="showItemLabel" type="xsd:boolean" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              Whether the label is shown or hidden on gallery items.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_Gallery">
    <xsd:annotation>
      <xsd:documentation>

        A gallery control.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_GalleryRegular">
        <xsd:attributeGroup ref="AG_SizeAttributes"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:group name="EG_MenuControlsBase">
    <xsd:annotation>
      <xsd:documentation>
        A group of controls allowed in all menus.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="control" type="CT_ControlCloneRegular">
        <xsd:annotation>
          <xsd:documentation>
            Control can enable, disable, or clone built-in controls.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="button" type="CT_ButtonRegular">
        <xsd:annotation>
          <xsd:documentation>
            Button control.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="checkBox" type="CT_CheckBox" >
        <xsd:annotation>
          <xsd:documentation>
            CheckBox control.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="gallery" type="CT_GalleryRegular">
        <xsd:annotation>
          <xsd:documentation>
            Gallery control.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="toggleButton" type="CT_ToggleButtonRegular">
        <xsd:annotation>
          <xsd:documentation>
            ToggleButton control.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="menuSeparator" type="CT_MenuSeparator">
        <xsd:annotation>
          <xsd:documentation>
            Control group separator.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>


  <xsd:group name="EG_MenuOrSplitButtonRegular">
    <xsd:annotation>
      <xsd:documentation>
        Defines menu or splitButton controls.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="splitButton" type="CT_SplitButtonRegular" >
        <xsd:annotation>
          <xsd:documentation>
            SplitButton control.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="menu" type="CT_MenuRegular">
        <xsd:annotation>
          <xsd:documentation>
            Menu.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="dynamicMenu" type="CT_DynamicMenuRegular">
        <xsd:annotation>
          <xsd:documentation>
            DynamicMenu.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>


  <xsd:group name="EG_MenuOrSplitButtonWithTitle">
    <xsd:annotation>
      <xsd:documentation>
        Menu or split button controls with title.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="splitButton" type="CT_SplitButtonWithTitle" >
        <xsd:annotation>
          <xsd:documentation>
            SplitButton control.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="menu" type="CT_MenuWithTitle">
        <xsd:annotation>
          <xsd:documentation>
            Menu.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="dynamicMenu" type="CT_DynamicMenuRegular">
        <xsd:annotation>
          <xsd:documentation>
            DynamicMenu.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>


  <xsd:complexType name="CT_OfficeMenu">
    <xsd:annotation>
      <xsd:documentation>

        The OfficeMenu control.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0" maxOccurs="1000">
        <xsd:group ref="EG_MenuControlsBase"/>
        <xsd:group ref="EG_MenuOrSplitButtonWithTitle"/>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>


  <xsd:complexType name="CT_MenuRegular">
    <xsd:annotation>
      <xsd:documentation>

        A menu with a fixed-size button.
        Contains one or more controls or other menus.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_ControlBase">
        <xsd:sequence>
          <xsd:choice minOccurs="0" maxOccurs="1000">
            <xsd:group ref="EG_MenuControlsBase"/>
            <xsd:group ref="EG_MenuOrSplitButtonRegular"/>
          </xsd:choice>
        </xsd:sequence>
        <xsd:attribute name="itemSize" type="ST_ItemSize" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              The size of menu items.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attributeGroup ref="AG_Description"/>
        <xsd:attributeGroup ref="AG_IDAttributes"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_DynamicMenuRegular">
    <xsd:annotation>
      <xsd:documentation>

        A dynamicMenu with a fixed-size button.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_ControlBase">
        <xsd:attributeGroup ref="AG_Description"/>
        <xsd:attributeGroup ref="AG_IDAttributes"/>
        <xsd:attributeGroup ref="AG_GetContentAttributes"/>
        <xsd:attributeGroup ref="AG_DynamicContentAttributes"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>


  <xsd:complexType name="CT_MenuWithTitle">
    <xsd:annotation>
      <xsd:documentation>

        A menu with a fixed-size button.
        Contains one or more controls or other menus and has a 'title' attribute.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_ControlBase">
        <xsd:sequence>
          <xsd:choice minOccurs="0" maxOccurs="1000">
            <xsd:group ref="EG_MenuControlsBase"/>
            <xsd:group ref="EG_MenuOrSplitButtonWithTitle"/>
          </xsd:choice>
        </xsd:sequence>
        <xsd:attributeGroup ref="AG_IDAttributes"/>
        <xsd:attribute name="itemSize" type="ST_ItemSize" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              The size of menu items.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attributeGroup ref="AG_Title"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_Menu">
    <xsd:annotation>
      <xsd:documentation>

        A menu with a button that can be sized.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_MenuRegular">
        <xsd:attributeGroup ref="AG_SizeAttributes"/>
        <xsd:attribute name="itemSize" type="ST_ItemSize" use="optional">
          <xsd:annotation>
            <xsd:documentation>
              The size of menu items. Large menu items show the 'description' attribute inline.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_DynamicMenu">
    <xsd:annotation>
      <xsd:documentation>

        A dynamicMenu with a button that can be sized.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_DynamicMenuRegular">
        <xsd:attributeGroup ref="AG_SizeAttributes"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>


  <xsd:complexType name="CT_SplitButtonBase">
    <xsd:annotation>
      <xsd:documentation>

        A splitButton-type control with a fixed-size.
        SplitButton contains a button or toggleButton and a menu.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_Control">
        <xsd:attributeGroup ref="AG_Enabled"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_SplitButtonRestricted">
    <xsd:annotation>
      <xsd:documentation>

        Attributes that do not apply to splitButton.
        They are inherited from the button inside of the splitButton.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:restriction base="CT_SplitButtonBase">
        <xsd:attribute name="label" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              Label does not apply to splitButton, set it on the button inside the splitButton.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="getLabel" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              GetLabel inherited from button inside splitButton.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="screentip" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              Screentip inherited from button inside splitButton.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="getScreentip" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              GetScreentip inherited from button inside splitButton.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="supertip" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              Supertip inherited from button inside splitButton.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="getSupertip" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              GetSuperTip inherited from button inside splitButton.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="image" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              Image inherited from button inside splitButton.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="imageMso" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              ImageMso inherited from button inside splitButton.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="getImage" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              GetImage inherited from button inside splitButton.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="showImage" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              ShowImage inherited from button inside splitButton.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="getShowImage" use="prohibited">
          <xsd:annotation>
            <xsd:documentation>
              GetShowImage inherited from button inside splitButton.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:restriction>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_SplitButtonRegular">
    <xsd:annotation>
      <xsd:documentation>

        A splitButton with a fixed-size.
        SplitButton contains a button or toggleButton and a menu.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_SplitButtonRestricted">
        <xsd:sequence minOccurs="0">
          <xsd:choice minOccurs="0" >
            <xsd:element name="button" type="CT_VisibleButton">
              <xsd:annotation>
                <xsd:documentation>
                  Button.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="toggleButton" type="CT_VisibleToggleButton" >
              <xsd:annotation>
                <xsd:documentation>
                  ToggleButton.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:element name="menu" type="CT_MenuRegular" >
            <xsd:annotation>
              <xsd:documentation>
                Menu.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_SplitButtonWithTitle">
    <xsd:annotation>
      <xsd:documentation>

        A splitButton with a fixed-size, and title attribute.
        SplitButton contains a button or toggleButton and a menu.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_SplitButtonRestricted">
        <xsd:sequence minOccurs="0">
          <xsd:choice minOccurs="0" >
            <xsd:element name="button" type="CT_VisibleButton">
              <xsd:annotation>
                <xsd:documentation>
                  Button.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="toggleButton" type="CT_VisibleToggleButton" >
              <xsd:annotation>
                <xsd:documentation>
                  ToggleButton.
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:choice>
          <xsd:element name="menu" type="CT_MenuWithTitle" >
            <xsd:annotation>
              <xsd:documentation>
                Menu.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="CT_SplitButton">
    <xsd:annotation>
      <xsd:documentation>

        A splitButton that can be sized.
        SplitButton contains a button or toggleButton and a menu.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="CT_SplitButtonRegular">
        <xsd:attributeGroup ref="AG_SizeAttributes"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>


  <xsd:group name="EG_Controls">
    <xsd:annotation>
      <xsd:documentation>
        Control types.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="control" type="CT_ControlClone">
        <xsd:annotation>
          <xsd:documentation>
            Control element can enable, disable or clone built-in controls.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="labelControl" type="CT_LabelControl" >
        <xsd:annotation>
          <xsd:documentation>
            LabelControl.
            Shows text and/or image.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="button" type="CT_Button" >
        <xsd:annotation>
          <xsd:documentation>
            Button control.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="toggleButton" type="CT_ToggleButton" >
        <xsd:annotation>
          <xsd:documentation>
            ToggleButton control, a button with on/off state.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="checkBox" type="CT_CheckBox" >
        <xsd:annotation>
          <xsd:documentation>
            CheckBox control.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="editBox" type="CT_EditBox" >
        <xsd:annotation>
          <xsd:documentation>
            EditBox control.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="comboBox" type="CT_ComboBox" >
        <xsd:annotation>
          <xsd:documentation>
            ComboBox control.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="dropDown" type="CT_DropDownRegular" >
        <xsd:annotation>
          <xsd:documentation>
            DropDown control.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="gallery" type="CT_Gallery" >
        <xsd:annotation>
          <xsd:documentation>
            Gallery control.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="menu" type="CT_Menu" >
        <xsd:annotation>
          <xsd:documentation>
            Menu control.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="dynamicMenu" type="CT_DynamicMenu" >
        <xsd:annotation>
          <xsd:documentation>
            DynamicMenu control.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="splitButton" type="CT_SplitButton" >
        <xsd:annotation>
          <xsd:documentation>
            SplitButton control.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="box" type="CT_Box" >
        <xsd:annotation>
          <xsd:documentation>
            Box control.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="buttonGroup" type="CT_ButtonGroup" >
        <xsd:annotation>
          <xsd:documentation>
            ButtonGroup control.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:choice>
  </xsd:group>


  <xsd:annotation>
    <xsd:documentation>
      ----------------------------------------------------------------------
      Containers
      ----------------------------------------------------------------------
    </xsd:documentation>
  </xsd:annotation>

  <xsd:complexType name="CT_DialogLauncher">
    <xsd:annotation>
      <xsd:documentation>

        Opens a dialog related to its parent group.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="button" type="CT_ButtonRegular" minOccurs="1" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
            Opens a dialog related to its parent group.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>


  <xsd:complexType name="CT_Box">
    <xsd:annotation>
      <xsd:documentation>

        A box control, useful for grouping controls horizontally and vertically.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:group ref="EG_Controls" minOccurs="0" maxOccurs="1000" />
    <xsd:attributeGroup ref="AG_IDCustom"/>
    <xsd:attributeGroup ref="AG_Visible"/>
    <xsd:attributeGroup ref="AG_PositionAttributes"/>
    <xsd:attribute name="boxStyle" type="ST_BoxStyle" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Flow of controls inside the box.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>


  <xsd:complexType name="CT_Separator">
    <xsd:annotation>
      <xsd:documentation>


      </xsd:documentation>
    </xsd:annotation>
    <xsd:attributeGroup ref="AG_IDCustom"/>
    <xsd:attributeGroup ref="AG_Visible"/>
    <xsd:attributeGroup ref="AG_PositionAttributes"/>
  </xsd:complexType>

  <xsd:complexType name="CT_MenuSeparator">
    <xsd:annotation>
      <xsd:documentation>


      </xsd:documentation>
    </xsd:annotation>
    <xsd:attributeGroup ref="AG_IDCustom"/>
    <xsd:attributeGroup ref="AG_PositionAttributes"/>
    <xsd:attributeGroup ref="AG_Title"/>
  </xsd:complexType>

  <xsd:complexType name="CT_ButtonGroup">
    <xsd:annotation>
      <xsd:documentation>

        A ButtonGroup. A horizontal box with special visual appearance.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0" maxOccurs="1000">
        <xsd:element name="control" type="CT_ControlCloneRegular">
          <xsd:annotation>
            <xsd:documentation>
              Control element can enable, disable or clone built-in controls.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="button" type="CT_ButtonRegular" >
          <xsd:annotation>
            <xsd:documentation>
              Button.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="toggleButton" type="CT_ToggleButtonRegular" >
          <xsd:annotation>
            <xsd:documentation>
              ToggleButton control, a button with on/off state.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="gallery" type="CT_GalleryRegular">
          <xsd:annotation>
            <xsd:documentation>
              Gallery control.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="menu" type="CT_MenuRegular">
          <xsd:annotation>
            <xsd:documentation>
              Menu control.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="dynamicMenu" type="CT_DynamicMenuRegular">
          <xsd:annotation>
            <xsd:documentation>
              DynamicMenu control.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="splitButton" type="CT_SplitButtonRegular">
          <xsd:annotation>
            <xsd:documentation>
              SplitButton control.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
    <xsd:attributeGroup ref="AG_IDCustom"/>
    <xsd:attributeGroup ref="AG_Visible"/>
    <xsd:attributeGroup ref="AG_PositionAttributes"/>
  </xsd:complexType>


  <xsd:complexType name="CT_Group">
    <xsd:annotation>
      <xsd:documentation>

        A group.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:sequence>
        <xsd:choice minOccurs="0" maxOccurs="1000">
          <xsd:group ref="EG_Controls"/>
          <xsd:element name="separator" type="CT_Separator">
            <xsd:annotation>
              <xsd:documentation>
                Separator control.
              </xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:choice>
      </xsd:sequence>
      <xsd:element name="dialogBoxLauncher" type="CT_DialogLauncher" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
            DialogBoxLauncher. Opens a dialog related to its parent group.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attributeGroup ref="AG_IDAttributes"/>
    <xsd:attributeGroup ref="AG_Label"/>
    <xsd:attributeGroup ref="AG_Image"/>
    <xsd:attributeGroup ref="AG_PositionAttributes"/>
    <xsd:attributeGroup ref="AG_Screentip"/>
    <xsd:attributeGroup ref="AG_Visible"/>
    <xsd:attributeGroup ref="AG_Keytip"/>
  </xsd:complexType>


  <xsd:complexType name="CT_Tab">
    <xsd:annotation>
      <xsd:documentation>

        A tab that contains groups.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0" maxOccurs="100">
        <xsd:element name="group" type="CT_Group">
          <xsd:annotation>
            <xsd:documentation>

              Group. Contains controls.

            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
    <xsd:attributeGroup ref="AG_IDAttributes"/>
    <xsd:attributeGroup ref="AG_Label"/>
    <xsd:attributeGroup ref="AG_PositionAttributes"/>
    <xsd:attributeGroup ref="AG_Visible"/>
    <xsd:attributeGroup ref="AG_Keytip"/>
  </xsd:complexType>


  <xsd:complexType name="CT_QatItems">
    <xsd:annotation>
      <xsd:documentation>

        Quick Access Toolbar items (shared or document-specific).

      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0" maxOccurs="1000">
        <xsd:element name="control" type="CT_ControlCloneQat">
          <xsd:annotation>
            <xsd:documentation>
              Control element can enable, disable or clone built-in controls.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="button" type="CT_ButtonRegular">
          <xsd:annotation>
            <xsd:documentation>
              Button control.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="separator" type="CT_Separator">
          <xsd:annotation>
            <xsd:documentation>
              Control group separator.
            </xsd:documentation>
          </xsd:annotation>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>


  <xsd:complexType name="CT_Qat">
    <xsd:annotation>
      <xsd:documentation>

        The Quick Access Toolbar.
        Two control collections: 1) Shared - applied to all windows and documents and 2) Document - attached to a document.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="sharedControls" type="CT_QatItems" minOccurs="0" >
        <xsd:annotation>
          <xsd:documentation>
            Set of controls shared between all windows or instances of the application.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="documentControls" type="CT_QatItems" minOccurs="0" >
        <xsd:annotation>
          <xsd:documentation>
            Set of controls attached to the current document.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>


  <xsd:complexType name="CT_Tabs">
    <xsd:annotation>
      <xsd:documentation>

        A collection of tabs.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="tab" type="CT_Tab" minOccurs="1" maxOccurs="100">
        <xsd:annotation>
          <xsd:documentation>
            Tab.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>


  <xsd:complexType name="CT_TabSet">
    <xsd:annotation>
      <xsd:documentation>

        A collection of contextual tab sets.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="tab" type="CT_Tab" minOccurs="0" maxOccurs="50">
        <xsd:annotation>
          <xsd:documentation>
            A Contextual Tab.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="idMso" type="ST_ID" use="required">
      <xsd:annotation>
        <xsd:documentation>
          The ID of a built-in control.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attributeGroup ref="AG_Visible"/>
  </xsd:complexType>


  <xsd:complexType name="CT_ContextualTabs">
    <xsd:annotation>
      <xsd:documentation>

        A collection of contextual tab sets.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="tabSet" type="CT_TabSet" minOccurs="1" maxOccurs="100">
        <xsd:annotation>
          <xsd:documentation>
            TabSet.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>


  <xsd:annotation>
    <xsd:documentation>
      ----------------------------------------------------------------------
      Root elements
      ----------------------------------------------------------------------
    </xsd:documentation>
  </xsd:annotation>

  <xsd:complexType name="CT_Commands">
    <xsd:annotation>
      <xsd:documentation>

        A collection of Command elements.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="command" type="CT_Command" minOccurs="1" maxOccurs="5000">
        <xsd:annotation>
          <xsd:documentation>
            Attribute overrides for all controls with specified idMso.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="CT_Ribbon">
    <xsd:annotation>
      <xsd:documentation>

        The Ribbon which contains the tabs, contextualTabs, officeMenu, and qat control types.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:all>
      <xsd:element name="officeMenu" type="CT_OfficeMenu" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
            OfficeMenu.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="qat" type="CT_Qat" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
            The Quick Access Toolbar.
            Two control collections: 1) Shared - applied to all windows and documents and 2) Document - attached to a document.
          </xsd:documentation>
        </xsd:annotation>
        <xsd:unique name="qatControls">
          <xsd:annotation>
            <xsd:documentation>
              "id" attribute must be unique within QAT, although
              it doesn't have to be uniquie across the file.
            </xsd:documentation>
          </xsd:annotation>
          <xsd:selector xpath="*/*"/>
          <xsd:field xpath="@id"/>
        </xsd:unique>
      </xsd:element>
      <xsd:element name="tabs" type="CT_Tabs" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
            A collection of tabs.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="contextualTabs" type="CT_ContextualTabs" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
            A collection of contextual tab sets.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:all>
    <xsd:attribute name="startFromScratch" type="xsd:boolean" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Whether startFromScratch is enabled. It's a mode that hides almost all of the standard UI.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>

  <xsd:complexType name="CT_MenuRoot">
    <xsd:annotation>
      <xsd:documentation>

        The root element of the customization XML returned by the getContent callback on dynamicMenus.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0" maxOccurs="1000">
        <xsd:group ref="EG_MenuControlsBase"/>
        <xsd:group ref="EG_MenuOrSplitButtonRegular"/>
      </xsd:choice>
    </xsd:sequence>
    <xsd:attributeGroup ref="AG_Title"/>
    <xsd:attribute name="itemSize" type="ST_ItemSize" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          The size of menu items.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>

  <xsd:element name="menu" type="CT_MenuRoot">
    <xsd:annotation>
      <xsd:documentation>

        The root element of the customization XML used in dynamicMenu's getContent callback.

      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:complexType name="CT_CustomUI">
    <xsd:annotation>
      <xsd:documentation>

        The root element of the customization file which is used to create or modify the Ribbon and other UI elements.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="commands" type="CT_Commands" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
            Command overrides.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="ribbon" type="CT_Ribbon" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
            Ribbon.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="onLoad" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          Callback invoked when custom UI is loaded.
          IRibbonUI object is passed as a parameter. This object exposes Invalidate and InvalidateControl.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="loadImage" type="ST_Delegate" use="optional">
      <xsd:annotation>
        <xsd:documentation>
          A callback to load all images. If specified, all controls with the image attribute set will call this callback with the attribute value passed as a string.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>

  <xsd:element name="customUI" type="CT_CustomUI">
    <xsd:annotation>
      <xsd:documentation>

        The root element used to create or modify the Ribbon and other UI components.

      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

</xsd:schema>