Form XML schema

The following is the schema definition for form customizations for Dynamics 365 Customer Engagement (on-premises). For more information, see Customize Entity Forms in Microsoft Dynamics 365 Customer Engagement. Download the schemas.

Note

On solution import, you might see an error related to the form xml structure, for example, "NavBarArea cannot be empty."

This would mean that there is a min occurance of 1 for the Titles node inside the NavBarArea.

<xs:complex Type name="FormNavBarAreasType"> <xs:sequence> <xs:element name="NavBarArea" minOccurs="0" maxOccurs="unbounded"> <xs:complexType>

The mitigation is to either add the title node or to remove the NavBarArea completely.

Schema

<?xml version="1.0"?>  
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"  
           elementFormDefault="qualified"  
           attributeFormDefault="unqualified">  
  <xs:include schemaLocation="RibbonCore.xsd" />  
  <xs:element name="form"  
              type="FormType" />  
  <xs:complexType name="ClientFileIncludeAttributeType">  
    <xs:attribute name="src"  
                  use="required">  
      <xs:simpleType>  
        <xs:restriction base ="xs:string">  
          <xs:pattern value ="(\$webresource:|/)(.)+"/>  
        </xs:restriction>  
      </xs:simpleType>  
    </xs:attribute>  
  
  </xs:complexType>  
  <xs:complexType name="ClientResourcesType">  
    <xs:all>  
      <xs:element name="internalresources"  
                  minOccurs ="0"  
                  maxOccurs ="1">  
        <xs:complexType>  
          <xs:all>  
            <xs:element name ="clientincludes"  
                        minOccurs ="0"  
                        maxOccurs ="1">  
              <xs:complexType >  
                <xs:choice minOccurs="0"  
                           maxOccurs ="100000" >  
                  <xs:element name ="internaljscriptfile"  
                              type="ClientFileIncludeAttributeType"  
                              minOccurs ="0"  
                              maxOccurs ="1" />  
                  <xs:element name ="internalcssfile"  
                              type="ClientFileIncludeAttributeType"  
                              minOccurs ="0"  
                              maxOccurs ="1" />  
                </xs:choice>  
  
              </xs:complexType >  
            </xs:element>  
            <xs:element name ="clientvariables"  
                        minOccurs="0"  
                        maxOccurs ="1">  
              <xs:complexType>  
                <xs:sequence>  
                  <xs:element name ="internaljscriptvariable"  
                              minOccurs ="0"  
                              maxOccurs ="100000">  
                    <xs:complexType>  
                      <xs:attribute name="name"  
                                    use ="required">  
                        <xs:simpleType>  
                          <xs:restriction base ="xs:string">  
                            <xs:pattern value="LOCID_([A-Za-z0-9_])+"/>  
                            <xs:maxLength value ="32"/>  
                          </xs:restriction>  
                        </xs:simpleType>  
                      </xs:attribute>  
                      <xs:attribute name ="resourceid"  
                                    use="required" >  
                        <xs:simpleType>  
                          <xs:restriction base ="xs:string">  
                            <xs:pattern value="([A-Za-z0-9_.])+"/>  
                          </xs:restriction>  
                        </xs:simpleType>  
                      </xs:attribute>  
  
                    </xs:complexType>  
                  </xs:element>  
                </xs:sequence>  
  
              </xs:complexType>  
            </xs:element>  
          </xs:all>  
  
        </xs:complexType>  
      </xs:element>  
      <xs:element name="isvresources"  
                  minOccurs ="0"  
                  maxOccurs ="1">  
        <xs:complexType>  
          <xs:sequence>  
            <xs:element name ="clientincludes"  
                        minOccurs ="0"  
                        maxOccurs ="1">  
              <xs:complexType >  
                <xs:sequence>  
                  <xs:element name ="webresource"  
                              minOccurs ="0"  
                              maxOccurs ="100000">  
                    <xs:complexType>  
                      <xs:attribute name="path"  
                                    type="xs:string"  
                                    use ="required"/>  
                      <xs:attribute name="type"  
                                    use ="required">  
                        <xs:simpleType>  
                          <xs:restriction base="xs:string">  
                            <xs:enumeration value="jscript"/>  
                            <xs:enumeration value ="css" />  
                          </xs:restriction>  
                        </xs:simpleType>  
                      </xs:attribute>  
  
                    </xs:complexType>  
                  </xs:element>  
                </xs:sequence>  
  
              </xs:complexType>  
            </xs:element>  
          </xs:sequence>  
  
        </xs:complexType>  
      </xs:element>  
    </xs:all>  
  
  </xs:complexType>  
  <xs:complexType name="FormDisplayConditionsType">  
    <xs:choice minOccurs="0"  
               maxOccurs="1">  
      <xs:element name="Everyone"  
                  minOccurs="1"  
                  maxOccurs="1">  
        <xs:complexType>  
  
        </xs:complexType>  
      </xs:element>  
      <xs:element name="Role"  
                  minOccurs="1"  
                  maxOccurs="unbounded">  
        <xs:complexType>  
          <xs:attribute name="Id"  
                        type="FormGuidType"  
                        use="required" />  
  
        </xs:complexType>  
      </xs:element>  
    </xs:choice>  
    <xs:attribute name="FallbackForm"  
                  type="xs:boolean"  
                  use="optional" />  
    <xs:attribute name="Order"  
                  type="xs:integer"  
                  use="optional" />  
  
  </xs:complexType>  
  <xs:complexType name="FormLocalizedLabel">  
    <xs:attribute name="LCID"  
                  type="xs:integer" />  
    <xs:attribute name="Text"  
                  type="xs:string" />  
  
  </xs:complexType>  
  <xs:complexType name="FormLocalizedTitles">  
    <xs:sequence minOccurs="1"  
                 maxOccurs="unbounded">  
      <xs:element name="Title"  
                  type="FormLocalizedLabel" />  
    </xs:sequence>  
  
  </xs:complexType>  
  <xs:complexType name="FormNavBarAreasType">  
    <xs:sequence>  
      <xs:element name="NavBarArea"  
                  minOccurs="0"  
                  maxOccurs="unbounded">  
        <xs:complexType>  
          <xs:sequence>  
            <xs:element name="Titles"  
                        minOccurs="1"  
                        maxOccurs="1"  
                        type="FormLocalizedTitles" />  
          </xs:sequence>  
          <xs:attribute name="Id"  
                        type="xs:string"  
                        use="required" />  
  
        </xs:complexType>  
      </xs:element>  
    </xs:sequence>  
  
  </xs:complexType>  
  <xs:complexType name="FormNavBarType">  
    <xs:choice minOccurs="0"  
               maxOccurs="100000">  
      <xs:element minOccurs="0"  
                  maxOccurs="1"  
                  name="NavBarItem">  
        <xs:complexType>  
          <xs:sequence>  
            <xs:element name="Titles"  
                        minOccurs="1"  
                        maxOccurs="1"  
                        type="FormLocalizedTitles" />  
          </xs:sequence>  
          <xs:attribute name="Icon"  
                        type="xs:string"  
                        use="required" />  
          <xs:attribute name="Url"  
                        type="xs:string"  
                        use="required" />  
          <xs:attribute name="Id"  
                        type="xs:string"  
                        use="required" />  
          <xs:attribute name="PassParams"  
                        type="FormCRM_Boolean"  
                        use="optional" />  
          <xs:attribute name="Sequence"  
                        type="xs:nonNegativeInteger"  
                        use="optional" />  
          <xs:attribute name="Area"  
                        type="xs:string"  
                        use="optional" />  
          <xs:attribute name="Client"  
                        type="xs:string"  
                        use="optional" />  
          <xs:attribute name="AvailableOffline"  
                        type="xs:boolean"  
                        use="optional" />  
  
        </xs:complexType>  
      </xs:element>  
      <xs:element name="NavBarByRelationshipItem"  
                  minOccurs="0"  
                  maxOccurs="1">  
        <xs:complexType>  
          <xs:all>  
            <xs:element name="Titles"  
                        minOccurs="0"  
                        maxOccurs="1"  
                        type="FormLocalizedTitles" />  
            <xs:element name="ToolTip"  
                        minOccurs="0"  
                        maxOccurs="1">  
              <xs:complexType>  
                <xs:sequence>  
                  <xs:element name="Titles"  
                              minOccurs="1"  
                              maxOccurs="1"  
                              type="FormLocalizedTitles" />  
                </xs:sequence>  
  
              </xs:complexType>  
            </xs:element>  
            <xs:element name="Privileges"  
                        minOccurs="0"  
                        maxOccurs ="1">  
              <xs:complexType>  
                <xs:sequence >  
                  <xs:element name ="Privilege"  
                              minOccurs ="1"  
                              maxOccurs ="100000">  
                    <xs:complexType>  
                      <xs:attribute name ="Entity"  
                                    type ="xs:string"  
                                    use ="required"/>  
                      <xs:attribute name="Privilege"  
                                    type ="xs:string"  
                                    use ="required"/>  
  
                    </xs:complexType>  
                  </xs:element>  
                </xs:sequence>  
  
              </xs:complexType>  
            </xs:element>  
          </xs:all>  
          <xs:attribute name="RelationshipName"  
                        type="xs:string"  
                        use="required" />  
          <xs:attribute name="Id"  
                        type="xs:string"  
                        use="required" />  
          <xs:attribute name="Area"  
                        type="xs:string"  
                        use="optional" />  
          <xs:attribute name="TitleResourceId"  
                        type="xs:string"  
                        use="optional" />  
          <xs:attribute name="Client"  
                        type="xs:string"  
                        use="optional" />  
          <xs:attribute name="AvailableOffline"  
                        type="xs:boolean"  
                        use="optional" />  
          <xs:attribute name="Icon"  
                        type="xs:string"  
                        use="optional" />  
          <xs:attribute name="Sequence"  
                        type="xs:nonNegativeInteger"  
                        use="optional" />  
          <xs:attribute name="Show"  
                        type="xs:boolean"  
                        use="optional" />  
          <xs:attribute name="ViewId"  
                        type="FormISVGuid"  
                        use="optional" />  
  
        </xs:complexType>  
      </xs:element>  
    </xs:choice>  
    <xs:attribute name="ValidForCreate"  
                  type="FormCRM_Boolean"  
                  use="optional" />  
    <xs:attribute name="ValidForUpdate"  
                  type="FormCRM_Boolean"  
                  use="optional" />  
  
  </xs:complexType>  
  <xs:complexType name="FormNavigationType">  
    <xs:all>  
      <xs:element name="NavBarAreas"  
                  type="FormNavBarAreasType"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="NavBar"  
                  type="FormNavBarType"  
                  minOccurs="0"  
                  maxOccurs="1" />  
    </xs:all>  
  
  </xs:complexType>  
  <xs:complexType name ="FormParametersType">  
    <xs:choice minOccurs="1"  
               maxOccurs ="100000">  
      <xs:element name ="querystringparameter"  
                  type="FormQueryStringParameterType"  
                  minOccurs ="0"  
                  maxOccurs ="1" />  
    </xs:choice>  
  
  </xs:complexType>  
  <xs:complexType name="FormQueryStringParameterType">  
    <xs:attribute name="name"  
                  type="FormQueryStringParameterNameAttributeType"  
                  use="required" />  
    <xs:attribute name="type"  
                  type="FormParameterAttributeType"  
                  use="required" />  
  
  </xs:complexType>  
  <xs:complexType name="FormType">  
    <xs:all>  
      <xs:element name="ancestor"  
                  minOccurs="0"  
                  maxOccurs="1">  
        <xs:complexType>  
          <xs:attribute name="id"  
                        type="FormGuidType"  
                        use="required" />  
        </xs:complexType>  
      </xs:element>  
      <xs:element name="hiddencontrols"  
                  minOccurs="0"  
                  maxOccurs="1">  
        <xs:complexType>  
          <xs:sequence>  
            <xs:element name="data"  
                        minOccurs="0"  
                        maxOccurs="unbounded">  
              <xs:complexType>  
                <xs:attribute name="id"  
                              type="xs:string" />  
                <xs:attribute name="datafieldname"  
                              type="xs:string" />  
                <xs:attribute name="classid"  
                              type="FormGuidType" />  
                <xs:attribute name="relationship"  
                              type="xs:string" />  
  
              </xs:complexType>  
            </xs:element>  
          </xs:sequence>  
  
        </xs:complexType>  
      </xs:element>  
      <xs:element name="controlDescriptions"  
                  minOccurs="0"  
                  maxOccurs="1">  
        <xs:complexType>  
          <xs:sequence>  
            <xs:element name="controlDescription"  
                        minOccurs="0"  
                        maxOccurs="unbounded">  
              <xs:complexType>  
                <xs:sequence>  
                  <xs:element name="customControl"  
                              minOccurs="0"  
                              maxOccurs="unbounded">  
                    <xs:complexType>  
                      <xs:sequence>  
                        <xs:element name="parameters"  
                                    minOccurs="0"  
                                    maxOccurs="1">  
                          <xs:complexType>  
                            <xs:sequence>  
                              <xs:any minOccurs="0"  
                                      maxOccurs="unbounded"  
                                      processContents="skip"></xs:any>  
                            </xs:sequence>  
                          </xs:complexType>  
                        </xs:element>  
                      </xs:sequence>  
                      <xs:attribute name="id"  
                                    type="FormGuidType"  
                                    use="required" />  
                      <xs:attribute name="formFactor"  
                                    type="xs:integer"  
                                    use="optional" />  
                      <xs:attribute name="name"  
                                    type="xs:string"  
                                    use="optional" />  
                      <xs:attribute name="version"  
                                    type="xs:string"  
                                    use="optional" />  
  
                    </xs:complexType>  
                  </xs:element>  
                </xs:sequence>  
                <xs:attribute name="forControl"  
                              type="xs:string"  
                              use="required" />  
  
              </xs:complexType>  
            </xs:element>  
          </xs:sequence>  
  
        </xs:complexType>  
      </xs:element>  
      <xs:element name="tabs"  
                  minOccurs="1"  
                  maxOccurs="1">  
        <xs:complexType>  
          <xs:sequence>  
            <xs:element name="tab"  
                        minOccurs="1"  
                        maxOccurs="100">  
              <xs:complexType>  
                <xs:all>  
                  <xs:element name="labels"  
                              type="FormXmlLabelsType"  
                              minOccurs="0"  
                              maxOccurs="1" />  
                  <xs:element name="tabheader"  
                              type="FormXmlHeaderFooterType"  
                              minOccurs="0"  
                              maxOccurs="1"/>  
                  <xs:element name="tabfooter"  
                              type="FormXmlHeaderFooterType"  
                              minOccurs="0"  
                              maxOccurs="1"/>  
                  <xs:element name="columns"  
                              minOccurs="1"  
                              maxOccurs="1">  
                    <xs:complexType>  
                      <xs:sequence>  
                        <xs:element name="column"  
                                    minOccurs="1"  
                                    maxOccurs="3">  
                          <xs:complexType>  
                            <xs:sequence>  
                              <xs:element name="sections"  
                                          minOccurs="0"  
                                          maxOccurs="1">  
                                <xs:complexType>  
                                  <xs:sequence>  
                                    <xs:element name="section"  
                                                minOccurs="0"  
                                                maxOccurs="unbounded">  
                                      <xs:complexType>  
                                        <xs:all>  
                                          <xs:element name="labels"  
                                                      type="FormXmlLabelsType"  
                                                      minOccurs="0"  
                                                      maxOccurs="1" />  
                                          <xs:element name="rows"  
                                                      minOccurs="0"  
                                                      maxOccurs="1">  
                                            <xs:complexType>  
                                              <xs:sequence>  
                                                <xs:element name="row"  
                                                            minOccurs="0"  
                                                            maxOccurs="unbounded">  
                                                  <xs:complexType>  
                                                    <xs:sequence>  
                                                      <xs:element name="cell"  
                                                                  minOccurs="0"  
                                                                  maxOccurs="unbounded">  
                                                        <xs:complexType>  
                                                          <xs:all>  
                                                            <xs:element name="labels"  
                                                                        type="FormXmlLabelsType"  
                                                                        minOccurs="0"  
                                                                        maxOccurs="1" />  
                                                            <xs:element name="control"  
                                                                        type="FormXmlControlType"  
                                                                        minOccurs="0"  
                                                                        maxOccurs="1" />  
                                                            <xs:element name="events"  
                                                                        type="FormXmlEventsType"  
                                                                        minOccurs="0"  
                                                                        maxOccurs="1" />  
                                                          </xs:all>  
                                                          <xs:attribute name="auto"  
                                                                        type="xs:boolean" />  
                                                          <xs:attribute name="addedby"  
                                                                        type="xs:string" />  
                                                          <xs:attributeGroup ref="FormXmlCellCommon"/>  
                                                        </xs:complexType>  
                                                      </xs:element>  
                                                    </xs:sequence>  
                                                    <xs:attribute name="addedby"  
                                                                  type="xs:string" />  
                                                    <xs:attributeGroup ref="FormXmlRowCommon"/>  
                                                  </xs:complexType>  
                                                </xs:element>  
                                              </xs:sequence>  
                                              <xs:attribute name="addedby"  
                                                            type="xs:string" />  
  
                                            </xs:complexType>  
                                          </xs:element>  
                                        </xs:all>  
                                        <xs:attribute name="group"  
                                                      type="xs:string" />  
                                        <xs:attribute name="name"  
                                                      type="xs:string" />  
                                        <xs:attribute name="showlabel"  
                                                      type="xs:boolean" />  
                                        <xs:attribute name="labelid"  
                                                      type="FormGuidType"  
                                                      use="optional" />  
                                        <xs:attribute name="showbar"  
                                                      type="xs:boolean" />  
                                        <xs:attribute name="id"  
                                                      type="FormGuidType" />  
                                        <xs:attribute name="IsUserDefined"  
                                                      type="xs:string" />  
                                        <xs:attribute name="height"  
                                                      type="xs:string" />  
                                        <xs:attribute name="locklevel"  
                                                      type="xs:nonNegativeInteger" />  
                                        <xs:attribute name="layout"  
                                                      type="xs:string" />  
                                        <xs:attribute name="addedby"  
                                                      type="xs:string" />  
                                        <xs:attribute name="visible"  
                                                      type="xs:boolean" />  
                                        <xs:attribute name="availableforphone"  
                                                      type="xs:boolean" />  
                                        <xs:attribute name="rowheight"  
                                                      type="xs:nonNegativeInteger"  
                                                      use="optional" />  
                                        <xs:attribute name="autoexpand"  
                                                      type="xs:boolean"  
                                                      use="optional" />  
                                        <xs:attributeGroup ref="FormXmlSectionCommon"/>  
  
                                      </xs:complexType>  
                                    </xs:element>  
                                  </xs:sequence>  
                                  <xs:attribute name="addedby"  
                                                type="xs:string" />  
  
                                </xs:complexType>  
                              </xs:element>  
                            </xs:sequence>  
                            <xs:attribute name="width"  
                                          type="FormPercentageType"  
                                          use="required" />  
  
                          </xs:complexType>  
                        </xs:element>  
                      </xs:sequence>  
  
                    </xs:complexType>  
                  </xs:element>  
                  <xs:element name="events"  
                              type="FormXmlEventsType"  
                              minOccurs="0"  
                              maxOccurs="1" />  
                </xs:all>  
                <xs:attribute name="group"  
                              type="xs:string" />  
                <xs:attribute name="name"  
                              type="xs:string" />  
                <xs:attribute name="verticallayout"  
                              type="xs:boolean" />  
                <xs:attribute name="showlabel"  
                              type="xs:boolean" />  
                <xs:attribute name="labelid"  
                              type="FormGuidType"  
                              use="optional" />  
                <xs:attribute name="id"  
                              type="FormGuidType" />  
                <xs:attribute name="IsUserDefined"  
                              type="xs:string" />  
                <xs:attribute name="locklevel"  
                              type="xs:nonNegativeInteger" />  
                <xs:attribute name="addedby"  
                              type="xs:string" />  
                <xs:attribute name="expanded"  
                              type="xs:boolean" />  
                <xs:attribute name="visible"  
                              type="xs:boolean" />  
                <xs:attribute name="availableforphone"  
                              type="xs:boolean" />  
                <xs:attribute name="collapsible"  
                              type="xs:boolean" />  
  
              </xs:complexType>  
            </xs:element>  
          </xs:sequence>  
          <xs:attribute name="showlabels"  
                        type="xs:boolean" />  
          <xs:attribute name="addedby"  
                        type="xs:string" />  
          <xs:attribute name="filterby"  
                        type="xs:string" />  
          <xs:attribute name="dashboardCategory"  
                        type="xs:string" />  
          <xs:attribute name="timeframe"  
                        type="xs:string" />  
          <xs:attribute name="primaryentitylogicalname"  
                        type="xs:string" />  
          <xs:attribute name="entityview"  
                        type="xs:string" />  
          <xs:attribute name="tilespresent"  
                        type="xs:boolean" />  
  
        </xs:complexType>  
      </xs:element>  
      <xs:element name="header"  
                  type="FormXmlHeaderFooterType"  
                  minOccurs="0"  
                  maxOccurs="1"/>  
      <xs:element name="footer"  
                  type="FormXmlHeaderFooterType"  
                  minOccurs="0"  
                  maxOccurs="1"/>  
      <xs:element name="events"  
                  type="FormXmlEventsType"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="formLibraries"  
                  type="FormXmlLibraryType"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="externaldependencies"  
                  type="FormXmlExternalDependenciesType"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="formparameters"  
                  type="FormParametersType"  
                  minOccurs="0"  
                  maxOccurs="1">  
        <xs:unique name="UniqueName">  
          <xs:selector xpath ="./querystringparameter"/>  
          <xs:field xpath ="@name"/>  
        </xs:unique>  
      </xs:element>  
      <xs:element name ="clientresources"  
                  type ="ClientResourcesType"  
                  minOccurs ="0"  
                  maxOccurs ="1"></xs:element>  
      <xs:element name="Navigation"  
                  type="FormNavigationType"  
                  minOccurs="0"  
                  maxOccurs="1"/>  
      <xs:element name="DisplayConditions"  
                  type="FormDisplayConditionsType"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="RibbonDiffXml"  
                  type="RibbonEntityDiffXmlType"  
                  minOccurs="0"  
                  maxOccurs="1" />  
    </xs:all>  
    <xs:attribute name="enablerelatedinformation"  
                  type="xs:boolean" />  
    <xs:attribute name="relatedInformationCollapsed"  
                  type="xs:boolean" />  
    <xs:attribute name="hasmargin"  
                  type="xs:boolean" />  
    <xs:attribute name="addedby"  
                  type="xs:string" />  
    <xs:attribute name="shownavigationbar"  
                  type="xs:boolean" />  
    <xs:attribute name="showImage"  
                  type="xs:boolean" />  
    <xs:attribute name="maxWidth"  
                  use="optional">  
      <xs:simpleType>  
        <xs:restriction base="xs:positiveInteger">  
          <xs:minInclusive value="400" />  
        </xs:restriction>  
      </xs:simpleType>  
    </xs:attribute>  
  
  </xs:complexType>  
  <xs:complexType name="FormXmlControlType">  
    <xs:sequence>  
      <xs:element name="labels"  
                  type="FormXmlLabelsType"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="parameters"  
                  minOccurs="0"  
                  maxOccurs="1">  
        <xs:complexType>  
          <xs:choice minOccurs="1"  
                     maxOccurs="1">
            <xs:choice minOccurs="1"  
                       maxOccurs="unbounded">  
              <xs:element name="Url"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="PassParameters"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="Security"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="Scrolling"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="Border"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="Preload"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="IsPassword"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="IsColorValue"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <!--Web Resource related parameters. Included in this section since they   
								can include Url, PassParameters etc-->  
              <xs:element name="Height"  
                          type="xs:unsignedInt"  
                          minOccurs="0"  
                          maxOccurs="1"/>  
              <xs:element name="Width"  
                          type="xs:unsignedInt"  
                          minOccurs="0"  
                          maxOccurs="1"/>  
              <xs:element name="AltText"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1"/>  
              <xs:element name="SizeType"  
                          type="WebResourceSizeType"  
                          minOccurs="0"  
                          maxOccurs="1"/>  
              <xs:element name="ShowInROF"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="ShowOnMobileClient"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="HorizontalAlignment"  
                          type="ImageHorizontalAlignmentType"  
                          minOccurs="0"  
                          maxOccurs="1"/>  
              <xs:element name="VerticalAlignment"  
                          type="ImageVerticalAlignmentType"  
                          minOccurs="0"  
                          maxOccurs="1"/>  
              <xs:element name="Data"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="WebResourceId"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <!--Parameters for Rich Editor Control-->  
              <xs:element name="ReadOnly"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="ShowDialogs"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="IsViewExpandable"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="HideToolbar"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="ToolbarJSON"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="ExpandedToolbarJSON"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="HiddenToolbarJSON"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="ClassName"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
            </xs:choice>  
            <!--Parameters for unbound lookup control-->  
            <xs:choice minOccurs="1"  
                       maxOccurs="unbounded">  
              <xs:element name="TargetEntities"  
                          minOccurs="0"  
                          maxOccurs="1">  
                <xs:complexType>  
                  <xs:sequence>  
                    <xs:element name="TargetEntity"  
                                minOccurs="1"  
                                maxOccurs="unbounded">  
                      <xs:complexType>  
                        <xs:all>  
                          <xs:element name="EntityLogicalName"  
                                      type="xs:string"  
                                      minOccurs="1"  
                                      maxOccurs="1" />  
                          <xs:element name="DefaultViewId"  
                                      type="FormGuidType"  
                                      minOccurs="0"  
                                      maxOccurs="1" />  
                          <xs:element name="IsDeDupLookup"  
                                      type="xs:boolean"  
                                      minOccurs="0"  
                                      maxOccurs="1" />  
                          <xs:element name="UnboundLookupStyle"  
                                      type="xs:string"  
                                      minOccurs="0"  
                                      maxOccurs="1" />  
                        </xs:all>  
                      </xs:complexType>  
                    </xs:element>  
                  </xs:sequence>  
                </xs:complexType>  
              </xs:element>  
            </xs:choice>  
            <!-- Parameters for the subgrid control and and reference panel subgrid control -->  
            <xs:choice minOccurs="1"  
                       maxOccurs="unbounded">  
              <xs:element name="ViewId"  
                          type="FormGuidType"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="IsUserView"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="IsUserChart"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="RelationshipName"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="RelationshipRoleOrdinal"  
                          type="RelationshipRoleOrdinalType"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="TargetEntityType"  
                          type="xs:string"  
                          minOccurs="1"  
                          maxOccurs="1" />  
              <xs:element name="AutoExpand"  
                          type="GridResizeType"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="RecordsPerPage"  
                          type="xs:unsignedShort"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="MaxRowsBeforeScroll"  
                          type="xs:integer"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="EnableQuickFind"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="EnableJumpBar"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="EnableViewPicker"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="ViewIds"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="ChartGridMode"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="VisualizationId"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="EnableChartPicker"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="EnableContextualActions"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="TeamTemplateId"  
                          type="FormGuidType"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="GridUIMode"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="ReferencePanelSubgridIconUrl"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
            </xs:choice>  
            <!-- Parameters for Power BI Tile control -->  
            <xs:choice minOccurs="1"  
                       maxOccurs="unbounded">  
              <xs:element name="PowerBIDashboardId"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="TileId"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="TileUrl"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
            </xs:choice>  
            <!-- Parameters for the lookup control -->  
            <xs:choice minOccurs="1"  
                       maxOccurs="unbounded">  
              <xs:element name="DefaultViewId"  
                          type="FormGuidType"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="FilterRelationshipName"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="DependentAttributeName"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="DependentAttributeType"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="AutoResolve"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="ResolveEmailAddress"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="DefaultViewReadOnly"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="ViewPickerReadOnly"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="AllowFilterOff"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="DisableMru"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="DisableQuickFind"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="DisableViewPicker"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="AvailableViewIds"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="EntityLogicalName"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="IsInlineNewEnabled"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="InlineViewIds"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="UnboundLookupTypes"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="UnboundLookupBrowse"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="UnboundLookupControlType"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="ShowAsBreadcrumbControl"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
            </xs:choice>  
            <!-- Parameters for the TextBox -->  
            <xs:choice minOccurs="1"  
                       maxOccurs="unbounded">  
              <xs:element name="MaxLength"  
                          type="xs:integer"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="Format"  
                          type="FormatType"  
                          minOccurs="0"  
                          maxOccurs="1" />  
            </xs:choice>  
            <!-- Parameters for the Label -->  
            <xs:choice minOccurs="1"  
                       maxOccurs="unbounded">  
              <xs:element name="IsTitle"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
            </xs:choice>  
            <!-- Parameters for the Numbers (i.e Whole, Decimal, Currency)-->  
            <xs:choice minOccurs="1"  
                       maxOccurs="unbounded">  
              <xs:element name="MinValue"  
                          type="xs:double"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="MaxValue"  
                          type="xs:double"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="Precision"  
                          type="xs:integer"  
                          minOccurs="0"  
                          maxOccurs="1" />  
            </xs:choice>  
            <!-- Parameters for the PickList Control and Two Value Option(Radio) Control -->  
            <xs:choice minOccurs="1"  
                       maxOccurs="unbounded">  
              <xs:element name="DefaultValue"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="OptionSetId"  
                          type="FormGuidType"  
                          minOccurs="0"  
                          maxOccurs="1" />  
            </xs:choice>  
            <!-- Parameters for the quickformcollection control and reference panel quick form collection control -->  
            <xs:choice minOccurs="1"  
                       maxOccurs="unbounded">  
              <xs:element name="QuickForms"  
                          type="xs:string"  
                          minOccurs="1"  
                          maxOccurs="1" />  
              <xs:element name="ControlMode"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="ReferencePanelQuickFormCollectionIconUrl"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="DisplayAsCustomer360Tile"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
            </xs:choice>  
            <!-- Parameters for the tabs control -->  
            <xs:choice minOccurs="1"  
                       maxOccurs="unbounded">  
              <xs:element name="DefaultTabId"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="ShowArticleTab"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:group ref="SearchWidgetControlParameters"  
                        minOccurs="0"  
                        maxOccurs="unbounded" />  
            </xs:choice>  
            <!-- Link Control parameters -->  
            <xs:choice minOccurs="1"  
                       maxOccurs="unbounded">  
              <xs:element name="LinkControlDefinitionId"  
                          type="FormGuidType"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="ShowLinkControlLabel"  
                          type="xs:boolean"  
                          minOccurs="0"  
                          maxOccurs="1" />  
            </xs:choice>  
            <!-- Bing Maps Control parameters -->  
            <xs:choice minOccurs="1"  
                       maxOccurs="unbounded">  
              <xs:element name="AddressField"  
                          type="xs:string"  
                          minOccurs="1"  
                          maxOccurs="1" />  
            </xs:choice>  
            <!-- Timer Control parameters -->  
            <xs:choice minOccurs="1"  
                       maxOccurs="unbounded">  
              <xs:element name="FailureTimeField"  
                          type="xs:string"  
                          minOccurs="1"  
                          maxOccurs="1" />  
              <xs:element name="SuccessConditionName"  
                          type="xs:string"  
                          minOccurs="1"  
                          maxOccurs="1" />  
              <xs:element name="SuccessConditionValue"  
                          type="xs:string"  
                          minOccurs="1"  
                          maxOccurs="1" />  
              <xs:element name="FailureConditionName"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="FailureConditionValue"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="WarningConditionName"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="WarningConditionValue"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="CancelConditionName"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="CancelConditionValue"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="PauseConditionName"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="PauseConditionValue"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
            </xs:choice>  
            <!-- Search Widget parameters -->  
            <xs:choice minOccurs="1"  
                       maxOccurs="unbounded">  
              <xs:group ref="SearchWidgetControlParameters"  
                        minOccurs="0"  
                        maxOccurs="unbounded" />  
            </xs:choice>  
            <!-- Queue Control parameters -->  
            <xs:choice minOccurs="1"  
                       maxOccurs="unbounded">  
              <xs:element name="StreamObjects"  
                          minOccurs="1"  
                          maxOccurs="1" >  
                <xs:complexType>  
                  <xs:sequence>  
                    <xs:element name="ShowAsTiles"  
                                type="xs:boolean"  
                                minOccurs="1"  
                                maxOccurs="1" />  
                    <xs:element name="StreamObject"  
                                minOccurs="1"  
                                maxOccurs="unbounded" >  
                      <xs:complexType>  
                        <xs:sequence>  
                          <xs:element name="LogicalEntityName"  
                                      type="xs:string"  
                                      minOccurs="1"  
                                      maxOccurs="1" />  
                          <xs:choice minOccurs="1"  
                                     maxOccurs="1">  
                            <!-- Parameters for stream objects of type queue -->  
                            <xs:choice minOccurs="1"  
                                       maxOccurs="unbounded">  
                              <xs:element name="QueueId"  
                                          type="FormGuidType"  
                                          minOccurs="1"  
                                          maxOccurs="1" />  
                              <xs:element name="QueueViewId"  
                                          type="FormGuidType"  
                                          minOccurs="1"  
                                          maxOccurs="1" />  
                            </xs:choice>  
                            <!-- Parameters for stream objects of type entity view -->  
                            <xs:choice minOccurs="1"  
                                       maxOccurs="unbounded">  
                              <xs:element name="EntityViewId"  
                                          type="FormGuidType"  
                                          minOccurs="1"  
                                          maxOccurs="1" />  
                            </xs:choice>  
                            <!-- Parameters for stream objects of type saved query on queue -->  
                            <xs:choice minOccurs="1"  
                                       maxOccurs="unbounded">  
                              <xs:element name="SavedQueryID"  
                                          type="FormGuidType"  
                                          minOccurs="1"  
                                          maxOccurs="1" />  
                              <xs:element name="QueueViewIdForSavedQuery"  
                                          type="FormGuidType"  
                                          minOccurs="1"  
                                          maxOccurs="1" />  
                            </xs:choice>  
                          </xs:choice>  
                        </xs:sequence>  
                        <xs:attribute name="type"  
                                      type="xs:nonNegativeInteger"  
                                      use="required" />  
                        <xs:attribute name="id"  
                                      type="FormGuidType"  
                                      use="required" />  
  
                      </xs:complexType>  
                    </xs:element>  
                  </xs:sequence>  
  
                </xs:complexType>  
              </xs:element>  
            </xs:choice>  
            <!-- Date Range Control parameters -->  
            <xs:choice minOccurs="1"  
                       maxOccurs="unbounded">  
              <xs:element name="AttributeLogicalName"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
              <xs:element name="TimeFrame"  
                          type="xs:string"  
                          minOccurs="0"  
                          maxOccurs="1" />  
            </xs:choice>  
          </xs:choice>  
  
        </xs:complexType>  
      </xs:element>  
    </xs:sequence>  
    <xs:attribute name="id"  
                  type="xs:string" />  
    <xs:attribute name="uniqueid"  
                  type="FormGuidType" />  
    <xs:attribute name="classid"  
                  type="FormGuidType" />  
    <xs:attribute name="labelid"  
                  type="FormGuidType" />  
    <xs:attribute name="datafieldname"  
                  type="xs:string" />  
    <xs:attribute name="disabled"  
                  type="xs:boolean" />  
    <xs:attribute name="addedby"  
                  type="xs:string" />  
    <xs:attribute name="isunbound"  
                  type="xs:boolean" />  
    <xs:attribute name="isrequired"  
                  type="xs:boolean" />  
    <xs:attribute name="relationship"  
                  type="xs:string" />  
    <xs:attribute name="indicationOfSubgrid"  
                  type="xs:boolean" />  
  
  </xs:complexType>  
  <xs:complexType name="FormXmlLibraryType">  
    <xs:sequence>  
      <xs:element name="Library"  
                  minOccurs="1"  
                  maxOccurs="50">  
        <xs:complexType>  
          <xs:attribute name="name"  
                        type="xs:string"  
                        use="required" />  
          <xs:attribute name="libraryUniqueId"  
                        type="xs:string"  
                        use="required" />  
  
        </xs:complexType>  
      </xs:element>  
    </xs:sequence>  
  
  </xs:complexType>  
  <xs:simpleType name="CrmEventType">  
    <xs:restriction base="xs:string">  
      <xs:enumeration value="DataEvent" />  
      <xs:enumeration value="ControlEvent" />  
    </xs:restriction>  
  </xs:simpleType>  
  <xs:complexType name="FormXmlHandlerType">  
    <xs:sequence>  
      <xs:element name="dependencies"  
                  minOccurs="0"  
                  maxOccurs="1">  
        <xs:complexType>  
          <xs:sequence>  
            <xs:element name="dependency"  
                        minOccurs="0"  
                        maxOccurs="unbounded">  
              <xs:complexType>  
                <xs:attribute name="id"  
                              type="xs:string" />  
  
              </xs:complexType>  
            </xs:element>  
          </xs:sequence>  
  
        </xs:complexType>  
      </xs:element>  
    </xs:sequence>  
    <xs:attribute name="functionName"  
                  type="xs:string"  
                  use="required" />  
    <xs:attribute name="libraryName"  
                  type="xs:string"  
                  use="required" />  
    <xs:attribute name="handlerUniqueId"  
                  type="xs:string"  
                  use="required" />  
    <xs:attribute name="enabled"  
                  type="xs:boolean" />  
    <xs:attribute name="passExecutionContext"  
                  type="xs:boolean" />  
    <xs:attribute name="parameters"  
                  type="xs:string" />  
  
  </xs:complexType>  
  <xs:complexType name="FormXmlEventsType">  
    <xs:sequence>  
      <xs:element name="event"  
                  minOccurs="1"  
                  maxOccurs="unbounded">  
        <xs:complexType>  
          <xs:all>  
            <xs:element name="Handlers"  
                        minOccurs="0"  
                        maxOccurs="1">  
              <xs:complexType>  
                <xs:sequence>  
                  <xs:element name="Handler"  
                              type="FormXmlHandlerType"  
                              minOccurs="0"  
                              maxOccurs="50" />  
                </xs:sequence>  
  
              </xs:complexType>  
            </xs:element>  
            <xs:element name="InternalHandlers"  
                        minOccurs="0"  
                        maxOccurs="1">  
              <xs:complexType>  
                <xs:sequence>  
                  <xs:element name="Handler"  
                              type="FormXmlHandlerType"  
                              minOccurs="0"  
                              maxOccurs="50" />  
                </xs:sequence>  
  
              </xs:complexType>  
            </xs:element>  
            <xs:element name="dependencies"  
                        minOccurs="0"  
                        maxOccurs="1">  
              <xs:complexType>  
                <xs:sequence>  
                  <xs:element name="dependency"  
                              minOccurs="0"  
                              maxOccurs="unbounded">  
                    <xs:complexType>  
                      <xs:attribute name="id"  
                                    type="xs:string" />  
  
                    </xs:complexType>  
                  </xs:element>  
                </xs:sequence>  
  
              </xs:complexType>  
            </xs:element>  
          </xs:all>  
          <xs:attribute name="name"  
                        type="xs:string" />  
          <xs:attribute name="BehaviorInBulkEditForm"  
                        type="BehaviorInBulkEditForm" />  
          <xs:attribute name="application"  
                        type="xs:boolean" />  
          <xs:attribute name="active"  
                        type="xs:boolean" />  
          <xs:attribute name="eventType"  
                        type="CrmEventType" />  
          <xs:attribute name="attribute"  
                        type="xs:string" />  
  
        </xs:complexType>  
      </xs:element>  
    </xs:sequence>  
  
  </xs:complexType>  
  <xs:complexType name="FormXmlExternalDependenciesType">  
    <xs:sequence>  
      <xs:element name="dependency"  
                  minOccurs="1"  
                  maxOccurs="unbounded">  
        <xs:complexType>  
          <xs:attribute name="id"  
                        type="xs:string" />  
  
        </xs:complexType>  
      </xs:element>  
    </xs:sequence>  
  
  </xs:complexType>  
  <xs:complexType name="FormXmlLabelsType">  
    <xs:sequence>  
      <xs:element name="label"  
                  minOccurs="0"  
                  maxOccurs="unbounded">  
        <xs:complexType>  
          <xs:attribute name="description"  
                        use="required"  
                        type="xs:string" />  
          <xs:attribute name="languagecode"  
                        use="required"  
                        type="xs:positiveInteger" />  
          <xs:attribute name="addedby"  
                        type="xs:string" />  
  
        </xs:complexType>  
      </xs:element>  
    </xs:sequence>  
  
  </xs:complexType>  
  <xs:complexType name="FormXmlHeaderFooterType">  
    <xs:sequence>  
      <xs:element name="rows"  
                  minOccurs="1"  
                  maxOccurs="1">  
        <xs:complexType>  
          <xs:sequence>  
            <xs:element name="row"  
                        minOccurs="0"  
                        maxOccurs="unbounded">  
              <xs:complexType>  
                <xs:sequence>  
                  <xs:element name="cell"  
                              minOccurs="0"  
                              maxOccurs="unbounded">  
                    <xs:complexType>  
                      <xs:all>  
                        <xs:element name="labels"  
                                    type="FormXmlLabelsType"  
                                    minOccurs="0"  
                                    maxOccurs="1" />  
                        <xs:element name="control"  
                                    type="FormXmlControlType"  
                                    minOccurs="0"  
                                    maxOccurs="1" />  
                      </xs:all>  
                      <xs:attributeGroup ref="FormXmlCellCommon"/>  
                    </xs:complexType>  
                  </xs:element>  
                </xs:sequence>  
                <xs:attributeGroup ref="FormXmlRowCommon"/>  
              </xs:complexType>  
            </xs:element>  
          </xs:sequence>  
  
        </xs:complexType>  
      </xs:element>  
    </xs:sequence>  
    <xs:attribute name="id"  
                  type="FormGuidType"  
                  use="required" />  
    <xs:attributeGroup ref="FormXmlSectionCommon" />  
  </xs:complexType>  
  <xs:attributeGroup name="FormXmlSectionCommon">  
    <xs:attribute name="columns"  
                  type="xs:nonNegativeInteger" />  
    <xs:attribute name="labelwidth"  
                  type="xs:nonNegativeInteger" />  
    <xs:attribute name="celllabelalignment"  
                  use="optional">  
      <xs:simpleType>  
        <xs:restriction base="xs:string">  
          <xs:enumeration value="Center"/>  
          <xs:enumeration value="Left"/>  
          <xs:enumeration value="Right"/>  
        </xs:restriction>  
      </xs:simpleType>  
    </xs:attribute>  
    <xs:attribute name="celllabelposition"  
                  use="optional">  
      <xs:simpleType>  
        <xs:restriction base="xs:string">  
          <xs:enumeration value="Top"/>  
          <xs:enumeration value="Left"/>  
        </xs:restriction>  
      </xs:simpleType>  
    </xs:attribute>  
  
  </xs:attributeGroup>  
  <xs:attributeGroup name="FormXmlRowCommon">  
    <xs:attribute name="height"  
                  type="xs:string" />  
  
  </xs:attributeGroup>  
  <xs:attributeGroup name="FormXmlCellCommon">  
    <xs:attribute name="id"  
                  type="FormGuidType" />  
    <xs:attribute name="showlabel"  
                  type="xs:boolean" />  
    <xs:attribute name="labelid"  
                  type="FormGuidType"  
                  use="optional" />  
    <xs:attribute name="locklevel"  
                  type="xs:nonNegativeInteger" />  
    <xs:attribute name="rowspan"  
                  type="xs:nonNegativeInteger" />  
    <xs:attribute name="colspan"  
                  type="xs:nonNegativeInteger" />  
    <xs:attribute name="userspacer"  
                  type="xs:boolean" />  
    <xs:attribute name="ispreviewcell"  
                  type="xs:boolean"/>  
    <xs:attribute name="visible"  
                  type="xs:boolean" />  
    <xs:attribute name="availableforphone"  
                  type="xs:boolean" />  
    <xs:attribute name="isstreamcell"  
                  type="xs:boolean" />  
    <xs:attribute name="ischartcell"  
                  type="xs:boolean" />  
    <xs:attribute name="istilecell"  
                  type="xs:boolean" />  
  
  </xs:attributeGroup>  
  <xs:simpleType name="BehaviorInBulkEditForm">  
    <xs:restriction base="xs:string">  
      <xs:enumeration value="Disabled" />  
      <xs:enumeration value="EnabledButNoRender" />  
      <xs:enumeration value="Enabled" />  
    </xs:restriction>  
  </xs:simpleType>  
  <xs:simpleType name="FormCRM_Boolean">  
    <xs:restriction base="xs:unsignedByte">  
      <xs:minInclusive value="0" />  
      <xs:maxInclusive value="1" />  
    </xs:restriction>  
  </xs:simpleType>  
  <xs:simpleType name="FormGuidType">  
    <xs:annotation>  
      <xs:documentation xml:lang="en">  
        The representation of a GUID, generally the id of an element.  
      </xs:documentation>  
    </xs:annotation>  
    <xs:restriction base="xs:string">  
      <xs:pattern value="\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}" />  
    </xs:restriction>  
  </xs:simpleType>  
  <xs:simpleType name="FormISVGuid">  
    <xs:restriction base="xs:string">  
      <xs:pattern value="\{?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\}?" />  
    </xs:restriction>  
  </xs:simpleType>  
  <xs:simpleType name ="FormParameterAttributeType">  
    <xs:restriction base ="xs:string">  
      <xs:enumeration value ="Boolean" />  
      <xs:enumeration value ="DateTime" />  
      <xs:enumeration value ="Double" />  
      <xs:enumeration value ="EntityType" />  
      <xs:enumeration value ="Integer" />  
      <xs:enumeration value ="Long" />  
      <xs:enumeration value ="PositiveInteger" />  
      <xs:enumeration value ="SafeString" />  
      <xs:enumeration value ="UniqueId" />  
      <xs:enumeration value ="UnsignedInt" />  
    </xs:restriction>  
  </xs:simpleType >  
  <xs:simpleType name ="FormParameterPassAsAttributeType">  
    <xs:restriction base ="xs:string">  
      <xs:enumeration value ="QueryString" />  
    </xs:restriction>  
  </xs:simpleType>  
  <xs:simpleType name="FormPercentageType">  
    <xs:restriction base="xs:string">  
      <xs:pattern value="^(100|[0-9]{1,2})%$" />  
    </xs:restriction>  
  </xs:simpleType>  
  <xs:simpleType name="FormQueryStringParameterNameAttributeType">  
    <xs:restriction base="xs:string">  
      <xs:pattern value="(?![cC][rR][mM]_)([A-Za-z0-9])+([_])+([A-Za-z0-9_])*"/>  
    </xs:restriction>  
  </xs:simpleType>  
  <xs:simpleType name="GridResizeType">  
    <xs:restriction base="xs:string">  
      <xs:enumeration value="Auto"/>  
      <xs:enumeration value="Fixed"/>  
      <xs:enumeration value="AutoWithFixedMax"/>  
    </xs:restriction>  
  </xs:simpleType>  
  <xs:simpleType name="ImageHorizontalAlignmentType">  
    <xs:restriction base ="xs:string">  
      <xs:enumeration value ="Left" />  
      <xs:enumeration value ="Right" />  
      <xs:enumeration value ="Center" />  
      <xs:enumeration value ="NotSet" />  
    </xs:restriction>  
  </xs:simpleType>  
  <xs:simpleType name="ImageVerticalAlignmentType">  
    <xs:restriction base ="xs:string">  
      <xs:enumeration value ="Top" />  
      <xs:enumeration value ="Middle" />  
      <xs:enumeration value ="Bottom" />  
      <xs:enumeration value ="NotSet" />  
    </xs:restriction>  
  </xs:simpleType>  
  <xs:simpleType name="RelationshipRoleOrdinalType">  
    <xs:restriction base="xs:unsignedByte">  
      <xs:enumeration value="1" />  
      <xs:enumeration value="2" />  
    </xs:restriction>  
  </xs:simpleType>  
  <xs:simpleType name ="WebResourceSizeType">  
    <xs:restriction base ="xs:string">  
      <xs:enumeration value ="StretchToFit" />  
      <xs:enumeration value ="StretchMaintainAspectRatio" />  
      <xs:enumeration value ="Original" />  
      <xs:enumeration value ="Specific" />  
    </xs:restriction>  
  </xs:simpleType>  
  <xs:simpleType name="FormatType">  
    <xs:restriction base ="xs:string">  
      <xs:enumeration value ="SingleLineOfText" />  
      <xs:enumeration value ="WholeNumber" />  
      <xs:enumeration value ="DecimalNumber" />  
      <xs:enumeration value ="Currency" />  
      <xs:enumeration value="Date" />  
      <xs:enumeration value="DateTime" />  
      <xs:enumeration value="DateAndTime" />  
      <xs:enumeration value="Url" />  
      <xs:enumeration value="Ticker" />  
      <xs:enumeration value="Email" />  
      <xs:enumeration value="TextArea" />  
    </xs:restriction>  
  </xs:simpleType>  
  <xs:simpleType name="solutionactionType">  
    <xs:restriction base="xs:string">  
      <xs:enumeration value="Added" />  
      <xs:enumeration value="Removed" />  
      <xs:enumeration value="Modified" />  
    </xs:restriction>  
  </xs:simpleType >  
  <xs:attributeGroup name="FormXmlBaseElementCommon">  
    <xs:attribute name="solutionaction"  
                  type="solutionactionType" />  
  </xs:attributeGroup>  
  <xs:complexType name ="solutionStringType">  
    <xs:simpleContent>  
      <xs:extension base="xs:string">  
        <xs:attributeGroup ref="FormXmlBaseElementCommon"/>  
      </xs:extension>  
    </xs:simpleContent>  
  </xs:complexType>  
  <xs:complexType name ="solutionBooleanType">  
    <xs:simpleContent>  
      <xs:extension base="xs:boolean">  
        <xs:attributeGroup ref="FormXmlBaseElementCommon"/>  
      </xs:extension>  
    </xs:simpleContent>  
  </xs:complexType>  
  <xs:complexType name ="solutionFormGuidType">  
    <xs:simpleContent>  
      <xs:extension base="FormGuidType">  
        <xs:attributeGroup ref="FormXmlBaseElementCommon"/>  
      </xs:extension>  
    </xs:simpleContent>  
  </xs:complexType>  
  <xs:complexType name ="solutionUnsignedIntType">  
    <xs:simpleContent>  
      <xs:extension base="xs:unsignedInt">  
        <xs:attributeGroup ref="FormXmlBaseElementCommon"/>  
      </xs:extension>  
    </xs:simpleContent>  
  </xs:complexType>  
  <xs:complexType name ="solutionWebResourceSizeType">  
    <xs:simpleContent>  
      <xs:extension base="WebResourceSizeType">  
        <xs:attributeGroup ref="FormXmlBaseElementCommon"/>  
      </xs:extension>  
    </xs:simpleContent>  
  </xs:complexType>  
  <xs:complexType name ="solutionImageHorizontalAlignmentType">  
    <xs:simpleContent>  
      <xs:extension base="ImageHorizontalAlignmentType">  
        <xs:attributeGroup ref="FormXmlBaseElementCommon"/>  
      </xs:extension>  
    </xs:simpleContent>  
  </xs:complexType>  
  <xs:complexType name ="solutionFormatType">  
    <xs:simpleContent>  
      <xs:extension base="FormatType">  
        <xs:attributeGroup ref="FormXmlBaseElementCommon"/>  
      </xs:extension>  
    </xs:simpleContent>  
  </xs:complexType>  
  <xs:complexType name ="solutionImageVerticalAlignmentType">  
    <xs:simpleContent>  
      <xs:extension base="ImageVerticalAlignmentType">  
        <xs:attributeGroup ref="FormXmlBaseElementCommon"/>  
      </xs:extension>  
    </xs:simpleContent>  
  </xs:complexType>  
  <xs:complexType name ="solutionRelationshipRoleOrdinalType">  
    <xs:simpleContent>  
      <xs:extension base="RelationshipRoleOrdinalType">  
        <xs:attributeGroup ref="FormXmlBaseElementCommon"/>  
      </xs:extension>  
    </xs:simpleContent>  
  </xs:complexType>  
  <xs:complexType name ="solutionGridResizeType">  
    <xs:simpleContent>  
      <xs:extension base="GridResizeType">  
        <xs:attributeGroup ref="FormXmlBaseElementCommon"/>  
      </xs:extension>  
    </xs:simpleContent>  
  </xs:complexType>  
  <xs:complexType name ="solutionUnsignedShortType">  
    <xs:simpleContent>  
      <xs:extension base="xs:unsignedShort">  
        <xs:attributeGroup ref="FormXmlBaseElementCommon"/>  
      </xs:extension>  
    </xs:simpleContent>  
  </xs:complexType>  
  <xs:group name="SearchWidgetControlParameters">  
    <xs:choice>  
      <xs:element name="FilterResults"  
                  type="xs:string"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="AllowChangingFiltersOnUI"  
                  type="xs:boolean"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="ShowLanguageFilter"  
                  type="xs:boolean"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="ShowDepartmentFilter"  
                  type="xs:boolean"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="EnableAutoSuggestions"  
                  type="xs:boolean"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="SearchForAutoSuggestionsUsing"  
                  type="xs:string"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="EnableRating"  
                  type="xs:boolean"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="ShowRatingUsing"  
                  type="xs:string"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="AutoSuggestionSource"  
                  type="xs:string"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="SelectPrimaryCustomer"  
                  type="xs:string"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="NumberOfResults"  
                  type="xs:unsignedInt"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="ShowContextualActions"  
                  type="xs:string"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="ActionList"  
                  type="xs:string"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="ReferencePanelSearchWidgetIconUrl"  
                  type="xs:string"  
                  minOccurs="0"  
                  maxOccurs="1" />  
      <xs:element name="SelectDefaultLanguage"  
                  type="xs:string"  
                  minOccurs="0"  
                  maxOccurs="1" />  
    </xs:choice>  
  </xs:group>  
</xs:schema>  
  

See also

Customize entity forms
Create, Install, and Update a Managed Solution
Create, Export, or Import an Unmanaged Solution
Form XML schema