А почему не сгенерировать из атрибутов?