Appendix D: InfoPath Form Template XML Schema


In November 2003, Microsoft introduced an open and royalty-free license and documentation for the Microsoft Office 2003 XML Reference Schemas, including the InfoPath form template schema, listed here for your reference.

InfoPath Form Template XML Schema

 <?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsf="http://schemas.microsoft.com/office/infopath/2003/solutionDefinition" targetNamespace="http://schemas.microsoft.com/office/infopath/2003/solutionDefinition" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- xdTitle type -->
<xsd:simpleType name="xdTitle">
<xsd:restriction base="xsd:string">
<xsd:minLength value="1" />
<xsd:maxLength value="255" />
<xsd:pattern value="([^\p{Z}\p{Cc}\p{Cf}\p{Cn}])(([^\p{Zl}\p{Zp}\p{Cc}])*([^\p{Z}\p{Cc}\p{Cf}\p{Cn}]))?" />
</xsd:restriction>
</xsd:simpleType>
<!-- xdViewName type -->
<xsd:simpleType name="xdViewName">
<xsd:restriction base="xsd:string">
<xsd:minLength value="1" />
<xsd:maxLength value="255" />
<xsd:pattern value="([^\p{Z}\p{C}/\\#&amp;&quot;&gt;&lt;])(([^\p{Zl}\p{Zp}\p{C}/\\#&amp;&quot;&gt;&lt;])*([^\p{Z}\p{C}/\\#&amp;&quot;&gt;&lt;]))?" />
</xsd:restriction>
</xsd:simpleType>
<!-- xdYesNo type -->
<xsd:simpleType name="xdYesNo">
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="yes" />
<xsd:enumeration value="no" />
</xsd:restriction>
</xsd:simpleType>
<!-- xdFileName type -->
<xsd:simpleType name="xdFileName">
<xsd:restriction base="xsd:string">
<xsd:minLength value="1" />
<xsd:maxLength value="64" />
</xsd:restriction>
</xsd:simpleType>
<!-- xdScriptLanguage type -->
<xsd:simpleType name="xdScriptLanguage">
<xsd:restriction base="xsd:NMTOKEN">
<xsd:pattern value="((([Jj][Aa][Vv][Aa])|([Jj])|([Vv][Bb]))([Ss][Cc][Rr][Ii][Pp][Tt]))" />
</xsd:restriction>
</xsd:simpleType>
<!-- xdSolutionVersion type -->
<xsd:simpleType name="xdSolutionVersion">
<xsd:restriction base="xsd:string">
<xsd:pattern value="(([0-9]{1,4}.){3}[0-9]{1,4})" />
</xsd:restriction>
</xsd:simpleType>
<!-- xdEmptyString type -->
<xsd:simpleType name="xdEmptyString">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="0" />
</xsd:restriction>
</xsd:simpleType>

<!-- xdErrorMessage type -->
<xsd:simpleType name="xdErrorMessage">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="1023" />
</xsd:restriction>
</xsd:simpleType>
<!-- xDocumentClass -->
<xsd:element name="xDocumentClass">
<xsd:complexType>
<xsd:all>
<xsd:element ref="xsf:package" minOccurs="1" />
<xsd:element ref="xsf:views" minOccurs="1" />
<xsd:element ref="xsf:scripts" minOccurs="0" />
<xsd:element ref="xsf:schemaErrorMessages" minOccurs="0" />
<xsd:element ref="xsf:documentSchemas" minOccurs="0" />
<xsd:element ref="xsf:applicationParameters" minOccurs="0" />
<xsd:element ref="xsf:fileNew" minOccurs="0" />
<xsd:element ref="xsf:customValidation" minOccurs="0" />
<xsd:element ref="xsf:domEventHandlers" minOccurs="0" />
<xsd:element ref="xsf:importParameters" minOccurs="0" />
<xsd:element ref="xsf:listProperties" minOccurs="0" />
<xsd:element ref="xsf:taskpane" minOccurs="0" />
<xsd:element ref="xsf:documentSignatures" minOccurs="0" />
<xsd:element ref="xsf:dataObjects" minOccurs="0" />
<xsd:element ref="xsf:query" minOccurs="0" />
<xsd:element ref="xsf:submit" minOccurs="0" />
<xsd:element ref="xsf:documentVersionUpgrade" minOccurs="0" />
  <xsd:element ref="xsf:extensions" minOccurs="0" />
</xsd:all>
<xsd:attribute name="name" type="xsd:string" use="optional" />
<xsd:attribute name="author" type="xsd:string" use="optional" />
<xsd:attribute name="description" use="optional">

<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="solutionVersion" type="xsf:xdSolutionVersion" use="optional" />
<xsd:attribute name="productVersion" type="xsd:string" use="optional" />
<xsd:attribute name="solutionFormatVersion" type="xsf:xdSolutionVersion" use="required" />
<xsd:attribute name="dataFormSolution" type="xsf:xdYesNo" use="optional" />
<xsd:attribute name="requireFullTrust" type="xsf:xdYesNo" use="optional" />
<xsd:attribute name="publishUrl" type="xsd:string" use="optional" />
  </xsd:complexType>
</xsd:element>
<!-- UIContainer -->
<xsd:group name="UIContainer">
<xsd:choice>
<xsd:element ref="xsf:toolbar" />
<xsd:element ref="xsf:menu" />
<xsd:element ref="xsf:menuArea" />
</xsd:choice>
</xsd:group>
<!-- schemaErrorMessages -->
<xsd:element name="schemaErrorMessages">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:override" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- override -->
<xsd:element name="override">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:errorMessage" />
</xsd:sequence>
<xsd:attribute name="match" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<!-- applicationParameters -->
<xsd:element name="applicationParameters">
<xsd:complexType>
<xsd:all>
<xsd:element ref="xsf:solutionProperties" minOccurs="0" />
</xsd:all>
<xsd:attribute name="application" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="InfoPath Design Mode" />
  </xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<!-- solutionProperties -->
<xsd:element name="solutionProperties">
<xsd:complexType>
<xsd:attribute name="allowCustomization" type="xsf:xdYesNo" use="optional" />
<xsd:attribute name="lastOpenView" use="optional" />
<xsd:attribute name="scriptLanguage" type="xsf:xdScriptLanguage" use="optional" />
<xsd:attribute name="automaticallyCreateNodes" type="xsf:xdYesNo" use="optional" />
<xsd:attribute name="lastVersionNeedingTransform" type="xsf:xdSolutionVersion" use="optional" />
<xsd:attribute name="fullyEditableNamespace" type="xsd:anyURI" use="optional" />
</xsd:complexType>
</xsd:element>
<!-- dbInfo -->
<xsd:element name="query">
<xsd:complexType>
<xsd:choice>
<xsd:element ref="xsf:adoAdapter" />

<xsd:element ref="xsf:webServiceAdapter" />
<xsd:element ref="xsf:xmlFileAdapter" />
</xsd:choice>
</xsd:complexType>
</xsd:element>
<!-- scripts -->
<xsd:element name="scripts">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:script" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="language" type="xsf:xdScriptLanguage" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="script">
<xsd:complexType>
<xsd:attribute name="src" type="xsf:xdFileName" use="required" />
</xsd:complexType>
</xsd:element>
<!-- docObjects -->
<xsd:element name="dataObjects">
<xsd:complexType>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="xsf:dataObject" />
</xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:element name="dataObject">
<xsd:complexType>
<xsd:choice>
<xsd:element ref="xsf:query" />
</xsd:choice>
<xsd:attribute name="name" type="xsf:xdTitle" use="required" />
<xsd:attribute name="schema" type="xsd:string" use="optional" />
<xsd:attribute name="initOnLoad" type="xsf:xdYesNo" use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="adoAdapter">
<xsd:complexType>
<xsd:attribute name="connectionString" type="xsd:string" use="required" />
<xsd:attribute name="commandText" type="xsd:string" use="required" />
<xsd:attribute name="queryAllowed" type="xsf:xdYesNo" use="optional" />
<xsd:attribute name="submitAllowed" type="xsf:xdYesNo" use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="webServiceAdapter">
<xsd:complexType>
<xsd:choice>
<xsd:element ref="xsf:operation" />
</xsd:choice>
<xsd:attribute name="wsdlUrl" type="xsd:string" use="required" />
<xsd:attribute name="queryAllowed" type="xsf:xdYesNo" use="optional" />
<xsd:attribute name="submitAllowed" type="xsf:xdYesNo" use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="operation">
<xsd:complexType>
<xsd:choice>
<xsd:element ref="xsf:input" minOccurs="0" />
</xsd:choice>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="soapAction" type="xsd:string" use="required" />
<xsd:attribute name="serviceUrl" type="xsd:string" use="required" />
  </xsd:complexType>
</xsd:element>
<xsd:element name="input">
<xsd:complexType>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="xsf:partFragment" />
</xsd:choice>
<xsd:attribute name="source" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="partFragment">
<xsd:complexType>
<xsd:attribute name="match" type="xsd:string" use="required" />
<xsd:attribute name="replaceWith" type="xsd:string" use="required" />
  </xsd:complexType>
</xsd:element>
<xsd:element name="xmlFileAdapter">
<xsd:complexType>
<xsd:attribute name="fileUrl" type="xsd:anyURI" use="required" />
</xsd:complexType>
</xsd:element>
<!-- documentSchemas -->
<xsd:element name="documentSchemas">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:documentSchema" maxOccurs="unbounded" />
  </xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="documentSchema">
<xsd:complexType>
<xsd:attribute name="location" type="xsd:string" use="required" />
<xsd:attribute name="rootSchema" type="xsf:xdYesNo" />
</xsd:complexType>
</xsd:element>
<!-- customValidation -->
<xsd:element name="customValidation">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:errorCondition" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="errorCondition">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:errorMessage" />
</xsd:sequence>
<xsd:attribute name="match" type="xsd:string" use="required" />
<xsd:attribute name="expression" type="xsd:string" use="required" />
  <xsd:attribute name="expressionContext" type="xsd:string" use="optional" />
<xsd:attribute name="showErrorOn" type="xsd:string" use="optional" />
  </xsd:complexType>
</xsd:element>
<xsd:element name="errorMessage">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsf:xdErrorMessage">
<xsd:attribute name="type" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="modal" />
<xsd:enumeration value="modeless" />
  </xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="shortMessage" use="required" >
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="127" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<!-- domEventHandlers -->
<xsd:element name="domEventHandlers">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:domEventHandler" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="domEventHandler">
<xsd:complexType>
<xsd:attribute name="match" type="xsd:string" use="required" />
<xsd:attribute name="handlerObject" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<!-- importParameters -->
<xsd:element name="importParameters">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:importSource" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="enabled" type="xsf:xdYesNo" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="importSource">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="schema" type="xsf:xdFileName" use="required" />
  <xsd:attribute name="transform" type="xsf:xdFileName" use="required" />
  </xsd:complexType>
</xsd:element>
<!-- listProperties -->
<xsd:element name="listProperties">
<xsd:complexType>
<xsd:all>
<xsd:element ref="xsf:fields" />
</xsd:all>
</xsd:complexType>
</xsd:element>
<xsd:element name="fields">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:field" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="field">
<xsd:complexType>
<xsd:attribute name="type" type="xsd:NMTOKEN" use="required" />
<xsd:attribute name="name" type="xsf:xdTitle" use="required" />
<xsd:attribute name="columnName" type="xsf:xdTitle" use="required" />
  <xsd:attribute name="required" type="xsf:xdYesNo" use="optional" />
<xsd:attribute name="viewable" type="xsf:xdYesNo" use="optional" />
<xsd:attribute name="node" type="xsd:string" use="required" />
<xsd:attribute name="maxLength" type="xsd:byte" />
<xsd:attribute name="aggregation" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="sum" />
<xsd:enumeration value="count" />
<xsd:enumeration value="average" />
<xsd:enumeration value="min" />
<xsd:enumeration value="max" />
<xsd:enumeration value="first" />
<xsd:enumeration value="last" />
<xsd:enumeration value="merge" />
<xsd:enumeration value="plaintext" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="submit">
<xsd:complexType>
<xsd:all>
<xsd:element ref="xsf:useHttpHandler" minOccurs="0" />
<xsd:element ref="xsf:useScriptHandler" minOccurs="0" />
<xsd:element ref="xsf:useQueryAdapter" minOccurs="0" />
<xsd:element ref="xsf:webServiceAdapter" minOccurs="0" />
<xsd:element name="successMessage" type="xsd:string" minOccurs="0" />
<xsd:element name="errorMessage" type="xsd:string" minOccurs="0" />
</xsd:all>
<xsd:attribute name="caption" type="xsd:string" use="optional" />
<xsd:attribute name="onAfterSubmit" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="close" />
<xsd:enumeration value="keepOpen" />
<xsd:enumeration value="openNew" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="showStatusDialog" type="xsf:xdYesNo" use="optional" />
<xsd:attribute name="showSignatureReminder" type="xsf:xdYesNo" use="optional" />
<xsd:attribute name="disableMenuItem" type="xsf:xdYesNo" use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="useHttpHandler">
<xsd:complexType>
<xsd:attribute name="method" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="POST" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="href" type="xsd:anyURI" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="useScriptHandler"></xsd:element>
<xsd:element name="useQueryAdapter">
<xsd:complexType></xsd:complexType>
</xsd:element>
<!-- fileNew -->
<xsd:element name="fileNew">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:initialXmlDocument" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="initialXmlDocument">
<xsd:complexType>
<xsd:attribute name="caption" type="xsf:xdTitle" use="required"></xsd:attribute>
<xsd:attribute name="href" type="xsf:xdFileName" use="required" />
</xsd:complexType>
</xsd:element>
<!-- package -->
<xsd:element name="package">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:files" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="files">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:file" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="file">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:fileProperties" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsf:xdFileName" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:element name="fileProperties">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:property" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="property">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="value" type="xsd:string" use="required" />
<xsd:attribute name="type" type="xsd:QName" use="required" />
</xsd:complexType>
</xsd:element>
<!-- View and Context-Driven Editing definitions -->
<!-- attributeData -->
<xsd:element name="attributeData">
<xsd:complexType>
<xsd:attribute name="attribute" type="xsd:string" use="required" />
<xsd:attribute name="value" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<!-- button -->
<xsd:element name="button">
<xsd:complexType>
<xsd:attribute name="caption" type="xsf:xdTitle" />
<xsd:attribute name="icon" type="xsd:string" />
<xsd:attribute name="tooltip" type="xsf:xdTitle" />
<xsd:attribute name="name" type="xsd:NMTOKEN" />
<xsd:attribute name="xmlToEdit" type="xsd:NMTOKEN" />
<xsd:attribute name="action">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="xCollection::insert" />
<xsd:enumeration value="xCollection::insertBefore" />
<xsd:enumeration value="xCollection::insertAfter" />
<xsd:enumeration value="xCollection::remove" />
<xsd:enumeration value="xCollection::removeAll" />
<xsd:enumeration value="xOptional::insert" />
< xsd:enumeration value="xOptional::remove" />
<xsd:enumeration value="xReplace::replace" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="showIf">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="always" />
<xsd:enumeration value="enabled" />
<xsd:enumeration value="immediate" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<!-- chooseFragment -->
<xsd:element name="chooseFragment">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:any minOccurs="0" maxOccurs="unbounded" processContents="skip" />
</xsd:sequence>
<xsd:attribute name="parent" type="xsd:string" />
<xsd:attribute name="followingSiblings" type="xsd:string" use="optional" />
</xsd:complexType>
</xsd:element>
<!-- editWith -->
<xsd:element name="editWith">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:fragmentToInsert" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
<xsd:attribute name="component" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="xCollection" />
<xsd:enumeration value="xOptional" />
<xsd:enumeration value="xReplace" />
<xsd:enumeration value="xTextList" />
<xsd:enumeration value="xField" />
<xsd:enumeration value="xImage" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="caption" type="xsf:xdTitle" use="optional" />
<xsd:attribute name="autoComplete" type="xsf:xdYesNo" use="optional" />
<xsd:attribute name="proofing" type="xsf:xdYesNo" use="optional" />
<xsd:attribute name="type" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="plain" />
<xsd:enumeration value="formatted" />
<xsd:enumeration value="plainMultiline" />
<xsd:enumeration value="formattedMultiline" />
<xsd:enumeration value="rich" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="field" type="xsd:string" use="optional" />
<xsd:attribute name="removeAncestors" type="xsd:nonNegativeInteger" use="optional" />
<xsd:anyAttribute namespace="http://schemas.microsoft.com/office/infopath/2003" processContents="skip" />
</xsd:complexType>
</xsd:element>
<!-- unboundControls -->
<xsd:element name="unboundControls">
<xsd:complexType>
<xsd:sequence>
<!-- button -->
<xsd:element name="button" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="name" use="required">
<xsd:simpleType>
<!-- type of name is non qualified name, but it also accepts . and - so this characters
disabled by pattern restriction -->
<xsd:restriction base="xsd:NCName">
<xsd:pattern value="[^\.\^-]*" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- editing -->
<xsd:element name="editing">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:xmlToEdit" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- fragmentToInsert -->
<xsd:element name="fragmentToInsert">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:chooseFragment" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- mainpane -->
<xsd:element name="mainpane">
<xsd:complexType>
<xsd:attribute name="transform" type="xsf:xdFileName" use="required" />
</xsd:complexType>
</xsd:element>
<!-- printSettings -->
<xsd:element name="printSettings">
<xsd:complexType>
<xsd:attribute name="orientation">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="portrait" />
<xsd:enumeration value="landscape" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="header">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="footer">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<!-- toolbar -->
<xsd:element name="toolbar">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="xsf:UIItem" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="name" type="xsf:xdTitle" use="required" />
<xsd:attribute name="caption" type="xsf:xdTitle" use="required" />
</xsd:complexType>
</xsd:element>
<!-- menu -->
<xsd:element name="menu">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="xsf:UIItem" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="caption" type="xsf:xdTitle" use="required" />
</xsd:complexType>
</xsd:element>
<!-- menuArea -->
<xsd:element name="menuArea">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="xsf:UIItem" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="name" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="msoFileMenu" />
<xsd:enumeration value="msoEditMenu" />
<xsd:enumeration value="msoInsertMenu" />
<xsd:enumeration value="msoViewMenu" />
<xsd:enumeration value="msoFormatMenu" />
<xsd:enumeration value="msoToolsMenu" />
<xsd:enumeration value="msoTableMenu" />
<xsd:enumeration value="msoHelpMenu" />
<xsd:enumeration value="msoStructuralEditingContextMenu" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<!-- UIContainer -->
<xsd:group name="UIItem">
<xsd:choice>
<xsd:element ref="xsf:button" />
<xsd:element ref="xsf:menu" />
</xsd:choice>
</xsd:group>
<!-- taskpane -->
<xsd:element name="taskpane">
<xsd:complexType>
<xsd:attribute name="caption" type="xsd:string" use="required" />
<xsd:attribute name="href" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<!-- views -->
<xsd:element name="views">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:view" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="default" type="xsd:string" />
</xsd:complexType>
<xsd:unique name="views_name_unique">
<xsd:selector xpath="./xsf:view" />
<xsd:field xpath="@name" />
</xsd:unique>
<xsd:key name="view_name_key">
<xsd:selector xpath="./xsf:view" />
<xsd:field xpath="@name" />
</xsd:key>
<xsd:keyref name="view_printView" refer="xsf:view_name_key">
<xsd:selector xpath="./xsf:view" />
<xsd:field xpath="@printView" />
</xsd:keyref>
<xsd:keyref name="views_default" refer="xsf:view_name_key">
<xsd:selector xpath="." />
<xsd:field xpath="@default" />
</xsd:keyref>
</xsd:element>
<!-- ViewContent -->
<xsd:group name="ViewContent">
<xsd:choice>
<xsd:element ref="xsf:editing" minOccurs="0" />
<xsd:element ref="xsf:mainpane" minOccurs="0" />
<xsd:element ref="xsf:printSettings" minOccurs="0" />
<xsd:group ref="xsf:UIContainer" minOccurs="0" maxOccurs="unbounded" />
<xsd:element ref="xsf:unboundControls" minOccurs="0" />
</xsd:choice>
</xsd:group>
<!-- view -->
<xsd:element name="view">
<xsd:complexType>
<xsd:group ref="xsf:ViewContent" minOccurs="0" maxOccurs="unbounded" />
<xsd:attribute name="caption" type="xsf:xdViewName" />
<xsd:attribute name="name" type="xsf:xdViewName" use="required" />
<xsd:attribute name="printView" type="xsd:string" />
</xsd:complexType>
<xsd:unique name="toolbar_name_unique">
<xsd:selector xpath="./xsf:toolbar" />
<xsd:field xpath="@name" />
</xsd:unique>
<xsd:unique name="menuArea_name_unique">
<xsd:selector xpath="./xsf:menuArea" />
<xsd:field xpath="@name" />
</xsd:unique>
<xsd:unique name="xmlToEdit_name_unique">
<xsd:selector xpath="./xsf:editing/xsf:xmlToEdit" />
<xsd:field xpath="@name" />
</xsd:unique>
<xsd:key name="xmlToEdit_name_key">
<xsd:selector xpath="./xsf:editing/xsf:xmlToEdit" />
<xsd:field xpath="@name" />
</xsd:key>
<xsd:keyref name="button_xmlToEdit_reference" refer="xsf:xmlToEdit_name_key">
<xsd:selector xpath="./xsf:menuArea/xsf:button | ./xsf:menu/xsf:button | ./xsf:toolbar/xsf:button" />
<xsd:field xpath="@xmlToEdit" />
</xsd:keyref>
</xsd:element>
<!-- xmlToEdit -->
<xsd:element name="xmlToEdit">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:editWith" minOccurs="0" maxOccurs="1" />
  </xsd:sequence>
<xsd:attribute name="name" type="xsd:NMTOKEN" use="required" />
<xsd:attribute name="item" type="xsd:string" use="required" />
<xsd:attribute name="container" type="xsd:string" />
<xsd:attribute name="viewContext">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="((\.|\#|[a-zA-Z0-9_])[a-zA-Z0-9_]*)(\s((\.|\#|[a-zA-Z0-9_])[a-zA-Z0-9_]*))*" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<!-- docDigitalSignatures -->
<xsd:element name="documentSignatures">
<xsd:complexType>
<xsd:attribute name="signatureLocation" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
<!-- Upgrade -->
<xsd:element name="documentVersionUpgrade">
<xsd:complexType>
<xsd:choice>
<xsd:element ref="xsf:useScriptHandler" />
<xsd:element ref="xsf:useTransform" />
</xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:element name="useTransform">
<xsd:complexType>
<xsd:attribute name="transform" use="required">
<xsd:simpleType>
<xsd:union memberTypes="xsf:xdFileName xsf:xdEmptyString" />
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="minVersionToUpgrade" type="xsf:xdSolutionVersion" use="required" />
<xsd:attribute name="maxVersionToUpgrade" type="xsf:xdSolutionVersion" />
</xsd:complexType>
</xsd:element>
<!-- XSF Extensions -->
<xsd:element name="extensions">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xsf:extension" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="extension">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:any minOccurs="0" maxOccurs="unbounded" processContents="skip" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:NMTOKEN" use="required" />
<xsd:anyAttribute processContents="skip" />
</xsd:complexType>
</xsd:element>
</xsd:schema>

Copyright Microsoft Corporation. All rights reserved. Permission to copy, display and distribute this document is available at: http://msdn.microsoft.com/ library/en-us/odcXMLRef/html/odcXMLRefLegalNotice.asp?frame=true.

No right to create modifications or derivatives of this Specification is granted herein.

There is a separate patent license available to parties interested in implementing software programs that can read and write files that conform to the Specification. This patent license is available at this location: www.microsoft.com/mscorp/ ip/format/xmlpatentlicense.asp.

THE SPECIFICATION IS PROVIDED "AS IS" AND MICROSOFT MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE SPECIFICATION ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. MICROSOFT WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THE SPECIFICATION.

The name and trademarks of Microsoft may NOT be used in any manner, including advertising or publicity pertaining to the Specification or its contents without specific, written prior permission. Title to copyright in the Specification will at all times remain with Microsoft.

No other rights are granted by implication, estoppel or otherwise.




How to Do Everything with Microsoft Office InfoPath 2003
How to Do Everything with Microsoft Office InfoPath 2003 (How to Do Everything)
ISBN: 0072231270
EAN: 2147483647
Year: 2006
Pages: 142

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net