restrictの部分をさらに修正。attributeに関するマクロも加えた