I agree with @kabdulla. Binary variables would be the way to go here.
Expanding on that idea a little further: You can use binary variables to indicate whether X is positive (TRUE/1) by a constraint such as M*binary_variable_for_x <= X
where M is a sufficiently large number for the problem that would not limit X. Then the binary_variable_for_x can be 1 if X > 0.
Do the same for when Y is positive (TRUE/1).
And then you could write another constraint that requires the sum of these booleans to be >= 1.
binary_variable_for_x + binary_variable_for_y >= 1
There's multiple ways to formulate the problem, but this can be one way.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…