discriminator [url] does not have fixed value, binding or existence assertions

Solution 1:

There is no "by definition". It's actually possible to have an extension whose canonical URL differs from the Extension.url - if you're creating a profile of an existing extension. The Extension data type does, however explicitly pre-define the slicing which is what requires url to be explicitly declared as a fixed value. In short, everything is functioning as intended. If you're defining a profile with a base of 'Extension', you'll have to define a fixedUrl.