include yslt.yml2 define operator "“(.*?)”" as call "idl2ddl" with "type", "%1"; tstylesheet { const "idtype", "'INTEGER'"; template "/" apply "module|class", 0; template "module" { param "namespace", "''"; choose { when "$namespace=''" apply "module|class", 0 with "namespace", "@name"; otherwise apply "module|class", 0 with "namespace", "concat($namespace,'_', @name)"; } } template "class" { param "namespace", "''"; choose { when "$namespace=''" | CREATE TABLE «@name» ( otherwise | CREATE TABLE «$namespace»_«@name» ( } if "count(attr[@name='id'])=0" |> id «$idtype»`if "count(attr)>0" > , ` const "name", "@name"; foreach "//class[class/@name=$name]" |> «@name»_fk «$idtype», apply "attr"; | ); apply "class", 0 with "namespace", "$namespace"; } template "attr" | «@name» “@type”`if "position() != last()" > , ` function "idl2ddl" { param "type"; choose { when "$type='string'" > VARCHAR when "$type='long'" > INTEGER } } }