/// <summary>
        /// Capture requirements related to GetVersions sub response.
        /// </summary>
        /// <param name="getVersionsSubResponse">Containing the getVersionsSubResponse information.</param>
        /// <param name="site">An object provides logging, assertions, and SUT adapters for test code onto its execution context.</param>
        public static void ValidateGetVersionsSubResponse(GetVersionsSubResponseType getVersionsSubResponse, ITestSite site)
        {
            ValidateSubResponseType(getVersionsSubResponse as SubResponseType, site);

            // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R4694
            // if can launch this method, the schema matches
            site.CaptureRequirementIfAreEqual<Type>(
                     typeof(GetVersionsSubResponseType),
                     getVersionsSubResponse.GetType(),
                     "MS-FSSHTTP",
                     4695,
                     @"[In SubResponseElementGenericType] Depending on the Type attribute specified in the SubRequest element, the SubResponseElementGenericType MUST take one of the forms: GetVersionsSubResponseType.");

            // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R1816
            // if can launch this method, the GetVersionsSubResponseType schema matches.
            site.CaptureRequirement(
                     "MS-FSSHTTP",
                     1816,
                     @"[In GetVersionsSubResponseType][The schema of GetVersionsSubResponseType is] <xs:complexType name=""GetVersionsSubResponseType"">
                       <xs:complexContent>
                         <xs:extension base=""tns:SubResponseType"">
                           <xs:sequence minOccurs=""0"" maxOccurs=""1"">
                              <xs:element ref=""tns:GetVersionsResponse""/>
                           </xs:sequence>
                         </xs:extension>
                       </xs:complexContent>
                     </xs:complexType>");

            // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R2020
            // if can launch this method, the GetVersionsSubResponseType schema matches.
            site.CaptureRequirementIfAreEqual<Type>(
                     typeof(GetVersionsSubResponseType),
                     getVersionsSubResponse.GetType(),
                     "MS-FSSHTTP",
                     2020,
                     @"[In GetVersions Subrequest][The protocol client sends a GetVersions SubRequest message, which is of type GetVersionsSubRequestType] The protocol server responds with a GetVersions SubResponse message, which is of type GetVersionsSubResponseType as specified in section 2.3.1.32.");

            // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R2026
            // if can launch this method, the GetVersionsSubResponseType schema matches.
            site.CaptureRequirement(
                     "MS-FSSHTTP",
                     2026,
                     @"[In GetVersions Subrequest] The Results element, as specified in [MS-VERSS] section 2.2.4.1, is a complex type that specifies information about the file's versions.");

            // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R2301
            // If isSchemaValid is true, the GetVersionsSubResponseType schema matches.
            site.CaptureRequirement(
                     "MS-FSSHTTP",
                     2301,
                     @"[In GetVersionsSubResponseType][In Results] The DeleteAllVersions, DeleteVersion, GetVersions, and RestoreVersion methods return the Results complex type.
                     <s:complexType name=""Results"">
                       <s:sequence>
                         <s:element name=""list"" maxOccurs=""1"" minOccurs=""1"">
                           <s:complexType>
                             <s:attribute name=""id"" type=""s:string"" use=""required"" />
                           </s:complexType>
                         </s:element>
                         <s:element name=""versioning"" maxOccurs=""1"" minOccurs=""1"">
                           <s:complexType>
                             <s:attribute name=""enabled"" type=""s:unsignedByte"" use=""required"" />
                           </s:complexType>
                         </s:element>
                         <s:element name=""settings"" maxOccurs=""1"" minOccurs=""1"">
                           <s:complexType>
                             <s:attribute name=""url"" type=""s:string"" use=""required"" />
                           </s:complexType>
                         </s:element>
                         <s:element name=""result"" maxOccurs=""unbounded"" minOccurs=""1"" type=""tns:VersionData""/>
                       </s:sequence>
                     </s:complexType>");

            // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R2303
            // Add the log information.
            site.Log.Add(LogEntryKind.Debug, "For requirement MS-FSSHTTP_R2303, the versioning.enabled MUST be '0' or '1', the versioning.enabled value is : {0}", getVersionsSubResponse.GetVersionsResponse.GetVersionsResult.results.versioning.enabled.ToString());

            // if can launch this method and the versioning.enabled schema matches and value must be 0 or 1.
            bool isVerifyR2303 = getVersionsSubResponse.GetVersionsResponse.GetVersionsResult.results.versioning.enabled == 0 || getVersionsSubResponse.GetVersionsResponse.GetVersionsResult.results.versioning.enabled == 1;
            site.CaptureRequirementIfIsTrue(
                     isVerifyR2303,
                     "MS-FSSHTTP",
                     2303,
                     @"[In GetVersionsSubResponseType][Results complex type] versioning.enabled: The value of this attribute [versioning.enabled] MUST be ""0"" or ""1"".");

            // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R2308
            // if can launch this method, the versioning.enabled schema matches.
            site.CaptureRequirement(
                     "MS-FSSHTTP",
                     2308,
                     @"[In GetVersionsSubResponseType][In VersionData] The VersionData complex type specifies the details about a single version of a file.
                     <s:complexType name=""VersionData"">
                       <s:attribute name=""version"" type=""s:string"" use=""required"" />
                       <s:attribute name=""url"" type=""s:string"" use=""required"" />
                       <s:attribute name=""created"" type=""s:string"" use=""required"" />
                       <s:attribute name=""createdRaw"" type=""s:string"" use=""required"" />  
                       <s:attribute name=""createdBy"" type=""s:string"" use=""required"" />
                       <s:attribute name=""createdByName"" type=""s:string"" use=""optional"" />
                       <s:attribute name=""size"" type=""s:unsignedLong"" use=""required"" />
                       <s:attribute name=""comments"" type=""s:string"" use=""required"" />
                     </s:complexType>");

            // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R3083
            // if can launch this method, the versioning.enabled schema matches.
            site.CaptureRequirement(
                     "MS-FSSHTTP",
                     3083,
                     @"[In GetVersionsResponse][The schema of GetVersionsResponse element is defined as:] 
                     <s:element name=""GetVersionsResponse"">
                       <s:complexType>
                         <s:sequence>
                           <s:element minOccurs=""1"" maxOccurs=""1"" name=""GetVersionsResult"">
                             <s:complexType>
                               <s:sequence>
                                 <s:element name=""results"" minOccurs=""1"" maxOccurs=""1"" type=""tns:Results"" />
                               </s:sequence>
                             </s:complexType>
                           </s:element>
                         </s:sequence>
                       </s:complexType>
                     </s:element>");

            // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R3084
            // if can launch this method, the versioning.enabled schema matches.
            site.CaptureRequirement(
                     "MS-FSSHTTP",
                     3084,
                     @"[In GetVersionsResponse] GetVersionsResult: An XML node that conforms to the structure specified in section 2.2.4.1. ");

            // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R2306
            // if can launch this method, the versioning.enabled schema matches.
            site.CaptureRequirement(
                     "MS-FSSHTTP",
                     2306,
                     @"[In GetVersionsSubResponseType][Results complex type] settings.url: Specifies the URL to the webpage of versioning-related settings for the document library in which the file resides. ");

            // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R60101
            // if can launch this method, the versioning.enabled schema matches.
            site.CaptureRequirement(
                     "MS-FSSHTTP",
                     60101,
                     @"[In GetVersionsSubResponseType][VersionData] Implementation does contain the version of the file, including the major version and minor version numbers connected by period, for example, ""1.0"". (Microsoft SharePoint Foundation 2010/Microsoft SharePoint Server 2010 and above follow this behavior.)");
        }