PowerDesigner models are made up of objects, the properties and interactions of which are explained in the public metamodel. Models can be saved in either binary or XML file formats. Binary files are smaller and significantly quicker to open and save, but XML model files can be edited by hand or programatically (and DTDs are provided for each model type in the DTD folder in the installation directory).
PowerDesigner XML model files have an <o:model> element at their root, which contains collections defined in the PowerDesigner metamodel. The model object and all the other object elements that it contains define their attributes and collections in sub-elements. The definition of an object implies the definition of its attributes and its collections. PowerDesigner checks each object and drills down the collections of this object to define each new object and collection in these collections, and so on, until the process finds terminal objects that do not need further analysis.
Each PowerDesigner object can have several collections corresponding to other objects to interact with, these collections are represented by the associations existing between objects. The roles of the associations (aggregations and compositions included) correspond to the collections of an object. For example, each PowerDesigner model contains a collection of domains called Domains.
Usually associations have only one role, the role is displayed at the opposite of the class for which it represents a collection. However, the metamodel also contains associations with two roles, in such case, both collections cannot be saved in the XML file. You can identify the collection that will be saved from the association property sheet: the role where the Navigable check box is selected is saved in the file.
In the following example, association has two roles which means Classifier has a collection Actors, and Actor2 has a collection ImplementationClasses:
If you display the association property sheet, you can see that the Navigable check box is selected for role ImplementationClass, which means that only collection ImplementationClass will be saved in file.
Attributes with the IOBJECT data type are attributes in the metamodel while they appear as collections containing a single object in the XML file. This is not true for Parent and Folder that do not contain any collection.