
It is not really up to the service. A DataStaging element has either a Source child element, a Target child element, or both. A Source element being present clearly tags a DataStaging element to be processed in the stage in phase of a JSDL job. A Target child element, respectively, requires its DataStaging parent being processed in the stage out phase of the JADL job. Having both Source and Target elements indicates that the containing DataStaging element needs processing in both stage in and stage out phases of the job execution process. So in the end, it's rather indirectly encoded in DataStaging itself.
Ah, I was assuming Source and Target meant something like "from URL" and "to URL", so that they would be specified in each DataStaging section. In that way I saw no difference between stage-in and stage-out. So I would argue that the element names are confusing, but unfortunately I don't have a better suggestion at the moment.
Actually, Source and Target *are* specified in each DataStaging element, if applicable. From the viewpoint of the consuming service, the Source child of a DataStaging means something like "from URL" (to fetch from that URL in stage in), and the Target child of a DataStaging respectively means in deed something like "to URL" (to store at). In fact, the element names could be something different (i..e. "FetchFrom" and "StoreAt"), but then they may confuse other people. That's how standards are like, I presume. :o) Cheers, Michel