
package com.smartgwt.client.docs;

/**
 * <h3>Platform Dependencies</h3>
 * Client-side processing of web services, XML parsing, and some UI loading mechanisms rely on a native in-browser XML
 * parser and/or the XMLHttpRequest object - one or both of which will not be available if the end user disables ActiveX
 * support in Internet Explorer.  Note that these features do not require plugins or downloads of any kind - IE simply
 * exposes certain built-in functionality like the XML parser and XMLHttpRequest through the ActiveX interface.  Disabling
 * ActiveX also disables all browser plugins such as Flash, Java, SVG, etc. <p> Barring ActiveX being disabled, the
 * XMLHttpRequest object is available to Smart GWT on all supported browsers and an XML parser is available on all
 * supported browsers except Safari versions prior to 3.0.3. <p> Smart GWT client-server communication is not affected by
 * the lack of an XML parser or the XMLHttpRequest object, but the <code>xmlHttpRequest</code> transport will not be
 * available if the XMLHttpRequest object is not available.  Instead, the <code>hiddenFrame</code> or the
 * <code>scriptInclude</code> transports are used for client-server communication. <p> <b><u>XML Parser</u></b> <p> If an
 * XML Parser is not available to Smart GWT, all client-side web service bindings and related methods will be unavailable. 
 * Turning off ActiveX disables integration paths 2 and 3 in the diagram below.  If you want to bind to web services and
 * require deployment to IE without ActiveX (or you need to support Safari pre 3.0.3), you'll need to do all XML processing
 * on the server and use either the Smart GWT DSRequest or JSON operation pathways (integration paths 1 and 4 in the
 * diagram below).  See the discussion in {@link com.smartgwt.client.docs.ClientServerIntegration} for more information on
 * the integration paths shown in the diagram below. <p> You call {@link
 * com.smartgwt.client.data.XMLTools#nativeXMLAvailable XMLTools.nativeXMLAvailable} to check for the availability of a
 * native XML parser at runtime. <p> <img src="${isc.DocViewer.instance.referenceRoot}skin/ds_bindings.png" width=763
 * height=475> <p> <b><u>XMLHttpRequest</u></b> <p> The XMLHttpRequest object is used for the <code>xmlHttpRequest</code>
 * {@link com.smartgwt.client.types.RPCTransport}. Safari, Mozilla, Firefox, and IE 7 provide a native XMLHttpRequest
 * implementation that is not affected by ActiveX being disabled (although the native IE 7 implementation can still be
 * explicitly disabled by the end user).  IE 5.5 and IE 6.0 rely on the ActiveX bridge to support XMLHttpRequest, so if
 * ActiveX is disabled in these browsers, XMLHttpRequest will not be available. <p> The lack of the XMLHttpRequest objects
 * affects UI loading features like {@link com.smartgwt.client.widgets.ViewLoader}, and {@link
 * com.smartgwt.client.widgets.HTMLFlow} when used in remote loading mode (via {@link
 * com.smartgwt.client.widgets.HTMLFlow#getContentsURL contentsURL}, {@link
 * com.smartgwt.client.widgets.HTMLFlow#setContentsURL HTMLFlow.setContentsURL}, but does not affect the typical
 * client/server communication pathways (integration paths 1 and 5 in the diagram above). <p> Also affected are low level
 * features {@link com.smartgwt.client.rpc.RPCRequest#getServerOutputAsString serverOutputAsString}, {@link
 * com.smartgwt.client.rpc.RPCRequest#getEvalResult evalResult}, and {@link
 * com.smartgwt.client.rpc.RPCResponse#getHttpResponseCode httpResponseCode}. <p> In all of the above cases, it is possible
 * to use the <code>hiddenFrame</code> transport to support these features when XMLHttpRequest is not available.  Smart GWT
 * will automatically send the request using the <code>hiddenFrame</code> transport when it detects that XMLHttpRequest is
 * unavailable.  To support the above features, you'll need to use the RPCManager APIs on the server to send back the data
 * that would normally be returned by XMLHttpRequest.  Since XMLHttpRequest cannot target URLs outside of the current
 * domain, this strategy applies also to using the above features with cross-domain URLs. <p> You can call {@link
 * com.smartgwt.client.rpc.RPCManager#xmlHttpRequestAvailable RPCManager.xmlHttpRequestAvailable} to check for the
 * availability of XMLHttpRequest at runtime.
 */
public interface PlatformDependencies {
}
