Dear All,
I currently use SNACC 1.3 to build a number of message definitions,
and wanted to know if it was possible to add extra items to the end of
a type declaration that can be ignored by the other end.
I have one system that I want to update regularly by adding new
elements but the other end that my system connects to I want to stay
as per its original declaration (the new elements would not
necessarily be used by the other system but perhaps by another system
that I have to connect to. I was under the impression that if I sent a
message with types declared and one of those types had an extra
optional element declared at the end, that the receiving system would
ignore it and carry on processing the rest of the message (similar to
Extensibility Implied in a way). As an example please see below;
MsgOne {
HeaderInfo HeaderInfoType,
TestAttribs TestAttribsType OPTIONAL,
TestParams TestParamsType OPTIONAL
}
HeaderInfo {
HeaderID HeaderIDType,
HeaderName HeaderNameType
}
TestAttribs {
Test1 Test1Type OPTIONAL,
Test2 Test2Type OPTIONAL,
Test3 Test3Type OPTIONAL,
newElement NewElementType OPTIONAL (New element added)
}
TestParams {
TestP1 TestP1Type OPTIONAL,
TestP2 TestP2Type OPTIONAL,
TestP3 TestP3Type OPTIONAL,
}
In the above example I have declared a new optional type called
newElement. In the other system this new element is not declared so it
will not know about. What I wanted to do was send a message with the
new element and hope that the other end would ignore it. The ASN.1
code would suggest that when it sees this element it would just drop
out of the bottom of the code in a 'when others' declaration and carry
on processing the rest of the message, but all I get is an error
stating that there was a length discrepancy. The message would be
something like (in a simple format);
MsgOne
HeaderID 1
HeaderName Test
Test1 1
Test2 2
Test3 3
newElement new
TestP1 P1
TestP2 P2
TestP3 P3
Thanks,
Simon Kearn
(+44 (0)23 9244 3188
*simon.kearn@xxxxxxxx