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:
- Make
@module required. This is slightly backwards-incompatible, but the only fallout is that people's ODD files become more precisely specified.
- 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).
- 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.
The
@moduleattribute 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 removemodule="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
@moduleattributes, But as ODD chaining becomes (we hope) more common, we need a definite stance that is clearly documented.Options are:
@modulerequired. This is slightly backwards-incompatible, but the only fallout is that people's ODD files become more precisely specified.<moduleRef>; instead, such elements would have to be explicitly deleted through the use of their@ident.