////////////////////////////////////////////////////////////////////////////////
//
// ADOBE SYSTEMS INCORPORATED
// Copyright 2007 Adobe Systems Incorporated
// All Rights Reserved.
//
// NOTICE: Adobe permits you to use, modify, and distribute this file
// in accordance with the terms of the license agreement accompanying it.
//
////////////////////////////////////////////////////////////////////////////////
package mx.rpc.soap
{
import mx.rpc.wsdl.WSDLOperation;
import mx.rpc.xml.IXMLDecoder;
import mx.rpc.xml.SchemaConstants;
[ExcludeClass]
/**
* Decodes the SOAP response for a particular operation.
*
*/
public interface ISOAPDecoder extends IXMLDecoder
{
//--------------------------------------------------------------------------
//
// Properties
//
//--------------------------------------------------------------------------
/**
* Determines whether or not a single or empty return value for an output
* message part that is defined as an array should be returned as an array
* containing one (or zero, respectively) elements. This is applicable for
* document/literal "wrapped" web services, where one or more of the elements
* that represent individual message parts in the "wrapper" sequence could
* have the maxOccurs attribute set with a value greater than 1. This is a
* hint that the corresponding part should be treated as an array even if
* the response contains zero or one values for that part. Setting
* forcePartArrays to true will always create an array for parts defined in
* this manner, regardless of the number of values returned. Leaving
* forcePartArrays as false will only create arrays if two or more elements
* are returned.
*/
function get forcePartArrays():Boolean;
function set forcePartArrays(value:Boolean):void;
/**
* Determines whether the decoder should ignore whitespace when processing
* the XML of a SOAP-encoded response. The default should be
* true and thus whitespace not preserved. If an XML Schema
* type definition specifies a whiteSpace restriction set to
* preserve then ignoreWhitespace must first be set to false.
* Conversely, if a type whiteSpace restriction is set to
* replace or collapse then that setting is
* be honored even if ignoreWhitespace is set to false.
*/
function get ignoreWhitespace():Boolean;
function set ignoreWhitespace(value:Boolean):void;
/**
* Determines how the SOAP-encoded XML result is decoded. A value of
* object specifies that the XML is decoded into an
* object structure as specified in the WSDL document. A value of
* xml specifies that the XML is left as XMLNodes. A
* value of e4x specifies that the XML will be accessible
* using ECMAScript for XML (E4X) expressions.
*/
function get resultFormat():String;
function set resultFormat(value:String):void;
/**
* Determines how the SOAP-encoded headers are decoded. A value of
* object specifies that each header XML node is decoded
* into a SOAPHeader object, and its content property is
* an object structure as specified in the WSDL document. A value of
* xml specifies that the XML is left as XMLNodes. A
* value of e4x specifies that the XML should be accessible
* using ECMAScript for XML (E4X) expressions.
*/
function get headerFormat():String;
function set headerFormat(value:String):void;
/**
* Determines the type of the default result object for calls to web services
* that define multiple parts in the output message. A value of "object"
* specifies that the lastResult object will be an Object with named properties
* corresponding to the individual output parts. A value of "array" would
* make the lastResult an array, where part values are pushed in the order
* they occur in the body of the SOAP message. The default value for document-
* literal web services is "object". The default for rpc services is "array".
* The multiplePartsFormat property is applicable only when
* resultFormat="object" and ignored otherwise.
*/
function get multiplePartsFormat():String;
function set multiplePartsFormat(value:String):void;
/**
* A WSDLOperation defines the SOAP binding styles and specifies how to
* decode a SOAP result.
*/
function get wsdlOperation():WSDLOperation;
function set wsdlOperation(value:WSDLOperation):void;
//--------------------------------------------------------------------------
//
// Methods
//
//--------------------------------------------------------------------------
/**
* Decodes a SOAP response into a result and headers.
*/
function decodeResponse(response:*):SOAPResult;
}
}