[This local archive copy is from the official and canonical URL, http://www.icpsr.umich.edu/DDI/ddischem.html; please refer to the canonical source document if possible.]


For the original Codebook.DTD upon which the following diagram is based, click here. The Codebook.DTD invokes an XML version of the Exchange Tables Model (CALS) which can be seen in this file.

* == ELEMENT IS OPTIONAL & REPEATABLE
+ == ELEMENT IS MANDATORY & REPEATABLE
? == ELEMENT IS OPTIONAL & NON-REPEATABLE
  == ELEMENT IS MANDATORY & NON-REPEATABLE

0.0 codeBook (ATT == ID, xml:lang, source)
|
|---- 1.0 docDscr* (ATT == ID, xml:lang, source)
|     |
|     |---- 1.1 citation? (ATT == ID, xml:lang, source)
|     |     |
|     |     |---- 1.1.1 titlStmt (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 1.1.1.1 titl     (ATT == ID, xml:lang, source)
|     |     |     |---- 1.1.1.2 subTitl* (ATT == ID, xml:lang, source)
|     |     |     |---- 1.1.1.3 altTitl* (ATT == ID, xml:lang, source)
|     |     |     |---- 1.1.1.4 parTitl* (ATT == ID, xml:lang, source)
|     |     |     +---- 1.1.1.5 IDNo*    (ATT == ID, xml:lang, source, agency)
|     |     |
|     |     |---- 1.1.2 rspStmt? (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 1.1.2.1 AuthEnty*      (ATT == ID, xml:lang, source, affiliation)
|     |     |     |---- 1.1.2.2 dataCollector* (ATT == ID, xml:lang, source, abbr, affiliation)
|     |     |     +---- 1.1.2.3 othId*         (ATT == ID, xml:lang, source, type, role, affiliation)
|     |     |
|     |     |---- 1.1.3 prodStmt? (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 1.1.3.1 producer*     (ATT == ID, xml:lang, source,  abbr, affiliation, role)
|     |     |     |---- 1.1.3.2 copyright?    (ATT == ID, xml:lang, soource)
|     |     |     |---- 1.1.3.3 prodDate?     (ATT == ID, xml:lang, source, date)
|     |     |     |---- 1.1.3.4 prodPlac?     (ATT == ID, xml:lang, source)
|     |     |     |---- 1.1.3.5 software*     (ATT == ID, xml:lang, source, version)
|     |     |     |---- 1.1.3.6 fundAg*       (ATT == ID, xml:lang, source, abbr, role)
|     |     |     +---- 1.1.3.7 grantNo*      (ATT == ID, xml:lang, source, agency, role)
|     |     |
|     |     |---- 1.1.4 distStmt? (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 1.1.4.1 dataDist* (ATT == ID, xml:lang, source, abbr, affiliation)
|     |     |     |---- 1.1.4.2 contact*  (ATT == ID, xml:lang, source, affiliation)
|     |     |     |---- 1.1.4.3 depositr* (ATT == ID, xml:lang, source, abbr, affiliation)
|     |     |     |---- 1.1.4.4 depDate*  (ATT == ID, xml:lang, source, date)
|     |     |     +---- 1.1.4.5 distDate? (ATT == ID, xml:lang, source, date)
|     |     |
|     |     |---- 1.1.5 serStmt? (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 1.1.5.1 serName* (ATT == ID, xml:lang, source, abbr)
|     |     |     +---- 1.1.5.2 serInfo* (ATT == ID, xml:lang, source)
|     |     |
|     |     |---- 1.1.6 verStmt* (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 1.1.6.1 version? (ATT == ID, xml:lang, source, type, date)
|     |     |     |---- 1.1.6.2 verResp? (ATT == ID, xml:lang, source)
|     |     |     +---- 1.1.6.3 notes?   (ATT == ID, xml:lang, source, type, subject, level, resp)
|     |     |
|     |     |---- 1.1.7 biblCit? (ATT == ID, xml:lang, source)
|     |     +---- 1.1.8 notes?   (ATT == ID, xml:lang, source, type, subject, level, resp)
|     |
|     |---- 1.2 guide?     (ATT == ID, xml:lang, source)
|     |---- 1.3 docStatus? (ATT == ID, xml:lang, source)
|     |---- 1.4 docSrc?    (ATT == ID, xml:lang, source)
|     |     |
|     |     |---- 1.4.1 titlStmt (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 1.4.1.1 titl     (ATT == ID, xml:lang, source)
|     |     |     |---- 1.4.1.2 subTitl* (ATT == ID, xml:lang, source)
|     |     |     |---- 1.4.1.3 altTitl* (ATT == ID, xml:lang, source)
|     |     |     |---- 1.4.1.4 parTitl* (ATT == ID, xml:lang, source)
|     |     |     +---- 1.4.1.5 IDNo*    (ATT == ID, xml:lang, source, agency)
|     |     |
|     |     |---- 1.4.2 rspStmt? (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 1.4.2.1 AuthEnty*      (ATT == ID, xml:lang, source, affiliation)
|     |     |     |---- 1.4.2.2 dataCollector* (ATT == ID, xml:lang, source, abbr, affiliation)
|     |     |     +---- 1.4.2.3 othId*         (ATT == ID, xml:lang, source, type, role, affiliation)
|     |     |
|     |     |---- 1.4.3 prodStmt? (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 1.4.3.1 producer*     (ATT == ID, xml:lang, source,  abbr, affiliation, role)
|     |     |     |---- 1.4.3.2 copyright?    (ATT == ID, xml:lang, source)
|     |     |     |---- 1.4.3.3 prodDate?     (ATT == ID, xml:lang, source, date)
|     |     |     |---- 1.4.3.4 prodPlac?     (ATT == ID, xml:lang, source)
|     |     |     |---- 1.4.3.5 software*     (ATT == ID, xml:lang, source, version)
|     |     |     |---- 1.4.3.6 fundAg*       (ATT == ID, xml:lang, source, abbr, role)
|     |     |     +---- 1.4.3.7 grantNo*      (ATT == ID, xml:lang, source, agency, role)
|     |     |
|     |     |---- 1.4.4 distStmt? (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 1.4.4.1 dataDist* (ATT == ID, xml:lang, source, abbr, affiliation)
|     |     |     |---- 1.4.4.2 contact*  (ATT == ID, xml:lang, source, affiliation)
|     |     |     |---- 1.4.4.3 depositr* (ATT == ID, xml:lang, source, abbr, affiliation)
|     |     |     |---- 1.4.4.4 depDate*  (ATT == ID, xml:lang, source, date)
|     |     |     +---- 1.4.4.5 distDate? (ATT == ID, xml:lang, source, date)
|     |     |
|     |     |---- 1.4.5 serStmt? (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 1.4.5.1 serName* (ATT == ID, xml:lang, source, abbr)
|     |     |     +---- 1.4.5.2 serInfo* (ATT == ID, xml:lang, source)
|     |     |
|     |     |---- 1.4.6 verStmt* (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 1.4.6.1 version? (ATT == ID, xml:lang, source, type, date)
|     |     |     |---- 1.4.6.2 verResp? (ATT == ID, xml:lang, source)
|     |     |     +---- 1.4.6.3 notes?   (ATT == ID, xml:lang, source, type, subject, level, resp)
|     |     |
|     |     |---- 1.4.7 biblCit? (ATT == ID, xml:lang, source)
|     |     +---- 1.4.8 notes?   (ATT == ID, xml:lang, source, type, subject, level, resp)
|     |
|     +---- 1.5 notes?     (ATT == ID, xml:lang, source, type, subject, level, resp)
|
|---- 2.0 stdyDscr+ (ATT == ID, xml:lang, source)
|     |
|     |---- 2.1 citation+ (ATT == ID, xml:lang, source)
|     |     |
|     |     |---- 2.1.1 titlStmt (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 2.1.1.1 titl     (ATT == ID, xml:lang, source)
|     |     |     |---- 2.1.1.2 subTitl* (ATT == ID, xml:lang, source)
|     |     |     |---- 2.1.1.3 altTitl* (ATT == ID, xml:lang, source)
|     |     |     |---- 2.1.1.4 parTitl* (ATT == ID, xml:lang, source)
|     |     |     +---- 2.1.1.5 IDNo*    (ATT == ID, xml:lang, source, agency)
|     |     |
|     |     |---- 2.1.2 rspStmt? (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 2.1.2.1 AuthEnty*      (ATT == ID, xml:lang, source, affiliation)
|     |     |     |---- 2.1.2.2 dataCollector* (ATT == ID, xml:lang, source, abbr, affiliation)
|     |     |     +---- 2.1.2.3 othId*         (ATT == ID, xml:lang, source, type, role, affiliation)
|     |     |
|     |     |---- 2.1.3 prodStmt? (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 2.1.3.1 producer*     (ATT == ID, xml:lang, source, abbr, affilation, role)
|     |     |     |---- 2.1.3.2 copyright?    (ATT == ID, xml:lang, source)
|     |     |     |---- 2.1.3.3 prodDate?     (ATT == ID, xml:lang, source, date)
|     |     |     |---- 2.1.3.4 prodPlac?     (ATT == ID, xml:lang, source)
|     |     |     |---- 2.1.3.5 software*     (ATT == ID, xml:lang, source, version)
|     |     |     |---- 2.1.3.6 fundAg*       (ATT == ID, xml:lang, source, abbr, role)
|     |     |     +---- 2.1.3.7 grantNo*      (ATT == ID, xml:lang, source, agency, role)
|     |     |
|     |     |---- 2.1.4 distStmt? (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 2.1.4.1 dataDist* (ATT == ID, xml:lang, source, abbr, affiliation)
|     |     |     |---- 2.1.4.2 contact*  (ATT == ID, xml:lang, source, affiliation)
|     |     |     |---- 2.1.4.3 depositr* (ATT == ID, xml:lang, source, abbr, affiliation)
|     |     |     |---- 2.1.4.4 depDate*  (ATT == ID, xml:lang, source, date)
|     |     |     +---- 2.1.4.5 distDate? (ATT == ID, xml:lang, source, date)
|     |     |
|     |     |---- 2.1.5 serStmt? (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 2.1.5.1 serName* (ATT == ID, xml:lang, source, abbr)
|     |     |     +---- 2.1.5.2 serInfo* (ATT == ID, xml:lang, source)
|     |     |
|     |     |---- 2.1.6 verStmt* (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 2.1.6.1 version? (ATT == ID, xml:lang, source, type, date)
|     |     |     |---- 2.1.6.2 verResp? (ATT == ID, xml:lang, source)
|     |     |     +---- 2.1.6.3 notes?   (ATT == ID, xml:lang, source, type, subject, level, resp)
|     |     |
|     |     |---- 2.1.7 biblCit? (ATT == ID, xml:lang, source)
|     |     +---- 2.1.8 notes?   (ATT == ID, xml:lang, source, type, subject, level, resp)
|     |
|     |---- 2.2 stdyInfo* (ATT == ID, xml:lang, source)
|     |     |
|     |     |---- 2.2.1 subject? (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 2.2.1.1 keyword*  (ATT == ID, xml:lang, source)
|     |     |     +---- 2.2.1.2 topcClas* (ATT == ID, xml:lang, source, vocab) 
|     |     |
|     |     |---- 2.2.2 abstract* (ATT == ID, xml:lang, source, date)
|     |     |
|     |     |---- 2.2.3 sumDscr? (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 2.2.3.1 timePrd*   (ATT == ID, xml:lang, source, event, date)
|     |     |     |---- 2.2.3.2 collDate*  (ATT == ID, xml:lang, source, event, date)
|     |     |     |---- 2.2.3.3 nation*    (ATT == ID, xml:lang, source, abbr)
|     |     |     |---- 2.2.3.4 geogCover* (ATT == ID, xml:lang, source)
|     |     |     |---- 2.2.3.5 geogUnit*  (ATT == ID, xml:lang, source)
|     |     |     |---- 2.2.3.6 anlyUnit*  (ATT == ID, xml:lang, source, unit)
|     |     |     |---- 2.2.3.7 universe*  (ATT == ID, xml:lang, source, level, clusion)
|     |     |     +---- 2.2.3.8 dataKind*  (ATT == ID, xml:lang, source)
|     |     |
|     |     +---- 2.2.4 notes? (ATT == ID, xml:lang, source, type, subject, level, resp)
|     |
|     |---- 2.3 method* (ATT == ID, xml:lang, source)
|     |     |
|     |     |---- 2.3.1 dataColl? (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 2.3.1.1 timeMeth*  (ATT == ID, xml:lang, source, method)
|     |     |     |---- 2.3.1.2 frequenc*  (ATT == ID, xml:lang, source, freq)
|     |     |     |---- 2.3.1.3 sampProc*  (ATT == ID, xml:lang, source)
|     |     |     |---- 2.3.1.4 deviat*    (ATT == ID, xml:lang, source)
|     |     |     |---- 2.3.1.5 collMode*  (ATT == ID, xml:lang, source)
|     |     |     |---- 2.3.1.6 resInstru* (ATT == ID, xml:lang, source, type)
|     |     |     |---- 2.3.1.7 sources?   (ATT == ID, xml:lang, source)    <-----+
|     |     |     |     |                                                         |
|     |     |     |     |---- 2.3.1.7.1 dataSrc* (ATT == ID, xml:lang, source)    |
|     |     |     |     |---- 2.3.1.7.2 srcOrig* (ATT == ID, xml:lang, source)    |
|     |     |     |     |---- 2.3.1.7.3 srcChar* (ATT == ID, xml:lang, source)    |
|     |     |     |     |---- 2.3.1.7.4 srcDocu* (ATT == ID, xml:lang, source)    |
|     |     |     |     +---- 2.3.1.7.5 sources* (ATT == ID, xml:lang, source) ---+
|     |     |     |     NOTE: ELEMENT sources has recursive definition,
|     |     |     |           so any  within a codebook can
|     |     |     |           themselves list multiple, subsidiary sources.
|     |     |     |
|     |     |     |---- 2.3.1.8 collSitu*  (ATT == ID, xml:lang, source)
|     |     |     |---- 2.3.1.9 actMin*    (ATT == ID, xml:lang, source)
|     |     |     |---- 2.3.1.10 ConOps*   (ATT == ID, xml:lang, source, agency)
|     |     |     |---- 2.3.1.11 weight*   (ATT == ID, xml:lang, source)
|     |     |     +---- 2.3.1.12 cleanOps* (ATT == ID, xml:lang, source)
|     |     |
|     |     |---- 2.3.2 notes?    (ATT == ID, xml:lang, source, type, subject, level, resp)
|     |     |---- 2.3.3 anlyInfo? (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 2.3.3.1 respRate*  (ATT == ID, xml:lang, source)
|     |     |     |---- 2.3.3.2 EstSmpErr* (ATT == ID, xml:lang, source)
|     |     |     +---- 2.3.3.3 dataAppr*  (ATT == ID, xml:lang, source)
|     |     |
|     |     +---- 2.3.4 stdyClas? (ATT == ID, xml:lang, source, type)
|     |
|     |---- 2.4 dataAccs* (ATT == ID, xml:lang, source)
|     |     |
|     |     |---- 2.4.1 setAvail* (ATT == ID, xml:lang, source, media)
|     |     |     |
|     |     |     |---- 2.4.1.1 accsPlac*  (ATT == ID, xml:lang, source, URL)
|     |     |     |---- 2.4.1.2 origArch?  (ATT == ID, xml:lang, source)
|     |     |     |---- 2.4.1.3 avlStatus* (ATT == ID, xml:lang, source)
|     |     |     |---- 2.4.1.4 collSize?  (ATT == ID, xml:lang, source)
|     |     |     |---- 2.4.1.5 complete?  (ATT == ID, xml:lang, source)
|     |     |     |---- 2.4.1.6 fileQnty?  (ATT == ID, xml:lang, source)
|     |     |     +---- 2.4.1.7 notes*     (ATT == ID, xml:lang, source, type, subject, level, resp)
|     |     |
|     |     |---- 2.4.2 useStmt? (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 2.4.2.1 restrctn?  (ATT == ID, xml:lang, source)
|     |     |     |---- 2.4.2.2 contact?   (ATT == ID, xml:lang, source, affiliation)
|     |     |     |---- 2.4.2.3 citReq?    (ATT == ID, xml:lang, source)
|     |     |     |---- 2.4.2.4 deposReq?  (ATT == ID, xml:lang, source)
|     |     |     |---- 2.4.2.5 disclaim*  (ATT == ID, xml:lang, source)
|     |     |     |---- 2.4.2.6 anlyCond*  (ATT == ID, xml:lang, source)
|     |     |     +---- 2.4.2.7 notes*     (ATT == ID, xml:lang, source, type, subject, level, resp)
|     |     |
|     |     +---- 2.4.3 notes? (ATT == ID, xml:lang, source, type, subject, level, resp)
|     |
|     +---- 2.5 othrStdyMat* (ATT == ID, xml:lang, source)
|           |
|           |---- 2.5.1 relMat*  (ATT == ID, xml:lang, source)
|           |---- 2.5.2 relStdy* (ATT == ID, xml:lang, source)
|           |---- 2.5.3 relPubl* (ATT == ID, xml:lang, source)
|           +---- 2.5.4 othRefs* (ATT == ID, xml:lang, source)
|
|---- 3.0 fileDscr* (ATT == ID, xml:lang, source, sdatrefs, methrefs)
|     |
|     |---- 3.1 fileTxt? (ATT == ID, xml:lang, source)
|     |     |
|     |     |---- 3.1.1 fileName? (ATT ==ID, xml:lang, source)
|     |     |---- 3.1.2 fileCont? (ATT == ID, xml:lang, source)
|     |     |---- 3.1.3 fileStrc? (ATT == ID, xml:lang, source, type)
|     |     |     |
|     |     |     |---- 3.1.3.1 recGrp* (ATT == ID, xml:lang, source, rectype, keyvar, recidvar)
|     |     |     |     |
|     |     |     |     |---- 3.1.3.1.1 labl?      (ATT == ID, xml:lang, source, level)
|     |     |     |     +---- 3.1.3.1.2 recDimnsn? (ATT == ID, xml:lang, source)
|     |     |     |           |
|     |     |     |           |---- 3.1.3.1.2.1 varQnty?  (ATT == ID, xml:lang, source)
|     |     |     |           |---- 3.1.3.1.2.2 caseQnty? (ATT == ID, xml:lang, source)
|     |     |     |           +---- 3.1.3.1.2.3 logRecL?  (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     +---- 3.1.3.2 notes? (ATT == ID, xml:lang, source, type, subject, level, resp)
|     |     |
|     |     |---- 3.1.4 dimensns? (ATT == ID, xml:lang, source)
|     |     |     |
|     |     |     |---- 3.1.4.1 caseQnty*  (ATT == ID, xml:lang, source)
|     |     |     |---- 3.1.4.2 varQnty*   (ATT == ID, xml:lang, source)
|     |     |     |---- 3.1.4.3 logRecL*   (ATT == ID, xml:lang, source)
|     |     |     |---- 3.1.4.4 recPrCas*  (ATT == ID, xml:lang, source)
|     |     |     +---- 3.1.4.5 recNumTot* (ATT == ID, xml:lang, source)
|     |     |     
|     |     |---- 3.1.5 fileType?  (ATT == ID, xml:lang, source)
|     |     |---- 3.1.6 format?    (ATT == ID, xml:lang, source)
|     |     |---- 3.1.7 filePlac?  (ATT == ID, xml:lang, source)
|     |     |---- 3.1.8 dataChck?  (ATT == ID, xml:lang, source)
|     |     |---- 3.1.9 ProcStat?  (ATT == ID, xml:lang, source)
|     |     |---- 3.1.10 dataMsng? (ATT == ID, xml:lang, source)
|     |     |---- 3.1.11 software* (ATT == ID, xml:lang, source, version)
|     |     +---- 3.1.12 verStmt?  (ATT == ID, xml:lang, source)
|     |           |
|     |           |---- 3.1.12.1 version? (ATT == ID, xml:lang, source, type, date)
|     |           |---- 3.1.12.2 verResp? (ATT == ID, xml:lang, source)
|     |           +---- 3.1.12.3 notes?   (ATT == ID, xml:lang, source, type, subject, level, resp)
|     |      
|     +---- 3.2 notes? (ATT == ID, xml:lang, source, type, subject, level, resp)
|
|---- 4.0 dataDscr* (ATT == ID, xml:lang, source)
|     |
|     |---- 4.1 varGrp* (ATT == ID, xml:lang, source, type, var, name, sdatrefs, methrefs)
|     |     |
|     |     |---- 4.1.1 labl?     (ATT == ID, xml:lang, source, level)
|     |     |---- 4.1.2 txt*      (ATT == ID, xml:lang, source, level)
|     |     |---- 4.1.3 defntn?   (ATT == ID, xml:lang, source)
|     |     |---- 4.1.4 universe? (ATT == ID, xml:lang, source, level, clusion)
|     |     +---- 4.1.5 notes?    (ATT == ID, xml:lang, source, type, subject, level, resp)
|     |
|     +---- 4.2 var* (ATT == ID, xml:lang, source, name, wgt, wgt-var, qstn, files, format, dcml, intrvl, sdatrefs, methrefs)
|           |
|           |---- 4.2.1 location?   (ATT == ID, xml:lang, source, StartPos, EndPos, width, cardNo)
|           |---- 4.2.2 labl?       (ATT == ID, xml:lang, source, level)
|           |---- 4.2.3 imputation? (ATT == ID, xml:lang, source)
|           |---- 4.2.4 security?   (ATT == ID, xml:lang, source, date)
|           |---- 4.2.5 embargo?    (ATT == ID, xml:lang, source, date)
|           |---- 4.2.6 qstn*       (ATT == ID, xml:lang, source, qstn, var, seqNo, sdatrefs)
|           |     |
|           |     |---- 4.2.6.1 preQTxt*  (ATT == ID, xml:lang, source)
|           |     |---- 4.2.6.2 qstnLit*  (ATT == ID, xml:lang, source)
|           |     |---- 4.2.6.3 postQTxt* (ATT == ID, xml:lang, source)
|           |     |---- 4.2.6.4 forward*  (ATT == ID, xml:lang, source, qstn)
|           |     |---- 4.2.6.5 backward* (ATT == ID, xml:lang, source, qstn)
|           |     +---- 4.2.6.6 ivuInstr* (ATT == ID, xml:lang, source)
|           |
|           |     NOTE: qstn ELEMENT may include mixed #PCDATA content.
|           |
|           |---- 4.2.7 valrng*     (ATT == ID, xml:lang, source, relation)
|           |     |
|           |     |---- 4.2.7.1 range* (ATT == ID, xml:lang, source, UNITS)
|           |     |     |
|           |     |     |---- 4.2.7.1.1 begin (ATT == ID, xml:lang, source, INCLUSIVE, VALUE)
|           |     |     +---- 4.2.7.1.2 end   (ATT == ID, xml:lang, source, INCLUSIVE, VALUE)
|           |     |
|           |     |---- 4.2.7.2 item*  (ATT == ID, xml:lang, source, UNITS, VALUE)
|           |     +---- 4.2.7.3 key*   (ATT == ID, xml:lang, source)
|           |
|           |---- 4.2.8 invalrng*   (ATT == ID, xml:lang, source, relation)
|           |     |
|           |     |---- 4.2.8.1 range* (ATT == ID, xml:lang, source, UNITS)
|           |     |     |
|           |     |     |---- 4.2.8.1.1 begin (ATT == ID, xml:lang, source, INCLUSIVE, VALUE)
|           |     |     +---- 4.2.8.1.2 end   (ATT == ID, xml:lang, source, INCLUSIVE, VALUE)
|           |     |
|           |     |---- 4.2.8.2 item*  (ATT == ID, xml:lang, source, UNITS, VALUE)
|           |     +---- 4.2.8.3 key*   (ATT == ID, xml:lang, source)
|           |
|           |---- 4.2.9 undocCod*   (ATT == ID, xml:lang, source)
|           |---- 4.2.10 universe*  (ATT == ID, xml:lang, source, level, clusion)
|           |---- 4.2.11 TotlResp?  (ATT == ID, xml:lang, source)
|           |---- 4.2.12 sumStat*   (ATT == ID, xml:lang, source, wgtd, weight, type)
|           |---- 4.2.13 txt*       (ATT == ID, xml:lang, source, level)
|           |---- 4.2.14 catgryGrp* (ATT == ID, xml:lang, source, missing, missType)
|           |     |
|           |     |---- 4.2.14.1 labl?   (ATT == ID, xml:lang, source, level)
|           |     |---- 4.2.14.2 txt*    (ATT == ID, xml:lang, source, level)
|           |     +---- 4.2.14.3 catgry* (ATT == ID, xml:lang, source, missing, missType)
|           |           |
|           |           |---- 4.2.14.3.1 catValu? (ATT == ID, xml:lang, source)
|           |           |---- 4.2.14.3.2 labl?    (ATT == ID, xml:lang, source, level)
|           |           |---- 4.2.14.3.3 txt*     (ATT == ID, xml:lang, source, level)
|           |           +---- 4.2.14.3.4 catStat* (ATT == ID, xml:lang, source, type, URI)
|           |
|           |---- 4.2.15 codInstr* (ATT == ID, xml:lang, source)
|           |---- 4.2.16 verStmt*  (ATT == ID, xml:lang, source)
|           |     |
|           |     |---- 4.2.16.1 version? (ATT == ID, xml:lang, source, type, date)
|           |     |---- 4.2.16.2 verResp? (ATT == ID, xml:lang, source)
|           |     +---- 4.2.16.3 notes?   (ATT == ID, xml:lang, source, type, subject, level, resp)
|           |
|           +---- 4.2.17 notes* (ATT == ID, xml:lang, source, type, subject, level, resp)
|
+---- 5.0 otherMat* (ATT == ID, xml:lang, source, type, level, URI)