There seems to be an ambiguity in the meaning of "begin" and "end" in the sub elements <linearCoordinateBegin> and <linearCoordinateEnd> in <linearLocation/associatedNetElement> [1]
Ref documentation of <linearCoordinateBegin> [2]: "linear coordinate of the beginning of area covered by some functional IS entity"
Some interpret begin and end to be in the direction of the net element. Others see it in the application direction of the (functionalInfrastructure) object that creates the linear location.
I have seen (certified) code examples for both. So, I suggest allowing the ambiguity for now. But to discuss if we should make it more consistent in railML 3.4.
We could also discuss to make it at least a bit more consistent for now to add the following sematic constraint or best
practice:
If you are using linearLocation@applicationDirection then <linearCoordinateBegin> and <linearCoordinateEnd> follows the direction of the net element. If linearLocation@applicationDirection is NOT set, then <linearCoordinateBegin> and <linearCoordinateEnd> follows the application direction of the (functionalInfrastructure) object.