It doesn't matter whether the attribute name contains any parentheses.
When using this method:
@Then("^the value of the attribute (.*) should be (.*)$")
public void checkAttributeValue(String name, String value)
throws Throwable {
System.out.println("Name: " + name + " value: " + value);
}
And
Then the value of the attribute XYZ(s) should be 1000
I get
Name: XYZ(s) value: 1000
Which I think is what you expect.