This is just starting out, but it outlines the XML structure for each project file. More will be added as it continues to be developed. The proposed extension is .pjxml
Note that the connection structure is a proposed change for storing database information. Currently, cnxml files only store connection information. I'm thinking about doing an optional database structure query, and storing the results in the connection file, or, in the alternative, in a separate .dbxml file.
<project>
<paths>
<projectpath>/path/to/project</projectpath>
<path>images</path>
<path>../../some/other/path/to/stuff</path>
<path drive="D">/windows/only/path/to/different/drive</path>
</paths>
<connections>
<connection id="myConn">
<name>myConn</name>
<host>myhost.com</host>
<user>me</user>
<password>mypassword</password>
<port>666</port>
<databases>
<database id="myDB">
<tables>
<table id="myTable">
<columns>
<column id="myColumn">
</column>
</columns>
</table>
</tables>
</database>
</databases>
</connection>
</connections>
<classes>
<class id="myClass">
< -cdxml content- >
</class>
</classes>
<menus>
<menu id="myMenu">
< -mnxml content- >
</menu>
</menus>
<reports>
<report id="myReport">
< -rfxml content- >
</report>
</reports>
</project>
Issues
One of the choices to be made is whether to store the actual content in the project XML file, or simply store a path to the actual file. While the latter is much more flexible, it also is filled with the sorts of pathing problems that we have run into elsewhere when managing database paths, external images, etc. So I'm proposing the <paths> section, which is discussed on IDEProposedPathingSpecs.