Minecraft wiki entry for Zombie_siege, associated text: The spawning block must be transparent and non-fluid.
The block directly below it must have a solid top surface.
This includes upside down stairs and slabs.
The block directly below it must not be bedrock.
The block directly above it must be transparent as well.
The block must be within the target village.