{ "type": "class",
  "qname": "mx.rpc.soap.SOAPEncoder",
  "baseClassname": "mx.rpc.xml.XMLEncoder"
  ,
    "description": "A SOAPEncoder is used to create SOAP 1.1 formatted requests for a web service operation. A WSDLOperation provides the definition of how SOAP request should be formatted and thus must be set before a call is made to encode().  TODO: Create a SOAP 1.2 specific subclass of this encoder.",
  "tags": [
  {  "tagName": "private",
         "values": []}  ],
  "members": [
  { "type": "method",
        "qname": "mx.rpc.soap.SOAPEncoder",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "return": "",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "ignoreWhitespace",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Determines whether the encoder should ignore whitespace when constructing an XML representation of a SOAP request. The default is <code>true</code> and thus whitespace is not preserved. If an XML Schema type definition specifies a <code>whiteSpace</code> restriction set to <code>preserve</code> then ignoreWhitespace must first be set to false. Conversely, if a type <code>whiteSpace</code> restriction is set to <code>replace</code> or <code>collapse</code> then that setting will be honored even if ignoreWhitespace is set to false.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "mx.rpc.wsdl.WSDLEncoding",
        "qname": "inputEncoding",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "private",
               "values": []}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "mx.rpc.xml.SchemaConstants",
        "qname": "schemaConstants",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-only",
        "return": "mx.rpc.soap.SOAPConstants",
        "qname": "soapConstants",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "mx.rpc.wsdl.WSDLOperation",
        "qname": "wsdlOperation",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "method",
        "qname": "encodeRequest",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []}  ],
          "return": "XML",
          "params": [{ "name": "args", "type": "*"},
        { "name": "headers", "type": "Array"}]}
      ,
      { "type": "method",
        "qname": "encodeEnvelope",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A SOAP Envelope element is the root element of a SOAP message. It must specify the SOAP namespace.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "XML",
          "params": [{ "name": "args", "type": "*"},
        { "name": "headers", "type": "Array"}]}
      ,
      { "type": "method",
        "qname": "encodeHeaders",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Appends SOAP Header to the SOAP Envelope",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "headers", "type": "Array"},
        { "name": "envelopeXML", "type": "XML"}]}
      ,
      { "type": "method",
        "qname": "encodeHeaderElement",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Appends a header element to top SOAP Header tag",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "header", "type": "Object"},
        { "name": "headersXML", "type": "XML"}]}
      ,
      { "type": "method",
        "qname": "encodeBody",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Encodes the SOAP Body. Currently assumes only one operation sub-element.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "inputParams", "type": "*"},
        { "name": "envelopeXML", "type": "XML"}]}
      ,
      { "type": "method",
        "qname": "encodeOperationAsDocumentLiteral",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Encodes a WSDL operation using document literal format. There's no need to generate an operation element so advance directly to encoding the message. <p> From the WSDL 1.1 specification: </p> <p> &quot;If <code>use</code> is <b>literal</b>, then each part references a concrete schema definition using either the <code>element</code> or <code>type</code> attribute. In the first case, the element referenced by the part will appear directly under the Body element (for document style bindings)... In the second, the type referenced by the part becomes the schema type of the enclosing element (Body for document style...).&quot; </p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "inputParams", "type": "Object"},
        { "name": "bodyXML", "type": "XML"}]}
      ,
      { "type": "method",
        "qname": "encodeOperationAsRPCLiteral",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Encodes a WSDL operation using RPC literal format. <p> From the WSDL 1.1 specification: </p> <p> &quot;If the operation style is <code>rpc</code> each part is a parameter or a return value and appears inside a wrapper element within the body (following Section 7.1 of the SOAP specification). The wrapper element is named identically to the operation name and its namespace is the value of the namespace attribute. Each message part (parameter) appears under the wrapper, represented by an accessor named identically to the corresponding parameter of the call. Parts are arranged in the same order as the parameters of the call.&quot; </p> <p> &quot;If <code>use</code> is <b>literal</b>, then each part references a concrete schema definition using either the <code>element</code> or <code>type</code> attribute. In the first case, the element referenced by the part will appear ... under an accessor element named after the message part (in rpc style). In the second, the type referenced by the part becomes the schema type of the enclosing element ( ... part accessor element for rpc style).&quot; </p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "inputParams", "type": "Object"},
        { "name": "bodyXML", "type": "XML"}]}
      ,
      { "type": "method",
        "qname": "encodeOperationAsRPCEncoded",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Encodes a WSDL message part using RPC encoded format. <p> From the WSDL 1.1 specification: </p> <p> &quot;If the operation style is <code>rpc</code> each part is a parameter or a return value and appears inside a wrapper element within the body (following Section 7.1 of the SOAP specification). The wrapper element is named identically to the operation name and its namespace is the value of the namespace attribute. Each message part (parameter) appears under the wrapper, represented by an accessor named identically to the corresponding parameter of the call. Parts are arranged in the same order as the parameters of the call.&quot; </p> <p> &quot;If <code>use</code> is <b>encoded</b>, then each message part references an abstract type using the <code>type</code> attribute. These abstract types are used to produce a concrete message by applying an encoding specified by the <code>encodingStyle</code> attribute. The part names, types and value of the namespace attribute are all inputs to the encoding, although the namespace attribute only applies to content not explicitly defined by the abstract types. If the referenced encoding style allows variations in it's format (such as the SOAP encoding does), then all variations MUST be supported (&quot;reader makes right&quot;).&quot; </p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "inputParams", "type": "*"},
        { "name": "bodyXML", "type": "XML"}]}
      ,
      { "type": "method",
        "qname": "encodeMessage",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Encodes an input message for a WSDL operation. The provided input parameters are validated against the required message parts.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "inputParams", "type": "*"},
        { "name": "operationXML", "type": "XML"}]}
      ,
      { "type": "method",
        "qname": "encodePartValue",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A WSDL message part may either refer to an XML Schema type (that is, a &lt;complexType&gt; or &lt;simpleType&gt;) directly by QName or to an element definition by QName depending on the SOAP use and encodingStyle attributes.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "XMLList",
          "params": [{ "name": "part", "type": "mx.rpc.wsdl.WSDLMessagePart"},
        { "name": "value", "type": "*"}]}
      ,
      { "type": "method",
        "qname": "preEncodedCheck",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Looks to see whether a pre-encoded SOAP request has been passed to the encoder.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Object",
          "params": [{ "name": "value", "type": "*"}]}
      ,
      { "type": "method",
        "qname": "encode",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "SOAP specific override to handle special wrapped-style document-literal parameters which can specify minOccurs and maxOccurs attributes on local element definitions that are, for all intents and purposes, really top-level element definitions representing operation parts. XML Schema does not normally allow minOccurs or maxOccurs on top-level element definitions and the SchemaProcessor is not looking out for them so we have to special case this situation here.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "XMLList",
          "params": [{ "name": "value", "type": "*"},
        { "name": "name", "type": "QName"},
        { "name": "type", "type": "QName"},
        { "name": "definition", "type": "XML"}]}
      ]
  }
