VSDX
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
Microsoft Visio VSDX.
At a glance
| Original creator | Microsoft |
| First published | 2013 |
| Purpose | The Visio drawing format since Visio 2013: pages, masters and shapes of a diagram as XML parts in a ZIP package. |
| Extensions | .vsdx |
| Poka parser | poka-vsdx |
| Viewer | poka-vector-viewer |
| Depth tier | Parser with a shared viewer (see Depth tiers) |
| Breadth tier | B3 Core (see Breadth tiers) |
How much Poka reads
B3 Core. Only the main content type or types are decoded (for example geometry but not materials, layers or annotations, or only one version family). The list of gaps is substantial.
Confidence: high (the reviewer read the code and a test that proves the claim). Basis: Reviewed 2026-10-16: parsers/poka-vsdx/src/lib.rs and geometry.rs, src/tests.rs and tests/samples.rs. The 9 corpus .vsdx files (libvisio, libvisio-ng and Apache POI) are asserted for shape accounting, no rectangle fallback, multi-page order, rotation, connectors and curve flattening. Covers Visio 2013+ VSDX page content: masters with cell-by-cell inheritance, geometry rows, placement, groups, connectors, multi-page tabs and the first line of shape text. All entities are drawn in one fixed blue, so appearance is not read.
What Poka does not read
- Line colour, weight, pattern and arrowheads
- Fill colours, patterns and gradients (shapes use one fixed fill)
- Shape text formatting (font, size, colour, alignment) and text beyond the first line; text placement is the shape centre
- Embedded images and OLE objects (Foreign shapes)
- Layers and layer visibility
- Shape Data (custom properties), hyperlinks and user-defined cells
- Themes and style sheets (shapes take no style inheritance)
- Background pages are dropped and page size, units and grid are not read
- Spline rows (SplineStart, SplineKnot) and InfiniteLine fall back to the bounding rectangle
- Stencil (.vssx, .vssm) files hold masters rather than pages, so would draw nothing; no corpus sample of any variant
- More than 32 pages or 40,000 shapes are left out; more than 20,000 shapes per page are dropped
- VSD binary and VDX XML older formats are not read
Background
Visio was first developed by Shapeware Corporation in 1992, renamed Visio Corporation in 1995 and bought by Microsoft in January 2000. Visio 2003 to 2010 used the binary VSD format, and Visio 2002 had added an XML format, VDX. VSDX, introduced with Visio 2013, became the default and covers what those formats did (Library of Congress). In a real drawing most shapes take their size and geometry from a master, so Poka loads the masters first and falls back to them cell by cell. Each page is drawn separately, in the order pages.xml lists them.
Versions
| Version | Identifier | Poka | Note |
|---|---|---|---|
| VSDX (Visio 2013 and later) | Read | ||
| VSD binary, VDX XML | Not read | Older Visio formats with other extensions; not claimed by poka-vsdx. |
Derived and related formats
- Stencil, template and macro-enabled variants (
.vssx, .vstx, .vsdm, .vssm, .vstm): Aliases of poka-vsdx in its plugin.json. No sample of any variant exists, and a stencil holds masters rather than pages, so it would draw nothing (unverified).
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- quick-xml (used; MIT; Rust)
- zip (used; MIT; Rust)
- libvisio (candidate; MPL-2.0; C++; https://github.com/LibreOffice/libvisio) — MPL-2.0 is file-level copyleft; wasm use needs a deny.toml exception
- vsdx (candidate; BSD-3-Clause; Python; https://github.com/dave-howard/vsdx)
- [MS-VSDX] Visio Graphics Service VSDX (candidate; public spec; spec; https://learn.microsoft.com/en-us/openspecs/sharepoint_protocols/ms-vsdx/)
Sources
- https://www.loc.gov/preservation/digital/formats/fdd/fdd000021.shtml
- parsers/poka-vsdx/src/lib.rs