Generation of WSDL files
A Web Services Description Language (WSDL) document specifies the interface to a web service, and enables a web service client to start it. A WSDL document that is generated from a message model defines web service requests and responses in terms of the messages that you have defined in that message model.
You can generate a WSDL document for a message model that resides in a message set.
Use message model files with target namespaces when you generate WSDL. If you do not, IBM App Connect Enterprise uses the WSDL target namespace as the default target namespace.
In the main WSDL document, operations are defined in terms of logical messages, which are themselves defined in terms of the elements and types that are defined in these message model files.
WSDL operations are grouped into a logical interface or portType, and are then associated with a binding which defines the physical format of the messages. You can select only one of the following bindings when you generate WSDL:
- SOAP (over JMS)
- SOAP (over HTTP)
A WSDL service definition specifies the endpoint where the service is available. You can elect to have the service, binding, and portType definitions generated as a single file or as separate files. Tools that use WSDL are typically more tolerant of the single-file format. If you select single-file, you can also choose whether the associated XML Schema is generated from the message model as a separate file or in-line.
Considerations for deploying a WSDL file with regular expression definitions
The W3C XML Schema standard specifies how to define regular expressions using the pattern facet of simple type definitions in XML schemas, and WSDL files. Regular expressions can include a quantifier that specifies how many instances of a character, group, or character class must be present in the input, in order for a match to be found.
When the WSDL is deployed to an integration server, it is compiled into a binary file, which the IBM App Connect Enterprise XMLNSC parser uses to validate input messages at run time. The total size of the binary file is the accumulated size of each regular expression, which depends on the quantifier ranges in each expression. A large binary file requires the integration server JVM heap size to be large enough to enable the WSDL file to be successfully deployed.
<xsd:simpleType name="VeryLargeBoolean">
<xsd:restriction base="xsd:string">
<xsd:pattern value="([T|t][R|r][U|u][E|e])|([F|f][A|a][L|l][S|s][E|e]){0,2147483647}" />
</xsd:restriction>
</xsd:simpleType>
The quantifier in this example is
{0,2147483647}, which during deployment will generate a binary file
that is at least 2 GB in size. BIP4041E: Integration server '<Server name>' received an administration
request that encountered an exception.
BIP5044E: A failure occurred while the integration server was preparing
the XML and DFDL schema files that are contained in the application
<Application Name>.
BIP5043E: The XMLNSC compiler ran out of memory during the preprocessing
of XML Schema files for the XMLNSC domain.
If this problem occurs, modify the range of the quantifiers in the regular expressions to generate a smaller number of pattern matching instances, and therefore a smaller binary WSDL file.