Skip to content

Instantly share code, notes, and snippets.

@travishaynes
Created November 14, 2020 00:45
Show Gist options
  • Save travishaynes/cb4ce01ab3ce8e38ddc125cb9a00ce3a to your computer and use it in GitHub Desktop.
Save travishaynes/cb4ce01ab3ce8e38ddc125cb9a00ce3a to your computer and use it in GitHub Desktop.
Schema definition for Ribbon Extensibility
<?xml version="1.0" ?>
<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>
Attributes for the extended description of a control.
</xsd:documentation>
</xsd:annotation>
<xsd:attribute name="description" type="ST_LongString" use="optional">
<xsd:annotation>
<xsd:documentation>
Sets the extended description of the control, which appears in menus with itemSize set to large.
</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
&gt;command idMso="Print" enabled="false"/&lt;
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_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>
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>
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>
An in-Ribbon separator. Renders as a vertical bar.
</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>
A menuSeparator. Renders as a horizontal bar.
</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_ControlClone">
<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: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>
@travishaynes
Copy link
Author

This XML schema isn't actually hosted for some reason, but they do have an HTML version of it in their documentation.

I copied this to a gist on GitHub to have a public location to point the IDE to so it will provide code completion and all that good stuff.

Example usage:

<?xml version="1.0" encoding="UTF-8"?>
<customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2006/01/customui"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://schemas.microsoft.com/office/2006/01/customui https://gist.githubusercontent.com/travishaynes/cb4ce01ab3ce8e38ddc125cb9a00ce3a/raw/7b2ed0ff8b4a48481e41aa1bca1fa84976ae02bf/customui.dtd">
  <ribbon>
    <tabs>
      <!--
        TabAddIns is the idMso for the global Add Ins tab for an Office add-in.
        https://docs.microsoft.com/en-us/openspecs/office_standards/ms-customui/bb5bb594-ec8c-45f6-8424-f98e8308b25a
      -->
      <tab idMso="TabAddIns">
        <group id="ThisGroupHasAnId" label="Suspicious Looking Group">
          <button id="Button" label="Suspicious Looking Button" size="normal"/>
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment