XML Language Support by Red Hat
This VS Code extension provides support for creating and editing XML documents, based on the LemMinX XML Language Server.
|enabled by default
||requires additional configuration to enable
See the changelog for the latest release.
You might also find useful information in the Online XML Documentation
or you can read this documentation inside vscode with the command
Open XML Document available with
For running the binary version:
- Windows, macOS, or Linux, on a x86_64 CPU
- We do not make a binary specific for Apple ARM (Apple Silicon), but the x86_64 binary seems to work through the Rosetta 2 translation layer.
- We do not currently support running on Linux installations without
- Java is not required for this version
- The binary is automatically downloaded by vscode-xml if it is needed, with no additional action required on the part of the user.
For running the Java version (required if you want to run extensions to the base XML features):
- Java JDK (or JRE) 8 or more recent
- Ensure Java path is set in either:
xml.java.home in VSCode preferences
java.home in VSCode preferences
- Environment variable
- Note: The path should end at the parent folder that contains the
bin exists at
- Note: If the path is not set, the extension will attempt to find the path to the JDK or JRE.
See how to set java home for more information how this extension searches for Java.
Supported VS Code settings
The following settings are supported:
xml.java.home: Specifies the folder path to the JDK (8 or more recent) used to launch the XML Language Server if the Java server is being run. If not set, falls back to either the
java.home preference or the
JDK_HOME environment variables.
xml.server.vmargs: Specifies extra VM arguments used to launch the XML Language Server.
-Xmx1G -XX:+UseG1GC -XX:+UseStringDeduplication to bypass class verification, increase the heap size to 1GB and enable String deduplication with the G1 Garbage collector.
xml.server.workDir: Set a custom folder path for cached XML Schemas. An absolute path is expected, although the
~ prefix (for the user home directory) is supported. Default is
xml.server.preferBinary: If this setting is enabled, a binary version of the server will be launched even if Java is installed.
xml.server.binary.path: Specify the path of a custom binary version of the XML server to use. A binary will be downloaded if this is not set.
xml.server.binary.args: Command line arguments to supply to the binary server when the binary server is being used. Takes into effect after relaunching VSCode. Please refer to this website for the available options. For example, you can increase the maximum memory that the server can use to 1 GB by adding
xml.server.silenceExtensionWarning: If this setting is enabled, do not warn about launching the binary server when there are extensions to the XML language server installed.
xml.server.binary.trustedHashes: List of the SHA256 hashes of trusted copies of the lemminx (XML language server) binary.
xml.trace.server: Trace the communication between VS Code and the XML language server in the Output view. Default is
xml.logs.client: Enable/disable logging to the Output view. Default is
xml.catalogs: Register XML catalog files.
xml.downloadExternalResources.enabled: Download external resources like referenced DTD, XSD. Default is
xml.fileAssociations: Allows XML schemas/ DTD to be associated to file name patterns.
xml.foldings.includeClosingTagInFold: Minimize the closing tag after folding. Default is
xml.preferences.quoteStyle: Preferred quote style to use for completion:
double quotes. Default is
xml.autoCloseTags.enabled : Enable/disable autoclosing of XML tags. Default is
IMPORTANT: The following settings must be turned of for this to work:
xml.codeLens.enabled: Enable/disable XML CodeLens. Default is
xml.preferences.showSchemaDocumentationType: Specifies the source of the XML schema documentation displayed on hover and completion. Default is
xml.validation.enabled: Enable/disable all validation. Default is
xml.validation.namespaces.enabled: Enable/disable namespaces validation. Default is
always. Ignored if
xml.validation.enabled is set to
xml.validation.schema.enabled: Enable/disable schema based validation. Default is
always. Ignored if
xml.validation.enabled is set to
xml.validation.disallowDocTypeDecl: Enable/disable if a fatal error is thrown if the incoming document contains a DOCTYPE declaration. Default is
xml.validation.resolveExternalEntities: Enable/disable resolve of external entities. Default is
false. Disabled in untrusted workspace.
xml.validation.noGrammar: The message severity when a document has no associated grammar. Defaults to
xml.validation.filters: Allows XML validation filter to be associated to file name patterns.
xml.symbols.enabled: Enable/disable document symbols (Outline). Default is
xml.symbols.excluded: Disable document symbols (Outline) for the given file name patterns. Updating file name patterns does not automatically reload the Outline view for the relevant file(s). Each file must either be reopened or changed, in order to trigger an Outline view reload.
xml.symbols.maxItemsComputed: The maximum number of outline symbols and folding regions computed (limited for performance reasons). Default is
xml.symbols.showReferencedGrammars: Show referenced grammars in the Outline. Default is
xml.symbols.filters: Allows XML symbols filter to be associated to file name patterns.
files.trimTrailingWhitespace: Now affects XML formatting. Enable/disable trailing whitespace trimming when formatting an XML document. Default is
Formatting settings for a detailed list of the formatting settings.
With your approval, the vscode-xml extension collects anonymous usage data and sends it to Red Hat servers to help improve our products and services.
Read our privacy statement to learn more.
This extension respects the
redhat.telemetry.enabled setting, which you can learn more about at https://github.com/redhat-developer/vscode-redhat-telemetry#how-to-disable-telemetry-reporting
As a part of the release process, vscode-xml builds a binary version of the LemMinX XML Language Server.
The stable releases of the binary, which are used in the vscode-xml releases, are available at https://download.jboss.org/jbosstools/vscode/stable/lemminx-binary/.
The latest snapshot build of the binary, which tracks the HEAD of this repository, is available at https://download.jboss.org/jbosstools/vscode/snapshots/lemminx-binary/LATEST/.
Custom XML Extensions
The LemMinX - XML Language Server can be extended to support custom completion, hover, validation, rename, etc.
Please see the extensions documentation for more information.
This is an open source project open to anyone. Contributions are extremely welcome!
For information on getting started, refer to the CONTRIBUTING instructions.
Switch to Pre-Release Version to enjoy the latest changes.
EPL 2.0, See LICENSE file.