Skip to content

On elementSpec @ident

Syd Bauman edited this page Dec 11, 2022 · 2 revisions

The @ident attribute of an element specification element serves a triple purpose.

Element specification identifier

It identifies the element specification so that it can be referred to in an element specification reference (elementRef) or an element specification derivation statement (elementSpec[@mode]).

Both an elementRef and an elementSpec[@mode] element specify the schema specification with a @source attribute and the element specification with the @key attribute.

Each value of //elementSpec/@ident MUST be unique within a derived schema specification.

Pattern name

The value of elementSpec/@ident is used in to generate the RelaxNG pattern used for the element being specified. Since this pattern MUST be unique in the final RelaxNG grammar, its value is combined (somehow) with other information to generate a unique value. Since the entire purpose of The value of the @ident attribute together with the @prefix attribute of elementSpec and the containing schemaSpec forms the name of the generated RelaxNG pattern.

The combination of @prefix and @ident MUST be unique in the final RelaxNG grammar.

Element name

The name of the specified element is a QName. Its namespace URI is specified in the @ns attribute of elementSpec element or the containing schemaSpec. It defaults to the TEI namespace URI.

The local name is specified by an altIdent element suitable for the selected target language. The @ident attribute gives the default value of this altIdent.

For this use, there are no uniqueness constraints.