According to section 8.4.13 of BPMN 2.0.2, Flow Nodes (the parent of Gateways, Activities, and Events) contain the following attributes:
incoming: Sequence Flow [0..*] This attribute identifies the incoming Sequence Flow of the FlowNode.
outgoing: Sequence Flow [0..*] This attribute identifies the outgoing Sequence Flow of the FlowNode.
Despite this fact, many of the BPMN files I've seen decide not to include these elements. For example, I don't see them in the official BPMN 2.0 by Example doc at http://www.omg.org/spec/BPMN/20100601/10-06-02.pdf. Nor in the XML snippets from https://docs.camunda.org/manual/7.3/api-references/bpmn20/#tasks. However, I do see them in the samples at http://www.omg.org/spec/BPMN/20100602/2010-06-03/.
Is there any explanation for this variation? Are these elements required when a sequence flow is connected to a node? Do the common tools include them?
An interesting question, at least at a theoretical level. Most BPMN Modelers will use the sourceRef and targetRef attributes to denote the source and target for a FlowNode element. The reason the samples at http://www.omg.org/spec/BPMN/20100602/2010-06-03/. use the incoming/outgoing semantic is likely because they are all produced by the same tool (Trisotech). To be honest, I can't say whether one is right or wrong but I can say that very few modelers use the incoming/outgoing semantic.