Ochrestack

Xsdtrail for XSD and WSDL

Large XSDs split across multiple files in the same folder? Open a Design tab that shows them as one diagram, then double-click any box to land on its source line. Free for one file; pay once for all of them.

Xsdtrail's Design tab on UBL-Invoice-2.1.xsd in IntelliJ IDEA: the file box, its three imports with the files they resolved to (UBL-CommonAggregateComponents, UBL-CommonBasicComponents and UBL-CommonExtensionComponents), and Invoice unfolded through a sequence into ext:UBLExtensions, cbc:UBLVersionID, cbc:CustomizationID, cbc:ProfileID and more, each marked [0..1] and labelled 'in UBL-CommonBasicComponents-2.1.xsd' or the extension file. Under it: '14 files, 2843 components, built in 967 ms' and the Text and Design tabs

Above: the OASIS UBL 2.1 Invoice schema, unmodified, in a sample integration project. One Design tab reads it and the 13 files behind it: 14 files, 2,843 components, and every box from another file names that file. Tap any image for the full IDE window, Project view included.

Free for any single XSD or WSDL file, with no time limit. $12 once for multi-file schemas and the full WSDL operation view: personal or commercial, every update included, nothing to renew. 30-day trial.

Get it on JetBrains Marketplace

Not on JetBrains Marketplace yet, so it cannot be installed or tried today. The listing goes to JetBrains for review next; this button links to it once JetBrains has approved it, and the free tier and the 30-day trial start from there. For a note when it is live, email [email protected].

For IntelliJ IDEA 2025.1 or later, and other JetBrains IDEs on the 2025.1 platform or later that include XML support. Sold and billed by JetBrains Marketplace as a perpetual licence. No network calls, no telemetry. Install steps · Quick start

For SOAP contracts

Open a WSDL and its Design tab lists each service, its ports with their addresses, each binding with SOAP 1.1 or 1.2 and the document or rpc style, and the operations. That much is free, so you can see your own contract's shape before you pay. With a licence, each operation unfolds to its input, output and fault messages, their parts, and the XSD fields behind them, from schemas inline in the WSDL or imported from the folder. A missing message, part element or binding is a red box that says what is missing.

The Design tab of checkVatService.wsdl: binding checkVatBinding, SOAP 1.1 · document; operation checkVat unfolded to input (message impl:checkVatRequest) and output (message impl:checkVatResponse), each to part parameters and its element, checkVat with countryCode and vatNumber, checkVatResponse with countryCode, vatNumber, requestDate, valid, and name and address marked [0..1]; operation checkVatApprox below, folded
With a licence: the EU's VIES checkVatService.wsdl from the binding (SOAP 1.1, document style) to the operation, its input and output messages, their parts, and the XSD fields behind them. Tap for the full window.
The same WSDL without a licence: service checkVatService (1 port), port checkVatPort with its address http://ec.europa.eu/taxation_customs/vies/services/checkVatService and binding impl:checkVatBinding, binding checkVatBinding (SOAP 1.1 · document), and the operations checkVat and checkVatApprox, each grey with a lock and 'Locked: needs a licence'
Free, on the same WSDL: service, port with its address, binding, and the operation names. Each operation's messages are what the licence adds. Tap for the full window, with the line under the diagram.

Watch it work

The demo, 44 s, captions only, no sound: IntelliJ IDEA Community 2025.1.7, recorded at 60 fps on the same invoice-gateway project as the images below (OASIS UBL 2.1 and the EU VIES WSDL, unmodified). Every shot but the last shows the licensed features, recorded with Xsdtrail 1.0.1 (the licensed view is the same in 1.0.2); the last, re-recorded with 1.0.2, shows the free tier. The status line's first-open times (1,036 ms and 522 ms) are those of our test machine. The multi-file moment as a looping GIF (0.3 MB).
Looping clip from the demo: Invoice unfolds in the Design tab and every box is labelled with the UBL common-component file that declares it; a double-click on cac:AccountingSupplierParty opens UBL-CommonAggregateComponents-2.1.xsd at its declaration, line 27
The multi-file moment from the demo, looping: types from other files in place, then a double-click to the declaration in its own file.
Where it matters. A schema spread over many files in one folder, seen as one model, each box labelled with the file that declares it. Imports with only a namespace, matched to the file that declares that namespace. A WSDL opened down to the XSD elements of each operation. And a Design tab on any file whose root is a schema or a WSDL, whatever its extension, with your file type settings left alone.
Where you may not need it. JetBrains IDEs already navigate XSD references from the source: Ctrl+Click on a type or a schemaLocation opens the declaration, and the Structure tool window lists a file's top-level declarations. For a small single-file schema, that and the free single-file tiers of other XSD diagram plugins already work. In our tests the IDE's Ctrl+Click also follows namespace-only imports to schema files in the project. What Xsdtrail adds is the whole content model of a multi-file schema or a WSDL in one diagram, labelled by file. It reads schemas; it does not edit them from the diagram, generate sample XML or export images in version one. We say this before you pay.

What it does

Free, for any single file, with no time limit

With a licence ($12 once)

Without a licence, boxes from other files show a lock, their file name and "Locked: needs a licence", and a WSDL's operations are shown by name and locked. Nothing pops up. A line under the diagram offers Get a licence or trial, which opens the IDE's own licence dialog when you click it; in IntelliJ IDEA Community the licence dialog is also under Help > Manage Licenses…. When a trial or licence starts, open Design tabs unlock by themselves. The free features never lock.

In the IDE, for real

Every image on this page is a capture of a real IntelliJ IDEA Community 2025.1.7 window with Xsdtrail installed, not a mockup: the free-tier images with 1.0.2, the others with 1.0.1, whose licensed view is the same. The project is a small invoice gateway that keeps two real, public contracts: the OASIS UBL 2.1 schemas and the European Commission's VIES VAT-check WSDL, both unmodified. Tap an image for the full window.

The whole IntelliJ IDEA window: the project invoice-gateway, the Project view listing the UBL 2.1 document schemas under contracts/ubl-2.1/xsd/maindoc with UBL-Invoice-2.1.xsd selected, and its Design tab beside it; the breadcrumb reads invoice-gateway, contracts, ubl-2.1, xsd, maindoc, UBL-Invoice-2.1.xsd
The whole window behind the image at the top: the project, with UBL-Invoice-2.1.xsd selected in the Project view and open in the Design tab.
Part of the Design tab at real size: cac:Contact, cac:Person and cac:AgentParty, each labelled 'in UBL-CommonAggregateComponents-2.1.xsd'. cac:AgentParty, of type PartyType, carries the ↻ mark, and its tooltip reads 'Recursive: this type already appears above, so it is not unfolded again', followed by the UBL definition: 'A party who acts as an agent for this party', cardinality 0..1, example Customs Broker
Hover a box for its xs:documentation (real size). Inside the supplier's cac:Party, cac:AgentParty is a PartyType again, so it is marked ↻ instead of unfolding forever.
The same Invoice schema without a licence: Invoice and its sequence from the open file are shown normally; ext:UBLExtensions, cbc:UBLVersionID, cbc:CustomizationID, cbc:ProfileID and cbc:ProfileExecutionID are grey with a lock, their file name and 'Locked: needs a licence'. Under the diagram: '14 files, 2843 components, built in 606 ms' and 'Free: this file and WSDL operation names. Other files and operation messages are locked. Get a licence or trial'
The free tier on the same schema: the open file works; boxes from the other files show where they come from and stay locked, with one line under the diagram and its Get a licence or trial link. No popup.
The editor split in two on UBL-CommonAggregateComponents-2.1.xsd. Left, the Text tab at line 22479 with the caret on xsd:element ref="cac:PostalAddress" minOccurs="0" maxOccurs="1". Right, the Design tab with the cac:PostalAddress [0..1] : AddressType box selected among cac:PartyName, cac:Language and cac:PhysicalLocation. Status line: 5 files, 2673 components, built in 91 ms
Source and diagram side by side (Window > Editor Tabs > Split Right): the caret is on the cac:PostalAddress reference inside PartyType at line 22,479, and the diagram has selected that box.

Measured

Time to the first level, from the plugin's own benchmark: headless, IntelliJ IDEA 2025.1.7, 4 CPUs, five cold runs each.

Schema setFilesComponentsFirst level
OASIS UBL 2.1 Invoice142,843198–247 ms
Generated multi-file set265,001228–305 ms
A 5.6 MB WSDL (one file, over the IDE's code-insight limit)11,546397–521 ms

In a running IDE the first open is slower: about half a second for UBL Invoice, and 1 to 1.6 s while the IDE is still indexing after startup. In the images on this page, taken shortly after the sandbox IDE started, the status line reads 967 ms (licensed) and 606 ms (free tier). The status line shows the build time on your machine.

Also checked: all 65 UBL 2.1 document schemas (the first 3,000 boxes of each), and a 7-file SOAP WSDL with 491 operations. None showed an unresolved reference.

Questions

Is it really pay once?

Yes. It is a JetBrains Marketplace perpetual licence: $12 once, every update included, nothing renews. The single-file features are free with no time limit.

Is there a separate commercial price?

No. Personal and commercial use cost the same $12.

Will it change how my .xsd or .wsdl files open?

No. Xsdtrail registers no file type. The Design tab is offered from the file's content, so .xsd, .XSD, .wsdl and schemas saved as .xml all get it, and your file type settings stay as they were.

Does it download schemas or send anything anywhere?

No. It makes no network calls and collects no data. A schemaLocation that is a URL is reported as not downloaded; the import is then matched by namespace if a local file declares it.

My import has only a namespace. Will it find the file?

With a licence, yes, if a schema with that targetNamespace is in the same folder, the project, or the project's libraries. If two files declare the same component, the import box warns and names the file it used. While the IDE is still indexing, it says so and rebuilds when indexing ends.

What happens when the trial ends?

Boxes from other files and each WSDL operation's messages show as locked, with the file named and a one-line note. Nothing pops up, and the single-file Design tab keeps working, a WSDL's services, bindings and operation names included.

Can I edit the schema, generate sample XML or export the diagram?

Not in version one. Xsdtrail reads schemas; you edit them in the Text tab and the diagram refreshes. If you need export, tell us at [email protected].

Details

Documentation

The one-page Xsdtrail quick start covers the Design tab, navigation, multi-file schemas, the WSDL view and the licence.

Install

  1. Once the listing is live: in the IDE, open Settings > Plugins > Marketplace, search for Xsdtrail and click Install. Restart the IDE if asked.
  2. Open any file whose root element is xs:schema or wsdl:definitions. Two tabs appear under the editor: Text and Design.
  3. Click Design. Click ⊕ on a box, or press Space or →, to unfold it. Double-click a box to open its source line.
  4. To unlock multi-file schemas and each WSDL operation's messages, click Get a licence or trial under the Design tab's status line, which opens the IDE's own licence dialog (in IntelliJ IDEA Community, also Help > Manage Licenses…).

Known limits

UBL is an OASIS standard; the UBL 2.1 schemas shown are © OASIS Open 2013, shown unmodified. The VIES checkVatService.wsdl is published by the European Commission. Xsdtrail is not affiliated with or endorsed by OASIS, the European Commission or JetBrains.