The current content model of <teiCorpus> is:
teiHeader,
(
( model.resourceLike+, ( TEI | teiCorpus )* )
|
( TEI | teiCorpus )+ )
)
That is, you may *either* have a series of 1 or more <TEI> and
<teiCorpus> elements, intermingled; OR you can have one or more
of <facsimile>, <fsdDecl>, <sourceDoc>, and <text> elements
intermingled followed by zero or more <TEI> and <teiCorpus> elements
intermingled. This is exactly the same as saying
teiHeader, model.resourceLike*, ( TEI | teiCorpus )*
except that it requires at least one child <TEI>, <teiCorpus>,
<facsimile>, <fsdDecl>, <sourceDoc>, or <text>.
In the new <standOff> world, we have voted to make <TEI> a member of
model.resourceLike. Thus we have to alter the content model of
<teiCorpus> because as written it would be ambiguous (if a <TEI> is
your first child after <teiHeader>, you don't know which branch of
the content model you are in).
It is not too difficult to solve the ambiguity problem:
teiHeader,
(
( model.resourceLike+, ( teiCorpus, ( TEI | teiCorpus )* )? )
|
( teiCorpus, ( TEI | teiCorpus )* ) )
)
I am pretty confident this content model validates the same set of
documents (and, perhaps as importantly, rejects the same set of
documents) as the original content model (with <TEI> in
model.resourceLike). I am not against using this content model. But
it occurs to me that
a) it is a bit cumbersome
b) the set of documents permitted is already screwy
c) it looks very different from the content model of <TEI>, which
(in the new world order) <teiCorpus> is very similar to.
One possible solution is to
1) add <teiCorpus> to model.resourceLike, too; and then
2) change content model of <teiCorpus> to match that of <TEI> (in
the new standOff world):
teiHeader, model.resourceLike+
This has the advantage of having a very clean, understandable content
model for <teiCorpus> (and no ambiguity). It has the disadvantage
that it allows for even more screwy things. E.g.
<teiCorpus>
<teiHeader>
<standOff>
<TEI>
<facsimile>
<TEI>
<teiCorpus>
<TEI>
<facsimile>
<TEI>
<teiCorpus>
<facsimile>
</teiCorpus>
It has the feature (which some will consider an advantage, others a
disadvantage, I'm sure) that <TEI> and <teiCorpus> become the same
thing. Just as an XSLT stylesheet can have an outermost element of
<xsl:stylesheet> or <xsl:transform>, no difference, a TEI document
will be able to have <TEI> or <teiCorpus> as an outermost element, no
difference. Same goes at every level of nesting where one is allowed:
so is the other, and it can have the same content.
Personally, I still think putting <TEI> into model.resourceLike was
probably a mistake, but once we've done that, I'm inclined to say
throw <teiCorpus> in there, too.