Resolving problems when developing message models
This topic contains advice for dealing with some common problems that can arise when working with message sets.
About this task
Your message definition file does not open
Procedure
- Scenario: You have created a complex type with a base type that causes the types to be recursive, and now your message definition file does not open.
- Solution: Recover the last saved version of your message definition file from the local history or from your repository.
A message definition file error is written to the task list
Procedure
- Scenario: An error is written to the task list indicating that the message definition file has been corrupted.
- Explanation: This error message appears when the base type of the complex type is itself, or a circular definition of two or more simple types. This type of recursion is not supported.
- Solution: Examine your code and ensure that the type of recursion described above does not occur.
Your physical format property values have reverted to defaults
Procedure
You are unable to enter text in the Message Definition editors
Procedure
- Scenario: You are unable to enter text in the Message Definition Overview editor, or change the text of an enumeration or pattern facet in the Message Definition Properties editor.
- Solution: The Message Definition editors are cell
editors, and to enable them you have to double-click the cell.
The first click selects the cell; the second click puts the cell into active state, allowing you to edit it.
Objects in your message definition file are not listed in alphabetic order
Procedure
Error messages are written to the task list after you have imported related XML Schema files
Procedure
A group contains two different elements with the same XML name in the same namespace
Procedure
- Scenario: A warning is written to the task list because a group contains two different elements that have the same XML element name, in the same namespace.
- Explanation: When a message that has an XML physical
format is validated, the validation includes a test to identify any
part of a message definition where the parser might not be able to
uniquely determine which element is represented by the XML name.
This test generates a warning when a group contains two different XML elements with the same element name in the same namespace, even in cases where the duplication is legitimate.
- Solution: Determine whether the duplication that is identified in the warning message is in fact a problem that needs to be corrected, or whether it has arisen because of two elements on opposite sides of a choice sharing the same XML name, in which case the duplication is legitimate because no ambiguity can occur.
You are unable to set up a message definition file to include a message definition file within another message definition file
Procedure
You want to make the Properties tab the default tab in the Message Definition editor
Procedure
Error message BIP5410 is issued because a union type cannot be resolved
Procedure
Error message BIP5395 is issued because an xsi:type attribute value does not correspond to a valid member type of the union
Procedure
Error message BIP5396 is issued because a data type does not correspond to any of the valid data types of the union
Procedure
A union type contains two or more simple types that are derived from the same fundamental type
Procedure
- Scenario: A warning is issued during logical validation indicating that a union type contains two or more simple types that are derived from the same fundamental type.
- Explanation: The integration node does not apply value constraints until the data is in the logical tree. Therefore, it is not possible to choose between two simple types that are derived from the same fundamental type but with different constraints. For example, the integration node cannot differentiate between a member type of integer with a range of 1-10 and another member type of integer with a range of 11-20, therefore it resolves the union to the first member type of integer.
- Solution: Ensure that the union type that is identified in the warning does not contain more than one simple type that is derived from the same fundamental type or ensure that the ordering of such member types is as desired.
A list type is based on a union that also contains a list type
Procedure
- Scenario: An error message is issued during logical validation, indicating that a list type is based on a union type that includes a list type as one of its member types.
- Explanation: Lists of lists are not legal. An item type of a list type cannot be a list type itself nor can it be derived at any level from another list type. Therefore, a list type cannot have an item type of a union type that includes a list type as one of its member types.
- Solution: Ensure that any union type specified as an item type for a list type does not include a list type as one of its member types.
A union type contains an enumeration or pattern facet
Procedure
- Scenario: An error message is raised during logical validation, indicating that a union type contains an enumeration or pattern facet that is not supported because enumeration and pattern facets must be specified directly on the member type.
- Explanation: The integration node cannot support the union type facets of pattern and enumeration applied directly to a restriction of a union type. It can support facets directly on the chosen member type only. The Message Definition editor provides support for these facets to enable the import of schemas using direct facets on a restriction of a union type but it issues a warning notifying that they will be ignored by the integration node.
- Solution: If you want to use the enumeration or pattern facets, specify them directly on the member type and not on the union type itself.
Error message BIP5505 is issued because input data is not valid for the data type
Procedure
A deprecation error is issued on an imported .mrp file
Procedure
- Scenario: You have imported an .mrp file, and get an error message indicating that complex elements or embedded simple types are deprecated.
- Explanation: Complex elements and embedded simple types have no exact equivalent in XML Schema. The closest equivalent to a complex type in XML Schema is to derive a complex type from a simple type. However, such a type is not allowed to contain elements; only attributes are allowed.
- Solution: If your complex type contains elements that cannot be modeled as attributes, set the Mixed content flag on the complex type. If you need to parse messages that contain mixed content, set the Mixed content flag on the parent complex type. The anonymous data that used to be modeled by the complex type or the embedded simple type, then appears as a self-defining node in the parsed message tree.
User trace detects an element length error
Procedure
MRM dateTime value has changed after it has been parsed
Procedure
- Scenario: You have defined an MRM dateTime element but the value created in the message tree is different from the value that you defined.
- Explanation: The parser uses lenient dateTime checking, converting out-of-band data values to the appropriate in-band value.
- Solution: See the information about lenient dateTime checking in Message Sets: DateTime as string data with particular reference to how years and fractional seconds are represented.