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

FeatureValue
Full nameMicrosoft Visio Drawing (2013+)
File extension.vsdx (macro-enabled: .vsdm)
MIME typeapplication/vnd.ms-visio.drawing
Format typeDiagram (ZIP-based OPC XML package)
Container / base formatZIP archive (Open Packaging Conventions)
DeveloperMicrosoft
Introduced2013 (Visio 2013, replacing binary VSD)
Specification[MS-VSDX] (Microsoft Open Specifications)
Open standardPartial (published spec, Microsoft-owned)
Magic number50 4B 03 04 ("PK", ZIP local file header)
Byte orderZIP fields little-endian; XML is text
Identifying parts[Content_Types].xml, visio/document.xml
Page markupvisio/pages/page1.xml, one per page
Stencil shapesvisio/masters/ (reusable masters)
Native applicationMicrosoft Visio (Windows desktop)
Free openersdraw.io / diagrams.net, LibreOffice Draw
Related extensions.vsd, .vsdm, .vstx, .vssx, .vdx
Specification URL[MS-VSDX]
File signature (magic bytes)
50 4B 03 04

Offset 0: VSDX is a ZIP archive built on the Open Packaging Conventions, so it starts with the ZIP local-file-header signature 50 4B 03 04 ("PK"), exactly like DOCX and XLSX. The first bytes therefore cannot distinguish it from any other Office ZIP. A VSDX is recognised by its internal parts: [Content_Types].xml declares Visio content types, and the payload lives under a visio/ folder (visio/document.xml, visio/pages/, visio/masters/). Unzip the file to confirm.

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

PartWhat it holds
visio/document.xmlDocument-level settings and the page list
visio/pages/pages.xmlThe collection of pages and their properties
visio/pages/page1.xmlOne page: its shapes, text and connections
visio/masters/masters.xmlIndex of master (stencil) shapes
visio/masters/master1.xmlA single reusable master shape definition
visio/media/Embedded images placed on the diagram
visio/windows.xmlView state (open windows, active page)
docProps/core.xmlTitle, 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