Here is a simple example to demonstrate AgileJ StructureViews' lightweight diagram storage format.
Let's start with the Java source:
Customer.java
package com.agilej.structureViews;
public class Customer {
private Product[] productsPurchased;
Product[] getProductsPurchased(){
return productsPurchased;
}
}
Product.java
package com.agilej.structureViews;
public class Product {}
Dropped on an AgileJ StructureViews diagram these classes look like this:

Opening the same diagram file with with a text editor reveals some XML as follows:
<diagram style="bootstrapProfileParts.diagramStyle.default" version="1.3.8"> |
|---|
Notice that an AgileJ StructureViews diagram file is simply a list of classes and coordinates; and not much else. Any methods, fields, inner-classes, inheritance lines, association lines, dependency lines or symbols are populated on-the-fly directly from source code.
The implications of this are: