class %SOAP.WSDL.Reader
extends %RegisteredObject
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.
property BusinessOperationPackage
as %String [ InitialExpression = "BusOp" ];
If MakeBusinessOperation is true,
the name of the sub-package to contain the Business Operation
property ClientPackage
as %String;
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.
property CompileClasses
as %Boolean [ InitialExpression = 1 ];
Input property to control compilation of created classes.
Default is to compile classes.
property CompileFlags
as %String [ InitialExpression = "dk" ];
Flags to be used for class compiles.
property ConfigPackage
as %String;
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.
property Debug
as %Integer [ InitialExpression = 0 ];
Control display of debugging info
Debug level. Additional output for levels >0.
Default is 0.
property GenerateXMLNIL
as %Boolean;
Input property to control the generation of the XMLNIL property parameter.
If GenerateXMLNIL = 1, then generate property parameter XMLNIL=1 for elements with nillable="true".
property IgnoreNull
as %String;
If the IgnoreNull property is set, the web client/service and the generated classes are created with the
XMLIGNORENULL parameter to the value in IgnoreNull.
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 MakeClient
as %Boolean [ InitialExpression = 1 ];
Input property to control creation of web service client classes.
If true (1), then the client classes are created.
The default is to create client classes.
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.
property MakeMessageStyle
as %Boolean;
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.
property MakeNamespace
as %Boolean;
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 MakePersistent
as %Boolean [ InitialExpression = 0 ];
Input property to control persistence of generated classes.
If true (1), create persistent classes, else create registered classes.
Default is true.
property MakeRelationships
as %Boolean [ InitialExpression = 0 ];
Input property to control creation of relationships in generated classes.
If true(1), convert list collections of persistent classes to relationships.
Default is true.
property MakeSerial
as %Boolean [ InitialExpression = 0 ];
Input property to control if generated classes are serial.
If true (1) and 'MakePersistent create serial classes, else create registered classes.
Default is true.
property MakeService
as %Boolean [ InitialExpression = 0 ];
Input property to control creation of web service classes.
If true (1), then the web service classes are created.
The default is to not create web service classes.
property NoArrayProperties
as %Boolean [ InitialExpression = 0 ];
Input property to control use of arrays in created classes.
If true(1), do not reduce properties to use array of cnostruct.
Default is false(0).
property NoSequence
as %Boolean;
If the NoSequence property is true, the XMLSEQUENCE parameter is set to 0 in the generated classes.
property OperationPackage
as %String [ InitialExpression = "Operation" ];
If MakeEnsembleClasses is true,
OperationPackage is the name of the package to contain the Business Operation.
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 RequestPackage
as %String [ InitialExpression = "Request" ];
If MakeEnsembleClasses is true,
RequestPackage is the name of the package to contain the Ensemble request object.
property ResponsePackage
as %String [ InitialExpression = "Response" ];
If MakeEnsembleClasses is true,
ResponsePackage is the name of the package to contain the Ensemble request object.
property SSLConfiguration
as %String;
The name of the activated TLS/SSL configuration to use for https requests.
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.
method GeneratePolicyFromWSDL(wsdlURL As %String, clientWebServiceClass As %String, policyConfigClass As %String)
as %Status
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.
method Process(pLocationURL As %String, pPackage As %String = "", pTest As %Boolean = 0, schemaReader As %XML.Utils.SchemaReader = "")
as %Status
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.
method Reset()
Reset this class instance for reuse.