FAND1 hack
boorletoele This is an ODD hack that one can use to generate a TEI schema that does not (really) have numbered <div>s, but also has deterministic DTD content models.
The basic idea is that we don't actually delete <div0> and <div1>, but rather rename them to something that should never actually interfere with our TEI encoding.
<?xml version="1.0"?>
<?oxygen RNGSchema="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_odds.rnc" type="compact"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0"
xmlns:rng="http://relaxng.org/ns/structure/1.0" xml:lang="en">
<teiHeader>
<fileDesc>
<titleStmt>
<title>
<choice>
<abbr>FAND</abbr>
<expan>Front for the Abolition of Numbered Divs</expan>
</choice> realized via a hack </title>
<author>Syd Bauman</author>
</titleStmt>
<publicationStmt>
<p>Intended for publication as an example for TEI users. No warrantee
express or implied.</p>
</publicationStmt>
<sourceDesc>
<p>Based on TEI Lite (from Sourceforge revision r1953 of <date
value="2006-12-05T02:35:47-05:00"/>)</p>
</sourceDesc>
</fileDesc>
<revisionDesc>
<change who="#sbauman.emt" date="2006-12-15T09:50">started</change>
</revisionDesc>
</teiHeader>
<text>
<body>
<p>This ODD is intended as an example of how to use a hack to rid a schema
of numbered <gi>div</gi>s and simultaneously avoid non-deterministic
DTDs. It is not intended to be actually used for encoding.</p>
<schemaSpec ident="teiFandHack" start="teiCorpus TEI text body">
<!-- Note that instances that use <text> or <body> as the -->
<!-- root element are definitionally not conforming TEI -->
<!-- documents; nonetheless, doing so can be very useful -->
<!-- for testing. -->
<!-- modules: same as for TEI Lite -->
<moduleRef key="tei"/>
<moduleRef key="core"/>
<moduleRef key="header"/>
<moduleRef key="textstructure"/>
<moduleRef key="figures"/>
<moduleRef key="linking"/>
<moduleRef key="analysis"/>
<moduleRef key="tagdocs"/>
<!-- FAND: rename <div0> and <div1> -->
<elementSpec ident="div0" module="textstructure" mode="replace">
<altIdent>DO_NOT_USE_THIS</altIdent>
<gloss>unused stub</gloss>
<desc>This element exists for the sole purpose of permitting DTDs
generated to have deterministic content models. As the name implies,
this element should never actually be used in a document instance.</desc>
<classes/>
<content>
<rng:empty/>
</content>
</elementSpec>
<elementSpec ident="div1" module="textstructure" mode="replace">
<altIdent>DO_NOT_USE_ME</altIdent>
<gloss>unused stub</gloss>
<desc>This element exists for the sole purpose of permitting DTDs
generated to have deterministic content models. As the name implies,
this element should never actually be used in a document instance.</desc>
<classes/>
<content>
<rng:empty/>
</content>
</elementSpec>
<!-- element deletion: same as for TEI Lite -->
<elementSpec ident="ab" mode="delete" module="linking"/>
<elementSpec ident="altGrp" mode="delete" module="linking"/>
<elementSpec ident="altIdent" mode="delete" module="tagdocs"/>
<elementSpec ident="alt" mode="delete" module="linking"/>
<elementSpec ident="analytic" mode="delete" module="core"/>
<elementSpec ident="attDef" mode="delete" module="tagdocs"/>
<elementSpec ident="attList" mode="delete" module="tagdocs"/>
<elementSpec ident="attRef" mode="delete" module="tagdocs"/>
<elementSpec ident="biblItem" mode="delete" module="core"/>
<elementSpec ident="biblStruct" mode="delete" module="core"/>
<elementSpec ident="binaryObject" mode="delete" module="core"/>
<elementSpec ident="broadcast" mode="delete" module="header"/>
<elementSpec ident="cb" mode="delete" module="core"/>
<elementSpec ident="classes" mode="delete" module="tagdocs"/>
<elementSpec ident="classSpec" mode="delete" module="tagdocs"/>
<elementSpec ident="cl" mode="delete" module="analysis"/>
<elementSpec ident="c" mode="delete" module="analysis"/>
<elementSpec ident="content" mode="delete" module="tagdocs"/>
<elementSpec ident="correction" mode="delete" module="header"/>
<elementSpec ident="datatype" mode="delete" module="tagdocs"/>
<elementSpec ident="defaultVal" mode="delete" module="tagdocs"/>
<elementSpec ident="desc" mode="delete" module="core"/>
<elementSpec ident="distinct" mode="delete" module="core"/>
<elementSpec ident="div2" module="textstructure" mode="delete"/>
<elementSpec ident="div3" module="textstructure" mode="delete"/>
<elementSpec ident="div4" module="textstructure" mode="delete"/>
<elementSpec ident="div5" module="textstructure" mode="delete"/>
<elementSpec ident="div6" module="textstructure" mode="delete"/>
<elementSpec ident="div7" module="textstructure" mode="delete"/>
<elementSpec ident="egXML" mode="delete" module="tagdocs"/>
<elementSpec ident="elementSpec" mode="delete" module="tagdocs"/>
<elementSpec ident="equipment" mode="delete" module="header"/>
<elementSpec ident="equiv" mode="delete" module="core"/>
<elementSpec ident="exemplum" mode="delete" module="tagdocs"/>
<elementSpec ident="fsdDecl" mode="delete" module="header"/>
<elementSpec ident="headItem" mode="delete" module="core"/>
<elementSpec ident="headLabel" mode="delete" module="core"/>
<elementSpec ident="hyphenation" mode="delete" module="header"/>
<elementSpec ident="imprimatur" mode="delete" module="textstructure"/>
<elementSpec ident="interpretation" mode="delete" module="header"/>
<elementSpec ident="joinGrp" mode="delete" module="linking"/>
<elementSpec ident="join" mode="delete" module="linking"/>
<elementSpec ident="linkGrp" mode="delete" module="linking"/>
<elementSpec ident="link" mode="delete" module="linking"/>
<elementSpec ident="listRef" mode="delete" module="tagdocs"/>
<elementSpec ident="macroSpec" mode="delete" module="tagdocs"/>
<elementSpec ident="measure" mode="delete" module="core"/>
<elementSpec ident="meeting" mode="delete" module="core"/>
<elementSpec ident="memberOf" mode="delete" module="tagdocs"/>
<elementSpec ident="metDecl" mode="delete" module="header"/>
<elementSpec ident="metSym" mode="delete" module="header"/>
<elementSpec ident="m" mode="delete" module="analysis"/>
<elementSpec ident="moduleRef" mode="delete" module="tagdocs"/>
<elementSpec ident="moduleSpec" mode="delete" module="tagdocs"/>
<elementSpec ident="monogr" mode="delete" module="core"/>
<elementSpec ident="normalization" mode="delete" module="header"/>
<elementSpec ident="phr" mode="delete" module="analysis"/>
<elementSpec ident="postBox" mode="delete" module="core"/>
<elementSpec ident="postCode" mode="delete" module="core"/>
<elementSpec ident="quotation" mode="delete" module="header"/>
<elementSpec ident="quote" mode="delete" module="core"/>
<elementSpec ident="recording" mode="delete" module="header"/>
<elementSpec ident="recordingStmt" mode="delete" module="header"/>
<elementSpec ident="remarks" mode="delete" module="tagdocs"/>
<elementSpec ident="schemaSpec" mode="delete" module="tagdocs"/>
<elementSpec ident="scriptStmt" mode="delete" module="header"/>
<elementSpec ident="segmentation" mode="delete" module="header"/>
<elementSpec ident="series" mode="delete" module="core"/>
<elementSpec ident="spanGrp" mode="delete" module="analysis"/>
<elementSpec ident="span" mode="delete" module="analysis"/>
<elementSpec ident="specDesc" mode="delete" module="tagdocs"/>
<elementSpec ident="specGrp" mode="delete" module="tagdocs"/>
<elementSpec ident="specGrpRef" mode="delete" module="tagdocs"/>
<elementSpec ident="specList" mode="delete" module="tagdocs"/>
<elementSpec ident="state" mode="delete" module="header"/>
<elementSpec ident="stdVals" mode="delete" module="header"/>
<elementSpec ident="street" mode="delete" module="core"/>
<elementSpec ident="stringVal" mode="delete" module="tagdocs"/>
<elementSpec ident="tag" mode="delete" module="tagdocs"/>
<elementSpec ident="tagsDecl" mode="delete" module="header"/>
<elementSpec ident="timeline" mode="delete" module="linking"/>
<elementSpec ident="valDesc" mode="delete" module="tagdocs"/>
<elementSpec ident="valItem" mode="delete" module="tagdocs"/>
<elementSpec ident="valList" mode="delete" module="tagdocs"/>
<elementSpec ident="variantEncoding" mode="delete" module="header"/>
<elementSpec ident="when" mode="delete" module="linking"/>
<elementSpec ident="w" mode="delete" module="analysis"/>
</schemaSpec>
</body>
</text>
</TEI>