5 Appendix A: Full XML Schemas

For ease of implementation, this section provides the full XML schema for the UDC file.

 <?xml version="1.0" encoding="UTF-8"?>
 <xsd:schema 
   targetNamespace="http://schemas.microsoft.com/office/infopath/2006/udc"
   elementFormDefault="qualified"
   xmlns:udc="http://schemas.microsoft.com/office/infopath/2006/udc"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  
   <xsd:element name="DataSource" >
     <xsd:complexType >
       <xsd:all>
         <xsd:element name="Name" type="xsd:string" />
         <xsd:element name="Description" type="xsd:string" />
         <xsd:element ref="udc:Type" />
         <xsd:element ref="udc:ConnectionInfo" />
       </xsd:all>
       <xsd:attribute name="MajorVersion" fixed="2" use="required" type="xsd:int" />
       <xsd:attribute name="MinorVersion" fixed="0" use="required" type="xsd:int" />
     </xsd:complexType>
   </xsd:element>
  
   <xsd:element name="Type" >
     <xsd:complexType >
       <xsd:sequence>
         <xsd:element ref="udc:SubType" minOccurs="0" />
       </xsd:sequence>
       <xsd:attribute name="MajorVersion" type="xsd:string" use="optional" />
       <xsd:attribute name="MinorVersion" type="xsd:string" use="optional" />
       <xsd:attribute name="Type" use="required" >
         <xsd:simpleType >
           <xsd:restriction base="xsd:string">
             <xsd:enumeration value="SharePointList" />
             <xsd:enumeration value="SharePointLibrary" />
             <xsd:enumeration value="Database" />
             <xsd:enumeration value="XmlQuery" />
             <xsd:enumeration value="WebService" />
             <xsd:enumeration value="XmlSubmit" />
             <xsd:enumeration value="Rest" />
           </xsd:restriction>
         </xsd:simpleType>
       </xsd:attribute>
     </xsd:complexType>
   </xsd:element>
  
   <xsd:element name="ConnectionInfo" >
     <xsd:complexType >
       <xsd:all>
         <xsd:element name="WsdlUrl" minOccurs="0" type="xsd:string" />
         <xsd:element ref="udc:SelectCommand" />
         <xsd:element ref="udc:UpdateCommand" />
         <xsd:element ref="udc:Authentication" minOccurs="0" />
       </xsd:all>
       <xsd:attribute name="Purpose" use="required" >
         <xsd:simpleType >
           <xsd:restriction base="xsd:string">
             <xsd:enumeration value="ReadOnly" />
             <xsd:enumeration value="WriteOnly" />
             <xsd:enumeration value="ReadWrite" />
           </xsd:restriction>
         </xsd:simpleType>
       </xsd:attribute>
       <xsd:attribute name="AltDataSource" type="xsd:string" use="optional" />
     </xsd:complexType>
   </xsd:element>
  
   <xsd:element name="SelectCommand" >
     <xsd:complexType >
       <xsd:all>
         <xsd:element name="ListId" minOccurs="0" type="xsd:string" />
         <xsd:element name="WebUrl" minOccurs="0" type="xsd:string" />
         <xsd:element name="ConnectionString" minOccurs="0" type="xsd:string" />
         <xsd:element ref="udc:ServiceUrl" minOccurs="0" />
         <xsd:element ref="udc:SoapAction" minOccurs="0" />
         <xsd:element ref="udc:OperationName" minOccurs="0" />
         <xsd:element name="Query" minOccurs="0" type="xsd:string" />
       </xsd:all>
       <xsd:attribute name="Type" type="xsd:string" use="optional" />
     </xsd:complexType>
   </xsd:element>
  
   <xsd:element name="UpdateCommand" >
     <xsd:complexType >
       <xsd:all>
         <xsd:element ref="udc:ServiceUrl" minOccurs="0" />
         <xsd:element ref="udc:SoapAction" minOccurs="0" />
         <xsd:element ref="udc:OperationName" minOccurs="0" />
         <xsd:element name="Submit" minOccurs="0" type="xsd:string" />
         <xsd:element name="FileName" minOccurs="0" type="xsd:string" />
         <xsd:element ref="udc:FolderName" minOccurs="0" />
       </xsd:all>
     </xsd:complexType>
   </xsd:element>
  
   <xsd:element name="SoapAction" type="xsd:string" />
  
   <xsd:element name="OperationName" type="xsd:string" />
  
   <xsd:element name="FolderName" >
     <xsd:complexType >
       <xsd:simpleContent>
         <xsd:extension base="xsd:string">
           <xsd:attribute name="AllowOverwrite" use="optional" >
             <xsd:simpleType>
               <xsd:restriction base="xsd:string">
                 <xsd:enumeration value="" />
                 <xsd:enumeration value="0" />
                 <xsd:enumeration value="1" />
                 <xsd:enumeration value="false" />
                 <xsd:enumeration value="true" />
               </xsd:restriction>
             </xsd:simpleType>
           </xsd:attribute>
         </xsd:extension>
       </xsd:simpleContent>
     </xsd:complexType>
   </xsd:element>
  
  
   <xsd:element name="ServiceUrl" >
     <xsd:complexType >
       <xsd:simpleContent>
         <xsd:extension base="xsd:string">
           <xsd:attribute name="UseFormsServiceProxy" use="optional" type="xsd:boolean" />
         </xsd:extension>
       </xsd:simpleContent>
     </xsd:complexType>
   </xsd:element>
   
   <xsd:element name="Authentication" >
     <xsd:complexType >
       <xsd:all>
         <xsd:element ref="udc:SSO" minOccurs="0" />
         <xsd:element ref="udc:UseExplicit" minOccurs="0" />
       </xsd:all>
     </xsd:complexType>
   </xsd:element>
  
   <xsd:element name="UseExplicit" >
     <xsd:complexType >
       <xsd:all>
         <xsd:element name="UserId" minOccurs="0" type="xsd:string" />
         <xsd:element name="Password" minOccurs="0" type="xsd:string" />
       </xsd:all>
       <xsd:attribute name="CredentialType" use="required" type="udc:CredentialTypeEnumeration" />
     </xsd:complexType>
   </xsd:element>
  
   <xsd:element name="SSO" >
     <xsd:complexType >
       <xsd:attribute name="AppId" use="required" type="xsd:string" />
       <xsd:attribute name="CredentialType" use="required" type="udc:CredentialTypeEnumeration" />
     </xsd:complexType>
   </xsd:element>
  
   <xsd:simpleType name="CredentialTypeEnumeration" >
     <xsd:restriction base="xsd:string">
       <xsd:enumeration value="Sql" />
       <xsd:enumeration value="Ntlm" />
       <xsd:enumeration value="Kerberos" />
       <xsd:enumeration value="CD" />
       <xsd:enumeration value="Basic" />
       <xsd:enumeration value="Digest" />
     </xsd:restriction>
   </xsd:simpleType>
  
   <xsd:element name ="SubType" >
     <xsd:complexType >
       <xsd:attribute name="MajorVersion" type="xsd:string" use="optional" />
       <xsd:attribute name="MinorVersion" type="xsd:string" use="optional" />
     </xsd:complexType>
   </xsd:element>
 </xsd:schema>