I've been working on a word add-in, and I'm trying to get it up and running, but I'm getting some XML Schema violations that I need to fix first. I've tried posting this on stackoverflow, answers.microsoft.com, and even live customer support but everyone
seems to think my manifest file is fine and don't know what's causing the problem
I've noticed that links to schemas.microsoft.com don't seem to work when I try to access it with a browser, but I'm not sure if it's actually related (I had a user on answers.microsoft tell me that the link has never worked in browsers, so maybe it's unrelated)
Here's the errors I'm getting when I try to run validate-office-addin:
I'm not sure why it's saying 'Image' is an invalid child element when it lists 'Image' as the only valid element?Calling validation service. This might take a moment... ------------------------------------- Validation: Failed Error #1: XML Schema Violation: Your manifest does not adhere to the current set of XML schema definitions for Office Add-in manifests. (link: https://aka.ms/add-in-manifest-schema-violation) - Details: The element 'Icon' in namespace 'http://schemas.microsoft.com/office/taskpaneappversionoverrides' has invalid child element 'Image' in namespace 'https://schemas.microsoft.com/office/officeappbasictypes/1.0'. List of possible elements expected: 'Image' in namespace 'http://schemas.microsoft.com/office/officeappbasictypes/1.0'. - Line: 87 - Column: 20 Error #2: XML Schema Violation: Your manifest does not adhere to the current set of XML schema definitions for Office Add-in manifests. (link: https://aka.ms/add-in-manifest-schema-violation) - Details: The element 'Icon' in namespace 'http://schemas.microsoft.com/office/taskpaneappversionoverrides' has invalid child element 'Image' in namespace 'https://schemas.microsoft.com/office/officeappbasictypes/1.0'. List of possible elements expected: 'Image' in namespace 'http://schemas.microsoft.com/office/officeappbasictypes/1.0'. - Line: 102 - Column: 22 Error #3: XML Schema Violation: Your manifest does not adhere to the current set of XML schema definitions for Office Add-in manifests. (link: https://aka.ms/add-in-manifest-schema-violation) - Details: The element 'Resources' in namespace 'http://schemas.microsoft.com/office/taskpaneappversionoverrides' has invalid child element 'Images' in namespace 'https://schemas.microsoft.com/office/officeappbasictypes/1.0'. List of possible elements expected: 'Images, Urls, ShortStrings, LongStrings' in namespace 'http://schemas.microsoft.com/office/officeappbasictypes/1.0'. - Line: 123 - Column: 8 -------------------------------------
Here's the actual manifest file itself:
<?xml version="1.0" encoding="UTF-8"?><OfficeAppxmlns="http://schemas.microsoft.com/office/appforoffice/1.1"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:bt="https://schemas.microsoft.com/office/officeappbasictypes/1.0"xmlns:ov="https://schemas.microsoft.com/office/taskpaneappversionoverrides"xsi:type="TaskPaneApp"><!-- Begin Basic Settings: Add-in metadata, used for all versions of Office unless override provided. --><!-- IMPORTANT! Id must be unique for your add-in, if you reuse this manifest ensure that you change this id to a new GUID. --><Id>452435-24352345-23452345-141324</Id><!--Version. Updates from the store only get triggered if there is a version change. --><Version>0.9.0.0</Version><ProviderName>Example Pty. Ltd.</ProviderName><DefaultLocale>en-US</DefaultLocale><!-- The display name of your add-in. Used on the store and various places of the Office UI such as the add-ins dialog. --><DisplayNameDefaultValue="Example App"/><DescriptionDefaultValue="This is an example app"/><!-- Icon for your add-in. Used on installation screens and the add-ins dialog. --><IconUrlDefaultValue="https://example.com/assets/icon-32.png"/><HighResolutionIconUrlDefaultValue="https://example.com/assets/icon-80.png"/><!--If you plan to submit this add-in to the Office Store, uncomment the SupportUrl element below--><!--<SupportUrl DefaultValue="[Insert the URL of a page that provides support information for the app]">--><!-- Domains that will be allowed when navigating. For example, if you use ShowTaskpane and then have an href link, navigation will only be allowed if the domain is on this list. --><AppDomains><AppDomain>AppDomain1</AppDomain><AppDomain>AppDomain2</AppDomain><AppDomain>AppDomain3</AppDomain></AppDomains><!--End Basic Settings. --><!--Begin TaskPane Mode integration. This section is used if there are no VersionOverrides or if the Office client version does not support add-in commands. --><Hosts><HostName="Document"/></Hosts><DefaultSettings><SourceLocationDefaultValue="https://example.com/index.html"/></DefaultSettings><!-- End TaskPane Mode integration. --><Permissions>ReadWriteDocument</Permissions><!-- Begin Add-in Commands Mode integration. --><VersionOverridesxmlns="http://schemas.microsoft.com/office/taskpaneappversionoverrides"xsi:type="VersionOverridesV1_0"><!-- The Hosts node is required. --><Hosts><!-- Each host can have a different set of commands. --><!-- Excel host is Workbook, Word host is Document, and PowerPoint host is Presentation. --><!-- Make sure the hosts you override match the hosts declared in the top section of the manifest. --><Hostxsi:type="Document"><!-- Form factor. Currently only DesktopFormFactor is supported. --><DesktopFormFactor><!--"This code enables a customizable message to be displayed when the add-in is loaded successfully upon individual install."--><GetStarted><!-- Title of the Getting Started callout. resid points to a ShortString resource --><Titleresid="Contoso.GetStarted.Title"/><!-- Description of the Getting Started callout. resid points to a LongString resource --><Descriptionresid="Contoso.GetStarted.Description"/><!-- Point to a url resource which details how the add-in should be used. --><LearnMoreUrlresid="Contoso.GetStarted.LearnMoreUrl"/></GetStarted><!-- Function file is a HTML page that includes the JavaScript where functions for ExecuteAction will be called.
Think of the FunctionFile as the code behind ExecuteFunction. --><FunctionFileresid="Contoso.DesktopFunctionFile.Url"/><!-- PrimaryCommandSurface is the main Office Ribbon. --><ExtensionPointxsi:type="PrimaryCommandSurface"><!-- Use OfficeTab to extend an existing Tab. Use CustomTab to create a new tab. --><OfficeTabid="TabHome"><!-- Ensure you provide a unique id for the group. Recommendation for any IDs is to namespace using your company name. --><Groupid="Contoso.Group1"><!-- Label for your group. resid must point to a ShortString resource. --><Labelresid="Contoso.Group1Label"/><!-- Icons. Required sizes 16,32,80, optional 20, 24, 40, 48, 64. Strongly recommended to provide all sizes for great UX. --><!-- Use PNG icons. All URLs on the resources section must use HTTPS. --><Icon><bt:Imagesize="16"resid="Contoso.tpicon_16x16"/><bt:Imagesize="32"resid="Contoso.tpicon_32x32"/><bt:Imagesize="80"resid="Contoso.tpicon_80x80"/></Icon><!-- Control. It can be of type "Button" or "Menu". --><Controlxsi:type="Button"id="Contoso.TaskpaneButton"><Labelresid="Contoso.TaskpaneButton.Label"/><Supertip><!-- ToolTip title. resid must point to a ShortString resource. --><Titleresid="Contoso.TaskpaneButton.Label"/><!-- ToolTip description. resid must point to a LongString resource. --><Descriptionresid="Contoso.TaskpaneButton.Tooltip"/></Supertip><Icon><bt:Imagesize="16"resid="Contoso.tpicon_16x16"/><bt:Imagesize="32"resid="Contoso.tpicon_32x32"/><bt:Imagesize="80"resid="Contoso.tpicon_80x80"/></Icon><!-- This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFunction or ShowTaskpane. --><Actionxsi:type="ShowTaskpane"><TaskpaneId>ButtonId1</TaskpaneId><!-- Provide a url resource id for the location that will be displayed on the task pane. --><SourceLocationresid="Contoso.Taskpane.Url"/></Action></Control></Group></OfficeTab></ExtensionPoint></DesktopFormFactor></Host></Hosts><!-- You can use resources across hosts and form factors. --><Resources><bt:Images><bt:Imageid="Contoso.tpicon_16x16"DefaultValue="https://example.com/assets/icon-16.png"/><bt:Imageid="Contoso.tpicon_32x32"DefaultValue="https://example.com/assets/icon-32.png"/><bt:Imageid="Contoso.tpicon_80x80"DefaultValue="https://example.com/assets/icon-80.png"/></bt:Images><bt:Urls><bt:Urlid="Contoso.Taskpane.Url"DefaultValue="https://example.com/index.html"/><bt:Urlid="Contoso.GetStarted.LearnMoreUrl"DefaultValue="https://go.microsoft.com/fwlink/?LinkId=276812"/><bt:Urlid="Contoso.DesktopFunctionFile.Url"DefaultValue="https://example.com/function-file/function-file.html"/></bt:Urls><!-- ShortStrings max characters==125. --><bt:ShortStrings><bt:Stringid="Contoso.TaskpaneButton.Label"DefaultValue="Show Taskpane"/><bt:Stringid="Contoso.Group1Label"DefaultValue="Commands Group"/><bt:Stringid="Contoso.GetStarted.Title"DefaultValue="Get started with your sample add-in!"/></bt:ShortStrings><!-- LongStrings max characters==250. --><bt:LongStrings><bt:Stringid="Contoso.TaskpaneButton.Tooltip"DefaultValue="Click to Show a Taskpane"/><bt:Stringid="Contoso.GetStarted.Description"DefaultValue="Your sample add-in loaded succesfully. Go to the HOME tab and click the 'Show Taskpane' button to get started."/></bt:LongStrings></Resources></VersionOverrides><!-- End Add-in Commands Mode integration. --></OfficeApp>
Any help would be much appreciated, I've been scratching my head over this for a while now!