SAA-SDT / eas-schematrons

Creative Commons Zero v1.0 Universal
0 stars 0 forks source link

Add validation for cases that use the "EASList" value in the @...Encoding attributes of <control> #6

Open kerstarno opened 7 months ago

kerstarno commented 7 months ago

Creator of issue

  1. Kerstin Arnold
  2. EAD team lead, TS-EAS
  3. @kerstarno
  4. kerstin.arnold@archivesportaleurope.net

The issue relates to

Wanted change/feature

Note: While most of the values listed above have been kept as they are in EAD3 (respectively EAC-CPF 2.0), some have been adapted to camelCasing respectively to full length. These values are:

fordmadox commented 6 months ago

These lists should be ready for testing now. Thanks for compiling this ticket so thoroughly!!!

kerstarno commented 6 months ago

Tested with XSD and RNG (both including the Schematron) and can confirm that this is implemented as expected for the attributes @audience, @coverage, @detailLevel, @descriptionOfComponentsType, @level, @maintenanceEventType, @status, @unitDateType as well as the respective @…Encoding attributes.

However, when I add @contactLineTypeEncoding with the value "EASList", the attribute @contactLineType does not seem to be checked as it can remain empty and can have other values than the ones defined in the "EAS list" (e.g. "abc"). The same applies to the attributes:

I've also realised that I forgot the attribute @addressLineTypeEncoding in the initial list. This has now been added (see top of the list in description above).

It should also be noted that - for now - the Schematron does not require these @...Encoding attributes when the respective attributes are used in the <control> or <archDesc> sections. I.e. these attributes can currently still be used without their encoding having been defined.

fordmadox commented 6 months ago

Should be ready again for testing, minus the last point, which is not currently enforced. I would also expect that we wouldn't preclude someone from using a value from an EASList (e.g., 'country') when not using the "EASList" setting?

kerstarno commented 6 months ago

Re-tested with the XSD and the RNG (including the "ead4" branch Schematron) and can confirm that this now also works for @addressLineType, @contactLineType, @maintenanceStatus, and @physDescStructuredType plus their respective @...Encoding attributes.

For @publicationStatus (with @publicationStatusEncoding) it works with the RNG, but not with the XSD.

My last note in the previous comment was only for documenting this. Eventually, I would expect that the Schematron gives a message that, when using one of the relevant attributes in the <control>, <findAidDesc> or <archDesc> sections, one should set the related @...Encoding attribute in the <control> element. And, yes, if the @...Encoding attribute is set to "other...Encoding" values from the EAS lists would also be valid as the "other...Encoding" option covers completely different lists as well as lists that expand upon the EAS lists.

kerstarno commented 4 months ago

Adding @marieelia as eventually this might also apply to EAC-CPF given that it would be expected for EAC-CPF to also remove the predefined values from attributes and to use the @...Encoding attributes in <control> instead.

Also, for reference: the point about ensuring that <control> does include the relevant @...Encoding attribute(s) depending on which attributes are used in the <control> and in the descriptive sections is addressed in #4.