From 817b1d3d66935628a17d378b3165bc1826803498 Mon Sep 17 00:00:00 2001 From: "rayw%netscape.com" Date: Tue, 19 Mar 2002 00:08:15 +0000 Subject: [PATCH] Lots of fixes and new files in the documentation and tests for SOAP. None of these are part of any build. --- .../docs/Soap_Scripts_in_Mozilla.html | 2771 +++++++++-------- .../webservices/soap/tests/soapcall.html | 121 +- .../webservices/soap/tests/soapelements.html | 157 +- .../soap/tests/soapelementsproxy.js | 168 + .../soap/tests/soapheadlinenews.html | 116 +- .../soap/tests/soapisprimenumber.html | 93 +- .../soap/tests/soapisprimeproxy.js | 37 + .../webservices/soap/tests/soapproxy.js | 123 + .../soap/tests/soapstatistics.html | 106 +- .../soap/tests/soapunscramble.html | 139 +- .../soap/tests/soapunscrambleproxy.js | 58 + .../docs/Soap_Scripts_in_Mozilla.html | 2771 +++++++++-------- extensions/xmlextras/docs/soap/SOAPAPIs.txt | 921 ++++++ .../xmlextras/docs/soap/html/annotated.html | 29 + .../xmlextras/docs/soap/html/doxygen.css | 49 + .../xmlextras/docs/soap/html/doxygen.gif | Bin 0 -> 2378 bytes .../xmlextras/docs/soap/html/files.html | 29 + .../xmlextras/docs/soap/html/functions.html | 67 + .../xmlextras/docs/soap/html/hierarchy.html | 33 + .../xmlextras/docs/soap/html/index.html | 17 + .../interfacensISOAPAttachments-members.html | 18 + .../html/interfacensISOAPAttachments.html | 97 + .../html/interfacensISOAPBlock-members.html | 23 + .../docs/soap/html/interfacensISOAPBlock.gif | Bin 0 -> 1150 bytes .../docs/soap/html/interfacensISOAPBlock.html | 221 ++ .../html/interfacensISOAPCall-members.html | 35 + .../docs/soap/html/interfacensISOAPCall.gif | Bin 0 -> 675 bytes .../docs/soap/html/interfacensISOAPCall.html | 567 ++++ ...nterfacensISOAPCallCompletion-members.html | 21 + .../html/interfacensISOAPCallCompletion.html | 149 + .../html/interfacensISOAPDecoder-members.html | 17 + .../soap/html/interfacensISOAPDecoder.html | 91 + .../html/interfacensISOAPEncoder-members.html | 17 + .../soap/html/interfacensISOAPEncoder.html | 119 + .../interfacensISOAPEncoding-members.html | 31 + .../soap/html/interfacensISOAPEncoding.html | 656 ++++ .../html/interfacensISOAPFault-members.html | 22 + .../docs/soap/html/interfacensISOAPFault.html | 162 + .../interfacensISOAPHeaderBlock-members.html | 25 + .../soap/html/interfacensISOAPHeaderBlock.gif | Bin 0 -> 726 bytes .../html/interfacensISOAPHeaderBlock.html | 262 ++ .../html/interfacensISOAPMessage-members.html | 31 + .../soap/html/interfacensISOAPMessage.gif | Bin 0 -> 1074 bytes .../soap/html/interfacensISOAPMessage.html | 443 +++ .../interfacensISOAPParameter-members.html | 23 + .../soap/html/interfacensISOAPParameter.gif | Bin 0 -> 696 bytes .../soap/html/interfacensISOAPParameter.html | 216 ++ ...facensISOAPPropertyBagMutator-members.html | 18 + .../interfacensISOAPPropertyBagMutator.html | 98 + .../interfacensISOAPResponse-members.html | 32 + .../soap/html/interfacensISOAPResponse.gif | Bin 0 -> 710 bytes .../soap/html/interfacensISOAPResponse.html | 465 +++ ...erfacensISOAPResponseListener-members.html | 17 + .../interfacensISOAPResponseListener.html | 85 + .../html/interfacensISOAPService-members.html | 18 + .../soap/html/interfacensISOAPService.html | 100 + ...terfacensISOAPServiceRegistry-members.html | 20 + .../html/interfacensISOAPServiceRegistry.html | 170 + ...rfacensISOAPTransportListener-members.html | 17 + .../interfacensISOAPTransportListener.html | 75 + .../html/nsISOAPAttachments_8idl-source.html | 63 + .../soap/html/nsISOAPBlock_8idl-source.html | 78 + .../nsISOAPCallCompletion_8idl-source.html | 69 + .../soap/html/nsISOAPCall_8idl-source.html | 80 + .../soap/html/nsISOAPDecoder_8idl-source.html | 69 + .../soap/html/nsISOAPEncoder_8idl-source.html | 72 + .../html/nsISOAPEncoding_8idl-source.html | 130 + .../soap/html/nsISOAPFault_8idl-source.html | 84 + .../html/nsISOAPHeaderBlock_8idl-source.html | 75 + .../soap/html/nsISOAPMessage_8idl-source.html | 106 + .../html/nsISOAPParameter_8idl-source.html | 72 + ...nsISOAPPropertyBagMutator_8idl-source.html | 72 + .../nsISOAPResponseListener_8idl-source.html | 65 + .../html/nsISOAPResponse_8idl-source.html | 72 + .../nsISOAPServiceRegistry_8idl-source.html | 84 + .../soap/html/nsISOAPService_8idl-source.html | 74 + .../nsISOAPTransportListener_8idl-source.html | 64 + .../html/nsISOAPTransport_8idl-source.html | 82 + extensions/xmlextras/tests/soapcall.html | 121 +- extensions/xmlextras/tests/soapelements.html | 157 +- .../xmlextras/tests/soapelementsproxy.js | 168 + .../xmlextras/tests/soapheadlinenews.html | 116 +- .../xmlextras/tests/soapisprimenumber.html | 93 +- .../xmlextras/tests/soapisprimeproxy.js | 37 + extensions/xmlextras/tests/soapproxy.js | 123 + .../xmlextras/tests/soapstatistics.html | 106 +- .../xmlextras/tests/soapunscramble.html | 139 +- .../xmlextras/tests/soapunscrambleproxy.js | 58 + 88 files changed, 11137 insertions(+), 3558 deletions(-) create mode 100644 extensions/webservices/soap/tests/soapelementsproxy.js create mode 100644 extensions/webservices/soap/tests/soapisprimeproxy.js create mode 100644 extensions/webservices/soap/tests/soapproxy.js create mode 100644 extensions/webservices/soap/tests/soapunscrambleproxy.js create mode 100644 extensions/xmlextras/docs/soap/SOAPAPIs.txt create mode 100644 extensions/xmlextras/docs/soap/html/annotated.html create mode 100644 extensions/xmlextras/docs/soap/html/doxygen.css create mode 100644 extensions/xmlextras/docs/soap/html/doxygen.gif create mode 100644 extensions/xmlextras/docs/soap/html/files.html create mode 100644 extensions/xmlextras/docs/soap/html/functions.html create mode 100644 extensions/xmlextras/docs/soap/html/hierarchy.html create mode 100644 extensions/xmlextras/docs/soap/html/index.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPAttachments-members.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPAttachments.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPBlock-members.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPBlock.gif create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPBlock.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPCall-members.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPCall.gif create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPCall.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPCallCompletion-members.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPCallCompletion.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPDecoder-members.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPDecoder.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPEncoder-members.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPEncoder.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPEncoding-members.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPEncoding.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPFault-members.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPFault.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPHeaderBlock-members.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPHeaderBlock.gif create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPHeaderBlock.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPMessage-members.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPMessage.gif create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPMessage.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPParameter-members.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPParameter.gif create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPParameter.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPPropertyBagMutator-members.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPPropertyBagMutator.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPResponse-members.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPResponse.gif create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPResponse.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPResponseListener-members.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPResponseListener.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPService-members.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPService.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPServiceRegistry-members.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPServiceRegistry.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPTransportListener-members.html create mode 100644 extensions/xmlextras/docs/soap/html/interfacensISOAPTransportListener.html create mode 100644 extensions/xmlextras/docs/soap/html/nsISOAPAttachments_8idl-source.html create mode 100644 extensions/xmlextras/docs/soap/html/nsISOAPBlock_8idl-source.html create mode 100644 extensions/xmlextras/docs/soap/html/nsISOAPCallCompletion_8idl-source.html create mode 100644 extensions/xmlextras/docs/soap/html/nsISOAPCall_8idl-source.html create mode 100644 extensions/xmlextras/docs/soap/html/nsISOAPDecoder_8idl-source.html create mode 100644 extensions/xmlextras/docs/soap/html/nsISOAPEncoder_8idl-source.html create mode 100644 extensions/xmlextras/docs/soap/html/nsISOAPEncoding_8idl-source.html create mode 100644 extensions/xmlextras/docs/soap/html/nsISOAPFault_8idl-source.html create mode 100644 extensions/xmlextras/docs/soap/html/nsISOAPHeaderBlock_8idl-source.html create mode 100644 extensions/xmlextras/docs/soap/html/nsISOAPMessage_8idl-source.html create mode 100644 extensions/xmlextras/docs/soap/html/nsISOAPParameter_8idl-source.html create mode 100644 extensions/xmlextras/docs/soap/html/nsISOAPPropertyBagMutator_8idl-source.html create mode 100644 extensions/xmlextras/docs/soap/html/nsISOAPResponseListener_8idl-source.html create mode 100644 extensions/xmlextras/docs/soap/html/nsISOAPResponse_8idl-source.html create mode 100644 extensions/xmlextras/docs/soap/html/nsISOAPServiceRegistry_8idl-source.html create mode 100644 extensions/xmlextras/docs/soap/html/nsISOAPService_8idl-source.html create mode 100644 extensions/xmlextras/docs/soap/html/nsISOAPTransportListener_8idl-source.html create mode 100644 extensions/xmlextras/docs/soap/html/nsISOAPTransport_8idl-source.html create mode 100644 extensions/xmlextras/tests/soapelementsproxy.js create mode 100644 extensions/xmlextras/tests/soapisprimeproxy.js create mode 100644 extensions/xmlextras/tests/soapproxy.js create mode 100644 extensions/xmlextras/tests/soapunscrambleproxy.js diff --git a/extensions/webservices/docs/Soap_Scripts_in_Mozilla.html b/extensions/webservices/docs/Soap_Scripts_in_Mozilla.html index 0a37dbccf354..dba1e70b7986 100644 --- a/extensions/webservices/docs/Soap_Scripts_in_Mozilla.html +++ b/extensions/webservices/docs/Soap_Scripts_in_Mozilla.html @@ -1,1367 +1,1438 @@ - + Soap Scripts in Mozilla - -
+ +

SOAP Scripts in Mozilla

- February 16, 2002
- + February 16, 2002
+

Ray Whitmer

- +

Abstract

- -
Microsoft and others have advocated - SOAP as a way to encode and exchange public data structures between agents - on the web, which is now becoming a web standard at W3C (see the multiple - submissions and working documents related to SOAP in the list of - W3C current drafts - ). 
-
- The browser client is the most universal web agent in existence, and - Javascript is the standard, interoperable way of scripting browsers.  - Scriptable SOAP in browsers gives clients and servers more to say to -each other through existing http-xml request services, providing scripts - with persistence, database, and access to other web services not tied -to the request and response cycles of the HTML-based user interface.  - Web data structures, exchanged in a platform-neutral way, should become -as fundamental to web agents as web content is today.  The key to this -is a very natural binding to the data of Javascript so that the script can -simply use the data instead of tediously encoding and extracting the data + +
Microsoft and others have advocated + SOAP as a way to encode and exchange public data structures between + agents on the web, which is now becoming a web standard at W3C (see +the multiple submissions and working documents related to SOAP in the list +of W3C current drafts + ). 
+
+ The browser client is the most universal web agent in existence, + and Javascript is the standard, interoperable way of scripting browsers.  + Scriptable SOAP in browsers gives clients and servers more to say to +each other through existing http-xml request services, providing scripts + with persistence, database, and access to other web services not tied to + the request and response cycles of the HTML-based user interface.  + Web data structures, exchanged in a platform-neutral way, should become +as fundamental to web agents as web content is today.  The key to this +is a very natural binding to the data of Javascript so that the script can +simply use the data instead of tediously encoding and extracting the data from the XML.

-
- -

- 0 Table of Contents

-
1 SOAP Services -
-
- 2 SOAP Blocks -
-
2.1 Parameters -
- 2.2 Header Blocks -
- 2.3 Encodings -
-
- 3 Using the Mozilla -Low-Level SOAP API -
-
3.1 Conventions Used -Below in -
- 3.2 Basic Operations of SOAP -
- 3.3 Beyond Basic Operations -
- 3.4 Header Operations -
- 3.5 Non-RPC Operations -
- 3.6 SOAPBlock and -SOAPMessage Supertypes -
- 3.7 More Operations -
- 3.8 Using Schema Types -
- 3.9 Customization of Encodings -
- 3.10 Security Operations -
-
- 4 Future Features -
-
4.1 Access to SOAP -as Proxies -
- 4.2 Arbitrary Graphs of Data -
- 4.3 SOAP With Attachments -
- 4.4 New Transports -and Local Services -
- 4.5 Standards -
-
- 5 Samples and Testing -
-
- 6 Object Interfaces -
-

- 1 SOAP Services

- There are a number of sources for services available on the web - being set up, such as the XMethods -website - which the Mozilla implementation has used for some tests and use -cases.  Apache also provides modules for SOAP that have been used to -author services for purposes of testing the Mozilla implementation (and -entertainment).  Once it is set up, it is as simple as writing -a service function in Javascript, Java, or any other of a number of supported -languages and then writing a service description in XML to deploy the service.  - There are toolkits available from Microsoft and other webserver providers - for authoring such services as well.
- -

- 2 SOAP Blocks

- -

- 2.1 Parameters
-

- SOAP-based services exchange message envelopes which contain blocks - of XML data roughly corresponding to the parameters of a service call.  - When an rpc-style message is exchanged, blocks representing the regular - parameter blocks are placed inside an element which identifies the object - and method being invoked, which is placed inside the body.  In a -non-RPC message, the blocks are placed directly inside the body instead -of under the method element. 
- -

- 2.2 Header Blocks
-

- If there are blocks which are optional or independently added or - processed, these are carried in the header with an assigned role and -marked if the recipient is required to understand them before trying to -process the message.
- -

- 2.3 Encodings
-

- Interpretation of each block depends upon the encoding that was - used, which is clearly specified in the message.  If the standard - SOAP encoding is used, then XML Schema types control the interpretation - of the data within each block.
- -

- 3 Using the Mozilla Low-Level SOAP API

- To use the low-level API, the user creates a SOAPCall object, -encodes the function call with a list of headers and regular parameters, -and invokes the call, which returns a response which contains the results -of the service call including a fault generated by the service which processed - the message if it failed, output parameters, and/or header blocks.  -If the call is invoked asynchronously, then a function is supplied by -the caller which receives the response when it arrives from the remote -service.
-
- Besides Javascript, the below-described operations should also -generally work for other xpconnect-supported languages in Mozilla such -as C++/XPCOM and Python, because language-independent cross-platform -interfaces and architectures were used.
- -

- 3.1 Conventions Used Below in Descriptions of Operations
-

- Names or descriptions in angle brackets represent values or objects - matching the name or description.  These may be literal, constructed - via "new", or variables.  Occasionally the same syntax may represent -script performing an operation.  Quoted angle brackets indicate a -character string of the described type.
-
- So the following sample operation:
- -
    -
  • <Foo> = new Foo( - <FooFact> );
  • -
  • <Foo>.bar = - <any value or object>;
  • -
  • <Baz> = - <Foo>.find("<name> - ");
  • -
  • <find out what you have>
  • - -
- might be replaced in a real Javascript program:
-
- var myFoo = new Foo(new FooFact("always","Great","Baz"));
- myFoo.bar = 3.14159265;
- var myGreatBaz = myFoo.find("Great");
- if (checkBaz(myGreatBaz)) {
-   alert(myGreatBaz.description);
- }
-

- where "myFoo" is a variable holding an object of type Foo and myGreatBaz - is a variable holding an object of type Baz.
- -

- 3.2 Basic Operations of SOAP
-

- The following basic SOAP operations is nearly all that most users -of SOAP need to do.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Basic Operation
-
How to Do It
-
Create a parameter block, setting the Javascript - value and name for rpc-style call.
-
- -
    -
  • <SOAPParameter> - = new SOAPParameter(<any value or object> - , "<name>");
  • -
  •  // or
  • -
  • <SOAPParameter> - = new SOAPParameter();
  • -
  • <SOAPParameter> - .value = <any value or object> - ;
  • -
  • <SOAPParameter> - .name = "<name>";
  • - - -
-
Set parameters in a Javascript array.
-
- -
    -
  • <SOAPParameter array> - = new Array(<SOAPParameter> - <,...>);
  • -
  • // or
  • -
  • <SOAPParameter array> - = new Array();
  • -
  • <SOAPParameter array> - [0] = <SOAPParameter> ;
  • -
  • <...>
  • - - -
-
Create and encode the parameters in a basic - SOAP 1.1 rpc-style message.
-
- -
    -
  • <SOAPCall> - = new SOAPCall();
  • -
  • <SOAPCall> - .transportURI = "<http-based service URI> - "
  • -
  • <SOAPCall> - .encode(0, "<method name> ", -" <target object namespaceURI> - ", 0, null, <SOAPParameter array> - .length, <SOAPParameter array> - );
  • - - -
-
Invoke  call (send call message and - receive response message).
-
- -
    -
  • <SOAPResponse> - = <SOAPCall>.invoke();
  • -
  • <process the response -- - see below>
  • -
  • // or
  • -
  • <SOAPCall> - .asyncInvoke( <SOAPResponseListener> - );
  • - - -
-
Handle completion of async SOAP call.
-
- -
    -
  • function <SOAPResponseListener - name>(<SOAPResponse> - , <SOAPCall>, - <error>)
  • -
  • {
  • -
  •   if (error != 0) {
  • -
  •      <action - to be taken on failure to transport message>
  • -
  •   }
  • -
  •   <process the response - -- see below>
  • -
  • }
  • - - -
-
Get service's failure, if any.
-
- -
    -
  • <SOAPFault> - = <SOAPResponse> - .fault;
  • -
  • if (<SOAPFault> - != null) {
  • -
  •   <namespace URI string> - = <SOAPFault> .faultNamespace;
  • -
  •   <name string> - = <SOAPFault> .faultCode;
  • -
  •   <summary string> - = <SOAPFault> .faultString;
  • -
  •   <actor URI string> - = <SOAPFault> .actorURI;
  • -
  •   <action to be taken - in case of fault>
  • -
  • }
  • - - -
-
Get returned parameters from rpc-style -response .
-
- -
    -
  • <SOAPParameter array> - = <SOAPResponse> .getParameters(true, - {});
  • - - -
-
Process Javascript values, etc. of returned - parameters.
-
- -
    -
  • for (i = 0; i != <SOAPParameter - array>.length; i++)
  • -
  • {
  • -
  •   <SOAPParameter> - = <SOAPParameter array> -[i];
  • -
  •   <value or object> - = <SOAPParameter> .value;
  • -
  •   <name string> - = <SOAPParameter> .name;
  • -
  •   <checking and processing - of result>
  • -
  • }
  • - - -
-
- -

- -

- 3.3 Beyond Basic Operations
-

- The above operations are what every user of the lowlevel SOAP toolkit - needs to invoke service requests and interpret the responses, as is easily - seen by looking at some of the samples (see -section 5 -).  The bulk of the operations that follow will be used less frequently, -but they need to be there for certain cases.  The casual reader may -wish to skip the remaining tables of operations in this section, or scan -for features of interest.
- -

- 3.4 Header Operations

- The user can send or receive header blocks for information not carried in -the body of the message.  Sending and receiving header blocks is not -very different from sending and receiving parameters as described above.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Header Operation
-
How to Do It
-
Create a Header Block.
-
- -
    -
  • <SOAPHeaderBlock> - = new SOAPHeaderBlock(<any value or object> - , "<name>", " - <namespaceURI> ");
  • -
  •  // or
  • -
  • <SOAPHeaderBlock> - = new SOAPHeaderBlock();
  • -
  • <SOAPHeaderBlock> - .value = <any value or object> - ;
  • -
  • <SOAPHeaderBlock> - .name = "<name> ";
  • -
  • <SOAPHeaderBlock> - .namespaceURI = "<namespaceURI> - ";
  • - - -
-
Establish non-default role of a header block -.
-
- -
    -
  • <SOAPHeaderBlock> - .actorURI = "<actorURI> -";
  • -
  • <SOAPHeaderBlock> - .mustUnderstand = <true or false> - ;
  • - - -
-
Set header blocks in a Javascript array.
-
- -
    -
  • <SOAPHeaderBlock array> - = new Array(<SOAPHeaderBlock> - <,...>);
  • -
  • // or
  • -
  • <SOAPHeaderBlock array> - = new Array();
  • -
  • <SOAPHeaderBlock array> - [0] = <SOAPHeaderBlock> -;
  • -
  • <...>
  • - - -
-
Encode the headers in a SOAP 1.1 rpc-style - message.
-
- -
    -
  • <SOAPCall> - .encode(0, "<method name> ", -" <target object namespaceURI> - ", <SOAPHeaderBlock array> -.length, <SOAPHeaderBlock array> - , <SOAPParameter array> -.length, <SOAPParameter array> - );
  • - - -
-
Get returned headers.
-
- -
    -
  • <SOAPHeaderBlock array> - = <SOAPResponse> .getHeaderBlocks(true, - {});
  • - - -
-
Process Javascript values, etc. of returned - headers.
-
- -
    -
  • for (i = 0; i != <SOAPHeaderBlock - array>.length; i++)
  • -
  • {
  • -
  •   <SOAPHeaderBlock> - = <SOAPHeaderBlock array> - [i];
  • -
  •   <value or object> - = <SOAPHeaderBlock> .value;
  • -
  •   <name string> - = <SOAPHeaderBlock> .name;
  • -
  •   <namespace URI string> - = <SOAPHeaderBlock> .namespaceURI;
  • -
  •   <actor URI string> - = <SOAPHeaderBlock> .actorURI;
  • -
  •   <must understand -boolean> = <SOAPHeaderBlock> - .mustUnderstand;
    -
  • -
  •   <checking and processing - of result>
  • -
  • }
  • - - -
-
- -

- 3.5 Non-RPC Operations

- For messages that are not intended to model RPC calls, there is -no method name or target object URI, and the parameters generally have -namespaceURIs.  Otherwise, the basic operations are the same.
-
- - - - - - - - - - - - - - - - - - - - - -
Non-RPC Operation
-
How to Do It
-
Setting the namespaceURI of a non-RPC parameter -.
-
- -
    -
  • <SOAPParameter> - = new SOAPHeaderBlock(<any value or object> - , "<name>", " - <namespaceURI> ");
  • -
  •  // or
  • -
  • <SOAPParameter> - .namespaceURI = "<namespaceURI> - ";
  • - - -
-
Encode a SOAP 1.1 non-rpc-style message.
-
- -
    -
  • <SOAPCall> - .encode(0, "", "", <header block array> - .length, <header block array> - , <parameter array>.length, - <parameter array> - )
  • - - -
-
Get returned parameters from non-rpc-style - response.
-
- -
    -
  • <SOAPParameter array> - = <SOAPResponse> .getParameters(false, - {});
  • - - -
-
- -

- 3.6 SOAPBlock and SOAPMessage Supertypes

- In the following operations, SOAPHeaderBlock and SOAPParameter may be - referred to collectively as SOAPBlock objects.
-
- Also, SOAPCall and SOAPResponse may be referred to collectively as SOAPMessage - objects.
- -

- 3.7 More Operations

- The following table contains less-common operations.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Operation
-
How to Do It
-
Set or get an actionURI carried for the -message in the HTTP header.
-
- -
    -
  • <SOAPMessage> - .actionURI = "<action URI> - ";
  • -
  • // or
    -
  • -
  • <action URI string> - = <SOAPMessage> .actionURI;
    -
  • - - -
-
Directly set the DOM element to represent - the block's encoded content, bypassing encoding of the value on the -block .
-
- -
    -
  • <SOAPBlock> - .element = <DOM Element> ;
    -
  • - - -
-
-
Directly get the DOM element that represents - the block's encoded content, bypassing decoding of the value on the block -.
-
- -
    -
  • <DOM Element> - = <SOAPBlock>.element;
    -
  • - - -
-
Directly get the DOM element containing -the SOAP envelope , header, or body of an encoded message.
-
- -
    -
  • <DOM Element> - = <SOAPMessage> -.envelope;
  • -
  • // OR
  • -
  • <DOM Element> - = <SOAPMessage> -.header;
  • -
  • // or
  • -
  • <DOM Element> - = <SOAPMessage> -.body;
    -
  • - - -
-
Directly set the DOM document to represent - the message's entire encoded content, bypassing encoding.
-
- -
    -
  • <SOAPMessage> - .message = <DOM Document> -;
    -
  • - - -
-
-
Directly get the DOM document of an encoded - message, bypassing encoding.
-
- -
    -
  • <DOM Document> - = <SOAPMessage> -.message;
    -
  • - - -
-
-
Get the method name and target object URI, -if any, of the message.
-
-
    -
  • <method name string> - = <SOAPMessage> .methodName;
  • -
  • <object URI string> - = <SOAPMessage> .targetObjectURI;
  • - -
-
Get the actual SOAP version of an encoded - message -- 0 for SOAP 1.1 and 1 for SOAP 1.2.
-
- -
    -
  • <version integer> - = <SOAPMessage> .version;
  • - - -
-
Encode a SOAP 1.2 message.
-
- -
    -
  • <SOAPCall> - .encode(1, "<method name> ", -" <target object namespaceURI> - ", <SOAPHeaderBlock array> -.length, <SOAPHeaderBlock array> - , <SOAPParameter array> -.length, <SOAPParameter array> - );
  • - - -
-
Abort an in-progress async call -- this -does not necessarily cause the message not to be processed, but the API -stops listening for it to complete.
-
- -
    -
  • <SOAPCallCompletion> - = <SOAPCall> .asyncInvoke( - <SOAPResponseListener>);
  • -
  • <...>
  • -
  • <SOAPCallCompletion> - .abort();
    -
  • - - -
-
Get the encoding (style) used to encode -or decode message.  Not available on an unencoded call unless explicitly - set -- use following operation instead.
-
- -
    -
  • <SOAPEncoding> - = <SOAPMessage> -.encoding;
  • - - -
-
Set the primary encoding style used to -encode a message.  A new SOAPEncoding objects (created by new) starts -a different set of associated encodings, which are only reached (or created) -in association by calling getAssociatedEncoding().
-
- -
    -
  • <SOAPEncoding> - = new SOAPEncoding();
  • -
  • <SOAPEncoding> - = <SOAPEncoding> - .getAssociatedEncoding(" <style URI> - ",<true to create> );
  • -
  • <customize encodings>
    -
  • -
  • <SOAPMessage> - .encoding = <SOAPEncoding> - ;
  • - - -
-
Specify the encoding style used to encode - or decode specific blocks.
-
- -
    -
  • <SOAPEncoding> - = <SOAPEncoding> - .getAssociatedEncoding(" <style URI> - ",<true to create> );
  • -
  • <SOAPBlock> - .encoding = <SOAPEncoding> -;
  • - - -
-
- -

- -

- 3.8 Using Schema Types

- The default SOAP encodings implement most XML built-in types, -as well as the basic SOAP types.  In the absence of a specified -type, native values and objects will typically be correctly identified -and mapped to a corresponding schema type.  There may be no perfect -correspondance between Javascript and XML Schema types, so they will be -mapped to a close corresponding type.
-
- Providing specific schema types can help the encoding produce the desired -results.  For example, multidimensional arrays must be decoded as -nested arrays because Javascript only supports single-dimensional arrays. - If no schema type is given that identifies the array as multidimensional, - then a multidimensional array will be encoded as a nested array.  An - accurate schema type can also help when encoding or decoding of other -complex objects such as SOAP structs.
-
- Schema types may be attached to blocks before encoding or before - accessing the value of a returned object to better control the encoding - and decoding.  All schema types which are used to control the encoding - and decoding should come from the schema collection available through - the encoding (associated encodings share the same collection).
-
- - - - - - - - - - - - - - - - - - - - - -
Schema Operation
-
How to Do It
-
Get the schema collection of all associated - encodings.
-
- -
    -
  • <SchemaCollection> - = <SOAPEncoding> .schemaCollection;
  • - - -
-
Load additional schema types from XML Schema - files into the schema collection.
-
-
- -
    -
  • <SchemaLoader> - = <SchemaCollection> - ;
  • -
  • // and then
    -
  • -
  • <SchemaLoader> - .load(" <schema file URI> - ");
  • -
  • //  or
    -
  • -
  • <SchemaLoader> - .loadAsync(" <schemaURI> -", <load completion function> - );
  • - - -
-
Specify the XML Schema type to be used when - encoding or decoding a block.  Note: decoding a block occurs when -you get its value, so after getting a block from an XML-encoded message such -as a SOAPResponse, attaching type info affects evaluation of the value. - -
    -
  • <SchemaType> - = <SchemaCollection> - .getType(" <name> ", " - <namespaceURI> ");
  • -
  • if (<schemaType != null) - {
    -
  • -
  •   - <SOAPBlock> .schemaType = - <SchemaType> ;
  • -
  • }
  • -
    - -
-
- -

- -

- -

- 3.9 Customization of Encodings

- A specific encoding must have encoders and decoders to function. -  Encoding or decoding of data always begins with a default encoder - or decoder, which then may lookup additional encoders or decoders by -a string key as required.  For either the 1.1 or 1.2 version of -the default SOAP encoding, the default encoder and decoder use the schema -type's namespaceURI and name, seperated by "#" to look up additional decoders -for specific schema types.  Additional encoders and decoders registered - within the default encodings will automatically be invoked as an object - identified as the corresponding type is processed.  Other encodings - can use any scheme for looking up additional encoders and decoders, or -none at all if all the work is done by the default encoder and decoder -for that encoding.  Encodings which are registered with the system, -such as the default SOAP 1.1 or 1.2 encodings, automatically come with encoders -and decoders built-in, whereas new encodings have none.  Custom encodings - may also reuse existing encoders and decoders, but there is no guarantee - which are present, since the mapping may vary when handling an infinite -set of types with a finite set of encoders and decoders.
-
- Also, there has been a proliferation of different schema URIs -to describe the same types, which may often even be intermixed in usage, but -expected to function properly.  Most notably, the SOAP 1.1 specification -used unofficial XML Schema URIs and SOAP encoding schema URIs not compatible - with those which are in the W3C XML Schema and drafts for SOAP 1.2 specifications. -  It is not uncommon to send and receive messages using the URIs -specified in the SOAP 1.1 specification, but described by WSDL using XML -Schema that uses the official, correct URIs.  To solve these problems, -the encoding permits schema URIs to be aliased, both on input and on -output, so that only the SOAP 1.2 and official XMLSchema types are used -internally, while supporting the other URIs.  Mappings of this type -are built-in for encodings which are registered with the system, such as -the default encodings of SOAP 1.1 and 1.2.  The default URI mappings -may be manipulated, for example, to output SOAP 1.1 but with the official -XML Schema URIs, without having to rewrite any encoders or decoders.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Encoding Customization Operation
-
How to Do It
-
Create a custom encoder. - -
    -
  • function <New DOM Element> - = <SOAPEncoder name>( - <SOAPEncoding>, <value> - , <namespaceURI> , - <name>, <SchemaType> - , <SOAPAttachments> , - <Parent DOM Element> )
  • -
  • {
  • -
  • <...>
    -
  • -
  • <DOM Element> - = <Parent DOM Element> - .ownerDocument.createElementNS(namespaceURI,name);
    -
  • -
  • <...>
    -
  • -
  •   <Parent DOM Element> - .appendChild(<DOM Element> - );
    -
  • -
  •   return <DOM Element> - ;
    -
  • -
  • }
  • -
  • // and
  • -
  • <SOAPEncoding> - .defaultEncoder = <SOAPEncoder> - ;
  • -
  • // or
  • -
  • <SOAPEncoding> - .setEncoder(" <namespaceURI> - # <name> ", - <SOAPEncoder> );
  • - - -
-
-
Create a custom decoder.
-
- -
    -
  • function <New DOM Element> - = <SOAPDecoder name>( - <SOAPEncoding>, <DOM -Element> , <SchemaType> - , <SOAPAttachments>)
  • -
  • {
  • -
  • <...>
  • -
  •   return <value or object> - ;
    -
  • -
  • }
  • -
  • // and
  • -
  • <SOAPEncoding> - .defaultDecoder = <SOAPDecoder> - ;
  • -
  • // or
  • -
  • <SOAPEncoding> - .setDecoder(" <namespaceURI> - # <name> ", - <SOAPDecoder> );
  • - - -
-
-
Map or unmap schema  URI aliases
-
- -
    -
  • <SOAPEncoding> - .mapSchemaURI(" <external URI> - ", "<internal URI>", - <true to alias output> );
  • -
  • // or
  • -
  • <SOAPEncoding> - .unmapSchemaURI(" <external URI> - ");
  • - - -
-
Register modified or alternative encodings, - making them automatically available to all SOAP scripts in the system
-
Install an appropriate registerable encoding - in components/<new encoding> - .js
-
- -

- 3.10 Security Operations

- In browsers, the risk of allowing an externally-loaded untrusted - script to request information within a firewall and send it elsewhere -has lead to very tight sandbox restrictions, permitting external browser -scripts to only request xml data and services on the same domain from -which the script was loaded.  This same restriction applies by default -to SOAP requests executed within the browser.  This means that an -externally-loaded script cannot, for example, call other external services -unless they are in the same domain from which the page was loaded.  Even -if the page was loaded from the user's own hard disk, the script must ask -for permission to make SOAP calls.  A browser enhancement is planned -to permit more-precise control of trust between scripts and specific available -services.
-
- Since SOAP permits headers to be added to messages that require -interpretation by the recipient, this API can request a header to warn -the recipient that it was sent by an untrusted script loaded from a specific - sourceURI, and no good SOAP service will unintentionally disregard the warning. -  If the envelope is verified and the header is added, then the browser - can allow the script less-restricted access to services outside of its -source domain.  Accepting this header permits SOAP services that -really do want to be universally available to allow access without forcing -the user to risk breach of the firewall protections and/or request user -permission.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Security Operation
-
How to Do It
-
Mark the call with a verifySourceHeader -so, if the service permits it, the browser can make the call with less -privilege and risk.
-
- -
    -
  • <SOAPCall> - .verifySourceHeader = true;
  • - - -
-
Request risky privileges within a local -or signed script to make an unverified SOAP calls to other domains.
-
- -
    -
  • netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead")
  • - - -
-
Modify the security settings in the preferences - file, allowing scripts from some domain to make risky SOAP calls to -any other domain, which is disabled by default.Add the setting in default/pref/all.js - :
- - -
    -
  • pref("<some domain prefix> - .SOAPCall.invoke","allAccess");
  • - - -
-
Modify the security settings in the preferences - file to disallow even dross-domain calls made with verifySource header, -which is generally permitted by default.
-
Remove or comment out the setting in -default/pref/all.js :
- -
    -
  • pref("capability.policy.default.SOAPCall.invokeVerifySourceHeader","allAccess");
  • - -
-
Register alternative transport mechanisms, - making available alternative transports to all scripts and perhaps creating - alternative security models for protocols besides http(s).  See - -the futures section - for more info on possible transports.
-
Install an appropriate registerable encoding - in components/<new transport> - .js.
-
- -

- -

- 4 Future Features

- -

- 4.1 Access to SOAP as Proxies

- Although a SOAP call can generally be accomplished using this -low-level API in a few dozen lines, WSDL is a standard that contains -enough information to enable this to occur with no manual argument and -type setup required.  An implementation is under development that - instantiates web service proxies complete with appropriate xpconnect interfaces - by simply loading and using information out of a WSDL file that describes -the service.  The proxy's interface has dynamically-generated methods -named appropriately to match the services described in the WSDL file which -accept arguments of the appropriate data types and calls the appropriate - low-level SOAP functions with the appropriate type information, making -it even simpler not only to invoke services from Javascript code, but to -associate appropriate schema types loaded from the WSDL file with the arguments. - This higher level is not available in the first release.  When -it is available, invoking WSDL-described features gets even easier and more -reliable.
- -

- -

- 4.2 Arbitrary Graphs of Data

- The SOAP specification allows objects to be passed as arguments - which may have originally referenced other objects that are not owned - in a pure hierarchy.  This is represented by using an href attribute. -  Due to the problems with leaking reference counts in COM objects - with cyclic references, this has not been implemented yet.  Also, - the output of a cyclicly-referencing set of objects has not been implemented. -  Outgoing objects that do not reference cyclicly currently create - separate copies for each reference to an object, and with cycles output - may never complete.  On input, hrefs are currently ignored.  In - the future it may be possible to solve this and transmit and receive arbitrarily-referencing - objects, but the solution is more complex than just using weak references.
- -

- 4.3 SOAP With Attachments

- Many clients and servers now support automatically transmitting - large Mime with a SOAP message by encapsulating it in MIME, DIME, or -other enveloping formats.  This has been anticipated in the APIs, -but the SOAPAttachments API is currently a placeholder for this future -feature which is not yet implemented.
- -

- 4.4 New Transports and Local Services

- Obvious new transports that would be useful include e-mail -- permitting - a SOAP exchange to occur as an email exchange --, instant messenger for - peer to peer, and a local manager with a controlled security model but -without the size limitations, enabling SOAP to save and restore arbitrary -Javascript application data on the client.  These services require -a framework, already being planned, for permitting the browser to host -services as well as being a good client.  There are obviously security -issues to be solved to make these successful.
- -

- 4.5 Standards

- The interfaces to the objects of this API were designed to be as simple - and universal as possible.  We believe that we should submit a note - describing them and sponser a W3C proposal to standardize an API for invoking - this type of service from web clients.  In such an effort, changes -would be inevitable and welcomed as the price for interoperability within -web clients.  Part of this API are incomplete, specifically the SOAPAttachments - object, which will be defined to allow encoders and decoders to control -uniqueness and referencing, both for resolving arbitrary graphs of data -(as described above in "Arbitrary Graphs of Data") as well as for automatically -resolving references to attached objects carried with the message in an -external encapsulation (as described above in "SOAP With Attachments").
- -

- 5 Samples and Testing

- Some samples or tests have been created, but these commonly only use - the basic operations.  Some of the higher-level features are being - tested by the prosy code (as described above in "Access to SOAP as Proxies"). -  While most of the methods of this API are well-exercized internally - during even basic invocation, we need samples that test and demonstrate -external access to the functions.  What exists today is mozilla/extensions/xmlextras/tests - /soap*.html.  We welcome the contribution of tests by other parties. -  Most samples work but at least one (soapcall.html) is no longer correctly - configured to talk to a server -- but it genrates interesting messages -anyway.

- To test the services, it is - interesting to turn on MOZ_DEBUG=1, because even if you do not debug the - program, this causes the exchanged SOAP messages to be displayed on the -standard output if you run from a command shell where this is visible.
+ +

+ 0 Table of Contents

+ +
1 SOAP Services +
+
+ 2 SOAP Blocks +
+ +
2.1 Parameters +
+ 2.2 Header Blocks +
+ 2.3 Encodings +
+
+ 3 Using the Mozilla + Low-Level SOAP API +
+ +
3.1 Conventions +Used Below in +
+ 3.2 Basic Operations of +SOAP +
+ 3.3 Beyond Basic Operations +
+ 3.4 Header Operations +
+ 3.5 Non-RPC Operations +
+ 3.6 SOAPBlock + and SOAPMessage Supertypes +
+ 3.7 More Operations +
+ 3.8 Using Schema Types +
+ 3.9 Customization of Encodings +
+ 3.10 Security Operations +
+
+ 4 Future Features +
+ +
4.1 Access to +SOAP as Proxies +
+ 4.2 Arbitrary Graphs of + Data +
+ 4.3 SOAP With Attachments +
+ 4.4 New Transports + and Local Services +
+ 4.5 Standards +
+
+ 5 Samples and Testing +
+
+ 6 Object Interfaces +
+ +

+ 1 SOAP Services

+ There are a number of sources for services available on the + web being set up, such as the XMethods + website + which the Mozilla implementation has used for some tests and use + cases.  Apache also provides modules for SOAP that have been used to + author services for purposes of testing the Mozilla implementation (and + entertainment).  Once it is set up, it is as simple as writing +a service function in Javascript, Java, or any other of a number of supported + languages and then writing a service description in XML to deploy the service.  + There are toolkits available from Microsoft and other webserver providers + for authoring such services as well.
+ +

+ 2 SOAP Blocks

+ +

+ 2.1 Parameters
+

+ SOAP-based services exchange message envelopes which contain + blocks of XML data roughly corresponding to the parameters of a service + call.  When an rpc-style message is exchanged, blocks representing + the regular parameter blocks are placed inside an element which identifies + the object and method being invoked, which is placed inside the body. +  In a non-RPC message, the blocks are placed directly inside the + body instead of under the method element. 
+ +

+ 2.2 Header Blocks
+

+ If there are blocks which are optional or independently added + or processed, these are carried in the header with an assigned role +and marked if the recipient is required to understand them before trying +to process the message.
+ +

+ 2.3 Encodings
+

+ Interpretation of each block depends upon the encoding that +was used, which is clearly specified in the message.  If the standard + SOAP encoding is used, then XML Schema types control the interpretation + of the data within each block.
+ +

+ 3 Using the Mozilla Low-Level SOAP API

+ To use the low-level API, the user creates a SOAPCall object, + encodes the function call with a list of headers and regular parameters, + and invokes the call, which returns a response which contains the results + of the service call including a fault generated by the service which processed + the message if it failed, output parameters, and/or header blocks.  + If the call is invoked asynchronously, then a function is supplied by + the caller which receives the response when it arrives from the remote + service.
+
+ Besides Javascript, the below-described operations should also + generally work for other xpconnect-supported languages in Mozilla +such as C++/XPCOM and Python, because language-independent cross-platform + interfaces and architectures were used.
+ +

+ 3.1 Conventions Used Below in Descriptions of Operations
+

+ Names or descriptions in angle brackets represent values or +objects matching the name or description.  These may be literal, +constructed via "new", or variables.  Occasionally the same syntax +may represent script performing an operation.  Quoted angle brackets +indicate a character string of the described type.
+
+ So the following sample operation:
+ +
    +
  • <Foo> = new +Foo( <FooFact> );
  • +
  • <Foo>.bar = + <any value or object> +;
  • +
  • <Baz> = + <Foo>.find("<name> + ");
  • +
  • <find out what you have>
  • + +
+ might be replaced in a real Javascript program:
+
+ var myFoo = new Foo(new FooFact("always","Great","Baz"));
+ myFoo.bar = 3.14159265;
+ var myGreatBaz = myFoo.find("Great");
+ if (checkBaz(myGreatBaz)) {
+   alert(myGreatBaz.description);
+ }
+

+ where "myFoo" is a variable holding an object of type Foo and + myGreatBaz is a variable holding an object of type Baz.
+ +

+ 3.2 Basic Operations of SOAP
+

+ The following basic SOAP operations is nearly all that most +users of SOAP need to do.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Basic Operation
+
How to Do It
+
Create a parameter block, setting the + Javascript value and name for rpc-style call.
+
+ + +
    +
  • <SOAPParameter> + = new SOAPParameter(<any value or object> + , "<name>");
  • +
  •  // or
  • +
  • <SOAPParameter> + = new SOAPParameter();
  • +
  • <SOAPParameter> + .value = <any value or object> + ;
  • +
  • <SOAPParameter> + .name = "<name>";
  • + + +
+
Set parameters in a Javascript array.
+
+ + +
    +
  • <SOAPParameter array> + = new Array(<SOAPParameter> + <,...>);
  • +
  • // or
  • +
  • <SOAPParameter array> + = new Array();
  • +
  • <SOAPParameter array> + [0] = <SOAPParameter> + ;
  • +
  • <...>
  • + + +
+
Create and encode the parameters in +a basic SOAP 1.1 rpc-style message.
+
+ + +
    +
  • <SOAPCall> + = new SOAPCall();
  • +
  • <SOAPCall> + .transportURI = "<http-based service URI> + "
  • +
  • <SOAPCall> + .encode(0, "<method name> + ", " <target object namespaceURI> + ", 0, null, <SOAPParameter array> + .length, <SOAPParameter array> + );
  • + + +
+
Invoke  call (send call message +and receive response message).
+
+ + +
    +
  • <SOAPResponse> + = <SOAPCall> +.invoke();
  • +
  • <process the response + -- see below>
  • +
  • // or
  • +
  • <SOAPCall> + .asyncInvoke( <SOAPResponseListener> + );
  • + + +
+
Handle completion of async SOAP call.
+
+ + +
    +
  • function <SOAPResponseListener + name>(<SOAPResponse> + , <SOAPCall>, + <error>)
  • +
  • {
  • +
  •   if (error != 0) {
  • +
  •      <action + to be taken on failure to transport message>
  • +
  •   }
  • +
  •   <process the +response -- see below>
  • +
  • }
  • + + +
+
Get service's failure, if any.
+
+ + +
    +
  • <SOAPFault> + = <SOAPResponse> + .fault;
  • +
  • if (<SOAPFault> + != null) {
  • +
  •   <namespace URI + string> = <SOAPFault> + .faultNamespace;
  • +
  •   <name string> + = <SOAPFault> .faultCode;
  • +
  •   <summary string> + = <SOAPFault> .faultString;
  • +
  •   <actor URI string> + = <SOAPFault> .actorURI;
  • +
  •   <action to be +taken in case of fault>
  • +
  • }
  • + + +
+
Get returned parameters from rpc-style + response .
+
+ + +
    +
  • <SOAPParameter array> + = <SOAPResponse> .getParameters(true, + {});
  • + + +
+
Process Javascript values, etc. of returned + parameters.
+
+ + +
    +
  • for (i = 0; i != <SOAPParameter + array>.length; i++)
  • +
  • {
  • +
  •   <SOAPParameter> + = <SOAPParameter array> + [i];
  • +
  •   <value or object> + = <SOAPParameter> .value;
  • +
  •   <name string> + = <SOAPParameter> .name;
  • +
  •   <checking and +processing of result>
  • +
  • }
  • + + +
+
+ +

+ +

+ 3.3 Beyond Basic Operations
+

+ The above operations are what every user of the lowlevel SOAP toolkit + needs to invoke service requests and interpret the responses, as is easily + seen by looking at some of the samples (see + section 5 + ).  The bulk of the operations that follow will be used less frequently, + but they need to be there for certain cases.  The casual reader may +wish to skip the remaining tables of operations in this section, or scan +for features of interest.
+ +

+ 3.4 Header Operations

+ The user can send or receive header blocks for information not carried + in the body of the message.  Sending and receiving header blocks + is not very different from sending and receiving parameters as described + above.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Header Operation
+
How to Do It
+
Create a Header Block.
+
+ + +
    +
  • <SOAPHeaderBlock> + = new SOAPHeaderBlock(<any value or + object> , "<name> + ", " <namespaceURI> ");
  • +
  •  // or
  • +
  • <SOAPHeaderBlock> + = new SOAPHeaderBlock();
  • +
  • <SOAPHeaderBlock> + .value = <any value or object> + ;
  • +
  • <SOAPHeaderBlock> + .name = "<name> ";
  • +
  • <SOAPHeaderBlock> + .namespaceURI = "<namespaceURI> + ";
  • + + +
+
Establish non-default role of a header + block .
+
+ + +
    +
  • <SOAPHeaderBlock> + .actorURI = "<actorURI> + ";
  • +
  • <SOAPHeaderBlock> + .mustUnderstand = <true or false> + ;
  • + + +
+
Set header blocks in a Javascript array.
+
+ + +
    +
  • <SOAPHeaderBlock array> + = new Array(<SOAPHeaderBlock> + <,...>);
  • +
  • // or
  • +
  • <SOAPHeaderBlock array> + = new Array();
  • +
  • <SOAPHeaderBlock array> + [0] = <SOAPHeaderBlock> + ;
  • +
  • <...>
  • + + +
+
Encode the headers in a SOAP 1.1 rpc-style + message.
+
+ + +
    +
  • <SOAPCall> + .encode(0, "<method name> + ", " <target object namespaceURI> + ", <SOAPHeaderBlock array> + .length, <SOAPHeaderBlock array> + , <SOAPParameter array> + .length, <SOAPParameter array> + );
  • + + +
+
Get returned headers.
+
+ + +
    +
  • <SOAPHeaderBlock array> + = <SOAPResponse> .getHeaderBlocks(true, + {});
  • + + +
+
Process Javascript values, etc. of returned + headers.
+
+ + +
    +
  • for (i = 0; i != <SOAPHeaderBlock + array>.length; i++)
  • +
  • {
  • +
  •   <SOAPHeaderBlock> + = <SOAPHeaderBlock array> + [i];
  • +
  •   <value or object> + = <SOAPHeaderBlock> +.value;
  • +
  •   <name string> + = <SOAPHeaderBlock> +.name;
  • +
  •   <namespace URI + string> = <SOAPHeaderBlock> + .namespaceURI;
  • +
  •   <actor URI string> + = <SOAPHeaderBlock> +.actorURI;
  • +
  •   <must understand + boolean> = <SOAPHeaderBlock> + .mustUnderstand;
    +
  • +
  •   <checking and +processing of result>
  • +
  • }
  • + + +
+
+ +

+ 3.5 Non-RPC Operations

+ For messages that are not intended to model RPC calls, there +is no method name or target object URI, and the parameters generally +have namespaceURIs.  Otherwise, the basic operations are the same.
+
+ + + + + + + + + + + + + + + + + + + + + + +
Non-RPC Operation
+
How to Do It
+
Setting the namespaceURI of a non-RPC +parameter .
+
+ + +
    +
  • <SOAPParameter> + = new SOAPHeaderBlock(<any value or + object> , "<name> + ", " <namespaceURI> ");
  • +
  •  // or
  • +
  • <SOAPParameter> + .namespaceURI = "<namespaceURI> + ";
  • + + +
+
Encode a SOAP 1.1 non-rpc-style message.
+
+ + +
    +
  • <SOAPCall> + .encode(0, "", "", <header block array> + .length, <header block array> + , <parameter array>.length, + <parameter array> + )
  • + + +
+
Get returned parameters from non-rpc-style + response.
+
+ + +
    +
  • <SOAPParameter array> + = <SOAPResponse> .getParameters(false, + {});
  • + + +
+
+ +

+ 3.6 SOAPBlock and SOAPMessage Supertypes

+ In the following operations, SOAPHeaderBlock and SOAPParameter may + be referred to collectively as SOAPBlock objects.
+
+ Also, SOAPCall and SOAPResponse may be referred to collectively as +SOAPMessage objects.
+ +

+ 3.7 More Operations

+ The following table contains less-common operations.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Operation
+
How to Do It
+
Set or get an actionURI carried for the + message in the HTTP header.
+
+ + +
    +
  • <SOAPMessage> + .actionURI = "<action URI> + ";
  • +
  • // or
    +
  • +
  • <action URI string> + = <SOAPMessage> .actionURI;
    +
  • + + +
+
Directly set the DOM element to represent + the block's encoded content, bypassing encoding of the value on the +block .
+
+ + +
    +
  • <SOAPBlock> + .element = <DOM Element> + ;
    +
  • + + +
+
+
Directly get the DOM element that represents + the block's encoded content, bypassing decoding of the value on the +block .
+
+ + +
    +
  • <DOM Element> + = <SOAPBlock> + .element;
    +
  • + + +
+
Directly get the DOM element containing + the SOAP envelope , header, or body of an encoded message.
+
+ + +
    +
  • <DOM Element> + = <SOAPMessage> + .envelope;
  • +
  • // OR
  • +
  • <DOM Element> + = <SOAPMessage> + .header;
  • +
  • // or
  • +
  • <DOM Element> + = <SOAPMessage> + .body;
    +
  • + + +
+
Directly set the DOM document to represent + the message's entire encoded content, bypassing encoding.
+
+ + +
    +
  • <SOAPMessage> + .message = <DOM Document> + ;
    +
  • + + +
+
+
Directly get the DOM document of an encoded + message, bypassing encoding.
+
+ + +
    +
  • <DOM Document> + = <SOAPMessage> + .message;
    +
  • + + +
+
+
Get the method name and target object +URI, if any, of the message.
+
+ +
    +
  • <method name string> + = <SOAPMessage> .methodName;
  • +
  • <object URI string> + = <SOAPMessage> .targetObjectURI;
  • + +
+
Get the actual SOAP version of an encoded + message -- 0 for SOAP 1.1 and 1 for SOAP 1.2.
+
+ + +
    +
  • <version integer> + = <SOAPMessage> .version;
  • + + +
+
Encode a SOAP 1.2 message.
+
+ + +
    +
  • <SOAPCall> + .encode(1, "<method name> + ", " <target object namespaceURI> + ", <SOAPHeaderBlock array> + .length, <SOAPHeaderBlock array> + , <SOAPParameter array> + .length, <SOAPParameter array> + );
  • + + +
+
Abort an in-progress async call -- this + does not necessarily cause the message not to be processed, but the API + stops listening for it to complete.
+
+ + +
    +
  • <SOAPCallCompletion> + = <SOAPCall> .asyncInvoke( + <SOAPResponseListener>);
  • +
  • <...>
  • +
  • <SOAPCallCompletion> + .abort();
    +
  • + + +
+
Get the encoding (style) used to encode + or decode message.  Not available on an unencoded call unless explicitly + set -- use following operation instead.
+
+ + +
    +
  • <SOAPEncoding> + = <SOAPMessage> + .encoding;
  • + + +
+
Set the primary encoding style used +to encode a message.  A new SOAPEncoding objects (created by new) starts + a different set of associated encodings, which are only reached (or created) + in association by calling getAssociatedEncoding().
+
+ + +
    +
  • <SOAPEncoding> + = new SOAPEncoding();
  • +
  • <SOAPEncoding> + = <SOAPEncoding> + .getAssociatedEncoding(" <style URI> + ",<true to create> );
  • +
  • <customize encodings>
    +
  • +
  • <SOAPMessage> + .encoding = <SOAPEncoding> + ;
  • + + +
+
Specify the encoding style used to encode + or decode specific blocks.
+
+ + +
    +
  • <SOAPEncoding> + = <SOAPEncoding> + .getAssociatedEncoding(" <style URI> + ",<true to create> );
  • +
  • <SOAPBlock> + .encoding = <SOAPEncoding> + ;
  • + + +
+
+ +

+ +

+ 3.8 Using Schema Types

+ The default SOAP encodings implement most XML built-in types, + as well as the basic SOAP types.  In the absence of a specified +type, native values and objects will typically be correctly identified +and mapped to a corresponding schema type.  There may be no perfect +correspondence between Javascript and XML Schema types, so they will be mapped +to a close corresponding type.
+
+ Providing specific schema types can help the encoding produce the desired + results.  For example, multidimensional arrays must be decoded +as nested arrays because Javascript only supports single-dimensional + arrays.  If no schema type is given that identifies the array as +multidimensional, then a multidimensional array will be encoded as a +nested array.  An accurate schema type can also help when encoding + or decoding of other complex objects such as SOAP structs.
+
+ Schema types may be attached to blocks before encoding or before + accessing the value of a returned object to better control the encoding + and decoding.  All schema types which are used to control the encoding + and decoding should come from the schema collection available through + the encoding (associated encodings share the same collection).
+
+ + + + + + + + + + + + + + + + + + + + + + +
Schema Operation
+
How to Do It
+
Get the schema collection of all associated + encodings.
+
+ + +
    +
  • <SchemaCollection> + = <SOAPEncoding> .schemaCollection;
  • + + +
+
Load additional schema types from XML +Schema files into the schema collection.
+
+
+ + +
    +
  • <SchemaLoader> + = <SchemaCollection> + ;
  • +
  • // and then
    +
  • +
  • <SchemaLoader> + .load(" <schema file URI> + ");
  • +
  • //  or
    +
  • +
  • <SchemaLoader> + .loadAsync(" <schemaURI> + ", <load completion function> + );
  • + + +
+
Specify the XML Schema type to be used + when encoding or decoding a block.  Note: decoding a block occurs + when you get its value, so after getting a block from an XML-encoded message + such as a SOAPResponse, attaching type info affects evaluation of the value. + + +
    +
  • <SchemaType> + = <SchemaCollection> + .getType(" <name> ", +" <namespaceURI> ");
  • +
  • if (<schemaType != null) + {
    +
  • +
  •   + <SOAPBlock> .schemaType = + <SchemaType> ;
  • +
  • }
  • +
    + +
+
+ +

+ +

+ +

+ 3.9 Customization of Encodings

+ A specific encoding must have encoders and decoders to function. +  Encoding or decoding of data always begins with a default encoder + or decoder, which then may lookup additional encoders or decoders by + a string key as required.  For either the 1.1 or 1.2 version of +the default SOAP encoding, the default encoder and decoder use the schema +type's namespaceURI and name, seperated by "#" to look up additional decoders +for specific schema types.  Additional encoders and decoders registered + within the default encodings will automatically be invoked as an object + identified as the corresponding type is processed.  Other encodings + can use any scheme for looking up additional encoders and decoders, or +none at all if all the work is done by the default encoder and decoder for +that encoding.  Encodings which are registered with the system, such +as the default SOAP 1.1 or 1.2 encodings, automatically come with encoders +and decoders built-in, whereas new encodings have none.  Custom encodings + may also reuse existing encoders and decoders, but there is no guarantee + which are present, since the mapping may vary when handling an infinite + set of types with a finite set of encoders and decoders.
+
+ Also, there has been a proliferation of different schema +URIs to describe the same types, which may often even be intermixed in +usage, but expected to function properly.  Most notably, the SOAP +1.1 specification used unofficial XML Schema URIs and SOAP encoding +schema URIs not compatible with those which are in the W3C XML Schema +and drafts for SOAP 1.2 specifications.  It is not uncommon to +send and receive messages using the URIs specified in the SOAP 1.1 specification, +but described by WSDL using XML Schema that uses the official, correct +URIs.  To solve these problems, the encoding permits schema URIs +to be aliased, both on input and on output, so that only the SOAP 1.2 +and official XMLSchema types are used internally, while supporting the +other URIs.  Mappings of this type are built-in for encodings which +are registered with the system, such as the default encodings of SOAP +1.1 and 1.2.  The default URI mappings may be manipulated, for example, +to output SOAP 1.1 but with the official XML Schema URIs, without having +to rewrite any encoders or decoders.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Encoding Customization Operation
+
How to Do It
+
Create a custom encoder. + + +
    +
  • function <New DOM Element> + = <SOAPEncoder name> +( <SOAPEncoding>, +<value> , <namespaceURI> + , <name>, +<SchemaType> , <SOAPAttachments> + , <Parent DOM Element> + )
  • +
  • {
  • +
  • <...>
    +
  • +
  • <DOM Element> + = <Parent DOM Element> + .ownerDocument.createElementNS(namespaceURI,name);
    +
  • +
  • <...>
    +
  • +
  •   <Parent DOM Element> + .appendChild(<DOM Element> + );
    +
  • +
  •   return <DOM Element> + ;
    +
  • +
  • }
  • +
  • // and
  • +
  • <SOAPEncoding> + .defaultEncoder = <SOAPEncoder> + ;
  • +
  • // or
  • +
  • <SOAPEncoding> + .setEncoder(" <namespaceURI> + # <name> ", + <SOAPEncoder> );
  • + + +
+
+
Create a custom decoder.
+
+ + +
    +
  • function <New DOM Element> + = <SOAPDecoder name> +( <SOAPEncoding>, +<DOM Element> , <SchemaType> + , <SOAPAttachments>)
  • +
  • {
  • +
  • <...>
  • +
  •   return <value or +object> ;
    +
  • +
  • }
  • +
  • // and
  • +
  • <SOAPEncoding> + .defaultDecoder = <SOAPDecoder> + ;
  • +
  • // or
  • +
  • <SOAPEncoding> + .setDecoder(" <namespaceURI> + # <name> ", + <SOAPDecoder> );
  • + + +
+
+
Map or unmap schema  URI aliases
+
+ + +
    +
  • <SOAPEncoding> + .mapSchemaURI(" <external URI> + ", "<internal URI>", + <true to alias output> + );
  • +
  • // or
  • +
  • <SOAPEncoding> + .unmapSchemaURI(" <external URI> + ");
  • + + +
+
Register modified or alternative encodings, + making them automatically available to all SOAP scripts in the system
+
Install an appropriate registerable encoding + in components/<new encoding> + .js
+
+ +

+ 3.10 Security Operations

+ In browsers, the risk of allowing an externally-loaded untrusted + script to request information within a firewall and send it elsewhere + has lead to very tight sandbox restrictions, permitting external browser + scripts to only request xml data and services on the same domain from +which the script was loaded.  This same restriction applies by default +to SOAP requests executed within the browser.  This means that an +externally-loaded script cannot, for example, call other external services +unless they are in the same domain from which the page was loaded.  Even +if the page was loaded from the user's own hard disk, the script must ask +for permission to make SOAP calls.  A browser enhancement is planned +to permit more-precise control of trust between scripts and specific available +services.
+
+ Since SOAP permits headers to be added to messages that require + interpretation by the recipient, this API can request a header to warn + the recipient that it was sent by an untrusted script loaded from a +specific sourceURI, and no good SOAP service will unintentionally disregard +the warning.  If the envelope is verified and the header is added, +then the browser can allow the script less-restricted access to services +outside of its source domain.  Accepting this header permits SOAP +services that really do want to be universally available to allow access +without forcing the user to risk breach of the firewall protections and/or +request user permission.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Security Operation
+
How to Do It
+
Mark the call with a verifySourceHeader + so, if the service permits it, the browser can make the call with less + privilege and risk.
+
+ + +
    +
  • <SOAPCall> + .verifySourceHeader = true;
  • + + +
+
Request risky privileges within a local + or signed script to make an unverified SOAP calls to other domains.
+
+ + +
    +
  • netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead")
  • + + +
+
Modify the security settings in the +preferences file, allowing scripts from some domain to make risky SOAP +calls to any other domain, which is disabled by default.Add the setting in default/pref/all.js + :
+ + +
    +
  • pref("<some domain prefix> + .SOAPCall.invoke","allAccess");
  • + + +
+
Modify the security settings in the preferences + file to disallow even dross-domain calls made with verifySource header, + which is generally permitted by default.
+
Remove or comment out the setting in + default/pref/all.js :
+ + +
    +
  • pref("capability.policy.default.SOAPCall.invokeVerifySourceHeader","allAccess");
  • + + +
+
Register alternative transport mechanisms, + making available alternative transports to all scripts and perhaps creating + alternative security models for protocols besides http(s).  See + the futures + section + for more info on possible transports.
+
Install an appropriate registerable +encoding in components/<new transport> + .js.
+
+ +

+ +

+ 4 Future Features

+ +

+ 4.1 Access to SOAP as Proxies

+ Although a SOAP call can generally be accomplished using this + low-level API in a few dozen lines, WSDL is a standard that contains + enough information to enable this to occur with no manual argument and +type setup required.  An implementation is under development that +instantiates web service proxies complete with appropriate xpconnect interfaces + by simply loading and using information out of a WSDL file that describes + the service.  The proxy's interface has dynamically-generated methods + named appropriately to match the services described in the WSDL file +which accept arguments of the appropriate data types and calls the appropriate + low-level SOAP functions with the appropriate type information, making + it even simpler not only to invoke services from Javascript code, but +to associate appropriate schema types loaded from the WSDL file with the +arguments.  This higher level is not available in the first release. + When it is available, invoking WSDL-described features gets even easier +and more reliable.
+ +

+ +

+ 4.2 Arbitrary Graphs of Data

+ The SOAP specification allows objects to be passed as arguments + which may have originally referenced other objects that are not owned + in a pure hierarchy.  This is represented by using an href attribute. +  Due to the problems with leaking reference counts in COM objects + with cyclic references, this has not been implemented yet.  Also, + the output of a cyclic-referencing set of objects has not been implemented. +  Outputting of objects that do not have cyclic references currently +creates separate copies for each reference to an object, and with cycles +output may never complete.  On input, hrefs are currently ignored. + In the future it may be possible to solve this and transmit and +receive arbitrarily-referencing objects, but the solution is more complex +than just using weak references.
+ +

+ 4.3 SOAP With Attachments

+ Many clients and servers now support automatically transmitting + large Mime with a SOAP message by encapsulating it in MIME, DIME, or + other enveloping formats.  This has been anticipated in the APIs, + but the SOAPAttachments API is currently a place holder for this future + feature which is not yet implemented.
+ +

+ 4.4 New Transports and Local Services

+ Obvious new transports that would be useful include e-mail -- + permitting a SOAP exchange to occur as an email exchange --, instant + messenger for peer to peer, and a local manager with a controlled security + model but without the size limitations, enabling SOAP to save and restore + arbitrary Javascript application data on the client.  These services + require a framework, already being planned, for permitting the browser + to host services as well as being a good client.  There are obviously + security issues to be solved to make these successful.
+ +

+ 4.5 Standards

+ The interfaces to the objects of this API were designed to be as + simple and universal as possible.  We believe that we should submit + a note describing them and sponsor a W3C proposal to standardize an API + for invoking this type of service from web clients.  In such an effort, + changes would be inevitable and welcomed as the price for interoperability + within web clients.  Part of this API are incomplete, specifically +the SOAPAttachments object, which will be defined to allow encoders and +decoders to control uniqueness and referencing, both for resolving arbitrary +graphs of data (as described above in "Arbitrary Graphs of Data") as well +as for automatically resolving references to attached objects carried with +the message in an external encapsulation (as described above in "SOAP With +Attachments").
+ +

+ 5 Samples and Testing

+ What tests and samples exist today can be found in the mozilla tree at + mozilla/extensions/xmlextras/tests/soap*.html.  We welcome the + contribution of tests and samples by other parties.

- A SOAP service server has been set up at ray.dsl.xmission.com where - additional services may be deployed to help test and demo the features -for scripting SOAP in Mozilla.  No home page describes the Apache -Jakarta server on port 8080 which is the test facility, but this is currently -used in two tests in the previously-mentioned directory: soapisprimenumber.html - and soapunscramble.html.  Adding services is as easy as writing functions - in Javascript, Java, or other supported languages and describing the deployment - in XML.  Disclaimer: as this is merely an end-subscriber DSL service, - if the server becomes too widely published, it may have to be shut down.
-
- Bugs should be reported as usual.
- + To test the services, it is interesting to turn on MOZ_DEBUG=1, +because even if you do not debug the program, this causes the exchanged +SOAP messages to be displayed on the standard output if you run from a command +shell where this is visible.
+
+ A SOAP service server has been set up at ray.dsl.xmission.com where + additional services may be deployed to help test and demo the features +for scripting SOAP in Mozilla.  No home page describes the Apache +Jakarta server on port 8080 which is the test facility, but this is currently +used in two tests in the previously-mentioned directory: soapisprimenumber.html + and soapunscramble.html.  Adding services is as easy as writing functions + in Javascript, Java, or other supported languages and describing the deployment + in XML.  Disclaimer: as this is merely an end-subscriber DSL service, + if the server becomes too widely published, it may have to be shut down.
+
+SOAP Bugs should be reported using bugzilla.mozilla.org, as a new bug on +Browser, specifying the XML component, and assigned to +rayw@netscape.com +, which is the email address you can use to contact me directly if you have +an issue that cannot be solved in the newsgroup +netscape.public.mozilla.xml + or by filing a bug.

- 6 Object Interfaces

-
- + 6 Object Interfaces + Descriptions of the interfaces of the SOAP objects are found + here + .
+

-
-
- +
+
+ diff --git a/extensions/webservices/soap/tests/soapcall.html b/extensions/webservices/soap/tests/soapcall.html index 89bffe864868..f3d349ea7e8c 100644 --- a/extensions/webservices/soap/tests/soapcall.html +++ b/extensions/webservices/soap/tests/soapcall.html @@ -1,107 +1,40 @@ - -

SOAP call test

+ +

SOAP Call Encoding Test

+ This encodes a call using the low-level Mozilla SOAP API and shows the resulting message. + View the source of the page to see what was encoded. This is useful to quickly test the + encoding of various arguments. This call is never invoked. Look at other soap samples for + calls that actually work.

-

- - - +

The SOAP call was not encoded. Look at the Javascript console to determine why. diff --git a/extensions/webservices/soap/tests/soapelements.html b/extensions/webservices/soap/tests/soapelements.html index c189f315da64..db70d05d0f35 100644 --- a/extensions/webservices/soap/tests/soapelements.html +++ b/extensions/webservices/soap/tests/soapelements.html @@ -3,80 +3,119 @@

SOAP Test: Elements

-The entered element will be requested and the info displayed. This service found on -X Methods Website. View the source of this -page for details on how it was called. If you compile mozilla DEBUG, the message sent and received will be logged to the console. -

Experimenters may wish to add other tests which exercize services, with specific -user interfaces such as the one in this test. +This page is linked to elements of the periodic table. +

This works by calling a SOAP service. View the source +of this page for details on how it was called. If you compile mozilla DEBUG, +the message sent and received will be logged to the console. This loads js files +soapelementsproxy.js which relies on +soapproxy.js, which implement a SOAP proxy on top +of the low level SOAP API in Mozilla. In a future version of Mozilla, it +should be possible to construct SOAP proxies directly from the wsdl file. +

Since this service is not friendly to untrusted applets, it may not be +called without requesting additional privileges from the user. It can be +made friendly by accepting the verifySource header or by loading the page +and proxy from the domain of the service. +

Other services are available on the +X Methods Website. +Experimenters may wish to create other tests which exercize services, with +specific user interfaces. + +

- - +Symbol: +Atomic Number: + + + diff --git a/extensions/webservices/soap/tests/soapelementsproxy.js b/extensions/webservices/soap/tests/soapelementsproxy.js new file mode 100644 index 000000000000..8548d245aabc --- /dev/null +++ b/extensions/webservices/soap/tests/soapelementsproxy.js @@ -0,0 +1,168 @@ +function Elements() +{ + this.PROXY = new SOAPProxy(this, 0, + "http://213.23.125.181:8080/RPC", + "urn:SpheonJSOAPChemistry", + false); // false = not friendly / needs privileges +} + +// Object to proxy methods + +Elements.prototype = +{ + PROXY: null, + RECEIVER: function(proxy, headers, parameters) // This interprets all responses + { + proxy.PROXY.result = null; + if (parameters != null) { + var parameter = parameters[0]; + // The following line can be used to force a result type + // parameter.schemaType = proxy.PROXY.getType("boolean"); + proxy.PROXY.result = parameter.value; + } + if (proxy.PROXY.oncompletion != null) { + proxy.PROXY.oncompletion(proxy.PROXY.result); + } + }, + // Proxy-specific items + getElementBySymbol: function(symbol, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getElementBySymbol", + null, new Array(new SOAPParameter(symbol,"symbol",null,type)), + this.RECEIVER, oncompletion); + }, + getNumberBySymbol: function(symbol, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getNumberBySymbol", + null, new Array(new SOAPParameter(symbol,"symbol",null,type)), + this.RECEIVER, oncompletion); + }, + getNameBySymbol: function(symbol, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getNameBySymbol", + null, new Array(new SOAPParameter(symbol,"symbol",null,type)), + this.RECEIVER, oncompletion); + }, + getMassBySymbol: function(symbol, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getMassBySymbol", + null, new Array(new SOAPParameter(symbol,"symbol",null,type)), + this.RECEIVER, oncompletion); + }, + getMeltingPointBySymbol: function(symbol, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getMeltingPointBySymbol", + null, new Array(new SOAPParameter(symbol,"symbol",null,type)), + this.RECEIVER, oncompletion); + }, + getBoilingPointBySymbol: function(symbol, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getBoilingBointBySymbol", + null, new Array(new SOAPParameter(symbol,"symbol",null,type)), + this.RECEIVER, oncompletion); + }, + getFoundBySymbol: function(symbol, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "foundBySymbol", + null, new Array(new SOAPParameter(symbol,"symbol",null,type)), + this.RECEIVER, oncompletion); + }, + getElementByNumber: function(number, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getElementByNumber", + null, new Array(new SOAPParameter(number,"number",null,type)), + this.RECEIVER, oncompletion); + }, + getSymbolByNumber: function(number, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getSymbolByNumber", + null, new Array(new SOAPParameter(number,"number",null,type)), + this.RECEIVER, oncompletion); + }, + getNameByNumber: function(number, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getNameByNumber", + null, new Array(new SOAPParameter(number,"number",null,type)), + this.RECEIVER, oncompletion); + }, + getMassByNumber: function(number, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getMassByNumber", + null, new Array(new SOAPParameter(number,"number",null,type)), + this.RECEIVER, oncompletion); + }, + getMeltingPointByNumber: function(number, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getMeltingPointByNumber", + null, new Array(new SOAPParameter(number,"number",null,type)), + this.RECEIVER, oncompletion); + }, + getBoilingPointByNumber: function(number, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getBoilingPointByNumber", + null, new Array(new SOAPParameter(number,"number",null,type)), + this.RECEIVER, oncompletion); + }, + getFoundByNumber: function(number, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "foundByNumber", + null, new Array(new SOAPParameter(number,"number",null,type)), + this.RECEIVER, oncompletion); + } +} diff --git a/extensions/webservices/soap/tests/soapheadlinenews.html b/extensions/webservices/soap/tests/soapheadlinenews.html index 917fb604b96d..f4600a36959f 100644 --- a/extensions/webservices/soap/tests/soapheadlinenews.html +++ b/extensions/webservices/soap/tests/soapheadlinenews.html @@ -3,91 +3,85 @@

SOAP Test: Headline News

-The entered domain name will be searched, and the result displayed. This service found on -X Methods Website. View the source of this -page for details on how it was called. If you compile mozilla DEBUG, the message sent and received will be logged to the console. -

Experimenters may wish to add other tests which exercize services, with specific -user interfaces such as the one in this test. +This requests headline news from the selected domain and opens a window and +places the resulting HTML string into the window. Not all domains work all +the time. This service uses the low-level SOAP API of Mozilla directly, not +hiding the use of the API in separate proxy objects as other examples may do. +

View the source of this page for details on how it was called. If you +compile mozilla DEBUG, the message sent and received will be logged to the +console. +

This works by calling a SOAP service listed on +X Methods Website using the low-level +SOAP API in Mozilla. +

Since this service is not friendly to untrusted applets, it may not be +called without requesting additional privileges from the user. It can be +made friendly by accepting the verifySource header or by loading the page +and proxy from the domain of the service. +

Experimenters may wish to add other tests which exercize services, with +specific user interfaces such as the one in this test.

- + diff --git a/extensions/webservices/soap/tests/soapisprimenumber.html b/extensions/webservices/soap/tests/soapisprimenumber.html index 6d1e09f620d8..5da7b978e515 100644 --- a/extensions/webservices/soap/tests/soapisprimenumber.html +++ b/extensions/webservices/soap/tests/soapisprimenumber.html @@ -3,82 +3,57 @@

SOAP Test: Is It a Prime Number

-The number typed in the text field will change color depending upon whether the soap call -reports prime or nonprime. -

This works by calling a SOAP service listed on -X Methods Website. View the source of this -page for details on how it was called. If you compile mozilla DEBUG, the message sent and received will be logged to the console. -

Experimenters may wish to add other tests which exercize services, with specific -user interfaces such as the one in this test. +The number typed in the text field will change color depending upon whether +the soap call reports prime or +nonprime. +

This works by calling a SOAP service.. View the source of +this page for details on how it was called. If you compile mozilla DEBUG, the +message sent and received will be logged to the console This loads js files +soapisprimeproxy.js which relies on +soapproxy.js, which implement a SOAP proxy on top +of the low level SOAP API in Mozilla. In a future version of Mozilla, it +should be possible to construct SOAP proxies directly from the wsdl file. +

Since this service is friendly to untrusted applets, it may be +called without requesting additional privileges from the user. +

Other services are available on the +X Methods Website. +Experimenters may wish to create other tests which exercize services, with +specific user interfaces. + +

- - + +

diff --git a/extensions/webservices/soap/tests/soapisprimeproxy.js b/extensions/webservices/soap/tests/soapisprimeproxy.js new file mode 100644 index 000000000000..daf85ff7d40b --- /dev/null +++ b/extensions/webservices/soap/tests/soapisprimeproxy.js @@ -0,0 +1,37 @@ +function IsPrime() +{ + this.PROXY = new SOAPProxy(this, 0, + "http://ray.dsl.xmission.com:8080/soap/servlet/rpcrouter", + "http://soaptests.mozilla.org/isprime", + true); // true = friendly to untrusted applets +} + +// Object to proxy methods + +IsPrime.prototype = +{ + // Proxy-specific items + isPrime: function(number, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "isPrime", + null, + new Array(new SOAPParameter(number,"number",null,type)), + function(proxy, headers, parameters) + { + proxy.PROXY.result = null; + if (parameters != null) { + var parameter = parameters[0]; + // The following line can be used to force a result type + parameter.schemaType = proxy.PROXY.getType("boolean"); + proxy.PROXY.result = parameter.value; + } + if (proxy.PROXY.oncompletion != null) { + proxy.PROXY.oncompletion(proxy.PROXY.result); + } + }, oncompletion); + } +} diff --git a/extensions/webservices/soap/tests/soapproxy.js b/extensions/webservices/soap/tests/soapproxy.js new file mode 100644 index 000000000000..13d6a7ec1950 --- /dev/null +++ b/extensions/webservices/soap/tests/soapproxy.js @@ -0,0 +1,123 @@ +function SOAPProxy(proxy, soapVersion, transportURI, target, verifySourceHeader) +{ + this.proxy = proxy; + this.call = new SOAPCall(); + this.call.transportURI = transportURI; + this.call.verifySourceHeader = verifySourceHeader; + this.target = target; + this.soapVersion = soapVersion; + var encoding = new SOAPEncoding(); + if (soapVersion == 0) { + encoding = encoding.getAssociatedEncoding("http://schemas.xmlsoap.org/soap/encoding/",false); + } + else { + encoding = encoding.getAssociatedEncoding("http://www.w3.org/2001/09/soap-encoding",false); + } + this.call.encoding = encoding; // Get the encoding first in case we need it +} + +SOAPProxy.prototype = +{ + proxy: null, // Specific proxy + active: null, // Asynchronous call which is currently active, if any + call: null, // Call object which receives encoding + target: null, // Target object for encoding + soapVersion: null, // SOAP version for encoding + method: null, // Method, if any, for decoding of results + complete: null, // Handler to receive results, if any + result: null, // Result which may be returned from synchronous call + oncompletion: null,// Higher-level result handler + invoke: function(method, headers, parameters, complete, oncompletion) + { + if (this.active != null) + this.active.abort(); + + this.method = method; + this.complete = complete; + this.result = null; + this.oncompletion = oncompletion; + this.call.encode( + this.soapVersion, + method, + this.target, + headers != null ? headers.length : 0, headers, + parameters != null ? parameters.length : 0, parameters); + + if (!this.call.verifySourceHeader) + netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); + + if (oncompletion != null) + { + this.active = this.call.asyncInvoke(this); + return; + } + else + { + this.active = null; + var response = null; + var status = 0; + try { + response = this.call.invoke(); + } + catch (e) { + status = e; + } + this.handleResponse(response, this.call, status, true); + return this.result; + } + }, + handleResponse: function(response, call, status, complete) + { + var headers = null; + var parameters = null; + if (status != 0) { + var report = "SOAP {" + this.target + "}" + this.method + " call failed to call server " + + this.call.transportURI +": " + status; + this.log(status, report); + } + else { + // Was there a SOAP fault in the response? + var fault = response.fault; + if (fault != null) { + var report = "SOAP {" + this.target + "}" + this.method + " call resulted in fault: {" + + fault.faultNamespaceURI + "}" + fault.faultCode + ": " + fault.faultString; + status = 0x80004005; + this.log(status, report); + } + else if (response != null) { + headers = response.getHeaderBlocks({}); + parameters = response.getParameters(this.method == null,{}); + } + } + this.complete(this.proxy,headers,parameters); + return true; + }, + getType: function(name, uri) + { + if (uri == null) { + uri = "http://www.w3.org/2001/XMLSchema"; + } + try { + var result = this.call.encoding.schemaCollection.getType(name, uri); + if (result != null) return result; + } + catch (e) {} + var report = "Type {" + uri + "}" + name + " not found."; + throw this.log(0x80004005, report); + }, + loadTypes: function(uri) + { + try { + this.call.collection.load(uri); + return; + } + catch (e) {} + var report = "Unable to load schema file " + uri; + throw this.log(0x80004005, report); + }, + log: function(status, message) + { + alert(message); // Comment this out to avoid raising descriptive dialog boxes for failed SOAP calls + return status; + } +} diff --git a/extensions/webservices/soap/tests/soapstatistics.html b/extensions/webservices/soap/tests/soapstatistics.html index c98af0f95740..5f99e81aa6f0 100644 --- a/extensions/webservices/soap/tests/soapstatistics.html +++ b/extensions/webservices/soap/tests/soapstatistics.html @@ -1,81 +1,63 @@ - +

SOAP Test: Statistics

-This passes an array to request the average and standard deviation. +This passes an array to request the average and standard deviation. This +uses the low-level SOAP API of Mozilla directly, not hiding the use of the +API in separate proxy objects as other examples may do. +

View the source of this page for details on how it was called. If you +compile mozilla DEBUG, the message sent and received will be logged to the +console.

This works by calling a SOAP service listed on -X Methods Website. View the source of this -page for details on how it was called. If you compile mozilla DEBUG, the message sent and received will be logged to the console. -

Experimenters may wish to add other tests which exercize services, with specific -user interfaces such as the one in this test. +X Methods Website using the low-level +SOAP API in Mozilla. +

Since this service is not friendly to untrusted applets, it may not be +called without requesting additional privileges from the user. It can be +made friendly by accepting the verifySource header or by loading the page +and proxy from the domain of the service. +

Experimenters may wish to add other tests which exercize services, with +specific user interfaces such as the one in this test. -

-

- +

SOAP call did not complete. Look at the Javascript console to determine why. diff --git a/extensions/webservices/soap/tests/soapunscramble.html b/extensions/webservices/soap/tests/soapunscramble.html index feef0b84b6c2..c36eb8067eca 100644 --- a/extensions/webservices/soap/tests/soapunscramble.html +++ b/extensions/webservices/soap/tests/soapunscramble.html @@ -3,109 +3,62 @@

SOAP Test: Unscramble

-The entered word will be unscrambled against a dictionary. Other services found on -X Methods Website. View the source of this -page for details on how it was called. If you compile mozilla DEBUG, the message sent and received will be logged to the console. -

Experimenters may wish to add other tests which exercize services, with specific -user interfaces such as the one in this test. +The entered word will be unscrambled against a dictionary. +

This works by calling a SOAP service. View the source +of this page for details on how it was called. If you compile mozilla DEBUG, +the message sent and received will be logged to the console. This loads js files +soapunscrambleproxy.js which relies on +soapproxy.js, which implement a SOAP proxy on top +of the low level SOAP API in Mozilla. In a future version of Mozilla, it +should be possible to construct SOAP proxies directly from the wsdl file. +

Since this service is friendly to untrusted applets, it may be +called without requesting additional privileges from the user. +

Other services are available on the +X Methods Website. +Experimenters may wish to create other tests which exercize services, with +specific user interfaces. + +

@@ -113,8 +66,6 @@ function loadLanguages() - - + diff --git a/extensions/webservices/soap/tests/soapunscrambleproxy.js b/extensions/webservices/soap/tests/soapunscrambleproxy.js new file mode 100644 index 000000000000..9a1d6af69169 --- /dev/null +++ b/extensions/webservices/soap/tests/soapunscrambleproxy.js @@ -0,0 +1,58 @@ +function Unscramble() +{ + this.PROXY = new SOAPProxy(this, 0, + "http://ray.dsl.xmission.com:8080/soap/servlet/rpcrouter", + "http://soaptests.mozilla.org/unscramble", + true); // true = friendly to untrusted applets +} + +// Object to proxy methods + +Unscramble.prototype = +{ + // Standard items on all SOAP proxies using SOAPProxy. + PROXY: null, + // Proxy-specific items + unscramble: function(language, word, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + type = this.PROXY.getType("string"); + return this.PROXY.invoke( + "unscramble", + null, new Array( + new SOAPParameter(language,"language",null,type), + new SOAPParameter(word,"word",null,type)), + function(proxy, headers, parameters) // This interprets the response + { + proxy.PROXY.result = null; + if (parameters != null) { + var parameter = parameters[0]; + // The following line can be used to force a result type + // parameter.schemaType = proxy.PROXY.getType("boolean"); + proxy.PROXY.result = parameter.value; + } + if (proxy.PROXY.oncompletion != null) { + proxy.PROXY.oncompletion(proxy.PROXY.result); + } + }, oncompletion); + }, + languages: function(oncompletion) + { + var type = null; + return this.PROXY.invoke("languages",null,null, + function(proxy, headers, parameters) // This interprets the response + { + proxy.PROXY.result = null; + if (parameters != null) { + var parameter = parameters[0]; + // The following line can be used to force a result type + // parameter.schemaType = proxy.PROXY.getType("boolean"); + proxy.PROXY.result = parameter.value; + } + if (proxy.PROXY.oncompletion != null) { + proxy.PROXY.oncompletion(proxy.PROXY.result); + } + }, oncompletion); + } +} diff --git a/extensions/xmlextras/docs/Soap_Scripts_in_Mozilla.html b/extensions/xmlextras/docs/Soap_Scripts_in_Mozilla.html index 0a37dbccf354..dba1e70b7986 100644 --- a/extensions/xmlextras/docs/Soap_Scripts_in_Mozilla.html +++ b/extensions/xmlextras/docs/Soap_Scripts_in_Mozilla.html @@ -1,1367 +1,1438 @@ - + Soap Scripts in Mozilla - -

+ +

SOAP Scripts in Mozilla

- February 16, 2002
- + February 16, 2002
+

Ray Whitmer

- +

Abstract

- -
Microsoft and others have advocated - SOAP as a way to encode and exchange public data structures between agents - on the web, which is now becoming a web standard at W3C (see the multiple - submissions and working documents related to SOAP in the list of - W3C current drafts - ). 
-
- The browser client is the most universal web agent in existence, and - Javascript is the standard, interoperable way of scripting browsers.  - Scriptable SOAP in browsers gives clients and servers more to say to -each other through existing http-xml request services, providing scripts - with persistence, database, and access to other web services not tied -to the request and response cycles of the HTML-based user interface.  - Web data structures, exchanged in a platform-neutral way, should become -as fundamental to web agents as web content is today.  The key to this -is a very natural binding to the data of Javascript so that the script can -simply use the data instead of tediously encoding and extracting the data + +
Microsoft and others have advocated + SOAP as a way to encode and exchange public data structures between + agents on the web, which is now becoming a web standard at W3C (see +the multiple submissions and working documents related to SOAP in the list +of W3C current drafts + ). 
+
+ The browser client is the most universal web agent in existence, + and Javascript is the standard, interoperable way of scripting browsers.  + Scriptable SOAP in browsers gives clients and servers more to say to +each other through existing http-xml request services, providing scripts + with persistence, database, and access to other web services not tied to + the request and response cycles of the HTML-based user interface.  + Web data structures, exchanged in a platform-neutral way, should become +as fundamental to web agents as web content is today.  The key to this +is a very natural binding to the data of Javascript so that the script can +simply use the data instead of tediously encoding and extracting the data from the XML.

-
- -

- 0 Table of Contents

-
1 SOAP Services -
-
- 2 SOAP Blocks -
-
2.1 Parameters -
- 2.2 Header Blocks -
- 2.3 Encodings -
-
- 3 Using the Mozilla -Low-Level SOAP API -
-
3.1 Conventions Used -Below in -
- 3.2 Basic Operations of SOAP -
- 3.3 Beyond Basic Operations -
- 3.4 Header Operations -
- 3.5 Non-RPC Operations -
- 3.6 SOAPBlock and -SOAPMessage Supertypes -
- 3.7 More Operations -
- 3.8 Using Schema Types -
- 3.9 Customization of Encodings -
- 3.10 Security Operations -
-
- 4 Future Features -
-
4.1 Access to SOAP -as Proxies -
- 4.2 Arbitrary Graphs of Data -
- 4.3 SOAP With Attachments -
- 4.4 New Transports -and Local Services -
- 4.5 Standards -
-
- 5 Samples and Testing -
-
- 6 Object Interfaces -
-

- 1 SOAP Services

- There are a number of sources for services available on the web - being set up, such as the XMethods -website - which the Mozilla implementation has used for some tests and use -cases.  Apache also provides modules for SOAP that have been used to -author services for purposes of testing the Mozilla implementation (and -entertainment).  Once it is set up, it is as simple as writing -a service function in Javascript, Java, or any other of a number of supported -languages and then writing a service description in XML to deploy the service.  - There are toolkits available from Microsoft and other webserver providers - for authoring such services as well.
- -

- 2 SOAP Blocks

- -

- 2.1 Parameters
-

- SOAP-based services exchange message envelopes which contain blocks - of XML data roughly corresponding to the parameters of a service call.  - When an rpc-style message is exchanged, blocks representing the regular - parameter blocks are placed inside an element which identifies the object - and method being invoked, which is placed inside the body.  In a -non-RPC message, the blocks are placed directly inside the body instead -of under the method element. 
- -

- 2.2 Header Blocks
-

- If there are blocks which are optional or independently added or - processed, these are carried in the header with an assigned role and -marked if the recipient is required to understand them before trying to -process the message.
- -

- 2.3 Encodings
-

- Interpretation of each block depends upon the encoding that was - used, which is clearly specified in the message.  If the standard - SOAP encoding is used, then XML Schema types control the interpretation - of the data within each block.
- -

- 3 Using the Mozilla Low-Level SOAP API

- To use the low-level API, the user creates a SOAPCall object, -encodes the function call with a list of headers and regular parameters, -and invokes the call, which returns a response which contains the results -of the service call including a fault generated by the service which processed - the message if it failed, output parameters, and/or header blocks.  -If the call is invoked asynchronously, then a function is supplied by -the caller which receives the response when it arrives from the remote -service.
-
- Besides Javascript, the below-described operations should also -generally work for other xpconnect-supported languages in Mozilla such -as C++/XPCOM and Python, because language-independent cross-platform -interfaces and architectures were used.
- -

- 3.1 Conventions Used Below in Descriptions of Operations
-

- Names or descriptions in angle brackets represent values or objects - matching the name or description.  These may be literal, constructed - via "new", or variables.  Occasionally the same syntax may represent -script performing an operation.  Quoted angle brackets indicate a -character string of the described type.
-
- So the following sample operation:
- -
    -
  • <Foo> = new Foo( - <FooFact> );
  • -
  • <Foo>.bar = - <any value or object>;
  • -
  • <Baz> = - <Foo>.find("<name> - ");
  • -
  • <find out what you have>
  • - -
- might be replaced in a real Javascript program:
-
- var myFoo = new Foo(new FooFact("always","Great","Baz"));
- myFoo.bar = 3.14159265;
- var myGreatBaz = myFoo.find("Great");
- if (checkBaz(myGreatBaz)) {
-   alert(myGreatBaz.description);
- }
-

- where "myFoo" is a variable holding an object of type Foo and myGreatBaz - is a variable holding an object of type Baz.
- -

- 3.2 Basic Operations of SOAP
-

- The following basic SOAP operations is nearly all that most users -of SOAP need to do.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Basic Operation
-
How to Do It
-
Create a parameter block, setting the Javascript - value and name for rpc-style call.
-
- -
    -
  • <SOAPParameter> - = new SOAPParameter(<any value or object> - , "<name>");
  • -
  •  // or
  • -
  • <SOAPParameter> - = new SOAPParameter();
  • -
  • <SOAPParameter> - .value = <any value or object> - ;
  • -
  • <SOAPParameter> - .name = "<name>";
  • - - -
-
Set parameters in a Javascript array.
-
- -
    -
  • <SOAPParameter array> - = new Array(<SOAPParameter> - <,...>);
  • -
  • // or
  • -
  • <SOAPParameter array> - = new Array();
  • -
  • <SOAPParameter array> - [0] = <SOAPParameter> ;
  • -
  • <...>
  • - - -
-
Create and encode the parameters in a basic - SOAP 1.1 rpc-style message.
-
- -
    -
  • <SOAPCall> - = new SOAPCall();
  • -
  • <SOAPCall> - .transportURI = "<http-based service URI> - "
  • -
  • <SOAPCall> - .encode(0, "<method name> ", -" <target object namespaceURI> - ", 0, null, <SOAPParameter array> - .length, <SOAPParameter array> - );
  • - - -
-
Invoke  call (send call message and - receive response message).
-
- -
    -
  • <SOAPResponse> - = <SOAPCall>.invoke();
  • -
  • <process the response -- - see below>
  • -
  • // or
  • -
  • <SOAPCall> - .asyncInvoke( <SOAPResponseListener> - );
  • - - -
-
Handle completion of async SOAP call.
-
- -
    -
  • function <SOAPResponseListener - name>(<SOAPResponse> - , <SOAPCall>, - <error>)
  • -
  • {
  • -
  •   if (error != 0) {
  • -
  •      <action - to be taken on failure to transport message>
  • -
  •   }
  • -
  •   <process the response - -- see below>
  • -
  • }
  • - - -
-
Get service's failure, if any.
-
- -
    -
  • <SOAPFault> - = <SOAPResponse> - .fault;
  • -
  • if (<SOAPFault> - != null) {
  • -
  •   <namespace URI string> - = <SOAPFault> .faultNamespace;
  • -
  •   <name string> - = <SOAPFault> .faultCode;
  • -
  •   <summary string> - = <SOAPFault> .faultString;
  • -
  •   <actor URI string> - = <SOAPFault> .actorURI;
  • -
  •   <action to be taken - in case of fault>
  • -
  • }
  • - - -
-
Get returned parameters from rpc-style -response .
-
- -
    -
  • <SOAPParameter array> - = <SOAPResponse> .getParameters(true, - {});
  • - - -
-
Process Javascript values, etc. of returned - parameters.
-
- -
    -
  • for (i = 0; i != <SOAPParameter - array>.length; i++)
  • -
  • {
  • -
  •   <SOAPParameter> - = <SOAPParameter array> -[i];
  • -
  •   <value or object> - = <SOAPParameter> .value;
  • -
  •   <name string> - = <SOAPParameter> .name;
  • -
  •   <checking and processing - of result>
  • -
  • }
  • - - -
-
- -

- -

- 3.3 Beyond Basic Operations
-

- The above operations are what every user of the lowlevel SOAP toolkit - needs to invoke service requests and interpret the responses, as is easily - seen by looking at some of the samples (see -section 5 -).  The bulk of the operations that follow will be used less frequently, -but they need to be there for certain cases.  The casual reader may -wish to skip the remaining tables of operations in this section, or scan -for features of interest.
- -

- 3.4 Header Operations

- The user can send or receive header blocks for information not carried in -the body of the message.  Sending and receiving header blocks is not -very different from sending and receiving parameters as described above.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Header Operation
-
How to Do It
-
Create a Header Block.
-
- -
    -
  • <SOAPHeaderBlock> - = new SOAPHeaderBlock(<any value or object> - , "<name>", " - <namespaceURI> ");
  • -
  •  // or
  • -
  • <SOAPHeaderBlock> - = new SOAPHeaderBlock();
  • -
  • <SOAPHeaderBlock> - .value = <any value or object> - ;
  • -
  • <SOAPHeaderBlock> - .name = "<name> ";
  • -
  • <SOAPHeaderBlock> - .namespaceURI = "<namespaceURI> - ";
  • - - -
-
Establish non-default role of a header block -.
-
- -
    -
  • <SOAPHeaderBlock> - .actorURI = "<actorURI> -";
  • -
  • <SOAPHeaderBlock> - .mustUnderstand = <true or false> - ;
  • - - -
-
Set header blocks in a Javascript array.
-
- -
    -
  • <SOAPHeaderBlock array> - = new Array(<SOAPHeaderBlock> - <,...>);
  • -
  • // or
  • -
  • <SOAPHeaderBlock array> - = new Array();
  • -
  • <SOAPHeaderBlock array> - [0] = <SOAPHeaderBlock> -;
  • -
  • <...>
  • - - -
-
Encode the headers in a SOAP 1.1 rpc-style - message.
-
- -
    -
  • <SOAPCall> - .encode(0, "<method name> ", -" <target object namespaceURI> - ", <SOAPHeaderBlock array> -.length, <SOAPHeaderBlock array> - , <SOAPParameter array> -.length, <SOAPParameter array> - );
  • - - -
-
Get returned headers.
-
- -
    -
  • <SOAPHeaderBlock array> - = <SOAPResponse> .getHeaderBlocks(true, - {});
  • - - -
-
Process Javascript values, etc. of returned - headers.
-
- -
    -
  • for (i = 0; i != <SOAPHeaderBlock - array>.length; i++)
  • -
  • {
  • -
  •   <SOAPHeaderBlock> - = <SOAPHeaderBlock array> - [i];
  • -
  •   <value or object> - = <SOAPHeaderBlock> .value;
  • -
  •   <name string> - = <SOAPHeaderBlock> .name;
  • -
  •   <namespace URI string> - = <SOAPHeaderBlock> .namespaceURI;
  • -
  •   <actor URI string> - = <SOAPHeaderBlock> .actorURI;
  • -
  •   <must understand -boolean> = <SOAPHeaderBlock> - .mustUnderstand;
    -
  • -
  •   <checking and processing - of result>
  • -
  • }
  • - - -
-
- -

- 3.5 Non-RPC Operations

- For messages that are not intended to model RPC calls, there is -no method name or target object URI, and the parameters generally have -namespaceURIs.  Otherwise, the basic operations are the same.
-
- - - - - - - - - - - - - - - - - - - - - -
Non-RPC Operation
-
How to Do It
-
Setting the namespaceURI of a non-RPC parameter -.
-
- -
    -
  • <SOAPParameter> - = new SOAPHeaderBlock(<any value or object> - , "<name>", " - <namespaceURI> ");
  • -
  •  // or
  • -
  • <SOAPParameter> - .namespaceURI = "<namespaceURI> - ";
  • - - -
-
Encode a SOAP 1.1 non-rpc-style message.
-
- -
    -
  • <SOAPCall> - .encode(0, "", "", <header block array> - .length, <header block array> - , <parameter array>.length, - <parameter array> - )
  • - - -
-
Get returned parameters from non-rpc-style - response.
-
- -
    -
  • <SOAPParameter array> - = <SOAPResponse> .getParameters(false, - {});
  • - - -
-
- -

- 3.6 SOAPBlock and SOAPMessage Supertypes

- In the following operations, SOAPHeaderBlock and SOAPParameter may be - referred to collectively as SOAPBlock objects.
-
- Also, SOAPCall and SOAPResponse may be referred to collectively as SOAPMessage - objects.
- -

- 3.7 More Operations

- The following table contains less-common operations.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Operation
-
How to Do It
-
Set or get an actionURI carried for the -message in the HTTP header.
-
- -
    -
  • <SOAPMessage> - .actionURI = "<action URI> - ";
  • -
  • // or
    -
  • -
  • <action URI string> - = <SOAPMessage> .actionURI;
    -
  • - - -
-
Directly set the DOM element to represent - the block's encoded content, bypassing encoding of the value on the -block .
-
- -
    -
  • <SOAPBlock> - .element = <DOM Element> ;
    -
  • - - -
-
-
Directly get the DOM element that represents - the block's encoded content, bypassing decoding of the value on the block -.
-
- -
    -
  • <DOM Element> - = <SOAPBlock>.element;
    -
  • - - -
-
Directly get the DOM element containing -the SOAP envelope , header, or body of an encoded message.
-
- -
    -
  • <DOM Element> - = <SOAPMessage> -.envelope;
  • -
  • // OR
  • -
  • <DOM Element> - = <SOAPMessage> -.header;
  • -
  • // or
  • -
  • <DOM Element> - = <SOAPMessage> -.body;
    -
  • - - -
-
Directly set the DOM document to represent - the message's entire encoded content, bypassing encoding.
-
- -
    -
  • <SOAPMessage> - .message = <DOM Document> -;
    -
  • - - -
-
-
Directly get the DOM document of an encoded - message, bypassing encoding.
-
- -
    -
  • <DOM Document> - = <SOAPMessage> -.message;
    -
  • - - -
-
-
Get the method name and target object URI, -if any, of the message.
-
-
    -
  • <method name string> - = <SOAPMessage> .methodName;
  • -
  • <object URI string> - = <SOAPMessage> .targetObjectURI;
  • - -
-
Get the actual SOAP version of an encoded - message -- 0 for SOAP 1.1 and 1 for SOAP 1.2.
-
- -
    -
  • <version integer> - = <SOAPMessage> .version;
  • - - -
-
Encode a SOAP 1.2 message.
-
- -
    -
  • <SOAPCall> - .encode(1, "<method name> ", -" <target object namespaceURI> - ", <SOAPHeaderBlock array> -.length, <SOAPHeaderBlock array> - , <SOAPParameter array> -.length, <SOAPParameter array> - );
  • - - -
-
Abort an in-progress async call -- this -does not necessarily cause the message not to be processed, but the API -stops listening for it to complete.
-
- -
    -
  • <SOAPCallCompletion> - = <SOAPCall> .asyncInvoke( - <SOAPResponseListener>);
  • -
  • <...>
  • -
  • <SOAPCallCompletion> - .abort();
    -
  • - - -
-
Get the encoding (style) used to encode -or decode message.  Not available on an unencoded call unless explicitly - set -- use following operation instead.
-
- -
    -
  • <SOAPEncoding> - = <SOAPMessage> -.encoding;
  • - - -
-
Set the primary encoding style used to -encode a message.  A new SOAPEncoding objects (created by new) starts -a different set of associated encodings, which are only reached (or created) -in association by calling getAssociatedEncoding().
-
- -
    -
  • <SOAPEncoding> - = new SOAPEncoding();
  • -
  • <SOAPEncoding> - = <SOAPEncoding> - .getAssociatedEncoding(" <style URI> - ",<true to create> );
  • -
  • <customize encodings>
    -
  • -
  • <SOAPMessage> - .encoding = <SOAPEncoding> - ;
  • - - -
-
Specify the encoding style used to encode - or decode specific blocks.
-
- -
    -
  • <SOAPEncoding> - = <SOAPEncoding> - .getAssociatedEncoding(" <style URI> - ",<true to create> );
  • -
  • <SOAPBlock> - .encoding = <SOAPEncoding> -;
  • - - -
-
- -

- -

- 3.8 Using Schema Types

- The default SOAP encodings implement most XML built-in types, -as well as the basic SOAP types.  In the absence of a specified -type, native values and objects will typically be correctly identified -and mapped to a corresponding schema type.  There may be no perfect -correspondance between Javascript and XML Schema types, so they will be -mapped to a close corresponding type.
-
- Providing specific schema types can help the encoding produce the desired -results.  For example, multidimensional arrays must be decoded as -nested arrays because Javascript only supports single-dimensional arrays. - If no schema type is given that identifies the array as multidimensional, - then a multidimensional array will be encoded as a nested array.  An - accurate schema type can also help when encoding or decoding of other -complex objects such as SOAP structs.
-
- Schema types may be attached to blocks before encoding or before - accessing the value of a returned object to better control the encoding - and decoding.  All schema types which are used to control the encoding - and decoding should come from the schema collection available through - the encoding (associated encodings share the same collection).
-
- - - - - - - - - - - - - - - - - - - - - -
Schema Operation
-
How to Do It
-
Get the schema collection of all associated - encodings.
-
- -
    -
  • <SchemaCollection> - = <SOAPEncoding> .schemaCollection;
  • - - -
-
Load additional schema types from XML Schema - files into the schema collection.
-
-
- -
    -
  • <SchemaLoader> - = <SchemaCollection> - ;
  • -
  • // and then
    -
  • -
  • <SchemaLoader> - .load(" <schema file URI> - ");
  • -
  • //  or
    -
  • -
  • <SchemaLoader> - .loadAsync(" <schemaURI> -", <load completion function> - );
  • - - -
-
Specify the XML Schema type to be used when - encoding or decoding a block.  Note: decoding a block occurs when -you get its value, so after getting a block from an XML-encoded message such -as a SOAPResponse, attaching type info affects evaluation of the value. - -
    -
  • <SchemaType> - = <SchemaCollection> - .getType(" <name> ", " - <namespaceURI> ");
  • -
  • if (<schemaType != null) - {
    -
  • -
  •   - <SOAPBlock> .schemaType = - <SchemaType> ;
  • -
  • }
  • -
    - -
-
- -

- -

- -

- 3.9 Customization of Encodings

- A specific encoding must have encoders and decoders to function. -  Encoding or decoding of data always begins with a default encoder - or decoder, which then may lookup additional encoders or decoders by -a string key as required.  For either the 1.1 or 1.2 version of -the default SOAP encoding, the default encoder and decoder use the schema -type's namespaceURI and name, seperated by "#" to look up additional decoders -for specific schema types.  Additional encoders and decoders registered - within the default encodings will automatically be invoked as an object - identified as the corresponding type is processed.  Other encodings - can use any scheme for looking up additional encoders and decoders, or -none at all if all the work is done by the default encoder and decoder -for that encoding.  Encodings which are registered with the system, -such as the default SOAP 1.1 or 1.2 encodings, automatically come with encoders -and decoders built-in, whereas new encodings have none.  Custom encodings - may also reuse existing encoders and decoders, but there is no guarantee - which are present, since the mapping may vary when handling an infinite -set of types with a finite set of encoders and decoders.
-
- Also, there has been a proliferation of different schema URIs -to describe the same types, which may often even be intermixed in usage, but -expected to function properly.  Most notably, the SOAP 1.1 specification -used unofficial XML Schema URIs and SOAP encoding schema URIs not compatible - with those which are in the W3C XML Schema and drafts for SOAP 1.2 specifications. -  It is not uncommon to send and receive messages using the URIs -specified in the SOAP 1.1 specification, but described by WSDL using XML -Schema that uses the official, correct URIs.  To solve these problems, -the encoding permits schema URIs to be aliased, both on input and on -output, so that only the SOAP 1.2 and official XMLSchema types are used -internally, while supporting the other URIs.  Mappings of this type -are built-in for encodings which are registered with the system, such as -the default encodings of SOAP 1.1 and 1.2.  The default URI mappings -may be manipulated, for example, to output SOAP 1.1 but with the official -XML Schema URIs, without having to rewrite any encoders or decoders.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Encoding Customization Operation
-
How to Do It
-
Create a custom encoder. - -
    -
  • function <New DOM Element> - = <SOAPEncoder name>( - <SOAPEncoding>, <value> - , <namespaceURI> , - <name>, <SchemaType> - , <SOAPAttachments> , - <Parent DOM Element> )
  • -
  • {
  • -
  • <...>
    -
  • -
  • <DOM Element> - = <Parent DOM Element> - .ownerDocument.createElementNS(namespaceURI,name);
    -
  • -
  • <...>
    -
  • -
  •   <Parent DOM Element> - .appendChild(<DOM Element> - );
    -
  • -
  •   return <DOM Element> - ;
    -
  • -
  • }
  • -
  • // and
  • -
  • <SOAPEncoding> - .defaultEncoder = <SOAPEncoder> - ;
  • -
  • // or
  • -
  • <SOAPEncoding> - .setEncoder(" <namespaceURI> - # <name> ", - <SOAPEncoder> );
  • - - -
-
-
Create a custom decoder.
-
- -
    -
  • function <New DOM Element> - = <SOAPDecoder name>( - <SOAPEncoding>, <DOM -Element> , <SchemaType> - , <SOAPAttachments>)
  • -
  • {
  • -
  • <...>
  • -
  •   return <value or object> - ;
    -
  • -
  • }
  • -
  • // and
  • -
  • <SOAPEncoding> - .defaultDecoder = <SOAPDecoder> - ;
  • -
  • // or
  • -
  • <SOAPEncoding> - .setDecoder(" <namespaceURI> - # <name> ", - <SOAPDecoder> );
  • - - -
-
-
Map or unmap schema  URI aliases
-
- -
    -
  • <SOAPEncoding> - .mapSchemaURI(" <external URI> - ", "<internal URI>", - <true to alias output> );
  • -
  • // or
  • -
  • <SOAPEncoding> - .unmapSchemaURI(" <external URI> - ");
  • - - -
-
Register modified or alternative encodings, - making them automatically available to all SOAP scripts in the system
-
Install an appropriate registerable encoding - in components/<new encoding> - .js
-
- -

- 3.10 Security Operations

- In browsers, the risk of allowing an externally-loaded untrusted - script to request information within a firewall and send it elsewhere -has lead to very tight sandbox restrictions, permitting external browser -scripts to only request xml data and services on the same domain from -which the script was loaded.  This same restriction applies by default -to SOAP requests executed within the browser.  This means that an -externally-loaded script cannot, for example, call other external services -unless they are in the same domain from which the page was loaded.  Even -if the page was loaded from the user's own hard disk, the script must ask -for permission to make SOAP calls.  A browser enhancement is planned -to permit more-precise control of trust between scripts and specific available -services.
-
- Since SOAP permits headers to be added to messages that require -interpretation by the recipient, this API can request a header to warn -the recipient that it was sent by an untrusted script loaded from a specific - sourceURI, and no good SOAP service will unintentionally disregard the warning. -  If the envelope is verified and the header is added, then the browser - can allow the script less-restricted access to services outside of its -source domain.  Accepting this header permits SOAP services that -really do want to be universally available to allow access without forcing -the user to risk breach of the firewall protections and/or request user -permission.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Security Operation
-
How to Do It
-
Mark the call with a verifySourceHeader -so, if the service permits it, the browser can make the call with less -privilege and risk.
-
- -
    -
  • <SOAPCall> - .verifySourceHeader = true;
  • - - -
-
Request risky privileges within a local -or signed script to make an unverified SOAP calls to other domains.
-
- -
    -
  • netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead")
  • - - -
-
Modify the security settings in the preferences - file, allowing scripts from some domain to make risky SOAP calls to -any other domain, which is disabled by default.Add the setting in default/pref/all.js - :
- - -
    -
  • pref("<some domain prefix> - .SOAPCall.invoke","allAccess");
  • - - -
-
Modify the security settings in the preferences - file to disallow even dross-domain calls made with verifySource header, -which is generally permitted by default.
-
Remove or comment out the setting in -default/pref/all.js :
- -
    -
  • pref("capability.policy.default.SOAPCall.invokeVerifySourceHeader","allAccess");
  • - -
-
Register alternative transport mechanisms, - making available alternative transports to all scripts and perhaps creating - alternative security models for protocols besides http(s).  See - -the futures section - for more info on possible transports.
-
Install an appropriate registerable encoding - in components/<new transport> - .js.
-
- -

- -

- 4 Future Features

- -

- 4.1 Access to SOAP as Proxies

- Although a SOAP call can generally be accomplished using this -low-level API in a few dozen lines, WSDL is a standard that contains -enough information to enable this to occur with no manual argument and -type setup required.  An implementation is under development that - instantiates web service proxies complete with appropriate xpconnect interfaces - by simply loading and using information out of a WSDL file that describes -the service.  The proxy's interface has dynamically-generated methods -named appropriately to match the services described in the WSDL file which -accept arguments of the appropriate data types and calls the appropriate - low-level SOAP functions with the appropriate type information, making -it even simpler not only to invoke services from Javascript code, but to -associate appropriate schema types loaded from the WSDL file with the arguments. - This higher level is not available in the first release.  When -it is available, invoking WSDL-described features gets even easier and more -reliable.
- -

- -

- 4.2 Arbitrary Graphs of Data

- The SOAP specification allows objects to be passed as arguments - which may have originally referenced other objects that are not owned - in a pure hierarchy.  This is represented by using an href attribute. -  Due to the problems with leaking reference counts in COM objects - with cyclic references, this has not been implemented yet.  Also, - the output of a cyclicly-referencing set of objects has not been implemented. -  Outgoing objects that do not reference cyclicly currently create - separate copies for each reference to an object, and with cycles output - may never complete.  On input, hrefs are currently ignored.  In - the future it may be possible to solve this and transmit and receive arbitrarily-referencing - objects, but the solution is more complex than just using weak references.
- -

- 4.3 SOAP With Attachments

- Many clients and servers now support automatically transmitting - large Mime with a SOAP message by encapsulating it in MIME, DIME, or -other enveloping formats.  This has been anticipated in the APIs, -but the SOAPAttachments API is currently a placeholder for this future -feature which is not yet implemented.
- -

- 4.4 New Transports and Local Services

- Obvious new transports that would be useful include e-mail -- permitting - a SOAP exchange to occur as an email exchange --, instant messenger for - peer to peer, and a local manager with a controlled security model but -without the size limitations, enabling SOAP to save and restore arbitrary -Javascript application data on the client.  These services require -a framework, already being planned, for permitting the browser to host -services as well as being a good client.  There are obviously security -issues to be solved to make these successful.
- -

- 4.5 Standards

- The interfaces to the objects of this API were designed to be as simple - and universal as possible.  We believe that we should submit a note - describing them and sponser a W3C proposal to standardize an API for invoking - this type of service from web clients.  In such an effort, changes -would be inevitable and welcomed as the price for interoperability within -web clients.  Part of this API are incomplete, specifically the SOAPAttachments - object, which will be defined to allow encoders and decoders to control -uniqueness and referencing, both for resolving arbitrary graphs of data -(as described above in "Arbitrary Graphs of Data") as well as for automatically -resolving references to attached objects carried with the message in an -external encapsulation (as described above in "SOAP With Attachments").
- -

- 5 Samples and Testing

- Some samples or tests have been created, but these commonly only use - the basic operations.  Some of the higher-level features are being - tested by the prosy code (as described above in "Access to SOAP as Proxies"). -  While most of the methods of this API are well-exercized internally - during even basic invocation, we need samples that test and demonstrate -external access to the functions.  What exists today is mozilla/extensions/xmlextras/tests - /soap*.html.  We welcome the contribution of tests by other parties. -  Most samples work but at least one (soapcall.html) is no longer correctly - configured to talk to a server -- but it genrates interesting messages -anyway.

- To test the services, it is - interesting to turn on MOZ_DEBUG=1, because even if you do not debug the - program, this causes the exchanged SOAP messages to be displayed on the -standard output if you run from a command shell where this is visible.
+ +

+ 0 Table of Contents

+ +
1 SOAP Services +
+
+ 2 SOAP Blocks +
+ +
2.1 Parameters +
+ 2.2 Header Blocks +
+ 2.3 Encodings +
+
+ 3 Using the Mozilla + Low-Level SOAP API +
+ +
3.1 Conventions +Used Below in +
+ 3.2 Basic Operations of +SOAP +
+ 3.3 Beyond Basic Operations +
+ 3.4 Header Operations +
+ 3.5 Non-RPC Operations +
+ 3.6 SOAPBlock + and SOAPMessage Supertypes +
+ 3.7 More Operations +
+ 3.8 Using Schema Types +
+ 3.9 Customization of Encodings +
+ 3.10 Security Operations +
+
+ 4 Future Features +
+ +
4.1 Access to +SOAP as Proxies +
+ 4.2 Arbitrary Graphs of + Data +
+ 4.3 SOAP With Attachments +
+ 4.4 New Transports + and Local Services +
+ 4.5 Standards +
+
+ 5 Samples and Testing +
+
+ 6 Object Interfaces +
+ +

+ 1 SOAP Services

+ There are a number of sources for services available on the + web being set up, such as the XMethods + website + which the Mozilla implementation has used for some tests and use + cases.  Apache also provides modules for SOAP that have been used to + author services for purposes of testing the Mozilla implementation (and + entertainment).  Once it is set up, it is as simple as writing +a service function in Javascript, Java, or any other of a number of supported + languages and then writing a service description in XML to deploy the service.  + There are toolkits available from Microsoft and other webserver providers + for authoring such services as well.
+ +

+ 2 SOAP Blocks

+ +

+ 2.1 Parameters
+

+ SOAP-based services exchange message envelopes which contain + blocks of XML data roughly corresponding to the parameters of a service + call.  When an rpc-style message is exchanged, blocks representing + the regular parameter blocks are placed inside an element which identifies + the object and method being invoked, which is placed inside the body. +  In a non-RPC message, the blocks are placed directly inside the + body instead of under the method element. 
+ +

+ 2.2 Header Blocks
+

+ If there are blocks which are optional or independently added + or processed, these are carried in the header with an assigned role +and marked if the recipient is required to understand them before trying +to process the message.
+ +

+ 2.3 Encodings
+

+ Interpretation of each block depends upon the encoding that +was used, which is clearly specified in the message.  If the standard + SOAP encoding is used, then XML Schema types control the interpretation + of the data within each block.
+ +

+ 3 Using the Mozilla Low-Level SOAP API

+ To use the low-level API, the user creates a SOAPCall object, + encodes the function call with a list of headers and regular parameters, + and invokes the call, which returns a response which contains the results + of the service call including a fault generated by the service which processed + the message if it failed, output parameters, and/or header blocks.  + If the call is invoked asynchronously, then a function is supplied by + the caller which receives the response when it arrives from the remote + service.
+
+ Besides Javascript, the below-described operations should also + generally work for other xpconnect-supported languages in Mozilla +such as C++/XPCOM and Python, because language-independent cross-platform + interfaces and architectures were used.
+ +

+ 3.1 Conventions Used Below in Descriptions of Operations
+

+ Names or descriptions in angle brackets represent values or +objects matching the name or description.  These may be literal, +constructed via "new", or variables.  Occasionally the same syntax +may represent script performing an operation.  Quoted angle brackets +indicate a character string of the described type.
+
+ So the following sample operation:
+ +
    +
  • <Foo> = new +Foo( <FooFact> );
  • +
  • <Foo>.bar = + <any value or object> +;
  • +
  • <Baz> = + <Foo>.find("<name> + ");
  • +
  • <find out what you have>
  • + +
+ might be replaced in a real Javascript program:
+
+ var myFoo = new Foo(new FooFact("always","Great","Baz"));
+ myFoo.bar = 3.14159265;
+ var myGreatBaz = myFoo.find("Great");
+ if (checkBaz(myGreatBaz)) {
+   alert(myGreatBaz.description);
+ }
+

+ where "myFoo" is a variable holding an object of type Foo and + myGreatBaz is a variable holding an object of type Baz.
+ +

+ 3.2 Basic Operations of SOAP
+

+ The following basic SOAP operations is nearly all that most +users of SOAP need to do.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Basic Operation
+
How to Do It
+
Create a parameter block, setting the + Javascript value and name for rpc-style call.
+
+ + +
    +
  • <SOAPParameter> + = new SOAPParameter(<any value or object> + , "<name>");
  • +
  •  // or
  • +
  • <SOAPParameter> + = new SOAPParameter();
  • +
  • <SOAPParameter> + .value = <any value or object> + ;
  • +
  • <SOAPParameter> + .name = "<name>";
  • + + +
+
Set parameters in a Javascript array.
+
+ + +
    +
  • <SOAPParameter array> + = new Array(<SOAPParameter> + <,...>);
  • +
  • // or
  • +
  • <SOAPParameter array> + = new Array();
  • +
  • <SOAPParameter array> + [0] = <SOAPParameter> + ;
  • +
  • <...>
  • + + +
+
Create and encode the parameters in +a basic SOAP 1.1 rpc-style message.
+
+ + +
    +
  • <SOAPCall> + = new SOAPCall();
  • +
  • <SOAPCall> + .transportURI = "<http-based service URI> + "
  • +
  • <SOAPCall> + .encode(0, "<method name> + ", " <target object namespaceURI> + ", 0, null, <SOAPParameter array> + .length, <SOAPParameter array> + );
  • + + +
+
Invoke  call (send call message +and receive response message).
+
+ + +
    +
  • <SOAPResponse> + = <SOAPCall> +.invoke();
  • +
  • <process the response + -- see below>
  • +
  • // or
  • +
  • <SOAPCall> + .asyncInvoke( <SOAPResponseListener> + );
  • + + +
+
Handle completion of async SOAP call.
+
+ + +
    +
  • function <SOAPResponseListener + name>(<SOAPResponse> + , <SOAPCall>, + <error>)
  • +
  • {
  • +
  •   if (error != 0) {
  • +
  •      <action + to be taken on failure to transport message>
  • +
  •   }
  • +
  •   <process the +response -- see below>
  • +
  • }
  • + + +
+
Get service's failure, if any.
+
+ + +
    +
  • <SOAPFault> + = <SOAPResponse> + .fault;
  • +
  • if (<SOAPFault> + != null) {
  • +
  •   <namespace URI + string> = <SOAPFault> + .faultNamespace;
  • +
  •   <name string> + = <SOAPFault> .faultCode;
  • +
  •   <summary string> + = <SOAPFault> .faultString;
  • +
  •   <actor URI string> + = <SOAPFault> .actorURI;
  • +
  •   <action to be +taken in case of fault>
  • +
  • }
  • + + +
+
Get returned parameters from rpc-style + response .
+
+ + +
    +
  • <SOAPParameter array> + = <SOAPResponse> .getParameters(true, + {});
  • + + +
+
Process Javascript values, etc. of returned + parameters.
+
+ + +
    +
  • for (i = 0; i != <SOAPParameter + array>.length; i++)
  • +
  • {
  • +
  •   <SOAPParameter> + = <SOAPParameter array> + [i];
  • +
  •   <value or object> + = <SOAPParameter> .value;
  • +
  •   <name string> + = <SOAPParameter> .name;
  • +
  •   <checking and +processing of result>
  • +
  • }
  • + + +
+
+ +

+ +

+ 3.3 Beyond Basic Operations
+

+ The above operations are what every user of the lowlevel SOAP toolkit + needs to invoke service requests and interpret the responses, as is easily + seen by looking at some of the samples (see + section 5 + ).  The bulk of the operations that follow will be used less frequently, + but they need to be there for certain cases.  The casual reader may +wish to skip the remaining tables of operations in this section, or scan +for features of interest.
+ +

+ 3.4 Header Operations

+ The user can send or receive header blocks for information not carried + in the body of the message.  Sending and receiving header blocks + is not very different from sending and receiving parameters as described + above.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Header Operation
+
How to Do It
+
Create a Header Block.
+
+ + +
    +
  • <SOAPHeaderBlock> + = new SOAPHeaderBlock(<any value or + object> , "<name> + ", " <namespaceURI> ");
  • +
  •  // or
  • +
  • <SOAPHeaderBlock> + = new SOAPHeaderBlock();
  • +
  • <SOAPHeaderBlock> + .value = <any value or object> + ;
  • +
  • <SOAPHeaderBlock> + .name = "<name> ";
  • +
  • <SOAPHeaderBlock> + .namespaceURI = "<namespaceURI> + ";
  • + + +
+
Establish non-default role of a header + block .
+
+ + +
    +
  • <SOAPHeaderBlock> + .actorURI = "<actorURI> + ";
  • +
  • <SOAPHeaderBlock> + .mustUnderstand = <true or false> + ;
  • + + +
+
Set header blocks in a Javascript array.
+
+ + +
    +
  • <SOAPHeaderBlock array> + = new Array(<SOAPHeaderBlock> + <,...>);
  • +
  • // or
  • +
  • <SOAPHeaderBlock array> + = new Array();
  • +
  • <SOAPHeaderBlock array> + [0] = <SOAPHeaderBlock> + ;
  • +
  • <...>
  • + + +
+
Encode the headers in a SOAP 1.1 rpc-style + message.
+
+ + +
    +
  • <SOAPCall> + .encode(0, "<method name> + ", " <target object namespaceURI> + ", <SOAPHeaderBlock array> + .length, <SOAPHeaderBlock array> + , <SOAPParameter array> + .length, <SOAPParameter array> + );
  • + + +
+
Get returned headers.
+
+ + +
    +
  • <SOAPHeaderBlock array> + = <SOAPResponse> .getHeaderBlocks(true, + {});
  • + + +
+
Process Javascript values, etc. of returned + headers.
+
+ + +
    +
  • for (i = 0; i != <SOAPHeaderBlock + array>.length; i++)
  • +
  • {
  • +
  •   <SOAPHeaderBlock> + = <SOAPHeaderBlock array> + [i];
  • +
  •   <value or object> + = <SOAPHeaderBlock> +.value;
  • +
  •   <name string> + = <SOAPHeaderBlock> +.name;
  • +
  •   <namespace URI + string> = <SOAPHeaderBlock> + .namespaceURI;
  • +
  •   <actor URI string> + = <SOAPHeaderBlock> +.actorURI;
  • +
  •   <must understand + boolean> = <SOAPHeaderBlock> + .mustUnderstand;
    +
  • +
  •   <checking and +processing of result>
  • +
  • }
  • + + +
+
+ +

+ 3.5 Non-RPC Operations

+ For messages that are not intended to model RPC calls, there +is no method name or target object URI, and the parameters generally +have namespaceURIs.  Otherwise, the basic operations are the same.
+
+ + + + + + + + + + + + + + + + + + + + + + +
Non-RPC Operation
+
How to Do It
+
Setting the namespaceURI of a non-RPC +parameter .
+
+ + +
    +
  • <SOAPParameter> + = new SOAPHeaderBlock(<any value or + object> , "<name> + ", " <namespaceURI> ");
  • +
  •  // or
  • +
  • <SOAPParameter> + .namespaceURI = "<namespaceURI> + ";
  • + + +
+
Encode a SOAP 1.1 non-rpc-style message.
+
+ + +
    +
  • <SOAPCall> + .encode(0, "", "", <header block array> + .length, <header block array> + , <parameter array>.length, + <parameter array> + )
  • + + +
+
Get returned parameters from non-rpc-style + response.
+
+ + +
    +
  • <SOAPParameter array> + = <SOAPResponse> .getParameters(false, + {});
  • + + +
+
+ +

+ 3.6 SOAPBlock and SOAPMessage Supertypes

+ In the following operations, SOAPHeaderBlock and SOAPParameter may + be referred to collectively as SOAPBlock objects.
+
+ Also, SOAPCall and SOAPResponse may be referred to collectively as +SOAPMessage objects.
+ +

+ 3.7 More Operations

+ The following table contains less-common operations.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Operation
+
How to Do It
+
Set or get an actionURI carried for the + message in the HTTP header.
+
+ + +
    +
  • <SOAPMessage> + .actionURI = "<action URI> + ";
  • +
  • // or
    +
  • +
  • <action URI string> + = <SOAPMessage> .actionURI;
    +
  • + + +
+
Directly set the DOM element to represent + the block's encoded content, bypassing encoding of the value on the +block .
+
+ + +
    +
  • <SOAPBlock> + .element = <DOM Element> + ;
    +
  • + + +
+
+
Directly get the DOM element that represents + the block's encoded content, bypassing decoding of the value on the +block .
+
+ + +
    +
  • <DOM Element> + = <SOAPBlock> + .element;
    +
  • + + +
+
Directly get the DOM element containing + the SOAP envelope , header, or body of an encoded message.
+
+ + +
    +
  • <DOM Element> + = <SOAPMessage> + .envelope;
  • +
  • // OR
  • +
  • <DOM Element> + = <SOAPMessage> + .header;
  • +
  • // or
  • +
  • <DOM Element> + = <SOAPMessage> + .body;
    +
  • + + +
+
Directly set the DOM document to represent + the message's entire encoded content, bypassing encoding.
+
+ + +
    +
  • <SOAPMessage> + .message = <DOM Document> + ;
    +
  • + + +
+
+
Directly get the DOM document of an encoded + message, bypassing encoding.
+
+ + +
    +
  • <DOM Document> + = <SOAPMessage> + .message;
    +
  • + + +
+
+
Get the method name and target object +URI, if any, of the message.
+
+ +
    +
  • <method name string> + = <SOAPMessage> .methodName;
  • +
  • <object URI string> + = <SOAPMessage> .targetObjectURI;
  • + +
+
Get the actual SOAP version of an encoded + message -- 0 for SOAP 1.1 and 1 for SOAP 1.2.
+
+ + +
    +
  • <version integer> + = <SOAPMessage> .version;
  • + + +
+
Encode a SOAP 1.2 message.
+
+ + +
    +
  • <SOAPCall> + .encode(1, "<method name> + ", " <target object namespaceURI> + ", <SOAPHeaderBlock array> + .length, <SOAPHeaderBlock array> + , <SOAPParameter array> + .length, <SOAPParameter array> + );
  • + + +
+
Abort an in-progress async call -- this + does not necessarily cause the message not to be processed, but the API + stops listening for it to complete.
+
+ + +
    +
  • <SOAPCallCompletion> + = <SOAPCall> .asyncInvoke( + <SOAPResponseListener>);
  • +
  • <...>
  • +
  • <SOAPCallCompletion> + .abort();
    +
  • + + +
+
Get the encoding (style) used to encode + or decode message.  Not available on an unencoded call unless explicitly + set -- use following operation instead.
+
+ + +
    +
  • <SOAPEncoding> + = <SOAPMessage> + .encoding;
  • + + +
+
Set the primary encoding style used +to encode a message.  A new SOAPEncoding objects (created by new) starts + a different set of associated encodings, which are only reached (or created) + in association by calling getAssociatedEncoding().
+
+ + +
    +
  • <SOAPEncoding> + = new SOAPEncoding();
  • +
  • <SOAPEncoding> + = <SOAPEncoding> + .getAssociatedEncoding(" <style URI> + ",<true to create> );
  • +
  • <customize encodings>
    +
  • +
  • <SOAPMessage> + .encoding = <SOAPEncoding> + ;
  • + + +
+
Specify the encoding style used to encode + or decode specific blocks.
+
+ + +
    +
  • <SOAPEncoding> + = <SOAPEncoding> + .getAssociatedEncoding(" <style URI> + ",<true to create> );
  • +
  • <SOAPBlock> + .encoding = <SOAPEncoding> + ;
  • + + +
+
+ +

+ +

+ 3.8 Using Schema Types

+ The default SOAP encodings implement most XML built-in types, + as well as the basic SOAP types.  In the absence of a specified +type, native values and objects will typically be correctly identified +and mapped to a corresponding schema type.  There may be no perfect +correspondence between Javascript and XML Schema types, so they will be mapped +to a close corresponding type.
+
+ Providing specific schema types can help the encoding produce the desired + results.  For example, multidimensional arrays must be decoded +as nested arrays because Javascript only supports single-dimensional + arrays.  If no schema type is given that identifies the array as +multidimensional, then a multidimensional array will be encoded as a +nested array.  An accurate schema type can also help when encoding + or decoding of other complex objects such as SOAP structs.
+
+ Schema types may be attached to blocks before encoding or before + accessing the value of a returned object to better control the encoding + and decoding.  All schema types which are used to control the encoding + and decoding should come from the schema collection available through + the encoding (associated encodings share the same collection).
+
+ + + + + + + + + + + + + + + + + + + + + + +
Schema Operation
+
How to Do It
+
Get the schema collection of all associated + encodings.
+
+ + +
    +
  • <SchemaCollection> + = <SOAPEncoding> .schemaCollection;
  • + + +
+
Load additional schema types from XML +Schema files into the schema collection.
+
+
+ + +
    +
  • <SchemaLoader> + = <SchemaCollection> + ;
  • +
  • // and then
    +
  • +
  • <SchemaLoader> + .load(" <schema file URI> + ");
  • +
  • //  or
    +
  • +
  • <SchemaLoader> + .loadAsync(" <schemaURI> + ", <load completion function> + );
  • + + +
+
Specify the XML Schema type to be used + when encoding or decoding a block.  Note: decoding a block occurs + when you get its value, so after getting a block from an XML-encoded message + such as a SOAPResponse, attaching type info affects evaluation of the value. + + +
    +
  • <SchemaType> + = <SchemaCollection> + .getType(" <name> ", +" <namespaceURI> ");
  • +
  • if (<schemaType != null) + {
    +
  • +
  •   + <SOAPBlock> .schemaType = + <SchemaType> ;
  • +
  • }
  • +
    + +
+
+ +

+ +

+ +

+ 3.9 Customization of Encodings

+ A specific encoding must have encoders and decoders to function. +  Encoding or decoding of data always begins with a default encoder + or decoder, which then may lookup additional encoders or decoders by + a string key as required.  For either the 1.1 or 1.2 version of +the default SOAP encoding, the default encoder and decoder use the schema +type's namespaceURI and name, seperated by "#" to look up additional decoders +for specific schema types.  Additional encoders and decoders registered + within the default encodings will automatically be invoked as an object + identified as the corresponding type is processed.  Other encodings + can use any scheme for looking up additional encoders and decoders, or +none at all if all the work is done by the default encoder and decoder for +that encoding.  Encodings which are registered with the system, such +as the default SOAP 1.1 or 1.2 encodings, automatically come with encoders +and decoders built-in, whereas new encodings have none.  Custom encodings + may also reuse existing encoders and decoders, but there is no guarantee + which are present, since the mapping may vary when handling an infinite + set of types with a finite set of encoders and decoders.
+
+ Also, there has been a proliferation of different schema +URIs to describe the same types, which may often even be intermixed in +usage, but expected to function properly.  Most notably, the SOAP +1.1 specification used unofficial XML Schema URIs and SOAP encoding +schema URIs not compatible with those which are in the W3C XML Schema +and drafts for SOAP 1.2 specifications.  It is not uncommon to +send and receive messages using the URIs specified in the SOAP 1.1 specification, +but described by WSDL using XML Schema that uses the official, correct +URIs.  To solve these problems, the encoding permits schema URIs +to be aliased, both on input and on output, so that only the SOAP 1.2 +and official XMLSchema types are used internally, while supporting the +other URIs.  Mappings of this type are built-in for encodings which +are registered with the system, such as the default encodings of SOAP +1.1 and 1.2.  The default URI mappings may be manipulated, for example, +to output SOAP 1.1 but with the official XML Schema URIs, without having +to rewrite any encoders or decoders.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Encoding Customization Operation
+
How to Do It
+
Create a custom encoder. + + +
    +
  • function <New DOM Element> + = <SOAPEncoder name> +( <SOAPEncoding>, +<value> , <namespaceURI> + , <name>, +<SchemaType> , <SOAPAttachments> + , <Parent DOM Element> + )
  • +
  • {
  • +
  • <...>
    +
  • +
  • <DOM Element> + = <Parent DOM Element> + .ownerDocument.createElementNS(namespaceURI,name);
    +
  • +
  • <...>
    +
  • +
  •   <Parent DOM Element> + .appendChild(<DOM Element> + );
    +
  • +
  •   return <DOM Element> + ;
    +
  • +
  • }
  • +
  • // and
  • +
  • <SOAPEncoding> + .defaultEncoder = <SOAPEncoder> + ;
  • +
  • // or
  • +
  • <SOAPEncoding> + .setEncoder(" <namespaceURI> + # <name> ", + <SOAPEncoder> );
  • + + +
+
+
Create a custom decoder.
+
+ + +
    +
  • function <New DOM Element> + = <SOAPDecoder name> +( <SOAPEncoding>, +<DOM Element> , <SchemaType> + , <SOAPAttachments>)
  • +
  • {
  • +
  • <...>
  • +
  •   return <value or +object> ;
    +
  • +
  • }
  • +
  • // and
  • +
  • <SOAPEncoding> + .defaultDecoder = <SOAPDecoder> + ;
  • +
  • // or
  • +
  • <SOAPEncoding> + .setDecoder(" <namespaceURI> + # <name> ", + <SOAPDecoder> );
  • + + +
+
+
Map or unmap schema  URI aliases
+
+ + +
    +
  • <SOAPEncoding> + .mapSchemaURI(" <external URI> + ", "<internal URI>", + <true to alias output> + );
  • +
  • // or
  • +
  • <SOAPEncoding> + .unmapSchemaURI(" <external URI> + ");
  • + + +
+
Register modified or alternative encodings, + making them automatically available to all SOAP scripts in the system
+
Install an appropriate registerable encoding + in components/<new encoding> + .js
+
+ +

+ 3.10 Security Operations

+ In browsers, the risk of allowing an externally-loaded untrusted + script to request information within a firewall and send it elsewhere + has lead to very tight sandbox restrictions, permitting external browser + scripts to only request xml data and services on the same domain from +which the script was loaded.  This same restriction applies by default +to SOAP requests executed within the browser.  This means that an +externally-loaded script cannot, for example, call other external services +unless they are in the same domain from which the page was loaded.  Even +if the page was loaded from the user's own hard disk, the script must ask +for permission to make SOAP calls.  A browser enhancement is planned +to permit more-precise control of trust between scripts and specific available +services.
+
+ Since SOAP permits headers to be added to messages that require + interpretation by the recipient, this API can request a header to warn + the recipient that it was sent by an untrusted script loaded from a +specific sourceURI, and no good SOAP service will unintentionally disregard +the warning.  If the envelope is verified and the header is added, +then the browser can allow the script less-restricted access to services +outside of its source domain.  Accepting this header permits SOAP +services that really do want to be universally available to allow access +without forcing the user to risk breach of the firewall protections and/or +request user permission.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Security Operation
+
How to Do It
+
Mark the call with a verifySourceHeader + so, if the service permits it, the browser can make the call with less + privilege and risk.
+
+ + +
    +
  • <SOAPCall> + .verifySourceHeader = true;
  • + + +
+
Request risky privileges within a local + or signed script to make an unverified SOAP calls to other domains.
+
+ + +
    +
  • netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead")
  • + + +
+
Modify the security settings in the +preferences file, allowing scripts from some domain to make risky SOAP +calls to any other domain, which is disabled by default.Add the setting in default/pref/all.js + :
+ + +
    +
  • pref("<some domain prefix> + .SOAPCall.invoke","allAccess");
  • + + +
+
Modify the security settings in the preferences + file to disallow even dross-domain calls made with verifySource header, + which is generally permitted by default.
+
Remove or comment out the setting in + default/pref/all.js :
+ + +
    +
  • pref("capability.policy.default.SOAPCall.invokeVerifySourceHeader","allAccess");
  • + + +
+
Register alternative transport mechanisms, + making available alternative transports to all scripts and perhaps creating + alternative security models for protocols besides http(s).  See + the futures + section + for more info on possible transports.
+
Install an appropriate registerable +encoding in components/<new transport> + .js.
+
+ +

+ +

+ 4 Future Features

+ +

+ 4.1 Access to SOAP as Proxies

+ Although a SOAP call can generally be accomplished using this + low-level API in a few dozen lines, WSDL is a standard that contains + enough information to enable this to occur with no manual argument and +type setup required.  An implementation is under development that +instantiates web service proxies complete with appropriate xpconnect interfaces + by simply loading and using information out of a WSDL file that describes + the service.  The proxy's interface has dynamically-generated methods + named appropriately to match the services described in the WSDL file +which accept arguments of the appropriate data types and calls the appropriate + low-level SOAP functions with the appropriate type information, making + it even simpler not only to invoke services from Javascript code, but +to associate appropriate schema types loaded from the WSDL file with the +arguments.  This higher level is not available in the first release. + When it is available, invoking WSDL-described features gets even easier +and more reliable.
+ +

+ +

+ 4.2 Arbitrary Graphs of Data

+ The SOAP specification allows objects to be passed as arguments + which may have originally referenced other objects that are not owned + in a pure hierarchy.  This is represented by using an href attribute. +  Due to the problems with leaking reference counts in COM objects + with cyclic references, this has not been implemented yet.  Also, + the output of a cyclic-referencing set of objects has not been implemented. +  Outputting of objects that do not have cyclic references currently +creates separate copies for each reference to an object, and with cycles +output may never complete.  On input, hrefs are currently ignored. + In the future it may be possible to solve this and transmit and +receive arbitrarily-referencing objects, but the solution is more complex +than just using weak references.
+ +

+ 4.3 SOAP With Attachments

+ Many clients and servers now support automatically transmitting + large Mime with a SOAP message by encapsulating it in MIME, DIME, or + other enveloping formats.  This has been anticipated in the APIs, + but the SOAPAttachments API is currently a place holder for this future + feature which is not yet implemented.
+ +

+ 4.4 New Transports and Local Services

+ Obvious new transports that would be useful include e-mail -- + permitting a SOAP exchange to occur as an email exchange --, instant + messenger for peer to peer, and a local manager with a controlled security + model but without the size limitations, enabling SOAP to save and restore + arbitrary Javascript application data on the client.  These services + require a framework, already being planned, for permitting the browser + to host services as well as being a good client.  There are obviously + security issues to be solved to make these successful.
+ +

+ 4.5 Standards

+ The interfaces to the objects of this API were designed to be as + simple and universal as possible.  We believe that we should submit + a note describing them and sponsor a W3C proposal to standardize an API + for invoking this type of service from web clients.  In such an effort, + changes would be inevitable and welcomed as the price for interoperability + within web clients.  Part of this API are incomplete, specifically +the SOAPAttachments object, which will be defined to allow encoders and +decoders to control uniqueness and referencing, both for resolving arbitrary +graphs of data (as described above in "Arbitrary Graphs of Data") as well +as for automatically resolving references to attached objects carried with +the message in an external encapsulation (as described above in "SOAP With +Attachments").
+ +

+ 5 Samples and Testing

+ What tests and samples exist today can be found in the mozilla tree at + mozilla/extensions/xmlextras/tests/soap*.html.  We welcome the + contribution of tests and samples by other parties.

- A SOAP service server has been set up at ray.dsl.xmission.com where - additional services may be deployed to help test and demo the features -for scripting SOAP in Mozilla.  No home page describes the Apache -Jakarta server on port 8080 which is the test facility, but this is currently -used in two tests in the previously-mentioned directory: soapisprimenumber.html - and soapunscramble.html.  Adding services is as easy as writing functions - in Javascript, Java, or other supported languages and describing the deployment - in XML.  Disclaimer: as this is merely an end-subscriber DSL service, - if the server becomes too widely published, it may have to be shut down.
-
- Bugs should be reported as usual.
- + To test the services, it is interesting to turn on MOZ_DEBUG=1, +because even if you do not debug the program, this causes the exchanged +SOAP messages to be displayed on the standard output if you run from a command +shell where this is visible.
+
+ A SOAP service server has been set up at ray.dsl.xmission.com where + additional services may be deployed to help test and demo the features +for scripting SOAP in Mozilla.  No home page describes the Apache +Jakarta server on port 8080 which is the test facility, but this is currently +used in two tests in the previously-mentioned directory: soapisprimenumber.html + and soapunscramble.html.  Adding services is as easy as writing functions + in Javascript, Java, or other supported languages and describing the deployment + in XML.  Disclaimer: as this is merely an end-subscriber DSL service, + if the server becomes too widely published, it may have to be shut down.
+
+SOAP Bugs should be reported using bugzilla.mozilla.org, as a new bug on +Browser, specifying the XML component, and assigned to +rayw@netscape.com +, which is the email address you can use to contact me directly if you have +an issue that cannot be solved in the newsgroup +netscape.public.mozilla.xml + or by filing a bug.

- 6 Object Interfaces

-
- + 6 Object Interfaces + Descriptions of the interfaces of the SOAP objects are found + here + .
+

-
-
- +
+
+ diff --git a/extensions/xmlextras/docs/soap/SOAPAPIs.txt b/extensions/xmlextras/docs/soap/SOAPAPIs.txt new file mode 100644 index 000000000000..fc94c2a5cc76 --- /dev/null +++ b/extensions/xmlextras/docs/soap/SOAPAPIs.txt @@ -0,0 +1,921 @@ +# Doxyfile 1.2.14 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# General configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = "Mozilla SOAP" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, +# German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, +# Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish. + +OUTPUT_LANGUAGE = English + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these class will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited +# members of a class in the documentation of that class as if those members were +# ordinary class members. Constructors, destructors and assignment operators of +# the base classes will not be shown. + +INLINE_INHERITED_MEMB = YES + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. It is allowed to use relative paths in the argument list. + +STRIP_FROM_PATH = + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower case letters. If set to YES upper case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# users are adviced to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explict @brief command for a brief description. + +JAVADOC_AUTOBRIEF = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# reimplements. + +INHERIT_DOCS = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 2 + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consist of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. +# For instance some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = ../../soap/public + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp +# *.h++ *.idl *.odl + +FILE_PATTERNS = *.idl + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = ../../soap/public/nsISOAPAttachments.idl ../../soap/public/nsISOAPPropertyBagMutator.idl ../../soap/public/nsISOAPService.idl ../../soap/public/nsISOAPServiceRegistry.idl ../../soap/public/nsISOAPTransport.idl ../../soap/public/nsISOAPTransportListener.idl + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories +# that are symbolic links (a Unix filesystem feature) are excluded from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = ../../tests + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = soap*.html soap*.js + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. + +INPUT_FILTER = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse. + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = nsI + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the Html help documentation and to the tree view. + +TOC_EXPAND = YES + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, +# or Internet explorer 4.0+). Note that for large projects the tree generation +# can take a very long time. In such cases it is better to disable this feature. +# Windows users are probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = letter + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimised for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assigments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_XML = NO + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_PREDEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line and do not end with a semicolon. Such function macros are typically +# used for boiler-plate code, and will confuse the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::addtions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES tag can be used to specify one or more tagfiles. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or +# super classes. Setting the tag to NO turns the diagrams off. Note that this +# option is superceded by the HAVE_DOT option below. This is only a fallback. It is +# recommended to install and use dot, since it yield more powerful graphs. + +CLASS_DIAGRAMS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are gif, jpg, and png +# If left blank gif will be used. + +DOT_IMAGE_FORMAT = gif + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found on the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 1024 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermedate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::addtions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO + +# The CGI_NAME tag should be the name of the CGI script that +# starts the search engine (doxysearch) with the correct parameters. +# A script with this name will be generated by doxygen. + +CGI_NAME = search.cgi + +# The CGI_URL tag should be the absolute URL to the directory where the +# cgi binaries are located. See the documentation of your http daemon for +# details. + +CGI_URL = + +# The DOC_URL tag should be the absolute URL to the directory where the +# documentation is located. If left blank the absolute path to the +# documentation, with file:// prepended to it, will be used. + +DOC_URL = + +# The DOC_ABSPATH tag should be the absolute path to the directory where the +# documentation is located. If left blank the directory on the local machine +# will be used. + +DOC_ABSPATH = + +# The BIN_ABSPATH tag must point to the directory where the doxysearch binary +# is installed. + +BIN_ABSPATH = /usr/local/bin/ + +# The EXT_DOC_PATHS tag can be used to specify one or more paths to +# documentation generated for other projects. This allows doxysearch to search +# the documentation for these projects as well. + +EXT_DOC_PATHS = diff --git a/extensions/xmlextras/docs/soap/html/annotated.html b/extensions/xmlextras/docs/soap/html/annotated.html new file mode 100644 index 000000000000..cf51d38e6d23 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/annotated.html @@ -0,0 +1,29 @@ + + +Annotated Index + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

Mozilla SOAP Compound List

Here are the classes, structs, unions and interfaces with brief descriptions: + + + + + + + + + + + + +
nsISOAPBlock
nsISOAPCall
nsISOAPCallCompletion
nsISOAPDecoder
nsISOAPEncoder
nsISOAPEncoding
nsISOAPFault
nsISOAPHeaderBlock
nsISOAPMessage
nsISOAPParameter
nsISOAPResponse
nsISOAPResponseListener
+
Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/doxygen.css b/extensions/xmlextras/docs/soap/html/doxygen.css new file mode 100644 index 000000000000..841f709a7fbe --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/doxygen.css @@ -0,0 +1,49 @@ +H1 { text-align: center; } +CAPTION { font-weight: bold } +A.qindex {} +A.qindexRef {} +A.el { text-decoration: none; font-weight: bold } +A.elRef { font-weight: bold } +A.code { text-decoration: none; font-weight: normal; color: #4444ee } +A.codeRef { font-weight: normal; color: #4444ee } +A:hover { text-decoration: none; background-color: #f2f2ff } +DL.el { margin-left: -1cm } +DIV.fragment { width: 100%; border: none; background-color: #eeeeee } +DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } +TD.md { background-color: #f2f2ff; font-weight: bold; } +TD.mdname1 { background-color: #f2f2ff; font-weight: bold; color: #602020; } +TD.mdname { background-color: #f2f2ff; font-weight: bold; color: #602020; width: 600px; } +DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold } +DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller } +BODY { background: white } +TD.indexkey { + background-color: #eeeeff; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px +} +TD.indexvalue { + background-color: #eeeeff; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px +} +FONT.keyword { color: #008000 } +FONT.keywordtype { color: #604020 } +FONT.keywordflow { color: #e08000 } +FONT.comment { color: #800000 } +FONT.preprocessor { color: #806020 } +FONT.stringliteral { color: #002080 } +FONT.charliteral { color: #008080 } diff --git a/extensions/xmlextras/docs/soap/html/doxygen.gif b/extensions/xmlextras/docs/soap/html/doxygen.gif new file mode 100644 index 0000000000000000000000000000000000000000..192c83ce05078f6475c1e81290fdadded6d25467 GIT binary patch literal 2378 zcmV-Q3AOe|Nk%w1VQv650OtSz|Nr8jARx9SCIA26|Nq?I-^TyU%-^!I{`}Lwzp4NK z!AJl$=%to{Pn!Dk|EsHq~G7iKRhfS z91pmqSoh+E_1twJ9~uAt+rPi6_u+;4>Y>o9Ci2iy|NPV1&W%7nHQd#u_u_{7@UK2Q zC_q3tKtMO!(wV!kc>C|K*1%`_>!ID+u=e4G1Ox;A{M1}gCc3O{-`~UU#x(HCLb<7A z|Nh(_8x0>E5g#2C_1$(`Q6}BmuleerKRqwCoITdTXWY`6`s<+8yjR)DfImJmJ~}1- z_{iGMj36K!_vVw=#&tb69{caE{rSkgy`H408y_AP9~%w7zokGx zIN#j4{Pn%`)@AzYq1efR@XJEq-oPFh2KL-_zrU#1#&y=fX7}cj@ybHdvO2!LoQBU|vkZw|@5Fh4$iw4-E!FJ}bVvm)y~rJv0@)w~d&FKADM1?!`1GB^lw+ zgkWG&J~<&iI3ZwPPeepJ?#4A98VdH^cH7dJwVXcO(wK#985kE3(5)_$d?@b5G(0pF z-Py0>vxI<15b0p7VOf*ylGM zmLI?j=JM6&Sb2uIr(S>pw!{Zp1AH*R0}wXI)(37e!QcQ)L?|H>^(@HXT5K_4NXSa)9_?J1IWMk&ArPV+x2A*5hJ`3_9pmOL-8$fD8EQ1jLAnDWmYz6G0N0&Y^=Ub09#f zrBqo_fe00ta6$|mArZp~(TZ?FJdDM+T!|MGV&>46PA|-ed&|C`>Sc3M6#o z&JGh$K*0|6P@wS+Bp~r92`Y$8!7BA&v4hDd&_RJD9dks2B&SS}G0m%B!BHnZQ$R~7 z#mH}6d}F_8m!*E21V3xh%3P) zk_-Am)RV*O8XPjk6k;3?Jnt<<0>J_cAj1MUzyU7^5CZ?ZLp_!Nzy zXPBNRY=8&;8+ZW^I=};Gbl`_HNJc%XaD*e$paVxZf&-@Lhbr{pi7!|KH@Z=V7rfvI z8+bxJq%g)c2$2VC_zNnY&<9F9F^Dtd$P=8{0UG=;h-IipACCA8LP$Xhgm}RQI`D!# zI;0+jZ~zRZC=LgVVu}tRf(zI6VIArP_%gcG0&hC%iG@i_P4+du5gD-+~OMdxX4Yea+k~8<~sMeQwazFJ2OgsC;$Ke literal 0 HcmV?d00001 diff --git a/extensions/xmlextras/docs/soap/html/files.html b/extensions/xmlextras/docs/soap/html/files.html new file mode 100644 index 000000000000..6b489d558abe --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/files.html @@ -0,0 +1,29 @@ + + +File Index + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

Mozilla SOAP File List

Here is a list of all documented files with brief descriptions: + + + + + + + + + + + + +
nsISOAPBlock.idl [code]
nsISOAPCall.idl [code]
nsISOAPCallCompletion.idl [code]
nsISOAPDecoder.idl [code]
nsISOAPEncoder.idl [code]
nsISOAPEncoding.idl [code]
nsISOAPFault.idl [code]
nsISOAPHeaderBlock.idl [code]
nsISOAPMessage.idl [code]
nsISOAPParameter.idl [code]
nsISOAPResponse.idl [code]
nsISOAPResponseListener.idl [code]
+
Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/functions.html b/extensions/xmlextras/docs/soap/html/functions.html new file mode 100644 index 000000000000..a33ac4d0033d --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/functions.html @@ -0,0 +1,67 @@ + + +Compound Member Index + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

Mozilla SOAP Compound Members

Here is a list of all documented class members with links to the classes they belong to: +
Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/hierarchy.html b/extensions/xmlextras/docs/soap/html/hierarchy.html new file mode 100644 index 000000000000..cf34c36d7609 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/hierarchy.html @@ -0,0 +1,33 @@ + + +Hierarchical Index + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

Mozilla SOAP Class Hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically: +
Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/index.html b/extensions/xmlextras/docs/soap/html/index.html new file mode 100644 index 000000000000..2f9cc5a83041 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/index.html @@ -0,0 +1,17 @@ + + +Main Page + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

Mozilla SOAP Documentation

+

+


Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPAttachments-members.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPAttachments-members.html new file mode 100644 index 000000000000..b614c85cff78 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPAttachments-members.html @@ -0,0 +1,18 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPAttachments Member List

This is the complete list of members for nsISOAPAttachments, including all inherited members. + + +
attach()nsISOAPAttachments
getAttachment(in AString aIdentifier)nsISOAPAttachments

Generated on Fri Mar 15 01:44:18 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPAttachments.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPAttachments.html new file mode 100644 index 000000000000..1b18f212385b --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPAttachments.html @@ -0,0 +1,97 @@ + + +nsISOAPAttachments interface Reference + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPAttachments Interface Reference

import "nsISOAPAttachments.idl"; +

+List of all members. + + + +

Public Methods

void getAttachment (in AString aIdentifier)
AString attach ()
+


Detailed Description

+This interface permits attachment of SOAP attachments. +

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + +
AString nsISOAPAttachments::attach  
+
+ + + + + +
+   + + +

+Attach an attachment to the message. +

+Appropriate argument(s) must be identified. +

+

+Returns:
+The identifier of the attachment, to be referenced in SOAP encoding
+

+ + + + +
+ + + + + + + + + + +
void nsISOAPAttachments::getAttachment in AString   aIdentifier
+
+ + + + + +
+   + + +

+Get the attachment associated with a particular identifier.

+Parameters:
+ + +
aIdentifier  +The identifier of the attachment to be accessed.
+
Appropriate return(s) must be identified.
+


The documentation for this interface was generated from the following file: +
Generated on Fri Mar 15 01:44:18 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPBlock-members.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPBlock-members.html new file mode 100644 index 000000000000..39255f52e0d7 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPBlock-members.html @@ -0,0 +1,23 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPBlock Member List

This is the complete list of members for nsISOAPBlock, including all inherited members. + + + + + + + +
elementnsISOAPBlock
encodingnsISOAPBlock
init(in nsISOAPAttachments aAttachments, in unsigned short aVersion)nsISOAPBlock
namensISOAPBlock
namespaceURInsISOAPBlock
schemaTypensISOAPBlock
valuensISOAPBlock

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPBlock.gif b/extensions/xmlextras/docs/soap/html/interfacensISOAPBlock.gif new file mode 100644 index 0000000000000000000000000000000000000000..27ba26a3b663cedbee1f422fdee768089a17f767 GIT binary patch literal 1150 zcmV-^1cCcUNk%w1VHyEY0P+9;|Ns9000960z@MLBkN^MxkN^MxkifveA^8LW00000 zEC2ui02%>M000C22)f+M)jwEHCXsWJks|0Q=&om3yc&_iw&HupQ zOGqplea58ngj_nGsU~!)lv1x(D|Wlna=%3{&xh$uZQGGe7@l$4 z1LAyibAv>HOn-P}c7Z*Cer5uB?}$ zsj{G?jI)wzh`ODglsc`i!Vtj`wxL$Nw;8mzsmjW=z{Auo#l+3ei_yN_&Ap^jdO6qC z!{wv0;M?EX-0a%E>ow@+uJy~(ce-n#v)=uX)k<`Xp1p&x5SqiMP!7X}NghJnB5|US ziWa9}%sBprBgBm!$%Rx1awLtCCNHL(gL37MmM&Moj7g4!&6_xL>fGs%rq3k?ehMAh zA}GaMQ*mgQTKijoNw{6$MGf)yPR(G zuFr8F96-Ig_3PNPYv0bjJ9Puz!;2puUIO{^=+A>s&%S+j0r2C?pHIKO{rmXy>)+46 zKmPv#=J_Y!fCLt3;DG{Ahv0$?Ht67e07fvtgA`V1p??ZqsNseiMhL-#9EK<&gBgx! z;)(rv_yC9~w&)^#CB7(Qiz+(6;*2Qx%WPwBKS0sE%?$_je zH8ybLfk_7G;|29SxugJFa`>cyJMuSVlT{LVB$;M%c_e{f+J~l^JVF>CgJY%%CzEH| z3Fn($HW+4)77$tHoqFPFB%gb($z`Bdk_l*|W2d zit6g@r)ds)>!5*F+iR`C{x>VMg{B(nv!;5h!L@5r3+|S_+RAKwnJ%ztmfV(#s=VY< zYGs$;MvJYv#1fj{pSnt`ucGL}8|}T7QhTqw%VO&(yU5}vt+xh$%PPe}y7{W3%3c~| zs~e}dt-8bRnz6sa(wlOz@!DxJ%Xz{W@qGf9Jn+p9odxhvbv|Sui6{3+G*Du zH2_l+ysq0?w#}>7e49!%mXi7^F5G9^7iNx#TR3;!i8sFB;f_as;Np@;S56}1mS_I& z%$j$uALO2geyoI|mkuH3rgu(x>a4>Ddh4364!h~E&tAFgwufGO?vCTmd+hE7FZ}St QlV@J>$S1FSdkFvlJ8~yq_y7O^ literal 0 HcmV?d00001 diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPBlock.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPBlock.html new file mode 100644 index 000000000000..3277ff6a6dd8 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPBlock.html @@ -0,0 +1,221 @@ + + +nsISOAPBlock interface Reference + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPBlock Interface Reference

import "nsISOAPBlock.idl"; +

+

Inheritance diagram for nsISOAPBlock: +

+ +nsISOAPHeaderBlock +nsISOAPParameter + +List of all members. + + + + + + + + + +

Public Methods

void init (in nsISOAPAttachments aAttachments, in unsigned short aVersion)

Public Attributes

attribute AString namespaceURI
attribute AString name
attribute nsISOAPEncoding encoding
attribute nsISchemaType schemaType
attribute nsIDOMElement element
attribute nsIVariant value
+

Detailed Description

+This interface encapsulates an arbitrary block to be used by the soap serialization or protocol. It presents the namespaceURI, name, encoding, schemaType, and value of the block. There are two different ways this may be used: +

+1. When created by a user for serialization, a value is set which is then used to encode the message. In this case, the user sets the value (or element in the case of a literal block) which is then encoded (unless it is the element) and incorporated into the document as it is encoded. +

+2. When requested by the user from a message that is to be decoded. In this case, an element is set on the block which is automatically decoded whenever the value attribute is accessed (possibly after the user sets the encoding or schemaType, or for literal blocks, the user just accesses the element and no decoding is performed. For SOAP which attachments, hidden attachments may also be associated from the message to the block so that later decoding which relies on the attachments is possible. +

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void nsISOAPBlock::init in nsISOAPAttachments   aAttachments,
in unsigned short   aVersion
+
+ + + + + +
+   + + +

+Initialize the block for additional decoding information.

+Parameters:
+ + + +
aAttachments  +Attachments in case this refers to them.
aVersion  +SOAP version for decoding special header attributes.
+
+


Member Data Documentation

+

+ + + + +
+ + +
attribute nsIDOMElement nsISOAPBlock::element +
+
+ + + + + +
+   + + +

+The element which is the encoded value of this block. If this is set, value, namespaceURI, and name becomes a computed attributes which are produced by decoding this element.

+

+ + + + +
+ + +
attribute nsISOAPEncoding nsISOAPBlock::encoding +
+
+ + + + + +
+   + + +

+The encoding that was / will be applied to the block. If this is blank and element is non-null, it becomes impossible to decode the block when the value is requested.

+

+ + + + +
+ + +
attribute AString nsISOAPBlock::name +
+
+ + + + + +
+   + + +

+The name of the block. If the block is left unnamed, it will be encoded using the element types defined in the SOAP-ENC schema. For example, <SOAP-ENC:int>45</SOAP-ENC:int> . If this is modified, element is set to null and all attributes computed from element revert to previous uncomputed values. If element is set, this becomes computed.

+

+ + + + +
+ + +
attribute AString nsISOAPBlock::namespaceURI +
+
+ + + + + +
+   + + +

+The namespace URI of the block. Ignored if name is null. If this is modified, element is set to null and all attributes computed from element revert to previous uncomputed values. If element is set, this becomes computed.

+

+ + + + +
+ + +
attribute nsISchemaType nsISOAPBlock::schemaType +
+
+ + + + + +
+   + + +

+The schema type used to encode or decode the block. If this is null, then the default encoder or decoder may

+

+ + + + +
+ + +
attribute nsIVariant nsISOAPBlock::value +
+
+ + + + + +
+   + + +

+The native value which is the decoded value of this block. If this is modified, element is set to null and all attributes computed from element revert to previous uncomputed values. If element is set, this becomes computed, relying on the value of encoding and schemaType each time it is computed.

+


Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPCall-members.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPCall-members.html new file mode 100644 index 000000000000..9203bd000a96 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPCall-members.html @@ -0,0 +1,35 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPCall Member List

This is the complete list of members for nsISOAPCall, including all inherited members. + + + + + + + + + + + + + + + + + + + +
actionURInsISOAPMessage
asyncInvoke(in nsISOAPResponseListener aListener)nsISOAPCall
bodynsISOAPMessage
encode(in unsigned short aVersion, in AString aMethodName, in AString aTargetObjectURI, in unsigned long aHeaderBlockCount,[array, size_is(aHeaderBlockCount)] in nsISOAPHeaderBlock aHeaderBlocks, in unsigned long aParameterCount,[array, size_is(aParameterCount)] in nsISOAPParameter aParameters)nsISOAPMessage
encodingnsISOAPMessage
envelopensISOAPMessage
getHeaderBlocks(out unsigned long aCount,[array, size_is(aCount), retval] out nsISOAPHeaderBlock aHeaderBlocks)nsISOAPMessage
getParameters(in boolean aDocumentStyle, out unsigned long aCount,[array, size_is(aCount), retval] out nsISOAPParameter aParameters)nsISOAPMessage
headernsISOAPMessage
invoke()nsISOAPCall
messagensISOAPMessage
methodNamensISOAPMessage
targetObjectURInsISOAPMessage
transportURInsISOAPCall
verifySourceHeadernsISOAPCall
versionnsISOAPMessage
VERSION_1_1 (defined in nsISOAPMessage)nsISOAPMessage
VERSION_1_2 (defined in nsISOAPMessage)nsISOAPMessage
VERSION_UNKNOWN (defined in nsISOAPMessage)nsISOAPMessage

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPCall.gif b/extensions/xmlextras/docs/soap/html/interfacensISOAPCall.gif new file mode 100644 index 0000000000000000000000000000000000000000..7f123caa1bc2359aa6344236e2cc2c3660ce89db GIT binary patch literal 675 zcmV;U0$lw^Nk%w1VR8Ua0P+9;|Ns9000960z@MLBkN^MxkN^MxkifveA^8LW00000 zEC2ui0CE6O000C2IJ(^aFv>}*l_KlSyZ>M)j%4X6W~#1idk$_a&oN5hc+S~+@3*{E zKockqH^w7JnMo>{#9t|BIx?TgrQn*~LW@!ob?Zf9$sH)Vxo%s(PcZRHr>~8#w3UsH zYyWpqfW zGRo2B>MoPR((CX--R|-AKIHcKK=1nf`~Cn~;0s9b#f5_i6DnK?0f57Y5F<*QNU@?t zhXyWc+{pg1qsNaOGlCpRvZTq222!3}$+G3flpv_ROmnY2U4U|IQ37m}z0Fgb&wLEHyFXl8$panM}E|<;$2eYu?P+$>XI( zJ}V6^+9>JLLQkXisd{FBhe;yFmiQW?XWK?B)~-FWwaneNVFwS+8$fa1$14IS>6_zg z)u)%srcHdfL+P}mUoY8wBkASRTNmF>-nj7dn7jc zd1`<7>S;%vegWp!-hZ=U_tAS7)rX#Z3bJS4ffUsjp?m)|_@IOYI;h`x7j}3bf81rb z-+d0|cU^Akkys&%D?Z0zZzitR5`#A0SYwVS;mBi;JO0RAkV1mwW05o>NmFM`HtFP( JP$rQ806XAMR+|6- literal 0 HcmV?d00001 diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPCall.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPCall.html new file mode 100644 index 000000000000..8b5cb349f655 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPCall.html @@ -0,0 +1,567 @@ + + +nsISOAPCall interface Reference + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPCall Interface Reference

import "nsISOAPCall.idl"; +

+

Inheritance diagram for nsISOAPCall: +

+ +nsISOAPMessage + +List of all members. + + + + + + + + + + + + + + + + + + + + + +

Public Methods

nsISOAPResponse invoke ()
nsISOAPCallCompletion asyncInvoke (in nsISOAPResponseListener aListener)
void encode (in unsigned short aVersion, in AString aMethodName, in AString aTargetObjectURI, in unsigned long aHeaderBlockCount,[array, size_is(aHeaderBlockCount)] in nsISOAPHeaderBlock aHeaderBlocks, in unsigned long aParameterCount,[array, size_is(aParameterCount)] in nsISOAPParameter aParameters)
void getHeaderBlocks (out unsigned long aCount,[array, size_is(aCount), retval] out nsISOAPHeaderBlock aHeaderBlocks)
void getParameters (in boolean aDocumentStyle, out unsigned long aCount,[array, size_is(aCount), retval] out nsISOAPParameter aParameters)

Public Attributes

attribute AString transportURI
attribute boolean verifySourceHeader
+const unsigned short VERSION_1_1 = 0
+const unsigned short VERSION_1_2 = 1
+const unsigned short VERSION_UNKNOWN = 0xFFFF
attribute nsIDOMDocument message
readonly attribute nsIDOMElement envelope
readonly attribute unsigned
+short 
version
readonly attribute nsIDOMElement header
readonly attribute nsIDOMElement body
readonly attribute AString methodName
readonly attribute AString targetObjectURI
attribute nsISOAPEncoding encoding
attribute AString actionURI
+

Detailed Description

+This interface is a convenience extension of the basic SOAP message, which handles common patterns of calling, such as providing an action URI in the HTTP header, locating and invoking the appropriate transport based upon the protocol of the transportURI, and automatically recieving the result in a new nsISOAPResponse object which recieves an XML message. +

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + +
nsISOAPCallCompletion nsISOAPCall::asyncInvoke in nsISOAPResponseListener   aListener
+
+ + + + + +
+   + + +

+Asynchronously invoke the call. At this point, the document rooted by the Envelope element is encoded to form the body of the SOAP message. The method returns immediately, and the listener is invoked when we eventually receive a response (or error or successful completion). The transportURI must have been set, the parameter list (even if empty) must have been encoded, and the transportURI must use some known protocol. +

+If not, an error is returned in the status of the response.

+Parameters:
+ + +
aListener  +Handler to be invoked asynchronously after the response is recieved. Should be null if no response is expected.
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void nsISOAPMessage::encode in unsigned short   aVersion,
in AString   aMethodName,
in AString   aTargetObjectURI,
in unsigned long   aHeaderBlockCount,
[array, size_is(aHeaderBlockCount)] in nsISOAPHeaderBlock   aHeaderBlocks,
in unsigned long   aParameterCount,
[array, size_is(aParameterCount)] in nsISOAPParameter   aParameters
[inherited]
+
+ + + + + +
+   + + +

+Encodes the specified parameters into this message, if this message type supports it.

+Parameters:
+ + + + + + + +
aMethodName  +The name of the method being invoked for rpc-style messages. For document-style messages, this must be null.
aTargetObjectURI  +The name of the target object for rpc-style messages. For document-style messages, this must be null.
aHeaderBlockCount  +Number of header blocks in array to be encoded. Must be 0 if header block array is null.
aHeaderBlocks  +Array of header blocks to be encoded, which may be null if there are no header blocks.
aParameterCount  +Number of parameters in array to be encoded. Must be 0 if parameter array is null.
aParameters  +An array of parameters to be encoded, which may null if there are no parameters.
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void nsISOAPMessage::getHeaderBlocks out unsigned long   aCount,
[array, size_is(aCount), retval] out nsISOAPHeaderBlock   aHeaderBlocks
[inherited]
+
+ + + + + +
+   + + +

+Gathers the header blocks of a message so that they can be accessed by a recipient.

+Parameters:
+ + +
aCount  +Integer to receive the length of the list of header blocks.
+
+Returns:
+Array of header blocks found in the message.
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void nsISOAPMessage::getParameters in boolean   aDocumentStyle,
out unsigned long   aCount,
[array, size_is(aCount), retval] out nsISOAPParameter   aParameters
[inherited]
+
+ + + + + +
+   + + +

+Gathers the parameters of a message so that they can be accessed by a recipient.

+Parameters:
+ + + +
aDocumentStyle  +If true, then the parameters are looked for treating the message as a document style message, otherwise it treated as an RPC-style message.
aCount  +Integer to receive the length of the list of parameters.
+
+Returns:
+Array of parameters found in the message.
+

+ + + + +
+ + + + + + + + + +
nsISOAPResponse nsISOAPCall::invoke  
+
+ + + + + +
+   + + +

+Synchronously invoke the call. The method returns only when we receive a response (or an error occurs). The transportURI must have been set, the parameter list (even if empty) must have been encoded, and the transportURI must use some known protocol. A synchronous call assumes that there will be exactly one response per call. +

+If not, an error is returned in the status of the response. +

+

+Returns:
+The SOAP response
+


Member Data Documentation

+

+ + + + +
+ + +
attribute AString nsISOAPMessage::actionURI [inherited] +
+
+ + + + + +
+   + + +

+An optional URI that can be used to add a SOAPAction HTTP header field. If this attribute is NULL (the default case), no SOAPAction header will be added.

+

+ + + + +
+ + +
readonly attribute nsIDOMElement nsISOAPMessage::body [inherited] +
+
+ + + + + +
+   + + +

+A convenience attribute to obtain the DOM element representing the SOAP body from the envelope. DOM methods may be used to access, add, or modify attributes or elements of the body. +

+If the envelope attribute is null or does not contain a SOAP body element type, then this will be null.

+

+ + + + +
+ + +
attribute nsISOAPEncoding nsISOAPMessage::encoding [inherited] +
+
+ + + + + +
+   + + +

+The primary encoding of the message, which is established at the envelope and used unless overridden. By default, this is the SOAP encoding, which may be locally modified or used to obtain alternative encodings, which may be locally modified, but it may be set to an encoding that is shared, or it may be set to null, in which case all non-literal header blocks and parameters must specify an encoding.

+

+ + + + +
+ + +
readonly attribute nsIDOMElement nsISOAPMessage::envelope [inherited] +
+
+ + + + + +
+   + + +

+A convenience attribute to obtain the DOM element representing the SOAP envelope from the document. DOM methods may be used to access, add, or modify attributes of the envelope. +

+If the message attribute is null or is not a document containing a root soap envelope element, then this will be null.

+

+ + + + +
+ + +
readonly attribute nsIDOMElement nsISOAPMessage::header [inherited] +
+
+ + + + + +
+   + + +

+A convenience attribute to obtain the DOM element representing the SOAP header from the envelope. DOM methods may be used to access, add, or modify attributes or elements of the header. +

+If the envelope attribute is null or does not contain a SOAP header element type, then this will be null.

+

+ + + + +
+ + +
attribute nsIDOMDocument nsISOAPMessage::message [inherited] +
+
+ + + + + +
+   + + +

+The document which captures the message, if any. A simple sending application passes parameters to the method encodeSOAPParameters, which calls SOAP encoders to construct this document along with all contained elements. +

+But an application may create and set the message directly instead of invoking encodeSOAPParameters to use encoders or access and manipulate the message after it has been constructed by encodeSOAPParameters. If the message has not been set, invoking a call will fail. A message reciever may also use this accessor to get the document to avoid using decoders.

+

+ + + + +
+ + +
readonly attribute AString nsISOAPMessage::methodName [inherited] +
+
+ + + + + +
+   + + +

+The name of the method being invoked. The methodName is set during encoding as the tagname of the single child of body of RPC-style messages. When there is no encoded message this will be null. The value of this attribute for document-style messages may be non-null but should be ignored. It is up to the application to know whether the message is RPC-style or document style because the SOAP specification makes it difficult to tell which way a message was encoded.

+

+ + + + +
+ + +
readonly attribute AString nsISOAPMessage::targetObjectURI [inherited] +
+
+ + + + + +
+   + + +

+The target object on which the method is being invoked. This URI is set during encoding as the namespace to qualify the tagname of the single child of body of RPC-style messages. When there is no encoded message, this will be null. The value of this attribute for document-style messages may be non-null but should be ignored. It is up to the application to know whether the message is RPC-style or document style because the SOAP specification makes it difficult to tell which way a message was encoded.

+

+ + + + +
+ + +
attribute AString nsISOAPCall::transportURI +
+
+ + + + + +
+   + + +

+The URI to which the message will be sent, identifying the transport and transport-specific information about the destination. This does not have to match the targetObjectURI.

+

+ + + + +
+ + +
attribute boolean nsISOAPCall::verifySourceHeader +
+
+ + + + + +
+   + + +

+Enables alternative security model which may be available from participating services. Securely adds a "verifySource" header to the outgoing message with "mustUnderstand" enabled, which permits the server to decide whether the call should be honored from that particular source. i +

+When this verification header is enabled, the calling script is released from the draconion security checks of unverified SOAP calls. But the service being invoked must not reject the message, which is the prescribed action if a SOAP server receives a header of type "mustUnderstand" that it does not understand. +

+Servers which accept "verified" messages containing this header relieve the user of having to configure and trust the domain of the web page never to exploit behind his firewall, because the responsibility is assumed by the service. If the service is not behind a firewall, then merely ignoring the packet is enough to free all users of this facility to call the server whatever their security configurations for unverified calls may be. But it only works with services that accept these verifySource headers. +

+It is possible for a user to disable even verified SOAP calls, but this is not the default setting.

+

+ + + + +
+ + +
readonly attribute unsigned short nsISOAPMessage::version [inherited] +
+
+ + + + + +
+   + + +

+A convenience attribute to obtain the SOAP version number, if it is known, from the envelope. +

+If the message attribute is null or is not a document containing a root soap envelope element, then this will be VERSION_UNKNOWN.

+


Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPCallCompletion-members.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPCallCompletion-members.html new file mode 100644 index 000000000000..384a6c4d3dfa --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPCallCompletion-members.html @@ -0,0 +1,21 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPCallCompletion Member List

This is the complete list of members for nsISOAPCallCompletion, including all inherited members. + + + + + +
abort()nsISOAPCallCompletion
callnsISOAPCallCompletion
isCompletensISOAPCallCompletion
listenernsISOAPCallCompletion
responsensISOAPCallCompletion

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPCallCompletion.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPCallCompletion.html new file mode 100644 index 000000000000..dead7b3837d0 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPCallCompletion.html @@ -0,0 +1,149 @@ + + +nsISOAPCallCompletion interface Reference + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPCallCompletion Interface Reference

import "nsISOAPCallCompletion.idl"; +

+List of all members. + + + + + + + +

Public Methods

boolean abort ()

Public Attributes

readonly attribute nsISOAPCall call
readonly attribute nsISOAPResponse response
readonly attribute nsISOAPResponseListener listener
readonly attribute boolean isComplete
+


Detailed Description

+This permits the invoker of an asynchronous call to abort the call before it completes or to test to see whether it is complete. +

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + +
boolean nsISOAPCallCompletion::abort  
+
+ + + + + +
+   + + +

+Cause the invoked method to abort, if it is not already complete.

+Returns:
+true if the state of isComplete became true as a result. False if it was already true or reamined false.
+


Member Data Documentation

+

+ + + + +
+ + +
readonly attribute nsISOAPCall nsISOAPCallCompletion::call +
+
+ + + + + +
+   + + +

+The call which was invoked (may have changed since the call was made).

+

+ + + + +
+ + +
readonly attribute boolean nsISOAPCallCompletion::isComplete +
+
+ + + + + +
+   + + +

+Whether the call is complete.

+

+ + + + +
+ + +
readonly attribute nsISOAPResponseListener nsISOAPCallCompletion::listener +
+
+ + + + + +
+   + + +

+The listener to the call.

+

+ + + + +
+ + +
readonly attribute nsISOAPResponse nsISOAPCallCompletion::response +
+
+ + + + + +
+   + + +

+The response, if any, to the call.

+


Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPDecoder-members.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPDecoder-members.html new file mode 100644 index 000000000000..58808f265243 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPDecoder-members.html @@ -0,0 +1,17 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPDecoder Member List

This is the complete list of members for nsISOAPDecoder, including all inherited members. + +
decode(in nsISOAPEncoding aEncoding, in nsIDOMElement aSource, in nsISchemaType aSchemaType, in nsISOAPAttachments aAttachments)nsISOAPDecoder

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPDecoder.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPDecoder.html new file mode 100644 index 000000000000..99060cbf4587 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPDecoder.html @@ -0,0 +1,91 @@ + + +nsISOAPDecoder interface Reference + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPDecoder Interface Reference

import "nsISOAPDecoder.idl"; +

+List of all members. + + +

Public Methods

nsIVariant decode (in nsISOAPEncoding aEncoding, in nsIDOMElement aSource, in nsISchemaType aSchemaType, in nsISOAPAttachments aAttachments)
+


Detailed Description

+This interface supplies decoding of a specific part of a message XML DOM into appropriate objects for the script or application. +

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nsIVariant nsISOAPDecoder::decode in nsISOAPEncoding   aEncoding,
in nsIDOMElement   aSource,
in nsISchemaType   aSchemaType,
in nsISOAPAttachments   aAttachments
+
+ + + + + +
+   + + +

+Decode the source DOM node

+Parameters:
+ + + + + + +
aEncodings  +The encodings used to decode
aEncodingStyleURI  +The encoding style
aSource  +The DOM node to be decoded.
aSchemaType  +The schema type of the source DOM node
aAttachments  +Dispenses any attachments.
+
+Returns:
+The decoded variant, which is null if the operation failed or did not return a result.
+


Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPEncoder-members.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPEncoder-members.html new file mode 100644 index 000000000000..4fd8726fb253 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPEncoder-members.html @@ -0,0 +1,17 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPEncoder Member List

This is the complete list of members for nsISOAPEncoder, including all inherited members. + +
encode(in nsISOAPEncoding aEncoding, in nsIVariant aSource, in AString aNamespaceURI, in AString aName, in nsISchemaType aSchemaType, in nsISOAPAttachments aAttachments, in nsIDOMElement aDestination)nsISOAPEncoder

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPEncoder.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPEncoder.html new file mode 100644 index 000000000000..854f952c5ab0 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPEncoder.html @@ -0,0 +1,119 @@ + + +nsISOAPEncoder interface Reference + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPEncoder Interface Reference

import "nsISOAPEncoder.idl"; +

+List of all members. + + +

Public Methods

nsIDOMElement encode (in nsISOAPEncoding aEncoding, in nsIVariant aSource, in AString aNamespaceURI, in AString aName, in nsISchemaType aSchemaType, in nsISOAPAttachments aAttachments, in nsIDOMElement aDestination)
+


Detailed Description

+This interface permits encoding of variants. +

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nsIDOMElement nsISOAPEncoder::encode in nsISOAPEncoding   aEncoding,
in nsIVariant   aSource,
in AString   aNamespaceURI,
in AString   aName,
in nsISchemaType   aSchemaType,
in nsISOAPAttachments   aAttachments,
in nsIDOMElement   aDestination
+
+ + + + + +
+   + + +

+Encode the source variant.

+Parameters:
+ + + + + + + + +
aEncodings  +The encodings to be used.
aEncodingStyleURI  +The encoding style
aSource  +The variant to be encoded.
aNamespaceURI  +The namespace of the thing being coded
aName  +The name of the thing being coded
aSchemaType  +The schema type of the thing being encoded
aDestination  +The node scope, if any, where the result will live. If this is null, then the result must be explicitly attached to the message.
+
+Returns:
+element which was inserted.
+Parameters:
+ + +
aAttachments  +Accumulates any attachments.
+
+


Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPEncoding-members.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPEncoding-members.html new file mode 100644 index 000000000000..55027810ad95 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPEncoding-members.html @@ -0,0 +1,31 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPEncoding Member List

This is the complete list of members for nsISOAPEncoding, including all inherited members. + + + + + + + + + + + + + + + +
decode(in nsIDOMElement aSource, in nsISchemaType aSchemaType, in nsISOAPAttachments aAttachments)nsISOAPEncoding
defaultDecodernsISOAPEncoding
defaultEncodernsISOAPEncoding
encode(in nsIVariant aSource, in AString aNamespaceURI, in AString aName, in nsISchemaType aSchemaType, in nsISOAPAttachments aAttachments, in nsIDOMElement aDestination)nsISOAPEncoding
getAssociatedEncoding(in AString aStyleURI, in boolean aCreateIf)nsISOAPEncoding
getDecoder(in AString aKey)nsISOAPEncoding
getEncoder(in AString aKey)nsISOAPEncoding
getExternalSchemaURI(in AString aInternalURI)nsISOAPEncoding
getInternalSchemaURI(in AString aExternalURI)nsISOAPEncoding
mapSchemaURI(in AString aExternalURI, in AString aInternalURI, in boolean aOutput)nsISOAPEncoding
schemaCollectionnsISOAPEncoding
setDecoder(in AString aKey, in nsISOAPDecoder aDecoder)nsISOAPEncoding
setEncoder(in AString aKey, in nsISOAPEncoder aEncoder)nsISOAPEncoding
styleURInsISOAPEncoding
unmapSchemaURI(in AString aExternalURI)nsISOAPEncoding

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPEncoding.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPEncoding.html new file mode 100644 index 000000000000..b3ba996d9937 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPEncoding.html @@ -0,0 +1,656 @@ + + +nsISOAPEncoding interface Reference + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPEncoding Interface Reference

import "nsISOAPEncoding.idl"; +

+List of all members. + + + + + + + + + + + + + + + + + +

Public Methods

nsISOAPEncoding getAssociatedEncoding (in AString aStyleURI, in boolean aCreateIf)
void setEncoder (in AString aKey, in nsISOAPEncoder aEncoder)
nsISOAPEncoder getEncoder (in AString aKey)
void setDecoder (in AString aKey, in nsISOAPDecoder aDecoder)
nsISOAPDecoder getDecoder (in AString aKey)
nsIDOMElement encode (in nsIVariant aSource, in AString aNamespaceURI, in AString aName, in nsISchemaType aSchemaType, in nsISOAPAttachments aAttachments, in nsIDOMElement aDestination)
nsIVariant decode (in nsIDOMElement aSource, in nsISchemaType aSchemaType, in nsISOAPAttachments aAttachments)
boolean mapSchemaURI (in AString aExternalURI, in AString aInternalURI, in boolean aOutput)
boolean unmapSchemaURI (in AString aExternalURI)
AString getInternalSchemaURI (in AString aExternalURI)
AString getExternalSchemaURI (in AString aInternalURI)

Public Attributes

readonly attribute AString styleURI
attribute nsISOAPEncoder defaultEncoder
attribute nsISOAPDecoder defaultDecoder
attribute nsISchemaCollection schemaCollection
+


Detailed Description

+This interface keeps track of the current encoding style and how objects should be encoded or decoded, as well as all associated encodings. +

+While two different nsSOAPCalls may have an encoding for the same styleURI, by default the encoding object and all associated encoding objects are local do not affect other calls because the encodings are local and not associated, unless the same or associated encodings are explicitly set on multiple calls. When a call is invoked, the same encoding object is automatically set on the response message so that decoders registered on the call encoding are automatically applied to the response. +

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
nsIVariant nsISOAPEncoding::decode in nsIDOMElement   aSource,
in nsISchemaType   aSchemaType,
in nsISOAPAttachments   aAttachments
+
+ + + + + +
+   + + +

+Decode the source DOM node

+Parameters:
+ + + + + + +
aEncodings  +The encodings used to decode
aEncodingStyleURI  +The encoding style
aSource  +The DOM node to be decoded.
aSchemaType  +The schema type of the source DOM node
aAttachments  +Dispenses any attachments.
+
+Returns:
+The decoded variant, soon to become a variant, which is null if the operation failed or did not return a result.
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nsIDOMElement nsISOAPEncoding::encode in nsIVariant   aSource,
in AString   aNamespaceURI,
in AString   aName,
in nsISchemaType   aSchemaType,
in nsISOAPAttachments   aAttachments,
in nsIDOMElement   aDestination
+
+ + + + + +
+   + + +

+Encode the source variant

+Parameters:
+ + + + + + + + + +
aEncodings  +The encodings to be used.
aEncodingStyleURI  +The encoding style
aSource  +The variant to be encoded, soon to become a variant
aNamespaceURI  +The namespace of the thing being coded
aName  +The name of the thing being coded
aSchemaType  +The schema type of the thing being encoded
aDestination  +The node scope where the result will live.
aAttachments  +Accumulates any attachments.
+
+Returns:
+The element which was inserted and encoded.
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
nsISOAPEncoding nsISOAPEncoding::getAssociatedEncoding in AString   aStyleURI,
in boolean   aCreateIf
+
+ + + + + +
+   + + +

+Get an associated encoding for a different encoding style. If there is no default associated encoding available for the specified encoding style, then if aCreateIf is specified, one is created, otherwise a null is returned. Associated encodings are the set of encodings that may be used and modified together as a set.

+Parameters:
+ + + +
aStyleURI  +The style URI of the associated encoding.
aCreateIf  +If true, then create the associated encoding if it does not already exist, otherwise return the existing encoding.
+
+Returns:
+The associated encoding which corresponds to the specified styleURI, or null if the spefied alternative encoding does not exist and it was not requested that it be created.
+

+ + + + +
+ + + + + + + + + + +
nsISOAPDecoder nsISOAPEncoding::getDecoder in AString   aKey
+
+ + + + + +
+   + + +

+Get a decoder from the encoding.

+Parameters:
+ + +
aKey  +The key to be used to look up the decoder.
+
+Returns:
+The decoder.
+

+ + + + +
+ + + + + + + + + + +
nsISOAPEncoder nsISOAPEncoding::getEncoder in AString   aKey
+
+ + + + + +
+   + + +

+Get an encoder from the encoding.

+Parameters:
+ + +
aKey  +The key to be used to look up the encoder.
+
+Returns:
+The encoder.
+

+ + + + +
+ + + + + + + + + + +
AString nsISOAPEncoding::getExternalSchemaURI in AString   aInternalURI
+
+ + + + + +
+   + + +

+Get an external schema URI from an internal one.

+Parameters:
+ + +
aExternalURI  +the external URI which may have been mapped.
+
+Returns:
+The corresponding internal URI (the original is returned if it has not been mapped).
+

+ + + + +
+ + + + + + + + + + +
AString nsISOAPEncoding::getInternalSchemaURI in AString   aExternalURI
+
+ + + + + +
+   + + +

+Get an internal schema URI from an external one.

+Parameters:
+ + +
aExternalURI  +the external URI which may have been mapped.
+
+Returns:
+The corresponding internal URI (the original is returned if it has not been mapped).
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
boolean nsISOAPEncoding::mapSchemaURI in AString   aExternalURI,
in AString   aInternalURI,
in boolean   aOutput
+
+ + + + + +
+   + + +

+Map an external schema URI to an internal one. In an ideal world, we don't need this, but schemas change URIs, and we wind up with inconsistencies between WSDL and exchanged documents. The external URI must not be currently mapped and if output mapping is true, then the internal URI must be unique for output mapping.

+Parameters:
+ + + + +
aExternalURI  +the external URI to be mapped.
aInternalURI  +the internal URI to be mapped.
aOutput  +If true, then re-map to the output URI when outputting.
+
+Returns:
+boolean true if succeeded, false if the mapping was not unique as required.
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void nsISOAPEncoding::setDecoder in AString   aKey,
in nsISOAPDecoder   aDecoder
+
+ + + + + +
+   + + +

+Set a decoder in the encoding.

+Parameters:
+ + + +
aKey  +The key to be associated with the decoder.
aDecoder  +The decoder to be specified or null to eliminate the decoder.
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void nsISOAPEncoding::setEncoder in AString   aKey,
in nsISOAPEncoder   aEncoder
+
+ + + + + +
+   + + +

+Set an encoder in the encoding.

+Parameters:
+ + + +
aKey  +The key to be associated with the encoder.
aEncoder  +The encoder to be specified or null to eliminate the encoder.
+
+

+ + + + +
+ + + + + + + + + + +
boolean nsISOAPEncoding::unmapSchemaURI in AString   aExternalURI
+
+ + + + + +
+   + + +

+Unmap an external schema URI as mapped by mapSchemaURI.

+Parameters:
+ + +
aExternalURI  +the external URI to be mapped.
+
+Returns:
+boolean true if succeeded, false if the mapping did not exist.
+


Member Data Documentation

+

+ + + + +
+ + +
attribute nsISOAPDecoder nsISOAPEncoding::defaultDecoder +
+
+ + + + + +
+   + + +

+The default decoder invoked by all encoding calls. Appropriate calls to more-specific decoders, if any, must be dispatched by this default decoder. The default decoder typically looks up encoders by known information such as explicit or implicit types.

+

+ + + + +
+ + +
attribute nsISOAPEncoder nsISOAPEncoding::defaultEncoder +
+
+ + + + + +
+   + + +

+The default encoder invoked by all encoding calls. Appropriate calls to more-specific encoders, if any, must be dispatched by this default encoder. The default encoder typically looks up encoders by known information such as explicit or implicit types.

+

+ + + + +
+ + +
attribute nsISchemaCollection nsISOAPEncoding::schemaCollection +
+
+ + + + + +
+   + + +

+The schema collection used by this and all associated encodings.

+

+ + + + +
+ + +
readonly attribute AString nsISOAPEncoding::styleURI +
+
+ + + + + +
+   + + +

+The name of the encoding as it is known to SOAP.

+


Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPFault-members.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPFault-members.html new file mode 100644 index 000000000000..7857eb17132d --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPFault-members.html @@ -0,0 +1,22 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPFault Member List

This is the complete list of members for nsISOAPFault, including all inherited members. + + + + + + +
detailnsISOAPFault
elementnsISOAPFault
faultActornsISOAPFault
faultCodensISOAPFault
faultNamespaceURInsISOAPFault
faultStringnsISOAPFault

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPFault.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPFault.html new file mode 100644 index 000000000000..9c1c4b8d9754 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPFault.html @@ -0,0 +1,162 @@ + + +nsISOAPFault interface Reference + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPFault Interface Reference

import "nsISOAPFault.idl"; +

+List of all members. + + + + + + + +

Public Attributes

attribute nsIDOMElement element
readonly attribute AString faultNamespaceURI
readonly attribute AString faultCode
readonly attribute AString faultString
readonly attribute AString faultActor
readonly attribute nsIDOMElement detail
+


Detailed Description

+This interface conveniently interprets information about a fault that has been returned in a response message. +

+


Member Data Documentation

+

+ + + + +
+ + +
readonly attribute nsIDOMElement nsISOAPFault::detail +
+
+ + + + + +
+   + + +

+The DOM element representing the fault details

+

+ + + + +
+ + +
attribute nsIDOMElement nsISOAPFault::element +
+
+ + + + + +
+   + + +

+The DOM element representing the fault in the response SOAP message. This must be set for the rest of the interface to function correctly.

+

+ + + + +
+ + +
readonly attribute AString nsISOAPFault::faultActor +
+
+ + + + + +
+   + + +

+The fault actor if one was specified.

+

+ + + + +
+ + +
readonly attribute AString nsISOAPFault::faultCode +
+
+ + + + + +
+   + + +

+The fault code

+

+ + + + +
+ + +
readonly attribute AString nsISOAPFault::faultNamespaceURI +
+
+ + + + + +
+   + + +

+The namespaceURI of the fault code.

+

+ + + + +
+ + +
readonly attribute AString nsISOAPFault::faultString +
+
+ + + + + +
+   + + +

+The fault string

+


Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPHeaderBlock-members.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPHeaderBlock-members.html new file mode 100644 index 000000000000..55d64df4c4a2 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPHeaderBlock-members.html @@ -0,0 +1,25 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPHeaderBlock Member List

This is the complete list of members for nsISOAPHeaderBlock, including all inherited members. + + + + + + + + + +
actorURInsISOAPHeaderBlock
elementnsISOAPBlock
encodingnsISOAPBlock
init(in nsISOAPAttachments aAttachments, in unsigned short aVersion)nsISOAPBlock
mustUnderstandnsISOAPHeaderBlock
namensISOAPBlock
namespaceURInsISOAPBlock
schemaTypensISOAPBlock
valuensISOAPBlock

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPHeaderBlock.gif b/extensions/xmlextras/docs/soap/html/interfacensISOAPHeaderBlock.gif new file mode 100644 index 0000000000000000000000000000000000000000..39077fa13f59f2ba3c9e56ca7911d45b59bdf77a GIT binary patch literal 726 zcmV;{0xA7RNk%w1VTb@w0P+9;|Ns9000960z@MLBkN^MxkN^MxkifveA^8LW00000 zEC2ui0Ehrk000C2IJ(^aFv>}*y?BVtyZ>M)j$~<`=&7V^>%MR-ta5GNcu41b@2i@h za5&r%Hvvvynd~r|9w_puq#{$&oAKC`LcLJ|Sa~IjvAu09xpaQZ;rMl29)H`__gNdX z;k$KJa%Ovlc20qbdu%ysFnU>$dWdj$OnG>VW?5pKGLA2knVx`hPm`31kRO?RIH;P1 zv6PW;sj;hJo-m*;xutZ$aip}B#WzKt?nUkI@;vGD_9z+o`uqI-`v3p~3LHqVpuvL(69P1#u%W|;5F<*Qn2;gG zix@L%%xM0gdG`pm1BC*Qs~{{kL5c&p&TFAwuP#kjHK$B-jSo=my2<;aMuF3C)FGv}zD zKQ|36Iw|Rg0Rlc5xSC*Ufu~fnrubT6Y=E^J=4QRy;p^PBfzK8$8^G?~zLOV6evrBG z-l<84{#_6{Y~$CL&&DmiJ9h5Eqh}A^JveUH(5Zh{|9pG)@9>EqKTqHMdiLb$*Vm8# zJe~5>@#!aEdjkf@Uu)0ZX5V<)@uwPs{lWL3K>#i|U3CSL$3$`N)d%5*2Hs}iej%bq zp>+eQC!cF67AWC*ERqOgj1sEY;C26@IHQdm689o|@5vb9ZxN2T%p`Jjcol{T7lUg`v3m_3b2rkG%!Nt2ms*2HF;Grb9?OPAGY=bd=w Id1nFuJG7s8LjV8( literal 0 HcmV?d00001 diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPHeaderBlock.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPHeaderBlock.html new file mode 100644 index 000000000000..9a57efa450f7 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPHeaderBlock.html @@ -0,0 +1,262 @@ + + +nsISOAPHeaderBlock interface Reference + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPHeaderBlock Interface Reference

import "nsISOAPHeaderBlock.idl"; +

+

Inheritance diagram for nsISOAPHeaderBlock: +

+ +nsISOAPBlock + +List of all members. + + + + + + + + + + + +

Public Methods

void init (in nsISOAPAttachments aAttachments, in unsigned short aVersion)

Public Attributes

attribute AString actorURI
attribute boolean mustUnderstand
attribute AString namespaceURI
attribute AString name
attribute nsISOAPEncoding encoding
attribute nsISchemaType schemaType
attribute nsIDOMElement element
attribute nsIVariant value
+

Detailed Description

+This interface encapsulates an arbitrary header block to be used by the soap serialization or protocol. See the description of the nsISOAPBlock interface for information on how the basics of this interface works. +

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void nsISOAPBlock::init in nsISOAPAttachments   aAttachments,
in unsigned short   aVersion
[inherited]
+
+ + + + + +
+   + + +

+Initialize the block for additional decoding information.

+Parameters:
+ + + +
aAttachments  +Attachments in case this refers to them.
aVersion  +SOAP version for decoding special header attributes.
+
+


Member Data Documentation

+

+ + + + +
+ + +
attribute AString nsISOAPHeaderBlock::actorURI +
+
+ + + + + +
+   + + +

+The actor URI of the header block. If element is set, then this is a computed value. If this is modified, then element is set to null and all attributes computed from element revert to previous uncomputed values.

+

+ + + + +
+ + +
attribute nsIDOMElement nsISOAPBlock::element [inherited] +
+
+ + + + + +
+   + + +

+The element which is the encoded value of this block. If this is set, value, namespaceURI, and name becomes a computed attributes which are produced by decoding this element.

+

+ + + + +
+ + +
attribute nsISOAPEncoding nsISOAPBlock::encoding [inherited] +
+
+ + + + + +
+   + + +

+The encoding that was / will be applied to the block. If this is blank and element is non-null, it becomes impossible to decode the block when the value is requested.

+

+ + + + +
+ + +
attribute boolean nsISOAPHeaderBlock::mustUnderstand +
+
+ + + + + +
+   + + +

+Flags that the processor must understand this header. If element is set, then this is a computed value. If this is modified, then element is set to null and all attributes computed from element revert to previous uncomputed values.

+

+ + + + +
+ + +
attribute AString nsISOAPBlock::name [inherited] +
+
+ + + + + +
+   + + +

+The name of the block. If the block is left unnamed, it will be encoded using the element types defined in the SOAP-ENC schema. For example, <SOAP-ENC:int>45</SOAP-ENC:int> . If this is modified, element is set to null and all attributes computed from element revert to previous uncomputed values. If element is set, this becomes computed.

+

+ + + + +
+ + +
attribute AString nsISOAPBlock::namespaceURI [inherited] +
+
+ + + + + +
+   + + +

+The namespace URI of the block. Ignored if name is null. If this is modified, element is set to null and all attributes computed from element revert to previous uncomputed values. If element is set, this becomes computed.

+

+ + + + +
+ + +
attribute nsISchemaType nsISOAPBlock::schemaType [inherited] +
+
+ + + + + +
+   + + +

+The schema type used to encode or decode the block. If this is null, then the default encoder or decoder may

+

+ + + + +
+ + +
attribute nsIVariant nsISOAPBlock::value [inherited] +
+
+ + + + + +
+   + + +

+The native value which is the decoded value of this block. If this is modified, element is set to null and all attributes computed from element revert to previous uncomputed values. If element is set, this becomes computed, relying on the value of encoding and schemaType each time it is computed.

+


Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPMessage-members.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPMessage-members.html new file mode 100644 index 000000000000..b021f4ecb411 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPMessage-members.html @@ -0,0 +1,31 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPMessage Member List

This is the complete list of members for nsISOAPMessage, including all inherited members. + + + + + + + + + + + + + + + +
actionURInsISOAPMessage
bodynsISOAPMessage
encode(in unsigned short aVersion, in AString aMethodName, in AString aTargetObjectURI, in unsigned long aHeaderBlockCount,[array, size_is(aHeaderBlockCount)] in nsISOAPHeaderBlock aHeaderBlocks, in unsigned long aParameterCount,[array, size_is(aParameterCount)] in nsISOAPParameter aParameters)nsISOAPMessage
encodingnsISOAPMessage
envelopensISOAPMessage
getHeaderBlocks(out unsigned long aCount,[array, size_is(aCount), retval] out nsISOAPHeaderBlock aHeaderBlocks)nsISOAPMessage
getParameters(in boolean aDocumentStyle, out unsigned long aCount,[array, size_is(aCount), retval] out nsISOAPParameter aParameters)nsISOAPMessage
headernsISOAPMessage
messagensISOAPMessage
methodNamensISOAPMessage
targetObjectURInsISOAPMessage
versionnsISOAPMessage
VERSION_1_1 (defined in nsISOAPMessage)nsISOAPMessage
VERSION_1_2 (defined in nsISOAPMessage)nsISOAPMessage
VERSION_UNKNOWN (defined in nsISOAPMessage)nsISOAPMessage

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPMessage.gif b/extensions/xmlextras/docs/soap/html/interfacensISOAPMessage.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c62a06e74c06de351e14fdf3695307220ed1bbc GIT binary patch literal 1074 zcmV-21kL+LNk%w1VfFw}0P+9;|Ns9000960z@MLBkN^MxkN^MxkifveA^8LW00000 zEC2ui0QLY-000C22)f+MaPGo7GXsVLI>b`J1wQ_CWHI485t@ps- z?k6l7AH<__NntvR$*1%fomyShtJe3@T^e5p5wnP9m*=gz%Le?sjIldTcaPK5wVsQ# z$Ki8gf@OgUZ-#ee6@QG1Z!KPn5O{l)Gm|u#hMS0BgN1;ckc66|rh$N&rG=iBt}0cj zt%`)Rp=6tItE-%SpuMrL!Y9GNp>;`-7PYOTs9}Dzj=PAih8Qk<8Gly{i>2U$sV^96bXiX&paolpex}cut}) ziWW^AyOjPBVn-a-G=3b0apVw_uS%k{p>m~>mM$m8+yiswikdc0=6tzxi-?~s|gS(Tc#tFWzCy^5_AcC6VoWzVX$l6I|ICT-u! zEfROGT^@Ds>aCG?uU{8^{|Y`4c(7p!g%7&|%eb-Q$B-jSo=my2Wvhx8BtE=ZZs)Dx}0fd z63u5u_dRTY_3PNPYv0bjyLapczKb7Ep1Xwd=+l1>ufDze0RrO7pHIKO{rmXy>)+46 zzyAIK=lLh#fCLt3;D7KPsNjMOHV9w@2{tIzJRAEM}hiZIr=A&nIVAm0V_@mQaZ^I_1V1^EF98q~d8fUJ9-Z@~Seu^sVpRi7Os;zw%`nW0p zirz|VrO%>Ts*_bpn=G)k?%HFtz6!`Ew0|NyDYcH`=i{0NF54`z--UFZpP1g+-JwT@=CDE^i}NXwC~1BX{-Vh%4nVoD|;}hY|=|O}Ex_-~FQ9dPkji-zM@6c%APRZusGdV|QNSj5qH1b_oCgJ13tt+5i9m literal 0 HcmV?d00001 diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPMessage.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPMessage.html new file mode 100644 index 000000000000..b0bcd376714a --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPMessage.html @@ -0,0 +1,443 @@ + + +nsISOAPMessage interface Reference + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPMessage Interface Reference

import "nsISOAPMessage.idl"; +

+

Inheritance diagram for nsISOAPMessage: +

+ +nsISOAPCall +nsISOAPResponse + +List of all members. + + + + + + + + + + + + + + + + + +

Public Methods

void encode (in unsigned short aVersion, in AString aMethodName, in AString aTargetObjectURI, in unsigned long aHeaderBlockCount,[array, size_is(aHeaderBlockCount)] in nsISOAPHeaderBlock aHeaderBlocks, in unsigned long aParameterCount,[array, size_is(aParameterCount)] in nsISOAPParameter aParameters)
void getHeaderBlocks (out unsigned long aCount,[array, size_is(aCount), retval] out nsISOAPHeaderBlock aHeaderBlocks)
void getParameters (in boolean aDocumentStyle, out unsigned long aCount,[array, size_is(aCount), retval] out nsISOAPParameter aParameters)

Public Attributes

+const unsigned short VERSION_1_1 = 0
+const unsigned short VERSION_1_2 = 1
+const unsigned short VERSION_UNKNOWN = 0xFFFF
attribute nsIDOMDocument message
readonly attribute nsIDOMElement envelope
readonly attribute unsigned
+short 
version
readonly attribute nsIDOMElement header
readonly attribute nsIDOMElement body
readonly attribute AString methodName
readonly attribute AString targetObjectURI
attribute nsISOAPEncoding encoding
attribute AString actionURI
+

Detailed Description

+This interface controls all SOAP messages. It permits easy construction of a message, typically through encoding of parameters and certain properties settable on this interface or through deserialization of a transport stream. It permits easy processing of a message typically through decoding of parameters and certain properties available on this interface. It also encapsulates protocol information interpreted by the transport. +

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void nsISOAPMessage::encode in unsigned short   aVersion,
in AString   aMethodName,
in AString   aTargetObjectURI,
in unsigned long   aHeaderBlockCount,
[array, size_is(aHeaderBlockCount)] in nsISOAPHeaderBlock   aHeaderBlocks,
in unsigned long   aParameterCount,
[array, size_is(aParameterCount)] in nsISOAPParameter   aParameters
+
+ + + + + +
+   + + +

+Encodes the specified parameters into this message, if this message type supports it.

+Parameters:
+ + + + + + + +
aMethodName  +The name of the method being invoked for rpc-style messages. For document-style messages, this must be null.
aTargetObjectURI  +The name of the target object for rpc-style messages. For document-style messages, this must be null.
aHeaderBlockCount  +Number of header blocks in array to be encoded. Must be 0 if header block array is null.
aHeaderBlocks  +Array of header blocks to be encoded, which may be null if there are no header blocks.
aParameterCount  +Number of parameters in array to be encoded. Must be 0 if parameter array is null.
aParameters  +An array of parameters to be encoded, which may null if there are no parameters.
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void nsISOAPMessage::getHeaderBlocks out unsigned long   aCount,
[array, size_is(aCount), retval] out nsISOAPHeaderBlock   aHeaderBlocks
+
+ + + + + +
+   + + +

+Gathers the header blocks of a message so that they can be accessed by a recipient.

+Parameters:
+ + +
aCount  +Integer to receive the length of the list of header blocks.
+
+Returns:
+Array of header blocks found in the message.
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void nsISOAPMessage::getParameters in boolean   aDocumentStyle,
out unsigned long   aCount,
[array, size_is(aCount), retval] out nsISOAPParameter   aParameters
+
+ + + + + +
+   + + +

+Gathers the parameters of a message so that they can be accessed by a recipient.

+Parameters:
+ + + +
aDocumentStyle  +If true, then the parameters are looked for treating the message as a document style message, otherwise it treated as an RPC-style message.
aCount  +Integer to receive the length of the list of parameters.
+
+Returns:
+Array of parameters found in the message.
+


Member Data Documentation

+

+ + + + +
+ + +
attribute AString nsISOAPMessage::actionURI +
+
+ + + + + +
+   + + +

+An optional URI that can be used to add a SOAPAction HTTP header field. If this attribute is NULL (the default case), no SOAPAction header will be added.

+

+ + + + +
+ + +
readonly attribute nsIDOMElement nsISOAPMessage::body +
+
+ + + + + +
+   + + +

+A convenience attribute to obtain the DOM element representing the SOAP body from the envelope. DOM methods may be used to access, add, or modify attributes or elements of the body. +

+If the envelope attribute is null or does not contain a SOAP body element type, then this will be null.

+

+ + + + +
+ + +
attribute nsISOAPEncoding nsISOAPMessage::encoding +
+
+ + + + + +
+   + + +

+The primary encoding of the message, which is established at the envelope and used unless overridden. By default, this is the SOAP encoding, which may be locally modified or used to obtain alternative encodings, which may be locally modified, but it may be set to an encoding that is shared, or it may be set to null, in which case all non-literal header blocks and parameters must specify an encoding.

+

+ + + + +
+ + +
readonly attribute nsIDOMElement nsISOAPMessage::envelope +
+
+ + + + + +
+   + + +

+A convenience attribute to obtain the DOM element representing the SOAP envelope from the document. DOM methods may be used to access, add, or modify attributes of the envelope. +

+If the message attribute is null or is not a document containing a root soap envelope element, then this will be null.

+

+ + + + +
+ + +
readonly attribute nsIDOMElement nsISOAPMessage::header +
+
+ + + + + +
+   + + +

+A convenience attribute to obtain the DOM element representing the SOAP header from the envelope. DOM methods may be used to access, add, or modify attributes or elements of the header. +

+If the envelope attribute is null or does not contain a SOAP header element type, then this will be null.

+

+ + + + +
+ + +
attribute nsIDOMDocument nsISOAPMessage::message +
+
+ + + + + +
+   + + +

+The document which captures the message, if any. A simple sending application passes parameters to the method encodeSOAPParameters, which calls SOAP encoders to construct this document along with all contained elements. +

+But an application may create and set the message directly instead of invoking encodeSOAPParameters to use encoders or access and manipulate the message after it has been constructed by encodeSOAPParameters. If the message has not been set, invoking a call will fail. A message reciever may also use this accessor to get the document to avoid using decoders.

+

+ + + + +
+ + +
readonly attribute AString nsISOAPMessage::methodName +
+
+ + + + + +
+   + + +

+The name of the method being invoked. The methodName is set during encoding as the tagname of the single child of body of RPC-style messages. When there is no encoded message this will be null. The value of this attribute for document-style messages may be non-null but should be ignored. It is up to the application to know whether the message is RPC-style or document style because the SOAP specification makes it difficult to tell which way a message was encoded.

+

+ + + + +
+ + +
readonly attribute AString nsISOAPMessage::targetObjectURI +
+
+ + + + + +
+   + + +

+The target object on which the method is being invoked. This URI is set during encoding as the namespace to qualify the tagname of the single child of body of RPC-style messages. When there is no encoded message, this will be null. The value of this attribute for document-style messages may be non-null but should be ignored. It is up to the application to know whether the message is RPC-style or document style because the SOAP specification makes it difficult to tell which way a message was encoded.

+

+ + + + +
+ + +
readonly attribute unsigned short nsISOAPMessage::version +
+
+ + + + + +
+   + + +

+A convenience attribute to obtain the SOAP version number, if it is known, from the envelope. +

+If the message attribute is null or is not a document containing a root soap envelope element, then this will be VERSION_UNKNOWN.

+


Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPParameter-members.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPParameter-members.html new file mode 100644 index 000000000000..cdbe616b6908 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPParameter-members.html @@ -0,0 +1,23 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPParameter Member List

This is the complete list of members for nsISOAPParameter, including all inherited members. + + + + + + + +
elementnsISOAPBlock
encodingnsISOAPBlock
init(in nsISOAPAttachments aAttachments, in unsigned short aVersion)nsISOAPBlock
namensISOAPBlock
namespaceURInsISOAPBlock
schemaTypensISOAPBlock
valuensISOAPBlock

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPParameter.gif b/extensions/xmlextras/docs/soap/html/interfacensISOAPParameter.gif new file mode 100644 index 0000000000000000000000000000000000000000..63a9e6900336630a0bf05f3853bce5f888da9450 GIT binary patch literal 696 zcmV;p0!RHvNk%w1VR-;h0P+9;|Ns9000960z@MLBkN^MxkN^MxkifveA^8LW00000 zEC2ui0C@mV000C2IJ(^aFv>}*y-MiKyZ>M)j$~z3&&&vdQDcCPOp&i_D} zFBjMZjztbK*?S=sHAL!og|JTxw5HobE>6^tH-1)y&<8^d3MjW!&-bvvA08g%E{289C$-kbMt z*UNt&=bc+K66w)dD@RWKxpdU3n>%MtUcB|@m(zRiKHjxz<>(=4d`)1Fb ze}Db=`HhELa{8@@pL6@YHyw1`HJDm$_az5kfer3Ap>F*pnBag0dRL)*!XfCMeEzZ5 z;eYW3xFL!k_V;0X0FsCshqqm)opB%%C}DB>UB{z|Hr9xph9ib1T8KuvG+UBNBFQ95 eOFjvulTwNlWtCP^iRDL=b?N1oV20^f0suQ`f?ZSq literal 0 HcmV?d00001 diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPParameter.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPParameter.html new file mode 100644 index 000000000000..411099260b8e --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPParameter.html @@ -0,0 +1,216 @@ + + +nsISOAPParameter interface Reference + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPParameter Interface Reference

import "nsISOAPParameter.idl"; +

+

Inheritance diagram for nsISOAPParameter: +

+ +nsISOAPBlock + +List of all members. + + + + + + + + + +

Public Methods

void init (in nsISOAPAttachments aAttachments, in unsigned short aVersion)

Public Attributes

attribute AString namespaceURI
attribute AString name
attribute nsISOAPEncoding encoding
attribute nsISchemaType schemaType
attribute nsIDOMElement element
attribute nsIVariant value
+

Detailed Description

+This interface encapsulates an arbitrary parameter to be used by the soap serialization or protocol. See the nsISOAPBlock interface for particulars about how this interface works. +

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void nsISOAPBlock::init in nsISOAPAttachments   aAttachments,
in unsigned short   aVersion
[inherited]
+
+ + + + + +
+   + + +

+Initialize the block for additional decoding information.

+Parameters:
+ + + +
aAttachments  +Attachments in case this refers to them.
aVersion  +SOAP version for decoding special header attributes.
+
+


Member Data Documentation

+

+ + + + +
+ + +
attribute nsIDOMElement nsISOAPBlock::element [inherited] +
+
+ + + + + +
+   + + +

+The element which is the encoded value of this block. If this is set, value, namespaceURI, and name becomes a computed attributes which are produced by decoding this element.

+

+ + + + +
+ + +
attribute nsISOAPEncoding nsISOAPBlock::encoding [inherited] +
+
+ + + + + +
+   + + +

+The encoding that was / will be applied to the block. If this is blank and element is non-null, it becomes impossible to decode the block when the value is requested.

+

+ + + + +
+ + +
attribute AString nsISOAPBlock::name [inherited] +
+
+ + + + + +
+   + + +

+The name of the block. If the block is left unnamed, it will be encoded using the element types defined in the SOAP-ENC schema. For example, <SOAP-ENC:int>45</SOAP-ENC:int> . If this is modified, element is set to null and all attributes computed from element revert to previous uncomputed values. If element is set, this becomes computed.

+

+ + + + +
+ + +
attribute AString nsISOAPBlock::namespaceURI [inherited] +
+
+ + + + + +
+   + + +

+The namespace URI of the block. Ignored if name is null. If this is modified, element is set to null and all attributes computed from element revert to previous uncomputed values. If element is set, this becomes computed.

+

+ + + + +
+ + +
attribute nsISchemaType nsISOAPBlock::schemaType [inherited] +
+
+ + + + + +
+   + + +

+The schema type used to encode or decode the block. If this is null, then the default encoder or decoder may

+

+ + + + +
+ + +
attribute nsIVariant nsISOAPBlock::value [inherited] +
+
+ + + + + +
+   + + +

+The native value which is the decoded value of this block. If this is modified, element is set to null and all attributes computed from element revert to previous uncomputed values. If element is set, this becomes computed, relying on the value of encoding and schemaType each time it is computed.

+


Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPPropertyBagMutator-members.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPPropertyBagMutator-members.html new file mode 100644 index 000000000000..57ae91c2f754 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPPropertyBagMutator-members.html @@ -0,0 +1,18 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPPropertyBagMutator Member List

This is the complete list of members for nsISOAPPropertyBagMutator, including all inherited members. + + +
addProperty(in AString aName, in nsIVariant aValue)nsISOAPPropertyBagMutator
propertyBagnsISOAPPropertyBagMutator

Generated on Fri Mar 15 01:44:19 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPPropertyBagMutator.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPPropertyBagMutator.html new file mode 100644 index 000000000000..e8dc835ee7fd --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPPropertyBagMutator.html @@ -0,0 +1,98 @@ + + +nsISOAPPropertyBagMutator interface Reference + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPPropertyBagMutator Interface Reference

import "nsISOAPPropertyBagMutator.idl"; +

+List of all members. + + + + +

Public Methods

void addProperty (in AString aName, in nsIVariant aValue)

Public Attributes

readonly attribute nsIPropertyBag propertyBag
+


Detailed Description

+This permits construction by native or script code a property bag that is also usable by other xpconnect systems. +

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void nsISOAPPropertyBagMutator::addProperty in AString   aName,
in nsIVariant   aValue
+
+ + + + + +
+   + + +

+Add or replace a property to the newly-constructed property bag.

+Parameters:
+ + + +
aName  +The name of the property.
aValue  +The value of the property.
+
+


Member Data Documentation

+

+ + + + +
+ + +
readonly attribute nsIPropertyBag nsISOAPPropertyBagMutator::propertyBag +
+
+ + + + + +
+   + + +

+The property bag that is being constructed. After the mutator is destroyed, this is read-only. This will never be null.

+


The documentation for this interface was generated from the following file: +
Generated on Fri Mar 15 01:44:19 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPResponse-members.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPResponse-members.html new file mode 100644 index 000000000000..ccd485edf6c9 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPResponse-members.html @@ -0,0 +1,32 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPResponse Member List

This is the complete list of members for nsISOAPResponse, including all inherited members. + + + + + + + + + + + + + + + + +
actionURInsISOAPMessage
bodynsISOAPMessage
encode(in unsigned short aVersion, in AString aMethodName, in AString aTargetObjectURI, in unsigned long aHeaderBlockCount,[array, size_is(aHeaderBlockCount)] in nsISOAPHeaderBlock aHeaderBlocks, in unsigned long aParameterCount,[array, size_is(aParameterCount)] in nsISOAPParameter aParameters)nsISOAPMessage
encodingnsISOAPMessage
envelopensISOAPMessage
faultnsISOAPResponse
getHeaderBlocks(out unsigned long aCount,[array, size_is(aCount), retval] out nsISOAPHeaderBlock aHeaderBlocks)nsISOAPMessage
getParameters(in boolean aDocumentStyle, out unsigned long aCount,[array, size_is(aCount), retval] out nsISOAPParameter aParameters)nsISOAPMessage
headernsISOAPMessage
messagensISOAPMessage
methodNamensISOAPMessage
targetObjectURInsISOAPMessage
versionnsISOAPMessage
VERSION_1_1 (defined in nsISOAPMessage)nsISOAPMessage
VERSION_1_2 (defined in nsISOAPMessage)nsISOAPMessage
VERSION_UNKNOWN (defined in nsISOAPMessage)nsISOAPMessage

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPResponse.gif b/extensions/xmlextras/docs/soap/html/interfacensISOAPResponse.gif new file mode 100644 index 0000000000000000000000000000000000000000..55b310cb3ef413f180b3d90a64664acfcd270a5d GIT binary patch literal 710 zcmV;%0y+IhNk%w1VRise0P+9;|Ns9000960z@MLBkN^MxkN^MxkifveA^8LW00000 zEC2ui0CoUS000C2IJ(^aFv>}*wIb`yyZ>M)j$|n+W~#1idk$_a&$NKnc&>Bz?*Fdd zDxe7%iJK#mv&<-$%_7hwR3V$tBvXLZa-+s+sVWT@vs_O!UG_SiV5k|M#LmC$?^;8q zv#)P{Qd@y}U1?c>fr^ZSSBiN&Flvs3XM=8NdUHgHg^-0EkfR@chL@q0mQR>oor_AS zf}5XkN2QaZt$(4Qi-dcCjUQmOr;)hCs>8<3zq-a~!=!)I9j2O`XLq!_zRhxWb#Mnc9>+da^BkAz4L+D5F<*Y0HC79 zix@L%+{pg1<3$4=Ly8fAXKr%awegO>D} zQ>f9S8jB)bx>PCCr$L=UooZ7m)vGS8V%>UDE7z|#!HVrVw(Ll+X49fgTXrp5v2Ndf zjVpI6-MUxr;+?8@@6*11n+9eJc(BpJhNC8KyLc?(#yTHEt|@tP&$>@CYu?Pcv**vC zLyP8Yd8?7qSWly-s(Lll)~=btCKDg~>G- zpo#P8H=u+nb_8OJA}YvTdspgt&Zk7N5J39kt4gdfE literal 0 HcmV?d00001 diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPResponse.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPResponse.html new file mode 100644 index 000000000000..16aa922c43a1 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPResponse.html @@ -0,0 +1,465 @@ + + +nsISOAPResponse interface Reference + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPResponse Interface Reference

import "nsISOAPResponse.idl"; +

+

Inheritance diagram for nsISOAPResponse: +

+ +nsISOAPMessage + +List of all members. + + + + + + + + + + + + + + + + + + +

Public Methods

void encode (in unsigned short aVersion, in AString aMethodName, in AString aTargetObjectURI, in unsigned long aHeaderBlockCount,[array, size_is(aHeaderBlockCount)] in nsISOAPHeaderBlock aHeaderBlocks, in unsigned long aParameterCount,[array, size_is(aParameterCount)] in nsISOAPParameter aParameters)
void getHeaderBlocks (out unsigned long aCount,[array, size_is(aCount), retval] out nsISOAPHeaderBlock aHeaderBlocks)
void getParameters (in boolean aDocumentStyle, out unsigned long aCount,[array, size_is(aCount), retval] out nsISOAPParameter aParameters)

Public Attributes

readonly attribute nsISOAPFault fault
+const unsigned short VERSION_1_1 = 0
+const unsigned short VERSION_1_2 = 1
+const unsigned short VERSION_UNKNOWN = 0xFFFF
attribute nsIDOMDocument message
readonly attribute nsIDOMElement envelope
readonly attribute unsigned
+short 
version
readonly attribute nsIDOMElement header
readonly attribute nsIDOMElement body
readonly attribute AString methodName
readonly attribute AString targetObjectURI
attribute nsISOAPEncoding encoding
attribute AString actionURI
+

Detailed Description

+This is an extension of a message which contains extra functions such as tracking, where appropriate, the original call that produced the response message, identifying the fault, if any, and supplying the return value. +

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void nsISOAPMessage::encode in unsigned short   aVersion,
in AString   aMethodName,
in AString   aTargetObjectURI,
in unsigned long   aHeaderBlockCount,
[array, size_is(aHeaderBlockCount)] in nsISOAPHeaderBlock   aHeaderBlocks,
in unsigned long   aParameterCount,
[array, size_is(aParameterCount)] in nsISOAPParameter   aParameters
[inherited]
+
+ + + + + +
+   + + +

+Encodes the specified parameters into this message, if this message type supports it.

+Parameters:
+ + + + + + + +
aMethodName  +The name of the method being invoked for rpc-style messages. For document-style messages, this must be null.
aTargetObjectURI  +The name of the target object for rpc-style messages. For document-style messages, this must be null.
aHeaderBlockCount  +Number of header blocks in array to be encoded. Must be 0 if header block array is null.
aHeaderBlocks  +Array of header blocks to be encoded, which may be null if there are no header blocks.
aParameterCount  +Number of parameters in array to be encoded. Must be 0 if parameter array is null.
aParameters  +An array of parameters to be encoded, which may null if there are no parameters.
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void nsISOAPMessage::getHeaderBlocks out unsigned long   aCount,
[array, size_is(aCount), retval] out nsISOAPHeaderBlock   aHeaderBlocks
[inherited]
+
+ + + + + +
+   + + +

+Gathers the header blocks of a message so that they can be accessed by a recipient.

+Parameters:
+ + +
aCount  +Integer to receive the length of the list of header blocks.
+
+Returns:
+Array of header blocks found in the message.
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void nsISOAPMessage::getParameters in boolean   aDocumentStyle,
out unsigned long   aCount,
[array, size_is(aCount), retval] out nsISOAPParameter   aParameters
[inherited]
+
+ + + + + +
+   + + +

+Gathers the parameters of a message so that they can be accessed by a recipient.

+Parameters:
+ + + +
aDocumentStyle  +If true, then the parameters are looked for treating the message as a document style message, otherwise it treated as an RPC-style message.
aCount  +Integer to receive the length of the list of parameters.
+
+Returns:
+Array of parameters found in the message.
+


Member Data Documentation

+

+ + + + +
+ + +
attribute AString nsISOAPMessage::actionURI [inherited] +
+
+ + + + + +
+   + + +

+An optional URI that can be used to add a SOAPAction HTTP header field. If this attribute is NULL (the default case), no SOAPAction header will be added.

+

+ + + + +
+ + +
readonly attribute nsIDOMElement nsISOAPMessage::body [inherited] +
+
+ + + + + +
+   + + +

+A convenience attribute to obtain the DOM element representing the SOAP body from the envelope. DOM methods may be used to access, add, or modify attributes or elements of the body. +

+If the envelope attribute is null or does not contain a SOAP body element type, then this will be null.

+

+ + + + +
+ + +
attribute nsISOAPEncoding nsISOAPMessage::encoding [inherited] +
+
+ + + + + +
+   + + +

+The primary encoding of the message, which is established at the envelope and used unless overridden. By default, this is the SOAP encoding, which may be locally modified or used to obtain alternative encodings, which may be locally modified, but it may be set to an encoding that is shared, or it may be set to null, in which case all non-literal header blocks and parameters must specify an encoding.

+

+ + + + +
+ + +
readonly attribute nsIDOMElement nsISOAPMessage::envelope [inherited] +
+
+ + + + + +
+   + + +

+A convenience attribute to obtain the DOM element representing the SOAP envelope from the document. DOM methods may be used to access, add, or modify attributes of the envelope. +

+If the message attribute is null or is not a document containing a root soap envelope element, then this will be null.

+

+ + + + +
+ + +
readonly attribute nsISOAPFault nsISOAPResponse::fault +
+
+ + + + + +
+   + + +

+The fault returned in the response, if one was generated. NULL if there was no fault. This does not rely on the response parameters having been deserialized.

+

+ + + + +
+ + +
readonly attribute nsIDOMElement nsISOAPMessage::header [inherited] +
+
+ + + + + +
+   + + +

+A convenience attribute to obtain the DOM element representing the SOAP header from the envelope. DOM methods may be used to access, add, or modify attributes or elements of the header. +

+If the envelope attribute is null or does not contain a SOAP header element type, then this will be null.

+

+ + + + +
+ + +
attribute nsIDOMDocument nsISOAPMessage::message [inherited] +
+
+ + + + + +
+   + + +

+The document which captures the message, if any. A simple sending application passes parameters to the method encodeSOAPParameters, which calls SOAP encoders to construct this document along with all contained elements. +

+But an application may create and set the message directly instead of invoking encodeSOAPParameters to use encoders or access and manipulate the message after it has been constructed by encodeSOAPParameters. If the message has not been set, invoking a call will fail. A message reciever may also use this accessor to get the document to avoid using decoders.

+

+ + + + +
+ + +
readonly attribute AString nsISOAPMessage::methodName [inherited] +
+
+ + + + + +
+   + + +

+The name of the method being invoked. The methodName is set during encoding as the tagname of the single child of body of RPC-style messages. When there is no encoded message this will be null. The value of this attribute for document-style messages may be non-null but should be ignored. It is up to the application to know whether the message is RPC-style or document style because the SOAP specification makes it difficult to tell which way a message was encoded.

+

+ + + + +
+ + +
readonly attribute AString nsISOAPMessage::targetObjectURI [inherited] +
+
+ + + + + +
+   + + +

+The target object on which the method is being invoked. This URI is set during encoding as the namespace to qualify the tagname of the single child of body of RPC-style messages. When there is no encoded message, this will be null. The value of this attribute for document-style messages may be non-null but should be ignored. It is up to the application to know whether the message is RPC-style or document style because the SOAP specification makes it difficult to tell which way a message was encoded.

+

+ + + + +
+ + +
readonly attribute unsigned short nsISOAPMessage::version [inherited] +
+
+ + + + + +
+   + + +

+A convenience attribute to obtain the SOAP version number, if it is known, from the envelope. +

+If the message attribute is null or is not a document containing a root soap envelope element, then this will be VERSION_UNKNOWN.

+


Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPResponseListener-members.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPResponseListener-members.html new file mode 100644 index 000000000000..c6156d32a119 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPResponseListener-members.html @@ -0,0 +1,17 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPResponseListener Member List

This is the complete list of members for nsISOAPResponseListener, including all inherited members. + +
handleResponse(in nsISOAPResponse aResponse, in nsISOAPCall aCall, in unsigned long status, in boolean aLast)nsISOAPResponseListener

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPResponseListener.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPResponseListener.html new file mode 100644 index 000000000000..e7307c8ecf33 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPResponseListener.html @@ -0,0 +1,85 @@ + + +nsISOAPResponseListener interface Reference + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPResponseListener Interface Reference

import "nsISOAPResponseListener.idl"; +

+List of all members. + + +

Public Methods

boolean handleResponse (in nsISOAPResponse aResponse, in nsISOAPCall aCall, in unsigned long status, in boolean aLast)
+


Detailed Description

+This interface represents a response handler to be invoked whenever a response of a particular call is recieved and when no more responses are expected. +

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
boolean nsISOAPResponseListener::handleResponse in nsISOAPResponse   aResponse,
in nsISOAPCall   aCall,
in unsigned long   status,
in boolean   aLast
+
+ + + + + +
+   + + +

+This method is invoked when we receive an asynchronous response to a SOAP message. The listener is registered as part of the original asynchronous call invocation.

+Parameters:
+ + + +
aResponse  +The decoded version of the response. If an error occurred transmitting the response, the status field of the response will contain an error code. The last call to the listener may contain a null response, which should only be interpreted as an error if your call expected more results than it got. If the service or the transport do not know whether to expect more results, then setting the last parameter true may only be possible after the last response has already been delivered.
aLast  +True if this is the last call to the listener.
+
+Returns:
+True to make this the last call to the listener, even if last was not true. Calls which expect a single response should return true upon receiving that response to avoid possibly recieving another callback with a null response indicating that the last response was already sent.
+


Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPService-members.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPService-members.html new file mode 100644 index 000000000000..e1b9ba288f10 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPService-members.html @@ -0,0 +1,18 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPService Member List

This is the complete list of members for nsISOAPService, including all inherited members. + + +
configurationnsISOAPService
process(in nsISOAPMessage aMessage, in nsISOAPResponseListener aListener)nsISOAPService

Generated on Fri Mar 15 01:44:19 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPService.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPService.html new file mode 100644 index 000000000000..f43b0488051a --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPService.html @@ -0,0 +1,100 @@ + + +nsISOAPService interface Reference + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPService Interface Reference

import "nsISOAPService.idl"; +

+List of all members. + + + + +

Public Methods

boolean process (in nsISOAPMessage aMessage, in nsISOAPResponseListener aListener)

Public Attributes

attribute nsISupports configuration
+


Detailed Description

+This interface describes a service which may be applied to incoming messages. The service is responsible for determining whether the message is one that it should process and rejecting it if it is not. Services may be chained. +

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
boolean nsISOAPService::process in nsISOAPMessage   aMessage,
in nsISOAPResponseListener   aListener
+
+ + + + + +
+   + + +

+Process an incoming message.

+Parameters:
+ + + +
aMessage  +message to be processed
aListener  +listener to which to report results
+
+Returns:
+True if the message will be handled, false if it should be given to some other service or fail. In case of failure, a more detailed status will be recorded in the message.
+


Member Data Documentation

+

+ + + + +
+ + +
attribute nsISupports nsISOAPService::configuration +
+
+ + + + + +
+   + + +

+Configuration object that may contain more info on the service

+


The documentation for this interface was generated from the following file: +
Generated on Fri Mar 15 01:44:19 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPServiceRegistry-members.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPServiceRegistry-members.html new file mode 100644 index 000000000000..8960a2d0f631 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPServiceRegistry-members.html @@ -0,0 +1,20 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPServiceRegistry Member List

This is the complete list of members for nsISOAPServiceRegistry, including all inherited members. + + + + +
addConfiguration(in nsIDOMElement aConfiguration)nsISOAPServiceRegistry
addService(in nsISOAPService aService)nsISOAPServiceRegistry
addSource(in AString aTransport, in boolean aCapture)nsISOAPServiceRegistry
encodingsnsISOAPServiceRegistry

Generated on Fri Mar 15 01:44:19 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPServiceRegistry.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPServiceRegistry.html new file mode 100644 index 000000000000..af41b644b417 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPServiceRegistry.html @@ -0,0 +1,170 @@ + + +nsISOAPServiceRegistry interface Reference + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPServiceRegistry Interface Reference

import "nsISOAPServiceRegistry.idl"; +

+List of all members. + + + + + + +

Public Methods

boolean addConfiguration (in nsIDOMElement aConfiguration)
void addSource (in AString aTransport, in boolean aCapture)
void addService (in nsISOAPService aService)

Public Attributes

attribute nsISOAPEncodingRegistry encodings
+


Detailed Description

+This interface represents a registry of SOAP services. This registry recieves transports to listen for messages and services to hand the messages to. Service registries may be created as required. Destroying a service registry stops the registry's action. To temporarily register services, create a new registry. For proper order of listening precedence, registries should be destroyed in reverse order. Otherwise, a listening priority would be required. +

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + +
boolean nsISOAPServiceRegistry::addConfiguration in nsIDOMElement   aConfiguration
+
+ + + + + +
+   + + +

+Process a configuration and add the resulting sources and services. This will fail if errors occur during processing of the configuration.

+Parameters:
+ + +
aConfiguration  +Root element of configuration XML.
+
+

+ + + + +
+ + + + + + + + + + +
void nsISOAPServiceRegistry::addService in nsISOAPService   aService
+
+ + + + + +
+   + + +

+Add a service to service the registered transports. This will fail if the specified service was already added.

+Parameters:
+ + +
aService  +Service to be serviced.
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void nsISOAPServiceRegistry::addSource in AString   aTransport,
in boolean   aCapture
+
+ + + + + +
+   + + +

+Add a transport to be serviced by the registered services. This will fail if the specified source was already added with the same setting of the capture flag.

+Parameters:
+ + + +
aTransport  +string specifying the transport to supply messages for the service.
aCapture  +True if capturing before later declarations
+
+


Member Data Documentation

+

+ + + + +
+ + +
attribute nsISOAPEncodingRegistry nsISOAPServiceRegistry::encodings +
+
+ + + + + +
+   + + +

+Registry identifying how to encode and decode messages containing specific types, automatically added to messages sent to services in this registry.

+


The documentation for this interface was generated from the following file: +
Generated on Fri Mar 15 01:44:19 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPTransportListener-members.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPTransportListener-members.html new file mode 100644 index 000000000000..134445ab10d9 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPTransportListener-members.html @@ -0,0 +1,17 @@ + + +Member List + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPTransportListener Member List

This is the complete list of members for nsISOAPTransportListener, including all inherited members. + +
handleMessage(in nsISOAPMessage aMessage, in boolean aCapture)nsISOAPTransportListener

Generated on Fri Mar 15 01:44:19 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/interfacensISOAPTransportListener.html b/extensions/xmlextras/docs/soap/html/interfacensISOAPTransportListener.html new file mode 100644 index 000000000000..4f4ca6ff1c26 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/interfacensISOAPTransportListener.html @@ -0,0 +1,75 @@ + + +nsISOAPTransportListener interface Reference + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPTransportListener Interface Reference

import "nsISOAPTransportListener.idl"; +

+List of all members. + + +

Public Methods

boolean handleMessage (in nsISOAPMessage aMessage, in boolean aCapture)
+


Detailed Description

+This interface recieves control when an unsolicited transport is recieved on a transport. +

+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
boolean nsISOAPTransportListener::handleMessage in nsISOAPMessage   aMessage,
in boolean   aCapture
+
+ + + + + +
+   + + +

+This method is invoked when an unsolicited message is recieved. First all listeners are tried in the order declared with the capture flag set. Then all listeners are tried in the reverse order declared with the capture flag clear.

+Parameters:
+ + + +
aMessage  +Actual message.
aCapture  +True if the listener is being permitted to gain control before all later-added listeners.
+
+Returns:
+true if message is handled, false if it was not
+


The documentation for this interface was generated from the following file: +
Generated on Fri Mar 15 01:44:19 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/nsISOAPAttachments_8idl-source.html b/extensions/xmlextras/docs/soap/html/nsISOAPAttachments_8idl-source.html new file mode 100644 index 000000000000..86ac1926645b --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/nsISOAPAttachments_8idl-source.html @@ -0,0 +1,63 @@ + + +nsISOAPAttachments.idl Source File + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPAttachments.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+00002 /* ***** BEGIN LICENSE BLOCK *****
+00003  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+00004  *
+00005  * The contents of this file are subject to the Netscape Public License
+00006  * Version 1.1 (the "License"); you may not use this file except in
+00007  * compliance with the License. You may obtain a copy of the License at
+00008  * http://www.mozilla.org/NPL/
+00009  *
+00010  * Software distributed under the License is distributed on an "AS IS" basis,
+00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+00012  * for the specific language governing rights and limitations under the
+00013  * License.
+00014  *
+00015  * The Original Code is mozilla.org code.
+00016  *
+00017  * The Initial Developer of the Original Code is 
+00018  * Netscape Communications Corporation.
+00019  * Portions created by the Initial Developer are Copyright (C) 2001
+00020  * the Initial Developer. All Rights Reserved.
+00021  *
+00022  * Contributor(s):
+00023  *
+00024  *
+00025  * Alternatively, the contents of this file may be used under the terms of
+00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
+00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+00028  * in which case the provisions of the GPL or the LGPL are applicable instead
+00029  * of those above. If you wish to allow use of your version of this file only
+00030  * under the terms of either the GPL or the LGPL, and not to allow others to
+00031  * use your version of this file under the terms of the NPL, indicate your
+00032  * decision by deleting the provisions above and replace them with the notice
+00033  * and other provisions required by the GPL or the LGPL. If you do not delete
+00034  * the provisions above, a recipient may use your version of this file under
+00035  * the terms of any one of the NPL, the GPL or the LGPL.
+00036  *
+00037  * ***** END LICENSE BLOCK ***** */
+00038 
+00039 #include "nsISupports.idl"
+00040 
+00045 [scriptable, uuid(6192dcbe-1dd2-11b2-81ad-a4597614c4ae)]
+00046 interface nsISOAPAttachments : nsISupports {
+00047 
+00055   void getAttachment(in AString aIdentifier);
+00056 
+00064   AString attach();
+00065 
+00066 };
+

Generated on Fri Mar 15 01:44:18 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/nsISOAPBlock_8idl-source.html b/extensions/xmlextras/docs/soap/html/nsISOAPBlock_8idl-source.html new file mode 100644 index 000000000000..ec3d567daa94 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/nsISOAPBlock_8idl-source.html @@ -0,0 +1,78 @@ + + +nsISOAPBlock.idl Source File + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPBlock.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+00002 /* ***** BEGIN LICENSE BLOCK *****
+00003  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+00004  *
+00005  * The contents of this file are subject to the Netscape Public License
+00006  * Version 1.1 (the "License"); you may not use this file except in
+00007  * compliance with the License. You may obtain a copy of the License at
+00008  * http://www.mozilla.org/NPL/
+00009  *
+00010  * Software distributed under the License is distributed on an "AS IS" basis,
+00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+00012  * for the specific language governing rights and limitations under the
+00013  * License.
+00014  *
+00015  * The Original Code is mozilla.org code.
+00016  *
+00017  * The Initial Developer of the Original Code is 
+00018  * Netscape Communications Corporation.
+00019  * Portions created by the Initial Developer are Copyright (C) 2001
+00020  * the Initial Developer. All Rights Reserved.
+00021  *
+00022  * Contributor(s):
+00023  *
+00024  *
+00025  * Alternatively, the contents of this file may be used under the terms of
+00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
+00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+00028  * in which case the provisions of the GPL or the LGPL are applicable instead
+00029  * of those above. If you wish to allow use of your version of this file only
+00030  * under the terms of either the GPL or the LGPL, and not to allow others to
+00031  * use your version of this file under the terms of the NPL, indicate your
+00032  * decision by deleting the provisions above and replace them with the notice
+00033  * and other provisions required by the GPL or the LGPL. If you do not delete
+00034  * the provisions above, a recipient may use your version of this file under
+00035  * the terms of any one of the NPL, the GPL or the LGPL.
+00036  *
+00037  * ***** END LICENSE BLOCK ***** */
+00038 
+00039 #include "nsISupports.idl"
+00040 
+00041 interface nsIDOMElement;
+00042 interface nsIVariant;
+00043 interface nsISOAPEncoding;
+00044 interface nsISchemaType;
+00045 interface nsISOAPAttachments;
+00046 
+00067 [scriptable, uuid(843afaa8-1dd2-11b2-8b0d-9b5d16fe64ea)]
+00068 interface nsISOAPBlock : nsISupports {
+00076   void init(in nsISOAPAttachments aAttachments,
+00077             in unsigned short aVersion);
+00078 
+00085   attribute AString namespaceURI;
+00086 
+00095   attribute AString name;
+00096 
+00103   attribute nsISOAPEncoding encoding;
+00104 
+00110   attribute nsISchemaType schemaType;
+00111 
+00118   attribute nsIDOMElement element;
+00119 
+00129   attribute nsIVariant value;
+00130 };
+

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/nsISOAPCallCompletion_8idl-source.html b/extensions/xmlextras/docs/soap/html/nsISOAPCallCompletion_8idl-source.html new file mode 100644 index 000000000000..bcc18722cc05 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/nsISOAPCallCompletion_8idl-source.html @@ -0,0 +1,69 @@ + + +nsISOAPCallCompletion.idl Source File + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPCallCompletion.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+00002 /* ***** BEGIN LICENSE BLOCK *****
+00003  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+00004  *
+00005  * The contents of this file are subject to the Netscape Public License
+00006  * Version 1.1 (the "License"); you may not use this file except in
+00007  * compliance with the License. You may obtain a copy of the License at
+00008  * http://www.mozilla.org/NPL/
+00009  *
+00010  * Software distributed under the License is distributed on an "AS IS" basis,
+00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+00012  * for the specific language governing rights and limitations under the
+00013  * License.
+00014  *
+00015  * The Original Code is mozilla.org code.
+00016  *
+00017  * The Initial Developer of the Original Code is 
+00018  * Netscape Communications Corporation.
+00019  * Portions created by the Initial Developer are Copyright (C) 2001
+00020  * the Initial Developer. All Rights Reserved.
+00021  *
+00022  * Contributor(s):
+00023  *
+00024  *
+00025  * Alternatively, the contents of this file may be used under the terms of
+00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
+00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+00028  * in which case the provisions of the GPL or the LGPL are applicable instead
+00029  * of those above. If you wish to allow use of your version of this file only
+00030  * under the terms of either the GPL or the LGPL, and not to allow others to
+00031  * use your version of this file under the terms of the NPL, indicate your
+00032  * decision by deleting the provisions above and replace them with the notice
+00033  * and other provisions required by the GPL or the LGPL. If you do not delete
+00034  * the provisions above, a recipient may use your version of this file under
+00035  * the terms of any one of the NPL, the GPL or the LGPL.
+00036  *
+00037  * ***** END LICENSE BLOCK ***** */
+00038 
+00039 #include "nsISupports.idl"
+00040 
+00041 interface nsISOAPCall;
+00042 interface nsISOAPResponse;
+00043 interface nsISOAPResponseListener;
+00044 
+00051 [scriptable, uuid(86114dd8-1dd2-11b2-ab2b-91d0c995e03a)]
+00052 interface nsISOAPCallCompletion : nsISupports {
+00053 
+00058   readonly attribute nsISOAPCall call;
+00062   readonly attribute nsISOAPResponse response;
+00066   readonly attribute nsISOAPResponseListener listener;
+00070   readonly attribute boolean isComplete;
+00071 
+00079   boolean abort();
+00080 };
+

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/nsISOAPCall_8idl-source.html b/extensions/xmlextras/docs/soap/html/nsISOAPCall_8idl-source.html new file mode 100644 index 000000000000..df7d26a657b9 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/nsISOAPCall_8idl-source.html @@ -0,0 +1,80 @@ + + +nsISOAPCall.idl Source File + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPCall.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+00002 /* ***** BEGIN LICENSE BLOCK *****
+00003  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+00004  *
+00005  * The contents of this file are subject to the Netscape Public License
+00006  * Version 1.1 (the "License"); you may not use this file except in
+00007  * compliance with the License. You may obtain a copy of the License at
+00008  * http://www.mozilla.org/NPL/
+00009  *
+00010  * Software distributed under the License is distributed on an "AS IS" basis,
+00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+00012  * for the specific language governing rights and limitations under the
+00013  * License.
+00014  *
+00015  * The Original Code is mozilla.org code.
+00016  *
+00017  * The Initial Developer of the Original Code is 
+00018  * Netscape Communications Corporation.
+00019  * Portions created by the Initial Developer are Copyright (C) 2001
+00020  * the Initial Developer. All Rights Reserved.
+00021  *
+00022  * Contributor(s):
+00023  *
+00024  *
+00025  * Alternatively, the contents of this file may be used under the terms of
+00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
+00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+00028  * in which case the provisions of the GPL or the LGPL are applicable instead
+00029  * of those above. If you wish to allow use of your version of this file only
+00030  * under the terms of either the GPL or the LGPL, and not to allow others to
+00031  * use your version of this file under the terms of the NPL, indicate your
+00032  * decision by deleting the provisions above and replace them with the notice
+00033  * and other provisions required by the GPL or the LGPL. If you do not delete
+00034  * the provisions above, a recipient may use your version of this file under
+00035  * the terms of any one of the NPL, the GPL or the LGPL.
+00036  *
+00037  * ***** END LICENSE BLOCK ***** */
+00038 
+00039 #include "nsISupports.idl"
+00040 #include "nsISOAPMessage.idl"
+00041 
+00042 interface nsISOAPResponse;
+00043 interface nsISOAPResponseListener;
+00044 interface nsISOAPCallCompletion;
+00045 
+00055 [scriptable, uuid(a8fefe40-52bc-11d4-9a57-000064657374)]
+00056 interface nsISOAPCall : nsISOAPMessage {
+00057 
+00064   attribute AString transportURI;
+00065 
+00094   attribute boolean verifySourceHeader;
+00095 
+00109   nsISOAPResponse invoke();
+00110 
+00127   nsISOAPCallCompletion asyncInvoke(in nsISOAPResponseListener aListener);
+00128 };
+00129 
+00130 %{C++
+00131 #define NS_SOAPCALL_CID                             \
+00132 { /* 87d21ec0-539d-11d4-9a59-00104bdf5339 */        \
+00133   0x87d21ec0, 0x539d, 0x11d4,                       \
+00134  {0x9a, 0x59, 0x00, 0x10, 0x4b, 0xdf, 0x53, 0x39} }
+00135 #define NS_SOAPCALL_CONTRACTID \
+00136 "@mozilla.org/xmlextras/soap/call;1"
+00137 %}
+

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/nsISOAPDecoder_8idl-source.html b/extensions/xmlextras/docs/soap/html/nsISOAPDecoder_8idl-source.html new file mode 100644 index 000000000000..092ff4c32321 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/nsISOAPDecoder_8idl-source.html @@ -0,0 +1,69 @@ + + +nsISOAPDecoder.idl Source File + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPDecoder.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+00002 /* ***** BEGIN LICENSE BLOCK *****
+00003  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+00004  *
+00005  * The contents of this file are subject to the Netscape Public License
+00006  * Version 1.1 (the "License"); you may not use this file except in
+00007  * compliance with the License. You may obtain a copy of the License at
+00008  * http://www.mozilla.org/NPL/
+00009  *
+00010  * Software distributed under the License is distributed on an "AS IS" basis,
+00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+00012  * for the specific language governing rights and limitations under the
+00013  * License.
+00014  *
+00015  * The Original Code is mozilla.org code.
+00016  *
+00017  * The Initial Developer of the Original Code is 
+00018  * Netscape Communications Corporation.
+00019  * Portions created by the Initial Developer are Copyright (C) 2001
+00020  * the Initial Developer. All Rights Reserved.
+00021  *
+00022  * Contributor(s):
+00023  *
+00024  *
+00025  * Alternatively, the contents of this file may be used under the terms of
+00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
+00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+00028  * in which case the provisions of the GPL or the LGPL are applicable instead
+00029  * of those above. If you wish to allow use of your version of this file only
+00030  * under the terms of either the GPL or the LGPL, and not to allow others to
+00031  * use your version of this file under the terms of the NPL, indicate your
+00032  * decision by deleting the provisions above and replace them with the notice
+00033  * and other provisions required by the GPL or the LGPL. If you do not delete
+00034  * the provisions above, a recipient may use your version of this file under
+00035  * the terms of any one of the NPL, the GPL or the LGPL.
+00036  *
+00037  * ***** END LICENSE BLOCK ***** */
+00038 
+00039 #include "nsISupports.idl"
+00040 
+00041 interface nsISchemaType;
+00042 interface nsISOAPEncoding;
+00043 interface nsIDOMElement;
+00044 interface nsIVariant;
+00045 interface nsISOAPAttachments;
+00046 
+00053 [scriptable, uuid(4c2e02ae-1dd2-11b2-b1cd-c79dea3d46db)]
+00054 interface nsISOAPDecoder : nsISupports {
+00055 
+00072   nsIVariant decode(in nsISOAPEncoding aEncoding,
+00073                     in nsIDOMElement aSource,
+00074                     in nsISchemaType aSchemaType,
+00075                     in nsISOAPAttachments aAttachments);
+00076 };
+

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/nsISOAPEncoder_8idl-source.html b/extensions/xmlextras/docs/soap/html/nsISOAPEncoder_8idl-source.html new file mode 100644 index 000000000000..25b269518f3a --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/nsISOAPEncoder_8idl-source.html @@ -0,0 +1,72 @@ + + +nsISOAPEncoder.idl Source File + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPEncoder.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+00002 /* ***** BEGIN LICENSE BLOCK *****
+00003  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+00004  *
+00005  * The contents of this file are subject to the Netscape Public License
+00006  * Version 1.1 (the "License"); you may not use this file except in
+00007  * compliance with the License. You may obtain a copy of the License at
+00008  * http://www.mozilla.org/NPL/
+00009  *
+00010  * Software distributed under the License is distributed on an "AS IS" basis,
+00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+00012  * for the specific language governing rights and limitations under the
+00013  * License.
+00014  *
+00015  * The Original Code is mozilla.org code.
+00016  *
+00017  * The Initial Developer of the Original Code is 
+00018  * Netscape Communications Corporation.
+00019  * Portions created by the Initial Developer are Copyright (C) 2001
+00020  * the Initial Developer. All Rights Reserved.
+00021  *
+00022  * Contributor(s):
+00023  *
+00024  *
+00025  * Alternatively, the contents of this file may be used under the terms of
+00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
+00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+00028  * in which case the provisions of the GPL or the LGPL are applicable instead
+00029  * of those above. If you wish to allow use of your version of this file only
+00030  * under the terms of either the GPL or the LGPL, and not to allow others to
+00031  * use your version of this file under the terms of the NPL, indicate your
+00032  * decision by deleting the provisions above and replace them with the notice
+00033  * and other provisions required by the GPL or the LGPL. If you do not delete
+00034  * the provisions above, a recipient may use your version of this file under
+00035  * the terms of any one of the NPL, the GPL or the LGPL.
+00036  *
+00037  * ***** END LICENSE BLOCK ***** */
+00038 
+00039 #include "nsISupports.idl"
+00040 
+00041 interface nsISchemaType;
+00042 interface nsISOAPEncoding;
+00043 interface nsIVariant;
+00044 interface nsIDOMElement;
+00045 interface nsISOAPAttachments;
+00046 
+00051 [scriptable, uuid(fc33ffd6-1dd1-11b2-8750-fa62430a38b4)]
+00052 interface nsISOAPEncoder : nsISupports {
+00053 
+00077   nsIDOMElement encode(in nsISOAPEncoding aEncoding,
+00078                        in nsIVariant aSource,
+00079                        in AString aNamespaceURI,
+00080                        in AString aName,
+00081                        in nsISchemaType aSchemaType,
+00082                        in nsISOAPAttachments aAttachments,
+00083                        in nsIDOMElement aDestination);
+00084 };
+

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/nsISOAPEncoding_8idl-source.html b/extensions/xmlextras/docs/soap/html/nsISOAPEncoding_8idl-source.html new file mode 100644 index 000000000000..b9461d736e85 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/nsISOAPEncoding_8idl-source.html @@ -0,0 +1,130 @@ + + +nsISOAPEncoding.idl Source File + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPEncoding.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+00002 /* ***** BEGIN LICENSE BLOCK *****
+00003  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+00004  *
+00005  * The contents of this file are subject to the Netscape Public License
+00006  * Version 1.1 (the "License"); you may not use this file except in
+00007  * compliance with the License. You may obtain a copy of the License at
+00008  * http://www.mozilla.org/NPL/
+00009  *
+00010  * Software distributed under the License is distributed on an "AS IS" basis,
+00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+00012  * for the specific language governing rights and limitations under the
+00013  * License.
+00014  *
+00015  * The Original Code is mozilla.org code.
+00016  *
+00017  * The Initial Developer of the Original Code is 
+00018  * Netscape Communications Corporation.
+00019  * Portions created by the Initial Developer are Copyright (C) 2001
+00020  * the Initial Developer. All Rights Reserved.
+00021  *
+00022  * Contributor(s):
+00023  *
+00024  *
+00025  * Alternatively, the contents of this file may be used under the terms of
+00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
+00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+00028  * in which case the provisions of the GPL or the LGPL are applicable instead
+00029  * of those above. If you wish to allow use of your version of this file only
+00030  * under the terms of either the GPL or the LGPL, and not to allow others to
+00031  * use your version of this file under the terms of the NPL, indicate your
+00032  * decision by deleting the provisions above and replace them with the notice
+00033  * and other provisions required by the GPL or the LGPL. If you do not delete
+00034  * the provisions above, a recipient may use your version of this file under
+00035  * the terms of any one of the NPL, the GPL or the LGPL.
+00036  *
+00037  * ***** END LICENSE BLOCK ***** */
+00038 
+00039 #include "nsISupports.idl"
+00040 
+00041 interface nsISchemaType;
+00042 interface nsIDOMElement;
+00043 interface nsISOAPEncoder;
+00044 interface nsISOAPDecoder;
+00045 interface nsISOAPMessage;
+00046 interface nsIVariant;
+00047 interface nsISOAPAttachments;
+00048 interface nsISchemaCollection;
+00049 
+00065 [scriptable, uuid(9ae49600-1dd1-11b2-877f-e62f620c5e92)]
+00066 interface nsISOAPEncoding : nsISupports {
+00067 
+00071   readonly attribute AString styleURI;
+00072 
+00090   nsISOAPEncoding getAssociatedEncoding(in AString aStyleURI,
+00091                                         in boolean aCreateIf);
+00092 
+00101   void setEncoder(in AString aKey, in nsISOAPEncoder aEncoder);
+00102 
+00110   nsISOAPEncoder getEncoder(in AString aKey);
+00111 
+00120   void setDecoder(in AString aKey, in nsISOAPDecoder aDecoder);
+00121 
+00129   nsISOAPDecoder getDecoder(in AString aKey);
+00130 
+00137   attribute nsISOAPEncoder defaultEncoder;
+00138 
+00145   attribute nsISOAPDecoder defaultDecoder;
+00146 
+00150   attribute nsISchemaCollection schemaCollection;
+00151 
+00173   nsIDOMElement encode(in nsIVariant aSource,
+00174                        in AString aNamespaceURI,
+00175                        in AString aName,
+00176                        in nsISchemaType aSchemaType,
+00177                        in nsISOAPAttachments aAttachments,
+00178                        in nsIDOMElement aDestination);
+00179 
+00196   nsIVariant decode(in nsIDOMElement aSource,
+00197                     in nsISchemaType aSchemaType,
+00198                     in nsISOAPAttachments aAttachments);
+00217   boolean mapSchemaURI(in AString aExternalURI,
+00218                     in AString aInternalURI,
+00219                     in boolean aOutput);
+00220 
+00230   boolean unmapSchemaURI(in AString aExternalURI);
+00231 
+00241   AString getInternalSchemaURI(in AString aExternalURI);
+00242 
+00252   AString getExternalSchemaURI(in AString aInternalURI);
+00253 
+00254 };
+00255 
+00256 %{C++
+00257 #define NS_SOAPENCODING_CID                            \
+00258 { /* db612ec6-1dd1-11b2-a8bc-e6777bf70a30 */        \
+00259   0xdb612ec6, 0x1dd1, 0x11b2,                       \
+00260  {0xa8, 0xbc, 0xe6, 0x77, 0x7b, 0xf7, 0x0a, 0x30} }
+00261 #define NS_SOAPENCODING_CONTRACTID \
+00262 "@mozilla.org/xmlextras/soap/encoding;1"
+00263 #define NS_SOAPENCODING_CONTRACTID_PREFIX \
+00264 NS_SOAPENCODING_CONTRACTID "?uri="
+00265 #define NS_DEFAULTSOAPENCODER_1_1_CID                            \
+00266 { /* 06fb035c-1dd2-11b2-bc30-f6d8e314d6b9 */        \
+00267   0x06fb035c, 0x1dd2, 0x11b2,                       \
+00268  {0xbc, 0x30, 0xf6, 0xd8, 0xe3, 0x14, 0xd6, 0xb9} }
+00269 #define NS_DEFAULTSOAPENCODER_1_1_CONTRACTID \
+00270 NS_SOAPENCODING_CONTRACTID_PREFIX "http://schemas.xmlsoap.org/soap/encoding/"
+00271 #define NS_DEFAULTSOAPENCODER_1_2_CID                            \
+00272 { /* e0ee4044-1dd1-11b2-9d7e-8899d4d89648 */        \
+00273   0xe0ee4044, 0x1dd1, 0x11b2,                       \
+00274  {0x9d, 0x7e, 0x88, 0x99, 0xd4, 0xd8, 0x96, 0x48} }
+00275 #define NS_DEFAULTSOAPENCODER_1_2_CONTRACTID \
+00276 NS_SOAPENCODING_CONTRACTID_PREFIX "http://www.w3.org/2001/09/soap-encoding"
+00277 %}
+

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/nsISOAPFault_8idl-source.html b/extensions/xmlextras/docs/soap/html/nsISOAPFault_8idl-source.html new file mode 100644 index 000000000000..1e7e2800019a --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/nsISOAPFault_8idl-source.html @@ -0,0 +1,84 @@ + + +nsISOAPFault.idl Source File + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPFault.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+00002 /* ***** BEGIN LICENSE BLOCK *****
+00003  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+00004  *
+00005  * The contents of this file are subject to the Netscape Public License
+00006  * Version 1.1 (the "License"); you may not use this file except in
+00007  * compliance with the License. You may obtain a copy of the License at
+00008  * http://www.mozilla.org/NPL/
+00009  *
+00010  * Software distributed under the License is distributed on an "AS IS" basis,
+00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+00012  * for the specific language governing rights and limitations under the
+00013  * License.
+00014  *
+00015  * The Original Code is mozilla.org code.
+00016  *
+00017  * The Initial Developer of the Original Code is 
+00018  * Netscape Communications Corporation.
+00019  * Portions created by the Initial Developer are Copyright (C) 2001
+00020  * the Initial Developer. All Rights Reserved.
+00021  *
+00022  * Contributor(s):
+00023  *
+00024  *
+00025  * Alternatively, the contents of this file may be used under the terms of
+00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
+00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+00028  * in which case the provisions of the GPL or the LGPL are applicable instead
+00029  * of those above. If you wish to allow use of your version of this file only
+00030  * under the terms of either the GPL or the LGPL, and not to allow others to
+00031  * use your version of this file under the terms of the NPL, indicate your
+00032  * decision by deleting the provisions above and replace them with the notice
+00033  * and other provisions required by the GPL or the LGPL. If you do not delete
+00034  * the provisions above, a recipient may use your version of this file under
+00035  * the terms of any one of the NPL, the GPL or the LGPL.
+00036  *
+00037  * ***** END LICENSE BLOCK ***** */
+00038 
+00039 #include "nsISupports.idl"
+00040 
+00041 %{ C++
+00042 #include "nsAWritableString.h"
+00043 %} 
+00044 
+00045 interface nsIDOMElement;
+00046 
+00053 [scriptable, uuid(99ec6694-535f-11d4-9a58-000064657374)]
+00054 interface nsISOAPFault : nsISupports {
+00059   attribute nsIDOMElement element;
+00060 
+00064   readonly attribute AString faultNamespaceURI;
+00065 
+00069   readonly attribute AString faultCode;
+00070 
+00074   readonly attribute AString faultString;
+00075 
+00079   readonly attribute AString faultActor;
+00080 
+00084   readonly attribute nsIDOMElement detail;
+00085 };
+00086 
+00087 %{C++
+00088 #define NS_SOAPFAULT_CID                            \
+00089 { /* 87d21ec1-539d-11d4-9a59-00104bdf5339 */        \
+00090   0x87d21ec1, 0x539d, 0x11d4,                       \
+00091  {0x9a, 0x59, 0x00, 0x10, 0x4b, 0xdf, 0x53, 0x39} }
+00092 #define NS_SOAPFAULT_CONTRACTID \
+00093 "@mozilla.org/xmlextras/soap/fault;1"
+00094 %}
+

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/nsISOAPHeaderBlock_8idl-source.html b/extensions/xmlextras/docs/soap/html/nsISOAPHeaderBlock_8idl-source.html new file mode 100644 index 000000000000..bee6110c1315 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/nsISOAPHeaderBlock_8idl-source.html @@ -0,0 +1,75 @@ + + +nsISOAPHeaderBlock.idl Source File + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPHeaderBlock.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+00002 /* ***** BEGIN LICENSE BLOCK *****
+00003  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+00004  *
+00005  * The contents of this file are subject to the Netscape Public License
+00006  * Version 1.1 (the "License"); you may not use this file except in
+00007  * compliance with the License. You may obtain a copy of the License at
+00008  * http://www.mozilla.org/NPL/
+00009  *
+00010  * Software distributed under the License is distributed on an "AS IS" basis,
+00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+00012  * for the specific language governing rights and limitations under the
+00013  * License.
+00014  *
+00015  * The Original Code is mozilla.org code.
+00016  *
+00017  * The Initial Developer of the Original Code is 
+00018  * Netscape Communications Corporation.
+00019  * Portions created by the Initial Developer are Copyright (C) 2001
+00020  * the Initial Developer. All Rights Reserved.
+00021  *
+00022  * Contributor(s):
+00023  *
+00024  *
+00025  * Alternatively, the contents of this file may be used under the terms of
+00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
+00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+00028  * in which case the provisions of the GPL or the LGPL are applicable instead
+00029  * of those above. If you wish to allow use of your version of this file only
+00030  * under the terms of either the GPL or the LGPL, and not to allow others to
+00031  * use your version of this file under the terms of the NPL, indicate your
+00032  * decision by deleting the provisions above and replace them with the notice
+00033  * and other provisions required by the GPL or the LGPL. If you do not delete
+00034  * the provisions above, a recipient may use your version of this file under
+00035  * the terms of any one of the NPL, the GPL or the LGPL.
+00036  *
+00037  * ***** END LICENSE BLOCK ***** */
+00038 
+00039 #include "nsISOAPBlock.idl"
+00040 
+00041 interface nsIDOMElement;
+00042 interface nsIVariant;
+00043 interface nsISOAPEncoding;
+00044 interface nsISchemaType;
+00045 
+00053 [scriptable, uuid(063d4a4e-1dd2-11b2-a365-cbaf1651f140)]
+00054 interface nsISOAPHeaderBlock : nsISOAPBlock {
+00061   attribute AString actorURI;
+00062 
+00070   attribute boolean mustUnderstand;
+00071 };
+00072 
+00073 %{C++
+00074 #define NS_SOAPHEADERBLOCK_CID                        \
+00075 { /* 5ad0eace-1dd2-11b2-a260-ff42edcaedb3 */        \
+00076   0x5ad0eace, 0x1dd2, 0x11b2,                       \
+00077  {0xa2, 0x60, 0xff, 0x42, 0xed, 0xca, 0xed, 0xb3} }
+00078 #define NS_SOAPHEADERBLOCK_CONTRACTID \
+00079 "@mozilla.org/xmlextras/soap/headerblock;1"
+00080 %}
+

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/nsISOAPMessage_8idl-source.html b/extensions/xmlextras/docs/soap/html/nsISOAPMessage_8idl-source.html new file mode 100644 index 000000000000..f241ee72e97e --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/nsISOAPMessage_8idl-source.html @@ -0,0 +1,106 @@ + + +nsISOAPMessage.idl Source File + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPMessage.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+00002 /* ***** BEGIN LICENSE BLOCK *****
+00003  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+00004  *
+00005  * The contents of this file are subject to the Netscape Public License
+00006  * Version 1.1 (the "License"); you may not use this file except in
+00007  * compliance with the License. You may obtain a copy of the License at
+00008  * http://www.mozilla.org/NPL/
+00009  *
+00010  * Software distributed under the License is distributed on an "AS IS" basis,
+00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+00012  * for the specific language governing rights and limitations under the
+00013  * License.
+00014  *
+00015  * The Original Code is mozilla.org code.
+00016  *
+00017  * The Initial Developer of the Original Code is 
+00018  * Netscape Communications Corporation.
+00019  * Portions created by the Initial Developer are Copyright (C) 2001
+00020  * the Initial Developer. All Rights Reserved.
+00021  *
+00022  * Contributor(s):
+00023  *
+00024  *
+00025  * Alternatively, the contents of this file may be used under the terms of
+00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
+00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+00028  * in which case the provisions of the GPL or the LGPL are applicable instead
+00029  * of those above. If you wish to allow use of your version of this file only
+00030  * under the terms of either the GPL or the LGPL, and not to allow others to
+00031  * use your version of this file under the terms of the NPL, indicate your
+00032  * decision by deleting the provisions above and replace them with the notice
+00033  * and other provisions required by the GPL or the LGPL. If you do not delete
+00034  * the provisions above, a recipient may use your version of this file under
+00035  * the terms of any one of the NPL, the GPL or the LGPL.
+00036  *
+00037  * ***** END LICENSE BLOCK ***** */
+00038 
+00039 #include "nsISupports.idl"
+00040 
+00041 interface nsIDOMDocument;
+00042 interface nsIDOMElement;
+00043 interface nsISOAPEncoding;
+00044 interface nsISOAPHeaderBlock;
+00045 interface nsISOAPParameter;
+00046 interface nsIVariant;
+00047 
+00059 [scriptable, uuid(3970815e-1dd2-11b2-a475-db4dac6826f1)]
+00060 interface nsISOAPMessage : nsISupports {
+00061 
+00062   const unsigned short VERSION_1_1 = 0;
+00063   const unsigned short VERSION_1_2 = 1;
+00064   const unsigned short VERSION_UNKNOWN = 0xFFFF;
+00065 
+00080   attribute nsIDOMDocument message;
+00081 
+00090   readonly attribute nsIDOMElement envelope;
+00091 
+00099   readonly attribute unsigned short version;
+00100 
+00109   readonly attribute nsIDOMElement header;
+00110 
+00119   readonly attribute nsIDOMElement body;
+00120 
+00132   readonly attribute AString methodName;
+00133 
+00145   readonly attribute AString targetObjectURI;
+00146 
+00171   void encode(in unsigned short aVersion,
+00172               in AString aMethodName, in AString aTargetObjectURI,
+00173               in unsigned long aHeaderBlockCount,
+00174               [array,
+00175                size_is(aHeaderBlockCount)] in nsISOAPHeaderBlock
+00176               aHeaderBlocks, in unsigned long aParameterCount,[array,
+00177                                                           size_is
+00178                                                           (aParameterCount)]
+00179               in nsISOAPParameter aParameters);
+00180 
+00190   void getHeaderBlocks(out unsigned long aCount,
+00191                        [array, size_is(aCount),
+00192                         retval] out nsISOAPHeaderBlock aHeaderBlocks);
+00193 
+00208   void getParameters(in boolean aDocumentStyle,
+00209                      out unsigned long aCount,
+00210                      [array, size_is(aCount),
+00211                      retval] out nsISOAPParameter aParameters);
+00212 
+00223   attribute nsISOAPEncoding encoding;
+00224 
+00230   attribute AString actionURI;
+00231 };
+

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/nsISOAPParameter_8idl-source.html b/extensions/xmlextras/docs/soap/html/nsISOAPParameter_8idl-source.html new file mode 100644 index 000000000000..5fd37e26ed7c --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/nsISOAPParameter_8idl-source.html @@ -0,0 +1,72 @@ + + +nsISOAPParameter.idl Source File + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPParameter.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+00002 /* ***** BEGIN LICENSE BLOCK *****
+00003  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+00004  *
+00005  * The contents of this file are subject to the Netscape Public License
+00006  * Version 1.1 (the "License"); you may not use this file except in
+00007  * compliance with the License. You may obtain a copy of the License at
+00008  * http://www.mozilla.org/NPL/
+00009  *
+00010  * Software distributed under the License is distributed on an "AS IS" basis,
+00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+00012  * for the specific language governing rights and limitations under the
+00013  * License.
+00014  *
+00015  * The Original Code is mozilla.org code.
+00016  *
+00017  * The Initial Developer of the Original Code is 
+00018  * Netscape Communications Corporation.
+00019  * Portions created by the Initial Developer are Copyright (C) 2001
+00020  * the Initial Developer. All Rights Reserved.
+00021  *
+00022  * Contributor(s):
+00023  *
+00024  *
+00025  * Alternatively, the contents of this file may be used under the terms of
+00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
+00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+00028  * in which case the provisions of the GPL or the LGPL are applicable instead
+00029  * of those above. If you wish to allow use of your version of this file only
+00030  * under the terms of either the GPL or the LGPL, and not to allow others to
+00031  * use your version of this file under the terms of the NPL, indicate your
+00032  * decision by deleting the provisions above and replace them with the notice
+00033  * and other provisions required by the GPL or the LGPL. If you do not delete
+00034  * the provisions above, a recipient may use your version of this file under
+00035  * the terms of any one of the NPL, the GPL or the LGPL.
+00036  *
+00037  * ***** END LICENSE BLOCK ***** */
+00038 
+00039 #include "nsISOAPBlock.idl"
+00040 
+00041 interface nsIDOMElement;
+00042 interface nsIVariant;
+00043 interface nsISOAPEncoding;
+00044 interface nsISchemaType;
+00045 
+00052 [scriptable, uuid(99ec6690-535f-11d4-9a58-000064657374)]
+00053 interface nsISOAPParameter : nsISOAPBlock {
+00054 };
+00055 
+00056 %{C++
+00057 #define NS_SOAPPARAMETER_CID                        \
+00058 { /* 87d21ec2-539d-11d4-9a59-00104bdf5339 */        \
+00059   0x87d21ec2, 0x539d, 0x11d4,                       \
+00060  {0x9a, 0x59, 0x00, 0x10, 0x4b, 0xdf, 0x53, 0x39} }
+00061 #define NS_SOAPPARAMETER_CONTRACTID \
+00062 "@mozilla.org/xmlextras/soap/parameter;1"
+00063 %}
+

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/nsISOAPPropertyBagMutator_8idl-source.html b/extensions/xmlextras/docs/soap/html/nsISOAPPropertyBagMutator_8idl-source.html new file mode 100644 index 000000000000..40d702898f83 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/nsISOAPPropertyBagMutator_8idl-source.html @@ -0,0 +1,72 @@ + + +nsISOAPPropertyBagMutator.idl Source File + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPPropertyBagMutator.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+00002 /* ***** BEGIN LICENSE BLOCK *****
+00003  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+00004  *
+00005  * The contents of this file are subject to the Netscape Public License
+00006  * Version 1.1 (the "License"); you may not use this file except in
+00007  * compliance with the License. You may obtain a copy of the License at
+00008  * http://www.mozilla.org/NPL/
+00009  *
+00010  * Software distributed under the License is distributed on an "AS IS" basis,
+00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+00012  * for the specific language governing rights and limitations under the
+00013  * License.
+00014  *
+00015  * The Original Code is mozilla.org code.
+00016  *
+00017  * The Initial Developer of the Original Code is 
+00018  * Netscape Communications Corporation.
+00019  * Portions created by the Initial Developer are Copyright (C) 2001
+00020  * the Initial Developer. All Rights Reserved.
+00021  *
+00022  * Contributor(s):
+00023  *
+00024  *
+00025  * Alternatively, the contents of this file may be used under the terms of
+00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
+00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+00028  * in which case the provisions of the GPL or the LGPL are applicable instead
+00029  * of those above. If you wish to allow use of your version of this file only
+00030  * under the terms of either the GPL or the LGPL, and not to allow others to
+00031  * use your version of this file under the terms of the NPL, indicate your
+00032  * decision by deleting the provisions above and replace them with the notice
+00033  * and other provisions required by the GPL or the LGPL. If you do not delete
+00034  * the provisions above, a recipient may use your version of this file under
+00035  * the terms of any one of the NPL, the GPL or the LGPL.
+00036  *
+00037  * ***** END LICENSE BLOCK ***** */
+00038 
+00039 #include "nsISupports.idl"
+00040 
+00041 interface nsIPropertyBag;
+00042 interface nsIVariant;
+00043 
+00050 [scriptable, uuid(f34cb3c8-1dd1-11b2-8a18-a93a99d92c08)]
+00051 interface nsISOAPPropertyBagMutator : nsISupports {
+00057   readonly attribute nsIPropertyBag propertyBag;
+00066   void addProperty(in AString aName, in nsIVariant aValue);
+00067 };
+00068 
+00069 %{C++
+00070 #define NS_SOAPPROPERTYBAGMUTATOR_CID               \
+00071 { /* c63d2762-1dd1-11b2-b028-8f244edaa8a1 */        \
+00072   0xc63d2762, 0x1dd1, 0x11b2,                       \
+00073  {0xb0, 0x28, 0x8f, 0x24, 0x4e, 0xda, 0xa8, 0xa1} }
+00074 #define NS_SOAPPROPERTYBAGMUTATOR_CONTRACTID \
+00075 "@mozilla.org/xmlextras/soap/propertybagmutator;1"
+00076 %}
+

Generated on Fri Mar 15 01:44:18 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/nsISOAPResponseListener_8idl-source.html b/extensions/xmlextras/docs/soap/html/nsISOAPResponseListener_8idl-source.html new file mode 100644 index 000000000000..da77cf499854 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/nsISOAPResponseListener_8idl-source.html @@ -0,0 +1,65 @@ + + +nsISOAPResponseListener.idl Source File + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPResponseListener.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+00002 /* ***** BEGIN LICENSE BLOCK *****
+00003  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+00004  *
+00005  * The contents of this file are subject to the Netscape Public License
+00006  * Version 1.1 (the "License"); you may not use this file except in
+00007  * compliance with the License. You may obtain a copy of the License at
+00008  * http://www.mozilla.org/NPL/
+00009  *
+00010  * Software distributed under the License is distributed on an "AS IS" basis,
+00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+00012  * for the specific language governing rights and limitations under the
+00013  * License.
+00014  *
+00015  * The Original Code is mozilla.org code.
+00016  *
+00017  * The Initial Developer of the Original Code is 
+00018  * Netscape Communications Corporation.
+00019  * Portions created by the Initial Developer are Copyright (C) 2001
+00020  * the Initial Developer. All Rights Reserved.
+00021  *
+00022  * Contributor(s):
+00023  *
+00024  *
+00025  * Alternatively, the contents of this file may be used under the terms of
+00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
+00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+00028  * in which case the provisions of the GPL or the LGPL are applicable instead
+00029  * of those above. If you wish to allow use of your version of this file only
+00030  * under the terms of either the GPL or the LGPL, and not to allow others to
+00031  * use your version of this file under the terms of the NPL, indicate your
+00032  * decision by deleting the provisions above and replace them with the notice
+00033  * and other provisions required by the GPL or the LGPL. If you do not delete
+00034  * the provisions above, a recipient may use your version of this file under
+00035  * the terms of any one of the NPL, the GPL or the LGPL.
+00036  *
+00037  * ***** END LICENSE BLOCK ***** */
+00038 
+00039 #include "nsISupports.idl"
+00040 
+00041 interface nsISOAPCall;
+00042 interface nsISOAPResponse;
+00043 
+00050 [scriptable, function,
+00051  uuid(99ec6692-535f-11d4-9a58-000064657374)]
+00052 interface nsISOAPResponseListener : nsISupports {
+00076   boolean handleResponse(in nsISOAPResponse aResponse,
+00077                          in nsISOAPCall aCall, in unsigned long status,
+00078                          in boolean aLast);
+00079 };
+

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/nsISOAPResponse_8idl-source.html b/extensions/xmlextras/docs/soap/html/nsISOAPResponse_8idl-source.html new file mode 100644 index 000000000000..577626b0747a --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/nsISOAPResponse_8idl-source.html @@ -0,0 +1,72 @@ + + +nsISOAPResponse.idl Source File + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPResponse.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+00002 /* ***** BEGIN LICENSE BLOCK *****
+00003  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+00004  *
+00005  * The contents of this file are subject to the Netscape Public License
+00006  * Version 1.1 (the "License"); you may not use this file except in
+00007  * compliance with the License. You may obtain a copy of the License at
+00008  * http://www.mozilla.org/NPL/
+00009  *
+00010  * Software distributed under the License is distributed on an "AS IS" basis,
+00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+00012  * for the specific language governing rights and limitations under the
+00013  * License.
+00014  *
+00015  * The Original Code is mozilla.org code.
+00016  *
+00017  * The Initial Developer of the Original Code is 
+00018  * Netscape Communications Corporation.
+00019  * Portions created by the Initial Developer are Copyright (C) 2001
+00020  * the Initial Developer. All Rights Reserved.
+00021  *
+00022  * Contributor(s):
+00023  *
+00024  *
+00025  * Alternatively, the contents of this file may be used under the terms of
+00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
+00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+00028  * in which case the provisions of the GPL or the LGPL are applicable instead
+00029  * of those above. If you wish to allow use of your version of this file only
+00030  * under the terms of either the GPL or the LGPL, and not to allow others to
+00031  * use your version of this file under the terms of the NPL, indicate your
+00032  * decision by deleting the provisions above and replace them with the notice
+00033  * and other provisions required by the GPL or the LGPL. If you do not delete
+00034  * the provisions above, a recipient may use your version of this file under
+00035  * the terms of any one of the NPL, the GPL or the LGPL.
+00036  *
+00037  * ***** END LICENSE BLOCK ***** */
+00038 
+00039 #include "nsISupports.idl"
+00040 #include "nsISOAPCall.idl"
+00041 
+00042 interface nsISOAPParameter;
+00043 interface nsISOAPFault;
+00044 
+00052 [scriptable, uuid(99ec6691-535f-11d4-9a58-000064657374)]
+00053 interface nsISOAPResponse : nsISOAPMessage {
+00059   readonly attribute nsISOAPFault fault;
+00060 };
+00061 
+00062 %{C++
+00063 #define NS_SOAPRESPONSE_CID                         \
+00064 { /* 87d21ec3-539d-11d4-9a59-00104bdf5339 */        \
+00065   0x87d21ec3, 0x539d, 0x11d4,                       \
+00066  {0x9a, 0x59, 0x00, 0x10, 0x4b, 0xdf, 0x53, 0x39} }
+00067 #define NS_SOAPRESPONSE_CONTRACTID \
+00068 "@mozilla.org/xmlextras/soap/response;1"
+00069 %}
+

Generated on Mon Mar 18 14:02:47 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/nsISOAPServiceRegistry_8idl-source.html b/extensions/xmlextras/docs/soap/html/nsISOAPServiceRegistry_8idl-source.html new file mode 100644 index 000000000000..18e6152855f8 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/nsISOAPServiceRegistry_8idl-source.html @@ -0,0 +1,84 @@ + + +nsISOAPServiceRegistry.idl Source File + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPServiceRegistry.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+00002 /* ***** BEGIN LICENSE BLOCK *****
+00003  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+00004  *
+00005  * The contents of this file are subject to the Netscape Public License
+00006  * Version 1.1 (the "License"); you may not use this file except in
+00007  * compliance with the License. You may obtain a copy of the License at
+00008  * http://www.mozilla.org/NPL/
+00009  *
+00010  * Software distributed under the License is distributed on an "AS IS" basis,
+00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+00012  * for the specific language governing rights and limitations under the
+00013  * License.
+00014  *
+00015  * The Original Code is mozilla.org code.
+00016  *
+00017  * The Initial Developer of the Original Code is 
+00018  * Netscape Communications Corporation.
+00019  * Portions created by the Initial Developer are Copyright (C) 2001
+00020  * the Initial Developer. All Rights Reserved.
+00021  *
+00022  * Contributor(s):
+00023  *
+00024  *
+00025  * Alternatively, the contents of this file may be used under the terms of
+00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
+00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+00028  * in which case the provisions of the GPL or the LGPL are applicable instead
+00029  * of those above. If you wish to allow use of your version of this file only
+00030  * under the terms of either the GPL or the LGPL, and not to allow others to
+00031  * use your version of this file under the terms of the NPL, indicate your
+00032  * decision by deleting the provisions above and replace them with the notice
+00033  * and other provisions required by the GPL or the LGPL. If you do not delete
+00034  * the provisions above, a recipient may use your version of this file under
+00035  * the terms of any one of the NPL, the GPL or the LGPL.
+00036  *
+00037  * ***** END LICENSE BLOCK ***** */
+00038 
+00039 #include "nsISupports.idl"
+00040 
+00041 interface nsIDOMElement;
+00042 interface nsISOAPService;
+00043 interface nsISOAPEncodingRegistry;
+00044 
+00056 [scriptable, uuid(9790d6bc-1dd1-11b2-afe0-bcb310c078bf)]
+00057 interface nsISOAPServiceRegistry {
+00065   boolean addConfiguration(in nsIDOMElement aConfiguration);
+00066 
+00077   void addSource(in AString aTransport, in boolean aCapture);
+00078 
+00085   void addService(in nsISOAPService aService);
+00086 
+00093   attribute nsISOAPEncodingRegistry encodings;
+00094 };
+00095 
+00096 %{C++
+00097 #define NS_SOAPSERVICEREGISTRY_CID                            \
+00098 { /* 3869184e-1dd2-11b2-aa36-d8333498043a */        \
+00099   0x3869184e, 0x1dd2, 0x11b2,                       \
+00100  {0xaa, 0x36, 0xd8, 0x33, 0x34, 0x98, 0x04, 0x3a} }
+00101 #define NS_SOAPSERVICEREGISTRY_CONTRACTID \
+00102 "@mozilla.org/xmlextras/soap/serviceregistry;1"
+00103 #define NS_SOAPDEFAULTSERVICEREGISTRY_CID                            \
+00104 { /* 9120a01e-1dd2-11b2-a61f-906766927a4f */        \
+00105   0x9120a01e, 0x1dd2, 0x11b2,                       \
+00106  {0xa6, 0x1f, 0x90, 0x67, 0x66, 0x92, 0x7a, 0x4f} }
+00107 #define NS_SOAPDEFAULTSERVICEREGISTRY_CONTRACTID \
+00108 "@mozilla.org/xmlextras/soap/defaultserviceregistry;1"
+00109 %}
+

Generated on Fri Mar 15 01:44:18 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/nsISOAPService_8idl-source.html b/extensions/xmlextras/docs/soap/html/nsISOAPService_8idl-source.html new file mode 100644 index 000000000000..dfcddaa934b9 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/nsISOAPService_8idl-source.html @@ -0,0 +1,74 @@ + + +nsISOAPService.idl Source File + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPService.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+00002 /* ***** BEGIN LICENSE BLOCK *****
+00003  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+00004  *
+00005  * The contents of this file are subject to the Netscape Public License
+00006  * Version 1.1 (the "License"); you may not use this file except in
+00007  * compliance with the License. You may obtain a copy of the License at
+00008  * http://www.mozilla.org/NPL/
+00009  *
+00010  * Software distributed under the License is distributed on an "AS IS" basis,
+00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+00012  * for the specific language governing rights and limitations under the
+00013  * License.
+00014  *
+00015  * The Original Code is mozilla.org code.
+00016  *
+00017  * The Initial Developer of the Original Code is 
+00018  * Netscape Communications Corporation.
+00019  * Portions created by the Initial Developer are Copyright (C) 2001
+00020  * the Initial Developer. All Rights Reserved.
+00021  *
+00022  * Contributor(s):
+00023  *
+00024  *
+00025  * Alternatively, the contents of this file may be used under the terms of
+00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
+00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+00028  * in which case the provisions of the GPL or the LGPL are applicable instead
+00029  * of those above. If you wish to allow use of your version of this file only
+00030  * under the terms of either the GPL or the LGPL, and not to allow others to
+00031  * use your version of this file under the terms of the NPL, indicate your
+00032  * decision by deleting the provisions above and replace them with the notice
+00033  * and other provisions required by the GPL or the LGPL. If you do not delete
+00034  * the provisions above, a recipient may use your version of this file under
+00035  * the terms of any one of the NPL, the GPL or the LGPL.
+00036  *
+00037  * ***** END LICENSE BLOCK ***** */
+00038 
+00039 #include "nsISupports.idl"
+00040 
+00041 interface nsISOAPMessage;
+00042 interface nsISOAPResponseListener;
+00043 
+00051 [scriptable, uuid(9927fa40-1dd1-11b2-a8d1-857ad21b872c)]
+00052 interface nsISOAPService : nsISupports {
+00056   attribute nsISupports configuration;
+00057 
+00070   boolean process(in nsISOAPMessage aMessage,
+00071                   in nsISOAPResponseListener aListener);
+00072 };
+00073 
+00074 %{C++
+00075 #define NS_SOAPJSSERVICE_CID                            \
+00076 { /* 26a41df2-1dd2-11b2-9f29-909e637afa0e */        \
+00077   0x26a41df2, 0x1dd2, 0x11b2,                       \
+00078  {0x9f, 0x29, 0x90, 0x9e, 0x63, 0x7a, 0xfa, 0x0e} }
+00079 #define NS_SOAPJSSERVICE_CONTRACTID \
+00080 "@mozilla.org/xmlextras/soap/jsservice;1"
+00081 %}
+

Generated on Fri Mar 15 01:44:18 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/nsISOAPTransportListener_8idl-source.html b/extensions/xmlextras/docs/soap/html/nsISOAPTransportListener_8idl-source.html new file mode 100644 index 000000000000..b6d4d081757b --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/nsISOAPTransportListener_8idl-source.html @@ -0,0 +1,64 @@ + + +nsISOAPTransportListener.idl Source File + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPTransportListener.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+00002 /* ***** BEGIN LICENSE BLOCK *****
+00003  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+00004  *
+00005  * The contents of this file are subject to the Netscape Public License
+00006  * Version 1.1 (the "License"); you may not use this file except in
+00007  * compliance with the License. You may obtain a copy of the License at
+00008  * http://www.mozilla.org/NPL/
+00009  *
+00010  * Software distributed under the License is distributed on an "AS IS" basis,
+00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+00012  * for the specific language governing rights and limitations under the
+00013  * License.
+00014  *
+00015  * The Original Code is mozilla.org code.
+00016  *
+00017  * The Initial Developer of the Original Code is 
+00018  * Netscape Communications Corporation.
+00019  * Portions created by the Initial Developer are Copyright (C) 2001
+00020  * the Initial Developer. All Rights Reserved.
+00021  *
+00022  * Contributor(s):
+00023  *
+00024  *
+00025  * Alternatively, the contents of this file may be used under the terms of
+00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
+00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+00028  * in which case the provisions of the GPL or the LGPL are applicable instead
+00029  * of those above. If you wish to allow use of your version of this file only
+00030  * under the terms of either the GPL or the LGPL, and not to allow others to
+00031  * use your version of this file under the terms of the NPL, indicate your
+00032  * decision by deleting the provisions above and replace them with the notice
+00033  * and other provisions required by the GPL or the LGPL. If you do not delete
+00034  * the provisions above, a recipient may use your version of this file under
+00035  * the terms of any one of the NPL, the GPL or the LGPL.
+00036  *
+00037  * ***** END LICENSE BLOCK ***** */
+00038 
+00039 #include "nsISupports.idl"
+00040 
+00041 interface nsIDOMDocument;
+00042 interface nsISOAPMessage;
+00043 
+00049 [scriptable, function,
+00050  uuid(99ec6696-535f-11d4-9a58-000064657374)]
+00051 interface nsISOAPTransportListener : nsISupports {
+00052 
+00066   boolean handleMessage(in nsISOAPMessage aMessage, in boolean aCapture);
+00067 };
+

Generated on Fri Mar 15 01:44:18 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/docs/soap/html/nsISOAPTransport_8idl-source.html b/extensions/xmlextras/docs/soap/html/nsISOAPTransport_8idl-source.html new file mode 100644 index 000000000000..a84c5479a048 --- /dev/null +++ b/extensions/xmlextras/docs/soap/html/nsISOAPTransport_8idl-source.html @@ -0,0 +1,82 @@ + + +nsISOAPTransport.idl Source File + + + +
+Main Page   Class Hierarchy   Compound List   File List   Compound Members  
+

nsISOAPTransport.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+00002 /* ***** BEGIN LICENSE BLOCK *****
+00003  * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+00004  *
+00005  * The contents of this file are subject to the Netscape Public License
+00006  * Version 1.1 (the "License"); you may not use this file except in
+00007  * compliance with the License. You may obtain a copy of the License at
+00008  * http://www.mozilla.org/NPL/
+00009  *
+00010  * Software distributed under the License is distributed on an "AS IS" basis,
+00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+00012  * for the specific language governing rights and limitations under the
+00013  * License.
+00014  *
+00015  * The Original Code is mozilla.org code.
+00016  *
+00017  * The Initial Developer of the Original Code is 
+00018  * Netscape Communications Corporation.
+00019  * Portions created by the Initial Developer are Copyright (C) 2001
+00020  * the Initial Developer. All Rights Reserved.
+00021  *
+00022  * Contributor(s):
+00023  *
+00024  *
+00025  * Alternatively, the contents of this file may be used under the terms of
+00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
+00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+00028  * in which case the provisions of the GPL or the LGPL are applicable instead
+00029  * of those above. If you wish to allow use of your version of this file only
+00030  * under the terms of either the GPL or the LGPL, and not to allow others to
+00031  * use your version of this file under the terms of the NPL, indicate your
+00032  * decision by deleting the provisions above and replace them with the notice
+00033  * and other provisions required by the GPL or the LGPL. If you do not delete
+00034  * the provisions above, a recipient may use your version of this file under
+00035  * the terms of any one of the NPL, the GPL or the LGPL.
+00036  *
+00037  * ***** END LICENSE BLOCK ***** */
+00038 
+00039 #include "nsISupports.idl"
+00040 
+00041 interface nsISOAPTransportListener;
+00042 interface nsISOAPCall;
+00043 interface nsISOAPResponse;
+00044 interface nsISOAPResponseListener;
+00045 interface nsISOAPCallCompletion;
+00046 
+00047 [scriptable, uuid(99ec6695-535f-11d4-9a58-000064657374)]
+00048 interface nsISOAPTransport : nsISupports {
+00049 
+00061   void syncCall(in nsISOAPCall aCall, in nsISOAPResponse aResponse);
+00062 
+00078   nsISOAPCallCompletion asyncCall(in nsISOAPCall aCall,
+00079                                   in nsISOAPResponseListener aListener,
+00080                                   in nsISOAPResponse aResponse);
+00081 
+00097   void addListener(in nsISOAPTransportListener aListener,
+00098                    in boolean aCapture);
+00099 
+00112   void removeListener(in nsISOAPTransportListener aListener,
+00113                       in boolean aCapture);
+00114 };
+00115 
+00116 %{C++
+00117 #define NS_SOAPTRANSPORT_CONTRACTID  \
+00118 "@mozilla.org/xmlextras/soap/transport;1"
+00119 #define NS_SOAPTRANSPORT_CONTRACTID_PREFIX   NS_SOAPTRANSPORT_CONTRACTID "?protocol="
+00120 %}
+

Generated on Fri Mar 15 01:44:18 2002 for Mozilla SOAP by + +doxygen1.2.14 written by Dimitri van Heesch, + © 1997-2002
+ + diff --git a/extensions/xmlextras/tests/soapcall.html b/extensions/xmlextras/tests/soapcall.html index 89bffe864868..f3d349ea7e8c 100644 --- a/extensions/xmlextras/tests/soapcall.html +++ b/extensions/xmlextras/tests/soapcall.html @@ -1,107 +1,40 @@ - -

SOAP call test

+ +

SOAP Call Encoding Test

+ This encodes a call using the low-level Mozilla SOAP API and shows the resulting message. + View the source of the page to see what was encoded. This is useful to quickly test the + encoding of various arguments. This call is never invoked. Look at other soap samples for + calls that actually work.

- - - - +

The SOAP call was not encoded. Look at the Javascript console to determine why. diff --git a/extensions/xmlextras/tests/soapelements.html b/extensions/xmlextras/tests/soapelements.html index c189f315da64..db70d05d0f35 100644 --- a/extensions/xmlextras/tests/soapelements.html +++ b/extensions/xmlextras/tests/soapelements.html @@ -3,80 +3,119 @@

SOAP Test: Elements

-The entered element will be requested and the info displayed. This service found on -X Methods Website. View the source of this -page for details on how it was called. If you compile mozilla DEBUG, the message sent and received will be logged to the console. -

Experimenters may wish to add other tests which exercize services, with specific -user interfaces such as the one in this test. +This page is linked to elements of the periodic table. +

This works by calling a SOAP service. View the source +of this page for details on how it was called. If you compile mozilla DEBUG, +the message sent and received will be logged to the console. This loads js files +soapelementsproxy.js which relies on +soapproxy.js, which implement a SOAP proxy on top +of the low level SOAP API in Mozilla. In a future version of Mozilla, it +should be possible to construct SOAP proxies directly from the wsdl file. +

Since this service is not friendly to untrusted applets, it may not be +called without requesting additional privileges from the user. It can be +made friendly by accepting the verifySource header or by loading the page +and proxy from the domain of the service. +

Other services are available on the +X Methods Website. +Experimenters may wish to create other tests which exercize services, with +specific user interfaces. + +

- - +Symbol: +Atomic Number: + + + diff --git a/extensions/xmlextras/tests/soapelementsproxy.js b/extensions/xmlextras/tests/soapelementsproxy.js new file mode 100644 index 000000000000..8548d245aabc --- /dev/null +++ b/extensions/xmlextras/tests/soapelementsproxy.js @@ -0,0 +1,168 @@ +function Elements() +{ + this.PROXY = new SOAPProxy(this, 0, + "http://213.23.125.181:8080/RPC", + "urn:SpheonJSOAPChemistry", + false); // false = not friendly / needs privileges +} + +// Object to proxy methods + +Elements.prototype = +{ + PROXY: null, + RECEIVER: function(proxy, headers, parameters) // This interprets all responses + { + proxy.PROXY.result = null; + if (parameters != null) { + var parameter = parameters[0]; + // The following line can be used to force a result type + // parameter.schemaType = proxy.PROXY.getType("boolean"); + proxy.PROXY.result = parameter.value; + } + if (proxy.PROXY.oncompletion != null) { + proxy.PROXY.oncompletion(proxy.PROXY.result); + } + }, + // Proxy-specific items + getElementBySymbol: function(symbol, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getElementBySymbol", + null, new Array(new SOAPParameter(symbol,"symbol",null,type)), + this.RECEIVER, oncompletion); + }, + getNumberBySymbol: function(symbol, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getNumberBySymbol", + null, new Array(new SOAPParameter(symbol,"symbol",null,type)), + this.RECEIVER, oncompletion); + }, + getNameBySymbol: function(symbol, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getNameBySymbol", + null, new Array(new SOAPParameter(symbol,"symbol",null,type)), + this.RECEIVER, oncompletion); + }, + getMassBySymbol: function(symbol, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getMassBySymbol", + null, new Array(new SOAPParameter(symbol,"symbol",null,type)), + this.RECEIVER, oncompletion); + }, + getMeltingPointBySymbol: function(symbol, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getMeltingPointBySymbol", + null, new Array(new SOAPParameter(symbol,"symbol",null,type)), + this.RECEIVER, oncompletion); + }, + getBoilingPointBySymbol: function(symbol, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getBoilingBointBySymbol", + null, new Array(new SOAPParameter(symbol,"symbol",null,type)), + this.RECEIVER, oncompletion); + }, + getFoundBySymbol: function(symbol, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "foundBySymbol", + null, new Array(new SOAPParameter(symbol,"symbol",null,type)), + this.RECEIVER, oncompletion); + }, + getElementByNumber: function(number, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getElementByNumber", + null, new Array(new SOAPParameter(number,"number",null,type)), + this.RECEIVER, oncompletion); + }, + getSymbolByNumber: function(number, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getSymbolByNumber", + null, new Array(new SOAPParameter(number,"number",null,type)), + this.RECEIVER, oncompletion); + }, + getNameByNumber: function(number, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getNameByNumber", + null, new Array(new SOAPParameter(number,"number",null,type)), + this.RECEIVER, oncompletion); + }, + getMassByNumber: function(number, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getMassByNumber", + null, new Array(new SOAPParameter(number,"number",null,type)), + this.RECEIVER, oncompletion); + }, + getMeltingPointByNumber: function(number, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getMeltingPointByNumber", + null, new Array(new SOAPParameter(number,"number",null,type)), + this.RECEIVER, oncompletion); + }, + getBoilingPointByNumber: function(number, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "getBoilingPointByNumber", + null, new Array(new SOAPParameter(number,"number",null,type)), + this.RECEIVER, oncompletion); + }, + getFoundByNumber: function(number, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "foundByNumber", + null, new Array(new SOAPParameter(number,"number",null,type)), + this.RECEIVER, oncompletion); + } +} diff --git a/extensions/xmlextras/tests/soapheadlinenews.html b/extensions/xmlextras/tests/soapheadlinenews.html index 917fb604b96d..f4600a36959f 100644 --- a/extensions/xmlextras/tests/soapheadlinenews.html +++ b/extensions/xmlextras/tests/soapheadlinenews.html @@ -3,91 +3,85 @@

SOAP Test: Headline News

-The entered domain name will be searched, and the result displayed. This service found on -X Methods Website. View the source of this -page for details on how it was called. If you compile mozilla DEBUG, the message sent and received will be logged to the console. -

Experimenters may wish to add other tests which exercize services, with specific -user interfaces such as the one in this test. +This requests headline news from the selected domain and opens a window and +places the resulting HTML string into the window. Not all domains work all +the time. This service uses the low-level SOAP API of Mozilla directly, not +hiding the use of the API in separate proxy objects as other examples may do. +

View the source of this page for details on how it was called. If you +compile mozilla DEBUG, the message sent and received will be logged to the +console. +

This works by calling a SOAP service listed on +X Methods Website using the low-level +SOAP API in Mozilla. +

Since this service is not friendly to untrusted applets, it may not be +called without requesting additional privileges from the user. It can be +made friendly by accepting the verifySource header or by loading the page +and proxy from the domain of the service. +

Experimenters may wish to add other tests which exercize services, with +specific user interfaces such as the one in this test.

- + diff --git a/extensions/xmlextras/tests/soapisprimenumber.html b/extensions/xmlextras/tests/soapisprimenumber.html index 6d1e09f620d8..5da7b978e515 100644 --- a/extensions/xmlextras/tests/soapisprimenumber.html +++ b/extensions/xmlextras/tests/soapisprimenumber.html @@ -3,82 +3,57 @@

SOAP Test: Is It a Prime Number

-The number typed in the text field will change color depending upon whether the soap call -reports prime or nonprime. -

This works by calling a SOAP service listed on -X Methods Website. View the source of this -page for details on how it was called. If you compile mozilla DEBUG, the message sent and received will be logged to the console. -

Experimenters may wish to add other tests which exercize services, with specific -user interfaces such as the one in this test. +The number typed in the text field will change color depending upon whether +the soap call reports prime or +nonprime. +

This works by calling a SOAP service.. View the source of +this page for details on how it was called. If you compile mozilla DEBUG, the +message sent and received will be logged to the console This loads js files +soapisprimeproxy.js which relies on +soapproxy.js, which implement a SOAP proxy on top +of the low level SOAP API in Mozilla. In a future version of Mozilla, it +should be possible to construct SOAP proxies directly from the wsdl file. +

Since this service is friendly to untrusted applets, it may be +called without requesting additional privileges from the user. +

Other services are available on the +X Methods Website. +Experimenters may wish to create other tests which exercize services, with +specific user interfaces. + +

- - + +

diff --git a/extensions/xmlextras/tests/soapisprimeproxy.js b/extensions/xmlextras/tests/soapisprimeproxy.js new file mode 100644 index 000000000000..daf85ff7d40b --- /dev/null +++ b/extensions/xmlextras/tests/soapisprimeproxy.js @@ -0,0 +1,37 @@ +function IsPrime() +{ + this.PROXY = new SOAPProxy(this, 0, + "http://ray.dsl.xmission.com:8080/soap/servlet/rpcrouter", + "http://soaptests.mozilla.org/isprime", + true); // true = friendly to untrusted applets +} + +// Object to proxy methods + +IsPrime.prototype = +{ + // Proxy-specific items + isPrime: function(number, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + // type = this.PROXY.getType("long"); + return this.PROXY.invoke( + "isPrime", + null, + new Array(new SOAPParameter(number,"number",null,type)), + function(proxy, headers, parameters) + { + proxy.PROXY.result = null; + if (parameters != null) { + var parameter = parameters[0]; + // The following line can be used to force a result type + parameter.schemaType = proxy.PROXY.getType("boolean"); + proxy.PROXY.result = parameter.value; + } + if (proxy.PROXY.oncompletion != null) { + proxy.PROXY.oncompletion(proxy.PROXY.result); + } + }, oncompletion); + } +} diff --git a/extensions/xmlextras/tests/soapproxy.js b/extensions/xmlextras/tests/soapproxy.js new file mode 100644 index 000000000000..13d6a7ec1950 --- /dev/null +++ b/extensions/xmlextras/tests/soapproxy.js @@ -0,0 +1,123 @@ +function SOAPProxy(proxy, soapVersion, transportURI, target, verifySourceHeader) +{ + this.proxy = proxy; + this.call = new SOAPCall(); + this.call.transportURI = transportURI; + this.call.verifySourceHeader = verifySourceHeader; + this.target = target; + this.soapVersion = soapVersion; + var encoding = new SOAPEncoding(); + if (soapVersion == 0) { + encoding = encoding.getAssociatedEncoding("http://schemas.xmlsoap.org/soap/encoding/",false); + } + else { + encoding = encoding.getAssociatedEncoding("http://www.w3.org/2001/09/soap-encoding",false); + } + this.call.encoding = encoding; // Get the encoding first in case we need it +} + +SOAPProxy.prototype = +{ + proxy: null, // Specific proxy + active: null, // Asynchronous call which is currently active, if any + call: null, // Call object which receives encoding + target: null, // Target object for encoding + soapVersion: null, // SOAP version for encoding + method: null, // Method, if any, for decoding of results + complete: null, // Handler to receive results, if any + result: null, // Result which may be returned from synchronous call + oncompletion: null,// Higher-level result handler + invoke: function(method, headers, parameters, complete, oncompletion) + { + if (this.active != null) + this.active.abort(); + + this.method = method; + this.complete = complete; + this.result = null; + this.oncompletion = oncompletion; + this.call.encode( + this.soapVersion, + method, + this.target, + headers != null ? headers.length : 0, headers, + parameters != null ? parameters.length : 0, parameters); + + if (!this.call.verifySourceHeader) + netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); + + if (oncompletion != null) + { + this.active = this.call.asyncInvoke(this); + return; + } + else + { + this.active = null; + var response = null; + var status = 0; + try { + response = this.call.invoke(); + } + catch (e) { + status = e; + } + this.handleResponse(response, this.call, status, true); + return this.result; + } + }, + handleResponse: function(response, call, status, complete) + { + var headers = null; + var parameters = null; + if (status != 0) { + var report = "SOAP {" + this.target + "}" + this.method + " call failed to call server " + + this.call.transportURI +": " + status; + this.log(status, report); + } + else { + // Was there a SOAP fault in the response? + var fault = response.fault; + if (fault != null) { + var report = "SOAP {" + this.target + "}" + this.method + " call resulted in fault: {" + + fault.faultNamespaceURI + "}" + fault.faultCode + ": " + fault.faultString; + status = 0x80004005; + this.log(status, report); + } + else if (response != null) { + headers = response.getHeaderBlocks({}); + parameters = response.getParameters(this.method == null,{}); + } + } + this.complete(this.proxy,headers,parameters); + return true; + }, + getType: function(name, uri) + { + if (uri == null) { + uri = "http://www.w3.org/2001/XMLSchema"; + } + try { + var result = this.call.encoding.schemaCollection.getType(name, uri); + if (result != null) return result; + } + catch (e) {} + var report = "Type {" + uri + "}" + name + " not found."; + throw this.log(0x80004005, report); + }, + loadTypes: function(uri) + { + try { + this.call.collection.load(uri); + return; + } + catch (e) {} + var report = "Unable to load schema file " + uri; + throw this.log(0x80004005, report); + }, + log: function(status, message) + { + alert(message); // Comment this out to avoid raising descriptive dialog boxes for failed SOAP calls + return status; + } +} diff --git a/extensions/xmlextras/tests/soapstatistics.html b/extensions/xmlextras/tests/soapstatistics.html index c98af0f95740..5f99e81aa6f0 100644 --- a/extensions/xmlextras/tests/soapstatistics.html +++ b/extensions/xmlextras/tests/soapstatistics.html @@ -1,81 +1,63 @@ - +

SOAP Test: Statistics

-This passes an array to request the average and standard deviation. +This passes an array to request the average and standard deviation. This +uses the low-level SOAP API of Mozilla directly, not hiding the use of the +API in separate proxy objects as other examples may do. +

View the source of this page for details on how it was called. If you +compile mozilla DEBUG, the message sent and received will be logged to the +console.

This works by calling a SOAP service listed on -X Methods Website. View the source of this -page for details on how it was called. If you compile mozilla DEBUG, the message sent and received will be logged to the console. -

Experimenters may wish to add other tests which exercize services, with specific -user interfaces such as the one in this test. +X Methods Website using the low-level +SOAP API in Mozilla. +

Since this service is not friendly to untrusted applets, it may not be +called without requesting additional privileges from the user. It can be +made friendly by accepting the verifySource header or by loading the page +and proxy from the domain of the service. +

Experimenters may wish to add other tests which exercize services, with +specific user interfaces such as the one in this test. -

-

- +

SOAP call did not complete. Look at the Javascript console to determine why. diff --git a/extensions/xmlextras/tests/soapunscramble.html b/extensions/xmlextras/tests/soapunscramble.html index feef0b84b6c2..c36eb8067eca 100644 --- a/extensions/xmlextras/tests/soapunscramble.html +++ b/extensions/xmlextras/tests/soapunscramble.html @@ -3,109 +3,62 @@

SOAP Test: Unscramble

-The entered word will be unscrambled against a dictionary. Other services found on -X Methods Website. View the source of this -page for details on how it was called. If you compile mozilla DEBUG, the message sent and received will be logged to the console. -

Experimenters may wish to add other tests which exercize services, with specific -user interfaces such as the one in this test. +The entered word will be unscrambled against a dictionary. +

This works by calling a SOAP service. View the source +of this page for details on how it was called. If you compile mozilla DEBUG, +the message sent and received will be logged to the console. This loads js files +soapunscrambleproxy.js which relies on +soapproxy.js, which implement a SOAP proxy on top +of the low level SOAP API in Mozilla. In a future version of Mozilla, it +should be possible to construct SOAP proxies directly from the wsdl file. +

Since this service is friendly to untrusted applets, it may be +called without requesting additional privileges from the user. +

Other services are available on the +X Methods Website. +Experimenters may wish to create other tests which exercize services, with +specific user interfaces. + +

@@ -113,8 +66,6 @@ function loadLanguages() - - + diff --git a/extensions/xmlextras/tests/soapunscrambleproxy.js b/extensions/xmlextras/tests/soapunscrambleproxy.js new file mode 100644 index 000000000000..9a1d6af69169 --- /dev/null +++ b/extensions/xmlextras/tests/soapunscrambleproxy.js @@ -0,0 +1,58 @@ +function Unscramble() +{ + this.PROXY = new SOAPProxy(this, 0, + "http://ray.dsl.xmission.com:8080/soap/servlet/rpcrouter", + "http://soaptests.mozilla.org/unscramble", + true); // true = friendly to untrusted applets +} + +// Object to proxy methods + +Unscramble.prototype = +{ + // Standard items on all SOAP proxies using SOAPProxy. + PROXY: null, + // Proxy-specific items + unscramble: function(language, word, oncompletion) + { + var type = null; + // The following line can be used to force a parameter type + type = this.PROXY.getType("string"); + return this.PROXY.invoke( + "unscramble", + null, new Array( + new SOAPParameter(language,"language",null,type), + new SOAPParameter(word,"word",null,type)), + function(proxy, headers, parameters) // This interprets the response + { + proxy.PROXY.result = null; + if (parameters != null) { + var parameter = parameters[0]; + // The following line can be used to force a result type + // parameter.schemaType = proxy.PROXY.getType("boolean"); + proxy.PROXY.result = parameter.value; + } + if (proxy.PROXY.oncompletion != null) { + proxy.PROXY.oncompletion(proxy.PROXY.result); + } + }, oncompletion); + }, + languages: function(oncompletion) + { + var type = null; + return this.PROXY.invoke("languages",null,null, + function(proxy, headers, parameters) // This interprets the response + { + proxy.PROXY.result = null; + if (parameters != null) { + var parameter = parameters[0]; + // The following line can be used to force a result type + // parameter.schemaType = proxy.PROXY.getType("boolean"); + proxy.PROXY.result = parameter.value; + } + if (proxy.PROXY.oncompletion != null) { + proxy.PROXY.oncompletion(proxy.PROXY.result); + } + }, oncompletion); + } +}