
Lou -- Not sure where you are in your Herculean task of updating the definitions to Pure ODD, but I noticed what seems to be an error in the content of <egXML> in the P5-Pure branch. The declaration is: <content> <alternate> <textNode/> <macroRef key="macro.anyXML"/> </alternate> </content> But since macro.anyXML is singular, only 1 child of <egXML> is permitted. However, multiple children are supposed to be permitted. (And indeed, by my quick count we have 140 <egXML>s w/ multiple children.) I.e., the content model of <egXML> is ( text | macro.anyXML* ) but P5-Pure only has ( text | macro.anyXML ) So I'm thinking it should be <content> <alternate> <textNode/> <macroRef maxOccurs="unbound" key="macro.anyXML"/> </alternate> </content> No? BTW, this seems egregious enough that back in the world of Subversion I might have just fixed it,[1] but this git stuff is somewhat intimidating. Am I correct that to fix this, I would make the change in the P5-Pure branch, check it in, and then go onto GitHub to issue a pull request to Lou? Or do I just push it up myself? Notes ----- [1] Actually, I likely would not have, or at least would have sent you mail saying so, since this may be a symptom of a larger ODD->PureODD problem.

If you think it’s an „corrigible error“, than you’d simply modify the source in the P5-Pure branch and push it. If you think it’d be wise for someone (Lou) to look over it before, you could branch off from P5-Pure branch to e.g. P5-Pure-egXML-fix, push it, and issue a pull request for merging this branch into P5-Pure. Sounds good?!? ;) Best Peter
Am 24.09.2015 um 04:50 schrieb Syd Bauman <syd@PARAMEDIC.WWP.NEU.EDU>:
BTW, this seems egregious enough that back in the world of Subversion I might have just fixed it,[1] but this git stuff is somewhat intimidating. Am I correct that to fix this, I would make the change in the P5-Pure branch, check it in, and then go onto GitHub to issue a pull request to Lou? Or do I just push it up myself?

Um, if this were truly a bug surely it would have shown up during validation of P5 in the makefile? Can you cite one or two of the 140 cases you've identified? It's true that macro.anyXML is a problem area in the purification process. But it does allow multiple children, as long as they are properly nested within a single root. I assume you're not confusing egXML with exemplum? On 24/09/15 03:50, Syd Bauman wrote:
Lou --
Not sure where you are in your Herculean task of updating the definitions to Pure ODD, but I noticed what seems to be an error in the content of <egXML> in the P5-Pure branch. The declaration is:
<content> <alternate> <textNode/> <macroRef key="macro.anyXML"/> </alternate> </content>
But since macro.anyXML is singular, only 1 child of <egXML> is permitted. However, multiple children are supposed to be permitted. (And indeed, by my quick count we have 140 <egXML>s w/ multiple children.) I.e., the content model of <egXML> is ( text | macro.anyXML* ) but P5-Pure only has ( text | macro.anyXML )
So I'm thinking it should be
<content> <alternate> <textNode/> <macroRef maxOccurs="unbound" key="macro.anyXML"/> </alternate> </content>
No?
BTW, this seems egregious enough that back in the world of Subversion I might have just fixed it,[1] but this git stuff is somewhat intimidating. Am I correct that to fix this, I would make the change in the P5-Pure branch, check it in, and then go onto GitHub to issue a pull request to Lou? Or do I just push it up myself?
Notes ----- [1] Actually, I likely would not have, or at least would have sent you mail saying so, since this may be a symptom of a larger ODD->PureODD problem.

Um, if this were truly a bug surely it would have shown up during validation of P5 in the makefile?
One would have thought so.
Can you cite one or two of the 140 cases you've identified?
<egXML xmlns="http://www.tei-c.org/ns/Examples" xml:lang="en" valid="feasible"> <castItem type="role"> <role xml:id="Barnardo">Bernardo</role> </castItem> <castItem type="role"> <role xml:id="Francisco">Francisco</role> <roleDesc>a soldier</roleDesc> </castItem> <!-- ... --> <sp who="#Barnardo"> <speaker>Bernardo</speaker> <l n="1">Who's there?</l> </sp> <sp who="#Francisco"> <speaker>Francisco</speaker> <l n="2">Nay, answer me: stand, and unfold yourself.</l> </sp> </egXML>
It's true that macro.anyXML is a problem area in the purification process. But it does allow multiple children, as long as they are properly nested within a single root.
Not the way I read it, or my oXygen validates w/ it. I see macro.anyXML = element * - (tei:* | teix:egXML) { attribute * { text }*, ( text | macro.anyXML )* } which is very clear that 'macro.anyXML' gets replaced by one and only one element.
I assume you're not confusing egXML with exemplum?
Not at all.

Are all your examples @valid="feasible" ? If so, I claim that that at least explains why they don't show up in the validation. My understanding of macroXML is that the requirement for a single element corresponds with the requirement that the content of <egXML> be well formed, i.e. have a single root element. Cases where there is no single root element, but where adding one would make the example well-formed, are marked as @valid="feasible", and not checked during validation. On 24/09/15 12:34, Syd Bauman wrote:
Um, if this were truly a bug surely it would have shown up during validation of P5 in the makefile? One would have thought so.
Can you cite one or two of the 140 cases you've identified? <egXML xmlns="http://www.tei-c.org/ns/Examples" xml:lang="en" valid="feasible"> <castItem type="role"> <role xml:id="Barnardo">Bernardo</role> </castItem> <castItem type="role"> <role xml:id="Francisco">Francisco</role> <roleDesc>a soldier</roleDesc> </castItem> <!-- ... --> <sp who="#Barnardo"> <speaker>Bernardo</speaker> <l n="1">Who's there?</l> </sp> <sp who="#Francisco"> <speaker>Francisco</speaker> <l n="2">Nay, answer me: stand, and unfold yourself.</l> </sp> </egXML>
It's true that macro.anyXML is a problem area in the purification process. But it does allow multiple children, as long as they are properly nested within a single root. Not the way I read it, or my oXygen validates w/ it. I see
macro.anyXML = element * - (tei:* | teix:egXML) { attribute * { text }*, ( text | macro.anyXML )* }
which is very clear that 'macro.anyXML' gets replaced by one and only one element.
I assume you're not confusing egXML with exemplum? Not at all.

Forget that (not that it's not true, but it's not relevant),,, You are of course 100% right that the current content model <content> <rng:zeroOrMore> <rng:group> <rng:choice> <rng:text/> <rng:ref name="macro.anyXML"/> </rng:choice> </rng:group> </rng:zeroOrMore> </content> does not correspond with its purification: <alternate> <textNode/> <macroRef key="macro.anyXML"/> </alternate> Before fixing this however (by adding a @maxOccurs="unbounded" as you suggest) I need to check to see whether this is a systematic problem in the conversion or a rare quirk. On 24/09/15 12:43, Lou Burnard wrote:
Are all your examples @valid="feasible" ?
If so, I claim that that at least explains why they don't show up in the validation.
My understanding of macroXML is that the requirement for a single element corresponds with the requirement that the content of <egXML> be well formed, i.e. have a single root element. Cases where there is no single root element, but where adding one would make the example well-formed, are marked as @valid="feasible", and not checked during validation.
On 24/09/15 12:34, Syd Bauman wrote:
Um, if this were truly a bug surely it would have shown up during validation of P5 in the makefile? One would have thought so.
Can you cite one or two of the 140 cases you've identified? <egXML xmlns="http://www.tei-c.org/ns/Examples" xml:lang="en" valid="feasible"> <castItem type="role"> <role xml:id="Barnardo">Bernardo</role> </castItem> <castItem type="role"> <role xml:id="Francisco">Francisco</role> <roleDesc>a soldier</roleDesc> </castItem> <!-- ... --> <sp who="#Barnardo"> <speaker>Bernardo</speaker> <l n="1">Who's there?</l> </sp> <sp who="#Francisco"> <speaker>Francisco</speaker> <l n="2">Nay, answer me: stand, and unfold yourself.</l> </sp> </egXML>
It's true that macro.anyXML is a problem area in the purification process. But it does allow multiple children, as long as they are properly nested within a single root. Not the way I read it, or my oXygen validates w/ it. I see
macro.anyXML = element * - (tei:* | teix:egXML) { attribute * { text }*, ( text | macro.anyXML )* }
which is very clear that 'macro.anyXML' gets replaced by one and only one element.
I assume you're not confusing egXML with exemplum? Not at all.

Ah, now I see it. The conversion glitch is caused by the redundant rng:group in the P5 source. On 24/09/15 13:03, Lou Burnard wrote:
Forget that (not that it's not true, but it's not relevant),,,
You are of course 100% right that the current content model
<content> <rng:zeroOrMore> <rng:group> <rng:choice> <rng:text/> <rng:ref name="macro.anyXML"/> </rng:choice> </rng:group> </rng:zeroOrMore> </content>
does not correspond with its purification:
<alternate> <textNode/> <macroRef key="macro.anyXML"/> </alternate>
Before fixing this however (by adding a @maxOccurs="unbounded" as you suggest) I need to check to see whether this is a systematic problem in the conversion or a rare quirk.
On 24/09/15 12:43, Lou Burnard wrote:
Are all your examples @valid="feasible" ?
If so, I claim that that at least explains why they don't show up in the validation.
My understanding of macroXML is that the requirement for a single element corresponds with the requirement that the content of <egXML> be well formed, i.e. have a single root element. Cases where there is no single root element, but where adding one would make the example well-formed, are marked as @valid="feasible", and not checked during validation.
On 24/09/15 12:34, Syd Bauman wrote:
Um, if this were truly a bug surely it would have shown up during validation of P5 in the makefile? One would have thought so.
Can you cite one or two of the 140 cases you've identified? <egXML xmlns="http://www.tei-c.org/ns/Examples" xml:lang="en" valid="feasible"> <castItem type="role"> <role xml:id="Barnardo">Bernardo</role> </castItem> <castItem type="role"> <role xml:id="Francisco">Francisco</role> <roleDesc>a soldier</roleDesc> </castItem> <!-- ... --> <sp who="#Barnardo"> <speaker>Bernardo</speaker> <l n="1">Who's there?</l> </sp> <sp who="#Francisco"> <speaker>Francisco</speaker> <l n="2">Nay, answer me: stand, and unfold yourself.</l> </sp> </egXML>
It's true that macro.anyXML is a problem area in the purification process. But it does allow multiple children, as long as they are properly nested within a single root. Not the way I read it, or my oXygen validates w/ it. I see
macro.anyXML = element * - (tei:* | teix:egXML) { attribute * { text }*, ( text | macro.anyXML )* }
which is very clear that 'macro.anyXML' gets replaced by one and only one element.
I assume you're not confusing egXML with exemplum? Not at all.
participants (3)
-
Lou Burnard
-
Peter Stadler
-
Syd Bauman