Question: The use of CONT v5.5.1 vs v7.0 #411
-
I’ve been reading GEDCOM for more than 40years both the good and bad of it! in v5.5.1 I always could see and read the places where the However, I’m never clear when/where a In v5.5.1 the Another case is the I’m sure other structure have the same design but today I am thinking about citations and bibliography data! Please help me to understand! |
Beta Was this translation helpful? Give feedback.
Replies: 7 comments 2 replies
-
Section 1.3 says:
So a
So
So there's no limit on how many |
Beta Was this translation helpful? Give feedback.
-
Wow, I glad you translated that word salad to something my simple mind can understand! So does that mean that since "DATE" is not a pointer that it can have multiple lines? The same would hold for PLAC as well and probably a lot of other tags? |
Beta Was this translation helpful? Give feedback.
-
Only structures whose payload is permitted to include a newline can have multiple lines. For example, any structure whose type is |
Beta Was this translation helpful? Give feedback.
-
And ADDR is defined as |
Beta Was this translation helpful? Give feedback.
-
My guess at this point is that the payload will not contain a |
Beta Was this translation helpful? Give feedback.
-
Another take on this: The 5.5.1 spec had definitions of CONT and CONC that was not consistent with practice or intent. As written, you could swap the order of a CONC and CONT (which was self-evidently incorrect, allowing text to be scrambled) and interleave them with substructures (which most applications we tested did not support). The 7.0.0 drafting team wanted the spec to be complete without these kinds of differences between spec and practice, so we needed to re-define how CONT was defined. In doing this, we also noted other things that made CONT special. It should always come before any substructure. It should never have substructures of its own, not even extension substructures. It was sometimes omitted from the spec in places where it made sense (e.g. HEAD.SOUR.DATA.COPR had it but HEAD.COPR did not, but both have copyrights as their payload). The 5.5.1 spec often described what a line value meant, but in a way that only made sense if you applied it to the line value and the line values of any subsequent CONT and CONC. We thus introduced a new term, "payload," in the 7.0 spec to refer to the line value concatenated with all CONT line values. We defined structure meanings referring to the payloads, not the line values. And we defined how to convert between a payload that has line breaks and a sequence of lines. The intent is that this accurately describes how all versions of GEDCOM have used CONC and CONT, even though it it not how any previous version has specified them. |
Beta Was this translation helpful? Give feedback.
-
So then the “payload” will contain a “n CONT” even though it is not specified in the GEDCOM Specification! If a new software program came along and read the specification how would they know that they needed to break on a “n CONT” to a new line without actually seeing that this meant something? I get that CONT/CONC can’t have extension tags between and some new program might think they could do it, so you need to introduce the term payload. But I don’t see in the specification where someone knows that the “CONT” is included in the text line! |
Beta Was this translation helpful? Give feedback.
Section 1.3 says:
So a
PUBL
(having a non-pointer payload) can certainly have multiple lines.So
CONT
doesn't appear in the gedstruct definitions because it's a pseudo-structure valid everywhere non-pointer payloads are allo…