Learning
Documentation
Community
Open Exchange
Global Masters
Home / Class Reference / %SYS namespace / %SOAP.Configuration
Private  Storage   

%SOAP.Configuration


abstract class %SOAP.Configuration extends
%RegisteredObject

Abstract super class of class to contain configuration of a SOAP web service or web client. %SOAP.Configuration should be subclassed to specify the configuration. No methods or properties of %SOAP.Configuration should be directly accessed.

The configuration is specified as XML content in an XData member of a subclass. Each XData member may contain one configuration. However, only one configuration may be specified for each web service or web client class across all %SOAP.Configuration subclasses in a namespace. The format of the configuration as follows:

<configuration name="xs:NCNAME"? xmlns="http://www.intersystems.com/configuration">
   <service classname="xs:NCNAME">
      ( (<wsp:Policy cfg:wsdlElement="s:string"? ...> ... </wsp:Policy>) 
       |(<wsp:PolicyReference URI="#policyId cfg:wsdlElement="s:string"?>)) *
      <method name="xs:NCNAME">
         ( (<wsp:Policy cfg:wsdlElement="s:string"? ...> ... </wsp:Policy>) 
          |(<wsp:PolicyReference URI="#policyId cfg:wsdlElement="s:string"?>)) *
         <request>
            ( (<wsp:Policy cfg:wsdlElement="s:string"? ...> ... </wsp:Policy>) 
             |(<wsp:PolicyReference URI="#policyId cfg:wsdlElement="s:string"?>)) *
         </request> ?
         <response>
            ( (<wsp:Policy cfg:wsdlElement="s:string"? ...> ... </wsp:Policy>) 
             |(<wsp:PolicyReference URI="#policyId cfg:wsdlElement="s:string"?>)) *
         </response> ?
      </method> *
   </service> +
<configuration>
Cardinality is indicated by ? (0 or 1), * (0 or more) and + (1 or more).

The following describes the elements and attributes:
/configuration
    Identifies a configuration
/configuration/@name
    Optional name of the configuration.  
    If specified this name must match the name of the XData block.
/configuration/service
    Identifies the service that is being configured
/configuration/service/@classname
    The name of the web service or web client class that is being configured.
/configuration/service/wsp:Policy
    The optional WS-Policy 1.2 or WS-Policy 1.5 to be applied to the endpoint or service subject for
    this web service or client.
/configuration/service/wsp:Policy/@cfg:wsdlElement
    Specifies WSDL attachment elements: service, port, binding, portType
/configuration/service/wsp:PolicyReference
    The optional WS-Policy 1.2 or WS-Policy 1.5 to be applied to the endpoint or service subject for
    to this method in the SOAP binding for this web service or client.
    The policyId is a reference to a local policy defined in a different XData section.
/configuration/service/wsp:PolicyReference/@cfg:wsdlElement
    Specifies WSDL attachment elements: service, port, binding, portType

/configuration/service/method
    The configuration for the operation corresponding to this method in the SOAP binding 
    for this web service or client.
/configuration/service/method/@name
    The name of the method
/configuration/service/method/wsp:Policy
    The optional WS-Policy 1.2 or WS-Policy 1.5 to be applied to the operation corresponding
    to this method in the SOAP binding for this web service or client.
/configuration/service/method/wsp:Policy/@cfg:wsdlElement
    Specifies WSDL attachment elements: binding, portType
/configuration/service/method/wsp:PolicyReference
    The optional reference WS-Policy 1.2 or WS-Policy 1.5 to be applied to the operation corresponding
    to this method in the SOAP binding for this web service or client.
    The policyId is a reference to a local policy defined in a different XData section.
/configuration/service/method/wsp:PolicyReference/@cfg:wsdlElement
    Specifies WSDL attachment elements: binding, portType

/configuration/service/method/request
    The configuration for the request message corresponding to this method for 
    this web service or client.
/configuration/service/method/request/wsp:Policy
    The optional WS-Policy 1.2 or WS-Policy 1.5 to be applied to the request message corresponding
    to this method for this web service or client.
/configuration/service/method/request/wsp:Policy/@cfg:wsdlElement
    Specifies WSDL attachment elements: binding, portType, message
/configuration/service/method/request/wsp:PolicyReference
    The optional WS-Policy 1.2 or WS-Policy 1.5 to be applied to the request message corresponding
    to this method for this web service or client.
    The policyId is a reference to a local policy defined in a different XData section.
/configuration/service/method/request/wsp:PolicyReference/@cfg:wsdlElement
    Specifies WSDL attachment elements: binding, portType, message

/configuration/service/method/response
    The configuration for the response message corresponding to this method for 
    this web service or client.
/configuration/service/method/response/wsp:Policy
    The optional WS-Policy 1.2 or WS-Policy 1.5 to be applied to the response message corresponding
    to this method for this web service or client.
/configuration/service/method/response/wsp:Policy/@cfg:wsdlElement
    Specifies WSDL attachment elements: binding, portType, message
/configuration/service/method/response/wsp:PolicyReference
    The optional WS-Policy 1.2 or WS-Policy 1.5 to be applied to the response message corresponding
    to this method for this web service or client.
    The policyId is a reference to a local policy defined in a different XData section.
/configuration/service/method/response/wsp:PolicyReference/@cfg:wsdlElement
    Specifies WSDL attachment elements: binding, portType, message

Inventory


Parameters Properties Methods Queries Indices ForeignKeys Triggers
1 24


Summary


Methods
%%OIDGet %AddToSaveSet %BindExport %BuildObjectGraph
%ClassIsLatestVersion %ClassName %Close %ConstructClone
%DispatchClassMethod %DispatchGetModified %DispatchGetProperty %DispatchMethod
%DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty %Extends
%GetParameter %IncrementCount %IsA %IsModified
%New %NormalizeObject %ObjectModified %OriginalNamespace
%PackageName %RemoveFromSaveSet %SerializeObject %SetModified
%ValidateObject AnalyzeAssertion AssociateConfiguration FindWSDLPolicies
GetConfigId GetSOAPClasses IsName OnConfigurationCompile
ParseAll ParseAnalyze ParseConfiguration ParseConfigurationPolicy
ParseIO ParseMethod ParseOpen ParsePolicy
ParseService RemoveConfiguration WriteAlternative WriteConfiguration
WriteMethod WriteOneConfig WritePolicy WriteReferencedPolicies
WriteWSDLPolicy

Subclasses

Parameters


• parameter REPORTANYERROR = 1;
If REPORTANYERROR is true (1), Report error when compiling policy if any alternative is invalid. Otherwise only report an error if all aternatives are invalid. In this latter case, we are looking for any alternative to use in a policy supplied by a thrid party.

Methods


• classmethod AnalyzeAssertion(policy As %SOAP.Policy, nodeId As %Integer, ByRef alternative) as %Status
Analyze ISC configuraation assertion -- should never be called.
• method AssociateConfiguration(soapClassname As %String, configName As %String)
Associate configuration with SOAP class
• classmethod FindWSDLPolicies(configId As %String, ByRef methods, Output policyList, Output version)
Find all policies referenced using Policyreference or included as an inline Policy. by one of the specified methods in the specified configuration. List value is 1 if referenced policy, else 0.
• classmethod GetConfigId(classname As %String) as %String
Get configuration id for specified class
• classmethod GetSOAPClasses(configId As %String, Output SOAPClasses As %String)
Get names of all SOAP classes which are configured in the specified configuration class.
• classmethod IsName(name As %String) as %Boolean
Return true if this is a name rather than a defined type
• classmethod OnConfigurationCompile()
Parse all configurations defined in specified class.
• classmethod ParseAll(classname As %String, compiledclass As %Dictionary.CompiledClass) as %Status
Parse all configurations defined in specified class.
• classmethod ParseAnalyze(policy As %SOAP.Policy, policyIndex As %Integer)
Analyze a policy
• classmethod ParseConfiguration(reader As %XML.Reader, configName As %String) as %Status
Parse a SOAP configuration which is defined as an XData block.
• classmethod ParseConfigurationPolicy(reader As %XML.Reader, configName As %String) as %Status
Parse a wsp:Policy within a configuration file which is defined as an XData block.
• classmethod ParseIO(node As %XML.Node, configName As %String, kind As %String, methodName As %String, methodPolicy As %SOAP.Policy, methodPolicyIndex As %Integer)
Parse the request or response element of the configuration
• classmethod ParseMethod(node As %XML.Node, configName As %String, servicePolicy As %SOAP.Policy)
Parse the method element of the configuration
• classmethod ParseOpen(stream As %GlobalCharacterStream, configName As %String, Output reader As %XML.Reader, Output root As %String) as %Status
Parse the XML content of the XDATA block to determine if valid Policy or configuration
• classmethod ParsePolicy(node As %XML.Node, configName As %String, kind As %String, validWSDL As %List, inline As %Boolean, Output policyIndex As %Integer, basePolicy As %SOAP.Policy, Output normalizedPolicyIndex As %Integer) as %SOAP.Policy
Parse a wsp:Policy element in the configuration
• classmethod ParseService(node As %XML.Node, configName As %String)
Parse the service configuration
• method RemoveConfiguration(soapClassname As %String)
Remove Association of configuration with SOAP class
• classmethod WriteAlternative(ByRef alternative, indent As %String = " ") as %String
Write out configuration policy -- should never be called.
• classmethod WriteConfiguration(configName As %String = "", normalized As %Boolean = 0) as %Status
Write a policy for the configuration class configName is the name of configuration or "" for all configurations in the class.
• classmethod WriteMethod(writer As %XML.Writer, configName As %String, methodName As %String, normalized As %Boolean)
Write a method element
• classmethod WriteOneConfig(writer As %XML.Writer, configName As %String, normalized As %Boolean)
Write a single configuration
• classmethod WritePolicy(writer As %XML.Writer, policyIndex As %Integer, uri As %String, wsdlElement As %String, internal As %Boolean)
• classmethod WriteReferencedPolicies(writer As %XML.Writer, ByRef policyList)
Write all policies referenced using Policyreference by one of the specified methods in the specified configuration
• classmethod WriteWSDLPolicy(writer As %XML.Writer, configId As %String, wsdlElement As %String, methodName As %String, reqres As %String)
Write inline Policy or PolicyReference for specified wsdlElement