We recommend using Visual Studio 2017

XmlFormCollection.NewFromFormTemplate Method (String, XPathNavigator) (Microsoft.Office.InfoPath)

Creates a new form using the specified form template with data specified by an XPathNavigator object.

Namespace: Microsoft.Office.InfoPath
Assembly: Microsoft.Office.InfoPath (in microsoft.office.infopath.dll)

public abstract XmlForm NewFromFormTemplate (
	string formTemplateLocation,
	XPathNavigator xmlData



The Uniform Resource Identifier (URI) of the form template on which to base the new form.


An XPathNavigator object that returns the XML data to be used as a template for the form.

Return Value

An XmlForm object that represents the new form that was created.

The NewFromFormTemplate method can only be used to create a new form based on an existing form template; it cannot be used to create a new form based on a form. To create a form from an existing form, use the New method.

When you use the NewFromFormTemplate method, the new form opens in InfoPath and is ready to be filled out.

This member can be accessed only by forms running in the same domain as the currently open form, or by forms that have been granted cross-domain permissions.

This type or member can be accessed only from code running in forms opened in Microsoft Office InfoPath 2007.

In the following example, the NewFromFormTemplate(formTemplateLocation, xmlData) method of the XmlFormCollection class is passed the URI of an existing form template and an XPathNavigator object that returns XML data, and the new form's associated XmlForm object returned.

// Create an in-memory XML document.
XmlDocument newDoc = new XmlDocument();
// Load the document with some XML.
   "<?xml version=\"1.0\" encoding=\"utf-8\" ?><person><firstName/><lastName/><address/><city/><country/></person>");
// Create an XPathNavigator for the XML file.
XPathNavigator newDocNav = newDoc.CreateNavigator();
// Call NewFromFormTemplate to open new form and load XML.
XmlForm newDocument = 
   @"C:\MyForm.xsn", newDocNav);