RDL Syntax

RDL

Resource Description Language

View project on GitHub

(back to the overview)

Syntax

These diagrams were generated from this EBNF file.

SchemaV3:

SchemaOptions TypeDef ResourceDef


SchemaOptions:

NamespaceSpec NameSpec VersionSpec BasePath IncludeSpec UseSpec

referenced by: SchemaV3


NamespaceSpec:

namespace Namespace ;

referenced by: SchemaOptions


NameSpec:

name Name ;

referenced by: SchemaOptions


VersionSpec:

version LiteralInteger ;

referenced by: SchemaOptions


BasePath:

base LiteralString ;

referenced by: SchemaOptions


IncludeSpec:

include LiteralString ;

referenced by: SchemaOptions


UseSpec:

use LiteralString ;

referenced by: SchemaOptions


TypeDef:

type Name TypeSpec ;

referenced by: SchemaV3


TypeSpec:

TypeRef AliasTypeSpec BytesTypeSpec StringTypeSpec SymbolTypeSpec ArrayTypeSpec MapTypeSpec StructTypeSpec UnionTypeSpec EnumTypeSpec

referenced by: FieldSpec, InputSpec, OutputSpec, TypeDef


AliasTypeSpec:

TypeRef ( ExtendedOption , )

referenced by: TypeSpec


BytesTypeSpec:

Bytes [ LiteralInteger ] ( BytesOption , )

referenced by: TypeSpec


BytesOption:

minsize maxsize = LiteralInteger ExtendedOption

referenced by: BytesTypeSpec


StringTypeSpec:

String ( StringOption , )

referenced by: TypeSpec


StringOption:

pattern = LiteralString values = [ LiteralString , ] minsize maxsize = LiteralInteger ExtendedOption

referenced by: FieldOption, StringTypeSpec


SymbolTypeSpec:

Symbol ( SymbolOption , )

referenced by: TypeSpec


SymbolOption:

values = [ LiteralSymbol , ] ExtendedOption

referenced by: FieldOption, SymbolTypeSpec


ArrayTypeSpec:

Array < TypeRef > ( ArrayOption , )

referenced by: TypeSpec


ArrayOption:

size minsize maxsize = LiteralInteger ExtendedOption

referenced by: ArrayTypeSpec, FieldOption


MapTypeSpec:

Map < TypeRef , TypeRef > ( MapOption , )

referenced by: TypeSpec


MapOption:

size minsize maxsize = LiteralInteger ExtendedOption

referenced by: FieldOption, MapTypeSpec


StructTypeSpec:

Struct ( StructOption , ) { FieldSpec }

referenced by: TypeSpec


StructOption:

closed ExtendedOption

referenced by: StructTypeSpec


FieldSpec:

TypeSpec Name ( FieldOption , ) ;

referenced by: StructTypeSpec


FieldOption:

optional default = Literal StringOption SymbolOption ArrayOption MapOption NumberOption ExtendedOption

referenced by: FieldSpec


NumberTypeSpec:

NumberType ( NumberOption , )


NumberOption:

min max = LiteralNumber ExtendedOption

referenced by: FieldOption, NumberTypeSpec


UnionTypeSpec:

Union < TypeName , > ( UnionOption , )

referenced by: TypeSpec


UnionOption:

ExtendedOption

referenced by: UnionTypeSpec


EnumTypeSpec:

Enum ( EnumOption , ) { Identifier , }

referenced by: TypeSpec


EnumOption:

ExtendedOption

referenced by: EnumTypeSpec


ExtendedOption:

x_ LiteralSymbol = LiteralString

referenced by: AliasTypeSpec, ArrayOption, BytesOption, EnumOption, FieldOption, MapOption, NumberOption, StringOption, StructOption, SymbolOption, UnionOption


NumericType:

Int8 Int16 Int32 Int64 Float32 Float64

referenced by: TypeName


TypeName:

Bool Bytes String Symbol UUID Timestamp Array Map Struct NumericType UserTypeName

referenced by: ExceptionSpec, ResourceDef, TypeRef, UnionTypeSpec


TypeRef:

TypeName Any

referenced by: AliasTypeSpec, ArrayTypeSpec, MapTypeSpec, TypeSpec


UserTypeName:

Name

referenced by: TypeName


Identifier:

Name

referenced by: EnumTypeSpec


Name:

NameStartChar NameChar

referenced by: CompoundName, FieldSpec, Identifier, InputSpec, LiteralMap, LiteralSymbol, NameSpec, OutputSpec, StringTemplate, TypeDef, UserTypeName


CompoundName:

Name .

referenced by: Namespace


Namespace:

CompoundName

referenced by: NamespaceSpec


Literal:

LiteralMap LiteralArray LiteralNumber LiteralString LiteralSymbol true false

referenced by: FieldOption, LiteralArray, LiteralMap, ParamOption


LiteralSymbol:

Name

referenced by: ExtendedOption, Literal, SymbolOption


LiteralMap:

{ Name : Literal , }

referenced by: Literal


LiteralArray:

[ Literal , }

referenced by: Literal


LiteralString:

" [^"] "

referenced by: BasePath, ExtendedOption, IncludeSpec, Literal, ResourceDef, StringOption, UseSpec


LiteralNumber:

LiteralInteger . Digit

referenced by: Literal, NumberOption


LiteralInteger:

- PositiveDigit Digit

referenced by: ArrayOption, BytesOption, BytesTypeSpec, LiteralNumber, MapOption, StringOption, VersionSpec


PositiveDigit:

[1-9]

referenced by: LiteralInteger


Digit:

[0-9]

referenced by: LiteralInteger, LiteralNumber


Alphanumeric:

[A-Z] [a-z] [0-9]


NameStartChar:

[A-Z] _ [a-z]

referenced by: Name, NameChar


NameChar:

NameStartChar [0-9]

referenced by: Name


ResourceDef:

resource TypeName Method LiteralString { InputSpec OutputSpec Authorization ExpectedSpec ExceptionSpec }

referenced by: SchemaV3


Method:

GET PUT DELETE POST

referenced by: ResourceDef


StringTemplate:

" [^"] { Name } "


InputSpec:

TypeSpec Name ( InputOption , ) ;

referenced by: ResourceDef


ParamOption:

optional header = ParamName context = auth.credentials auth.principal default = Literal


OutputSpec:

TypeSpec Name ( OutputOption , ) ;

referenced by: ResourceDef


OutputOption:

header = ParamName out

referenced by: OutputSpec


Authorization:

authorize ( ActionName , ResourceName , DomainName )

referenced by: ResourceDef


ExpectedSpec:

expected Status , ;

referenced by: ResourceDef


ExceptionSpec:

exception { TypeName Status ; }

referenced by: ResourceDef


Status:

OK CREATED NO_CONTENT NOT_MODIFIED NOT_FOUND BAD_REQUEST etc

referenced by: ExceptionSpec, ExpectedSpec


ParamChar:

[A-Z] - [a-z] [0-9] _

referenced by: ParamName


ParamName:

ParamChar

referenced by: OutputOption, ParamOption



  ... generated by Railroad Diagram Generator R R


The diagrams on this page were generated by Gunther Rademacher's Railroad Diagram Generator.