TEIC / TEI

The Text Encoding Initiative Guidelines
https://www.tei-c.org
Other
276 stars 88 forks source link

Restrict where `<altIdent>` can go in tei_customization and p5odds #2440

Closed sydb closed 10 months ago

sydb commented 1 year ago

In response to Council’s decision of 2023-05-09 re: #2285, restrict where <altIdent> is allowed to only <elementSpec>, <attDef>, and <valItem> in p5odds and tei_customization:

p5odds Just added a <constraintSpec>

tei_customization Moved <altIdent> out of model.identSynonyms and then add it back into content models of <attDef> and <valItem>. While I was there also:

I have run make test in the P5 directory, and all tests passed. What I have not done is actually test that p5odds and tei_customization do the right thing.

HelenaSabel commented 11 months ago

Hello @sydb!

The schema tei_odds.rng (generated with make exemplars) is not firing errors in a test file that contains <altIdent> as a child of <attDef> and as a child of <constraintSpec>.

In the case of tei_customization.rng, I tested a few ODDs and I always get the error conflicting ID-types for attribute "defaultPhase" of element "schema" from namespace "http://purl.oclc.org/dsdl/schematron" but this also happens with the version in dev.

sydb commented 11 months ago

Heh-heh. The test for p5odds is not in the RELAX NG, it is in the Schematron. However, I just tested and found a bug: I used ../tei:attDef where I should have said parent::tei:attDef. I plan to check in a fix in a few minutes.

In the meantime, the error you are getting from tei_customization is the result of having DTD compatibility mode turned on. If you are using jing on the commandline add a -i switch; if you are using oXygen uncheck the “Check ID/IDREF” box in the Options > Preferences > XML > XML Parser > RELAX NG pane. See https://journals.openedition.org/jtei/2573#annexe.

sydb commented 11 months ago

Fixed in 251161c.