gendecl must has an id