Skip to main content

%SOAP.Configuration

Class %SOAP.Configuration Extends %RegisteredObject [ Abstract, System = 3 ]

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"> ( (<wsp:Policy cfg:wsdlElement="s:string"? ...> ... </wsp:Policy>) |(<wsp:PolicyReference URI="#policyId cfg:wsdlElement="s:string"?>)) * ( (<wsp:Policy cfg:wsdlElement="s:string"? ...> ... </wsp:Policy>) |(<wsp:PolicyReference URI="#policyId cfg:wsdlElement="s:string"?>)) * ( (<wsp:Policy cfg:wsdlElement="s:string"? ...> ... </wsp:Policy>) |(<wsp:PolicyReference URI="#policyId cfg:wsdlElement="s:string"?>)) * ? ( (<wsp:Policy cfg:wsdlElement="s:string"? ...> ... </wsp:Policy>) |(<wsp:PolicyReference URI="#policyId cfg:wsdlElement="s:string"?>)) * ? * + 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

Parameters

REPORTANYERROR

Parameter REPORTANYERROR As BOOLEAN = 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

GetConfigId

ClassMethod GetConfigId(classname As %String) As %String [ CodeMode = expression, Internal ]

Get configuration id for specified class

AssociateConfiguration

Method AssociateConfiguration(soapClassname As %String, configName As %String) [ Internal ]

Associate configuration with SOAP class

RemoveConfiguration

Method RemoveConfiguration(soapClassname As %String) [ Internal ]

Remove Association of configuration with SOAP class

GetSOAPClasses

ClassMethod GetSOAPClasses(configId As %String, Output SOAPClasses As %String) [ Internal ]

Get names of all SOAP classes which are configured in the specified configuration class.

FindWSDLPolicies

ClassMethod FindWSDLPolicies(configId As %String, ByRef methods, Output policyList, Output version) [ Internal ]

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.

WriteReferencedPolicies

ClassMethod WriteReferencedPolicies(writer As %XML.Writer, ByRef policyList) [ Internal ]

Write all policies referenced using Policyreference by one of the specified methods in the specified configuration

WriteWSDLPolicy

ClassMethod WriteWSDLPolicy(writer As %XML.Writer, configId As %String, wsdlElement As %String, methodName As %String, reqres As %String) [ Internal ]

Write inline Policy or PolicyReference for specified wsdlElement

WriteConfiguration

ClassMethod WriteConfiguration(configName As %String = "", normalized As %Boolean = 0) As %Status [ Internal ]

Write a policy for the configuration class configName is the name of configuration or "" for all configurations in the class.

WriteOneConfig

ClassMethod WriteOneConfig(writer As %XML.Writer, configName As %String, normalized As %Boolean) [ Internal ]

Write a single configuration

WritePolicy

ClassMethod WritePolicy(writer As %XML.Writer, policyIndex As %Integer, uri As %String, wsdlElement As %String, internal As %Boolean) [ Internal ]

WriteMethod

ClassMethod WriteMethod(writer As %XML.Writer, configName As %String, methodName As %String, normalized As %Boolean) [ Internal ]

Write a method element

IsName

ClassMethod IsName(name As %String) As %Boolean [ CodeMode = expression, Internal ]

Return true if this is a name rather than a defined type

OnConfigurationCompile

ClassMethod OnConfigurationCompile() [ CodeMode = objectgenerator, Internal ]

Parse all configurations defined in specified class.

ParseAll

ClassMethod ParseAll(classname As %String, compiledclass As %Dictionary.CompiledClass) As %Status [ Internal ]

Parse all configurations defined in specified class.

ParseOpen

ClassMethod ParseOpen(stream As %GlobalCharacterStream, configName As %String, Output reader As %XML.Reader, Output root As %String) As %Status [ Internal ]

Parse the XML content of the XDATA block to determine if valid Policy or configuration

ParseConfigurationPolicy

ClassMethod ParseConfigurationPolicy(reader As %XML.Reader, configName As %String) As %Status [ Internal ]

Parse a wsp:Policy within a configuration file which is defined as an XData block.

ParseConfiguration

ClassMethod ParseConfiguration(reader As %XML.Reader, configName As %String) As %Status [ Internal ]

Parse a SOAP configuration which is defined as an XData block.

ParseService

ClassMethod ParseService(node As %XML.Node, configName As %String) [ Internal ]

Parse the service configuration

ParseMethod

ClassMethod ParseMethod(node As %XML.Node, configName As %String, servicePolicy As %SOAP.Policy) [ Internal ]

Parse the method element of the configuration

ParseIO

ClassMethod ParseIO(node As %XML.Node, configName As %String, kind As %String, methodName As %String, methodPolicy As %SOAP.Policy, methodPolicyIndex As %Integer) [ Internal ]

Parse the request or response element of the configuration

ParseAnalyze

ClassMethod ParseAnalyze(policy As %SOAP.Policy, policyIndex As %Integer) [ Internal ]

Analyze a policy

ParsePolicy

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 [ Internal ]

Parse a wsp:Policy element in the configuration

WriteAlternative

ClassMethod WriteAlternative(ByRef alternative, indent As %String = "   ") As %String [ Internal ]

$$$SOAPPolicy(configClass,$$$SOAPConfigPolicyId,policyId)=policyIndex $$$SOAPPolicy(configClass,$$$SOAPConfigPolicyName,policyName)=policyIndex $$$SOAPPolicy(configClass,$$$SOAPConfigPolicyVersion)=policyVersion Write out configuration policy -- should never be called.

AnalyzeAssertion

ClassMethod AnalyzeAssertion(policy As %SOAP.Policy, nodeId As %Integer, ByRef alternative) As %Status [ Internal ]

Analyze ISC configuraation assertion -- should never be called.