Skip to content

Commit

Permalink
MONDRIAN: Illustrate XML schema format with a skeleton XML doc.
Browse files Browse the repository at this point in the history
    Indent XML exmaples in schema doc using CSS properties, so
    that they wrap more predictably.

    Add BNF of XML syntax, from which I have generated
    http://clapham.hydromatic.net/mondrian-3.1-bnf/

[git-p4: depot-paths = "//open/mondrian/": change = 12750]
  • Loading branch information
julianhyde committed May 19, 2009
1 parent bf1f527 commit bdcae04
Show file tree
Hide file tree
Showing 2 changed files with 694 additions and 706 deletions.
57 changes: 57 additions & 0 deletions doc/schema.bnf
@@ -0,0 +1,57 @@
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

0 comments on commit bdcae04

Please sign in to comment.