Table 2‑1 compares inbound message conversion and outbound message conversion .
|
|
|
|
Oracle Tuxedo STRING typed buffers are used to store character strings that terminate with a NULL character. Oracle Tuxedo STRING typed buffers are self-describing.
|
•
|
The STRING data type can be specified with a max data length in the Oracle Tuxedo Service Metadata Repository. If defined in Oracle Tuxedo, the corresponding SOAP message also enforces this maximum. The GWWS server validates the actual message byte length against the definition in Oracle Tuxedo Service Metadata Repository. A SOAP fault message is returned if the message byte length exceeds supported maximums.
|
|
|
Oracle Tuxedo CARRAY typed buffers store character arrays, any of which can be NULL. CARRAY buffers are used to handle data opaquely and are not self-describing.
|
The CARRAY buffer raw data is carried within a MIME multipart/related message, which is defined in the “SOAP Messages with Attachments’ specification.
Note:
|
CARRAY data types can be specified with a max byte length. If defined in Oracle Tuxedo, the corresponding SOAP message is enforced with this limitation. The GWWS server validates the actual message byte length against the definition in the Oracle Tuxedo Service Metadata Repository.
|
|
|
Oracle Tuxedo CARRAY typed buffers store character arrays, any of which can be NULL. CARRAY buffers are used to handle data opaquely and are not self-describing.
|
The CARRAY data bytes must be encoded with base64Binary before it can be embedded in a SOAP message. Using base64Binary encoding with this opaque data stream saves the original data and makes the embedded data well-formed and readable.
Note:
|
CARRAY data types can be specified with a max byte length. If defined in Oracle Tuxedo, the corresponding SOAP message is enforced with this limitation. The GWWS server validates the actual message byte length against the definition in the Oracle Tuxedo Service Metadata Repository.
|
|
|
Oracle Tuxedo MBSTRING typed buffers are used for multibyte character arrays. Oracle Tuxedo MBSTRING buffers consist of the following three elements:
|
The XML Schema built-in type, xsd:string, represents the corresponding type for buffer data stored in a SOAP message.
The GWWS server only accepts “UTF-8” encoded XML documents. If the Web service client wants to access Oracle Tuxedo services with MBSTRING buffer, the mbstring payload must be represented as “ UTF-8” encoding in the SOAP request message.
For any Oracle Tuxedo response MBSTRING typed buffer (with any encoding character set), the GWWS server automatically transforms the string into “ UTF-8” encoding and sends it back to the Web service client.
|
|
|
Oracle Tuxedo MBSTRING data type can be specified with a max byte length in the Oracle Tuxedo Service Metadata Repository. The GWWS server checks the byte length of the converted MBSTRING buffer value.
|
|
|
The XML Schema built-in type, xsd:anyType, is the corresponding type for XML documents stored in a SOAP message. It allows you to encapsulate any well-formed XML data within the SOAP message.
The actual XML data must be encoded using the “UTF-8” character set. Any original XML document prolog information cannot be carried within the SOAP message.
Note:
|
The SALT WSDL generator will not have xsd:maxLength restrictions in the generated WSDL document, but the GWWS server will validate the byte length according to the Oracle Tuxedo Service Metadata Repository definition.
|
|
|
Oracle Tuxedo VIEW and VIEW32 typed buffers store C structures defined by Oracle Tuxedo applications.
VIEW structures are defined by using VIEW definition files. A VIEW buffer type can define multiple fields.
VIEW supports the following field types:
VIEW32 supports all the VIEW field types, mbstring, and embedded VIEW32 type.
|
Each VIEW or VIEW32 data type is defined as an XML Schema complex type. Each VIEW field should be one or more sub-elements of the XML Schema complex type. The name of the sub-element is the VIEW field name. The occurrence of the sub-element depends on the count attribute of the VIEW field definition. The value of the sub-element should be in the VIEW field data type corresponding XML Schema type.
•
|
char (defined as byte in Oracle Tuxedo Service Metadata Repository definition), maps to xsd:byte
|
•
|
char (defined as char in Oracle Tuxedo Service Metadata Repository definition) maps to xsd:string (with restrictions maxlength=1).
|
•
|
carray maps to xsd:base64Binary
|
|
|
|
|
|
Oracle Tuxedo FML and FML32 type buffers are proprietary Oracle Oracle Tuxedo system self-describing buffers. Each data field carries its own identifier, an occurrence number, and possibly a length indicator.
FML supports the following field types:
FML32 supports all the FML field types and FLD_PTR, FLD_MBSTRING, FLD_FML32, and FLD_VIEW32.
|
FML/FML32 buffers can only have basic data-dictionary-like definitions for each basic field data. A particular FML/FML32 buffer definition should be applied for each FML/FML32 buffer with a different type name.
Each FML/FML32 field should be one or more sub-elements within the FML/FML32 buffer XML Schema type. The name of the sub-element is the FML field name. The occurrence of the sub-element depends on the count and required count attribute of the FML/FML32 field definition.
•
|
char (defined as byte in Oracle Tuxedo Service Metadata Repository definition) maps to xsd:byte
|
•
|
char (defined as char in Oracle Tuxedo Service Metadata Repository definition) maps to xsd:string
|
•
|
carray maps to xsd:base64Binary
|
|
|
|
•
|
view32 maps to tuxtype:view <viewname>
|
•
|
fml32 maps to tuxtype:fml32 <svcname>_p<SeqNum>
|
To avoid multiple embedded FML32 buffers in an FML32 buffer, a unique sequence number ( <SeqNum>) is used to distinguish the embedded FML32 buffers.
|
|
RECORD buffer type represents copybook record. RECORD types must have subtypes that designate individual record structures.
|
Each RECORD data type is defined as an XML Schema complex type. Each RECORD field should be one or more sub-elements of the XML Schema complex type.
•
|
RECORD maps to xsd:complexType
|
•
|
9(18) maps to xsd:unsignedLong
|
|
|
X_C_TYPE buffer types are equivalent to VIEW buffer types.
|
|
|
X_COMMON buffer types are equivalent to VIEW buffer types, but are used for compatibility between COBOL and C programs. Field types should be limited to short, long, and string
|
|
|
X_OCTET buffer types are equivalent to CARRAY buffer types
|
See CARRAY xsd:base64Binary
|
Oracle Tuxedo STRING typed buffers are used to store character strings that end with a
NULL character. Oracle Tuxedo
STRING typed buffers are self-describing.
Listing 2‑1 shows a SOAP message for the
TOUPPER Oracle Tuxedo service example that accepts a
STRING typed buffer.
Oracle Tuxedo CARRAY typed buffers are used to store character arrays, any of which can be
NULL. They are used to handle data opaquely and are not self-describing. Oracle Tuxedo
CARRAY typed buffers can map to
xsd:base64Binary or MIME attachments. The default is
xsd:base64Binary.
Listing 2‑2 shows the SOAP message for the
TOUPPER Oracle Tuxedo service, which accepts a
CARRAY typed buffer using
base64Binary mapping.
Listing 2‑3 shows the SOAP message for the
TOUPPER Oracle Tuxedo service, which accepts a
CARRAY typed buffer as a MIME attachment.
Oracle Tuxedo MBSTRING typed buffers are used for multibyte character arrays. Oracle Tuxedo
MBSTRING typed buffers consist of the following three elements:
Listing 2‑4 shows the SOAP message for the
MBSERVICE Oracle Tuxedo service, which accepts an
MBSTRING typed buffer.
Listing 2‑6 shows the SOAP message for the
STOCKINQ Oracle Tuxedo service, which accepts an
XML typed buffer.
Oracle Tuxedo VIEW and
VIEW32 typed buffers are used to store C structures defined by Oracle Tuxedo applications. You must define the VIEW structure with the
VIEW definition files. A
VIEW buffer type can define multiple fields.
Listing 2‑10 shows the SOAP message for the
MYVIEW Oracle Tuxedo service, which accepts a
VIEW typed buffer.
•
|
tmwsdlgen also provides strong consistency checking between the Oracle Tuxedo Service Metadata Repository VIEW/VIEW32 parameter definition and the VIEW/VIEW32 definition file at start up. If an inconsistency is found, the GWWS server will not start. Inconsistency messages are printed in the ULOG file.
|
If the VIEW definition file cannot be loaded,
tmwsdlgen attempts to use the Oracle Tuxedo Service Metadata Repository definitions to compose the WSDL document.
•
|
Because dec_t is not supported, if you define VIEW fields with type dec_t, the service cannot be exported as a Web service and an error message is generated when the SALT configuration file is loading.
|
•
|
When a VIEW32 embedded MBString buffer is requested and returned to the GWWS server, the GWWS miscalculates the required MBString length and reports that the input string exceeds the VIEW32 maxlength. This is because the header is included in the transfer encoding information. You must include the header size when defining the VIEW32 field length.
|
•
|
The Oracle Tuxedo primary data type “long” is indefinite between 32-bit and 64-bit scope, depending on the platform. However, the corresponding xsd:long schema type is used to describe 64-bit numeric values.
|
Oracle Tuxedo FML and
FML32 typed buffer are proprietary Oracle Tuxedo system self-describing buffers. Each data field carries its own identifier, an occurrence number, and possibly a length indicator.
Listing 2‑12 shows the SOAP message for the
TRANSFER Tuxedo service, which accepts an
FML typed buffer.
Listing 2‑14 shows the SOAP message for the
TRANSFER Oracle Tuxedo service, which accepts an
FML32 typed buffer.
•
|
FML32 field type FLD_PTR is not supported.
|
If an FML/32 field is found that is not in accordance with the environment setting, or the field table field data type definition is different from the parameter data type definition in the Oracle Tuxedo Service Metadata Repository, the GWWS cannot start. Inconsistency messages are printed in the
ULOG file.
•
|
The tmwsdlgen command checks for consistency between the Oracle Tuxedo Service Metadata Repository FML/FML32 parameter definition and FML/FML32 definition file. If inconsistencies are found, it issues a warning and allows inconsistencies.
|
If an FML/32 field is found that is not in accordance with the environment setting, or the field table field data type definition is different from the parameter data type definition in the Oracle Tuxedo Service Metadata Repository,
tmwsdlgen attempts to use Oracle Tuxedo Service Metadata Repository definitions to compose the WSDL document.
•
|
Oracle Tuxedo primary data type “long” is indefinite between 32-bit and 64-bit scope according to different platforms. But the corresponding xsd:long schema type is used to describe 64-bit numeric value. The following scenario generates a SOAP fault:
|
Redefines are handled using the core RECORD implementation, which takes a
cpy2record binary output with boolean expressions to perform choice decisions. GWWS leverages these capabilities when processing records and used them to determine the redefine member to select in the outgoing message (inbound reply and outbound request).
In order to make use of cpy2record binaries, GWWS loads the
RECORD description files (for example,VIEW/VIEW32 compiled definitions), and rely on the
RECORDFILES/
RECORDDIR environment variables. By specifying keyword "
union" in the
MIF file, the items keep the
REDEFINE relationship.
Oracle Tuxedo X_C_TYPE typed buffers are equivalent (and have a similar WSDL format to), Oracle Tuxedo
VIEW typed buffers.They are transparent for SOAP clients. However, even though usage is similar to the Oracle Tuxedo
VIEW buffer type, SALT administrators must configure the Oracle Tuxedo Service Metadata Repository for any particular Oracle Tuxedo service that uses this buffer type.
Note:
|
All View related considerations also take effect for X_C_TYPE typed buffer.
|
Oracle Tuxedo X_COMMON typed buffers are equivalent to Oracle Tuxedo
VIEW typed buffers. However, they are used for compatibility between COBOL and C programs. Field types should be limited to
short,
long, and
string.
Note:
|
Oracle Tuxedo X_OCTET typed buffers can only map to xsd:base64Binary type. SALT 1.1 does not support MIME attachment binding for Oracle Tuxedo X_OCTET typed buffers.
|
XML Schema built-in type xsd:anyType is the corresponding type for XML documents stored in a SOAP message. While using custom typed buffers, you should define and represent the actual data into an XML format and transfer between the Web service client and Oracle Tuxedo Web service stack. As with XML typed buffers, only a single root XML buffer can be stored in the SOAP body. The GWWS checks this for consistency.
SALT maps each wsdl:message as an Oracle Tuxedo
FML32 buffer structure. SALT defines a set of rules for representing the XML Schema definition using
FML32. To invoke external Web Services, you need to understand the exact
FML32 structure that converted from the external Web Service XML Schema definition of the corresponding message.
Table 2‑3 shows the supported XML Schema Built-In Simple Data Type and the corresponding Oracle Tuxedo
FML32 Field Data Type.
|
|
<xsd:element name=”message” type=”xsd:string” />
|
|
|
|
|
|
FBFR32 * request; FLDLEN32 len, mbsize = 1024; char * msg, * mbmsg; msg = calloc( ... ); mbmsg = malloc(mbsize); ... strncpy(msg, “...”, len); /* The string is UTF-8 encoding */ Fmbpack32(“utf-8”, msg, len, mbmsg, &mbsize, 0); /* prepare mbstring*/ Fadd32( request, message, mbmsg, mbsize);
|
|
|
<xsd:element name=”IssueDate” type=”xsd:date” />
|
|
|
|
|
|
FBFR32 * request; char date[32];
... strcpy(date, “2007-06-04+8:00”); /* Set the date value correctly */ Fadd32( request, IssueDate, date, 0);
|
Table 2‑7 lists the supported XML Schema User Defined Simple Data Type and the corresponding Oracle Tuxedo
FML32 Field Data Type.
|
|
|
|
|
|
|
|
<xsd:simpleType> derived from built-in primitive simple data types
|
Equivalent FML32 Field Type of the primitive simple type (see Table 2‑3)
|
|
Facets defined with <xsd:restriction> are not enforced in Oracle Tuxedo.
|
<xsd:simpleType> defined with <xsd:list>
|
|
|
Same as <xsd:anyType>. The Schema compliancy is not enforced in Oracle Tuxedo. .
|
<xsd:simpleType> defined with <xsd:union>
|
|
|
Same as <xsd:anyType>. The Schema compliancy is not enforced in Oracle Tuxedo. .
|
<xsd:complexType> defined with <xsd:simpleContent>
|
|
|
Same as <xsd:anyType>. The Schema compliancy is not enforcedin Oracle Tuxedo. .
|
<xsd:complexType> defined with <xsd:complexContent>
|
|
|
Same as <xsd:anyType>. The Schema compliancy is not enforcedin Oracle Tuxedo. .
|
<xsd:complexType> defined with shorthand <xsd:complexContent>, sub-elements composited with sequence or all
|
|
|
|
<xsd:complexType> defined with shorthand <xsd:complexContent>, sub-elements composited with choice
|
|
|
|
|
|
|
|
|
|
<xsd:element name=”Grade” type=”Alphabet” /> <xsd:simpleType name=”Alphabet”> <xsd:restriction base=”xsd:string”> <xsd:maxLength value=”1” /> <xsd:pattern value=”[A-Z]” /> </xsd:restriction> </xsd:simpleType>
|
|
|
|
|
|
char grade[2];
FBFR32 * request; ... grade[0] = ‘A’; grade[1] = ‘\0’; Fadd32( request, Grade, (char *)grade, 0);
|
|
|
<xsd:element name=”Users” type=”namelist” /> <xsd:simpleType name=”namelist”> <xsd:list itemType=” xsd:NMTOKEN”> </xsd:simpleType>
|
|
|
|
|
|
char * user[5]; char users[...];
char * mbpacked; FLDLEN32 mbsize = 1024; FBFR32 * request; ... sprintf(users, “<n1:Users xmlns:n1=\”urn:sample.org\”>”); for ( i = 0 ; i < 5 ; i++ ) { strcat(users, user[i]); strcat(users, “ “); } strcat(users, “</n1:Users>“);
... mbpacked = malloc(mbsize); /* prepare mbstring*/ Fmbpack32(“utf-8”, users, strlen(users), mbpacked, &mbsize, 0); Fadd32( request, Users, mbpacked, mbsize);
|
Note:
|
In Table 2‑10, attributes are supported in External Web Services calls using the form "<xs:attribute name="[name]" type="[type]"/>" only. Qualifiers such as "fixed=" are currently not supported."
|
Oracle Tuxedo FML32 buffer type is always used in mapping WSDL messages.
Table 2‑11 lists the WSDL message mapping rules defined by SALT.
Note:
|
If a VIEW32 buffer is used as input of an Oracle Tuxedo service exposed as a RESTful service using GET or DELETE, and that VIEW32 contains an MBSTRING type, some content must be specified in the calling query string as MBSTRING type fields cannot be defaulted.
|
For GET and
DELETE methods, input data is passed as an HTTP query string.
•
|
keyword=value model, when applicable. For simple buffer types the actual data may be passed directly, e.g.: http://host:1234/myTOUPPER?inputstring
|
|
|
|
|
|
|
|
|
|
|
|
Data represented as URL encoded of UTF-8 representation of the Oracle Tuxedo MBSTRING.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GWWS attempts to convert values to the corresponding VIEW/VIEW32 member depending on the target type: number types from their string representation to their Oracle Tuxedo ones:
•
|
float notation for float and double VIEW/VIEW32 types
|
FLD_CHAR fields are translated from URL-encoded content(i.e., representable characters or their ' %xx' representation string for all other types)
The fieldname=value notation is used with:
•
|
FBNAME field name when configured in the view description.
|
•
|
CNAME value when no FBNAME is present in the view description.
|
If neither FBNAME nor CNAME matches for this subtype, a mapping error is returned.
|
|
|
GWWS attempts to convert values to the corresponding VIEWFML/VIEWFML32 member depending on the target type: number types from their string representation to their Oracle Tuxedo ones:
•
|
FLD_CHAR fields are translated from URL-encoded content (i.e., representable characters or their ' %xx' representation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
In order to transmit encodings other than UTF-8, the " enableMultiEncoding" property must be set to "true" in the SALTDEPLOY configuration.
|
|
|
In order to transmit encodings other than UTF-8, the "enableMultiEncoding" property must be set to " true" in the SALTDEPLOY configuration.
|
|
|
|
|
|
|
|
|
|
|
{'<fieldname>':'<fieldcontent>', '<fieldname>':'<fieldcontent>'}
{'<fieldname>':{'<fieldname>':'<fieldcontent>'}}
VIEW/VIEW32 field types are mapped as follows (Oracle Tuxedo type: JSON type):
|
See VIEW/VIEW32 considerations and examples for fieldname mapping details.
Some types may be truncated if represented in their primitive types (long long, long double), in that case they are rendered as JSON strings.
|
|
•
|
carray: String (base64 encoded)
|
|
|
|
{'<fieldname>':'<fieldcontent>', '<fieldname>':'<fieldcontent>'}
{'<fieldname>':{'<fieldname>':'<fieldcontent>'}}
FML/FML32 field types are mapped as follows (Oracle Tuxedo type: JSON type):
•
|
FLD_CHAR: String or character 'T' for JSON true or 'F' for JSON false
|
•
|
FLD_VIEW32: JSON nested record, see VIEW/VIEW32 mapping for individual types
|
|
Nested FLD_VIEW32: the name of the view subtype must be the name of the embedded VIEW32. For Example:
VIEW32 example.v definition file:
JSON content (EVIEW32 is a FLD_VIEW32 fml32 type):
|
|
|
|
Note:
|
FML32 Field type FLD_PTR is not supported.
|
•
|
Simple buffers (STRING, CARRAY, MBSTRING and XML) are sent and received as is, without any XML processing. The behavior is identical to JSON processing (i.e.,no mapping is necessary)_.
|
•
|
FML and FML32 requests are wrapped by a root element (which name is ignored, as long as the XML is formed properly), and replies are wrapped in an element with the same name as the subtype as specified in the REST/Service/Method/@inputbuffer attribute of the SALTDEPLOY configuration file, or <root> element, since there is not necessarily one if subtype is not configured. VIEW, VIEW32, X_COMMON and X_C_TYPE buffers are the subtype name as root element name.
|
|
|
|
|
Oracle Tuxedo STRING typed buffers are used to store character strings that terminate with a NULL character. Oracle Tuxedo STRING typed buffers are self-describing.
|
|
|
Oracle Tuxedo CARRAY typed buffers store character arrays, any of which can be NULL. CARRAY buffers are used to handle data opaquely and are not self-describing.
|
|
|
Oracle Tuxedo MBSTRING typed buffers are used for multibyte character arrays. Oracle Tuxedo MBSTRING buffers consist of the following three elements:
In order to transmit encodings other than UTF-8, the " enableMultiEncoding" property must be set to " true" in the SALTDEPLOY configuration.
|
|
|
Oracle Tuxedo XML typed buffers store XML documents.
Only a single root XML buffer is allowed to be stored in the payload; the GWWS server checks for this.
In order to transmit encodings other than UTF-8, the "enableMultiEncoding" property must be set to "t rue" in the SALTDEPLOY configuration.
|
|
|
|
|
|
|
|
|
|
|
|
Oracle Tuxedo VIEW and VIEW32 typed buffers store C structures defined by Oracle Tuxedo applications.
VIEW structures are defined by using VIEW definition files. A VIEW buffer type can define multiple fields.
VIEW supports the following field types:
•
|
carray (represented as base64 encoded content)
|
VIEW32 supports all the VIEW field types, mbstring, and embedded VIEW32 type.
The name of the sub-element is the VIEW field name. The occurrence of the sub-element depends on the count attribute of the VIEW field definition. The value of the sub-element should be in the VIEW field data type corresponding XML Schema type.
|
|
|
Oracle Tuxedo FML and FML32 type buffers are proprietary Oracle Oracle Tuxedo system self-describing buffers. Each data field carries its own identifier, an occurrence number, and possibly a length indicator.
FML supports the following field types:
FML32 supports all the FML field types and FLD_PTR, FLD_MBSTRING, FLD_FML32, and FLD_VIEW32.
|
Nested FLD_VIEW32: the name of the view subtype must be the name of the embedded VIEW32. For Example:
|
|
RECORD buffer type represents copybook record. RECORD types must have subtypes that designate individual record structures.
|
<myRecord> <name>aaa</name> <num>1000</num> <subgroup> <long1> 3000 </long1> <string1> www </string1> </subgroup> </myRecord>
|
For GET and
DELETE methods, requested data is passed as an HTTP query string. For example:http://host:1234/banking?account=1234
•
|
keyword=value model, when applicable. For simple buffer types the actual data may be passed directly(e.g., http://host:1234/svc?inputstring).
|
|
|
|
|
|
|
|
|
|
|
|
Data represented as URL encoded of UTF-8 representation of the Tuxedo MBSTRING.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GWWS attempts to convert values to the corresponding VIEW/VIEW32 member depending on the target type: number types from their string representation to their Oracle Tuxedo ones:
•
|
FLD_CHAR fields are translated from URL-encoded content, i.e. representable characters or their ' %xx' representation
|
The fieldname=value notation is used with:
•
|
FBNAME field name when one is configured in the view description.
|
•
|
CNAME value when no FBNAME is present in the view description.
|
•
|
If neither FBNAME nor CNAME matches for this subtype a mapping error is returned.
|
|
|
|
GWWS attempts to convert values to the corresponding FML/FML32 member depending on the target type: number types from their string representation to their Tuxedo ones:
•
|
FLD_CHAR fields are translated from URL-encoded content (i.e., representable characters or their ' %xx' representation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
In order to transmit encodings other than UTF-8, the " enableMultiEncoding" property must be set to "true" in the SALTDEPLOY configuration.
|
|
|
In order to transmit encodings other than UTF-8, the "enableMultiEncoding" property must be set to "true" in the SALTDEPLOY configuration.
|
|
|
|
|
|
|
|
|
|
|
{'<fieldname>':'<fieldcontent>', '<fieldname>':'<fieldcontent>'}
{'<fieldname>':{'<fieldname>':'<fieldcontent>'}}
•
|
carray: String (base64 encoded)
|
|
|
|
|
See VIEW/VIEW32 considerations and examples for fieldname mapping details.
Some types may be truncated if represented in their primitive types (long long, long double), in that case they will be rendered as JSON strings.
|
|
{'<fieldname>':'<fieldcontent>', '<fieldname>':'<fieldcontent>'}
{'<fieldname>':{'<fieldname>':'<fieldcontent>'}}
FML/FML32 field types are mapped as follows (Tuxedo type: JSON type):
•
|
FLD_CHAR: String or character 'T' for JSON true or 'F' for JSON false
|
•
|
FLD_VIEW32: JSON nested record, see VIEW/VIEW32 mapping for individual types
|
|
Nested FLD_VIEW32: the name of the view subtype must be the name of the embedded VIEW32. For Example:
VIEW32 example .v definition file:
|
|
RECORD buffer field types are mapped as follows (Tuxedo type: JSON type):
|
|
Notes:
|
Non-structured buffer types (STRING, CARRAY, X_OCTET and MBSTRING) will not wrap data as JSON objects, the data is transmitted as is. The content-type setting is ignored for those buffer types with respect to data mapping.
|
Note:
|
FML32 Field type FLD_PTR is not supported.
|
Without FBNAME(names specified in the view file), the content is represented using the
CNAME values. Since nesting cannot be expressed without field names because the field name is also the subtype name for the nested view, only structures with 1 level are represented.
•
|
Simple buffers (STRING, CARRAY, MBSTRING, and XML) are sent and received as is, without any XML processing. The behavior is identical to JSON processing (i.e.,no mapping is necessary.
|
•
|
FML and FML32 requests must be wrapped by a root element (which name is ignored, as long as the XML is formed properly), and replies are wrapped in an element with the same name as the subtype as specified in the HTTP/Service/@outputbuffer attribute of the SALTDEPLOY configuration file, or <root> element if subtype is not configured. VIEW, VIEW32, X_COMMON, and X_C_TYPE buffers use the subtype name as the root element name.
|
|
|
|
|
Oracle Tuxedo STRING typed buffers are used to store character strings that terminate with a NULL character. Oracle Tuxedo STRING typed buffers are self-describing.
|
|
|
Oracle Tuxedo CARRAY typed buffers store character arrays, any of which can be NULL. CARRAY buffers are used to handle data opaquely and are not self-describing.
|
|
|
Oracle Tuxedo MBSTRING typed buffers are used for multibyte character arrays. Oracle Tuxedo MBSTRING buffers consist of the following three elements:
In order to transmit encodings other than UTF-8, the "enableMultiEncoding" property must be set to " true" in the SALTDEPLOY configuration.
|
|
|
Oracle Tuxedo XML typed buffers store XML documents.
Only a single root XML buffer is allowed to be stored in the payload; the GWWS server checks for this.
In order to transmit encodings other than UTF-8, the " enableMultiEncoding" property must be set to " true" in the SALTDEPLOY configuration.
|
|
|
|
|
|
|
|
|
|
|
|
Oracle Tuxedo VIEW and VIEW32 typed buffers store C structures defined by Oracle Tuxedo applications.
VIEW structures are defined by using VIEW definition files. A VIEW buffer type can define multiple fields.
•
|
carray (represented as base64 encoded content)
|
|
|
|
VIEW32 supports all the VIEW field types, mbstring, and embedded VIEW32 type.
The name of the sub-element is the VIEW field name. The occurrence of the sub-element depends on the count attribute of the VIEW field definition. The value of the sub-element should be in the VIEW field data type corresponding XML Schema type.
|
|
|
Oracle Tuxedo FML and FML32 type buffers are proprietary Oracle Oracle Tuxedo system self-describing buffers. Each data field carries its own identifier, an occurrence number, and possibly a length indicator.
FML32 supports all the FML field types and FLD_PTR, FLD_MBSTRING, FLD_FML32, and FLD_VIEW32.
|
Nested FLD_VIEW32: the name of the view subtype must be the name of the embedded VIEW32. For Example:
|
|
RECORD buffer type represents copybook record. RECORD types must have subtypes that designate individual record structures.
|
<myRecord> <name>aaa</name> <num>1000</num> <subgroup> <long1> 3000 </long1> <string1> www </string1> </subgroup> </myRecord>
|
Note:
|
FML32 Field type FLD_PTR is not supported
|