WebSphere Message Broker, Version 8.0.0.7
Operating Systems: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS
See information about the latest product version
See information about the latest product version
Importing from C (DFDL): restrictions
Problems or restrictions when you import a C header file to create a message model.
- The C construct typedef is not fully supported; you cannot create messages based on a typedef of an anonymous structure.
- If an empty struct or union is used as the basis for creating a message, two messages with the same name are created.
- The C importer does not handle the #if, #ifdef , #else, #elif macros properly. Before importing a C structure, remove these macros from the source file.
- Hexadecimal constants such as int a[0x80] can cause an exception to be thrown during the import operation. Replace them in the header file before importing.
- Trigraphs are not supported. Replace trigraphs with the equivalent single character before importing the header file.
- The C importer requires all programs to be syntactically correct on the target platform. Results are unpredictable if this is not the case. In some circumstances the Toolkit might crash.
- When C type int is imported with the option Address size=64bit, elements of schema type xsd:int are created. These have an implicit range of a 32-bit integer. Change the schema type of the element to xsd:long to use values with 64-bit range.
- Importing C source where an anonymous structure contains an embedded
structure might result in an exception. Before you import the header
file, ensure that all structures have tags, for example:
struct mymessage_tag { int a; struct { // anonymous structure... int b1; struct myembstruct_tag { // ...containing a structure int c1; } c; } b; };
- An exception might be thrown when an enum with a negative value is imported. Remove the negative value before importing the header file.
- Structure and element names entirely in uppercase or starting with an underscore might be altered on import.
- Importing char arrays with 3 or more dimensions, when using the option to import strings as null terminated, can result in an incorrect maxLength facet.
- Importing char arrays with 3 or more dimensions can cause a Java™ exception to be thrown. Ensure the definitions created are correct.
- The use of C or C++ reserved keywords causes the import to fail, but nothing in the report specifically indicates this. If your import fails without an obvious reason, examine the C header file carefully and ensure that it compiles correctly. Even if it does compile correctly, it might still contain C++ keywords such as compl, which cause the importer to fail.
- Bit fields within a C structure are imported. The type is created as xs:hexBinary. Change the type in the DFDL editor to match the C type. Review the values of the DFDL Length, Length Units, Leading Skip, Trailing Skip, Alignment and Alignment Units properties, which might not be set properly.
- Octal constants such as int a[080] are incorrectly interpreted as decimal constants and must be corrected using the DFDL editor.