SampleWebService Metadata

Applies to: SharePoint Server 2010

This topic contains the complete BDC model for the Sample Orders Web Service, and shows several complex concepts in the Business Data Connectivity (BDC) service. To better understand the sample, follow the walkthrough steps in the SampleWebService model.

The source for the Code Sample: Sample Orders ASP.NET Web Service is also included in the SharePoint 2010 SDK. Before importing the model, publish the Web service on a Web server, and then update the WSDLFetchURL property accordingly.

Metadata

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://schemas.microsoft.com/windows/2007/BusinessDataCatalog BDCMetadata.xsd" Name="SampleWebService_Model" xmlns="https://schemas.microsoft.com/windows/2007/BusinessDataCatalog">
  <AccessControlList>
    <AccessControlEntry Principal="central\soauser">
      <Right BdcRight="Edit" />
      <Right BdcRight="Execute" />
      <Right BdcRight="SetPermissions" />
      <Right BdcRight="SelectableInClients" />
    </AccessControlEntry>
    <AccessControlEntry Principal="central\bopuser">
      <Right BdcRight="Edit" />
      <Right BdcRight="Execute" />
      <Right BdcRight="SetPermissions" />
      <Right BdcRight="SelectableInClients" />
    </AccessControlEntry>
  </AccessControlList>
  <LobSystems>
    <LobSystem Type="Wcf" Name="http://air-mail/WSOrders2010/service.asmx?wsdl">
      <Properties>
        <Property Name="WsdlFetchAuthenticationMode" Type="System.String">PassThrough</Property>
        <Property Name="WcfMexDiscoMode" Type="System.String">Disco</Property>
        <Property Name="WcfMexDocumentUrl" Type="System.String">http://air-mail/WSOrders2010/service.asmx?wsdl</Property>
        <Property Name="WcfProxyNamespace" Type="System.String">BCSServiceProxy</Property>
        <Property Name="WildcardCharacter" Type="System.String">*</Property>
        <Property Name="ReferenceKnownTypes" Type="System.Boolean">true</Property>
      </Properties>
      <LobSystemInstances>
        <LobSystemInstance Name="http://air-mail/WSOrders2010/service.asmx?wsdl">
          <Properties>
            <Property Name="WcfAuthenticationMode" Type="System.String">PassThrough</Property>
            <Property Name="WcfEndpointAddress" Type="System.String">http://air-mail/WSOrders2010/service.asmx</Property>
            <Property Name="ShowInSearchUI" Type="System.String"></Property>
          </Properties>
        </LobSystemInstance>
      </LobSystemInstances>
      <Entities>
        <Entity Namespace="SampleWebService" Version="1.0.0.0" EstimatedInstanceCount="10000" Name="WSCustomer" DefaultDisplayName="WSCustomer">
          <Properties>
            <Property Name="OutlookItemType" Type="System.String">Contact</Property>
          </Properties>
          <Identifiers>
            <Identifier TypeName="System.String" Name="CustomerID" />
          </Identifiers>
          <Methods>
            <Method IsStatic="false" Name="GetCustomerByID">
              <Parameters>
                <Parameter Direction="In" Name="id">
                  <TypeDescriptor TypeName="System.String" IdentifierName="CustomerID" Name="id" DefaultDisplayName="CustomerID" />
                </Parameter>
                <Parameter Direction="Return" Name="GetCustomerByID">
                  <TypeDescriptor TypeName="BCSServiceProxy.Customer, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="GetCustomerByID">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.String" ReadOnly="true" IdentifierName="CustomerID" Name="CustomerID" />
                      <TypeDescriptor TypeName="System.String" Name="Name">
                        <Properties>
                          <Property Name="OfficeProperty" Type="System.String">FullName</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Nullable`1[[System.Int64, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="WorkPhoneNumber" />
                      <TypeDescriptor TypeName="System.Nullable`1[[System.Int64, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="MobilePhoneNumber" />
                      <TypeDescriptor TypeName="System.String" Name="Industry" />
                      <TypeDescriptor TypeName="System.String" Name="WebSite" />
                      <TypeDescriptor TypeName="BCSServiceProxy.CustomerAddress[], http://air-mail/WSOrders2010/service.asmx?wsdl" IsCollection="true" Name="CustomerAddresses">
                        <TypeDescriptors>
                          <TypeDescriptor TypeName="BCSServiceProxy.CustomerAddress, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="CustomerAddressesElement">
                            <TypeDescriptors>
                              <TypeDescriptor TypeName="BCSServiceProxy.CustomerStreet, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="Street">
                                <TypeDescriptors>
                                  <TypeDescriptor TypeName="System.String" Name="BlockNumber" />
                                  <TypeDescriptor TypeName="System.String" Name="Street" />
                                </TypeDescriptors>
                              </TypeDescriptor>
                              <TypeDescriptor TypeName="System.String" Name="City" />
                              <TypeDescriptor TypeName="BCSServiceProxy.States, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="StateProvince" />
                              <TypeDescriptor TypeName="System.String" Name="CountryRegion" />
                              <TypeDescriptor TypeName="System.String" Name="PostalCode" />
                            </TypeDescriptors>
                          </TypeDescriptor>
                        </TypeDescriptors>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="ParentCustomerID" />
                      <TypeDescriptor TypeName="System.Int32" Name="Version" />
                      <TypeDescriptor TypeName="System.DateTime" Name="ModifiedDate">
                        <Interpretation>
                          <NormalizeDateTime LobDateTimeMode="UTC" />
                        </Interpretation>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Boolean" Name="IsDeleted" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <MethodInstance Type="SpecificFinder" ReturnParameterName="GetCustomerByID" Default="true" Name="GetCustomerByID" DefaultDisplayName="Read Item WSCustomer">
                  <Properties>
                    <Property Name="LastDesignedOfficeItemType" Type="System.String">Contact</Property>
                  </Properties>
                </MethodInstance>
                <Association Name="CustomerToAddresses" Type="AssociationNavigator" ReturnParameterName="GetCustomerByID" ReturnTypeDescriptorPath="GetCustomerByID.CustomerAddresses"
DefaultDisplayName="Customer Child Customers Navigate Association">
                  <SourceEntity Namespace="SampleWebService" Name="WSCustomer" />
                  <DestinationEntity Namespace="SampleWebService" Name="WSAddress" />
                </Association>
              </MethodInstances>
            </Method>
            <Method IsStatic="false" Name="GetCustomers">
              <FilterDescriptors>
                <FilterDescriptor Type="Wildcard" FilterField="Name" Name="Filter">
                  <Properties>
                    <Property Name="UsedForDisambiguation" Type="System.Boolean">false</Property>
                    <Property Name="IsDefault" Type="System.Boolean">false</Property>
                    <Property Name="CaseSensitive" Type="System.Boolean">false</Property>
                  </Properties>
                </FilterDescriptor>
              </FilterDescriptors>
              <Parameters>
                <Parameter Direction="In" Name="name">
                  <TypeDescriptor TypeName="System.String" AssociatedFilter="Filter" Name="name" />
                </Parameter>
                <Parameter Direction="In" Name="limit">
                  <TypeDescriptor TypeName="System.Nullable`1[[System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="limit" />
                </Parameter>
                <Parameter Direction="Return" Name="GetCustomers">
                  <TypeDescriptor TypeName="BCSServiceProxy.Customer[], http://air-mail/WSOrders2010/service.asmx?wsdl" IsCollection="true" Name="GetCustomers">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="BCSServiceProxy.Customer, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="GetCustomersElement">
                        <TypeDescriptors>
                          <TypeDescriptor TypeName="System.String" ReadOnly="true" IdentifierName="CustomerID" Name="CustomerID" />
                          <TypeDescriptor TypeName="System.String" Name="Name">
                            <Properties>
                              <Property Name="ShowInPicker" Type="System.Boolean">true</Property>
                            </Properties>
                          </TypeDescriptor>
                          <TypeDescriptor TypeName="System.Nullable`1[[System.Int64, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="WorkPhoneNumber" />
                          <TypeDescriptor TypeName="System.Nullable`1[[System.Int64, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="MobilePhoneNumber" />
                          <TypeDescriptor TypeName="System.String" Name="Industry" />
                          <TypeDescriptor TypeName="System.String" Name="WebSite" />
                          <TypeDescriptor TypeName="BCSServiceProxy.CustomerAddress[], http://air-mail/WSOrders2010/service.asmx?wsdl" IsCollection="true" Name="CustomerAddresses">
                            <TypeDescriptors>
                              <TypeDescriptor TypeName="BCSServiceProxy.CustomerAddress, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="CustomerAddressesElement">
                                <TypeDescriptors>
                                  <TypeDescriptor TypeName="BCSServiceProxy.CustomerStreet, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="Street">
                                    <TypeDescriptors>
                                      <TypeDescriptor TypeName="System.String" Name="BlockNumber" />
                                      <TypeDescriptor TypeName="System.String" Name="Street" />
                                    </TypeDescriptors>
                                  </TypeDescriptor>
                                  <TypeDescriptor TypeName="System.String" Name="City" />
                                  <TypeDescriptor TypeName="BCSServiceProxy.States, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="StateProvince" />
                                  <TypeDescriptor TypeName="System.String" Name="CountryRegion" />
                                  <TypeDescriptor TypeName="System.String" Name="PostalCode" />
                                </TypeDescriptors>
                              </TypeDescriptor>
                            </TypeDescriptors>
                          </TypeDescriptor>
                          <TypeDescriptor TypeName="System.String" Name="ParentCustomerID" />
                          <TypeDescriptor TypeName="System.Int32" Name="Version" />
                          <TypeDescriptor TypeName="System.DateTime" Name="ModifiedDate">
                            <Interpretation>
                              <NormalizeDateTime LobDateTimeMode="UTC" />
                            </Interpretation>
                          </TypeDescriptor>
                          <TypeDescriptor TypeName="System.Boolean" Name="IsDeleted" />
                        </TypeDescriptors>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <MethodInstance Type="Finder" ReturnParameterName="GetCustomers" Default="true" Name="GetCustomers" DefaultDisplayName="WSCustomer Read List">
                  <Properties>
                    <Property Name="UseClientCachingForSearch" Type="System.String"></Property>
                    <Property Name="RootFinder" Type="System.String"></Property>
                  </Properties>
                </MethodInstance>
              </MethodInstances>
            </Method>
            <Method IsStatic="false" Name="CreateCustomer">
              <Parameters>
                <Parameter Direction="In" Name="customer">
                  <TypeDescriptor TypeName="BCSServiceProxy.Customer, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="customer">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.String" CreatorField="true" IdentifierName="CustomerID" Name="CustomerID" />
                      <TypeDescriptor TypeName="System.String" CreatorField="true" Name="Name" />
                      <TypeDescriptor TypeName="System.Nullable`1[[System.Int64, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" CreatorField="true" Name="WorkPhoneNumber" />
                      <TypeDescriptor TypeName="System.Nullable`1[[System.Int64, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" CreatorField="true" Name="MobilePhoneNumber" />
                      <TypeDescriptor TypeName="System.String" CreatorField="true" Name="Industry" />
                      <TypeDescriptor TypeName="System.String" CreatorField="true" Name="WebSite" />
                      <TypeDescriptor TypeName="BCSServiceProxy.CustomerAddress[], http://air-mail/WSOrders2010/service.asmx?wsdl" IsCollection="true" CreatorField="true" Name="CustomerAddresses">
                        <TypeDescriptors>
                          <TypeDescriptor TypeName="BCSServiceProxy.CustomerAddress, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="CustomerAddressesElement">
                            <TypeDescriptors>
                              <TypeDescriptor TypeName="BCSServiceProxy.CustomerStreet, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="Street">
                                <TypeDescriptors>
                                  <TypeDescriptor TypeName="System.String" Name="BlockNumber" />
                                  <TypeDescriptor TypeName="System.String" Name="Street" />
                                </TypeDescriptors>
                              </TypeDescriptor>
                              <TypeDescriptor TypeName="System.String" Name="City" />
                              <TypeDescriptor TypeName="BCSServiceProxy.States, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="StateProvince" />
                              <TypeDescriptor TypeName="System.String" Name="CountryRegion" />
                              <TypeDescriptor TypeName="System.String" Name="PostalCode" />
                            </TypeDescriptors>
                          </TypeDescriptor>
                        </TypeDescriptors>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" CreatorField="true" Name="ParentCustomerID" />
                      <TypeDescriptor TypeName="System.Int32" CreatorField="true" Name="Version" />
                      <TypeDescriptor TypeName="System.DateTime" CreatorField="true" Name="ModifiedDate">
                        <Interpretation>
                          <NormalizeDateTime LobDateTimeMode="UTC" />
                        </Interpretation>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Boolean" CreatorField="true" Name="IsDeleted" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
                <Parameter Direction="Return" Name="CreateCustomer">
                  <TypeDescriptor TypeName="System.String" IdentifierName="CustomerID" Name="CreateCustomer" />
                </Parameter>
              </Parameters>
              <MethodInstances>
                <MethodInstance Type="Creator" ReturnParameterName="CreateCustomer" Default="true" Name="CreateCustomer" DefaultDisplayName="Create WSCustomer">
                </MethodInstance>
              </MethodInstances>
            </Method>
            <Method IsStatic="false" Name="UpdateCustomer">
              <Parameters>
                <Parameter Direction="In" Name="customer">
                  <TypeDescriptor TypeName="BCSServiceProxy.Customer, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="customer">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.String" UpdaterField="true" IdentifierName="CustomerID" Name="CustomerID" />
                      <TypeDescriptor TypeName="System.String" UpdaterField="true" Name="Name" />
                      <TypeDescriptor TypeName="System.Nullable`1[[System.Int64, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UpdaterField="true" Name="WorkPhoneNumber" />
                      <TypeDescriptor TypeName="System.Nullable`1[[System.Int64, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UpdaterField="true" Name="MobilePhoneNumber" />
                      <TypeDescriptor TypeName="System.String" UpdaterField="true" Name="Industry" />
                      <TypeDescriptor TypeName="System.String" UpdaterField="true" Name="WebSite" />
                      <TypeDescriptor TypeName="BCSServiceProxy.CustomerAddress[], http://air-mail/WSOrders2010/service.asmx?wsdl" IsCollection="true" UpdaterField="true" Name="CustomerAddresses">
                        <TypeDescriptors>
                          <TypeDescriptor TypeName="BCSServiceProxy.CustomerAddress, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="CustomerAddressesElement">
                            <TypeDescriptors>
                              <TypeDescriptor TypeName="BCSServiceProxy.CustomerStreet, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="Street">
                                <TypeDescriptors>
                                  <TypeDescriptor TypeName="System.String" Name="BlockNumber" />
                                  <TypeDescriptor TypeName="System.String" Name="Street" />
                                </TypeDescriptors>
                              </TypeDescriptor>
                              <TypeDescriptor TypeName="System.String" Name="City" />
                              <TypeDescriptor TypeName="BCSServiceProxy.States, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="StateProvince" />
                              <TypeDescriptor TypeName="System.String" Name="CountryRegion" />
                              <TypeDescriptor TypeName="System.String" Name="PostalCode" />
                            </TypeDescriptors>
                          </TypeDescriptor>
                        </TypeDescriptors>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" UpdaterField="true" Name="ParentCustomerID" />
                      <TypeDescriptor TypeName="System.Int32" UpdaterField="true" Name="Version" />
                      <TypeDescriptor TypeName="System.DateTime" UpdaterField="true" Name="ModifiedDate">
                        <Interpretation>
                          <NormalizeDateTime LobDateTimeMode="UTC" />
                        </Interpretation>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Boolean" UpdaterField="true" Name="IsDeleted" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <MethodInstance Type="Updater" Name="UpdateCustomer" DefaultDisplayName="Update WSCustomer">
                </MethodInstance>
              </MethodInstances>
            </Method>
            <Method IsStatic="false" Name="DeleteCustomer">
              <Parameters>
                <Parameter Direction="In" Name="id">
                  <TypeDescriptor TypeName="System.String" IdentifierName="CustomerID" Name="id" />
                </Parameter>
              </Parameters>
              <MethodInstances>
                <MethodInstance Type="Deleter" Name="DeleteCustomer" DefaultDisplayName="Delete WSCustomer">
                </MethodInstance>
              </MethodInstances>
            </Method>
            <Method IsStatic="false" Name="GetChildCustomersForCustomer">
              <Parameters>
                <Parameter Direction="In" Name="id">
                  <TypeDescriptor TypeName="System.String" IdentifierName="CustomerID" Name="id" DefaultDisplayName="CustomerID" />
                </Parameter>
                <Parameter Direction="Return" Name="Customers">
                  <TypeDescriptor TypeName="BCSServiceProxy.Customer, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="ArrayOfCustomers">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.String" ReadOnly="true" IdentifierName="CustomerID" Name="CustomerID" />
                      <TypeDescriptor TypeName="System.String" Name="Name" />
                      <TypeDescriptor TypeName="System.Nullable`1[[System.Int64, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="WorkPhoneNumber" />
                      <TypeDescriptor TypeName="System.Nullable`1[[System.Int64, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="MobilePhoneNumber" />
                      <TypeDescriptor TypeName="System.String" Name="Industry" />
                      <TypeDescriptor TypeName="System.String" Name="WebSite" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <Association Name="CustomerToChildCustomers" Type="AssociationNavigator" ReturnParameterName="Customers" DefaultDisplayName="Customer Child Customers Navigate Association">
                  <SourceEntity Namespace="SampleWebService" Name="WSCustomer" />
                  <DestinationEntity Namespace="SampleWebService" Name="WSCustomer" />
                </Association>
              </MethodInstances>
            </Method>
          </Methods>
        </Entity>
        <Entity Namespace="SampleWebService" Version="1.0.0.0" EstimatedInstanceCount="10000" Name="WSLineItem" DefaultDisplayName="WSLineItem">
          <Identifiers>
            <Identifier TypeName="System.String" Name="OrderID" />
            <Identifier TypeName="System.String" Name="ProductID" />
          </Identifiers>
          <Methods>
            <Method IsStatic="false" Name="GetLineItemByID">
              <Parameters>
                <Parameter Direction="In" Name="ordid">
                  <TypeDescriptor TypeName="System.String" IdentifierName="OrderID" Name="ordid" DefaultDisplayName="OrderID" />
                </Parameter>
                <Parameter Direction="In" Name="prodid">
                  <TypeDescriptor TypeName="System.String" IdentifierName="ProductID" Name="prodid" DefaultDisplayName="ProductID" />
                </Parameter>
                <Parameter Direction="Return" Name="GetLineItemByID">
                  <TypeDescriptor TypeName="BCSServiceProxy.LineItem, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="GetLineItemByID">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.String" ReadOnly="true" IdentifierName="OrderID" Name="OrderID" />
                      <TypeDescriptor TypeName="System.String" ReadOnly="true" IdentifierName="ProductID" Name="ProductID" />
                      <TypeDescriptor TypeName="System.String" Name="ProductName" />
                      <TypeDescriptor TypeName="System.Int32" Name="OrderQty" />
                      <TypeDescriptor TypeName="System.Decimal" Name="UnitPrice">
                        <Properties>
                          <Property Name="Decimal Digits" Type="System.Int32">4</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Decimal" Name="LineTotal">
                        <Properties>
                          <Property Name="Decimal Digits" Type="System.Int32">4</Property>
                        </Properties>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <MethodInstance Type="SpecificFinder" ReturnParameterName="GetLineItemByID" Default="true" Name="GetLineItemByID" DefaultDisplayName="Read Item WSLineItem">
                  <Properties>
                    <Property Name="LastDesignedOfficeItemType" Type="System.String">None</Property>
                  </Properties>
                </MethodInstance>
              </MethodInstances>
            </Method>
            <Method IsStatic="false" Name="GetLineItems">
              <Parameters>
                <Parameter Direction="Return" Name="GetLineItems">
                  <TypeDescriptor TypeName="BCSServiceProxy.LineItem[], http://air-mail/WSOrders2010/service.asmx?wsdl" IsCollection="true" Name="GetLineItems">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="BCSServiceProxy.LineItem, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="GetLineItemsElement">
                        <TypeDescriptors>
                          <TypeDescriptor TypeName="System.String" ReadOnly="true" IdentifierName="OrderID" Name="OrderID" />
                          <TypeDescriptor TypeName="System.String" ReadOnly="true" IdentifierName="ProductID" Name="ProductID" />
                          <TypeDescriptor TypeName="System.String" Name="ProductName">
                            <Properties>
                              <Property Name="ShowInPicker" Type="System.Boolean">true</Property>
                            </Properties>
                          </TypeDescriptor>
                          <TypeDescriptor TypeName="System.Int32" Name="OrderQty" />
                          <TypeDescriptor TypeName="System.Decimal" Name="UnitPrice">
                            <Properties>
                              <Property Name="Decimal Digits" Type="System.Int32">4</Property>
                            </Properties>
                          </TypeDescriptor>
                          <TypeDescriptor TypeName="System.Decimal" Name="LineTotal">
                            <Properties>
                              <Property Name="Decimal Digits" Type="System.Int32">4</Property>
                            </Properties>
                          </TypeDescriptor>
                        </TypeDescriptors>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <MethodInstance Type="Finder" ReturnParameterName="GetLineItems" Default="true" Name="GetLineItems" DefaultDisplayName="WSLineItem Read List">
                  <Properties>
                    <Property Name="UseClientCachingForSearch" Type="System.String"></Property>
                    <Property Name="RootFinder" Type="System.String"></Property>
                  </Properties>
                </MethodInstance>
              </MethodInstances>
            </Method>
          </Methods>
        </Entity>
        <Entity Namespace="SampleWebService" Version="1.1.0.0" EstimatedInstanceCount="10000" Name="WSRegion" DefaultDisplayName="WSRegion">
          <Identifiers>
            <Identifier TypeName="System.String" Name="RegionID" />
          </Identifiers>
          <Methods>
            <Method IsStatic="false" Name="GetRegionByID">
              <Parameters>
                <Parameter Direction="In" Name="id">
                  <TypeDescriptor TypeName="System.String" IdentifierName="RegionID" Name="id" DefaultDisplayName="RegionID" />
                </Parameter>
                <Parameter Direction="Return" Name="GetRegionByID">
                  <TypeDescriptor TypeName="BCSServiceProxy.Region, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="GetRegionByID">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.String" ReadOnly="true" IdentifierName="RegionID" Name="RegionID" />
                      <TypeDescriptor TypeName="System.String" Name="Name" />
                      <TypeDescriptor TypeName="System.String" Name="Group" />
                      <TypeDescriptor TypeName="System.Decimal" Name="SalesLastYear">
                        <Properties>
                          <Property Name="Decimal Digits" Type="System.Int32">4</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Decimal" Name="SalesYTD">
                        <Properties>
                          <Property Name="Decimal Digits" Type="System.Int32">4</Property>
                        </Properties>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <MethodInstance Type="SpecificFinder" ReturnParameterName="GetRegionByID" Default="true" Name="GetRegionByID" DefaultDisplayName="Read Item WSRegion">
                  <Properties>
                    <Property Name="LastDesignedOfficeItemType" Type="System.String">None</Property>
                  </Properties>
                </MethodInstance>
              </MethodInstances>
            </Method>
            <Method IsStatic="false" Name="GetRegions">
              <FilterDescriptors>
                <FilterDescriptor Type="Wildcard" FilterField="Name" Name="WFilter">
                  <Properties>
                    <Property Name="UsedForDisambiguation" Type="System.Boolean">false</Property>
                    <Property Name="IsDefault" Type="System.Boolean">false</Property>
                    <Property Name="CaseSensitive" Type="System.Boolean">false</Property>
                  </Properties>
                </FilterDescriptor>
              </FilterDescriptors>
              <Parameters>
                <Parameter Direction="In" Name="name">
                  <TypeDescriptor TypeName="System.String" AssociatedFilter="WFilter" Name="name" />
                </Parameter>
                <Parameter Direction="Return" Name="GetRegions">
                  <TypeDescriptor TypeName="BCSServiceProxy.Region[], http://air-mail/WSOrders2010/service.asmx?wsdl" IsCollection="true" Name="GetRegions">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="BCSServiceProxy.Region, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="GetRegionsElement">
                        <TypeDescriptors>
                          <TypeDescriptor TypeName="System.String" ReadOnly="true" IdentifierName="RegionID" Name="RegionID" />
                          <TypeDescriptor TypeName="System.String" Name="Name">
                            <Properties>
                              <Property Name="ShowInPicker" Type="System.Boolean">true</Property>
                            </Properties>
                          </TypeDescriptor>
                          <TypeDescriptor TypeName="System.String" Name="Group" />
                          <TypeDescriptor TypeName="System.Decimal" Name="SalesLastYear">
                            <Properties>
                              <Property Name="Decimal Digits" Type="System.Int32">4</Property>
                            </Properties>
                          </TypeDescriptor>
                          <TypeDescriptor TypeName="System.Decimal" Name="SalesYTD">
                            <Properties>
                              <Property Name="Decimal Digits" Type="System.Int32">4</Property>
                            </Properties>
                          </TypeDescriptor>
                        </TypeDescriptors>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <MethodInstance Type="Finder" ReturnParameterName="GetRegions" Default="true" Name="GetRegions" DefaultDisplayName="WSRegion Read List">
                  <Properties>
                    <Property Name="UseClientCachingForSearch" Type="System.String"></Property>
                    <Property Name="RootFinder" Type="System.String"></Property>
                  </Properties>
                </MethodInstance>
              </MethodInstances>
            </Method>
          </Methods>
        </Entity>
        <Entity Namespace="SampleWebService" Version="1.2.0.0" EstimatedInstanceCount="10000" Name="WSOrder" DefaultDisplayName="WSOrder">
          <Properties>
            <Property Name="OutlookItemType" Type="System.String">Task</Property>
          </Properties>
          <Identifiers>
            <Identifier TypeName="System.String" Name="OrderID" />
          </Identifiers>
          <Methods>
            <Method IsStatic="false" Name="GetOrderByID">
              <Parameters>
                <Parameter Direction="In" Name="id">
                  <TypeDescriptor TypeName="System.String" IdentifierName="OrderID" Name="id" DefaultDisplayName="OrderID" />
                </Parameter>
                <Parameter Direction="Return" Name="GetOrderByID">
                  <TypeDescriptor TypeName="BCSServiceProxy.Order, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="GetOrderByID">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.String" ReadOnly="true" IdentifierName="OrderID" Name="OrderID" />
                      <TypeDescriptor TypeName="System.String" IdentifierName="CustomerID" IdentifierEntityName="WSCustomer" IdentifierEntityNamespace="SampleWebService" ForeignIdentifierAssociationName="GetOrdersForCustomer" Name="CustomerID" />
                      <TypeDescriptor TypeName="System.String" Name="RegionID" />
                      <TypeDescriptor TypeName="System.String" Name="CurrencyCode" />
                      <TypeDescriptor TypeName="System.Decimal" Name="SubTotal">
                        <Properties>
                          <Property Name="Decimal Digits" Type="System.Int32">4</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="OrderDate">
                        <Properties>
                          <Property Name="OfficeProperty" Type="System.String">Subject</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="ShipDate" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <MethodInstance Type="SpecificFinder" ReturnParameterName="GetOrderByID" Default="true" Name="GetOrderByID" DefaultDisplayName="Read Item WSOrder">
                  <Properties>
                    <Property Name="LastDesignedOfficeItemType" Type="System.String">Task</Property>
                  </Properties>
                </MethodInstance>
              </MethodInstances>
            </Method>
            <Method IsStatic="false" Name="GetOrders">
              <Parameters>
                <Parameter Direction="Return" Name="GetOrders">
                  <TypeDescriptor TypeName="BCSServiceProxy.Order[], http://air-mail/WSOrders2010/service.asmx?wsdl" IsCollection="true" Name="GetOrders">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="BCSServiceProxy.Order, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="GetOrdersElement">
                        <TypeDescriptors>
                          <TypeDescriptor TypeName="System.String" ReadOnly="true" IdentifierName="OrderID" Name="OrderID" />
                          <TypeDescriptor TypeName="System.String" IdentifierName="CustomerID" IdentifierEntityName="WSCustomer" IdentifierEntityNamespace="SampleWebService" ForeignIdentifierAssociationName="GetOrdersForCustomer" Name="CustomerID" />
                          <TypeDescriptor TypeName="System.String" Name="RegionID" />
                          <TypeDescriptor TypeName="System.String" Name="CurrencyCode" />
                          <TypeDescriptor TypeName="System.Decimal" Name="SubTotal">
                            <Properties>
                              <Property Name="Decimal Digits" Type="System.Int32">4</Property>
                            </Properties>
                          </TypeDescriptor>
                          <TypeDescriptor TypeName="System.String" Name="OrderDate" />
                          <TypeDescriptor TypeName="System.String" Name="ShipDate" />
                        </TypeDescriptors>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <MethodInstance Type="Finder" ReturnParameterName="GetOrders" Default="true" Name="GetOrders" DefaultDisplayName="WSOrder Read List">
                  <Properties>
                    <Property Name="UseClientCachingForSearch" Type="System.String"></Property>
                    <Property Name="RootFinder" Type="System.String"></Property>
                  </Properties>
                </MethodInstance>
              </MethodInstances>
            </Method>
            <Method IsStatic="false" Name="GetOrdersForCustomer">
              <Parameters>
                <Parameter Direction="In" Name="custid">
                  <TypeDescriptor TypeName="System.String" IdentifierName="CustomerID" IdentifierEntityName="WSCustomer" IdentifierEntityNamespace="SampleWebService" ForeignIdentifierAssociationName="GetOrdersForCustomer" Name="custid" />
                </Parameter>
                <Parameter Direction="Return" Name="GetOrdersForCustomer">
                  <TypeDescriptor TypeName="BCSServiceProxy.Order[], http://air-mail/WSOrders2010/service.asmx?wsdl" IsCollection="true" Name="GetOrdersForCustomer">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="BCSServiceProxy.Order, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="GetOrdersForCustomerElement">
                        <TypeDescriptors>
                          <TypeDescriptor TypeName="System.String" ReadOnly="true" IdentifierName="OrderID" Name="OrderID" />
                          <TypeDescriptor TypeName="System.String" IdentifierName="CustomerID" IdentifierEntityName="WSCustomer" IdentifierEntityNamespace="SampleWebService" ForeignIdentifierAssociationName="GetOrdersForCustomer" Name="CustomerID" />
                          <TypeDescriptor TypeName="System.String" Name="RegionID" />
                          <TypeDescriptor TypeName="System.String" Name="CurrencyCode" />
                          <TypeDescriptor TypeName="System.Decimal" Name="SubTotal">
                            <Properties>
                              <Property Name="Decimal Digits" Type="System.Int32">4</Property>
                            </Properties>
                          </TypeDescriptor>
                          <TypeDescriptor TypeName="System.String" Name="OrderDate" />
                          <TypeDescriptor TypeName="System.String" Name="ShipDate" />
                        </TypeDescriptors>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <Association Name="GetOrdersForCustomer" Type="AssociationNavigator" ReturnParameterName="GetOrdersForCustomer" DefaultDisplayName="WSOrder Navigate Association">
                  <Properties>
                    <Property Name="ForeignFieldMappings" Type="System.String">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;ForeignFieldMappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
  &lt;ForeignFieldMappingsList&gt;
    &lt;ForeignFieldMapping ForeignIdentifierName="CustomerID" ForeignIdentifierEntityName="WSCustomer" ForeignIdentifierEntityNamespace="SampleWebService" FieldName="CustomerID" /&gt;
  &lt;/ForeignFieldMappingsList&gt;
&lt;/ForeignFieldMappings&gt;</Property>
                  </Properties>
                  <SourceEntity Namespace="SampleWebService" Name="WSCustomer" />
                  <DestinationEntity Namespace="SampleWebService" Name="WSOrder" />
                </Association>
              </MethodInstances>
            </Method>
            <Method IsStatic="false" Name="GetOrdersForCustomerAndRegion">
              <Parameters>
                <Parameter Direction="In" Name="custid">
                  <TypeDescriptor TypeName="System.String" IdentifierName="CustomerID" IdentifierEntityName="WSCustomer" IdentifierEntityNamespace="SampleWebService" ForeignIdentifierAssociationName="GetOrdersForCustomerAndRegion" Name="custid" />
                </Parameter>
                <Parameter Direction="In" Name="regid">
                  <TypeDescriptor TypeName="System.String" IdentifierName="RegionID" IdentifierEntityName="WSRegion" IdentifierEntityNamespace="SampleWebService" ForeignIdentifierAssociationName="GetOrdersForCustomerAndRegion" Name="regtid" />
                </Parameter>
                <Parameter Direction="Return" Name="GetOrdersForCustomerAndRegion">
                  <TypeDescriptor TypeName="BCSServiceProxy.Order[], http://air-mail/WSOrders2010/service.asmx?wsdl" IsCollection="true" Name="GetOrdersForCustomerAndRegion">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="BCSServiceProxy.Order, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="GetOrdersForCustomerElement">
                        <TypeDescriptors>
                          <TypeDescriptor TypeName="System.String" ReadOnly="true" IdentifierName="OrderID" Name="OrderID" />
                          <TypeDescriptor TypeName="System.String" IdentifierName="CustomerID" IdentifierEntityName="WSCustomer" IdentifierEntityNamespace="SampleWebService" ForeignIdentifierAssociationName="GetOrdersForCustomer" Name="CustomerID" />
                          <TypeDescriptor TypeName="System.String" Name="RegionID" />
                          <TypeDescriptor TypeName="System.String" Name="CurrencyCode" />
                          <TypeDescriptor TypeName="System.Decimal" Name="SubTotal">
                            <Properties>
                              <Property Name="Decimal Digits" Type="System.Int32">4</Property>
                            </Properties>
                          </TypeDescriptor>
                          <TypeDescriptor TypeName="System.String" Name="OrderDate" />
                          <TypeDescriptor TypeName="System.String" Name="ShipDate" />
                        </TypeDescriptors>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <Association Name="GetOrdersForCustomerAndRegion" Type="AssociationNavigator" ReturnParameterName="GetOrdersForCustomerAndRegion" DefaultDisplayName="Orders for Customer and Region Navigate Association">
                  <Properties>
                    <Property Name="ForeignFieldMappings" Type="System.String">
                      &lt;?xml version="1.0" encoding="utf-8"?&gt;
                      &lt;ForeignFieldMappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
                      &lt;ForeignFieldMappingsList&gt;
                      &lt;ForeignFieldMapping ForeignIdentifierName="CustomerID" ForeignIdentifierEntityName="WSCustomer" ForeignIdentifierEntityNamespace="SampleWebService" FieldName="CustomerID" /&gt;
                      &lt;/ForeignFieldMappingsList&gt;
                      &lt;/ForeignFieldMappings&gt;
                    </Property>
                  </Properties>
                  <SourceEntity Namespace="SampleWebService" Name="WSCustomer" />
                  <SourceEntity Namespace="SampleWebService" Name="WSRegion" />
                  <DestinationEntity Namespace="SampleWebService" Name="WSOrder" />
                </Association>
              </MethodInstances>
            </Method>
          </Methods>
          <AssociationGroups>
            <AssociationGroup Name="WSOrder-WSCustomer">
              <AssociationReference AssociationName="GetOrdersForCustomer" Reverse="false" EntityNamespace="SampleWebService" EntityName="WSOrder" />
            </AssociationGroup>
          </AssociationGroups>
        </Entity>
        <Entity Namespace="SampleWebService" Version="1.1.0.0" EstimatedInstanceCount="10000" Name="WSAddress" DefaultDisplayName="WSAddress">
          <Methods>
            <Method IsStatic="false" Name="GetAddresses">
              <Parameters>
                <Parameter Direction="In" Name="id">
                  <TypeDescriptor TypeName="System.String" IdentifierName="CustomerID" Name="id" DefaultDisplayName="CustomerID" />
                </Parameter>
                <Parameter Direction="Return" Name="Addresses">
                      <TypeDescriptor TypeName="BCSServiceProxy.CustomerAddress[], http://air-mail/WSOrders2010/service.asmx?wsdl" IsCollection="true" Name="CustomerAddresses">
                        <TypeDescriptors>
                          <TypeDescriptor TypeName="BCSServiceProxy.CustomerAddress, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="CustomerAddressesElement">
                            <Properties>
                              <Property Name="ComplexFormatting" Type="System.String" />
                              <Property Name="FormatString" Type="System.String">{0}, {1}, {2}, {3} - PostalCode, {4}</Property>
                            </Properties>
                            <TypeDescriptors>
                              <TypeDescriptor TypeName="BCSServiceProxy.CustomerStreet, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="Street">
                                <TypeDescriptors>
                                  <TypeDescriptor TypeName="System.String" Name="BlockNumber" />
                                  <TypeDescriptor TypeName="System.String" Name="Street" />
                                </TypeDescriptors>
                              </TypeDescriptor>
                              <TypeDescriptor TypeName="System.String" Name="City" />
                              <TypeDescriptor TypeName="BCSServiceProxy.States, http://air-mail/WSOrders2010/service.asmx?wsdl" Name="StateProvince" />
                              <TypeDescriptor TypeName="System.String" Name="CountryRegion" />
                              <TypeDescriptor TypeName="System.String" Name="PostalCode" />
                            </TypeDescriptors>
                          </TypeDescriptor>
                        </TypeDescriptors>
                      </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <Association Name="GetAddressesForCustomer" Type="AssociationNavigator" ReturnParameterName="Addresses" DefaultDisplayName="Customer Addresses Navigate Association">
                  <SourceEntity Namespace="SampleWebService" Name="WSCustomer" />
                  <DestinationEntity Namespace="SampleWebService" Name="WSAddress" />
                </Association>
              </MethodInstances>
            </Method>
          </Methods>
        </Entity>
      </Entities>
    </LobSystem>
  </LobSystems>
</Model>