/// <summary> /// Gets the autocomplete data for the specified attribute value. /// </summary> public async Task <CompletionContext> GetAttributeValueCompletionDataAsync(IAsyncCompletionSource source, XmlElementPath path, string name, CancellationToken token) { await EnsureLoadedAsync(); var builder = new XmlSchemaCompletionBuilder(source, path.Namespaces); var element = FindElement(path); if (element != null) { GetAttributeValueCompletionData(builder, element, name); } return(new CompletionContext(builder.GetItems())); }
public async Task <CompletionContext> GetAttributeValueCompletionDataAsync(IAsyncCompletionSource source, string tagName, string name, CancellationToken token) { await EnsureLoadedAsync(); var list = new XmlSchemaCompletionBuilder(source); var element = FindElement(tagName); if (element != null) { GetAttributeValueCompletionData(list, element, name); } return(new CompletionContext(list.GetItems())); }
/// <summary> /// Gets the child element completion data for the xml element that exists /// at the end of the specified path. /// </summary> public async Task <CompletionContext> GetChildElementCompletionDataAsync(IAsyncCompletionSource source, XmlElementPath path, CancellationToken token) { await EnsureLoadedAsync(); var builder = new XmlSchemaCompletionBuilder(source, path.Namespaces); var element = FindElement(path); if (element != null) { var last = path.Elements.LastOrDefault(); GetChildElementCompletionData(builder, element, last != null ? last.Prefix : ""); } return(new CompletionContext(builder.GetItems())); }
/// <summary> /// Gets the possible root elements for an xml document using this schema. /// </summary> public async Task <CompletionContext> GetElementCompletionDataAsync(IAsyncCompletionSource source, string namespacePrefix, CancellationToken token) { await EnsureLoadedAsync(); var builder = new XmlSchemaCompletionBuilder(source); foreach (XmlSchemaElement element in schema.Elements.Values) { if (element.Name != null) { builder.AddElement(element.Name, namespacePrefix, element.Annotation); } else { // Do not add reference element. } } return(new CompletionContext(builder.GetItems())); }