2.5.125 FeatSmartTag

The FeatSmartTag structure specifies data for a Shared Feature of type ISFFACTOID as described in SharedFeatureType.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

hashValue

cSmartTags

rgFactoid (variable)

...

hashValue (4 bytes): An unsigned integer that specifies a hash value for the string representation of the content of a cell. This hash value is used to detect cell changes with the purpose of validating, updating or removing the smart tags associated with the cell. If the string representation of the cell content is the empty string, hashValue MUST be 0; otherwise, hashValue MUST be computed using the following algorithm: 

 SET hashValue to zero
 FOR each byteValue (1-byte unsigned integer) in the input string 
     Bitwise shift hashValue to the left by 4 and add byteValue
     SET overflow (4-byte unsigned integer) to the bitwise AND of hashValue and 0xF0000000
     IF overflow is not zero THEN 
         SET the most significant 4 bits of hashValue to zero
         Bitwise shift overflow to the right by 24
         SET hashValue to XOR of hashValue and overflow
     END IF 
 END FOR 
 IF hashValue is zero 
     SET hashValue to 1
 END IF

cSmartTags (1 byte): An unsigned integer that specifies the number of items in the rgFactoid array.

rgFactoid (variable): An array of FactoidData. Each element specifies data for a smart tag.