Skip to content
MusicXML Tools

MusicXML Validator

Validate a MusicXML file against the official MusicXML 4.0 schema, with the line of every error, and check its structure. Drop in a .xml or .musicxml file, or a compressed .mxl.

Runs in your browser: your file never leaves your computer.

Drop your MusicXML file here, or click to choose one

Supported: .xml, .musicxml, .mxl

No file at hand? (Clementi, Sonatina op. 36 no. 1).

What the validator checks

First, whether the file is well-formed XML at all. Then every element and attribute against the official MusicXML 4.0 schema (XSD) of the W3C Music Notation Community Group: whether each is allowed where it stands, in the right order, with values the schema accepts. Every error comes with its line in the file. The check runs with libxml2, the XML library behind xmllint, compiled to run in your browser.

The validator also checks what every score needs: a score-partwise or score-timewise root, a part list, at least one part, measures in every part, notes and attributes. A file that passes is one that notation software can start reading.

On request it also lists what the score contains: articulations, dynamics, slurs and ties, ornaments, tempo and time signatures, voices and, for vocal parts, lyrics. None of those is required by MusicXML.

Questions

Is this full validation against the MusicXML schema?

Yes: every file is checked against the complete MusicXML 4.0 schema. Files written for earlier versions are checked against 4.0 too. Almost everything valid in MusicXML 3.1 is valid in 4.0; one exception the 4.0 change notes name is an empty multiple-rest element, which 4.0 no longer allows.

My file has schema errors. Will it still open?

Usually: most notation programs read past a few errors. But a program may then drop or misread the element in question, so the list shows what to fix, starting with the line of each error.

Is my file uploaded?

No. The checks run in your browser tab, and the file never leaves your computer.

The file is valid, but it looks wrong in my program. Why?

Valid MusicXML can still carry export mistakes: a piano split into two unnamed parts, the title written as an ordinary text, lyrics without hyphens. Open it in the Sheet Music Viewer to see how it renders.

Built on libxml2 (xmllint-wasm 5.3.0) (MIT), MusicXML 4.0 schema, W3C Music Notation Community Group (W3C Community Final Specification Agreement).

Want this in your own product?

  • In your app

    Our tools run on OpenSheetMusicDisplay, the open-source MusicXML renderer (BSD-3-Clause) for the browser and Node.js.

  • On WordPress

    OSMD for WordPress puts sheet music on your site; the premium add-on adds playback, transposition and downloads.

  • Built for you

    We build MusicXML and audio software for publishers and music education platforms. PhonicScore

Runs in your browser

Sheet Music Viewer

View and play

Open a MusicXML or MXL file and read the score in your browser, rendered by OpenSheetMusicDisplay. Nothing is uploaded.

Reads MusicXML, MXL

Runs in your browser

MusicXML Player

View and play

Play a MusicXML or MXL file in your browser and follow the cursor through the score, with tempo, metronome and instrument volumes. Nothing is uploaded.

Reads MusicXML, MXL · Writes Audio

Runs in your browser

MusicXML File Converter

Convert

Convert compressed MusicXML (.mxl) to plain MusicXML and back, in your browser. Nothing is uploaded.

Reads MusicXML, MXL · Writes MusicXML, MXL

Runs in your browser

MusicXML and MXL to PDF Converter

Print and export

Turn a MusicXML or MXL file into a PDF of printable sheet music, on A4 or Letter pages, with the parts you choose. Nothing is uploaded.

Reads MusicXML, MXL · Writes PDF

Runs in your browser

MusicXML and MXL to MP3 Converter

Convert

Turn a MusicXML or MXL file into an MP3 or WAV recording of the score, made in your browser. Nothing is uploaded.

Reads MusicXML, MXL · Writes Audio

Runs in your browser

MusicXML and MXL to MIDI Converter

Convert

Turn a MusicXML or MXL file into a MIDI file, one track per part, with repeats and tempo as you choose. Nothing is uploaded.

Reads MusicXML, MXL · Writes MIDI