Skip to content

When @module attribute is missing, what should a processor do? #2840

Description

@martindholmes

The @module attribute on <*Spec> or <attDef> elements is optional, but it's not clear what should happen when a processor encounters an element without this attribute in a base ODD. In this situation, the current Stylesheets ignore the element entirely; so, for example, if you remove module="core" from the TEI <p> element's <elementSpec> in p5subset.xml, there is then no <p> element specified in the output schema, nor are there any references to it.

This is definitely one approach, but as far as we can see, it's not documented anywhere. The problem is rarely encountered because most customization ODDs are processed against p5subset.xml, and p5subset.xml does not omit any @module attributes, But as ODD chaining becomes (we hope) more common, we need a definite stance that is clearly documented.

Options are:

  1. Make @module required. This is slightly backwards-incompatible, but the only fallout is that people's ODD files become more precisely specified.
  2. Decide and document that the removal of all such specifications is the correct behaviour for a processor (and make processors flag this with warning messages, perhaps).
  3. Decide that this behaviour is wrong, and that some other behaviour is appropriate, and that such specifications should be silently included. We (@sydb and @martindholmes) consider this to be a very bad idea, because it would prevent any customizer from excluding such elements using <moduleRef>; instead, such elements would have to be explicitly deleted through the use of their @ident.

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions