<content>

<content> (content model) contains a declaration of the intended content model for the element (or other construct) being specified. [22.5 Element Specifications]
Moduletagdocs — Documentation Elements
Attributesatt.global (@xml:id, @n, @xml:lang, @xml:base, @xml:space) (att.global.rendition (@rend, @style, @rendition)) (att.global.linking (@corresp, @synch, @sameAs, @copyOf, @next, @prev, @exclude, @select)) (att.global.analytic (@ana)) (att.global.facs (@facs)) (att.global.change (@change)) (att.global.responsibility (@cert, @resp)) (att.global.source (@source))
autoPrefixcontrols whether or not pattern names generated in the corresponding RELAX NG schema source are automatically prefixed to avoid potential nameclashes.
Status Optional
Datatype teidata.truthValue
Legal values are:
true
Each name referenced in e.g. a <rng:ref> element within a content model is automatically prefixed by the value of the prefix attribute on the current schemaSpec [Default]
false
No prefixes are added: any prefix required by the value of the prefix attribute on the current schemaSpec must therefore be supplied explicitly, as appropriate.
Contained by
May contain
Note

As the example shows, content models may be expressed using the RELAX NG syntax directly. To avoid ambiguity when schemas using elements from different namespaces are created, the name supplied for an element in a content model will be automatically prefixed by a short string, as specified by the prefix attribute on schemaSpec. The autoPrefix attribute may be used to reverse this behaviour.

Alternatively, a content model may be expressed using the TEI valList element.

In earlier versions of these Guidelines, an empty content element was understood to have the same effect as a content with a single empty child. this practice is deprecated, and as of 2019-02-25 will be removed.

Example

This content element indicates that the element being specified has no content:

<content>
 <empty/>
</content>
Example

This content element defines a content model allowing either a sequence of paragraphs or a series of msItem elements optionally preceded by a summary:

<content>
 <alternate>
  <classRef key="model.pLike"
   maxOccurs="unbounded"/>

  <sequence>
   <elementRef key="summaryminOccurs="0"
    maxOccurs="1"/>

   <elementRef key="msItem"
    maxOccurs="unbounded"/>

  </sequence>
 </alternate>
</content>
Example

This content model defines a content model allowing either a sequence of paragraphs or a series of msItem elements optionally preceded by a summary:

<content>
 <rng:choice>
  <rng:oneOrMore>
   <rng:ref name="model.pLike"/>
  </rng:oneOrMore>
  <rng:group>
   <rng:optional>
    <rng:ref name="summary"/>
   </rng:optional>
   <rng:oneOrMore>
    <rng:ref name="msItem"/>
   </rng:oneOrMore>
  </rng:group>
 </rng:choice>
</content>
Schematron

<sch:assert test="*">The use of the <content> element
without any child elements is deprecated, and will be considered
invalid after 2019-08-25. Use a child <empty> element to
indicate that the element being specified is not allowed to have
content.</sch:assert>
Content model
<content>
 <alternate>
  <classRef key="model.contentPart"
   minOccurs="0maxOccurs="unbounded"/>

  <anyElement require="http://relaxng.org/ns/structure/1.0"
   minOccurs="1maxOccurs="unbounded"/>

 </alternate>
</content>
Schema Declaration
<rng:element name="content">
 <rng:ref name="att.global.attributes"/>
 <rng:ref name="att.global.rendition.attributes"/>
 <rng:ref name="att.global.linking.attributes"/>
 <rng:ref name="att.global.analytic.attributes"/>
 <rng:ref name="att.global.facs.attributes"/>
 <rng:ref name="att.global.change.attributes"/>
 <rng:ref name="att.global.responsibility.attributes"/>
 <rng:ref name="att.global.source.attributes"/>
 <rng:optional>
  <rng:attribute name="autoPrefix"
   a:defaultValue="true">

   <rng:choice>
    <rng:value>true</rng:value>
    <rng:value>false</rng:value>
   </rng:choice>
  </rng:attribute>
 </rng:optional>
 <rng:choice>
  <rng:zeroOrMore>
   <rng:ref name="model.contentPart"/>
  </rng:zeroOrMore>
  <rng:oneOrMore>
   <rng:ref name="anyElement-content"/>
  </rng:oneOrMore>
 </rng:choice>
</rng:element>
element content
{
   att.global.attributes,
   att.global.rendition.attributes,
   att.global.linking.attributes,
   att.global.analytic.attributes,
   att.global.facs.attributes,
   att.global.change.attributes,
   att.global.responsibility.attributes,
   att.global.source.attributes,
   attribute autoPrefix { "true" | "false" }?,
   ( model.contentPart* | anyElement-content+ )
}