<content>
<content> (content model) contains a declaration of the intended content model for the element (or other construct) being specified. [22.5 Element Specifications] | |||||||||
Module | tagdocs — Documentation Elements | ||||||||
Attributes |
|
||||||||
Contained by |
tagdocs: dataSpec elementSpec macroSpec moduleRef
|
||||||||
May contain | ANY | ||||||||
Example |
This sample content element indicates that the element being specified has no content: |
||||||||
Example |
This content element defines a content model, expressed directly in the TEI ODD language, that allows 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="summary" minOccurs="0" maxOccurs="1"/> <elementRef key="msItem" maxOccurs="unbounded"/> </sequence> </alternate> </content> |
||||||||
Example |
This sample content element defines a content model, expressed in the RELAX NG schema language, that allows 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 | A temporary constraint to give users a warning that in the future the content of content will be restricted to 1 and only 1 child element.
<sch:rule context="tei:content[ *[2] ]"> <sch:let name="tot_kids" value="count( * )"/> <sch:let name="tei_kids" value="count( tei:* )"/> <sch:let name="rng_kids" value="count( rng:* | rna:* )"/> <sch:let name="msg_part01" value="'In the near future the <content> element will be limited to 1 and only 1 child element. '"/> <sch:let name="msg_part02" value="'This <content> element is in '"/> <sch:let name="msg_part03" value="if ( local-name(..) eq 'elementSpec' ) then 'an ' else 'a '"/> <sch:let name="msg_part04" value="concat( local-name(..), ' with ' )"/> <sch:let name="msg_part05" value="if ( parent::tei:moduleRef/@key ) then 'a @key' else ''"/> <sch:let name="msg_part06" value="if ( parent::tei:moduleRef/@url ) then 'a @url' else ''"/> <sch:let name="msg_part07" value="if ( parent::tei:*/@ident ) then 'an @ident' else ''"/> <sch:let name="msg_part08" value="' of "'"/> <sch:let name="msg_part09" value="../@ident | ../@key | ../@url"/> <sch:let name="msg_part10" value="concat('" and has ', $tot_kids, ' children,')"/> <sch:let name="msgs_1to10" value="concat( $msg_part01, $msg_part02, $msg_part03, $msg_part04, $msg_part05, $msg_part06, $msg_part07, $msg_part08, $msg_part09, $msg_part10 )"/> <sch:report test="$tei_kids eq $tot_kids" role="warning"> <sch:value-of select="$msgs_1to10"/> which could be wrapped in a <sequence> element. </sch:report> <sch:report test="$rng_kids eq $tot_kids" role="warning"> <sch:value-of select="$msgs_1to10"/> which could be wrapped in an <rng:div> element. </sch:report> <sch:assert test="$tei_kids eq $tot_kids or $rng_kids eq $tot_kids" role="warning"> <sch:value-of select="$msgs_1to10"/> but those children are neither all TEI elements nor all RELAX NG elements, and thus this <content> is invalid and can not be easily rectified. </sch:assert> </sch:rule> |
||||||||
Content model |
<content> |
||||||||
Schema Declaration |
<rng:element name="content"> 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" }?, ( valList | model.contentPart+ | anyElement_content_3+ ) } |