This is already in the <routeTable> of v9.x web.config file.
Code:
<add name="XMLPackage" url="x-{XmlPackage}.aspx" virtualPath="~/ExecXMLPackage.ashx" checkPhysicalUrlAccess="false" />
The above format is used to be like this in the lower versions.
Code:
<rule url="/x-(.*?)\.aspx(?:\?(.*))?" rewrite="/execpackage.aspx?XmlPackage=$1&$2"/>
You can test your Product.ProductVariant XMLPackage with v9.x by invoking the querystring below into your browser.
Code:
ExecXMLPackage.ashx?XmlPackage=product.PrintVariants&ProductID=$1&SEName=$2&$3"/>