Skip to content

Add Schematron check for antilabe @part sequence#194

Merged
cmil merged 1 commit into
mainfrom
191-antilabe-schematron
Jul 13, 2026
Merged

Add Schematron check for antilabe @part sequence#194
cmil merged 1 commit into
mainfrom
191-antilabe-schematron

Conversation

@cmil

@cmil cmil commented Jul 12, 2026

Copy link
Copy Markdown
Member

Verify that elements form a valid antilabe sequence: part="I" must be followed by part="M" or part="F"; part="M" must be preceded by part="I" or part="M" and followed by part="M" or part="F"; part="F" must be preceded by part="I" or part="M".

Adapted from the schematron by @daliboris in
https://github.com/daliboris/plays-encoding-framework, reimplemented with plain XPath 2.0 to match DraCor's existing constraint style.

Closes #191

@github-actions

Copy link
Copy Markdown

Preview available: https://staging.dracor.org/previews/odd-194.html

@juliajbeine

Copy link
Copy Markdown
Collaborator

@cmil, if we should also include a ‘preceded rule’ for part="I", it would be:
<val>I</val> is preceded by <val>F</val> and followed by <val>M</val> or <val>F</val>.

@cmil

cmil commented Jul 12, 2026

Copy link
Copy Markdown
Member Author

@cmil, if we should also include a ‘preceded rule’ for part="I", it would be: <val>I</val> is preceded by <val>F</val> and followed by <val>M</val> or <val>F</val>.

Why would that be necessary? An antilabe does not need to be preceded by another antilabe, or does it?

Verify that <l part="I|M|F"> elements form a valid antilabe sequence:
part="I" must be followed by part="M" or part="F"; part="M" must be
preceded by part="I" or part="M" and followed by part="M" or part="F";
part="F" must be preceded by part="I" or part="M".

Adapted from the schematron by @daliboris in
https://github.com/daliboris/plays-encoding-framework, reimplemented
with plain XPath 2.0 to match DraCor's existing constraint style.

Closes #191
@cmil
cmil force-pushed the 191-antilabe-schematron branch from 79f92a6 to 1c906fb Compare July 12, 2026 23:43
@juliajbeine

Copy link
Copy Markdown
Collaborator

@cmil, you are right, an <l part="I"> element may be preceded by a usual <l> element; I was in full antilabe mode.

@cmil
cmil merged commit 822751d into main Jul 13, 2026
2 checks passed
@cmil
cmil deleted the 191-antilabe-schematron branch July 13, 2026 08:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add schematron to check antilabe markup

2 participants