Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

'Manifest file doesn't conform to the schema definition' when uploading Outlook add-in manifest

When uploading a manifest file for an Outlook add-in that implements add-in commands, I get the following error:

Something went wrong

This app can't be installed. The manifest file doesn't conform to the schema definition. The element 'CustomTab' in namespace 'http://schemas.microsoft.com/office/mailappversionoverrides' has invalid child element 'Label' in namespace 'http://schemas.microsoft.com/office/mailappversionoverrides'. List of possible elements expected: 'Group in namespace 'http://schemas.microsoft.com/office/mailappversionoverrides'...

However, the Label element is a valid child of the CustomTab element. How can I resolve this?

like image 625
Jason Johnston Avatar asked Aug 31 '25 02:08

Jason Johnston


1 Answers

Short answer: Make sure the Label element appears after all Group elements inside the CustomTab element.

Office 365 recently enabled additional schema validation on manifest files, and due to the way the schema is defined for the CustomTab element, it expects Label to come after.

In other words, a manifest with this CustomTab element will trigger the error:

<CustomTab id="TabCustom1">
  <Label resid="customTabLabel1"/>
  <Group id="group1">
    <Label resid="groupLabel1"/>
    <Control xsi:type="Button" id="uilessButton1">
      <Label resid="uilessButtonLabel1"/>
      <Supertip>
        <Title resid="uilessButtonSuperTipTitle1"/>
        <Description resid="uilessButtonSuperTipDesc1"/>
      </Supertip>
      <Icon>
        <bt:Image size="16" resid="uilessButtonIcon1-16"/>
        <bt:Image size="32" resid="uilessButtonIcon1-32"/>
        <bt:Image size="80" resid="uilessButtonIcon1-80"/>
      </Icon>
      <Action xsi:type="ExecuteFunction">
        <FunctionName>buttonFunction1</FunctionName>
      </Action>
    </Control>
  </Group>
</CustomTab>

Changing it to this will resolve the error:

<CustomTab id="TabCustom1">
  <Group id="group1">
    <Label resid="groupLabel1"/>
    <Control xsi:type="Button" id="uilessButton1">
      <Label resid="uilessButtonLabel1"/>
      <Supertip>
        <Title resid="uilessButtonSuperTipTitle1"/>
        <Description resid="uilessButtonSuperTipDesc1"/>
      </Supertip>
      <Icon>
        <bt:Image size="16" resid="uilessButtonIcon1-16"/>
        <bt:Image size="32" resid="uilessButtonIcon1-32"/>
        <bt:Image size="80" resid="uilessButtonIcon1-80"/>
      </Icon>
      <Action xsi:type="ExecuteFunction">
        <FunctionName>buttonFunction1</FunctionName>
      </Action>
    </Control>
  </Group>
  <Label resid="customTabLabel1"/>
</CustomTab>
like image 139
Jason Johnston Avatar answered Sep 04 '25 09:09

Jason Johnston