public void XElementAnnotationTestOutOfLineValueAnnotationWithAnnotationModel()
        {
            var model = XElementAnnotationModelBuilder.OutOfLineValueAnnotationWithAnnotationModel();

            var errors = new EdmLibTestErrors();

            this.VerifySemanticValidation(model, EdmVersion.Latest, errors);

            var vocabularyAnnotation = model.VocabularyAnnotations.Where(n => n.Term.TermKind.Equals(EdmTermKind.Value));

            Assert.AreEqual(1, vocabularyAnnotation.Count(), "Invalid vocabulary count.");

            var actualAnnotationValue = (model.GetAnnotationValue(vocabularyAnnotation.Single(), "http://foo", "Annotation") as EdmStringConstant).Value;

            XElement expectedAnnotationValue =
                new XElement("{http://foo}Annotation", "1");

            Assert.IsTrue(expectedAnnotationValue.ToString().Equals(actualAnnotationValue), "XElement annotation are not the same.");

            var serializedModel = ModelBuilderHelpers.ReplaceCsdlNamespacesForEdmVersion(this.GetSerializerResult(model).Select(n => XElement.Parse(n)).ToArray(), EdmVersion.V40).ToList();

            new ConstructiveApiCsdlXElementComparer().Compare(XElementAnnotationModelBuilder.OutOfLineValueAnnotationWithAnnotationCsdl().ToList(), serializedModel);
        }