Partager via


Extrait de code XML : Modéliser une méthode Web qui renvoie un jeu de données

Dernière modification : lundi 19 avril 2010

S’applique à : SharePoint Server 2010

Cet exemple montre comment modéliser une méthode Web qui renvoie un objet DataSet composé d’une table et de trois colonnes.

Notes

Renvoyer un objet DataSet à partir d’une méthode Web n’est pas recommandé. En effet, lorsque vous retournez un objet DataSet, les consommateurs doivent connaître la structure sous-jacente : ils ne peuvent pas déduire la structure du langage WSDL. Vous devez également vous assurer que la structure interne de l’objet DataSet renvoyé par la méthode Web ne change jamais ; si la structure interne change, vous pouvez être amené à réécrire la définition d’application.

Exemple

<Entity Name="Customer">
   <Identifiers>
      <Identifier Name="CustomerName" TypeName="System.String" />
   </Identifiers>
   <Methods>
      <Method Name="GetCustomers">
         <Parameters>
            <Parameter Direction="In" Name="language">
               <TypeDescriptor TypeName="System.String" Name="language">
               <DefaultValues>
                  <DefaultValue MethodInstanceName="CustomerSpecificFinderInstance" Type="System.String">en-us</DefaultValue>
                  <DefaultValue MethodInstanceName="CustomerFinderInstance" Type="System.String">en-us</DefaultValue>
               </DefaultValues>
            </TypeDescriptor>
         </Parameter>
         <Parameter Direction="Return" Name="GetCustomersResult">
            <TypeDescriptor TypeName="Catalogs.ServiceDataSetContract, Catalogs" Name="GetCustomersResult">
               <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.DataSet, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Value">
                     <TypeDescriptors>
                        <TypeDescriptor TypeName="System.Data.DataTableCollection, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Tables" IsCollection="true">
                           <TypeDescriptors>
                              <TypeDescriptor TypeName="System.Data.DataTable, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Categories">
                                 <TypeDescriptors>
                                       <TypeDescriptor TypeName="System.Data.DataRowCollection, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Rows" IsCollection="true">
                                          <TypeDescriptors>
                                             <TypeDescriptor TypeName="System.Data.DataRow, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Categories">
<TypeDescriptors>
<TypeDescriptor TypeName="System.String" IdentifierName="CustomerName" Name="CustomerName" >
<LocalizedDisplayNames>
<LocalizedDisplayName LCID="1033">CustomerName</LocalizedDisplayName>
</LocalizedDisplayNames>
</TypeDescriptor>
<TypeDescriptor TypeName="System.String" Name="DisplayName" >
<LocalizedDisplayNames>
<LocalizedDisplayName LCID="1033">Name</LocalizedDisplayName>
</LocalizedDisplayNames>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</Parameter>
</Parameters>
<MethodInstances>
<MethodInstance Type="Finder" ReturnParameterName="GetCustomersResult" 
ReturnTypeDescriptorName="GetCustomersResult" 
ReturnTypeDescriptorLevel="0" Name="CustomerFinderInstance" />
<MethodInstance Type="SpecificFinder" 
ReturnParameterName="GetCustomersResult" 
ReturnTypeDescriptorName="GetCustomersResult" 
ReturnTypeDescriptorLevel="0" Name="CustomerSpecificFinderInstance" />
</MethodInstances>
</Method>
</Methods>
</Entity>