For information on converting to InterSystems IRIS,
see the InterSystems IRIS Adoption Guide
and the InterSystems IRIS In-Place Conversion Guide,
both available on the WRC Distributions page (login required).
This class reads a WSDL and builds a web service client and associated class definitions from it.
This class is used by the SOAP Client Wizard; it is not
for direct use within applications except through the Process method.
Properties which are not marked as internal may be used to control the Process method.
If MakeClient is true, then ClientPackage is the name of the package to contain the client classes.
If ClientPackage="", then the client classes are put in the default package.
If ClientPackage begins with a period (.), then the ClientPackage is appended to the default package.
Otherwise the ClientPackage is used as specified.
If ConfigPackage = "", then create the configuration class in the same package as
the client or service with 'Config' appended to the client or service name.
If ConfigPackage '= "", then create the configuration class in the subpackage
given by ConfigPackage of the package containing the client or service.
The %Net.HttpRequest instance to be used for all web requests for
WSDL and XML schema documents. This property may optionally be set by the caller
in order to specify %Net.HttpRequest properties Username, ProxyPort, etc.
property IndexRelationship as %Boolean [ InitialExpression = 0 ];
Input property to control nature of relationships in generated classes.
The IndexRelationship property is only meaningful if MakeRelationships is true(1)
and the relationship is many-one (ParentChildRelationship is false(0).
If IndexRelationship is true(1), the many-one relationships that are created are indexed.
property MakeBusinessOperation as %Boolean [ InitialExpression = 0 ];
If MakeEnsembleClasses is true, then MakeBusinessOperation and BusinessOperationPackage are ignored.
Input property to control generation of an Ensemble Business Operation for a WSDL
If true (1), create an Ensemble Business Process and related request and response objects.
property MakeEnsembleClasses as %Boolean [ InitialExpression = 0 ];
Input property to control generation of Ensemble classes for the Business Operation
Request Object and Response Object from a WSDL.
If true (1), create an Ensemble Business Operation and related request and response objects.
The MakeMessageStyle property specifies whether the generated client uses a message format in which
each request message part (not the elements of the part's type) is an argument
and each response message part is a return value or output argument.
The generation of the class using the message or wrapped format is specified by
the MakeMessageStyle property which causes this class to have an ARGUMENTSTYLE parameter
of "" (for false) or "message" (for true).
The default value for ArgumentStyle is false.
The generated ARGUMENTSTYLE parameter will be ignored if the SoapBindingStyle is not document.
If MakeMessageStyle is true, then NAMESPACE parameters are created as if MakeNamespace is true.
Input property to control generation of XML namespace information.
If true(1), add NAMESPACE parameter to generated classes.
Default is false(0) unless there are multiple targetNamespaces in which case the default is true(1).
property OutputTypeAttribute as %Boolean [ InitialExpression = 0 ];
If OutputTypeAttribute = 1, then the Process method will add the OUTPUTTYPEATTRIBUTE
parameter to the web client which is created. This parameter forces the inclusion of the xsi:type
attribute for each element of object output.
property PackageMapping as %String [ MultiDimensional ];
User supplied mapping of namespaces to package names which will override the default
package used for a specified namespace.
This mapping does not apply to the client or service class - only the referenced classes.
The format is PackageMapping(namespace)=package for each mapped namespace
If package="", then the client classes are put in the default package.
If package begins with a period (.), then the package is appended to the default package.
Otherwise the package is used as specified.
The PackageMapping property may only be used with the Process method.
property ParentChildRelationship as %Boolean [ InitialExpression = 0 ];
Input property to control nature of relationships in generated classes.
The ParentChildRelationship property is only meaningful if MakeRelationships is true(1).
If ParentChildRelationship is true(1), the relationships that are created are parent-child relationsips.
Otherwise the relationships are many-one.
property SAXFlags as %Integer [ InitialExpression = $$$SAXFULLDEFAULT+$$$SAXVALIDATIONPROHIBITDTDS ];
This property should be set to a combination of flags (see %occSAX.inc for details) if
the default behavior of the parser is required to be modified.
The $$$SAXVALIDATIONPROHIBITDTDS flag is added by default in order to not allow DTDs.
When making an SSL connection check the server identity in the server certificate matches the name of the system we are connecting to.
This defaults to being on and matches based on the rules layed out in section 3.1 of RFC 2818.
property SecurityInParameter as %String (VALUELIST = ",ALLOW,IGNORE,IGNOREALL,REQUIRE");
The SecurityInParameter property allows the SECURITYIN parameter to be added to created classes.
If SecurityInParameter'="", then add the SECURITYIN parameter to the class created for the web service or web client.
The value of the SECURITYIN parameter will be taken from the SecurityInParameter property.
The only valid values for this property are "", "ALLOW", "IGNORE", "IGNOREALL", and "REQUIRE".
property ServicePackage as %String [ InitialExpression = ".Service" ];
If MakeService is true, then ServicePackage is the name of the package to contain the web service classes.
If ServicePackage="", then the web service classes are put in the default package.
If ServicePackage begins with a period (.), then the ClientPackage is appended to the default package.
Otherwise the ServicePackage is used as specified.
The ProcessPolicy() method creates a configuration class for a web service client
which contains the policy specified by the service's WSDL.
If there is no policy in the WSDL an empty configuration class is created.
The configuration class will be compiled, if the CompileClasses property is true.
Note that it is the caller's responsibility to insure that the WSDL URL corresponds to the same
web service as the client.
The current implementation of this method is limited to WSDLs which have only one port specified.
wsdlURL is URL of the WSDL which contains the policy.
clientWebServiceClass is the name of the web service client.
If the client already has a configuration class, the configuration class will be deleted.
policyConfigClass is the name of the configuration class to be created.
If a class named policyConfigClass already exists, the existing class will be deleted.
This method call processes the WSDL found at the specified location. The
WSDL is retrieved and parsed into ^CacheTemp. The definitions are then processed
creating one or more SOAP client classes. These client classes may be used to
access the services defined with the WSDL.
The reader argument is for internal usage by Cache system classes only.