31

I would like to write an XML Schema in Visual Studio Code and then some XML that is valid against that schema but surprisingly there does not seem to be a facility to do this either built-in or via an extension. Similar questions have been asked in the past (here and here) but I wanted to renew this question and also ask if no-one is aware of an existing extension, is this something one can request of the vscode github team themselves and if so, how?

Luke Girvin
  • 13,221
  • 9
  • 64
  • 84
Dan Maharry
  • 1,499
  • 2
  • 19
  • 35

5 Answers5

31

The XML extension, by Red Hat, is now available in the Marketplace. It supports, among other things, XSD and DTD validation, autocompletion from XSD, documentation on hover, tag autoclose, formatting...

It's based on LemMinX, a Java-based language server.

As of vscode-xml 0.15.0, Java is no longer required to run it (a native binary will be downloaded on install).

Fred Bricon
  • 5,369
  • 1
  • 31
  • 45
  • 3
    This is a good extension but also requires java to be on the path or in VSC preferences, e.g. `"java.home": "C:/Program Files/Java/jdk1.8.0_191"` (N.B. no /bin) – Slate Nov 07 '18 at 16:55
  • An awesome extension, best of all it allows XML to XSD association in a variety of ways, and provides a simple example package. Got it working in 5 minutes, which is more than I can say for the other products I have used in this space over the years. – MattG Nov 20 '18 at 21:57
  • Most of the frameworks use urn paths for xsd files, is there any way to map the files in vs code? – Vivek Kumar Jun 25 '19 at 12:46
  • 1
    @VivekKumar I suppose you wish to use XML catalogs. If it that you can write your own XML catalog and register it with xml.catalogs preferences https://github.com/redhat-developer/vscode-xml/wiki/Preferences#catalogs – Angelo Jul 01 '19 at 14:55
  • @kjhf `"xml.java.home": "C:\\Program Files\\Java\\jdk1.8.0_161"` – JustWe Jul 17 '19 at 08:38
4

I just found Xml Complete by rogalmic that doesn't need Java to be installed.

Features:

  • Basic linter (XML + partial XSD validation)
  • Fast autocomplete based on XSD (utilizes comments from XSD)
  • Formatting XML (selected range or full document)
  • Auto-closing and auto-rename for currently edited tag (works only for single tag in given line)

All you need to do is to specify the xsd in the root of your xml.

Here's an example:

<?xml version="1.0"?>
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:schemaLocation="MyPathToMyXsd/MySchema.xsd">
<!-- Xml content -->
</Root>
Élodie
  • 41
  • 3
1

You can install XML Language Support extension which support Structural XML validation and XML Schema Definition (XSD) validation, by launching VS Code and then Quick Open (Ctrl+P), paste the following command

ext install IBM.XMLLanguageSupport

, and press enter. After installation press Reload button to activate . You may need to install Language Support for Java(TM) if you have not before by using the following command in VS Code extensions

ext install redhat.java

Noha Salah
  • 493
  • 1
  • 7
  • 11
0

There actually is a XML/XSD editor and validator for VSCode here.

Alhough it requires java (docs state java 8) to be installed.

pe3k
  • 796
  • 5
  • 15
-3

Not built-in, but there are a few extensions in the marketplace:

Matt Bierner
  • 58,117
  • 21
  • 175
  • 206