# Is GXL file format supported?

**URL:** <https://forum.graphviz.org/t/is-gxl-file-format-supported/2692>\
**Category:** Uncategorized\
**Created:** [February 2, 2025, 4:05pm UTC](https://forum.graphviz.org/t/is-gxl-file-format-supported/2692 "2025-02-02T16:05:42Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![sprezzatura](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/sprezzatura/32/1815_2.png) [@sprezzatura](https://forum.graphviz.org/u/sprezzatura)\
**Post date:** [February 2, 2025, 4:05pm UTC](https://forum.graphviz.org/t/is-gxl-file-format-supported/2692/1 "2025-02-02T16:05:42Z")

</div>

The 2014 “_Using Graphviz as a Library_” by Emden R. Gansner mentions GXL (Graph eXchange Language) output format. But when I run DOT it rejects it as not one of the supported file formats.

Has it been dropped?

I also see PSD (Adobe Photoshop) is not in the list of formats. Pity.

---

<div class="post-metadata">

**Author:** ![magjac](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/magjac/32/16_2.png) [@magjac](https://forum.graphviz.org/u/magjac)\
**Post date:** [February 2, 2025, 5:46pm UTC](https://forum.graphviz.org/t/is-gxl-file-format-supported/2692/2 "2025-02-02T17:46:14Z")

</div>

I don’t know, but we have:

> **[gxl2gv](https://graphviz.org/docs/cli/gxl2gv/)**
>
> GXL-GV converters.

---

<div class="post-metadata">

**Author:** ![sprezzatura](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/sprezzatura/32/1815_2.png) [@sprezzatura](https://forum.graphviz.org/u/sprezzatura)\
**Post date:** [February 2, 2025, 5:52pm UTC](https://forum.graphviz.org/t/is-gxl-file-format-supported/2692/3 "2025-02-02T17:52:21Z")

</div>

Thanks. I would need it as a linkable library.

---

<div class="post-metadata">

**Author:** ![magjac](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/magjac/32/16_2.png) [@magjac](https://forum.graphviz.org/u/magjac)\
**Post date:** [February 2, 2025, 6:00pm UTC](https://forum.graphviz.org/t/is-gxl-file-format-supported/2692/4 "2025-02-02T18:00:52Z")

</div>

I think we never supported GXL as an output format. From the document:

_Various graph drawing and manipulation packages either use GXL or GML as their main graph language, or provide a translator. In this, Graphviz is no different. We supply the programs gv2gxl, gxl2gv,gv2gml and gml2gv for converting between the DOT and these formats. Thus, if an application is XMLbased, to use the Graphviz tools, **it needs to insert these filters as appropriate between its I/O and the Graphviz layout programs**._

(my highligthing)

---

<div class="post-metadata">

**Author:** ![sprezzatura](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/sprezzatura/32/1815_2.png) [@sprezzatura](https://forum.graphviz.org/u/sprezzatura)\
**Post date:** [February 2, 2025, 6:31pm UTC](https://forum.graphviz.org/t/is-gxl-file-format-supported/2692/5 "2025-02-02T18:31:48Z")

</div>

You’re right. I should have read the document more closely. It’s not a problem, I’m not familiar with any apps that use GXL, it just sounded like an industry standard. If necessary, I can probably crank out GXL directly from my app.

---

<div class="post-metadata">

**Author:** ![mark](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/mark/32/84_2.png) [@mark](https://forum.graphviz.org/u/mark)\
**Post date:** [February 2, 2025, 11:04pm UTC](https://forum.graphviz.org/t/is-gxl-file-format-supported/2692/6 "2025-02-02T23:04:42Z")

</div>

I think you’re the first person we’ve heard talk about GXL in a long time. I’m curious what your use case is?

---

<div class="post-metadata">

**Author:** ![mark](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/mark/32/84_2.png) [@mark](https://forum.graphviz.org/u/mark)\
**Post date:** [February 2, 2025, 11:05pm UTC](https://forum.graphviz.org/t/is-gxl-file-format-supported/2692/7 "2025-02-02T23:05:39Z")

</div>

Photoshop PSD is in the list of formats:  
[https://graphviz.org/docs/outputs/psd/](https://graphviz.org/docs/outputs/psd/)

---

<div class="post-metadata">

**Author:** ![sprezzatura](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/sprezzatura/32/1815_2.png) [@sprezzatura](https://forum.graphviz.org/u/sprezzatura)\
**Post date:** [February 2, 2025, 11:25pm UTC](https://forum.graphviz.org/t/is-gxl-file-format-supported/2692/8 "2025-02-02T23:25:36Z")

</div>

> [@mark](#):
>
> I think you’re the first person we’ve heard talk about GXL in a long time. I’m curious what your use case is?

I’m not familiar with GXL, but it sounded like a popular format, there’s a long list of impressive organizations involved. My program is used by others, and I want to provide them with maximum flexibility as to what they do with the output.

It’s funny, if you click on the link for the GXL website, it goes to a German university, and you need special authorization to access. Not encouraging.

---

<div class="post-metadata">

**Author:** ![sprezzatura](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/sprezzatura/32/1815_2.png) [@sprezzatura](https://forum.graphviz.org/u/sprezzatura)\
**Post date:** [February 2, 2025, 11:28pm UTC](https://forum.graphviz.org/t/is-gxl-file-format-supported/2692/9 "2025-02-02T23:28:12Z")

</div>

> [@mark](#):
>
> Photoshop PSD is in the list of formats:  
> [https://graphviz.org/docs/outputs/psd/](https://graphviz.org/docs/outputs/psd/)

If I do:

```auto
dot -Tpsd

```

I get an error:

`Format: "psd" not recognized. Use one of: bmp canon cmap cmapx cmapx_np dot dot_json emf emfplus eps fig gd gd2 gif gv imap imap_np ismap jpe jpeg jpg json json0 kitty kittyz metafile pdf pic plain plain-ext png pov ps ps2 svg svg_inline svgz tif tiff tk vrml vt vt-24bit vt-4up vt-6up vt-8up wbmp webp xdot xdot1.2 xdot1.4 xdot_json`

---

<div class="post-metadata">

**Author:** ![mark](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/mark/32/84_2.png) [@mark](https://forum.graphviz.org/u/mark)\
**Post date:** [February 3, 2025, 12:41am UTC](https://forum.graphviz.org/t/is-gxl-file-format-supported/2692/10 "2025-02-03T00:41:55Z")

</div>

Hmm, looking at the code, PSD might only be available on macOS via Quartz:

- [https://gitlab.com/graphviz/graphviz/-/blob/main/plugin/quartz/gvrender\_quartz.c?ref\_type=heads#L525](https://gitlab.com/graphviz/graphviz/-/blob/main/plugin/quartz/gvrender_quartz.c?ref_type=heads#L525)
- [https://gitlab.com/graphviz/graphviz/-/blob/main/plugin/quartz/gvdevice\_quartz.c?ref\_type=heads#L98](https://gitlab.com/graphviz/graphviz/-/blob/main/plugin/quartz/gvdevice_quartz.c?ref_type=heads#L98)

Quartz is apple’s graphics layer: [https://en.wikipedia.org/wiki/Quartz\_(graphics\_layer)](https://en.wikipedia.org/wiki/Quartz_(graphics_layer))

---

<div class="post-metadata">

**Author:** ![sprezzatura](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/sprezzatura/32/1815_2.png) [@sprezzatura](https://forum.graphviz.org/u/sprezzatura)\
**Post date:** [February 5, 2025, 7:55pm UTC](https://forum.graphviz.org/t/is-gxl-file-format-supported/2692/11 "2025-02-05T19:55:35Z")

</div>

OK, I understand. It’s not a big deal, it’s probably beyond the scope of most of my users. It would be cool, though.

I will be able to map Graphviz’ X/Y coordinates onto my internal structures, and use my own logic to preview the chart. That is really cool.

---

<div class="post-metadata">

**Author:** ![steveroush](https://avatars.discourse-cdn.com/v4/letter/s/a9adbd/32.png) [@steveroush](https://forum.graphviz.org/u/steveroush)\
**Post date:** [February 5, 2025, 10:56pm UTC](https://forum.graphviz.org/t/is-gxl-file-format-supported/2692/12 "2025-02-05T22:56:35Z")

</div>

- **GXL** seems to be one of several (dead) graphics “standards” that were created back when **SGML** and **HTML** were new and shiny; **pdf** was locked-up tight; and **SVG** was a standard that had no useful implementations
- **PSD** (photoshop) seems to be a multi-layer, _raster_ (bitmapped) format (I prefer vector file formats like **SVG** )
- **gimp** and **imagemagick** seem to be able to convert other formats to **PSD**
  - not sure if this can be done at library level
  - not sure if **PSD** layers can be supported
  - note that Graphviz _does_ support layers at a high level (see [FAQ | Graphviz](https://www.graphviz.org/faq/#FaqOverlays))

Driving Graphviz from another system:  
**Graphviz** can explicitly position nodes, edges, and labels based on **pos** input values (see [FAQ | Graphviz](https://www.graphviz.org/faq/#FaqDotWithCoords))

- one example is this radial layout engine [A radial Graphviz engine (pre-processor)](https://forum.graphviz.org/t/a-radial-graphviz-engine-pre-processor/1271) that uses Graphviz as a parser and back-end
- there are many others

---

<div class="post-metadata">

**Author:** ![sprezzatura](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/sprezzatura/32/1815_2.png) [@sprezzatura](https://forum.graphviz.org/u/sprezzatura)\
**Post date:** [February 6, 2025, 2:25pm UTC](https://forum.graphviz.org/t/is-gxl-file-format-supported/2692/13 "2025-02-06T14:25:28Z")

</div>

I thought PSD was the native Adobe Photoshop project file format, containing all the information to edit a drawing. This would enable a user to output a graph with Graphviz, then further modify it or incorporate other elements with Photoshop.

[Adobe PSD files](https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/#50577409_pgfId-1056424)

---

<div class="post-metadata">

**Author:** ![steveroush](https://avatars.discourse-cdn.com/v4/letter/s/a9adbd/32.png) [@steveroush](https://forum.graphviz.org/u/steveroush)\
**Post date:** [February 6, 2025, 3:59pm UTC](https://forum.graphviz.org/t/is-gxl-file-format-supported/2692/14 "2025-02-06T15:59:28Z")

</div>

[note: I am not an expert regarding Photoshop or PSD or PSB files]  
I think we are pretty much in agreement:

- **PSD** is an Adobe/Photoshop file format
- **PSD** is bitmapped/raster - up to 30,000x30,000 bits ([https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/](https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/))
- **PSD** does support layers (separable subsets of the image) ([Adobe Photoshop File Formats Specification](https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/))
- **gimp** and **imagemagick** can convert other formats to **PSD** , probably with some layering capability ([Glossary](https://docs.gimp.org/2.2/en/glossary.html#glossary-p) & [Saving layered psd file - Legacy ImageMagick Discussions Archive](https://imagemagick.org/discourse-server/viewtopic.php?t=35722))
- Certain editing (e.g. re-contouring / moving an edge or stretching a node) will probably not be easy with Photoshop or any bitmapped-based editor. ([https://helpx.adobe.com/photoshop/using/editing-paths.html#:~:text=Alt-drag%20(Windows)%20or%20Option-drag%20the%20paths.](https://helpx.adobe.com/photoshop/using/editing-paths.html#:~:text=Alt%2Ddrag%20(Windows)%20or%20Option%2Ddrag%20the%20paths.))
- A vector-based editor like **Inkscape** would probably be better for some of the difficult editing steps described above. ( **Inkscape** edits **svg** formatted files)
