Procédure : modéliser une méthode Web qui retourne un dataset
Cet exemple montre comment vous pouvez modéliser une méthode Web qui retourne un dataset composé d'une table et de trois colonnes.
Remarque Retourner un dataset à partir d'une méthode Web n'est pas recommandé. En effet, lorsque vous retournez un 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 du dataset retourné par la méthode Web ne change jamais ; si la structure interne change, les auteurs des métadonnées du catalogue de données métiers peuvent être amenés à 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>