public IEnumerable <ITagSpan <IErrorTag> > GetTags(NormalizedSnapshotSpanCollection spans)
        {
            var    span = spans[0];
            var    line = span.Start.GetContainingLine();
            var    classificationSpans = _classifier.GetClassificationSpans(line.Extent);
            string property            = null;

            ClearError(line);

            foreach (var cspan in classificationSpans)
            {
                if (cspan.ClassificationType.IsOfType(PredefinedClassificationTypeNames.SymbolDefinition))
                {
                    property = cspan.Span.GetText();
                }
                else if (cspan.ClassificationType.IsOfType(PredefinedClassificationTypeNames.Literal))
                {
                    if (string.IsNullOrEmpty(property))
                    {
                        continue;
                    }

                    CompletionItem item = CompletionItem.GetCompletionItem(property);
                    if (item == null)
                    {
                        continue;
                    }

                    string value = cspan.Span.GetText();
                    int    intValue;

                    if (!item.Values.Contains(value) && !int.TryParse(value, out intValue))
                    {
                        yield return(CreateError(line, cspan, "\"" + value + "\" is not a valid value for the '" + property + "' property"));
                    }
                }
            }
        }