<?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>

				Specifies the "Qualified ID" for a built-in or custom control. 
				Custom controls can be given an idQ defined with a prefix, e.g. "myaddin:Save" 
				where "myaddin" must be an XML namespace defined in context of the element.
				A qualified id allows multiple add-ins to refer to the same controls.
				A custom control must have one of id, idQ, or idMso.

			</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>

				Specifies 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>

				Specifies 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>

				Specifies a delegate type which is used by a control to call back to a macro. 
				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>

				Specifies a numeric argument which determines maximum string length, such as in editBox
				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>

				Specifies a numeric argument which determines 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>

				Specifies a numeric argument which determines 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>

				Specifies 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>

				Specifies a 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>

				Specifies a string argument which is 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>
			
				Specifies the size of the button; "large" or "normal."
				
			</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>
			
				Specifies the size of items in a menu; "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>
			
				Style of a box control. "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>

				Specifies a keytip.  1-3 characters, no whitespace.

			</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>
			
				Specifies attributes that specify custom control ID.
				
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="id" type="ST_UniqueID" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies ID of a custom UI element. IDs must be unique across customUI XML file.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="idQ" type="ST_QID" use="optional">
			<xsd:annotation>
				<xsd:documentation>
				
					A qualified control ID.

To use a qualified name, you must first create your own namespace. The following code creates a namespace called myNameSpace, aliased by "x."

	&lt;customUI xmlns="http://schemas.microsoft.com/office/2005/08/customui" xmlns:x="myNameSpace"&gt;

With this declaration, idQ is usable on controls:

	&lt;group idQ="x:myButton" ... /&gt;

By creating a namespace x, two different add-ins can add to the same group, by referring to that custom group with its qualified name.

				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>

	<xsd:attributeGroup name="AG_IDMso">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies ID of a built-in control.
				
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="idMso" type="ST_ID" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies ID of a built-in control.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>
	
	<xsd:attributeGroup name="AG_Tag">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies custom data.
				
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="tag" type="ST_String" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies custom data as string.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>


	<xsd:attributeGroup name="AG_Title">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies the title of a menu.
				
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="title" type="ST_String" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Title to show as a header when the menu is opened.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="getTitle" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Callback for dynamically getting the title.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>
	
	<xsd:attributeGroup name="AG_IDAttributes">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies 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>
			
				Specifies the control's image or icon.
				Image attributes are mutually exclusive - only one of 
				"image", "imageMso", or "getImage" can be specified.
				
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="image" type="ST_Uri" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a custom image or icon.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="imageMso" type="ST_ID" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies an image or icon if a built-in control.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="getImage" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which returns a custom image.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>
	
	<xsd:attributeGroup name="AG_CommonAttributes">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies 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>
			
				Specifies attributes that can determine position of an object within its container
				(such as 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>
					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>
					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>
					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>
					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>
			
				Specifies attributes that can be applied to determine 
				if a control is enabled.
				
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="enabled" type="xsd:boolean" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies if a control is enabled.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="getEnabled" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which returns true if control is enabled.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>

	<xsd:attributeGroup name="AG_Visible">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies attributes that can be applied to determine visibility.
				
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="visible" type="xsd:boolean" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies if a control is visible.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="getVisible" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which returns true if control is visible.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>

	<xsd:attributeGroup name="AG_Label">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies attributes that can be applied to determine the label.
				
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="label" type="ST_String" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies the label.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="getLabel" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which returns custom label.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>

	<xsd:attributeGroup name="AG_Keytip">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies attributes that can be applied to determine the Keytip.
				
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="keytip" type="ST_Keytip" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies the keytip.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="getKeytip" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which returns custom keytip.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>

	<xsd:attributeGroup name="AG_Screentip">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies attributes that can be applied to determine the screentip
				to show when mouse is over the control.
				
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="screentip" type="ST_String" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Screentip to show when mouse is over the control.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="getScreentip" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which returns the screentip.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="supertip" type="ST_String" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Large screentip to show when mouse is over the control.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="getSupertip" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which returns the Supertip.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>

	<xsd:attributeGroup name="AG_Description">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies attributes that can be applied to determine the 
				extended description of the control, appears in menus with itemSize set to large.
				
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="description" type="ST_LongString" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Extended description of the control, 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>
					Specifies a callback which returns control description.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>

	<xsd:attributeGroup name="AG_UIAttributes">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies attributes that can be applied to all user interface items such as tabs and 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>
			
				Specifies 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>
			
				Specifies 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>
					Specifies whether or not to show the label on a control.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="getShowLabel" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which returns whether to show the label.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="showImage" type="xsd:boolean" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies whether or not to show the image on a control.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="getShowImage" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which returns whether to show the image.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>
	
	<xsd:attributeGroup name="AG_Action">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies an action callback.
				
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="onAction" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which responds on user action.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>
	
	<xsd:attributeGroup name="AG_SizeAttributes">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies a size attribute.

			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="size" type="ST_Size" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies size of a button control.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="getSize" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which returns a control's size.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>

	<xsd:attributeGroup name="AG_DropDownAttributes">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies common attributes for controls with dropdowns (such as ComboBox or Gallery).

			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="showItemImage" type="xsd:boolean" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies if the image is shown or hidden on dropdown items.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="getItemCount" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which returns the number of items in dropdown.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="getItemLabel" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which returns the label for an item.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="getItemScreentip" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which returns screentip for an item.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="getItemSupertip" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which returns Supertip for an item.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="getItemImage" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which returns the image for an item.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="getItemID" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which returns an ID for a dynamically generated item.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="sizeString" type="ST_String" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a representative string which should fit in the control. 
					E.g. if the control is meant for a credit card number a string of 16 digits
					ensures appropriate control size.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>

	<xsd:attributeGroup name="AG_GetContentAttributes">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies attributes that can be applied to dynamic controls that support GetContent.
				
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="getContent" type="ST_Delegate" use="required">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which returns the dynamic content for this control.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>
	
	<xsd:attributeGroup name="AG_DynamicContentAttributes">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies attributes that can be applied to controls that support dynamic content.
				
			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="invalidateContentOnDrop" type="xsd:boolean" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies whether to call callbacks to get dynamic content every 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>
			
				Specifies attribute overrides for all controls with specified ID.

				Setting a property with Command element is equivalent to setting 
				same properties on all controls with same id in the ribbon, popup menus, status bar etc. 

				For example 

					&lt;command idMso="Print" enabled="false"&gt;

				disables all instances of Print button in the application UI.
				
			</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>
			
				Specifies 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>
			
				Specifies a clone of built-in control. 
				Control type is determined by source 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 by id. 
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:restriction>
		</xsd:complexContent>
	</xsd:complexType>

	<xsd:complexType name="CT_ControlClone">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies 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 by id. 
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="onAction" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							The onAction property 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 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" property is not applicable to labelControl.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="imageMso" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							"imageMso" property is not applicable to labelControl.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="getImage" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							"getImage" callback is not applicable to labelControl.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="keytip" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							"keytip" property is not applicable to labelControl.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="getKeytip" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							"getKeytip" callback is not applicable to labelControl.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="showImage" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							"showImage" property is not applicable to labelControl.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="getShowImage" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							"getShowImage" callback is not applicable to labelControl.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:restriction>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="CT_ButtonRegular">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies a fixed-size button.
				Size of a button of this type 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>
			
				Specifies 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>
			
				Specifies 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" property is not applicable to these types of buttons
							because they are always visible.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="getVisible" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							"getVisible" property is not applicable to these types of buttons
							because they are always visible.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:restriction>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="CT_ToggleButtonRegular">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies a fixed-size button type with an on/off state such as a 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>
							Specifies a callback which returns true if 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>
			
				Specifies a button type 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>
			
				Specifies 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" property is not applicable to these types of buttons
							because they are always visible.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="getVisible" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							"getVisible" property is not applicable to these types of buttons
							because they are always visible.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:restriction>
		</xsd:complexContent>
	</xsd:complexType>
	

	<xsd:complexType name="CT_CheckBox">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies 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" property is not applicable to checkBox.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="imageMso" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							"imageMso" property is not applicable to checkBox.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="getImage" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							"getImage" callback is not applicable to checkBox.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="showImage" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							"showImage" property is not applicable to checkBox.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="getShowImage" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							"getShowImage" callback is not applicable to checkBox.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="showLabel" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							"showLabel" property is not applicable to checkBox.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="getShowLabel" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							"getShowLabel" callback is not applicable to checkBox.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:restriction>
		</xsd:complexContent>
	</xsd:complexType>


	<xsd:complexType name="CT_EditBox">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies an edit box control type.

				OnChange callback reports new text.
				
			</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>
							Specifies maximum number of characters the user may input.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="getText" type="ST_Delegate" use="optional">
					<xsd:annotation>
						<xsd:documentation>
							Specifies a callback which returns text to be inserted in the edit box before begins editing.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="onChange" type="ST_Delegate" use="optional">
					<xsd:annotation>
						<xsd:documentation>
							Specifies a callback which responds on change of selection.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="sizeString" type="ST_String" use="optional">
					<xsd:annotation>
						<xsd:documentation>
							Specifies a representative string which should fit in the control. 
							E.g. if the control is meant for a credit card number a string of 16 digits
							ensures appropriate control size.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	

	<xsd:complexType name="CT_Item">
		<xsd:annotation>
			<xsd:documentation>
			
				Represents a selection in a comboBox or dropDown control type.

			</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="id" type="ST_UniqueID" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies the ID of a gallery item.  Gallery 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>
					Specifies text label.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="image" type="ST_Uri" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies the image.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="imageMso" type="ST_ID" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a built-in image.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="screentip" type="ST_String" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies the screentip.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="supertip" type="ST_String" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies the SuperTip.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	
	<xsd:complexType name="CT_ComboBox">
		<xsd:annotation>
			<xsd:documentation>

				Specifies a comboBox control type.

				Contains options (multiple-choice item) 

				OnChange behavior is same as in EditBox (the text).
				Callback can't tell if the value is typed in or selected.
				
			</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>
								One of the items to choose from. 
								When selected, the label property of the item becomes text content of
								the edit box.
							</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>
			
				Specifies a drop-down control type with a fixed-size.
				Contains options followed by buttons. Order is important - buttons last.
				OnAction reports the selected option.

			</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>
								One of the items to choose from. 
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="button" type="CT_ButtonRegular" minOccurs="0" maxOccurs="16">
						<xsd:annotation>
							<xsd:documentation>
								Button which invokes a different command. 
								Pushing a button doesn't have any effect on selection.
							</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>
							Specifies a callback which 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>
							Specifies a callback which 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>
							Specifies if 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>
			
				Specifies a drop-down 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>
							Specifies 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>
							Specifies 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>
							Specifies item width in pixels.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="itemHeight" type="ST_GalleryItemWidthHeight" use="optional">
					<xsd:annotation>
						<xsd:documentation>
							Specifies item height in pixels.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="getItemWidth" type="ST_Delegate" use="optional">
					<xsd:annotation>
						<xsd:documentation>
							Specifies a callback which returns the item width.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="getItemHeight" type="ST_Delegate" use="optional">
					<xsd:annotation>
						<xsd:documentation>
							Specifies a callback which returns the item height.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="showItemLabel" type="xsd:boolean" use="optional">
					<xsd:annotation>
						<xsd:documentation>
							Specifies if 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>
			
				Gallery - choose one option from a grid of options.
 
			</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>
				Defines 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 element can enable, disable or clone existing controls.
						Creating a new (custom) control with Control element is not possible
						because the control type is not specified.
					</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>
						DropDownGrid-type 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>
						Dynamic menu.
					</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:choice>
	</xsd:group>


	<xsd:group name="EG_MenuOrSplitButtonWithTitle">
		<xsd:annotation>
			<xsd:documentation>
				Defines menu or split button controls with title, for use in Office menu.
			</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>

				Specifies the Office Menu.
				
			</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>

				Specifies 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>
							Specifies 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>

				Specifies a dynamic menu 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>

				Specifies a menu with a fixed-size button.
				Contains one or more controls or other Menus.
				Implements "Title" property.
				
			</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>
							Specifies 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>

				Specifies a menu with a button that can be sized.
				Contains one or more controls or other Menus.
				
			</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>
							Specifies size of menu items. Large menu items show their description property.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<xsd:complexType name="CT_DynamicMenu">
		<xsd:annotation>
			<xsd:documentation>

				Specifies a dynamic menu with a button that can be sized.
				Contains one or more controls or other Menus.
				
			</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>

				Specifies a split button (button type or menu) with a fixed-size.
				Split button contains one button (or toggle button) and one menu.
				Abstract type.

			</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>

				Specifies the properties which are restricted from splitButtons
				because 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>
							This property is inherited from the button inside of the splitButton.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="getLabel" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							This property is inherited from the button inside of the splitButton.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="screentip" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							This property is inherited from the button inside of the splitButton.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="getScreentip" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							This property is inherited from the button inside of the splitButton.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="supertip" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							This property is inherited from the button inside of the splitButton.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="getSupertip" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							This property is inherited from the button inside of the splitButton.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="image" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							This property is inherited from the button inside of the splitButton.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="imageMso" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							This property is inherited from the button inside of the splitButton.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="getImage" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							This property is inherited from the button inside of the splitButton.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="showImage" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							This property is inherited from the button inside of the splitButton.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="getShowImage" use="prohibited">
					<xsd:annotation>
						<xsd:documentation>
							This property is inherited from the button inside of the splitButton.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:restriction>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="CT_SplitButtonRegular">
		<xsd:annotation>
			<xsd:documentation>

				Specifies a split button (button type or menu) with a fixed-size.
				Split button contains one button (or toggle button) and one 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 control.
								</xsd:documentation>
							</xsd:annotation>
						</xsd:element>
						<xsd:element name="toggleButton" type="CT_VisibleToggleButton" >
							<xsd:annotation>
								<xsd:documentation>
									Button with on/off state, such as Bold.
								</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>

				Specifies a split button (button type or menu) with a fixed-size.
				Split button contains one button (or toggle button) and one 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 control.
								</xsd:documentation>
							</xsd:annotation>
						</xsd:element>
						<xsd:element name="toggleButton" type="CT_VisibleToggleButton" >
							<xsd:annotation>
								<xsd:documentation>
									Button with on/off state, such as Bold.
								</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>
			
				Specifies a split button (button type or menu) that can be sized.

			</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>
				Defines a group of 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 existing controls.
						Creating a new (custom) control with Control element is not possible
						because the control type is not specified.
					</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="labelControl" type="CT_LabelControl" >
				<xsd:annotation>
					<xsd:documentation>
						LabelControl control. 
						Shows text and/or icon but can't have any associated actions.
					</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>
						Button with on/off state, such as Bold.
					</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.
					</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="dynamicMenu" type="CT_DynamicMenu" >
				<xsd:annotation>
					<xsd:documentation>
						Dynamic menu.
					</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>
			
				Specifies a dialog launcher with options for the associated group.

			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="button" type="CT_ButtonRegular" minOccurs="1" maxOccurs="1">
				<xsd:annotation>
					<xsd:documentation>
						Dialog launcher - a widget that brings up a dialog with advanced options for this group.
					</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>

	
	<xsd:complexType name="CT_Box">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies a Box control - a horizontal grouping container.

			</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>
					Specifies how controls are displayed within the box.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>


	<xsd:complexType name="CT_Separator">
		<xsd:annotation>
			<xsd:documentation>

				Specifies a control group separator - 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>

				Specifies a menu separator - a horizontal bar that separates menu items.

			</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>
			
				Specifies a ButtonGroup control - a horizontal container with an integrated look.

			</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 existing controls.
							Creating a new (custom) control with Control element is not possible
							because the control type is not specified.
						</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="toggleButton" type="CT_ToggleButtonRegular" >
					<xsd:annotation>
						<xsd:documentation>
							Button with on/off state, such as Bold.
						</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.
						</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="dynamicMenu" type="CT_DynamicMenuRegular">
					<xsd:annotation>
						<xsd:documentation>
							Dynamic menu.
						</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>
			
				Specifies a group that contains other control types.

			</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>
								Control group separator.
							</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>
						Dialog launcher - a widget that brings up a dialog with advanced options for this 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>
			
				Specifies a tab that contains groups with other controls.
				
			</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>
			
				Specifies 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 existing controls.
							Creating a new (custom) control with Control element is not possible
							because the control type is not specified.
						</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>
			
				Specifies Quick Access Toolbar. 
				Contains two control collections: 
					Shared (applied to all windows and documents) and
					Document (attached to a document).

			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="sharedControls" type="CT_QatItems" minOccurs="0" >
				<xsd:annotation>
					<xsd:documentation>
						Custom 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>
						Custom 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>
			
				Specifies 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>
			
				Specifies 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>
					Specifies 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>
			
				Specifies 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>
						Tab Set.
					</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>

				Specifies 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>
						Specifies 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>
			
				Specifies the Ribbon which contains the tabs, menu, Quick Access Toolbar control types.

			</xsd:documentation>
		</xsd:annotation>
		<xsd:all>
			<xsd:element name="officeMenu" type="CT_OfficeMenu" minOccurs="0" maxOccurs="1">
				<xsd:annotation>
					<xsd:documentation>
						Office menu. 
					</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="qat" type="CT_Qat" minOccurs="0" maxOccurs="1">
				<xsd:annotation>
					<xsd:documentation>
						Quick Access Toolbar. 
						Contains two control collections: 
							Shared (applied to all windows and documents) and
							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>
					Specicies the mode where most of the standard UI is turned off and
					replaced with custom UI specified here.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	
	<xsd:complexType name="CT_MenuRoot">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies the root element of the customization XML returned by 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>
					Specifies size of menu items.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>

	<xsd:element name="menu" type="CT_MenuRoot">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies 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>
			
				Specifies the root element of the customization file which is used to create or modify the Ribbon.

			</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>
					Specifies a callback which is invoked when custom UI is loaded.
					IRibbonUI object is passed as a parameter. 
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="loadImage" type="ST_Delegate" use="optional">
			<xsd:annotation>
				<xsd:documentation>
					Specifies a callback which is invoked to load custom images.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>

	<xsd:element name="customUI" type="CT_CustomUI">
		<xsd:annotation>
			<xsd:documentation>
			
				Specifies the root element of the customization file which is used to create or modify the Ribbon.
				
			</xsd:documentation>
		</xsd:annotation>
	</xsd:element>	

</xsd:schema>

