com.smartgwt.client.data

## Class OperationBinding

- java.lang.Object
- - com.smartgwt.client.core.JsObject
  - - com.smartgwt.client.core.DataClass
    - - com.smartgwt.client.data.OperationBinding

-     public class OperationBinding
      extends DataClass

  An operationBinding tells a DataSource how to execute one of the basic DS operations: fetch, add, update, remove. See `operationBindings`.

- - ### Field Summary

    - ### Fields inherited from class com.smartgwt.client.core.DataClass

      `factoryCreated, factoryProperties`

    - ### Fields inherited from class com.smartgwt.client.core.JsObject

      `jsObj`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `OperationBinding()`
    `OperationBinding(DSOperationType operationType, java.lang.String dataURL)`
    `OperationBinding(JavaScriptObject jsObj)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Boolean` | `getAllowAdvancedCriteria()` This property indicates whether this operation supports AdvancedCriteria.
    `java.lang.String` | `getCallbackParam()` Applies only to dataFormat: "json".
    `DSDataFormat` | `getDataFormat()` Format for response data for this operation.
    `DSProtocol` | `getDataProtocol()` Controls the format in which inputs are sent to the dataURL.
    `RPCTransport` | `getDataTransport()` Transport to use for this operation.
    `java.lang.String` | `getDataURL()` URL to contact to fulfill DSRequests for this operationBinding.
    `java.util.Map` | `getDefaultParams()` HTTP parameters that should be submitted with every DSRequest.
    `ExportFormat` | `getExportAs()` The format in which the data should be exported.
    `java.lang.String[]` | `getExportFields()` The list of field-names to export.
    `java.lang.String` | `getExportFilename()` The name of the file to save the exported data into.
    `boolean` | `getExportResults()` When set, causes the results of the DataSource Operation to be exported to a file, whose name and format are indicated by `exportFilename` and `exportAs` respectively.
    `java.lang.Boolean` | `getInvalidateCache()` If set, every invocation of this operationBinding will invalidate the local cache, forcing a server visit to refresh the data.
    `java.lang.String` | `getLineBreakStyle()` The style of line-breaks to use in the exported output.
    `java.lang.String` | `getOperationId()` Optional operationId if this DataSource supports two or more variants of one of the basic DataSource operations, for instance, a "fetch" that uses full text search and a "fetch" that accepts per-field search criteria.
    `DSOperationType` | `getOperationType()` Which operationType this operationBinding is for.
    `static OperationBinding` | `getOrCreateRef(JavaScriptObject jsObj)`
    `java.lang.Boolean` | `getPreventHTTPCaching()` Configures `preventHTTPCaching` on a per-operationType basis.
    `java.lang.String` | `getRecordName()` For an XML DataSource, tagName of the elements to be used as records.
    `java.lang.String` | `getRecordXPath()` For an XML or JSON DataSource, XPath expression used to retrieve the objects that will become DataSource records.
    `DSRequest` | `getRequestProperties()` Additional properties to pass through to the `DSRequest` created for this operation.
    `DataSource` | `getResponseDataSchema()` Optional schema describing how to extract DataSource records from the XML elements selected.
    `boolean` | `getSpoofResponses()` For a DataSource contacting a `WSDL web service`, setting this flag means the DataSource doesn't actually attempt to contact the server but generates a sample response instead, based on the XML Schema of the response message embedded in the WSDL.
    `boolean` | `getUseFlatFields()` Setting `useFlatFields` on an operationBinding is equivalent to setting `useFlatFields` on all DataSource requests with the same `operationType` as this `operationBinding`.
    `java.lang.Boolean` | `getUseHttpProxy()` Whether to use the `HttpProxy` servlet to send requests described by this operationBinding.
    `java.lang.String` | `getWsOperation()` Name of the web service operation that will be invoked in order to execute this DataSource operation.
    `XmlNamespaces` | `getXmlNamespaces()` Optional object declaring namespace prefixes for use in `recordXPath` and `valueXPath` XPath expressions.
    `void` | `setAllowAdvancedCriteria(java.lang.Boolean allowAdvancedCriteria)` This property indicates whether this operation supports AdvancedCriteria.
    `void` | `setCallbackParam(java.lang.String callbackParam)` Applies only to dataFormat: "json".
    `void` | `setDataFormat(DSDataFormat dataFormat)` Format for response data for this operation.
    `void` | `setDataProtocol(DSProtocol dataProtocol)` Controls the format in which inputs are sent to the dataURL.
    `void` | `setDataTransport(RPCTransport dataTransport)` Transport to use for this operation.
    `void` | `setDataURL(java.lang.String dataURL)` URL to contact to fulfill DSRequests for this operationBinding.
    `void` | `setDefaultParams(java.util.Map defaultParams)` HTTP parameters that should be submitted with every DSRequest.
    `void` | `setExportAs(ExportFormat exportAs)` The format in which the data should be exported.
    `void` | `setExportFields(java.lang.String... exportFields)` The list of field-names to export.
    `void` | `setExportFilename(java.lang.String exportFilename)` The name of the file to save the exported data into.
    `void` | `setExportResults(boolean exportResults)` When set, causes the results of the DataSource Operation to be exported to a file, whose name and format are indicated by `exportFilename` and `exportAs` respectively.
    `void` | `setInvalidateCache(java.lang.Boolean invalidateCache)` If set, every invocation of this operationBinding will invalidate the local cache, forcing a server visit to refresh the data.
    `void` | `setLineBreakStyle(java.lang.String lineBreakStyle)` The style of line-breaks to use in the exported output.
    `void` | `setOperationId(java.lang.String operationId)` Optional operationId if this DataSource supports two or more variants of one of the basic DataSource operations, for instance, a "fetch" that uses full text search and a "fetch" that accepts per-field search criteria.
    `void` | `setOperationType(DSOperationType operationType)` Which operationType this operationBinding is for.
    `void` | `setPreventHTTPCaching(java.lang.Boolean preventHTTPCaching)` Configures `preventHTTPCaching` on a per-operationType basis.
    `void` | `setRecordName(java.lang.String recordName)` For an XML DataSource, tagName of the elements to be used as records.
    `void` | `setRecordXPath(java.lang.String recordXPath)` For an XML or JSON DataSource, XPath expression used to retrieve the objects that will become DataSource records.
    `void` | `setRequestProperties(DSRequest requestProperties)` Additional properties to pass through to the `DSRequest` created for this operation.
    `void` | `setResponseDataSchema(DataSource responseDataSchema)` Optional schema describing how to extract DataSource records from the XML elements selected.
    `void` | `setSpoofResponses(boolean spoofResponses)` For a DataSource contacting a `WSDL web service`, setting this flag means the DataSource doesn't actually attempt to contact the server but generates a sample response instead, based on the XML Schema of the response message embedded in the WSDL.
    `void` | `setUseFlatFields(boolean useFlatFields)` Setting `useFlatFields` on an operationBinding is equivalent to setting `useFlatFields` on all DataSource requests with the same `operationType` as this `operationBinding`.
    `void` | `setUseHttpProxy(java.lang.Boolean useHttpProxy)` Whether to use the `HttpProxy` servlet to send requests described by this operationBinding.
    `void` | `setWsOperation(java.lang.String wsOperation)` Name of the web service operation that will be invoked in order to execute this DataSource operation.
    `void` | `setXmlNamespaces(XmlNamespaces xmlNamespaces)` Optional object declaring namespace prefixes for use in `recordXPath` and `valueXPath` XPath expressions.

    - ### Methods inherited from class com.smartgwt.client.core.DataClass

      `applyFactoryProperties, doAddHandler, fireEvent, getAttribute, getAttributeAsBoolean, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDouble, getAttributeAsDoubleArray, getAttributeAsFloat, getAttributeAsInt, getAttributeAsIntArray, getAttributeAsJavaScriptObject, getAttributeAsLong, getAttributeAsMap, getAttributeAsObject, getAttributeAsRecord, getAttributeAsString, getAttributeAsStringArray, getAttributes, getHandlerCount, isFactoryCreated, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttributeAsJavaObject, setFactoryCreated`

    - ### Methods inherited from class com.smartgwt.client.core.JsObject

      `equals, getJsObj, hashCode, isCreated, setJavaScriptObject, setJsObj`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### OperationBinding

          public OperationBinding()

    - #### OperationBinding

          public OperationBinding(JavaScriptObject jsObj)

    - #### OperationBinding

          public OperationBinding(DSOperationType operationType,
                          java.lang.String dataURL)

  - ### Method Detail

    - #### getOrCreateRef

          public static OperationBinding getOrCreateRef(JavaScriptObject jsObj)

    - #### setAllowAdvancedCriteria

          public void setAllowAdvancedCriteria(java.lang.Boolean allowAdvancedCriteria)

      This property indicates whether this operation supports AdvancedCriteria. This setting overrides `allowAdvancedCriteria` for this operation only. See `DataSource.supportsAdvancedCriteria()` for further information.

      NOTE: If you specify this property in a DataSource descriptor (`.ds.xml` file), it is enforced on the server. This means that if you run a request containing AdvancedCriteria against an OperationBinding that advertises itself as `allowAdvancedCriteria:false`, it will be rejected.

      Note : This is an advanced setting

      Parameters:
        `allowAdvancedCriteria` - Default value is null
      See Also:
        `DataSource.setAllowAdvancedCriteria(java.lang.Boolean)`

    - #### getAllowAdvancedCriteria

          public java.lang.Boolean getAllowAdvancedCriteria()

      This property indicates whether this operation supports AdvancedCriteria. This setting overrides `allowAdvancedCriteria` for this operation only. See `DataSource.supportsAdvancedCriteria()` for further information.

      NOTE: If you specify this property in a DataSource descriptor (`.ds.xml` file), it is enforced on the server. This means that if you run a request containing AdvancedCriteria against an OperationBinding that advertises itself as `allowAdvancedCriteria:false`, it will be rejected.

      Returns:
        Boolean
      See Also:
        `DataSource.getAllowAdvancedCriteria()`

    - #### setCallbackParam

          public void setCallbackParam(java.lang.String callbackParam)

      Applies only to dataFormat: "json". Specifies the name of the query parameter that tells your JSON service what function to call as part of the response for this operation.

      Typically set once for the DataSource as a whole via `callbackParam`.

      Parameters:
        `callbackParam` - Default value is "callback"
      See Also:
        `DataSource.setCallbackParam(java.lang.String)`, `ClientDataIntegration overview and related methods`

    - #### getCallbackParam

          public java.lang.String getCallbackParam()

      Applies only to dataFormat: "json". Specifies the name of the query parameter that tells your JSON service what function to call as part of the response for this operation.

      Typically set once for the DataSource as a whole via `callbackParam`.

      Returns:
        String
      See Also:
        `DataSource.getCallbackParam()`, `ClientDataIntegration overview and related methods`

    - #### setDataFormat

          public void setDataFormat(DSDataFormat dataFormat)

      Format for response data for this operation.

      Typically set once for the DataSource as a whole via `dataFormat`.

      Parameters:
        `dataFormat` - Default value is "iscServer"
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### getDataFormat

          public DSDataFormat getDataFormat()

      Format for response data for this operation.

      Typically set once for the DataSource as a whole via `dataFormat`.

      Returns:
        DSDataFormat
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### setDataProtocol

          public void setDataProtocol(DSProtocol dataProtocol)

      Controls the format in which inputs are sent to the dataURL.

      When a DataSource operation such as fetchData() is invoked on this DataSource or a component bound to this DataSource, the data passed to the operation, if any, will be sent to the `dataURL`. The `dataProtocol` property controls the format in which the data is sent: SOAP message, HTTP GET or POST of parameters, etc.

      The `dataProtocol` property need not be set for a DataSource with a WebService ( `serviceNamespace` is set), in this case, SOAP messaging is used by default.

      Developers may completely bypass the Smart GWT comm system by setting dataProtocol to `"clientCustom"`. In this case Smart GWT will not attempt to send any data to the server after calling `DataSource.transformRequest()`. Instead the developer is expected to implement `transformRequest()` such that it performs the necessary data action outside of Smart GWT, and then calls `DataSource.processResponse()`, passing in the `requestId` and an appropriate set of DSResponse properties to indicate the result of the action.

      NOTE: when `dataFormat` is "iscServer", `dataProtocol` is not consulted. Instead, Smart GWT uses a proprietary wire format to communicate with the Smart GWT server, and the server-side DSRequest and DSResponse objects should be used to access request data and form responses.

      Parameters:
        `dataProtocol` - Default value is "getParams"
      See Also:
        `DSProtocol`, `ClientDataIntegration overview and related methods`

    - #### getDataProtocol

          public DSProtocol getDataProtocol()

      Controls the format in which inputs are sent to the dataURL.

      When a DataSource operation such as fetchData() is invoked on this DataSource or a component bound to this DataSource, the data passed to the operation, if any, will be sent to the `dataURL`. The `dataProtocol` property controls the format in which the data is sent: SOAP message, HTTP GET or POST of parameters, etc.

      The `dataProtocol` property need not be set for a DataSource with a WebService ( `serviceNamespace` is set), in this case, SOAP messaging is used by default.

      Developers may completely bypass the Smart GWT comm system by setting dataProtocol to `"clientCustom"`. In this case Smart GWT will not attempt to send any data to the server after calling `DataSource.transformRequest()`. Instead the developer is expected to implement `transformRequest()` such that it performs the necessary data action outside of Smart GWT, and then calls `DataSource.processResponse()`, passing in the `requestId` and an appropriate set of DSResponse properties to indicate the result of the action.

      NOTE: when `dataFormat` is "iscServer", `dataProtocol` is not consulted. Instead, Smart GWT uses a proprietary wire format to communicate with the Smart GWT server, and the server-side DSRequest and DSResponse objects should be used to access request data and form responses.

      Returns:
        DSProtocol
      See Also:
        `DSProtocol`, `ClientDataIntegration overview and related methods`

    - #### setDataTransport

          public void setDataTransport(RPCTransport dataTransport)

      Transport to use for this operation. Defaults to `dataTransport`, which in turn defaults to `defaultTransport`. This would typically only be set to enable "scriptInclude" transport for contacting `JSON` web services hosted on servers other than the origin server.

      When using the "scriptInclude" transport, be sure to set `callbackParam` or `callbackParam` to match the name of the query parameter name expected by your JSON service provider.

      Parameters:
        `dataTransport` - Default value is RPCManager.defaultTransport
      See Also:
        `RPCTransport`, `DataSource.setCallbackParam(java.lang.String)`, `ClientDataIntegration overview and related methods`

    - #### getDataTransport

          public RPCTransport getDataTransport()

      Transport to use for this operation. Defaults to `dataTransport`, which in turn defaults to `defaultTransport`. This would typically only be set to enable "scriptInclude" transport for contacting `JSON` web services hosted on servers other than the origin server.

      When using the "scriptInclude" transport, be sure to set `callbackParam` or `callbackParam` to match the name of the query parameter name expected by your JSON service provider.

      Returns:
        RPCTransport
      See Also:
        `RPCTransport`, `DataSource.getCallbackParam()`, `ClientDataIntegration overview and related methods`

    - #### setDataURL

          public void setDataURL(java.lang.String dataURL)

      URL to contact to fulfill DSRequests for this operationBinding.

      `dataURL` is typically set as DataSource.dataURL rather than on each individual operationBinding.

      `dataURL` can be omitted for a DataSource using a Web Service (`serviceNamespace` is set).

      Parameters:
        `dataURL` - Default value is null
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### getDataURL

          public java.lang.String getDataURL()

      URL to contact to fulfill DSRequests for this operationBinding.

      `dataURL` is typically set as DataSource.dataURL rather than on each individual operationBinding.

      `dataURL` can be omitted for a DataSource using a Web Service (`serviceNamespace` is set).

      Returns:
        String
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### setDefaultParams

          public void setDefaultParams(java.util.Map defaultParams)

      HTTP parameters that should be submitted with every DSRequest.

      Useful for authenticated services that require a sessionId with every request.

      Can be set for all operations of a given DataSource as DataSource.defaultParams.

      Note : This is an advanced setting

      Parameters:
        `defaultParams` - Default value is null
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### getDefaultParams

          public java.util.Map getDefaultParams()

      HTTP parameters that should be submitted with every DSRequest.

      Useful for authenticated services that require a sessionId with every request.

      Can be set for all operations of a given DataSource as DataSource.defaultParams.

      Returns:
        Map
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### setExportAs

          public void setExportAs(ExportFormat exportAs)

      The format in which the data should be exported. Default is "csv". See `ExportFormat` for more information.
      Parameters:
        `exportAs` - Default value is "csv"

    - #### getExportAs

          public ExportFormat getExportAs()

      The format in which the data should be exported. Default is "csv". See `ExportFormat` for more information.
      Returns:
        ExportFormat

    - #### setExportFields

          public void setExportFields(java.lang.String... exportFields)

      The list of field-names to export. If provided, the field-list in the exported output is limited and sorted as per the list.

      If exportFields is not provided, the exported output includes all visible fields from the DataSource (field.hidden=false), sorted in the order they're defined.

      Parameters:
        `exportFields` - Default value is null

    - #### getExportFields

          public java.lang.String[] getExportFields()

      The list of field-names to export. If provided, the field-list in the exported output is limited and sorted as per the list.

      If exportFields is not provided, the exported output includes all visible fields from the DataSource (field.hidden=false), sorted in the order they're defined.

      Returns:
        String...

    - #### setExportFilename

          public void setExportFilename(java.lang.String exportFilename)

      The name of the file to save the exported data into.
      Parameters:
        `exportFilename` - Default value is null

    - #### getExportFilename

          public java.lang.String getExportFilename()

      The name of the file to save the exported data into.
      Returns:
        String

    - #### setExportResults

          public void setExportResults(boolean exportResults)

      When set, causes the results of the DataSource Operation to be exported to a file, whose name and format are indicated by `exportFilename` and `exportAs` respectively. When no exportFilename is provided, the default is Results and the default value of exportAs is csv. Once the Operation completes, `exportDisplay` specifies whether the exported data will be downloaded to the file-system or displayed in a new window. The default value of exportDisplay is "download" which displays the Save As dialog. See `ExportDisplay` for more information.

      The export field-list can also be configured, see `exportFields`.

      You can also configure the style of line-breaks to use when generating the output. See `LineBreakStyle` for more information.

      As well as setting this and other properties on the `OperationBinding`, Exports can be initiated in two other ways. You can set properties on the dsRequest by passing requestProperties into `DataSource.exportData()`. Note that this method does not support exporting to JSON format (see this post for more detail). Additionally, custom server code may set export-related properties on the `DSResponse`.

      Format Examples

      XML format

                <List>
                    <Object>
                        <id>10101</id>
                        <displayName>Record 10101</displayName>
                    </Object>
               </List>

      JSON Format

                [
                    { id: 10101, displayName: "Record 10101" }
                ]

      CSV Format

                id,displayName
                10101,"Record 10101"

      Parameters:
        `exportResults` - Default value is false

    - #### getExportResults

          public boolean getExportResults()

      When set, causes the results of the DataSource Operation to be exported to a file, whose name and format are indicated by `exportFilename` and `exportAs` respectively. When no exportFilename is provided, the default is Results and the default value of exportAs is csv. Once the Operation completes, `exportDisplay` specifies whether the exported data will be downloaded to the file-system or displayed in a new window. The default value of exportDisplay is "download" which displays the Save As dialog. See `ExportDisplay` for more information.

      The export field-list can also be configured, see `exportFields`.

      You can also configure the style of line-breaks to use when generating the output. See `LineBreakStyle` for more information.

      As well as setting this and other properties on the `OperationBinding`, Exports can be initiated in two other ways. You can set properties on the dsRequest by passing requestProperties into `DataSource.exportData()`. Note that this method does not support exporting to JSON format (see this post for more detail). Additionally, custom server code may set export-related properties on the `DSResponse`.

      Format Examples

      XML format

                <List>
                    <Object>
                        <id>10101</id>
                        <displayName>Record 10101</displayName>
                    </Object>
               </List>

      JSON Format

                [
                    { id: 10101, displayName: "Record 10101" }
                ]

      CSV Format

                id,displayName
                10101,"Record 10101"

      Returns:
        boolean

    - #### setInvalidateCache

          public void setInvalidateCache(java.lang.Boolean invalidateCache)

      If set, every invocation of this operationBinding will invalidate the local cache, forcing a server visit to refresh the data.
      Parameters:
        `invalidateCache` - Default value is null

    - #### getInvalidateCache

          public java.lang.Boolean getInvalidateCache()

      If set, every invocation of this operationBinding will invalidate the local cache, forcing a server visit to refresh the data.
      Returns:
        Boolean

    - #### setLineBreakStyle

          public void setLineBreakStyle(java.lang.String lineBreakStyle)

      The style of line-breaks to use in the exported output. See `LineBreakStyle` for more information.
      Parameters:
        `lineBreakStyle` - Default value is null

    - #### getLineBreakStyle

          public java.lang.String getLineBreakStyle()

      The style of line-breaks to use in the exported output. See `LineBreakStyle` for more information.
      Returns:
        String

    - #### setOperationId

          public void setOperationId(java.lang.String operationId)

      Optional operationId if this DataSource supports two or more variants of one of the basic DataSource operations, for instance, a "fetch" that uses full text search and a "fetch" that accepts per-field search criteria. See `operationId` for usage.
      Parameters:
        `operationId` - Default value is null
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### getOperationId

          public java.lang.String getOperationId()

      Optional operationId if this DataSource supports two or more variants of one of the basic DataSource operations, for instance, a "fetch" that uses full text search and a "fetch" that accepts per-field search criteria. See `operationId` for usage.
      Returns:
        String
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### setOperationType

          public void setOperationType(DSOperationType operationType)

      Which operationType this operationBinding is for. This property is only settable on an operationBinding, not a DataSource as a whole.
      Parameters:
        `operationType` - Default value is null
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### getOperationType

          public DSOperationType getOperationType()

      Which operationType this operationBinding is for. This property is only settable on an operationBinding, not a DataSource as a whole.
      Returns:
        DSOperationType
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### setPreventHTTPCaching

          public void setPreventHTTPCaching(java.lang.Boolean preventHTTPCaching)

      Configures `preventHTTPCaching` on a per-operationType basis.
      Parameters:
        `preventHTTPCaching` - Default value is null

    - #### getPreventHTTPCaching

          public java.lang.Boolean getPreventHTTPCaching()

      Configures `preventHTTPCaching` on a per-operationType basis.
      Returns:
        Boolean

    - #### setRecordName

          public void setRecordName(java.lang.String recordName)

      For an XML DataSource, tagName of the elements to be used as records.

      This is a simple alternative to `recordXPath` when the elements to be used as records all share a tagName.

      When a DataSource has a WebService, `recordName` can also be set to the name of any `complexType` declared within the WebService's WSDL file.

      Parameters:
        `recordName` - Default value is null
      See Also:
        `ClientDataIntegration overview and related methods`, Weather SOAP Search Example

    - #### getRecordName

          public java.lang.String getRecordName()

      For an XML DataSource, tagName of the elements to be used as records.

      This is a simple alternative to `recordXPath` when the elements to be used as records all share a tagName.

      When a DataSource has a WebService, `recordName` can also be set to the name of any `complexType` declared within the WebService's WSDL file.

      Returns:
        String
      See Also:
        `ClientDataIntegration overview and related methods`, Weather SOAP Search Example

    - #### setRecordXPath

          public void setRecordXPath(java.lang.String recordXPath)

      For an XML or JSON DataSource, XPath expression used to retrieve the objects that will become DataSource records.

      For example, an "ItemSearch" web service might return a "Results" structure containing metadata along with the set of Items that one might want to display in a grid. An XPath expression like "/Results/Items" could be used to retrieve just the Items, which would then become DataSource records.

      For a JSON web service, the `recordXPath` is applied to the returned JSON data via `XMLTools.selectObjects()`. Only limited XPath syntax is allowed; see `selectObjects()` for details.

      For processing XML results, see `xmlNamespaces` for information on the namespaces that are available in this XPath expression. If you are contacting a WSDL web service, note that `recordName` is an alternative way to specify which records should be selected by their tagName or type, and this is usually simpler.

      To learn about XPath, try the following search: http://www.google.com/search?q=xpath+tutorial

      Parameters:
        `recordXPath` - See `XPathExpression` . Default value is null
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### getRecordXPath

          public java.lang.String getRecordXPath()

      For an XML or JSON DataSource, XPath expression used to retrieve the objects that will become DataSource records.

      For example, an "ItemSearch" web service might return a "Results" structure containing metadata along with the set of Items that one might want to display in a grid. An XPath expression like "/Results/Items" could be used to retrieve just the Items, which would then become DataSource records.

      For a JSON web service, the `recordXPath` is applied to the returned JSON data via `XMLTools.selectObjects()`. Only limited XPath syntax is allowed; see `selectObjects()` for details.

      For processing XML results, see `xmlNamespaces` for information on the namespaces that are available in this XPath expression. If you are contacting a WSDL web service, note that `recordName` is an alternative way to specify which records should be selected by their tagName or type, and this is usually simpler.

      To learn about XPath, try the following search: http://www.google.com/search?q=xpath+tutorial

      Returns:
        See `XPathExpression`
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### setRequestProperties

          public void setRequestProperties(DSRequest requestProperties)

      Additional properties to pass through to the `DSRequest` created for this operation. Note that these will be cumulative with and will override on a per-property basis any properties set via `requestProperties`.

      These properties are applied before `DataSource.transformRequest()` is called.

      Parameters:
        `requestProperties` - Default value is null
      See Also:
        `DSRequest`, `DataSource.setRequestProperties(com.smartgwt.client.data.DSRequest)`, `ClientDataIntegration overview and related methods`

    - #### getRequestProperties

          public DSRequest getRequestProperties()

      Additional properties to pass through to the `DSRequest` created for this operation. Note that these will be cumulative with and will override on a per-property basis any properties set via `requestProperties`.

      These properties are applied before `DataSource.transformRequest()` is called.

      Returns:
        DSRequest
      See Also:
        `DSRequest`, `DataSource.getRequestProperties()`, `ClientDataIntegration overview and related methods`

    - #### setResponseDataSchema

          public void setResponseDataSchema(DataSource responseDataSchema)

      Optional schema describing how to extract DataSource records from the XML elements selected.

      Once a set of XML elements have been selected via `recordXPath` or `recordName`, those elements are normally transformed to JavaScript objects using the `fields` of the DataSource that owns the operationBinding. A `responseDataSchema` can be specified instead if the XML differs in some way between different DataSource operations, such that different values for `field.valueXPath` may be necessary to extract the same DataSource record from slightly different XML structures.

      Note : This is an advanced setting

      Parameters:
        `responseDataSchema` - Default value is null
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### getResponseDataSchema

          public DataSource getResponseDataSchema()

      Optional schema describing how to extract DataSource records from the XML elements selected.

      Once a set of XML elements have been selected via `recordXPath` or `recordName`, those elements are normally transformed to JavaScript objects using the `fields` of the DataSource that owns the operationBinding. A `responseDataSchema` can be specified instead if the XML differs in some way between different DataSource operations, such that different values for `field.valueXPath` may be necessary to extract the same DataSource record from slightly different XML structures.

      Returns:
        DataSource
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### setSpoofResponses

          public void setSpoofResponses(boolean spoofResponses)

      For a DataSource contacting a `WSDL web service`, setting this flag means the DataSource doesn't actually attempt to contact the server but generates a sample response instead, based on the XML Schema of the response message embedded in the WSDL.

      The spoofed response will include all complexType elements and will fill in appropriate values by type for all simpleType elements, although the spoofed data will not conform to all xs:restriction declarations (eg xs:pattern).

      Note that if your WSDL does not fully describe the response format (some WSDL services just have a placeholder <xs:any> element), Smart GWT can only produce a partial response. To use a hand-generated sample response, just save an XML file to disk and use the `dataURL` setting to point to it.

      Parameters:
        `spoofResponses` - Default value is false
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### getSpoofResponses

          public boolean getSpoofResponses()

      For a DataSource contacting a `WSDL web service`, setting this flag means the DataSource doesn't actually attempt to contact the server but generates a sample response instead, based on the XML Schema of the response message embedded in the WSDL.

      The spoofed response will include all complexType elements and will fill in appropriate values by type for all simpleType elements, although the spoofed data will not conform to all xs:restriction declarations (eg xs:pattern).

      Note that if your WSDL does not fully describe the response format (some WSDL services just have a placeholder <xs:any> element), Smart GWT can only produce a partial response. To use a hand-generated sample response, just save an XML file to disk and use the `dataURL` setting to point to it.

      Returns:
        boolean
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### setUseFlatFields

          public void setUseFlatFields(boolean useFlatFields)

      Setting `useFlatFields` on an operationBinding is equivalent to setting `useFlatFields` on all DataSource requests with the same `operationType` as this `operationBinding`.

      Typical usage is to combine operationBinding.useFlatFields with `searchForm.useFlatFields`, with the `SearchForm` bound to the `input message` of the web service operation set as `wsOperation`. This allows gratuitous nesting to be consistently bypassed in both the user presentation and in the actual XML messaging.

      Note that `useFlatFields` is not generally recommended for use with input messages where multiple simple type fields exist with the same name, however if used in this way, the first field to use a given name wins. "first" means the first field encountered in a depth first search. "wins" means only the first field will be available in data binding, and only the first field will be populated in the generated XML message.

      Parameters:
        `useFlatFields` - Default value is false
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### getUseFlatFields

          public boolean getUseFlatFields()

      Setting `useFlatFields` on an operationBinding is equivalent to setting `useFlatFields` on all DataSource requests with the same `operationType` as this `operationBinding`.

      Typical usage is to combine operationBinding.useFlatFields with `searchForm.useFlatFields`, with the `SearchForm` bound to the `input message` of the web service operation set as `wsOperation`. This allows gratuitous nesting to be consistently bypassed in both the user presentation and in the actual XML messaging.

      Note that `useFlatFields` is not generally recommended for use with input messages where multiple simple type fields exist with the same name, however if used in this way, the first field to use a given name wins. "first" means the first field encountered in a depth first search. "wins" means only the first field will be available in data binding, and only the first field will be populated in the generated XML message.

      Returns:
        boolean
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### setUseHttpProxy

          public void setUseHttpProxy(java.lang.Boolean useHttpProxy)

      Whether to use the `HttpProxy` servlet to send requests described by this operationBinding. If unset, automatically detects whether using the HttpProxy is necessary based on the same-origin policy.

      Valid only with `dataProtocol` settings other than ISCServer.

      Parameters:
        `useHttpProxy` - Default value is null
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### getUseHttpProxy

          public java.lang.Boolean getUseHttpProxy()

      Whether to use the `HttpProxy` servlet to send requests described by this operationBinding. If unset, automatically detects whether using the HttpProxy is necessary based on the same-origin policy.

      Valid only with `dataProtocol` settings other than ISCServer.

      Returns:
        Boolean
      See Also:
        `ClientDataIntegration overview and related methods`

    - #### setWsOperation

          public void setWsOperation(java.lang.String wsOperation)

      Name of the web service operation that will be invoked in order to execute this DataSource operation.

      Valid only for a DataSource that has a WebService (`serviceNamespace` is set). Otherwise, use `dataURL`.

      Setting `wsOperation` means that `data` will be serialized as the request message for the specified web service operation, with namespacing and soap encoding handled automatically. See `DataSource.transformRequest()` for how to customize what data is sent to the server.

      Parameters:
        `wsOperation` - Default value is null
      See Also:
        `ClientDataIntegration overview and related methods`, Weather SOAP Search Example

    - #### getWsOperation

          public java.lang.String getWsOperation()

      Name of the web service operation that will be invoked in order to execute this DataSource operation.

      Valid only for a DataSource that has a WebService (`serviceNamespace` is set). Otherwise, use `dataURL`.

      Setting `wsOperation` means that `data` will be serialized as the request message for the specified web service operation, with namespacing and soap encoding handled automatically. See `DataSource.transformRequest()` for how to customize what data is sent to the server.

      Returns:
        String
      See Also:
        `ClientDataIntegration overview and related methods`, Weather SOAP Search Example

    - #### setXmlNamespaces

          public void setXmlNamespaces(XmlNamespaces xmlNamespaces)

      Optional object declaring namespace prefixes for use in `recordXPath` and `valueXPath` XPath expressions.

      `xmlNamespaces` should be specified as a mapping from namespace prefix to namespace URI, for example:

               xmlNamespaces : {
                   az : "http://webservices.amazon.com/AWSECommerceService/2005-03-23"
               }

      By default, all namespaces declared on the document element (outermost element of the response) are made available with the prefix used in the document itself.

      Then, for non-WSDL-described XML results, if there is a default namespace on the document element, it is made available with the special prefix "default".

      For results of WSDL-described operations, the prefix "service" means the service namespace, that is, the "targetNamespace" on the <definitions> element from the WSDL file. The prefix "schema" means the namespace of the outermost element in the output message for the current operation. "default" will be the schema namespace if there is one, otherwise the service namespace.

      For basic information on XML Namespaces and their use in XPath, try the following search: http://www.google.com/search?q=XPath+xml+namespaces

      Parameters:
        `xmlNamespaces` - Default value is null
      See Also:
        `ClientDataIntegration overview and related methods`, Yahoo! XML Services Example

    - #### getXmlNamespaces

          public XmlNamespaces getXmlNamespaces()

      Optional object declaring namespace prefixes for use in `recordXPath` and `valueXPath` XPath expressions.

      `xmlNamespaces` should be specified as a mapping from namespace prefix to namespace URI, for example:

               xmlNamespaces : {
                   az : "http://webservices.amazon.com/AWSECommerceService/2005-03-23"
               }

      By default, all namespaces declared on the document element (outermost element of the response) are made available with the prefix used in the document itself.

      Then, for non-WSDL-described XML results, if there is a default namespace on the document element, it is made available with the special prefix "default".

      For results of WSDL-described operations, the prefix "service" means the service namespace, that is, the "targetNamespace" on the <definitions> element from the WSDL file. The prefix "schema" means the namespace of the outermost element in the output message for the current operation. "default" will be the schema namespace if there is one, otherwise the service namespace.

      For basic information on XML Namespaces and their use in XPath, try the following search: http://www.google.com/search?q=XPath+xml+namespaces

      Returns:
        XmlNamespaces
      See Also:
        `ClientDataIntegration overview and related methods`, Yahoo! XML Services Example