# @codemirror/lang-xml [](https://www.npmjs.org/package/@codemirror/lang-xml) [ [**WEBSITE**](https://codemirror.net/) | [**ISSUES**](https://github.com/codemirror/dev/issues) | [**FORUM**](https://discuss.codemirror.net/c/next/) | [**CHANGELOG**](https://github.com/codemirror/lang-xml/blob/main/CHANGELOG.md) ] This package implements XML language support for the [CodeMirror](https://codemirror.net/) code editor. The [project page](https://codemirror.net/) has more information, a number of [examples](https://codemirror.net/examples/) and the [documentation](https://codemirror.net/docs/). This code is released under an [MIT license](https://github.com/codemirror/lang-xml/tree/main/LICENSE). We aim to be an inclusive, welcoming community. To make that explicit, we have a [code of conduct](http://contributor-covenant.org/version/1/1/0/) that applies to communication around the project. ## API Reference
xml(conf?: Object = {}) → LanguageSupportXML language support. Includes schema-based autocompletion when configured.
confelements?: readonly ElementSpec[]Provide a schema to create completions from.
attributes?: readonly AttrSpec[]Supporting attribute descriptions for the schema specified in
elements.
Determines whether autoCloseTags
is included in the support extensions. Defaults to true.
xmlLanguage: LRLanguageA language provider based on the Lezer XML parser, extended with highlighting and indentation information.
interface
ElementSpecDescribes an element in your XML document schema.
name: stringThe element name.
children?: readonly string[]Allowed children in this element. When not given, all elements are allowed inside it.
textContent?: readonly string[]When given, allows users to complete the given content strings as plain text when at the start of the element.
top?: booleanWhether this element may appear at the top of the document.
attributes?: readonly (string | AttrSpec)[]Allowed attributes in this element. Strings refer to attributes
specified in XMLConfig.attrs, but
you can also provide one-off attribute
specs. Attributes marked as
global are allowed in every
element, and don't have to be mentioned here.
completion?: Partial<Completion>Can be provided to add extra fields to the completion object created for this element.
interface
AttrSpecDescribes an attribute in your XML schema.
name: stringThe attribute name.
values?: readonly (string | Completion)[]Pre-defined values to complete for this attribute.
global?: booleanWhen true, this attribute can be added to all elements.
completion?: Partial<Completion>Provides extra fields to the completion object created for this element
completeFromSchema(eltSpecs: readonly ElementSpec[], attrSpecs: readonly AttrSpec[]) → CompletionSourceCreate a completion source for the given schema.
Extension that will automatically insert close tags when a > or
/ is typed.