Skip to content

<interleave>

indicates that the constructs referenced by its children occur in any order (i.e. are interleaved)

Module tagdocsDEFCON

Attributes

Classes and content

Member of
May contain
Contained by

Note

If an ODD file makes use of this element, current processing software will not be able to generate a DTD from it. For this reason TEI P5 itself does not currently make use of interleave internally.

Example

<content>
  <interleave>
    <elementRef key="persName"/>
    <alternate minOccurs="0">
      <elementRef key="placeName"/>
      <elementRef key="location"/>
    </alternate>
    <elementRef key="note" minOccurs="0"/>
  </interleave>
</content>

This example describes a content model that consists of a mandatory persName element, zero or one of either placeName or location, and an optional note element, in any order.

To express this content model in a DTD, the original schema language for XML, one might use

(   persName
      | ( persName, note )
      | ( persName, ( placeName | location ) ) 
      | ( note, persName )
      | ( ( placeName | location ), persName )
      | ( persName, note, ( placeName | location ) )
      | ( persName, ( placeName | location ), note )
      | ( note, persName, ( placeName | location ) )
      | ( note, ( placeName | location ), persName )
      | ( ( placeName | location ), note, persName )
      | ( ( placeName | location ), persName, note )
    )

Schematron

<constraintSpec xmlns:sch="http://purl.oclc.org/dsdl/schematron" ident="interleavechilden" scheme="schematron" xml:lang="en">
    <constraint>
      <sch:rule context="tei:interleave">
        <sch:assert test="count(*) gt 1">The &lt;interleave&gt; element must have at least two child elements.</sch:assert>
      </sch:rule>
    </constraint>
  </constraintSpec>

Content model

<content>
    <classRef key="model.contentPart" minOccurs="1" maxOccurs="unbounded"/>
  </content>