This web browser is not supported. Use Chrome, Edge, Safari, or Firefox for best results.

XPF Universal Crossword Puzzle Data Format

A proposed open, portable, extensible data format for crossword puzzles

This page is for programmers.

XPF Format Version 2.0

XPF has been simplified for this version. There are a few obscure capabilities that are no longer possible, but it's not clear that they've ever been used.

Here is the change list:

  • The top node is now <Crosswords> with one or more <Crossword> child node.
  • Crossword data has been reorganized in a more compact form that closely follows AcrossLiteToText
  • There is no longer a "Type" node. Type must be inferred from the title.
  • Colors of shaded squares is no longer supported.
  • Clues are no longer in CDATA sections

Sample XML

<?xml version="1.0" encoding="utf-8"?>
<!--Conforms to Universal Crossword Puzzle Format XPF 2.0. -->
<Crosswords Version="2.0">
  <Crossword>
    <Title>NY Times, Wed, Apr 01, 2020</Title>
    <Copyright>© 2020, The New York Times</Copyright>
    <Author>John Ficarra and Patrick Merrell / Will Shortz</Author>
    <CanonicalNames>
      <Name>John Ficarra</Name>
      <Name>Patrick Merrell</Name>
    </CanonicalNames>
    <Editor>Will Shortz</Editor>
    <Size>
      <Rows>15</Rows>
      <Cols>15</Cols>
    </Size>
    <Grid>
      <Row>CLAY.ITEM.SWEDE</Row>
      <Row>LOGO.CARA.WANED</Row>
      <Row>AREYOUKIDDINGME</Row>
      <Row>WIDOW.ENDUP.ION</Row>
      <Row>...SLIT..FERN..</Row>
      <Row>REB.INHALF.VENI</Row>
      <Row>ATLAST.MOE.IRES</Row>
      <Row>WHOTHEHELLKNOWS</Row>
      <Row>ENOS.NON.BOGOTA</Row>
      <Row>RODE.TUSCAN.MOD</Row>
      <Row>..SARI..AGIN...</Row>
      <Row>BAT.HOPON.CABLE</Row>
      <Row>IHAVENTGOTACLUE</Row>
      <Row>GEIST.ARLO.HILL</Row>
      <Row>AMNOT.SEAN.OPUS</Row>
    </Grid>
    <Across>
      <Clue Num="1" Ans="CLAY">French Open court material</Clue>
      <Clue Num="5" Ans="ITEM">One thing ... or a twosome</Clue>
      <Clue Num="9" Ans="SWEDE">Alfred Nobel or Anders Celsius</Clue>
      <Clue Num="14" Ans="LOGO">McDonald's arches, e.g.</Clue>
      <Clue Num="15" Ans="CARA">Model/actress Delevingne</Clue>
      ...
    </Across>
    <Down>
      <Clue Num="1" Ans="CLAW">End of a hammer</Clue>
      <Clue Num="2" Ans="LORI">Greiner of "Shark Tank"</Clue>
      <Clue Num="3" Ans="AGED">Like Gruyère or Grandpa</Clue>
      <Clue Num="4" Ans="YOYOS">Idiots</Clue>
      ...
    </Down>
    <NotePad>In print, this puzzle ...</NotePad>
  </Crossword>
  <Crossword>
     ...
  </Crossword>
</Crosswords>

If puzzles have circles, this element will be added, indicating that lower-case Grid letters should have circles. (ShadeCircles will be "true" if the lower-case squares should be shaded gray rather than have circles.)

    <HasCircles ShadeCircles="false">true</HasCircles>

Rebus puzzles will have semicolon-separated keys similar to the Across Lite text file format. Numbers in the grid are codes to the intended rebus string, followed by the single letter that Across Lite will accept as correct.

    <IsRebus Codes="0:OPEL:O;1:FORD:F;2:KIA:K;3:AUDI:A">true</IsRebus>

You need to be logged in to generate XPF files.


XPF is free to use, even for commercial applications. As is usual for such things, I maintain ownership of the specification and would appreciate attribution, but you can use it as you see fit. Have your lawyer click the logo below for details if she's concerned.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License.