AggExclude ::= "<AggExclude/>" AggFactCount ::= "<AggFactCount/>"
AggForeignKey ::= "<AggForeignKey/>"
AggIgnoreColumn ::= "<AggIgnoreColumn/>"
AggLevel ::= "<AggLevel/>"
AggMeasure ::= "<AggMeasure/>"
AggName ::=
  "<AggName>" AggFactCount (AggIgnoreColumn | AggForeignKey | AggMeasure | AggLevel)* "</AggName>"
AggPattern ::=
  "<AggName>" AggFactCount (AggIgnoreColumn | AggForeignKey | AggMeasure | AggLevel)* AggExclude* "</AggName>"
CalculatedMember ::= "<CalculatedMember>" Formula? CalculatedMemberProperty* "</CalculatedMember>"
CalculatedMemberProperty ::= "<CalculatedMemberProperty/>"
Closure ::= "<Closure>" Table "</Closure>"
Column ::= "<Column>/>"
ColumnDef ::= "<ColumnDef/>"
ColumnDefs ::= "<ColumnDefs>" ColumnDef* "</ColumnDefs>"
ColumnExpression ::= "<ColumnExpression>" SQL* "</ColumnExpression>"
Cube ::= "<Cube>" Relation (Dimension | DimensionUsage)* Measure* CalculatedMember* NamedSet* "</Cube>"
CubeGrant ::= "<CubeGrant>" DimensionGrant* HierarchyGrant* "</CubeGrant>"
CubeUsage ::= "<CubeUsage/>"
CubeUsages ::= "<CubeUsages>" CubeUsage+ "</CubeUsages>"
Dimension ::= "<Dimension>" Hierarchy+ "</Dimension>"
DimensionGrant ::= "<DimensionGrant/>"
DimensionUsage ::= "<DimensionUsage/>"
Formula ::= "<Formula>" text "</Formula>"
Hierarchy ::= "<Hierarchy>" RelationOrJoin? Level+ MemberReaderParameter* "</Hierarchy>"
HierarchyGrant ::= "<HierarchyGrant>" MemberGrant* "</HierarchyGrant>"
InlineTable ::= "<InlineTable>" ColumnDefs Rows "</InlineTable>"
Join ::= "<Join>" RelationOrJoin RelationOrJoin "</Join>"
KeyExpression ::= "<KeyExpression>" SQL* "</KeyExpression>"
Level ::= "<Level>" KeyExpression? NameExpression? OrdinalExpression? ParentExpression? Closure? Property+ "</Level>"
Measure ::= "<Measure>" MeasureExpression? CalculatedMemberProperty* "</Measure>"
MeasureExpression ::= "<MeasureExpression>" SQL* "</MeasureExpression>"
MemberGrant ::= "<MemberGrant/>"
MemberReaderParameter ::= "<MemberReaderParameter/>"
NamedSet ::= "<NamedSet>" Formula? "</NamedSet>"
NameExpression ::= "<NameExpression>" SQL* "</NameExpression>"
OrdinalExpression ::= "<OrdinalExpression>" SQL* "</OrdinalExpression>"
Parameter ::= "<Parameter/>"
ParentExpression ::= "<ParentExpression>" SQL* "</ParentExpression>"
Property ::= "<Property/>"
Role ::= "<Role>" SchemaGrant* Union? "</Role>"
RoleUsage ::= "<RoleUsage/>"
Row ::= "<Row>" Value* "</Row>"
Rows ::= "<Rows>" Row* "</Rows>"
Schema ::= "<Schema>" Parameter* Dimension* Cube* VirtualCube* NamedSet* Role* UserDefinedFunction* "</Schema>"
SchemaGrant ::= "<SchemaGrant>" CubeGrant* "</SchemaGrant>"
SQL ::= "<SQL>" text "</SQL>"
Table ::= "<Table>" SQL? AggExclude* (AggName | AggPattern)* "</Table>"
Union ::= "<Union>" RoleUsage* "</Union>"
UserDefinedFunction ::= "<UserDefinedFunction/>"
Value ::= "<Value>" text "</Value>"
View ::= "<View>" SQL* "</View>"
VirtualCube ::= "<VirtualCube>"  CubeUsages VirtualCubeDimension* VirtualCubeMeasure* CalculatedMember* NamedSet* "</VirtualCube>"
VirtualCubeDimension ::= "<VirtualCubeDimension/>"
VirtualCubeMeasure ::= "<VirtualCubeMeasure/>"
Relation ::= Table | View | InlineTable
RelationOrJoin ::= Join | Table | View | InlineTable
