So delimiters might be required to determine the start/end of a data item, or they might be redundant part of the syntax just there to aid in readability for people, or to help detect corrupted data.
Delimiters do not necessarily identify which data item, of several possibilities. In IMF format there is an element called TimeZoneAbbreviation. It has initiator="(" terminator=")" and is 3 characters long. Since it is 3 long, the delimiters aren't really needed for parsing. But they make the data human readable. Neither delimiter would be considerered to be a tag, as they do not identify the time zone and distinguish it from other things. Generally a "tag" and the concept of tag means that there is an alphanumeric label associated with the initiator. If the initiator was "TZ(", then that would be considered a tag. Most uses of initiator in the DFDL schemas I just searched use initiator with an alphabetic tag. XML is unusual in that it requires ending terminators to contain the same identifier matching the initiator, but that's due to its history as a markup language, derived from HTML. I've been wanting XML to allow <foo>content</> for a long time with </> matching the closest unclosed open tag. Vast bulk of data formats use alphanumeric initiators with simple terminators that do NOT repeat the alphanumerics. Tags are generally used when there is more than one alternative for a place in the data. I.e., the tag allows distinguishing different possibilities. But not always. Sometimes the order of things is fixed, and the tag is just there for human readability of the data. ________________________________ From: Roger L Costello <coste...@mitre.org> Sent: Wednesday, February 3, 2021 8:44 AM To: users@daffodil.apache.org <users@daffodil.apache.org> Subject: Difference between delimiters versus tagging? Hi Folks, Is there a difference between isolating something with delimiters so that the start/end of the data can be found and tagging ? I don't see any difference. Consider this XML snippet: <altitude>1000</altitude> That is an example of tagging the data (1000). Isn't the start tag an initiator and the end tag a terminator? The tags isolate 1000 so that the start/end of the data can be found. Yes? /Roger