Open OleksandrKvl opened 2 years ago
You didn't specify which version of SBE you are referencing. In the latest schema for SBE v2.0 RC3, blockLength
and length
are of the same type, nonNegativeInteger
.
Oh, I checked only the Markdown version, here it still says unsingedInt
. In the XSD it's nonNegativeInteger
as you said. What do you think about offset type?
The XSD is normative. The documentation needs to be made consistent.
Oh, I checked only the Markdown version, here it still says
unsingedInt
. In the XSD it'snonNegativeInteger
as you said. What do you think about offset type?
@OleksandrKvl, thanks for catching that issue!
Just want to clarify that it's not only about documentation, the main points are that 1. offset
should have the same type as length
and 2. probably it's better not to use unbounded types anywhere in specification. For example, in Python3 there's no limit for integers which is not true for C++, can I be sure that SBE implementations in both of them are compatible?
Currently,
offset
andmessage.blockLength
are specified asunsignedInt
(32-bit) whiletype.length
isnonNegativeInteger
which is by spec "unbounded" which I guess can be treated as "at least 64-bit". In this way offset is unable to represent the full range of potential sizes. I think:unsignedLong
(64-bit) to make it more specific rather than vaguenonNegativeInteger
which doesn't impose any limitation.