Metadata Overview

A freeform project is defined to be a directory containing a subdirectory named nbproject inside of which is a file project.xml matching the pattern

<project xmlns="http://www.netbeans.org/ns/project/1">
    <type>org.netbeans.modules.ant.freeform</type>
    <configuration>
        <!-- metadata blocks … -->
    </configuration>
</project>
        

The metadata blocks must consist of at least a <general-data> section, and possibly some domain-specific sections such as <java-data> in different namespaces. The currently available XML schemas for validation are as follows:

Revisions of schemas are marked numerically, so …/freeform-project-java/2.xsd is an updated variant of …/freeform-project-java/1.xsd. The namespaces defined by the schemas are the same as the above URLs but without the .xsd suffix.

Other than project.xml, there is no mandatory layout for a freeform project (hence its name!). It is common for there to be an Ant build script named build.xml at top level but this is not required.

The behavior of the project inside the IDE is controlled by the contents of project.xml, together with any other files referenced by it. The permitted metadata sections are described in turn, followed by "best-practices" recommendations on how the complete project should be structured.