/// <summary>
        /// Capture requirements related with SubResponseDataGenericType
        /// </summary>
        /// <param name="subResponseData">The SubResponseDataGenericType information</param>
        /// <param name="site">Instance of ITestSite</param>
        private static void ValidateSubResponseDataGenericType(SubResponseDataGenericType subResponseData, ITestSite site)
        {
            // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R230
            site.CaptureRequirement(
                     "MS-FSSHTTP",
                     230,
                     @"[In SubResponseDataGenericType][SubResponseDataGenericType schema is:]
                     <xs:complexType name=""SubResponseDataGenericType"" mixed=""true"">
                       <xs:all>
                          <xs:element ref=""i:Include"" minOccurs=""0"" maxOccurs=""1"" />
                       </xs:all>
                       <xs:attributeGroup ref=""tns:SubResponseDataOptionalAttributes"" />
                     </xs:complexType>");

            // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R543
            site.CaptureRequirement(
                     "MS-FSSHTTP",
                     543,
                     @"[In CellSubResponseDataType][CellSubResponseDataType schema is:]
                     <xs:complexType name=""CellSubResponseDataType"" mixed=""true"">
                        <xs:all>
                          <xs:element ref=""i:Include"" minOccurs=""0"" maxOccurs=""1"" />
                        </xs:all>
                        <xs:attributeGroup ref=""tns:CellSubResponseDataOptionalAttributes"" />
                        <xs:attribute name=""LockType"" type=""tns:LockTypes"" use=""optional"" />
                     </xs:complexType>");

            // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R544
            site.CaptureRequirement(
                     "MS-FSSHTTP",
                     544,
                     @"[In CellSubResponseDataType] Include: A complex type, as specified in [XOP10] section 2.1.");

            // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R231
            site.CaptureRequirement(
                     "MS-FSSHTTP",
                     231,
                     @"[In SubResponseDataGenericType] Include: A complex type, as specified in  [XOP10] section 2.1.");

            // Verify requirements related with SubResponseDataOptionalAttributes
            ValidateSubResponseDataOptionalAttributes(subResponseData, site);
        }
        /// <summary>
        /// Capture requirements related with SubResponseDataOptionalAttributes type
        /// </summary>
        /// <param name="subResponseData">The SubResponseData information</param>
        /// <param name="site">Instance of ITestSite</param>
        private static void ValidateSubResponseDataOptionalAttributes(SubResponseDataGenericType subResponseData, ITestSite site)
        {
            // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R458
            site.CaptureRequirement(
                     "MS-FSSHTTP",
                     458,
                     @"[In SubResponseDataOptionalAttributes] The definition of the SubResponseDataOptionalAttributes attribute group is as follows:
                     <xs:attributeGroup name=""SubResponseDataOptionalAttributes"">
                         <xs:attributeGroup ref=""tns:CellSubResponseDataOptionalAttributes""/>
                         <xs:attributeGroup ref=""tns:WhoAmISubResponseDataOptionalAttributes""/>
                         <xs:attribute name=""ServerTime"" type=""xs:positiveInteger"" use=""optional""/>
                         <xs:attribute name=""LockType"" type=""tns:LockTypes"" use=""optional"" />
                         <xs:attribute name=""CoauthStatus"" type=""tns:CoauthStatusType"" use=""optional""/>
                         <xs:attribute name=""TransitionID"" type=""tns:guid"" use=""optional""/>
                         <xs:attribute name=""ExclusiveLockReturnReason"" type=""tns:ExclusiveLockReturnReasonTypes"" use=""optional"" /> 
                     </xs:attributeGroup>");

            // Verify requirements related with CellSubResponseDataOptionalAttributes
            if (subResponseData.Etag != null
                || subResponseData.CreateTime != null
                || subResponseData.ModifiedBy != null
                || subResponseData.LastModifiedTime != null
                || subResponseData.CoalesceErrorMessage != null)
            {
                CellSubResponseDataType cellSubResponseData = new CellSubResponseDataType();
                cellSubResponseData.Etag = subResponseData.Etag;
                cellSubResponseData.CreateTime = subResponseData.CreateTime;
                cellSubResponseData.ModifiedBy = subResponseData.ModifiedBy;
                cellSubResponseData.LastModifiedTime = subResponseData.LastModifiedTime;
                cellSubResponseData.CoalesceErrorMessage = subResponseData.CoalesceErrorMessage;
                ValidateCellSubResponseDataOptionalAttributes(cellSubResponseData, site);
            }

            // Verify requirements related with WhoAmISubResponseDataOptionalAttributes
            if (subResponseData.UserName != null
                || subResponseData.UserEmailAddress != null
                || subResponseData.UserSIPAddress != null)
            {
                WhoAmISubResponseDataType whoamiSubResponseData = new WhoAmISubResponseDataType();
                whoamiSubResponseData.UserName = subResponseData.UserName;
                whoamiSubResponseData.UserEmailAddress = subResponseData.UserEmailAddress;
                whoamiSubResponseData.UserSIPAddress = subResponseData.UserSIPAddress;
                ValidateWhoAmISubResponseDataOptionalAttributes(whoamiSubResponseData, site);
            }

            if (subResponseData.ServerTime != null)
            {
                // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R463
                site.CaptureRequirement(
                         "MS-FSSHTTP",
                         463,
                         @"[In SubResponseDataOptionalAttributes] ServerTime: A positive integer that specifies the server time, which is expressed as a tick count.");
            }

            if (subResponseData.LockTypeSpecified)
            {
                // Verify LockTypes
                ValidateLockTypes(site);
            }

            if (subResponseData.CoauthStatusSpecified)
            {
                // Verify CoauthStatusType
                ValidateCoauthStatusType(site);
            }

            if (subResponseData.TransitionID != null)
            {
                // Verify GUID type
                ValidateGUID(site);
            }

            if (subResponseData.ExclusiveLockReturnReasonSpecified)
            {
                // Verify ExclusiveLockReturnReasonTypes
                ValidateExclusiveLockReturnReasonTypes(site);
            }
        }
        /// <summary>
        /// Capture requirements related with SubResponseData element
        /// </summary>
        /// <param name="subResponseData">The SubResponseData element</param>
        /// <param name="site">Instance of ITestSite</param>
        private static void ValidateSubResponseData(SubResponseDataGenericType subResponseData, ITestSite site)
        {
            // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R155
            site.CaptureRequirement(
                     "MS-FSSHTTP",
                     155,
                     @"[In SubResponseData][SubResponseData element schema is:]
                     <xs:element name=""SubResponseData"" minOccurs=""0"" maxOccurs=""1"" type=""tns:SubResponseDataGenericType"" />");

            // Verify requirements related with SubResponseDataGenericType
            ValidateSubResponseDataGenericType(subResponseData, site);
        }