VSDX File Documentation
Summary
A VSDX file is a Microsoft Visio diagram — a flowchart, network map or floor plan — in the ZIP-and-XML format Visio has used since 2013. It is an Open Packaging Conventions package, the same container as DOCX and XLSX. The extension is .vsdx and the MIME type is application/vnd.ms-visio.drawing. You do not need Visio to view it: the free draw.io (diagrams.net) imports VSDX in a browser and LibreOffice Draw opens it with partial fidelity. Export to PDF or PNG to share.
Technical details
| Feature | Value |
|---|---|
| Full name | Microsoft Visio Drawing (2013+) |
| File extension | .vsdx (macro-enabled: .vsdm) |
| MIME type | application/vnd.ms-visio.drawing |
| Format type | Diagram (ZIP-based OPC XML package) |
| Container / base format | ZIP archive (Open Packaging Conventions) |
| Developer | Microsoft |
| Introduced | 2013 (Visio 2013, replacing binary VSD) |
| Specification | [MS-VSDX] (Microsoft Open Specifications) |
| Open standard | Partial (published spec, Microsoft-owned) |
| Magic number | 50 4B 03 04 ("PK", ZIP local file header) |
| Byte order | ZIP fields little-endian; XML is text |
| Identifying parts | [Content_Types].xml, visio/document.xml |
| Page markup | visio/pages/page1.xml, one per page |
| Stencil shapes | visio/masters/ (reusable masters) |
| Native application | Microsoft Visio (Windows desktop) |
| Free openers | draw.io / diagrams.net, LibreOffice Draw |
| Related extensions | .vsd, .vsdm, .vstx, .vssx, .vdx |
| Specification URL | [MS-VSDX] |
What is a VSDX file?
VSDX is the drawing format of Microsoft Visio, introduced with Visio 2013 to replace the old binary VSD. Visio is Microsoft's diagramming tool for flowcharts, organisation charts, network and architecture diagrams, floor plans, UML and engineering schematics. A .vsdx file stores one such diagram: its pages, the shapes on them and the reusable stencil shapes ("masters") they are based on.
Technically a VSDX file is a ZIP archive built on Microsoft's Open Packaging Conventions (OPC), the same container that DOCX and XLSX use. Inside, XML parts describe the diagram as vector shapes with geometry, connections and metadata, so it scales cleanly and stays editable. The MIME type is application/vnd.ms-visio.drawing, and Microsoft documents the layout publicly in the [MS-VSDX] specification. Because the container is an open, inspectable ZIP, third-party tools such as draw.io and LibreOffice can read VSDX without Visio.
The OPC package: parts, relationships and content types
Open Packaging Conventions is a convention layered on top of ZIP. A VSDX unzips to a set of parts (the individual files) plus two kinds of bookkeeping. [Content_Types].xml at the package root maps file extensions and specific parts to MIME content types, so a reader knows that page1.xml is a Visio page and not arbitrary XML. Alongside each folder, a _rels directory holds .rels files that record relationships: typed links from one part to another (a document to its pages, a page to an embedded image). Navigation is by relationship ID, never by hard-coded path, which lets Visio rename or relocate parts safely.
my-diagram.vsdx (a ZIP archive)
├─ [Content_Types].xml content-type map for every part
├─ _rels/.rels package-level relationships (entry point)
├─ docProps/ title, author, dates
└─ visio/
├─ document.xml document settings + list of pages
├─ _rels/document.xml.rels links document.xml to its pages/masters
├─ pages/
│ ├─ pages.xml the page collection
│ └─ page1.xml one diagram page: shapes, text, connects
├─ masters/ reusable stencil shape definitions
└─ media/ embedded raster images
A parser starts at _rels/.rels, follows the relationship to visio/document.xml, then follows that part's relationships to the pages and masters. This indirection is why the same package model serves Word, Excel and Visio: only the part contents differ, not the packaging rules.
The parts under the visio/ folder
| Part | What it holds |
|---|---|
visio/document.xml | Document-level settings and the page list |
visio/pages/pages.xml | The collection of pages and their properties |
visio/pages/page1.xml | One page: its shapes, text and connections |
visio/masters/masters.xml | Index of master (stencil) shapes |
visio/masters/master1.xml | A single reusable master shape definition |
visio/media/ | Embedded images placed on the diagram |
visio/windows.xml | View state (open windows, active page) |
docProps/core.xml | Title, author, created and modified dates |
The heart of the file is the per-page XML. Each page is stored separately, so a large diagram splits cleanly and an application can load pages on demand.
Shapes, the ShapeSheet cell model and geometry
Inside a page, every object is a <Shape> element, and each shape's behaviour is expressed through Visio's ShapeSheet model: a set of named <Cell> elements holding values or formulas, much like cells in a spreadsheet. Position and size are cells such as PinX, PinY, Width and Height (in inches internally). The outline is a <Section> named Geometry whose rows are drawing operations.
<Shape ID="1" Type="Shape" Master="2">
<Cell N="PinX" V="4.25"/>
<Cell N="PinY" V="7.5"/>
<Cell N="Width" V="1.5"/>
<Cell N="Height" V="0.75"/>
<Section N="Geometry" IX="0">
<Row T="MoveTo"><Cell N="X" V="0"/><Cell N="Y" V="0"/></Row>
<Row T="LineTo"><Cell N="X" V="1.5"/><Cell N="Y" V="0"/></Row>
</Section>
<Text>Process step</Text>
</Shape>
The Master attribute is the key to Visio's efficiency: instead of repeating a shape's full definition, a placed shape references a master under visio/masters/ and overrides only the cells it changes (its position, its label). That is exactly how a stencil works — drag the same "server" or "decision" master onto a page fifty times and the file stores one definition plus fifty light-weight instances.
Connectors and the Connects graph
A diagram is more than loose shapes; the lines that join them carry meaning. Visio stores connectors as ordinary shapes, then records how they attach in a <Connects> section on the page. Each <Connect> entry names the connecting shape, the shape it glues to, and the specific connection point, so a flowchart's logic survives as structured data rather than as coincidentally overlapping lines.
<Connects>
<Connect FromSheet="5" FromCell="BeginX" ToSheet="1" ToCell="PinX"/>
<Connect FromSheet="5" FromCell="EndX" ToSheet="3" ToCell="PinX"/>
</Connects>
This graph is what lets a diagram reflow: move a connected box and the connector follows, because the relationship, not just the pixel path, is stored. It is also the part most likely to shift when a third-party tool imports a VSDX, since faithfully reproducing Visio's glue and routing rules is the hard part of interoperability.
VSDX against VSD and the file-type variants
The predecessor VSD was a binary Compound File Binary blob (the same OLE2 container used by legacy DOC and XLS), opaque and hard for non-Microsoft tools to read. VSDX's move to open ZIP-and-XML is precisely why free viewers became practical. Around VSDX sits a family that shares the packaging and differs by role: VSDM is a macro-enabled drawing, VSTX is a template, VSSX is a stencil of masters, and the pre-2013 .vsd, .vdx and .vsx are the old binary and XML-drawing formats. Only the plain VSDX and macro-enabled VSDM are drawings you normally receive.
Frequently asked questions
Can draw.io really open a Visio VSDX?
Yes. Because VSDX is an open ZIP-and-XML package, draw.io (diagrams.net) reads the visio/ parts and rebuilds the diagram. Open app.diagrams.net, choose "Open Existing Diagram" and select the file. Complex stencils and connectors can shift, but the diagram imports and stays editable, for free.
Why does LibreOffice sometimes render a VSDX imperfectly?
LibreOffice Draw reads the shape geometry and text well, but reproducing every Visio ShapeSheet formula, master and connector-routing rule is difficult. Custom stencils and glued connectors are where fidelity slips. For viewing this is usually fine; for editing, draw.io tends to be closer.
References
- Microsoft — [MS-VSDX] Visio Drawing File Format specification
- draw.io — importing and exporting VSDX files
- Microsoft — Visio for the web / Visio Viewer
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.