SeqNum data type and EndSeqNo

Imported from previous forum

Hello,

Isn’t EndSeqNum=0 technically in violation of the spec?

According to the FIX 4.4 specification:

SeqNum int field representing a message sequence number. Value must be positive.

…but tag 16 is of type SeqNum and we are asked to allow:

16 EndSeqNo SeqNum
Message sequence number of last message in range to be resent. If request is for a single message BeginSeqNo (7) = EndSeqNo. If request is for all messages subsequent to a particular message, EndSeqNo = “0” (representing infinity).

So we are told to use zero for a tag that must be positive. Are implementations supposed to special-case this? My parser would automatically reject (as in send a session-level reject) for a non-garbled message that has tags of numeric type out of range.