Previous | Table of Contents | Next |
Normally, names in WSDL map to identical names in IDL. However, names (e.g., IDL keywords) that cannot be used in IDL need
to be converted. Following the OMG specification “Java™ Language to IDL Mapping Specification,? the conversion below shall
be applied.
1. IDL keyword If the WSDL identifier clashes with an IDL keyword, prepend an underscore “_? (to form an escaped identifier). For example, the WSDL name oneway is mapped to the OMG IDL identifier _oneway.
2. WSDL Names starting with underscoreIf the WSDL identifier begins with an underscore “_,? the underscore is replaced by “J_.? For example, the WSDL name _fred is mapped to J_fred in IDL.
4. Method is overloaded
3. Unicode characters in WSDL
IDL does not support Unicode. Thus, if ‘$’ or a kanji character is included in the identifier, it is replaced by “U? and a 4-digit hexadecimal number (in upper case). For example, the WSDL name a$b is mapped to aU0024b in IDL.
IDL does not support overloaded methods. If the WSDL operation is overloaded, two underscores “__? are added to the method
name, followed by IDL type names of the parameters separated by two underscores “__.? A space in the type (like in long long)
is replaced with an underscore “_.? The underscore at the beginning of an escaped identifier is removed.
For example, if the WSDL mapping results in the following two IDL operations, they are transformed as shown below:
void hello();void hello(in long x, in abc y);
This is transformed as:
void hello__();void hello__long__abc(in long x, in abc y);
If the in/out parameter names are overloaded in the same method, it is an error. Also, if a method that doesn’t include in/out
is overloaded, it is an error.
5. WSDL identifiers that differ only in case
IDL names are not case sensitive. Thus, if there are two or more names that are distinguished only by case, an underscore
“_? is appended to the original name, and then decimal numbers indicating the positions of the uppercase characters are appended,
separated by an underscore. Indices are zero based.
For example, the WSDL names jack, Jack, and jAcK are mapped to IDL as jack_, Jack_0, and jAcK_1_3 respectively.
However, it is an error for the following names to be distinguished only by case.
• module name
• interface name
6. If the identifiers are not unique after application of the mapping rules above, it is an error.