Represents the Document object for product structures.
When a ProductDocument is created, a root product is created
whose parent is the ProductDocument object. Its default name
is RootProduct, which can be overwritten thanks to the
the AnyObject.Name property. This root product is at the top of the product tree structure contained
in the document. It has no difference with the other contained products,
except it has no father product in the product tree structure within
the document.