2.3.3.2 CellSubResponseDataOptionalAttributes

The CellSubResponseDataOptionalAttributes attribute group contains attributes that MUST be used only in SubResponseData elements associated with a SubResponse for a cell subrequest. The attributes in CellSubResponseDataOptionalAttributes provide the data that was requested as part of the cell subrequest. The definition of the CellSubResponseDataOptionalAttributes attribute group is as follows:

 <xs:attributeGroup name="CellSubResponseDataOptionalAttributes">
     <xs:attribute name="Etag" type="xs:string" use="optional" />
     <xs:attribute name="CreateTime" type="xs:integer" use="optional"/>
     <xs:attribute name="LastModifiedTime" type="xs:integer" use="optional"/>
     <xs:attribute name="ModifiedBy" type="tns:UserNameType" use="optional" />
     <xs:attribute name="CoalesceErrorMessage" type="xs:string" use="optional"/>
     <xs:attribute name="CoalesceHResult" type="xs:integer" use="optional"/>
     <xs:attribute name="ContainsHotboxData" type="tns:TRUEFALSE" use="optional"/>
     <xs:attribute name="HaveOnlyDemotionChanges" type="tns:TRUEFALSE" use="optional"/>
 </xs:attributeGroup>

Etag: A unique string value that is updated every time the file contents are changed. The unique string gets updated irrespective of which protocol client updated the file contents in a coauthorable file. Etag defines the file version and allows for the protocol client to know the version of the file.

When the Etag attribute is specified as part of a response to a cell subrequest, the Etag attribute value specifies the updated file version. The Etag attribute value for that file MUST be used by the protocol client in the next cell subrequest that it sends for that file. The Etag attribute value is an opaque string value to the protocol server. The protocol server processes this value as specified in [RFC2616] section 14.19.

CreateTime: An integer that specifies the time, which is expressed as a tick count, at which the file was created. A single tick represents 100 nanoseconds, or one ten-millionth of a second. CreateTime specifies the number of 100-nanosecond intervals that have elapsed since 00:00:00 on January 1, 1601, which MUST be Coordinated Universal Time (UTC). The protocol server MUST return and specify the CreateTime attribute in the cell SubResponseData element only when the GetFileProps attribute is set to true in the cell subrequest.

LastModifiedTime: An integer that specifies the last modified time, which is expressed as a tick count. A single tick represents 100 nanoseconds, or one ten-millionth of a second. LastModifiedTime specifies the number of 100-nanosecond intervals that have elapsed since 00:00:00 on January 1, 1601, which MUST be Coordinated Universal Time (UTC). The protocol server MUST return and specify the LastModifiedTime attribute in the cell SubResponseData element only when the GetFileProps attribute is set to true in the cell subrequest.

ModifiedBy: A UserNameType that specifies the user name for the protocol client that last modified the file. UserNameType is defined in section 2.3.2.7.

CoalesceErrorMessage: A string that specifies a description of the error that occurs when the protocol server fully saves all changes with the underlying file provider. CoalesceErrorMessage also specifies information about what was expected by the protocol server. CoalesceErrorMessage MUST be sent only when the CoalesceHResult attribute is set to an integer value which is not equal to 0.<40>

CoalesceHResult: An integer that MUST be 0 except when the protocol server attempts to fully save all the changes in the underlying store. It specifies the HRESULT when the protocol server attempts to fully save all the changes in the underlying store. CoalesceHResult MUST be set to a value ranging from -2,147,483,648 through 2,147,483,647. A CoalesceHResult value of 0 indicates success. If CoalesceHResult is not equal to 0, it indicates an exception or failure condition that occurred.<41>

ContainsHotboxData: A TRUEFALSE value that specifies whether the binary contents sent as part of the cell subresponse contains data that is not fully persisted to the underlying store. If ContainsHotboxData is set to false, all binary contents sent as part of the cell subresponse contains data that is persisted to the underlying store. If ContainsHotboxData is set to true, the binary contents sent as part of the cell subresponse are not persisted to the underlying store.

HaveOnlyDemotionChanges: A TRUEFALSE value that specifies whether the returned binary content has only protocol server property demotion changes compared to the protocol client’s last synced status. Property demotion changes are repeatable, automated changes made by a protocol server following a protocol client's Put Changes request as specified in [MS-FSSHTTPB] section 2.2.2.1.4. If the value is set to False, the returned binary content contains changes other than property demotion changes.