not familiar with ISE Design Suite 14.5
however:
module genvar has 3 parameters, and you use genvar i inside it
i would expect using module genvar requires 3 parameters, and a different syntax
also, it appears(?) that you are making genvar recursive
The first problem with your code is that you're using the reserved keyword "genvar" for the module name -- you'll have to use a different name. The second problem is the lack of a name for the for loop block in the generate statement. Furthermore the expression "xor g1(z1(i),x(i),y(i));" is a syntax error. You should instead be using brackets for bit selects. Also, the name "z1" is undeclared. The corrected code should be :
Also, unless you plan on having multiple generate statements that use the same generate variable, it's usually better coding practice to declare the genvar variable within the generate...endgenerate block.
Furthermore the expression "xor g1(z1(i),x(i),y(i));" is a syntax error. You should instead be using brackets for bit selects. Also, the name "z1" is undeclared.
Unless, of course, "x" and "y" are functions to be invoked on the loop variable, but, in that case you'd have a name collision between said functions ( which aren't declared in your module snippet ) and the module's input and output nets. A syntax error in all cases would be the "z1" in the xor primitive's output -- there should be a net there.