/// <summary>
        /// Verify the EntityExtractionResultType structure
        /// </summary>
        /// <param name="entityExtractionResult">An array of EntityExtractionResultType instances.</param>
        private void VerifyEntityExtractionResultType(EntityExtractionResultType entityExtractionResult)
        {
            if (entityExtractionResult.Addresses != null)
            {
                if (Common.IsRequirementEnabled(1749, this.Site))
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1749");

                    // Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1749
                    // The Addresses element is ArrayOfAddressEntitiesType type, if schema is validated and the element is not null
                    // This requirement can be verified.
                    Site.CaptureRequirement(
                        1749,
                        @"[In Appendix C: Product Behavior] Implementation does use the ArrayOfAddressEntitiesType complex type which represents an array of address entities. (Exchange 2013 and above follow this behavior.)
                            <xs:complexType name=""ArrayOfAddressEntitiesType"">
                              <xs:sequence>
                               <xs:element name=""AddressEntity"" type=""t:AddressEntityType"" 
                                    minOccurs=""0"" maxOccurs=""unbounded""/>
                              </xs:sequence>
                            </xs:complexType>");
                }

                Site.Assert.AreEqual<int>(
                    1,
                    entityExtractionResult.Addresses.Length,
                    string.Format(
                    "There should be one address information in the entity extraction result, actual {0}.",
                    entityExtractionResult.Addresses.Length));

                if (Common.IsRequirementEnabled(1753, this.Site))
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1753");

                    // The address element is AddressEntityType type, if schema is validated and the element is not null
                    // This requirement can be verified.
                    Site.CaptureRequirementIfIsNotNull(
                        entityExtractionResult.Addresses[0],
                        1753,
                        @"[In Appendix C: Product Behavior] Implementation does use the AddressEntityType complex type which extends the EntityType complex type, as specified by section 2.2.4.38. (Exchange 2013 and above follow this behavior.)
                        <xs:complexType name=""AddressEntityType"">
                          <xs:complexContent>
                            <xs:extension base=""t:EntityType"">
                              <xs:sequence>
                                <xs:element name=""Address"" type=""xs:string"" minOccurs=""0""/>
                              </xs:sequence>
                            </xs:extension>
                          </xs:complexContent>
                        </xs:complexType>. ");

                    this.VerifyEntityType(entityExtractionResult.Addresses[0]);
                }
            }

            if (entityExtractionResult.MeetingSuggestions != null)
            {
                if (Common.IsRequirementEnabled(1275, this.Site))
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1275");

                    // Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1275
                    // The MeetingSuggestions element is ArrayOfMeetingSuggestionsType type, if schema is validated and the element is not null
                    // This requirement can be verified.
                    Site.CaptureRequirement(
                        1275,
                        @"[In Appendix C: Product Behavior] Implementation does support the ArrayOfMeetingSuggestionsType complex type which specifies an array of meeting suggestions. (Exchange 2013 and above follow this behavior.)
                                <xs:complexType name=""ArrayOfMeetingSuggestionsType"">
                                <xs:sequence>
                                    <xs:element name=""MeetingSuggestion"" type=""t:MeetingSuggestionType"" maxOccurs=""unbounded"" />
                                </xs:sequence>
                                </xs:complexType>");
                }

                Site.Assert.AreEqual<int>(
                    1,
                    entityExtractionResult.MeetingSuggestions.Length,
                    string.Format(
                    "There should be one meeting suggestion information in the entity extraction result, actual {0}.",
                    entityExtractionResult.MeetingSuggestions.Length));

                if (Common.IsRequirementEnabled(1276, this.Site))
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1276");

                    // The meetingSuggestion element is MeetingSuggestionType type, if schema is validated and the element is not null
                    // This requirement can be verified.
                    Site.CaptureRequirementIfIsNotNull(
                        entityExtractionResult.MeetingSuggestions[0],
                        1276,
                        @"[In Appendix C: Product Behavior] Implementation does support the MeetingSuggestionType complex type which specifies a meeting suggestion. (Exchange 2013 and above follow this behavior.)
                                <xs:complexType name=""MeetingSuggestionType"">
                                    <xs:sequence>
                                      <xs:element name=""Attendees"" type=""t:ArrayOfEmailUsersType"" minOccurs=""0"" maxOccurs=""1"" />
                                      <xs:element name=""Location"" type=""xs:string"" minOccurs=""0"" />
                                      <xs:element name=""Subject"" type=""xs:string"" minOccurs=""0"" />
                                      <xs:element name=""MeetingString"" type=""xs:string"" minOccurs=""0"" />
                                      <xs:element name=""StartTime"" type=""xs:dateTime"" minOccurs=""0"" />
                                      <xs:element name=""EndTime"" type=""xs:dateTime"" minOccurs=""0"" />
                                    </xs:sequence>
                                  </xs:complexType>");

                    this.VerifyEntityType(entityExtractionResult.MeetingSuggestions[0]);
                }
            }

            if (entityExtractionResult.TaskSuggestions != null)
            {
                if (Common.IsRequirementEnabled(1277, this.Site))
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1277");

                    // Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1277
                    // The TaskSuggestions element is ArrayOfTaskSuggestionsType type, if schema is validated and the element is not null
                    // This requirement can be verified.
                    Site.CaptureRequirement(
                        1277,
                        @"[In Appendix C: Product Behavior] Implementation does support the ArrayOfTaskSuggestionsType complex type which specifies an array of task suggestions.(Exchange 2013 and above follow this behavior.)
                            <xs:complexType name=""ArrayOfTaskSuggestionsType"">
                                <xs:sequence>
                                    <xs:element name=""TaskSuggestion"" type=""t:TaskSuggestionType"" maxOccurs=""unbounded"" />
                                </xs:sequence>
                                </xs:complexType>");
                }

                Site.Assert.AreEqual<int>(
                    1,
                    entityExtractionResult.TaskSuggestions.Length,
                    string.Format(
                    "There should be one task suggestion information in the entity extraction result, actual {0}.",
                    entityExtractionResult.TaskSuggestions.Length));

                this.VerifyTaskSuggestionType(entityExtractionResult.TaskSuggestions[0]);
            }

            if (entityExtractionResult.EmailAddresses != null)
            {
                if (Common.IsRequirementEnabled(1756, this.Site))
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1756");

                    // Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1756
                    // The EmailAddresses element is ArrayOfEmailAddressEntitiesType type, if schema is validated and the element is not null
                    // This requirement can be verified.
                    Site.CaptureRequirement(
                        1756,
                        @"[In Appendix C: Product Behavior] Implementation does use the ArrayOfEmailAddressEntitiesType complex type which specifies an array of email addresses. (Exchange 2013 and above follow this behavior.)
                            <xs:complexType name=""ArrayOfEmailAddressEntitiesType"">
                              <xs:sequence>
                                <xs:element name=""EmailAddressEntity"" type=""t:EmailAddressEntityType""
                                    minOccurs=""0"" maxOccurs=""unbounded""/>
                              </xs:sequence>
                            /xs:complexType>");
                }

                foreach (EmailAddressEntityType emailAddress in entityExtractionResult.EmailAddresses)
                {
                    if (Common.IsRequirementEnabled(1760, this.Site))
                    {
                        // Add the debug information
                        Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1760");

                        // The emailAddress element is EmailAddressEntityType type, if schema is validated and the element is not null
                        // This requirement can be verified.
                        Site.CaptureRequirementIfIsNotNull(
                            emailAddress,
                            1760,
                            @"[In Appendix C: Product Behavior] Implementation does use this type [EmailAddressEntityType Complex Type] which extends the EntityType complex type, as specified in section 2.2.4.38. (Exchange 2013 and above follow this behavior.)
                                <xs:complexType name=""EmailAddressEntityType"">
                                    <xs:complexContent>
                                      <xs:extension base=""t:EntityType"">
                                        <xs:sequence>
                                          <xs:element name=""EmailAddress"" type=""xs:string"" minOccurs=""0""/>
                                        </xs:sequence>
                                      </xs:extension>
                                    </xs:complexContent>");

                        this.VerifyEntityType(emailAddress);
                    }
                }
            }

            if (entityExtractionResult.Contacts != null)
            {
                if (Common.IsRequirementEnabled(1278, this.Site))
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1278");

                    // Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1278
                    // The Contacts element is ArrayOfContactsType type, if schema is validated and the element is not null
                    // This requirement can be verified.
                    Site.CaptureRequirement(
                        1278,
                        @"[In Appendix C: Product Behavior] Implementation does support the ArrayOfContactsType complex type which specifies an array of contacts. (Exchange 2013 and above follow this behavior.)
                            <xs:complexType name=""ArrayOfContactsType"">
                                <xs:sequence>
                                  <xs:element name=""Contact"" type=""t:ContactType"" minOccurs=""0"" maxOccurs=""unbounded""/>
                                </xs:sequence>
                              </xs:complexType>");
                }

                Site.Assert.AreEqual<int>(
                    1,
                    entityExtractionResult.Contacts.Length,
                    string.Format(
                    "There should be one contact information in the entity extraction result, actual {0}.",
                    entityExtractionResult.Contacts.Length));

                this.VerifyContactType(entityExtractionResult.Contacts[0]);
            }

            if (entityExtractionResult.Urls != null)
            {
                if (Common.IsRequirementEnabled(1772, this.Site))
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1772");

                    // Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1772
                    // The Urls element is ArrayOfUrlEntitiesType type, if schema is validated and the element is not null
                    // This requirement can be verified.
                    Site.CaptureRequirement(
                        1772,
                        @"[In Appendix C: Product Behavior] Implementation does use the ArrayOfUrlEntitiesType complex type which specifies an array of URL entities. (Exchange 2013 and above follow this behavior.)
                            <xs:complexType name=""ArrayOfUrlEntitiesType"">
                              <xs:sequence>
                                <xs:element name=""UrlEntity"" type=""t:UrlEntityType"" minOccurs=""0"" maxOccurs=""unbounded""/>
                              </xs:sequence>
                            </xs:complexType>");
                }

                Site.Assert.AreEqual<int>(
                    1,
                    entityExtractionResult.Urls.Length,
                    string.Format(
                    "There should be one url information in the entity extraction result, actual {0}.",
                    entityExtractionResult.Urls.Length));

                if (Common.IsRequirementEnabled(1776, this.Site))
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1776");

                    // The url element is UrlEntityType type, if schema is validated and the element is not null
                    // This requirement can be verified.
                    Site.CaptureRequirementIfIsNotNull(
                        entityExtractionResult.Urls[0],
                        1776,
                        @"[In Appendix C: Product Behavior] Implementation does use this type [UrlEntityType Complex Type] which extends the EntityType complex type, as specified in section 2.2.4.38. (Exchange 2013 and above follow this behavior.)
                                <xs:complexType name=""UrlEntityType"">
                                  <xs:complexContent>
                                    <xs:extension base=""t:EntityType"">
                                      <xs:sequence>
                                        <xs:element name=""Url"" type=""xs:string"" minOccurs=""0""/>
                                      </xs:sequence>
                                    </xs:extension>
                                  </xs:complexContent>
                                </xs:complexType>");

                    this.VerifyEntityType(entityExtractionResult.Urls[0]);
                }
            }

            if (entityExtractionResult.PhoneNumbers != null)
            {
                if (Common.IsRequirementEnabled(1763, this.Site))
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1763");

                    // Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1763
                    // The PhoneNumbers element is ArrayOfPhoneEntitiesType type, if schema is validated and the element is not null
                    // This requirement can be verified.
                    Site.CaptureRequirement(
                        1763,
                        @"[In Appendix C: Product Behavior] Implementation does use the ArrayOfPhoneEntitiesType complex type which specifies an array of phone entities. (Exchange 2013 and above follow this behavior.)
                            <xs:complexType name=""ArrayOfPhoneEntitiesType"">
                              <xs:sequence>
                                <xs:element name=""Phone"" type=""t:PhoneEntityType"" minOccurs=""0"" maxOccurs=""unbounded""/>
                              </xs:sequence>
                            </xs:complexType>");
                }

                Site.Assert.AreEqual<int>(
                    1,
                    entityExtractionResult.PhoneNumbers.Length,
                    string.Format(
                    "There should be one phone number information in the entity extraction result, actual {0}.",
                    entityExtractionResult.PhoneNumbers.Length));

                if (Common.IsRequirementEnabled(1767, this.Site))
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1767");

                    // The phoneNumber element is PhoneEntityType type, if schema is validated and the element is not null
                    // This requirement can be verified.
                    Site.CaptureRequirementIfIsNotNull(
                                    entityExtractionResult.PhoneNumbers[0],
                                    1767,
                                    @"[In Appendix C: Product Behavior] Implementation does use this type [PhoneEntityType Complex Type] which extends the EntityType complex type, as specified in section 2.2.4.38. (Exchange 2013 and above follow this behavior.)
                                            <xs:complexType name=""PhoneEntityType"">
                                                <xs:complexContent>
                                                <xs:extension base=""t:EntityType"">
                                                    <xs:sequence>
                                                      <xs:element name=""OriginalPhoneString type=""xs:string"" minOccurs=""0""/>
                                                      <xs:element name=""PhoneString"" type=""xs:string"" minOccurs=""0""/>
                                                      <xs:element name=""Type"" type=""xs:string"" minOccurs=""0""/>
                                                    </xs:sequence>
                                                  </xs:extension>
                                                </xs:complexContent>
                                            </xs:complexType>");

                    this.VerifyEntityType(entityExtractionResult.PhoneNumbers[0]);
                }
            }
        }