User's Manual

190 Appendix D. PDL Syntax
property :=
( <IMMEDIATE> )?
( ( <VERSIONED> | <UNVERSIONED> ) )?
( <UNIQUE> )?
( ( <COMPONENT> | <COMPOSITE> ) )?
type ( multiplicity )? id
( <EQ> ( column | join_path ) )?
multiplicity := <LBRACKET> integer <DOT> <DOT> ( id | integer ) <RBRACKET>
object_key := <OBJECTKEY> <LPAREN> id ( <COMMA> id )* <RPAREN>
reference_key := <REFERENCEKEY> <LPAREN> column <RPAREN>
unique_key := <UNIQUE> <LPAREN> id ( <COMMA> id )* <RPAREN>
aggressive_load := <AGGRESSIVE> <LPAREN> path ( <COMMA> path )* <RPAREN>
join_stmt := join_path
/** Compound statements */
event :=
( ( ( <INSERT> | <UPDATE> | <DELETE> ) |
( ( <ADD> | <REMOVE> | <CLEAR> ) ( id )? ) |
( <RETRIEVE> ( <ALL> | <ATTRIBUTES> | id )? ) )
<LBRACE> ( sql_block | <SUPER> <SEMI> )*
<RBRACE> | sql_block )
sql_block :=
( <CALL> | <DO> ) <SQL>
( <MAP> <LBRACE> ( mapStatement <SEMI> )+ <RBRACE> )?
mapStatement := ( binding | mapping )
binding := path <COLON> db_type
mapping := path <EQ> path
option_block := <OPTIONS> <LBRACE> ( option <SEMI> )+ <RBRACE>
option := id <EQ> optionValue
optionValue := <TRUE> | <FALSE> | <STRINGLIT>
/** Shared definitions */
join_path := join ( <COMMA> join )*
join := <JOIN> column <TO> column
column := id <DOT> id ( db_type )?
db_type := id ( <LPAREN> integer ( <COMMA> integer )? <RPAREN> )?
type := idpath
path := idpath
javaClass := idpath