XML Structure
Any item within a frames list of type "shape", corresponding to a Document Object Model - ShapeFrame object:
<document> <pages> <item> <frames> <item type="shape" x="10mm" y="10mm" width="80mm" height="20mm" > <paths> <item name="" id="6172D8D8-BE56-2D15-0D16-FF08CB84143F" closed="true"> <points> <item id="90696856-0F21-C22E-BD0B-FF08CBC5DF35" type="line" y="0mm" x="40 mm" /> <item id="438D4845-0870-0774-2B04-FF08CBC812AE" type="line" y="20 mm" x="80 mm"/> <item id="CFE591E3-BCEC-59A1-1F79-FF08CBC9AFB7" type="line" y="40 mm" x="40 mm" /> <item id="DA7D6038-C95B-5C18-E0C3-FF08CBC97167" type="line" y="20 mm" x="0mm" /> </points> </item> </paths> </item> </frames> </item> </pages> </document>
ShapeFrame XML
The main definition of a shape comes from its "paths" property (see lower). An important note is that when updating or creating such a frame through XML, you must:
Have all path points in positive coordinates (x/y), including if possible any bezier curves, and start one point at x=0, and one (or the same) at y=0
Set the frame's width and height to the bounding coordinates (maximum x/y of any point, including any bezier curves)
Ensure that the proportions of width/height match the proportions of the bounding coordinates of the path points
These same notes apply when editing the clippingPath of a TextFrame object, or the frameClippingPath of an ImageFrame.
Paths XML
The Paths XML corresponds to an object of type ?Document Object Model - Paths. This (hierarchically) contains:
Path items: Document Object Model - Path
Path Points: Document Object Model - PathPoints
Path Point Items: Document Object Model - PathPoint
An individual Path Point has a "type" property (Editor Enumerations - PathPointType), where:
"line" (the default) only requires x and y
"bezier" also requires controlLeftX, controlLeftY, controlRightX, and controlRightY
All coordinates of a path point are relevant to its parent's topleft coordinate (eg a ShapeFrame). Starting a line in that corner would be x=0 and y=0