typedef unsigned long long DDSGUID[2]; const short DEFAULT_STRING_SIZE = 32; const short XSMALL = 4; const short SMALL = 8; const short DEFAULT = 32; const short LARGE = 256; const short XLARGE = 2048; module Topic{ module ComponentModule{ module SubComponentModule{ struct Element { @key DDSGUID Id; string Name; double TimeStamp; }; struct SubSubComponent { @key DDSGUID Id; string Name; sequence Elements; // [1..n] }; }; }; // module Component }; // module Topic module Topic{ module ComponentModule{ struct Test2 { @key DDSGUID Id; string Name; }; struct ComponentTest2 { @key DDSGUID Id; Test2 Test2; }; struct ComponentTest1 { @key DDSGUID Id; string Name; }; struct SubComponent { @key DDSGUID Id; string Name; double TimeStamp; @Optional sequence SubSubComponents; // [0..n] @Optional sequence TestsOne; // [0..n] @Optional sequence TestsTwo; // [0..n] }; struct Component { @key DDSGUID Id; string Name; double CreationTimeStamp; sequence SubComponents; // [1..n] }; }; // module Component }; // module Topic