| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035 | namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"namespace ctrl = "http://nwalsh.com/xmlns/schema-control/"default namespace db = "http://docbook.org/ns/docbook"namespace html = "http://www.w3.org/1999/xhtml"namespace mml = "http://www.w3.org/1998/Math/MathML"namespace rng = "http://relaxng.org/ns/structure/1.0"namespace s = "http://purl.oclc.org/dsdl/schematron"namespace svg = "http://www.w3.org/2000/svg"namespace xlink = "http://www.w3.org/1999/xlink"# This file is part of DocBook Assembly V5.1b7# # Copyright 2008-2011 HaL Computer Systems, Inc.,# O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software# Corporation, Norman Walsh, Sun Microsystems, Inc., and the# Organization for the Advancement of Structured Information# Standards (OASIS).# # Permission to use, copy, modify and distribute the DocBook schema# and its accompanying documentation for any purpose and without fee# is hereby granted in perpetuity, provided that the above copyright# notice and this paragraph appear in all copies. The copyright# holders make no representation about the suitability of the schema# for any purpose. It is provided "as is" without expressed or implied# warranty.# # If you modify the DocBook schema in any way, label your schema as a# variant of DocBook. See the reference documentation# (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook)# for more information.# # Please direct all questions, bug reports, or suggestions for changes# to the docbook@lists.oasis-open.org mailing list. For more# information, see http://www.oasis-open.org/docbook/.# # ======================================================================div {  db._any.attribute =        ## Any attribute, including any attribute in any namespace.    attribute * { text }  db._any =        ## Any element from almost any namespace    element * - (db:* | html:*) {      (db._any.attribute | text | db._any)*    }}db.arch.attribute =    ## Designates the computer or chip architecture to which the element applies  attribute arch { text }db.audience.attribute =    ## Designates the intended audience to which the element applies, for example, system administrators, programmers, or new users.  attribute audience { text }db.condition.attribute =    ## provides a standard place for application-specific effectivity  attribute condition { text }db.conformance.attribute =    ## Indicates standards conformance characteristics of the element  attribute conformance { text }db.os.attribute =    ## Indicates the operating system to which the element is applicable  attribute os { text }db.revision.attribute =    ## Indicates the editorial revision to which the element belongs  attribute revision { text }db.security.attribute =    ## Indicates something about the security level associated with the element to which it applies  attribute security { text }db.userlevel.attribute =    ## Indicates the level of user experience for which the element applies  attribute userlevel { text }db.vendor.attribute =    ## Indicates the computer vendor to which the element applies.  attribute vendor { text }db.wordsize.attribute =    ## Indicates the word size (width in bits) of the computer architecture to which the element applies  attribute wordsize { text }db.effectivity.attributes =  db.arch.attribute?  & db.audience.attribute?  & db.condition.attribute?  & db.conformance.attribute?  & db.os.attribute?  & db.revision.attribute?  & db.security.attribute?  & db.userlevel.attribute?  & db.vendor.attribute?  & db.wordsize.attribute?db.endterm.attribute =    ## Points to the element whose content is to be used as the text of the link  attribute endterm { xsd:IDREF }db.linkend.attribute =    ## Points to an internal link target by identifying the value of its xml:id attribute  attribute linkend { xsd:IDREF }db.linkends.attribute =    ## Points to one or more internal link targets by identifying the value of their xml:id attributes  attribute linkends { xsd:IDREFS }db.xlink.href.attribute =    ## Identifies a link target with a URI  attribute xlink:href { xsd:anyURI }db.xlink.simple.type.attribute =    ## Identifies the XLink link type  attribute xlink:type {        ## An XLink simple link type    "simple"  }db.xlink.role.attribute =    ## Identifies the XLink role of the link  attribute xlink:role { xsd:anyURI }db.xlink.arcrole.attribute =    ## Identifies the XLink arcrole of the link  attribute xlink:arcrole { xsd:anyURI }db.xlink.title.attribute =    ## Identifies the XLink title of the link  attribute xlink:title { text }db.xlink.show.enumeration =    ## An application traversing to the ending resource should load it in a new window, frame, pane, or other relevant presentation context.  "new"  |     ## An application traversing to the ending resource should load the resource in the same window, frame, pane, or other relevant presentation context in which the starting resource was loaded.    "replace"  |     ## An application traversing to the ending resource should load its presentation in place of the presentation of the starting resource.    "embed"  |     ## The behavior of an application traversing to the ending resource is unconstrained by XLink. The application should look for other markup present in the link to determine the appropriate behavior.    "other"  |     ## The behavior of an application traversing to the ending resource is unconstrained by this specification. No other markup is present to help the application determine the appropriate behavior.    "none"db.xlink.show.attribute =    ## Identifies the XLink show behavior of the link  attribute xlink:show { db.xlink.show.enumeration }db.xlink.actuate.enumeration =    ## An application should traverse to the ending resource immediately on loading the starting resource.  "onLoad"  |     ## An application should traverse from the starting resource to the ending resource only on a post-loading event triggered for the purpose of traversal.    "onRequest"  |     ## The behavior of an application traversing to the ending resource is unconstrained by this specification. The application should look for other markup present in the link to determine the appropriate behavior.    "other"  |     ## The behavior of an application traversing to the ending resource is unconstrained by this specification. No other markup is present to help the application determine the appropriate behavior.    "none"db.xlink.actuate.attribute =    ## Identifies the XLink actuate behavior of the link  attribute xlink:actuate { db.xlink.actuate.enumeration }db.xlink.simple.link.attributes =  db.xlink.simple.type.attribute?  & db.xlink.href.attribute?  & db.xlink.role.attribute?  & db.xlink.arcrole.attribute?  & db.xlink.title.attribute?  & db.xlink.show.attribute?  & db.xlink.actuate.attribute?db.xlink.attributes =  db.xlink.simple.link.attributes  | (db.xlink.extended.link.attributes     | db.xlink.locator.link.attributes     | db.xlink.arc.link.attributes     | db.xlink.resource.link.attributes     | db.xlink.title.link.attributes)db.xml.id.attribute =    ## Identifies the unique ID value of the element  attribute xml:id { xsd:ID }db.version.attribute =    ## Specifies the DocBook version of the element and its descendants  attribute version { text }db.xml.lang.attribute =    ## Specifies the natural language of the element and its descendants  attribute xml:lang { text }db.xml.base.attribute =    ## Specifies the base URI of the element and its descendants  attribute xml:base { xsd:anyURI }db.remap.attribute =    ## Provides the name or similar semantic identifier assigned to the content in some previous markup scheme  attribute remap { text }db.xreflabel.attribute =    ## Provides the text that is to be generated for a cross reference to the element  attribute xreflabel { text }db.xrefstyle.attribute =    ## Specifies a keyword or keywords identifying additional style information  attribute xrefstyle { text }db.revisionflag.enumeration =    ## The element has been changed.  "changed"  |     ## The element is new (has been added to the document).    "added"  |     ## The element has been deleted.    "deleted"  |     ## Explicitly turns off revision markup for this element.    "off"db.revisionflag.attribute =    ## Identifies the revision status of the element  attribute revisionflag { db.revisionflag.enumeration }db.dir.enumeration =    ## Left-to-right text  "ltr"  |     ## Right-to-left text    "rtl"  |     ## Left-to-right override    "lro"  |     ## Right-to-left override    "rlo"db.dir.attribute =    ## Identifies the direction of text in an element  attribute dir { db.dir.enumeration }db.common.base.attributes =  db.version.attribute?  & db.xml.lang.attribute?  & db.xml.base.attribute?  & db.remap.attribute?  & db.xreflabel.attribute?  & db.revisionflag.attribute?  & db.dir.attribute?  & db.effectivity.attributesdb.common.attributes =  db.xml.id.attribute?  & db.common.base.attributes  & db.annotations.attribute?db.common.idreq.attributes =  db.xml.id.attribute  & db.common.base.attributes  & db.annotations.attribute?db.common.linking.attributes =  (db.linkend.attribute | db.xlink.attributes)?db.common.req.linking.attributes =  db.linkend.attribute | db.xlink.attributesdb.common.data.attributes =    ## Specifies the format of the data  attribute format { text }?,  (   ## Indentifies the location of the data by URI   attribute fileref { xsd:anyURI }   |      ## Identifies the location of the data by external identifier (entity name)     attribute entityref { xsd:ENTITY })db.verbatim.continuation.enumeration =    ## Line numbering continues from the immediately preceding element with the same name.  "continues"  |     ## Line numbering restarts (begins at 1, usually).    "restarts"db.verbatim.continuation.attribute =    ## Determines whether line numbering continues from the previous element or restarts.  attribute continuation { db.verbatim.continuation.enumeration }db.verbatim.linenumbering.enumeration =    ## Lines are numbered.  "numbered"  |     ## Lines are not numbered.    "unnumbered"db.verbatim.linenumbering.attribute =    ## Determines whether lines are numbered.  attribute linenumbering { db.verbatim.linenumbering.enumeration }db.verbatim.startinglinenumber.attribute =    ## Specifies the initial line number.  attribute startinglinenumber { xsd:integer }db.verbatim.language.attribute =    ## Identifies the language (i.e. programming language) of the verbatim content.  attribute language { text }db.verbatim.xml.space.attribute =    ## Can be used to indicate explicitly that whitespace in the verbatim environment is preserved. Whitespace must always be preserved in verbatim environments whether this attribute is specified or not.  attribute xml:space {        ## Whitespace must be preserved.    "preserve"  }db.verbatim.common.attributes =  db.verbatim.continuation.attribute?  & db.verbatim.linenumbering.attribute?  & db.verbatim.startinglinenumber.attribute?  & db.verbatim.xml.space.attribute?db.verbatim.attributes =  db.verbatim.common.attributes & db.verbatim.language.attribute?db.label.attribute =    ## Specifies an identifying string for presentation purposes  attribute label { text }db.width.characters.attribute =    ## Specifies the width (in characters) of the element  attribute width { xsd:nonNegativeInteger }db.spacing.enumeration =    ## The spacing should be "compact".  "compact"  |     ## The spacing should be "normal".    "normal"db.spacing.attribute =    ## Specifies (a hint about) the spacing of the content  attribute spacing { db.spacing.enumeration }db.pgwide.enumeration =    ## The element should be rendered in the current text flow (with the flow column width).  "0"  |     ## The element should be rendered across the full text page.    "1"db.pgwide.attribute =    ## Indicates if the element is rendered across the column or the page  attribute pgwide { db.pgwide.enumeration }db.language.attribute =    ## Identifies the language (i.e. programming language) of the content.  attribute language { text }db.performance.enumeration =    ## The content describes an optional step or steps.  "optional"  |     ## The content describes a required step or steps.    "required"db.performance.attribute =    ## Specifies if the content is required or optional.  attribute performance { db.performance.enumeration }db.floatstyle.attribute =    ## Specifies style information to be used when rendering the float  attribute floatstyle { text }db.width.attribute =    ## Specifies the width of the element  attribute width { text }db.depth.attribute =    ## Specifies the depth of the element  attribute depth { text }db.contentwidth.attribute =    ## Specifies the width of the content rectangle  attribute contentwidth { text }db.contentdepth.attribute =    ## Specifies the depth of the content rectangle  attribute contentdepth { text }db.scalefit.enumeration =    ## False (do not scale-to-fit; anamorphic scaling may occur)  "0"  |     ## True (scale-to-fit; anamorphic scaling is forbidden)    "1"db.scale.attribute =    ## Specifies the scaling factor  attribute scale { xsd:positiveInteger }db.classid.attribute =    ## Specifies a classid for a media object player  attribute classid { text }db.autoplay.attribute =    ## Specifies the autoplay setting for a media object player  attribute autoplay { text }db.halign.enumeration =    ## Centered horizontally  "center"  |     ## Aligned horizontally on the specified character    "char"  |     ## Fully justified (left and right margins or edges)    "justify"  |     ## Left aligned    "left"  |     ## Right aligned    "right"db.valign.enumeration =    ## Aligned on the bottom of the region  "bottom"  |     ## Centered vertically    "middle"  |     ## Aligned on the top of the region    "top"db.biblio.class.enumeration =    ## A digital object identifier.  "doi"  |     ## An international standard book number.    "isbn"  |     ## An international standard technical report number (ISO 10444).    "isrn"  |     ## An international standard serial number.    "issn"  |     ## An international standard text code.    "istc"  |     ## A Library of Congress reference number.    "libraryofcongress"  |     ## A publication number (an internal number or possibly organizational standard).    "pubsnumber"  |     ## A Uniform Resource Identifier    "uri"db.biblio.class-enum.attribute =    ## Identifies the kind of bibliographic identifier  attribute class { db.biblio.class.enumeration }?db.biblio.class-other.attribute =    ## Identifies the nature of the non-standard bibliographic identifier  attribute otherclass { xsd:NMTOKEN }db.biblio.class-other.attributes =    ## Identifies the kind of bibliographic identifier  attribute class {        ## Indicates that the identifier is some 'other' kind.    "other"  }  & db.biblio.class-other.attributedb.biblio.class.attribute =  db.biblio.class-enum.attribute | db.biblio.class-other.attributesdb.ubiq.inlines =  (db.inlinemediaobject   | db.remark   | db.link.inlines   | db.alt   | db.trademark   | # below, effectively the publishing inlines (as of 5.0)     db.abbrev   | db.acronym   | db.date   | db._emphasis   | db.footnote   | db.footnoteref   | db._foreignphrase   | db._phrase   | db._quote   | db.subscript   | db.superscript   | db.wordasword)  | db.annotation  | (db._firstterm | db._glossterm)  | db.indexterm  | db.corefdb._text = (text | db.ubiq.inlines | db._phrase | db.replaceable)*db._title = db.title? & db.titleabbrev? & db.subtitle?db._title.req = db.title & db.titleabbrev? & db.subtitle?db._title.only = db.title? & db.titleabbrev?db._title.onlyreq = db.title & db.titleabbrev?db._info = (db._title, db.titleforbidden.info?) | db.info?db._info.title.req =  (db._title.req, db.titleforbidden.info?) | db.titlereq.infodb._info.title.only =  (db._title.only, db.titleforbidden.info?) | db.titleonly.infodb._info.title.onlyreq =  (db._title.onlyreq, db.titleforbidden.info?) | db.titleonlyreq.infodb._info.title.forbidden = db.titleforbidden.info?db.all.inlines =  text | db.ubiq.inlines | db.general.inlines | db.domain.inlinesdb.general.inlines =  db.publishing.inlines  | db.product.inlines  | db.bibliography.inlines  | db.graphic.inlines  | db.indexing.inlines  | db.link.inlinesdb.domain.inlines =  db.technical.inlines  | db.math.inlines  | db.markup.inlines  | db.gui.inlines  | db.keyboard.inlines  | db.os.inlines  | db.programming.inlines  | db.error.inlinesdb.technical.inlines =  (db.replaceable | db.package | db.parameter)  | db.termdef  | db.nonterminal  | (db.systemitem | db.option | db.optional | db.property)db.product.inlines =  db.trademark  | (db.productnumber     | db.productname     | db.database     | db.application     | db.hardware)db.bibliography.inlines =  db.citation  | db.citerefentry  | db.citetitle  | db.citebiblioid  | db.author  | db.person  | db.personname  | db.org  | db.orgname  | db.editor  | db.jobtitledb.publishing.inlines =  (db.abbrev   | db.acronym   | db.date   | db.emphasis   | db.footnote   | db.footnoteref   | db.foreignphrase   | db.phrase   | db.quote   | db.subscript   | db.superscript   | db.wordasword)  | db.glossary.inlines  | db.corefdb.graphic.inlines = db.inlinemediaobjectdb.indexing.inlines = notAllowed | db.indextermdb.link.inlines =  (db.xref | db.link | db.olink | db.anchor) | db.bibliorefdb.nopara.blocks =  (db.list.blocks   | db.formal.blocks   | db.informal.blocks   | db.publishing.blocks   | db.graphic.blocks   | db.technical.blocks   | db.verbatim.blocks   | db.bridgehead   | db.remark   | db.revhistory)  | db.indexterm  | db.synopsis.blocks  | db.admonition.blocksdb.para.blocks = db.anchor | db.para | db.formalpara | db.simparadb.all.blocks = (db.nopara.blocks | db.para.blocks) | db.annotationdb.formal.blocks = (db.example | db.figure | db.table) | db.equationdb.informal.blocks =  (db.informalexample | db.informalfigure | db.informaltable)  | db.informalequationdb.publishing.blocks =  db.sidebar | db.blockquote | db.address | db.epigraphdb.graphic.blocks = db.mediaobject | db.screenshotdb.technical.blocks =  db.procedure  | db.task  | (db.productionset | db.constraintdef)  | db.msgsetdb.list.blocks =  (db.itemizedlist   | db.orderedlist   | db.procedure   | db.simplelist   | db.variablelist   | db.segmentedlist)  | db.glosslist  | db.bibliolist  | db.calloutlist  | db.qandasetdb.verbatim.blocks =  (db.screen | db.literallayout)  | (db.programlistingco | db.screenco)  | (db.programlisting | db.synopsis)db.info.extension = db._anydb.info.elements =  (db.abstract   | db.address   | db.artpagenums   | db.author   | db.authorgroup   | db.authorinitials   | db.bibliocoverage   | db.biblioid   | db.bibliosource   | db.collab   | db.confgroup   | db.contractsponsor   | db.contractnum   | db.copyright   | db.cover   | db.date   | db.edition   | db.editor   | db.issuenum   | db.keywordset   | db.legalnotice   | db.mediaobject   | db.org   | db.orgname   | db.othercredit   | db.pagenums   | db.printhistory   | db.pubdate   | db.publisher   | db.publishername   | db.releaseinfo   | db.revhistory   | db.seriesvolnums   | db.subjectset   | db.volumenum   | db.info.extension)  | db.annotation  | db.extendedlink  | (db.bibliomisc | db.bibliomset | db.bibliorelation | db.biblioset)  | db.itermset  | (db.productname | db.productnumber)db.bibliographic.elements =  db.info.elements  | db.publishing.inlines  | db.citerefentry  | db.citetitle  | db.citebiblioid  | db.person  | db.personblurb  | db.personname  | db.subtitle  | db.title  | db.titleabbrevdiv {  db.title.role.attribute = attribute role { text }  db.title.attlist =    db.title.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.title =        ## The text of the title of a section of a document or of a formal block-level element    element title { db.title.attlist, db.all.inlines* }}div {  db.titleabbrev.role.attribute = attribute role { text }  db.titleabbrev.attlist =    db.titleabbrev.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.titleabbrev =        ## The abbreviation of a title    element titleabbrev { db.titleabbrev.attlist, db.all.inlines* }}div {  db.subtitle.role.attribute = attribute role { text }  db.subtitle.attlist =    db.subtitle.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.subtitle =        ## The subtitle of a document    element subtitle { db.subtitle.attlist, db.all.inlines* }}div {  db.info.role.attribute = attribute role { text }  db.info.attlist = db.info.role.attribute? & db.common.attributes  db.info =        ## A wrapper for information about a component or other block    element info { db.info.attlist, (db._title & db.info.elements*) }}div {  db.titlereq.info.role.attribute = attribute role { text }  db.titlereq.info.attlist =    db.titlereq.info.role.attribute? & db.common.attributes  db.titlereq.info =        ## A wrapper for information about a component or other block with a required title    element info {      db.titlereq.info.attlist, (db._title.req & db.info.elements*)    }}div {  db.titleonly.info.role.attribute = attribute role { text }  db.titleonly.info.attlist =    db.titleonly.info.role.attribute? & db.common.attributes  db.titleonly.info =        ## A wrapper for information about a component or other block with only a title    element info {      db.titleonly.info.attlist, (db._title.only & db.info.elements*)    }}div {  db.titleonlyreq.info.role.attribute = attribute role { text }  db.titleonlyreq.info.attlist =    db.titleonlyreq.info.role.attribute? & db.common.attributes  db.titleonlyreq.info =        ## A wrapper for information about a component or other block with only a required title    element info {      db.titleonlyreq.info.attlist,      (db._title.onlyreq & db.info.elements*)    }}div {  db.titleforbidden.info.role.attribute = attribute role { text }  db.titleforbidden.info.attlist =    db.titleforbidden.info.role.attribute? & db.common.attributes  db.titleforbidden.info =        ## A wrapper for information about a component or other block without a title    element info { db.titleforbidden.info.attlist, db.info.elements* }}div {  db.subjectset.role.attribute = attribute role { text }  db.subjectset.scheme.attribute =        ## Identifies the controlled vocabulary used by this set's terms    attribute scheme { xsd:NMTOKEN }  db.subjectset.attlist =    db.subjectset.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.subjectset.scheme.attribute?  db.subjectset =        ## A set of terms describing the subject matter of a document    element subjectset { db.subjectset.attlist, db.subject+ }}div {  db.subject.role.attribute = attribute role { text }  db.subject.weight.attribute =        ## Specifies a ranking for this subject relative to other subjects in the same set    attribute weight { text }  db.subject.attlist =    db.subject.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.subject.weight.attribute?  db.subject =        ## One of a group of terms describing the subject matter of a document    element subject { db.subject.attlist, db.subjectterm+ }}div {  db.subjectterm.role.attribute = attribute role { text }  db.subjectterm.attlist =    db.subjectterm.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.subjectterm =        ## A term in a group of terms describing the subject matter of a document    element subjectterm { db.subjectterm.attlist, text }}div {  db.keywordset.role.attribute = attribute role { text }  db.keywordset.attlist =    db.keywordset.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.keywordset =        ## A set of keywords describing the content of a document    element keywordset { db.keywordset.attlist, db.keyword+ }}div {  db.keyword.role.attribute = attribute role { text }  db.keyword.attlist =    db.keyword.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.keyword =        ## One of a set of keywords describing the content of a document    element keyword { db.keyword.attlist, text }}db.table.choice = notAllowed | db.cals.table | db.html.tabledb.informaltable.choice =  notAllowed | db.cals.informaltable | db.html.informaltabledb.table = db.table.choicedb.informaltable = db.informaltable.choicediv {  db.procedure.role.attribute = attribute role { text }  db.procedure.attlist =    db.procedure.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.procedure.info = db._info.title.only  db.procedure =        ## A list of operations to be performed in a well-defined sequence    element procedure {      db.procedure.attlist, db.procedure.info, db.all.blocks*, db.step+    }}div {  db.step.role.attribute = attribute role { text }  db.step.attlist =    db.step.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.performance.attribute?  db.step.info = db._info.title.only  # This content model is blocks*, step|stepalternatives, blocks* but  # expressed this way it avoids UPA issues in XSD and DTD versions  db.step =        ## A unit of action in a procedure    element step {      db.step.attlist,      db.step.info,      ((db.all.blocks+,        ((db.substeps | db.stepalternatives), db.all.blocks*)?)       | ((db.substeps | db.stepalternatives), db.all.blocks*))    }}div {  db.stepalternatives.role.attribute = attribute role { text }  db.stepalternatives.attlist =    db.stepalternatives.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.performance.attribute?  db.stepalternatives.info = db._info.title.forbidden  db.stepalternatives =        ## Alternative steps in a procedure    element stepalternatives {      db.stepalternatives.attlist, db.stepalternatives.info, db.step+    }}div {  db.substeps.role.attribute = attribute role { text }  db.substeps.attlist =    db.substeps.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.performance.attribute?  db.substeps =        ## A wrapper for steps that occur within steps in a procedure    element substeps { db.substeps.attlist, db.step+ }}div {  db.sidebar.floatstyle.attribute = db.floatstyle.attribute  db.sidebar.role.attribute = attribute role { text }  db.sidebar.attlist =    db.sidebar.role.attribute?    & db.sidebar.floatstyle.attribute?    & db.common.attributes    & db.common.linking.attributes  db.sidebar.info = db._info  db.sidebar =        ## A portion of a document that is isolated from the main narrative flow    [      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:sidebar"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:sidebar)"            "sidebar must not occur among the children or descendants of sidebar"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element sidebar {      db.sidebar.attlist, db.sidebar.info, db.all.blocks+    }}div {  db.abstract.role.attribute = attribute role { text }  db.abstract.attlist =    db.abstract.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.abstract.info = db._info.title.only  db.abstract =        ## A summary    element abstract {      db.abstract.attlist, db.abstract.info, db.para.blocks+    }}div {  db.personblurb.role.attribute = attribute role { text }  db.personblurb.attlist =    db.personblurb.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.personblurb.info = db._info.title.only  db.personblurb =        ## A short description or note about a person    element personblurb {      db.personblurb.attlist, db.personblurb.info, db.para.blocks+    }}div {  db.blockquote.role.attribute = attribute role { text }  db.blockquote.attlist =    db.blockquote.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.blockquote.info = db._info.title.only  db.blockquote =        ## A quotation set off from the main text    element blockquote {      db.blockquote.attlist,      db.blockquote.info,      db.attribution?,      db.all.blocks+    }}div {  db.attribution.role.attribute = attribute role { text }  db.attribution.attlist =    db.attribution.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.attribution =        ## The source of a block quote or epigraph    element attribution {      db.attribution.attlist,      (db._text       | db.person       | db.personname       | db.citetitle       | db.citation)*    }}div {  db.bridgehead.renderas.enumeration =        ## Render as a first-level section    "sect1"    |       ## Render as a second-level section      "sect2"    |       ## Render as a third-level section      "sect3"    |       ## Render as a fourth-level section      "sect4"    |       ## Render as a fifth-level section      "sect5"  db.bridgehead.renderas-enum.attribute =        ## Indicates how the bridge head should be rendered    attribute renderas { db.bridgehead.renderas.enumeration }?  db.bridgehead.renderas-other.attribute =        ## Identifies the nature of the non-standard rendering    attribute otherrenderas { xsd:NMTOKEN }  db.bridgehead.renderas-other.attributes =        ## Indicates how the bridge head should be rendered    attribute renderas {            ## Identifies a non-standard rendering      "other"    }    & db.bridgehead.renderas-other.attribute  db.bridgehead.renderas.attribute =    db.bridgehead.renderas-enum.attribute    | db.bridgehead.renderas-other.attributes  db.bridgehead.role.attribute = attribute role { text }  db.bridgehead.attlist =    db.bridgehead.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.bridgehead.renderas.attribute?  db.bridgehead =        ## A free-floating heading    element bridgehead { db.bridgehead.attlist, db.all.inlines* }}div {  db.remark.role.attribute = attribute role { text }  db.remark.attlist =    db.remark.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.remark =        ## A remark (or comment) intended for presentation in a draft manuscript    element remark { db.remark.attlist, db.all.inlines* }}div {  db.epigraph.role.attribute = attribute role { text }  db.epigraph.attlist =    db.epigraph.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.epigraph.info = db._info.title.forbidden  db.epigraph =        ## A short inscription at the beginning of a document or component    element epigraph {      db.epigraph.attlist,      db.epigraph.info,      db.attribution?,      (db.para.blocks | db.literallayout)+    }}div {  db.footnote.role.attribute = attribute role { text }  db.footnote.label.attribute =        ## Identifies the desired footnote mark    attribute label { xsd:NMTOKEN }  db.footnote.attlist =    db.footnote.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.footnote.label.attribute?  db.footnote =        ## A footnote    [      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:footnote"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:footnote)"            "footnote must not occur among the children or descendants of footnote"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:footnote"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:example)"            "example must not occur among the children or descendants of footnote"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:footnote"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:figure)"            "figure must not occur among the children or descendants of footnote"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:footnote"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:table)"            "table must not occur among the children or descendants of footnote"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:footnote"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:equation)"            "equation must not occur among the children or descendants of footnote"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:footnote"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:sidebar)"            "sidebar must not occur among the children or descendants of footnote"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:footnote"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:task)"            "task must not occur among the children or descendants of footnote"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:footnote"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:epigraph)"            "epigraph must not occur among the children or descendants of footnote"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:footnote"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:caution)"            "caution must not occur among the children or descendants of footnote"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:footnote"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:important)"            "important must not occur among the children or descendants of footnote"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:footnote"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:note)"            "note must not occur among the children or descendants of footnote"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:footnote"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:tip)"            "tip must not occur among the children or descendants of footnote"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:footnote"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:warning)"            "warning must not occur among the children or descendants of footnote"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element footnote { db.footnote.attlist, db.all.blocks+ }}div {  db.formalpara.role.attribute = attribute role { text }  db.formalpara.attlist =    db.formalpara.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.formalpara.info = db._info.title.onlyreq  db.formalpara =        ## A paragraph with a title    element formalpara {      db.formalpara.attlist,      db.formalpara.info,      db.indexing.inlines*,      db.para    }}div {  db.para.role.attribute = attribute role { text }  db.para.attlist =    db.para.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.para.info = db._info.title.forbidden  db.para =        ## A paragraph    element para {      db.para.attlist,      db.para.info,      (db.all.inlines | db.nopara.blocks)*    }}div {  db.simpara.role.attribute = attribute role { text }  db.simpara.attlist =    db.simpara.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.simpara.info = db._info.title.forbidden  db.simpara =        ## A paragraph that contains only text and inline markup, no block elements    element simpara {      db.simpara.attlist, db.simpara.info, db.all.inlines*    }}div {  db.itemizedlist.role.attribute = attribute role { text }  db.itemizedlist.mark.attribute =        ## Identifies the type of mark to be used on items in this list    attribute mark { xsd:NMTOKEN }  db.itemizedlist.attlist =    db.itemizedlist.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.spacing.attribute?    & db.itemizedlist.mark.attribute?  db.itemizedlist.info = db._info.title.only  db.itemizedlist =        ## A list in which each entry is marked with a bullet or other dingbat    element itemizedlist {      db.itemizedlist.attlist,      db.itemizedlist.info,      db.all.blocks*,      db.listitem+    }}div {  db.orderedlist.role.attribute = attribute role { text }  db.orderedlist.continuation.enumeration =        ## Specifies that numbering should begin where the preceding list left off    "continues"    |       ## Specifies that numbering should begin again at 1      "restarts"  db.orderedlist.continuation.attribute =        ## Indicates how list numbering should begin relative to the immediately preceding list    attribute continuation { db.orderedlist.continuation.enumeration }  db.orderedlist.startingnumber.attribute =        ## Specifies the initial line number.    attribute startingnumber { xsd:integer }  db.orderedlist.inheritnum.enumeration =        ## Specifies that numbering should ignore list nesting    "ignore"    |       ## Specifies that numbering should inherit from outer-level lists      "inherit"  db.orderedlist.inheritnum.attribute =        ## Indicates whether or not item numbering should be influenced by list nesting    attribute inheritnum { db.orderedlist.inheritnum.enumeration }  db.orderedlist.numeration.enumeration =        ## Specifies Arabic numeration (1, 2, 3, …)    "arabic"    |       ## Specifies upper-case alphabetic numeration (A, B, C, …)      "upperalpha"    |       ## Specifies lower-case alphabetic numeration (a, b, c, …)      "loweralpha"    |       ## Specifies upper-case Roman numeration (I, II, III, …)      "upperroman"    |       ## Specifies lower-case Roman numeration (i, ii, iii …)      "lowerroman"  db.orderedlist.numeration.attribute =        ## Indicates the desired numeration    attribute numeration { db.orderedlist.numeration.enumeration }  db.orderedlist.attlist =    db.orderedlist.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.spacing.attribute?    & (db.orderedlist.continuation.attribute       | db.orderedlist.startingnumber.attribute)?    & db.orderedlist.inheritnum.attribute?    & db.orderedlist.numeration.attribute?  db.orderedlist.info = db._info.title.only  db.orderedlist =        ## A list in which each entry is marked with a sequentially incremented label    element orderedlist {      db.orderedlist.attlist,      db.orderedlist.info,      db.all.blocks*,      db.listitem+    }}div {  db.listitem.role.attribute = attribute role { text }  db.listitem.override.attribute =        ## Specifies the keyword for the type of mark that should be used on this    ##  item, instead of the mark that would be used by default    attribute override { xsd:NMTOKEN }  db.listitem.attlist =    db.listitem.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.listitem.override.attribute?  db.listitem =        ## A wrapper for the elements of a list item    element listitem { db.listitem.attlist, db.all.blocks+ }}div {  db.segmentedlist.role.attribute = attribute role { text }  db.segmentedlist.attlist =    db.segmentedlist.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.segmentedlist.info = db._info.title.only  db.segmentedlist =        ## A segmented list, a list of sets of elements    element segmentedlist {      db.segmentedlist.attlist,      db.segmentedlist.info,      db.segtitle+,      db.seglistitem+    }}div {  db.segtitle.role.attribute = attribute role { text }  db.segtitle.attlist =    db.segtitle.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.segtitle =        ## The title of an element of a list item in a segmented list    element segtitle { db.segtitle.attlist, db.all.inlines* }}div {  db.seglistitem.role.attribute = attribute role { text }  db.seglistitem.attlist =    db.seglistitem.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.seglistitem =        ## A list item in a segmented list    [      s:pattern [        name = "Cardinality of segments and titles"        "\x{a}" ~        "               "        s:rule [          context = "db:seglistitem"          "\x{a}" ~          "                  "          s:assert [            test = "count(db:seg) = count(../db:segtitle)"            "The number of seg elements must be the same as the number of segtitle elements in the parent segmentedlist"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element seglistitem { db.seglistitem.attlist, db.seg+ }}div {  db.seg.role.attribute = attribute role { text }  db.seg.attlist =    db.seg.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.seg =        ## An element of a list item in a segmented list    element seg { db.seg.attlist, db.all.inlines* }}div {  db.simplelist.role.attribute = attribute role { text }  db.simplelist.type.enumeration =        ## A tabular presentation in row-major order.    "horiz"    |       ## A tabular presentation in column-major order.      "vert"    |       ## An inline presentation, usually a comma-delimited list.      "inline"  db.simplelist.type.attribute =        ## Specifies the type of list presentation.    [ a:defaultValue = "vert" ]    attribute type { db.simplelist.type.enumeration }  db.simplelist.columns.attribute =        ## Specifies the number of columns for horizontal or vertical presentation    attribute columns { xsd:integer }  db.simplelist.attlist =    db.simplelist.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.simplelist.type.attribute?    & db.simplelist.columns.attribute?  db.simplelist =        ## An undecorated list of single words or short phrases    element simplelist { db.simplelist.attlist, db.member+ }}div {  db.member.role.attribute = attribute role { text }  db.member.attlist =    db.member.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.member =        ## An element of a simple list    element member { db.member.attlist, db.all.inlines* }}div {  db.variablelist.role.attribute = attribute role { text }  db.variablelist.termlength.attribute =        ## Indicates a length beyond which the presentation system may consider a term too long and select an alternate presentation for that term, item, or list    attribute termlength { text }  db.variablelist.attlist =    db.variablelist.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.spacing.attribute?    & db.variablelist.termlength.attribute?  db.variablelist.info = db._info.title.only  db.variablelist =        ## A list in which each entry is composed of a set of one or more terms and an associated description    element variablelist {      db.variablelist.attlist,      db.variablelist.info,      db.all.blocks*,      db.varlistentry+    }}div {  db.varlistentry.role.attribute = attribute role { text }  db.varlistentry.attlist =    db.varlistentry.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.varlistentry =        ## A wrapper for a set of terms and the associated description in a variable list    element varlistentry {      db.varlistentry.attlist, db.term+, db.listitem    }}div {  db.term.role.attribute = attribute role { text }  db.term.attlist =    db.term.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.term =        ## The word or phrase being defined or described in a variable list    element term { db.term.attlist, db.all.inlines* }}div {  db.example.role.attribute = attribute role { text }  db.example.label.attribute = db.label.attribute  db.example.width.attribute = db.width.characters.attribute  db.example.pgwide.attribute = db.pgwide.attribute  db.example.floatstyle.attribute = db.floatstyle.attribute  db.example.attlist =    db.example.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.example.label.attribute?    & db.example.floatstyle.attribute?    & (db.example.width.attribute | db.example.pgwide.attribute)?  db.example.info = db._info.title.onlyreq  db.example =        ## A formal example, with a title    [      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:example"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:example)"            "example must not occur among the children or descendants of example"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:example"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:figure)"            "figure must not occur among the children or descendants of example"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:example"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:table)"            "table must not occur among the children or descendants of example"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:example"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:equation)"            "equation must not occur among the children or descendants of example"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:example"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:caution)"            "caution must not occur among the children or descendants of example"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:example"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:important)"            "important must not occur among the children or descendants of example"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:example"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:note)"            "note must not occur among the children or descendants of example"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:example"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:tip)"            "tip must not occur among the children or descendants of example"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:example"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:warning)"            "warning must not occur among the children or descendants of example"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element example {      db.example.attlist, db.example.info, db.all.blocks+, db.caption?    }}div {  db.informalexample.role.attribute = attribute role { text }  db.informalexample.width.attribute = db.width.characters.attribute  db.informalexample.pgwide.attribute = db.pgwide.attribute  db.informalexample.floatstyle.attribute = db.floatstyle.attribute  db.informalexample.attlist =    db.informalexample.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.informalexample.floatstyle.attribute?    & (db.informalexample.width.attribute       | db.informalexample.pgwide.attribute)?  db.informalexample.info = db._info.title.forbidden  db.informalexample =        ## A displayed example without a title    element informalexample {      db.informalexample.attlist,      db.informalexample.info,      db.all.blocks+,      db.caption?    }}db.verbatim.inlines = (db.all.inlines | db.lineannotation) | db.codb.verbatim.contentmodel =  db._info.title.forbidden, (db.textobject | db.verbatim.inlines*)div {  db.literallayout.role.attribute = attribute role { text }  db.literallayout.class.enumeration =        ## The literal layout should be formatted with a monospaced font    "monospaced"    |       ## The literal layout should be formatted with the current font      "normal"  db.literallayout.class.attribute =        ## Specifies the class of literal layout    attribute class { db.literallayout.class.enumeration }  db.literallayout.attlist =    db.literallayout.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.verbatim.attributes    & db.literallayout.class.attribute?  db.literallayout =        ## A block of text in which line breaks and white space are to be reproduced faithfully    element literallayout {      db.literallayout.attlist, db.verbatim.contentmodel    }}div {  db.screen.role.attribute = attribute role { text }  db.screen.width.attribute = db.width.characters.attribute  db.screen.attlist =    db.screen.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.verbatim.attributes    & db.screen.width.attribute?  db.screen =        ## Text that a user sees or might see on a computer screen    element screen { db.screen.attlist, db.verbatim.contentmodel }}div {  db.screenshot.role.attribute = attribute role { text }  db.screenshot.attlist =    db.screenshot.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.screenshot.info = db._info  db.screenshot =        ## A representation of what the user sees or might see on a computer screen    element screenshot {      db.screenshot.attlist, db.screenshot.info, db.mediaobject    }}div {  db.figure.role.attribute = attribute role { text }  db.figure.label.attribute = db.label.attribute  db.figure.pgwide.attribute = db.pgwide.attribute  db.figure.floatstyle.attribute = db.floatstyle.attribute  db.figure.attlist =    db.figure.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.figure.label.attribute?    & db.figure.pgwide.attribute?    & db.figure.floatstyle.attribute?  db.figure.info = db._info.title.onlyreq  db.figure =        ## A formal figure, generally an illustration, with a title    [      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:figure"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:example)"            "example must not occur among the children or descendants of figure"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:figure"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:figure)"            "figure must not occur among the children or descendants of figure"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:figure"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:table)"            "table must not occur among the children or descendants of figure"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:figure"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:equation)"            "equation must not occur among the children or descendants of figure"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:figure"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:caution)"            "caution must not occur among the children or descendants of figure"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:figure"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:important)"            "important must not occur among the children or descendants of figure"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:figure"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:note)"            "note must not occur among the children or descendants of figure"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:figure"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:tip)"            "tip must not occur among the children or descendants of figure"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:figure"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:warning)"            "warning must not occur among the children or descendants of figure"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element figure {      db.figure.attlist, db.figure.info, db.all.blocks+, db.caption?    }}div {  db.informalfigure.role.attribute = attribute role { text }  db.informalfigure.label.attribute = db.label.attribute  db.informalfigure.pgwide.attribute = db.pgwide.attribute  db.informalfigure.floatstyle.attribute = db.floatstyle.attribute  db.informalfigure.attlist =    db.informalfigure.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.informalfigure.label.attribute?    & db.informalfigure.pgwide.attribute?    & db.informalfigure.floatstyle.attribute?  db.informalfigure.info = db._info.title.forbidden  db.informalfigure =        ## A untitled figure    element informalfigure {      db.informalfigure.attlist,      db.informalfigure.info,      db.all.blocks+,      db.caption?    }}db.mediaobject.content =  (db.videoobject | db.audioobject | db.imageobject | db.textobject)  | db.imageobjectcodiv {  db.mediaobject.role.attribute = attribute role { text }  db.mediaobject.attlist =    db.mediaobject.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.mediaobject.info = db._info.title.forbidden  db.mediaobject =        ## A displayed media object (video, audio, image, etc.)    element mediaobject {      db.mediaobject.attlist,      db.mediaobject.info,      db.alt?,      db.mediaobject.content+,      db.caption?    }}div {  db.inlinemediaobject.role.attribute = attribute role { text }  db.inlinemediaobject.attlist =    db.inlinemediaobject.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.inlinemediaobject.info = db._info.title.forbidden  db.inlinemediaobject =        ## An inline media object (video, audio, image, and so on)    element inlinemediaobject {      db.inlinemediaobject.attlist,      db.inlinemediaobject.info,      db.alt?,      db.mediaobject.content+    }}div {  db.videoobject.role.attribute = attribute role { text }  db.videoobject.attlist =    db.videoobject.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.videoobject.info = db._info.title.forbidden  db.videoobject =        ## A wrapper for video data and its associated meta-information    element videoobject {      db.videoobject.attlist,      db.videoobject.info,      db.videodata,      db.multimediaparam*    }}div {  db.audioobject.role.attribute = attribute role { text }  db.audioobject.attlist =    db.audioobject.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.audioobject.info = db._info.title.forbidden  db.audioobject =        ## A wrapper for audio data and its associated meta-information    element audioobject {      db.audioobject.attlist,      db.audioobject.info,      db.audiodata,      db.multimediaparam*    }}db.imageobject.content =  db.imagedata | db.imagedata.mathml | db.imagedata.svgdiv {  db.imageobject.role.attribute = attribute role { text }  db.imageobject.attlist =    db.imageobject.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.imageobject.info = db._info.title.forbidden  db.imageobject =        ## A wrapper for image data and its associated meta-information    element imageobject {      db.imageobject.attlist,      db.imageobject.info,      db.imageobject.content    }}div {  db.textobject.role.attribute = attribute role { text }  db.textobject.attlist =    db.textobject.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.textobject.info = db._info.title.forbidden  db.textobject =        ## A wrapper for a text description of an object and its associated meta-information    element textobject {      db.textobject.attlist,      db.textobject.info,      (db.phrase | db.textdata | db.all.blocks+)    }}div {  db.videodata.role.attribute = attribute role { text }  db.videodata.align.enumeration = db.halign.enumeration  db.videodata.align.attribute =        ## Specifies the (horizontal) alignment of the video data    attribute align { db.videodata.align.enumeration }  db.videodata.autoplay.attribute = db.autoplay.attribute  db.videodata.classid.attribute = db.classid.attribute  db.videodata.valign.enumeration = db.valign.enumeration  db.videodata.valign.attribute =        ## Specifies the vertical alignment of the video data    attribute valign { db.videodata.valign.enumeration }  db.videodata.width.attribute = db.width.attribute  db.videodata.depth.attribute = db.depth.attribute  db.videodata.contentwidth.attribute = db.contentwidth.attribute  db.videodata.contentdepth.attribute = db.contentdepth.attribute  db.videodata.scalefit.enumeration = db.scalefit.enumeration  db.videodata.scalefit.attribute =        ## Determines if anamorphic scaling is forbidden    attribute scalefit { db.videodata.scalefit.enumeration }  db.videodata.scale.attribute = db.scale.attribute  db.videodata.attlist =    db.videodata.role.attribute?    & db.common.attributes    & db.common.data.attributes    & db.videodata.align.attribute?    & db.videodata.valign.attribute?    & db.videodata.width.attribute?    & db.videodata.contentwidth.attribute?    & db.videodata.scalefit.attribute?    & db.videodata.scale.attribute?    & db.videodata.depth.attribute?    & db.videodata.contentdepth.attribute?    & db.videodata.autoplay.attribute?    & db.videodata.classid.attribute?  db.videodata.info = db._info.title.forbidden  db.videodata =        ## Pointer to external video data    element videodata { db.videodata.attlist, db.videodata.info }}div {  db.audiodata.role.attribute = attribute role { text }  db.audiodata.align.enumeration = db.halign.enumeration  db.audiodata.align.attribute =        ## Specifies the (horizontal) alignment of the video data    attribute align { db.audiodata.align.enumeration }  db.audiodata.autoplay.attribute = db.autoplay.attribute  db.audiodata.classid.attribute = db.classid.attribute  db.audiodata.contentwidth.attribute = db.contentwidth.attribute  db.audiodata.contentdepth.attribute = db.contentdepth.attribute  db.audiodata.depth.attribute = db.depth.attribute  db.audiodata.scale.attribute = db.scale.attribute  db.audiodata.scalefit.enumeration = db.scalefit.enumeration  db.audiodata.scalefit.attribute =        ## Determines if anamorphic scaling is forbidden    attribute scalefit { db.audiodata.scalefit.enumeration }  db.audiodata.valign.enumeration = db.valign.enumeration  db.audiodata.valign.attribute =        ## Specifies the vertical alignment of the video data    attribute valign { db.audiodata.valign.enumeration }  db.audiodata.width.attribute = db.width.attribute  db.audiodata.attlist =    db.audiodata.role.attribute?    & db.common.attributes    & db.common.data.attributes    & db.audiodata.align.attribute?    & db.audiodata.autoplay.attribute?    & db.audiodata.classid.attribute?    & db.audiodata.contentdepth.attribute?    & db.audiodata.contentwidth.attribute?    & db.audiodata.depth.attribute?    & db.audiodata.scale.attribute?    & db.audiodata.scalefit.attribute?    & db.audiodata.valign.attribute?    & db.audiodata.width.attribute?  db.audiodata.info = db._info.title.forbidden  db.audiodata =        ## Pointer to external audio data    element audiodata { db.audiodata.attlist, db.audiodata.info }}div {  db.imagedata.role.attribute = attribute role { text }  db.imagedata.align.enumeration = db.halign.enumeration  db.imagedata.align.attribute =        ## Specifies the (horizontal) alignment of the image data    attribute align { db.imagedata.align.enumeration }  db.imagedata.valign.enumeration = db.valign.enumeration  db.imagedata.valign.attribute =        ## Specifies the vertical alignment of the image data    attribute valign { db.imagedata.valign.enumeration }  db.imagedata.width.attribute = db.width.attribute  db.imagedata.depth.attribute = db.depth.attribute  db.imagedata.contentwidth.attribute = db.contentwidth.attribute  db.imagedata.contentdepth.attribute = db.contentdepth.attribute  db.imagedata.scalefit.enumeration = db.scalefit.enumeration  db.imagedata.scalefit.attribute =        ## Determines if anamorphic scaling is forbidden    attribute scalefit { db.imagedata.scalefit.enumeration }  db.imagedata.scale.attribute = db.scale.attribute  db.imagedata.attlist =    db.imagedata.role.attribute?    & db.common.attributes    & db.common.data.attributes    & db.imagedata.align.attribute?    & db.imagedata.valign.attribute?    & db.imagedata.width.attribute?    & db.imagedata.contentwidth.attribute?    & db.imagedata.scalefit.attribute?    & db.imagedata.scale.attribute?    & db.imagedata.depth.attribute?    & db.imagedata.contentdepth.attribute?  db.imagedata.info = db._info.title.forbidden  db.imagedata =        ## Pointer to external image data    element imagedata { db.imagedata.attlist, db.imagedata.info }}div {  db.textdata.role.attribute = attribute role { text }  db.textdata.encoding.attribute =        ## Identifies the encoding of the text in the external file    attribute encoding { text }  db.textdata.attlist =    db.textdata.role.attribute?    & db.common.attributes    & db.common.data.attributes    & db.textdata.encoding.attribute?  db.textdata.info = db._info.title.forbidden  db.textdata =        ## Pointer to external text data    element textdata { db.textdata.attlist, db.textdata.info }}div {  db.multimediaparam.role.attribute = attribute role { text }  db.multimediaparam.name.attribute =        ## Specifies the name of the parameter    attribute name { text }  db.multimediaparam.value.attribute =        ## Specifies the value of the parameter    attribute value { text }  db.multimediaparam.valuetype.attribute =        ## Specifies the type of the value of the parameter    attribute valuetype { text }  db.multimediaparam.attlist =    db.multimediaparam.role.attribute?    & db.common.attributes    & db.multimediaparam.name.attribute    & db.multimediaparam.value.attribute    & db.multimediaparam.valuetype.attribute?  db.multimediaparam =        ## Application specific parameters for a media player    element multimediaparam { db.multimediaparam.attlist, empty }}div {  db.caption.role.attribute = attribute role { text }  db.caption.attlist =    db.caption.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.caption.info = db._info.title.forbidden  db.caption =        ## A caption    [      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:example)"            "example must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:figure)"            "figure must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:table)"            "table must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:equation)"            "equation must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:sidebar)"            "sidebar must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:task)"            "task must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:caution)"            "caution must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:important)"            "important must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:note)"            "note must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:tip)"            "tip must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:warning)"            "warning must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element caption {      db.caption.attlist, db.caption.info, db.all.blocks+    }}div {  db.address.role.attribute = attribute role { text }  db.address.attlist =    db.address.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.verbatim.attributes  db.address =        ## A real-world address, generally a postal address    element address {      db.address.attlist,      (db._text       | db.personname       | db.orgname       | db.pob       | db.street       | db.city       | db.state       | db.postcode       | db.country       | db.phone       | db.fax       | db.email       | db.uri       | db.otheraddr)*    }}div {  db.street.role.attribute = attribute role { text }  db.street.attlist =    db.street.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.street =        ## A street address in an address    element street { db.street.attlist, db._text }}div {  db.pob.role.attribute = attribute role { text }  db.pob.attlist =    db.pob.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.pob =        ## A post office box in an address    element pob { db.pob.attlist, db._text }}div {  db.postcode.role.attribute = attribute role { text }  db.postcode.attlist =    db.postcode.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.postcode =        ## A postal code in an address    element postcode { db.postcode.attlist, db._text }}div {  db.city.role.attribute = attribute role { text }  db.city.attlist =    db.city.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.city =        ## The name of a city in an address    element city { db.city.attlist, db._text }}div {  db.state.role.attribute = attribute role { text }  db.state.attlist =    db.state.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.state =        ## A state or province in an address    element state { db.state.attlist, db._text }}div {  db.country.role.attribute = attribute role { text }  db.country.attlist =    db.country.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.country =        ## The name of a country    element country { db.country.attlist, db._text }}div {  db.phone.role.attribute = attribute role { text }  db.phone.attlist =    db.phone.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.phone =        ## A telephone number    element phone { db.phone.attlist, db._text }}div {  db.fax.role.attribute = attribute role { text }  db.fax.attlist =    db.fax.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.fax =        ## A fax number    element fax { db.fax.attlist, db._text }}div {  db.otheraddr.role.attribute = attribute role { text }  db.otheraddr.attlist =    db.otheraddr.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.otheraddr =        ## Uncategorized information in address    element otheraddr { db.otheraddr.attlist, db._text }}div {  db.affiliation.role.attribute = attribute role { text }  db.affiliation.attlist =    db.affiliation.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.affiliation =        ## The institutional affiliation of an individual    element affiliation {      db.affiliation.attlist,      db.shortaffil?,      db.jobtitle*,      (db.org? | (db.orgname?, db.orgdiv*, db.address*))    }}div {  db.shortaffil.role.attribute = attribute role { text }  db.shortaffil.attlist =    db.shortaffil.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.shortaffil =        ## A brief description of an affiliation    element shortaffil { db.shortaffil.attlist, db._text }}div {  db.jobtitle.role.attribute = attribute role { text }  db.jobtitle.attlist =    db.jobtitle.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.jobtitle =        ## The title of an individual in an organization    element jobtitle { db.jobtitle.attlist, db._text }}div {  db.orgname.class.enumeration =        ## A consortium    "consortium"    |       ## A corporation      "corporation"    |       ## An informal organization      "informal"    |       ## A non-profit organization      "nonprofit"  db.orgname.class-enum.attribute =        ## Specifies the nature of the organization    attribute class { db.orgname.class.enumeration }  db.orgname.class-other.attributes =        ## Specifies the nature of the organization    attribute class {            ## Indicates a non-standard organization class      "other"    },        ## Identifies the non-standard nature of the organization    attribute otherclass { text }  db.orgname.class.attribute =    db.orgname.class-enum.attribute | db.orgname.class-other.attributes  db.orgname.role.attribute = attribute role { text }  db.orgname.attlist =    db.orgname.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.orgname.class.attribute?  db.orgname =        ## The name of an organization    element orgname { db.orgname.attlist, db._text }}div {  db.orgdiv.role.attribute = attribute role { text }  db.orgdiv.attlist =    db.orgdiv.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.orgdiv =        ## A division of an organization    element orgdiv { db.orgdiv.attlist, db.all.inlines* }}div {  db.artpagenums.role.attribute = attribute role { text }  db.artpagenums.attlist =    db.artpagenums.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.artpagenums =        ## The page numbers of an article as published    element artpagenums { db.artpagenums.attlist, db._text }}div {  db.personname.role.attribute = attribute role { text }  db.personname.attlist =    db.personname.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.personname =        ## The personal name of an individual    element personname {      db.personname.attlist,      (db._text       | (db.honorific          | db.firstname          | db.surname          | db.lineage          | db.othername)+       | (db.honorific          | db.givenname          | db.surname          | db.lineage          | db.othername)+)    }}db.person.author.contentmodel =  db.personname,  (db.personblurb   | db.affiliation   | db.email   | db.uri   | db.address   | db.contrib)*db.org.author.contentmodel =  db.orgname,  (db.orgdiv   | db.affiliation   | db.email   | db.uri   | db.address   | db.contrib)*db.credit.contentmodel =  db.person.author.contentmodel | db.org.author.contentmodeldiv {  db.author.role.attribute = attribute role { text }  db.author.attlist =    db.author.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.author =        ## The name of an individual author    element author { db.author.attlist, db.credit.contentmodel }}div {  db.authorgroup.role.attribute = attribute role { text }  db.authorgroup.attlist =    db.authorgroup.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.authorgroup =        ## Wrapper for author information when a document has multiple authors or collaborators    element authorgroup {      db.authorgroup.attlist, (db.author | db.editor | db.othercredit)+    }}div {  db.collab.role.attribute = attribute role { text }  db.collab.attlist =    db.collab.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.collab =        ## Identifies a collaborator    element collab {      db.collab.attlist,      (db.person | db.personname | db.org | db.orgname)+,      db.affiliation*    }}div {  db.authorinitials.role.attribute = attribute role { text }  db.authorinitials.attlist =    db.authorinitials.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.authorinitials =        ## The initials or other short identifier for an author    element authorinitials { db.authorinitials.attlist, db._text }}div {  db.person.role.attribute = attribute role { text }  db.person.attlist =    db.person.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.person =        ## A person and associated metadata    element person {      db.person.attlist,      db.personname,      (db.address       | db.affiliation       | db.email       | db.uri       | db.personblurb)*    }}div {  db.org.role.attribute = attribute role { text }  db.org.attlist =    db.org.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.org =        ## An organization and associated metadata    element org {      db.org.attlist,      db.orgname,      (db.address | db.affiliation | db.email | db.uri | db.orgdiv)*    }}div {  db.confgroup.role.attribute = attribute role { text }  db.confgroup.attlist =    db.confgroup.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.confgroup =        ## A wrapper for document meta-information about a conference    element confgroup {      db.confgroup.attlist,      (db.confdates       | db.conftitle       | db.confnum       | db.confsponsor       | db.address)*    }}div {  db.confdates.role.attribute = attribute role { text }  db.confdates.attlist =    db.confdates.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.confdates =        ## The dates of a conference for which a document was written    element confdates { db.confdates.attlist, db._text }}div {  db.conftitle.role.attribute = attribute role { text }  db.conftitle.attlist =    db.conftitle.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.conftitle =        ## The title of a conference for which a document was written    element conftitle { db.conftitle.attlist, db._text }}div {  db.confnum.role.attribute = attribute role { text }  db.confnum.attlist =    db.confnum.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.confnum =        ## An identifier, frequently numerical, associated with a conference for which a document was written    element confnum { db.confnum.attlist, db._text }}div {  db.confsponsor.role.attribute = attribute role { text }  db.confsponsor.attlist =    db.confsponsor.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.confsponsor =        ## The sponsor of a conference for which a document was written    element confsponsor { db.confsponsor.attlist, db._text }}div {  db.contractnum.role.attribute = attribute role { text }  db.contractnum.attlist =    db.contractnum.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.contractnum =        ## The contract number of a document    element contractnum { db.contractnum.attlist, db._text }}div {  db.contractsponsor.role.attribute = attribute role { text }  db.contractsponsor.attlist =    db.contractsponsor.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.contractsponsor =        ## The sponsor of a contract    element contractsponsor { db.contractsponsor.attlist, db._text }}div {  db.copyright.role.attribute = attribute role { text }  db.copyright.attlist =    db.copyright.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.copyright =        ## Copyright information about a document    element copyright { db.copyright.attlist, db.year+, db.holder* }}div {  db.year.role.attribute = attribute role { text }  db.year.attlist =    db.year.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.year =        ## The year of publication of a document    element year { db.year.attlist, db._text }}div {  db.holder.role.attribute = attribute role { text }  db.holder.attlist =    db.holder.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.holder =        ## The name of the individual or organization that holds a copyright    element holder { db.holder.attlist, db._text }}db.cover.contentmodel =  (db.para.blocks   | db.list.blocks   | db.informal.blocks   | db.publishing.blocks   | db.graphic.blocks   | db.technical.blocks   | db.verbatim.blocks   | db.bridgehead   | db.remark   | db.revhistory)  | db.synopsis.blocksdiv {  db.cover.role.attribute = attribute role { text }  db.cover.attlist =    db.cover.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.cover =        ## Additional content for the cover of a publication    element cover { db.cover.attlist, db.cover.contentmodel+ }}db.date.contentmodel =  xsd:date | xsd:dateTime | xsd:gYearMonth | xsd:gYear | textdiv {  db.date.role.attribute = attribute role { text }  db.date.attlist =    db.date.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.date =        ## The date of publication or revision of a document    element date { db.date.attlist, db.date.contentmodel }}div {  db.edition.role.attribute = attribute role { text }  db.edition.attlist =    db.edition.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.edition =        ## The name or number of an edition of a document    element edition { db.edition.attlist, db._text }}div {  db.editor.role.attribute = attribute role { text }  db.editor.attlist =    db.editor.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.editor =        ## The name of the editor of a document    element editor { db.editor.attlist, db.credit.contentmodel }}div {  db.biblioid.role.attribute = attribute role { text }  db.biblioid.attlist =    db.biblioid.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.biblio.class.attribute  db.biblioid =        ## An identifier for a document    element biblioid { db.biblioid.attlist, db._text }}div {  db.citebiblioid.role.attribute = attribute role { text }  db.citebiblioid.attlist =    db.citebiblioid.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.biblio.class.attribute  db.citebiblioid =        ## A citation of a bibliographic identifier    element citebiblioid { db.citebiblioid.attlist, db._text }}div {  db.bibliosource.role.attribute = attribute role { text }  db.bibliosource.attlist =    db.bibliosource.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.biblio.class.attribute  db.bibliosource =        ## The source of a document    element bibliosource { db.bibliosource.attlist, db._text }}div {  db.bibliorelation.type.enumeration =        ## The described resource pre-existed the referenced resource, which is essentially the same intellectual content presented in another format    "hasformat"    |       ## The described resource includes the referenced resource either physically or logically      "haspart"    |       ## The described resource has a version, edition, or adaptation, namely, the referenced resource      "hasversion"    |       ## The described resource is the same intellectual content of the referenced resource, but presented in another format      "isformatof"    |       ## The described resource is a physical or logical part of the referenced resource      "ispartof"    |       ## The described resource is referenced, cited, or otherwise pointed to by the referenced resource      "isreferencedby"    |       ## The described resource is supplanted, displaced, or superceded by the referenced resource      "isreplacedby"    |       ## The described resource is required by the referenced resource, either physically or logically      "isrequiredby"    |       ## The described resource is a version, edition, or adaptation of the referenced resource; changes in version imply substantive changes in content rather than differences in format      "isversionof"    |       ## The described resource references, cites, or otherwise points to the referenced resource      "references"    |       ## The described resource supplants, displaces, or supersedes the referenced resource      "replaces"    |       ## The described resource requires the referenced resource to support its function, delivery, or coherence of content      "requires"  db.bibliorelation.type-enum.attribute =        ## Identifies the type of relationship    attribute type { db.bibliorelation.type.enumeration }?  db.bibliorelation.type-other.attributes =        ## Identifies the type of relationship    attribute type {            ## The described resource has a non-standard relationship with the referenced resource      "othertype"    }?,        ## A keyword that identififes the type of the non-standard relationship    attribute othertype { xsd:NMTOKEN }  db.bibliorelation.type.attribute =    db.bibliorelation.type-enum.attribute    | db.bibliorelation.type-other.attributes  db.bibliorelation.role.attribute = attribute role { text }  db.bibliorelation.attlist =    db.bibliorelation.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.biblio.class.attribute    & db.bibliorelation.type.attribute  db.bibliorelation =        ## The relationship of a document to another    element bibliorelation { db.bibliorelation.attlist, db._text }}div {  db.bibliocoverage.spacial.enumeration =        ## The DCMI Point identifies a point in space using its geographic coordinates    "dcmipoint"    |       ## ISO 3166 Codes for the representation of names of countries      "iso3166"    |       ## The DCMI Box identifies a region of space using its geographic limits      "dcmibox"    |       ## The Getty Thesaurus of Geographic Names      "tgn"  db.bibliocoverage.spatial-enum.attribute =        ## Specifies the type of spatial coverage    attribute spatial { db.bibliocoverage.spacial.enumeration }?  db.bibliocoverage.spatial-other.attributes =        ## Specifies the type of spatial coverage    attribute spatial {            ## Identifies a non-standard type of coverage      "otherspatial"    }?,        ## A keyword that identifies the type of non-standard coverage    attribute otherspatial { xsd:NMTOKEN }  db.bibliocoverage.spatial.attribute =    db.bibliocoverage.spatial-enum.attribute    | db.bibliocoverage.spatial-other.attributes  db.bibliocoverage.temporal.enumeration =        ## A specification of the limits of a time interval    "dcmiperiod"    |       ## W3C Encoding rules for dates and times—a profile based on ISO 8601      "w3c-dtf"  db.bibliocoverage.temporal-enum.attribute =        ## Specifies the type of temporal coverage    attribute temporal { db.bibliocoverage.temporal.enumeration }?  db.bibliocoverage.temporal-other.attributes =        ## Specifies the type of temporal coverage    attribute temporal {            ## Specifies a non-standard type of coverage      "othertemporal"    }?,        ## A keyword that identifies the type of non-standard coverage    attribute othertemporal { xsd:NMTOKEN }  db.bibliocoverage.temporal.attribute =    db.bibliocoverage.temporal-enum.attribute    | db.bibliocoverage.temporal-other.attributes  db.bibliocoverage.coverage.attrib =    db.bibliocoverage.spatial.attribute    & db.bibliocoverage.temporal.attribute  db.bibliocoverage.role.attribute = attribute role { text }  db.bibliocoverage.attlist =    db.bibliocoverage.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.bibliocoverage.coverage.attrib  db.bibliocoverage =        ## The spatial or temporal coverage of a document    element bibliocoverage { db.bibliocoverage.attlist, db._text }}div {  db.legalnotice.role.attribute = attribute role { text }  db.legalnotice.attlist =    db.legalnotice.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.legalnotice.info = db._info.title.only  db.legalnotice =        ## A statement of legal obligations or requirements    element legalnotice {      db.legalnotice.attlist, db.legalnotice.info, db.all.blocks+    }}div {  db.othercredit.class.enumeration =        ## A copy editor    "copyeditor"    |       ## A graphic designer      "graphicdesigner"    |       ## Some other contributor      "other"    |       ## A production editor      "productioneditor"    |       ## A technical editor      "technicaleditor"    |       ## A translator      "translator"    |       ## An indexer      "indexer"    |       ## A proof-reader      "proofreader"    |       ## A cover designer      "coverdesigner"    |       ## An interior designer      "interiordesigner"    |       ## An illustrator      "illustrator"    |       ## A reviewer      "reviewer"    |       ## A typesetter      "typesetter"    |       ## A converter (a persons responsible for conversion, not an application)      "conversion"  db.othercredit.class-enum.attribute =        ## Identifies the nature of the contributor    attribute class { db.othercredit.class.enumeration }?  db.othercredit.class-other.attribute =        ## Identifies the nature of the non-standard contribution    attribute otherclass { xsd:NMTOKEN }  db.othercredit.class-other.attributes =        ## Identifies the nature of the contributor    attribute class {            ## Identifies a non-standard contribution      "other"    }    & db.othercredit.class-other.attribute  db.othercredit.class.attribute =    db.othercredit.class-enum.attribute    | db.othercredit.class-other.attributes  db.othercredit.role.attribute = attribute role { text }  db.othercredit.attlist =    db.othercredit.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.othercredit.class.attribute  db.othercredit =        ## A person or entity, other than an author or editor, credited in a document    element othercredit {      db.othercredit.attlist, db.credit.contentmodel    }}div {  db.pagenums.role.attribute = attribute role { text }  db.pagenums.attlist =    db.pagenums.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.pagenums =        ## The numbers of the pages in a book, for use in a bibliographic entry    element pagenums { db.pagenums.attlist, db._text }}div {  db.contrib.role.attribute = attribute role { text }  db.contrib.attlist =    db.contrib.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.contrib =        ## A summary of the contributions made to a document by a credited source    element contrib { db.contrib.attlist, db.all.inlines* }}div {  db.honorific.role.attribute = attribute role { text }  db.honorific.attlist =    db.honorific.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.honorific =        ## The title of a person    element honorific { db.honorific.attlist, db._text }}div {  db.firstname.role.attribute = attribute role { text }  db.firstname.attlist =    db.firstname.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.firstname =        ## A given name of a person    element firstname { db.firstname.attlist, db._text }}div {  db.givenname.role.attribute = attribute role { text }  db.givenname.attlist =    db.givenname.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.givenname =        ## The given name of a person    element givenname { db.givenname.attlist, db._text }}div {  db.surname.role.attribute = attribute role { text }  db.surname.attlist =    db.surname.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.surname =        ## An inherited or family name; in western cultures the last name    element surname { db.surname.attlist, db._text }}div {  db.lineage.role.attribute = attribute role { text }  db.lineage.attlist =    db.lineage.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.lineage =        ## The portion of a person's name indicating a relationship to ancestors    element lineage { db.lineage.attlist, db._text }}div {  db.othername.role.attribute = attribute role { text }  db.othername.attlist =    db.othername.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.othername =        ## A component of a person's name that is not a first name, surname, or lineage    element othername { db.othername.attlist, db._text }}div {  db.printhistory.role.attribute = attribute role { text }  db.printhistory.attlist =    db.printhistory.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.printhistory =        ## The printing history of a document    element printhistory { db.printhistory.attlist, db.para.blocks+ }}div {  db.pubdate.role.attribute = attribute role { text }  db.pubdate.attlist =    db.pubdate.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.pubdate =        ## The date of publication of a document    element pubdate { db.pubdate.attlist, db.date.contentmodel }}div {  db.publisher.role.attribute = attribute role { text }  db.publisher.attlist =    db.publisher.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.publisher =        ## The publisher of a document    element publisher {      db.publisher.attlist, db.publishername, db.address*    }}div {  db.publishername.role.attribute = attribute role { text }  db.publishername.attlist =    db.publishername.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.publishername =        ## The name of the publisher of a document    element publishername { db.publishername.attlist, db._text }}div {  db.releaseinfo.role.attribute = attribute role { text }  db.releaseinfo.attlist =    db.releaseinfo.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.releaseinfo =        ## Information about a particular release of a document    element releaseinfo { db.releaseinfo.attlist, db._text }}div {  db.revhistory.role.attribute = attribute role { text }  db.revhistory.attlist =    db.revhistory.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.revhistory.info = db._info.title.only  db.revhistory =        ## A history of the revisions to a document    element revhistory {      db.revhistory.attlist, db.revhistory.info, db.revision+    }}div {  db.revision.role.attribute = attribute role { text }  db.revision.attlist =    db.revision.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.revision =        ## An entry describing a single revision in the history of the revisions to a document    element revision {      db.revision.attlist,      db.revnumber?,      db.date,      (db.authorinitials | db.author)*,      (db.revremark | db.revdescription)?    }}div {  db.revnumber.role.attribute = attribute role { text }  db.revnumber.attlist =    db.revnumber.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.revnumber =        ## A document revision number    element revnumber { db.revnumber.attlist, db._text }}div {  db.revremark.role.attribute = attribute role { text }  db.revremark.attlist =    db.revremark.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.revremark =        ## A description of a revision to a document    element revremark { db.revremark.attlist, db._text }}div {  db.revdescription.role.attribute = attribute role { text }  db.revdescription.attlist =    db.revdescription.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.revdescription =        ## A extended description of a revision to a document    element revdescription { db.revdescription.attlist, db.all.blocks* }}div {  db.seriesvolnums.role.attribute = attribute role { text }  db.seriesvolnums.attlist =    db.seriesvolnums.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.seriesvolnums =        ## Numbers of the volumes in a series of books    element seriesvolnums { db.seriesvolnums.attlist, db._text }}div {  db.volumenum.role.attribute = attribute role { text }  db.volumenum.attlist =    db.volumenum.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.volumenum =        ## The volume number of a document in a set (as of books in a set or articles in a journal)    element volumenum { db.volumenum.attlist, db._text }}div {  db.issuenum.role.attribute = attribute role { text }  db.issuenum.attlist =    db.issuenum.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.issuenum =        ## The number of an issue of a journal    element issuenum { db.issuenum.attlist, db._text }}div {  db.package.role.attribute = attribute role { text }  db.package.attlist =    db.package.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.package =        ## A software or application package    element package { db.package.attlist, db._text }}div {  db.email.role.attribute = attribute role { text }  db.email.attlist =    db.email.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.email =        ## An email address    element email { db.email.attlist, db._text }}div {  db.lineannotation.role.attribute = attribute role { text }  db.lineannotation.attlist =    db.lineannotation.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.lineannotation =        ## A comment on a line in a verbatim listing    element lineannotation { db.lineannotation.attlist, db._text }}div {  db.parameter.class.enumeration =        ## A command    "command"    |       ## A function      "function"    |       ## An option      "option"  db.parameter.class.attribute =        ## Identifies the class of parameter    attribute class { db.parameter.class.enumeration }  db.parameter.role.attribute = attribute role { text }  db.parameter.attlist =    db.parameter.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.parameter.class.attribute?  db.parameter =        ## A value or a symbolic reference to a value    element parameter { db.parameter.attlist, db._text }}db.replaceable.inlines = db._text | db.codiv {  db.replaceable.class.enumeration =        ## A command    "command"    |       ## A function      "function"    |       ## An option      "option"    |       ## A parameter      "parameter"  db.replaceable.class.attribute =        ## Identifies the nature of the replaceable text    attribute class { db.replaceable.class.enumeration }  db.replaceable.role.attribute = attribute role { text }  db.replaceable.attlist =    db.replaceable.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.replaceable.class.attribute?  db.replaceable =        ## Content that may or must be replaced by the user    element replaceable {      db.replaceable.attlist, db.replaceable.inlines*    }}div {  db.uri.type.attribute =        ## Identifies the type of URI specified    attribute type { text }?  db.uri.role.attribute = attribute role { text }  db.uri.attlist =    db.uri.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.uri.type.attribute  db.uri =        ## A Uniform Resource Identifier    element uri { db.uri.attlist, db._text }}div {  db.abbrev.role.attribute = attribute role { text }  db.abbrev.attlist =    db.abbrev.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.abbrev =        ## An abbreviation, especially one followed by a period    element abbrev {      db.abbrev.attlist,      (db._text | db.superscript | db.subscript | db.trademark)*    }}div {  db.acronym.role.attribute = attribute role { text }  db.acronym.attlist =    db.acronym.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.acronym =        ## An often pronounceable word made from the initial (or selected) letters of a name or phrase    element acronym {      db.acronym.attlist,      (db._text | db.superscript | db.subscript | db.trademark)*    }}div {  db.citation.role.attribute = attribute role { text }  db.citation.attlist =    db.citation.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.citation =        ## An inline bibliographic reference to another published work    element citation { db.citation.attlist, db.all.inlines* }}div {  db.citerefentry.role.attribute = attribute role { text }  db.citerefentry.attlist =    db.citerefentry.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.citerefentry =        ## A citation to a reference page    element citerefentry {      db.citerefentry.attlist, db.refentrytitle, db.manvolnum?    }}div {  db.refentrytitle.role.attribute = attribute role { text }  db.refentrytitle.attlist =    db.refentrytitle.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.refentrytitle =        ## The title of a reference page    element refentrytitle { db.refentrytitle.attlist, db.all.inlines* }}div {  db.manvolnum.role.attribute = attribute role { text }  db.manvolnum.attlist =    db.manvolnum.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.manvolnum =        ## A reference volume number    element manvolnum { db.manvolnum.attlist, db._text }}div {  db.citetitle.pubwork.enumeration =        ## An article    "article"    |       ## A bulletin board system      "bbs"    |       ## A book      "book"    |       ## A CD-ROM      "cdrom"    |       ## A chapter (as of a book)      "chapter"    |       ## A DVD      "dvd"    |       ## An email message      "emailmessage"    |       ## A gopher page      "gopher"    |       ## A journal      "journal"    |       ## A manuscript      "manuscript"    |       ## A posting to a newsgroup      "newsposting"    |       ## A part (as of a book)      "part"    |       ## A reference entry      "refentry"    |       ## A section (as of a book or article)      "section"    |       ## A series      "series"    |       ## A set (as of books)      "set"    |       ## A web page      "webpage"    |       ## A wiki page      "wiki"  db.citetitle.pubwork.attribute =        ## Identifies the nature of the publication being cited    attribute pubwork { db.citetitle.pubwork.enumeration }  db.citetitle.role.attribute = attribute role { text }  db.citetitle.attlist =    db.citetitle.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.citetitle.pubwork.attribute?  db.citetitle =        ## The title of a cited work    element citetitle { db.citetitle.attlist, db.all.inlines* }}div {  db.emphasis.role.attribute = attribute role { text }  db.emphasis.attlist =    db.emphasis.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.emphasis =        ## Emphasized text    element emphasis { db.emphasis.attlist, db.all.inlines* }}div {  db._emphasis =        ## A limited span of emphasized text    element emphasis { db.emphasis.attlist, db._text }}div {  db.foreignphrase.role.attribute = attribute role { text }  db.foreignphrase.attlist =    db.foreignphrase.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.foreignphrase =        ## A word or phrase in a language other than the primary language of the document    element foreignphrase {      db.foreignphrase.attlist, (text | db.general.inlines)*    }}div {  db._foreignphrase.role.attribute = attribute role { text }  db._foreignphrase.attlist =    db._foreignphrase.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db._foreignphrase =        ## A limited word or phrase in a language other than the primary language of the document    element foreignphrase { db._foreignphrase.attlist, db._text }}div {  db.phrase.role.attribute = attribute role { text }  db.phrase.attlist =    db.phrase.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.phrase =        ## A span of text    element phrase { db.phrase.attlist, db.all.inlines* }}div {  db._phrase =        ## A limited span of text    element phrase { db.phrase.attlist, db._text }}div {  db.quote.role.attribute = attribute role { text }  db.quote.attlist =    db.quote.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.quote =        ## An inline quotation    element quote { db.quote.attlist, db.all.inlines* }}div {  db._quote.role.attribute = attribute role { text }  db._quote.attlist =    db._quote.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db._quote =        ## A limited inline quotation    element quote { db._quote.attlist, db._text }}div {  db.subscript.role.attribute = attribute role { text }  db.subscript.attlist =    db.subscript.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.subscript =        ## A subscript (as in H2    ## O, the molecular formula for water)    element subscript { db.subscript.attlist, db._text }}div {  db.superscript.role.attribute = attribute role { text }  db.superscript.attlist =    db.superscript.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.superscript =        ## A superscript (as in x2    ## , the mathematical notation for x multiplied by itself)    element superscript { db.superscript.attlist, db._text }}div {  db.trademark.class.enumeration =        ## A copyright    "copyright"    |       ## A registered copyright      "registered"    |       ## A service      "service"    |       ## A trademark      "trade"  db.trademark.class.attribute =        ## Identifies the class of trade mark    attribute class { db.trademark.class.enumeration }  db.trademark.role.attribute = attribute role { text }  db.trademark.attlist =    db.trademark.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.trademark.class.attribute?  db.trademark =        ## A trademark    element trademark { db.trademark.attlist, db._text }}div {  db.wordasword.role.attribute = attribute role { text }  db.wordasword.attlist =    db.wordasword.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.wordasword =        ## A word meant specifically as a word and not representing anything else    element wordasword { db.wordasword.attlist, db._text }}div {  db.footnoteref.role.attribute = attribute role { text }  db.footnoteref.label.attribute = db.label.attribute  db.footnoteref.attlist =    db.footnoteref.role.attribute?    & db.common.attributes    & db.linkend.attribute    & db.footnoteref.label.attribute?  db.footnoteref =        ## A cross reference to a footnote (a footnote mark)    [      s:pattern [        name = "Footnote reference type constraint"        "\x{a}" ~        "               "        s:rule [          context = "db:footnoteref"          "\x{a}" ~          "                  "          s:assert [            test =              "local-name(//*[@xml:id=current()/@linkend]) = 'footnote' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"            "@linkend on footnoteref must point to a footnote."          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element footnoteref { db.footnoteref.attlist, empty }}div {  db.xref.role.attribute = attribute role { text }  db.xref.xrefstyle.attribute = db.xrefstyle.attribute  db.xref.endterm.attribute = db.endterm.attribute  db.xref.attlist =    db.xref.role.attribute?    & db.common.attributes    & db.common.req.linking.attributes    & db.xref.xrefstyle.attribute?    & db.xref.endterm.attribute?  db.xref =        ## A cross reference to another part of the document    element xref { db.xref.attlist, empty }}div {  db.link.role.attribute = attribute role { text }  db.link.xrefstyle.attribute = db.xrefstyle.attribute  db.link.endterm.attribute = db.endterm.attribute  db.link.attlist =    db.link.role.attribute?    & db.common.attributes    & db.common.req.linking.attributes    & db.link.xrefstyle.attribute?    & db.link.endterm.attribute?  db.link =        ## A hypertext link    element link { db.link.attlist, db.all.inlines* }}div {  db.olink.role.attribute = attribute role { text }  db.olink.xrefstyle.attribute = db.xrefstyle.attribute  db.olink.localinfo.attribute =        ## Holds additional information that may be used by the application when resolving the link    attribute localinfo { text }  db.olink.targetdoc.attribute =        ## Specifies the URI of the document in which the link target appears    attribute targetdoc { xsd:anyURI }  db.olink.targetptr.attribute =        ## Specifies the location of the link target in the document    attribute targetptr { text }  db.olink.type.attribute =        ## Identifies application-specific customization of the link behavior    attribute type { text }  db.olink.attlist =    db.common.attributes    & db.olink.targetdoc.attribute?    & db.olink.role.attribute?    & db.olink.xrefstyle.attribute?    & db.olink.localinfo.attribute?    & db.olink.targetptr.attribute?    & db.olink.type.attribute?  db.olink =        ## A link that addresses its target indirectly    element olink { db.olink.attlist, db.all.inlines* }}div {  db.anchor.role.attribute = attribute role { text }  db.anchor.attlist =    db.anchor.role.attribute? & db.common.idreq.attributes  db.anchor =        ## A spot in the document    element anchor { db.anchor.attlist, empty }}div {  db.alt.role.attribute = attribute role { text }  db.alt.attlist = db.alt.role.attribute? & db.common.attributes  db.alt =        ## A text-only annotation, often used for accessibility    element alt { db.alt.attlist, (text | db.inlinemediaobject)* }}db.status.attribute =    ## Identifies the editorial or publication status of the element on which it occurs  attribute status { text }db.toplevel.sections =  ((db.section+, db.simplesect*) | db.simplesect+)  | (db.sect1+, db.simplesect*)  | db.refentry+db.toplevel.blocks.or.sections =  (db.all.blocks+, db.toplevel.sections?) | db.toplevel.sectionsdb.recursive.sections =  ((db.section+, db.simplesect*) | db.simplesect+)  | db.refentry+db.recursive.blocks.or.sections =  (db.all.blocks+, db.recursive.sections?) | db.recursive.sectionsdb.divisions = db.part | db.referencedb.components =  db.dedication  | db.acknowledgements  | db.preface  | db.chapter  | db.appendix  | db.article  | db.colophondb.navigation.components =  notAllowed | db.glossary | db.bibliography | db.index | db.tocdb.component.contentmodel =  db.navigation.components*,  db.toplevel.blocks.or.sections,  db.navigation.components*db.setindex.components = notAllowed | db.setindexdb.toc.components = notAllowed | db.tocdb.set.components = db.set | db.bookdiv {  db.set.status.attribute = db.status.attribute  db.set.role.attribute = attribute role { text }  db.set.attlist =    db.set.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.set.status.attribute?  db.set.info = db._info.title.req  db.set =        ## A collection of books    element set {      db.set.attlist,      db.set.info,      db.toc.components?,      db.set.components+,      db.setindex.components?    }}db.book.components =  (db.navigation.components | db.components | db.divisions)* | db.topic*div {  db.book.status.attribute = db.status.attribute  db.book.role.attribute = attribute role { text }  db.book.attlist =    db.book.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.book.status.attribute?  db.book.info = db._info  db.book =        ## A book    element book { db.book.attlist, db.book.info, db.book.components }}div {  db.dedication.status.attribute = db.status.attribute  db.dedication.role.attribute = attribute role { text }  db.dedication.attlist =    db.dedication.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.dedication.status.attribute?  db.dedication.info = db._info  db.dedication =        ## The dedication of a book or other component    element dedication {      db.dedication.attlist, db.dedication.info, db.all.blocks+    }}div {  db.acknowledgements.status.attribute = db.status.attribute  db.acknowledgements.role.attribute = attribute role { text }  db.acknowledgements.attlist =    db.acknowledgements.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.acknowledgements.status.attribute?  db.acknowledgements.info = db._info  db.acknowledgements =        ## Acknowledgements of a book or other component    element acknowledgements {      db.acknowledgements.attlist,      db.acknowledgements.info,      db.all.blocks+    }}div {  db.colophon.status.attribute = db.status.attribute  db.colophon.role.attribute = attribute role { text }  db.colophon.attlist =    db.colophon.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.colophon.status.attribute?  db.colophon.info = db._info  db.colophon =        ## Text at the back of a book describing facts about its production    element colophon {      db.colophon.attlist,      db.colophon.info,      ((db.all.blocks+, db.simplesect*)       | (db.all.blocks*, db.simplesect+))    }}db.appendix.contentmodel = db.component.contentmodel | db.topic+div {  db.appendix.status.attribute = db.status.attribute  db.appendix.role.attribute = attribute role { text }  db.appendix.attlist =    db.appendix.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.appendix.status.attribute?  db.appendix.info = db._info.title.req  db.appendix =        ## An appendix in a book or article    element appendix {      db.appendix.attlist, db.appendix.info, db.appendix.contentmodel?    }}db.chapter.contentmodel = db.component.contentmodel | db.topic+div {  db.chapter.status.attribute = db.status.attribute  db.chapter.role.attribute = attribute role { text }  db.chapter.attlist =    db.chapter.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.chapter.status.attribute?  db.chapter.info = db._info.title.req  db.chapter =        ## A chapter, as of a book    element chapter {      db.chapter.attlist, db.chapter.info, db.chapter.contentmodel?    }}db.part.components =  (db.navigation.components | db.components)  | (db.refentry | db.reference)db.part.contentmodel = db.part.components+ | db.topic+div {  db.part.status.attribute = db.status.attribute  db.part.role.attribute = attribute role { text }  db.part.attlist =    db.part.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.part.status.attribute?  db.part.info = db._info.title.req  db.part =        ## A division in a book    element part {      db.part.attlist,      db.part.info,      db.partintro?,      db.part.contentmodel?    }}div {  db.preface.status.attribute = db.status.attribute  db.preface.role.attribute = attribute role { text }  db.preface.attlist =    db.preface.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.preface.status.attribute?  db.preface.info = db._info.title.req  db.preface =        ## Introductory matter preceding the first chapter of a book    element preface {      db.preface.attlist, db.preface.info, db.component.contentmodel?    }}div {  db.partintro.status.attribute = db.status.attribute  db.partintro.role.attribute = attribute role { text }  db.partintro.attlist =    db.partintro.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.partintro.status.attribute?  db.partintro.info = db._info  db.partintro =        ## An introduction to the contents of a part    element partintro {      db.partintro.attlist,      db.partintro.info,      db.toplevel.blocks.or.sections?    }}div {  db.section.status.attribute = db.status.attribute  db.section.role.attribute = attribute role { text }  db.section.attlist =    db.section.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.section.status.attribute?  db.section.info = db._info.title.req  db.section =        ## A recursive section    element section {      db.section.attlist,      db.section.info,      db.recursive.blocks.or.sections?,      db.navigation.components*    }}div {  db.simplesect.status.attribute = db.status.attribute  db.simplesect.role.attribute = attribute role { text }  db.simplesect.attlist =    db.simplesect.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.simplesect.status.attribute?  db.simplesect.info = db._info.title.req  db.simplesect =        ## A section of a document with no subdivisions    element simplesect {      db.simplesect.attlist, db.simplesect.info, db.all.blocks*    }}db.article.components = db.toplevel.sectionsdb.article.navcomponents =  db.navigation.components  | db.acknowledgements  | db.dedication  | db.appendix  | db.colophondiv {  db.article.status.attribute = db.status.attribute  db.article.class.enumeration =        ## A collection of frequently asked questions.    "faq"    |       ## An article in a journal or other periodical.      "journalarticle"    |       ## A description of a product.      "productsheet"    |       ## A specification.      "specification"    |       ## A technical report.      "techreport"    |       ## A white paper.      "whitepaper"  db.article.class.attribute =        ## Identifies the nature of the article    attribute class { db.article.class.enumeration }  db.article.role.attribute = attribute role { text }  db.article.attlist =    db.article.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.article.status.attribute?    & db.article.class.attribute?  db.article.info = db._info.title.req  db.article =        ## An article    element article {      db.article.attlist,      db.article.info,      db.article.navcomponents*,      ((db.all.blocks+, db.article.components?)       | db.article.components),      db.article.navcomponents*    }}db.annotations.attribute =    ## Identifies one or more annotations that apply to this element  attribute annotations { text }div {  db.annotation.role.attribute = attribute role { text }  db.annotation.annotates.attribute =        ## Identifies one ore more elements to which this annotation applies    attribute annotates { text }  db.annotation.attlist =    db.annotation.role.attribute?    & db.annotation.annotates.attribute?    & db.common.attributes  db.annotation.info = db._info.title.only  db.annotation =        ## An annotation    [      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:annotation"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:annotation)"            "annotation must not occur among the children or descendants of annotation"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element annotation {      db.annotation.attlist, db.annotation.info, db.all.blocks+    }}db.xlink.extended.type.attribute =    ## Identifies the XLink extended link type  [    s:pattern [      name = "XLink extended placement"      "\x{a}" ~      "            "      s:rule [        context = "*[@xlink:type='extended']"        "\x{a}" ~        "               "        s:assert [          test = "not(parent::*[@xlink:type='extended'])"          "An XLink extended type element may not occur as the direct child of an XLink extended type element."        ]        "\x{a}" ~        "            "      ]      "\x{a}" ~      "         "    ]  ]  attribute xlink:type {        ## An XLink extended link type    "extended"  }db.xlink.locator.type.attribute =    ## Identifies the XLink locator link type  [    s:pattern [      name = "XLink locator placement"      "\x{a}" ~      "            "      s:rule [        context = "*[@xlink:type='locator']"        "\x{a}" ~        "               "        s:assert [          test = "not(parent::*[@xlink:type='extended'])"          "An XLink locator type element must occur as the direct child of an XLink extended type element."        ]        "\x{a}" ~        "            "      ]      "\x{a}" ~      "         "    ]  ]  attribute xlink:type {        ## An XLink locator link type    "locator"  }db.xlink.arc.type.attribute =    ## Identifies the XLink arc link type  [    s:pattern [      name = "XLink arc placement"      "\x{a}" ~      "            "      s:rule [        context = "*[@xlink:type='arc']"        "\x{a}" ~        "               "        s:assert [          test = "parent::*[@xlink:type='extended']"          "An XLink arc type element must occur as the direct child of an XLink extended type element."        ]        "\x{a}" ~        "            "      ]      "\x{a}" ~      "         "    ]  ]  attribute xlink:type {        ## An XLink arc link type    "arc"  }db.xlink.resource.type.attribute =    ## Identifies the XLink resource link type  [    s:pattern [      name = "XLink resource placement"      "\x{a}" ~      "            "      s:rule [        context = "*[@xlink:type='resource']"        "\x{a}" ~        "               "        s:assert [          test = "not(parent::*[@xlink:type='extended'])"          "An XLink resource type element must occur as the direct child of an XLink extended type element."        ]        "\x{a}" ~        "            "      ]      "\x{a}" ~      "         "    ]  ]  attribute xlink:type {        ## An XLink resource link type    "resource"  }db.xlink.title.type.attribute =    ## Identifies the XLink title link type  [    s:pattern [      name = "XLink title placement"      "\x{a}" ~      "            "      s:rule [        context = "*[@xlink:type='title']"        "\x{a}" ~        "               "        s:assert [          test =            "not(parent::*[@xlink:type='extended']) and not(parent::*[@xlink:type='locator']) and not(parent::*[@xlink:type='arc'])"          "An XLink title type element must occur as the direct child of an XLink extended, locator, or arc type element."        ]        "\x{a}" ~        "            "      ]      "\x{a}" ~      "         "    ]  ]  attribute xlink:type {        ## An XLink title link type    "title"  }db.xlink.extended.link.attributes =  db.xlink.extended.type.attribute  & db.xlink.role.attribute?  & db.xlink.title.attribute?db.xlink.locator.link.attributes =  db.xlink.locator.type.attribute  & db.xlink.href.attribute  & db.xlink.role.attribute?  & db.xlink.title.attribute?  & db.xlink.label.attribute?db.xlink.arc.link.attributes =  db.xlink.arc.type.attribute  & db.xlink.arcrole.attribute?  & db.xlink.title.attribute?  & db.xlink.show.attribute?  & db.xlink.actuate.attribute?  & db.xlink.from.attribute?  & db.xlink.to.attribute?db.xlink.resource.link.attributes =  db.xlink.resource.type.attribute  & db.xlink.role.attribute?  & db.xlink.title.attribute?  & db.xlink.label.attribute?db.xlink.title.link.attributes = db.xlink.title.type.attributedb.xlink.from.attribute =    ## Specifies the XLink traversal-from  attribute xlink:from { xsd:NMTOKEN }db.xlink.label.attribute =    ## Specifies the XLink label  attribute xlink:label { xsd:NMTOKEN }db.xlink.to.attribute =    ## Specifies the XLink traversal-to  attribute xlink:to { xsd:NMTOKEN }div {  db.extendedlink.role.attribute = attribute role { text }  db.extendedlink.attlist =    db.extendedlink.role.attribute?    & db.common.attributes    &       ## Identifies the XLink link type       [ a:defaultValue = "extended" ]      attribute xlink:type {                ## An XLink extended link        "extended"      }?    & db.xlink.role.attribute?    & db.xlink.title.attribute?  db.extendedlink =        ## An XLink extended link    element extendedlink {      db.extendedlink.attlist, (db.locator | db.arc | db.link)+    }}div {  db.locator.role.attribute = attribute role { text }  db.locator.attlist =    db.locator.role.attribute?    & db.common.attributes    &       ## Identifies the XLink link type       [ a:defaultValue = "locator" ]      attribute xlink:type {                ## An XLink locator link        "locator"      }?    & db.xlink.href.attribute    & db.xlink.role.attribute?    & db.xlink.title.attribute?    & db.xlink.label.attribute?  db.locator =        ## An XLink locator in an extendedlink    element locator { db.locator.attlist, empty }}div {  db.arc.role.attribute = attribute role { text }  db.arc.attlist =    db.arc.role.attribute?    & db.common.attributes    &       ## Identifies the XLink link type       [ a:defaultValue = "arc" ]      attribute xlink:type {                ## An XLink arc link        "arc"      }?    & db.xlink.arcrole.attribute?    & db.xlink.title.attribute?    & db.xlink.show.attribute?    & db.xlink.actuate.attribute?    & db.xlink.from.attribute?    & db.xlink.to.attribute?  db.arc =        ## An XLink arc in an extendedlink    element arc { db.arc.attlist, empty }}db.sect1.sections = (db.sect2+, db.simplesect*) | db.simplesect+div {  db.sect1.status.attribute = db.status.attribute  db.sect1.role.attribute = attribute role { text }  db.sect1.attlist =    db.sect1.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.sect1.status.attribute?  db.sect1.info = db._info.title.req  db.sect1 =        ## A top-level section of document    element sect1 {      db.sect1.attlist,      db.sect1.info,      ((db.all.blocks+, db.sect1.sections?) | db.sect1.sections)?,      db.navigation.components*    }}db.sect2.sections = (db.sect3+, db.simplesect*) | db.simplesect+div {  db.sect2.status.attribute = db.status.attribute  db.sect2.role.attribute = attribute role { text }  db.sect2.attlist =    db.sect2.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.sect2.status.attribute?  db.sect2.info = db._info.title.req  db.sect2 =        ## A subsection within a sect1    element sect2 {      db.sect2.attlist,      db.sect2.info,      ((db.all.blocks+, db.sect2.sections?) | db.sect2.sections)?,      db.navigation.components*    }}db.sect3.sections = (db.sect4+, db.simplesect*) | db.simplesect+div {  db.sect3.status.attribute = db.status.attribute  db.sect3.role.attribute = attribute role { text }  db.sect3.attlist =    db.sect3.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.sect3.status.attribute?  db.sect3.info = db._info.title.req  db.sect3 =        ## A subsection within a sect2    element sect3 {      db.sect3.attlist,      db.sect3.info,      ((db.all.blocks+, db.sect3.sections?) | db.sect3.sections)?,      db.navigation.components*    }}db.sect4.sections = (db.sect5+, db.simplesect*) | db.simplesect+div {  db.sect4.status.attribute = db.status.attribute  db.sect4.role.attribute = attribute role { text }  db.sect4.attlist =    db.sect4.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.sect4.status.attribute?  db.sect4.info = db._info.title.req  db.sect4 =        ## A subsection within a sect3    element sect4 {      db.sect4.attlist,      db.sect4.info,      ((db.all.blocks+, db.sect4.sections?) | db.sect4.sections)?,      db.navigation.components*    }}db.sect5.sections = db.simplesect+div {  db.sect5.status.attribute = db.status.attribute  db.sect5.role.attribute = attribute role { text }  db.sect5.attlist =    db.sect5.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.sect5.status.attribute?  db.sect5.info = db._info.title.req  db.sect5 =        ## A subsection within a sect4    element sect5 {      db.sect5.attlist,      db.sect5.info,      ((db.all.blocks+, db.sect5.sections?) | db.sect5.sections)?,      db.navigation.components*    }}db.toplevel.refsection = db.refsection+ | db.refsect1+db.secondlevel.refsection = db.refsection+ | db.refsect2+db.reference.components = db.refentrydiv {  db.reference.status.attribute = db.status.attribute  db.reference.role.attribute = attribute role { text }  db.reference.attlist =    db.reference.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.reference.status.attribute?    & db.label.attribute?  db.reference.info = db._info.title.req  db.reference =        ## A collection of reference entries    element reference {      db.reference.attlist,      db.reference.info,      db.partintro?,      db.reference.components*    }}div {  db.refentry.status.attribute = db.status.attribute  db.refentry.role.attribute = attribute role { text }  db.refentry.attlist =    db.refentry.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.refentry.status.attribute?    & db.label.attribute?  db.refentry.info = db._info.title.forbidden  db.refentry =        ## A reference page (originally a UNIX man-style reference page)    element refentry {      db.refentry.attlist,      db.indexterm*,      db.refentry.info,      db.refmeta?,      db.refnamediv+,      db.refsynopsisdiv?,      db.toplevel.refsection    }}div {  db.refmeta.role.attribute = attribute role { text }  db.refmeta.attlist =    db.refmeta.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.refmeta =        ## Meta-information for a reference entry    element refmeta {      db.refmeta.attlist,      db.indexterm*,      db.refentrytitle,      db.manvolnum?,      db.refmiscinfo*,      db.indexterm*    }}db.refmiscinfo.class.enumeration =    ## The name of the software product or component to which this topic applies  "source"  |     ## The version of the software product or component to which this topic applies    "version"  |     ## The section title of the reference page (e.g., User Commands)    "manual"  |     ## The section title of the reference page (believed synonymous with "manual" but in wide use)    "sectdesc"  |     ## The name of the software product or component to which this topic applies (e.g., SunOS x.y; believed synonymous with "source" but in wide use)    "software"db.refmiscinfo.class-enum.attribute =    ## Identifies the kind of miscellaneous information  attribute class { db.refmiscinfo.class.enumeration }?db.refmiscinfo.class-other.attribute =    ## Identifies the nature of non-standard miscellaneous information  attribute otherclass { text }db.refmiscinfo.class-other.attributes =    ## Identifies the kind of miscellaneious information  attribute class {        ## Indicates that the information is some 'other' kind.    "other"  }  & db.refmiscinfo.class-other.attributedb.refmiscinfo.class.attribute =  db.refmiscinfo.class-enum.attribute  | db.refmiscinfo.class-other.attributesdiv {  db.refmiscinfo.role.attribute = attribute role { text }  db.refmiscinfo.attlist =    db.refmiscinfo.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.refmiscinfo.class.attribute?  db.refmiscinfo =        ## Meta-information for a reference entry other than the title and volume number    element refmiscinfo { db.refmiscinfo.attlist, db._text }}div {  db.refnamediv.role.attribute = attribute role { text }  db.refnamediv.attlist =    db.refnamediv.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.refnamediv =        ## The name, purpose, and classification of a reference page    element refnamediv {      db.refnamediv.attlist,      db.refdescriptor?,      db.refname+,      db.refpurpose,      db.refclass*    }}div {  db.refdescriptor.role.attribute = attribute role { text }  db.refdescriptor.attlist =    db.refdescriptor.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.refdescriptor =        ## A description of the topic of a reference page    element refdescriptor { db.refdescriptor.attlist, db.all.inlines* }}div {  db.refname.role.attribute = attribute role { text }  db.refname.attlist =    db.refname.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.refname =        ## The name of (one of) the subject(s) of a reference page    element refname { db.refname.attlist, db.all.inlines* }}div {  db.refpurpose.role.attribute = attribute role { text }  db.refpurpose.attlist =    db.refpurpose.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.refpurpose =        ## A short (one sentence) synopsis of the topic of a reference page    element refpurpose { db.refpurpose.attlist, db.all.inlines* }}div {  db.refclass.role.attribute = attribute role { text }  db.refclass.attlist =    db.refclass.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.refclass =        ## The scope or other indication of applicability of a reference entry    element refclass { db.refclass.attlist, (text | db.application)* }}div {  db.refsynopsisdiv.role.attribute = attribute role { text }  db.refsynopsisdiv.attlist =    db.refsynopsisdiv.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.refsynopsisdiv.info = db._info  db.refsynopsisdiv =        ## A syntactic synopsis of the subject of the reference page    element refsynopsisdiv {      db.refsynopsisdiv.attlist,      db.refsynopsisdiv.info,      ((db.all.blocks+, db.secondlevel.refsection?)       | db.secondlevel.refsection)    }}div {  db.refsection.status.attribute = db.status.attribute  db.refsection.role.attribute = attribute role { text }  db.refsection.attlist =    db.refsection.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.refsection.status.attribute?    & db.label.attribute?  db.refsection.info = db._info.title.req  db.refsection =        ## A recursive section in a refentry    element refsection {      db.refsection.attlist,      db.refsection.info,      ((db.all.blocks+, db.refsection*) | db.refsection+)    }}db.refsect1.sections = db.refsect2+div {  db.refsect1.status.attribute = db.status.attribute  db.refsect1.role.attribute = attribute role { text }  db.refsect1.attlist =    db.refsect1.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.refsect1.status.attribute?  db.refsect1.info = db._info.title.req  db.refsect1 =        ## A major subsection of a reference entry    element refsect1 {      db.refsect1.attlist,      db.refsect1.info,      ((db.all.blocks+, db.refsect1.sections?) | db.refsect1.sections)    }}db.refsect2.sections = db.refsect3+div {  db.refsect2.status.attribute = db.status.attribute  db.refsect2.role.attribute = attribute role { text }  db.refsect2.attlist =    db.refsect2.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.refsect2.status.attribute?  db.refsect2.info = db._info.title.req  db.refsect2 =        ## A subsection of a refsect1    element refsect2 {      db.refsect2.attlist,      db.refsect2.info,      ((db.all.blocks+, db.refsect2.sections?) | db.refsect2.sections)    }}div {  db.refsect3.status.attribute = db.status.attribute  db.refsect3.role.attribute = attribute role { text }  db.refsect3.attlist =    db.refsect3.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.refsect3.status.attribute?  db.refsect3.info = db._info.title.req  db.refsect3 =        ## A subsection of a refsect2    element refsect3 {      db.refsect3.attlist, db.refsect3.info, db.all.blocks+    }}db.glossary.inlines =  db.firstterm | db.glossterm | db._firstterm | db._glosstermdb.baseform.attribute =    ## Specifies the base form of the term, the one that appears in the glossary. This allows adjectival, plural, and other variations of the term to appear in the element. The element content is the default base form.  attribute baseform { text }?div {  db.glosslist.role.attribute = attribute role { text }  db.glosslist.attlist =    db.glosslist.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.glosslist.info = db._info.title.only  db.glosslist =        ## A wrapper for a list of glossary entries    element glosslist {      db.glosslist.attlist,      db.glosslist.info?,      db.all.blocks*,      db.glossentry+    }}div {  db.glossentry.role.attribute = attribute role { text }  db.glossentry.sortas.attribute =        ## Specifies the string by which the element's content is to be sorted; if unspecified, the content is used    attribute sortas { text }  db.glossentry.attlist =    db.glossentry.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.glossentry.sortas.attribute?  db.glossentry =        ## An entry in a glossary or glosslist    element glossentry {      db.glossentry.attlist,      db.glossterm,      db.acronym?,      db.abbrev?,      db.indexterm*,      (db.glosssee | db.glossdef+)    }}div {  db.glossdef.role.attribute = attribute role { text }  db.glossdef.subject.attribute =        ## Specifies a list of keywords for the definition    attribute subject { text }  db.glossdef.attlist =    db.glossdef.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.glossdef.subject.attribute?  db.glossdef =        ## A definition in a glossentry    element glossdef {      db.glossdef.attlist, db.all.blocks+, db.glossseealso*    }}div {  db.glosssee.role.attribute = attribute role { text }  db.glosssee.otherterm.attribute =        ## Identifies the other term    attribute otherterm { xsd:IDREF }  db.glosssee.attlist =    db.glosssee.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.glosssee.otherterm.attribute?  db.glosssee =        ## A cross-reference from one glossentry    ##  to another    [      s:pattern [        name = "Glosssary 'see' type constraint"        "\x{a}" ~        "               "        s:rule [          context = "db:glosssee[@otherterm]"          "\x{a}" ~          "                  "          s:assert [            test =              "local-name(//*[@xml:id=current()/@otherterm]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@otherterm]) = 'http://docbook.org/ns/docbook'"            "@otherterm on glosssee must point to a glossentry."          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element glosssee { db.glosssee.attlist, db.all.inlines* }}div {  db.glossseealso.role.attribute = attribute role { text }  db.glossseealso.otherterm.attribute =        ## Identifies the other term    attribute otherterm { xsd:IDREF }  db.glossseealso.attlist =    db.glossseealso.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.glossseealso.otherterm.attribute?  db.glossseealso =        ## A cross-reference from one glossentry to another    [      s:pattern [        name = "Glossary 'seealso' type constraint"        "\x{a}" ~        "               "        s:rule [          context = "db:glossseealso[@otherterm]"          "\x{a}" ~          "                  "          s:assert [            test =              "local-name(//*[@xml:id=current()/@otherterm]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@otherterm]) = 'http://docbook.org/ns/docbook'"            "@otherterm on glossseealso must point to a glossentry."          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element glossseealso { db.glossseealso.attlist, db.all.inlines* }}div {  db.firstterm.role.attribute = attribute role { text }  db.firstterm.attlist =    db.firstterm.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.baseform.attribute  db.firstterm =        ## The first occurrence of a term    [      s:pattern [        name = "Glossary 'firstterm' type constraint"        "\x{a}" ~        "               "        s:rule [          context = "db:firstterm[@linkend]"          "\x{a}" ~          "                  "          s:assert [            test =              "local-name(//*[@xml:id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"            "@linkend on firstterm must point to a glossentry."          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element firstterm { db.firstterm.attlist, db.all.inlines* }}div {  db._firstterm.role.attribute = attribute role { text }  db._firstterm.attlist =    db._firstterm.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.baseform.attribute  db._firstterm =        ## The first occurrence of a term, with limited content    [      s:pattern [        name = "Glossary 'firstterm' type constraint"        "\x{a}" ~        "               "        s:rule [          context = "db:firstterm[@linkend]"          "\x{a}" ~          "                  "          s:assert [            test =              "local-name(//*[@xml:id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"            "@linkend on firstterm must point to a glossentry."          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element firstterm { db._firstterm.attlist, db._text }}div {  db.glossterm.role.attribute = attribute role { text }  db.glossterm.attlist =    db.glossterm.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.baseform.attribute  db.glossterm =        ## A glossary term    [      s:pattern [        name = "Glossary 'glossterm' type constraint"        "\x{a}" ~        "               "        s:rule [          context = "db:glossterm[@linkend]"          "\x{a}" ~          "                  "          s:assert [            test =              "local-name(//*[@xml:id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"            "@linkend on glossterm must point to a glossentry."          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element glossterm { db.glossterm.attlist, db.all.inlines* }}div {  db._glossterm.role.attribute = attribute role { text }  db._glossterm.attlist =    db._glossterm.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.baseform.attribute  db._glossterm =        ## A glossary term    [      s:pattern [        name = "Glossary 'glossterm' type constraint"        "\x{a}" ~        "               "        s:rule [          context = "db:glossterm[@linkend]"          "\x{a}" ~          "                  "          s:assert [            test =              "local-name(//*[@xml:id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"            "@linkend on glossterm must point to a glossentry."          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element glossterm { db._glossterm.attlist, db._text }}div {  db.glossary.status.attribute = db.status.attribute  db.glossary.role.attribute = attribute role { text }  db.glossary.attlist =    db.glossary.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.glossary.status.attribute?  db.glossary.info = db._info  db.glossary =        ## A glossary    element glossary {      db.glossary.attlist,      db.glossary.info,      db.all.blocks*,      (db.glossdiv* | db.glossentry*),      db.bibliography?    }}div {  db.glossdiv.status.attribute = db.status.attribute  db.glossdiv.role.attribute = attribute role { text }  db.glossdiv.attlist =    db.glossdiv.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.glossdiv.status.attribute?  db.glossdiv.info = db._info.title.req  db.glossdiv =        ## A division in a glossary    element glossdiv {      db.glossdiv.attlist,      db.glossdiv.info,      db.all.blocks*,      db.glossentry+    }}div {  db.termdef.role.attribute = attribute role { text }  db.termdef.attlist =    db.termdef.role.attribute?    & db.glossentry.sortas.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.baseform.attribute  db.termdef =        ## An inline definition of a term    [      s:pattern [        name = "Glossary term definition constraint"        "\x{a}" ~        "               "        s:rule [          context = "db:termdef"          "\x{a}" ~          "                  "          s:assert [            test = "count(db:firstterm) = 1"            "A termdef must contain exactly one firstterm"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element termdef { db.termdef.attlist, db.all.inlines* }}db.relation.attribute =    ## Identifies the relationship between the bibliographic elemnts  attribute relation { text }div {  db.biblioentry.role.attribute = attribute role { text }  db.biblioentry.attlist =    db.biblioentry.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.biblioentry =        ## A raw entry in a bibliography    element biblioentry {      db.biblioentry.attlist, db.bibliographic.elements+    }}div {  db.bibliomixed.role.attribute = attribute role { text }  db.bibliomixed.attlist =    db.bibliomixed.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.bibliomixed =        ## A cooked entry in a bibliography    element bibliomixed {      db.bibliomixed.attlist,      ((db._text        | db.honorific        | db.firstname        | db.surname        | db.lineage        | db.othername        | db.bibliographic.elements)*       | (db._text          | db.honorific          | db.givenname          | db.surname          | db.lineage          | db.othername          | db.bibliographic.elements)*)    }}div {  db.biblioset.relation.attribute = db.relation.attribute  db.biblioset.role.attribute = attribute role { text }  db.biblioset.attlist =    db.biblioset.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.biblioset.relation.attribute?  db.biblioset =        ## A raw container for related bibliographic information    element biblioset {      db.biblioset.attlist, db.bibliographic.elements+    }}div {  db.bibliomset.relation.attribute = db.relation.attribute  db.bibliomset.role.attribute = attribute role { text }  db.bibliomset.attlist =    db.bibliomset.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.bibliomset.relation.attribute?  db.bibliomset =        ## A cooked container for related bibliographic information    element bibliomset {      db.bibliomset.attlist,      ((db._text        | db.honorific        | db.firstname        | db.surname        | db.lineage        | db.othername        | db.bibliographic.elements)*       | (db._text          | db.honorific          | db.givenname          | db.surname          | db.lineage          | db.othername          | db.bibliographic.elements)*)    }}div {  db.bibliomisc.role.attribute = attribute role { text }  db.bibliomisc.attlist =    db.bibliomisc.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.bibliomisc =        ## Untyped bibliographic information    element bibliomisc { db.bibliomisc.attlist, db._text }}div {  db.bibliography.status.attrib = db.status.attribute  db.bibliography.role.attribute = attribute role { text }  db.bibliography.attlist =    db.bibliography.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.bibliography.status.attrib?  db.bibliography.info = db._info  db.bibliography =        ## A bibliography    element bibliography {      db.bibliography.attlist,      db.bibliography.info,      db.all.blocks*,      (db.bibliodiv+ | (db.biblioentry | db.bibliomixed)+)    }}div {  db.bibliodiv.status.attrib = db.status.attribute  db.bibliodiv.role.attribute = attribute role { text }  db.bibliodiv.attlist =    db.bibliodiv.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.bibliodiv.status.attrib?  db.bibliodiv.info = db._info.title.req  db.bibliodiv =        ## A section of a bibliography    element bibliodiv {      db.bibliodiv.attlist,      db.bibliodiv.info,      db.all.blocks*,      (db.biblioentry | db.bibliomixed)+    }}div {  db.bibliolist.role.attribute = attribute role { text }  db.bibliolist.attlist =    db.bibliolist.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.bibliolist.info = db._info.title.only  db.bibliolist =        ## A wrapper for a list of bibliography entries    element bibliolist {      db.bibliolist.attlist,      db.bibliolist.info?,      db.all.blocks*,      (db.biblioentry | db.bibliomixed)+    }}div {  db.biblioref.role.attribute = attribute role { text }  db.biblioref.xrefstyle.attribute = db.xrefstyle.attribute  db.biblioref.endterm.attribute = db.endterm.attribute  db.biblioref.units.attribute =        ## The units (for example, pages) used to identify the beginning and ending of a reference.    attribute units { xsd:token }  db.biblioref.begin.attribute =        ## Identifies the beginning of a reference; the location within the work that is being referenced.    attribute begin { xsd:token }  db.biblioref.end.attribute =        ## Identifies the end of a reference.    attribute end { xsd:token }  db.biblioref.attlist =    db.biblioref.role.attribute?    & db.common.attributes    & db.common.req.linking.attributes    & db.biblioref.xrefstyle.attribute?    & db.biblioref.endterm.attribute?    & db.biblioref.units.attribute?    & db.biblioref.begin.attribute?    & db.biblioref.end.attribute?  db.biblioref =        ## A cross-reference to a bibliographic entry    element biblioref { db.biblioref.attlist, empty }}db.significance.enumeration =    ## Normal  "normal"  |     ## Preferred    "preferred"db.significance.attribute =    ## Specifies the significance of the term  attribute significance { db.significance.enumeration }db.zone.attribute =    ## Specifies the IDs of the elements to which this term applies  attribute zone { xsd:IDREFS }db.indexterm.pagenum.attribute =    ## Indicates the page on which this index term occurs in some version of the printed document  attribute pagenum { text }db.scope.enumeration =    ## All indexes  "all"  |     ## The global index (as for a combined index of a set of books)    "global"  |     ## The local index (the index for this document only)    "local"db.scope.attribute =    ## Specifies the scope of the index term  attribute scope { db.scope.enumeration }db.sortas.attribute =    ## Specifies the string by which the term is to be sorted; if unspecified, the term content is used  attribute sortas { text }db.index.type.attribute =    ## Specifies the target index for this term  attribute type { text }div {  db.itermset.role.attribute = attribute role { text }  db.itermset.attlist =    db.itermset.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.itermset =        ## A set of index terms in the meta-information of a document    element itermset { db.itermset.attlist, db.indexterm.singular+ }}db.indexterm.contentmodel =  db.primary?,  ((db.secondary,    ((db.tertiary, (db.see | db.seealso+)?)     | db.see     | db.seealso+)?)   | db.see   | db.seealso+)?div {  db.indexterm.singular.role.attribute = attribute role { text }  db.indexterm.singular.class.attribute =        ## Identifies the class of index term    attribute class {            ## A singular index term      "singular"    }  db.indexterm.singular.attlist =    db.indexterm.singular.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.significance.attribute?    & db.zone.attribute?    & db.indexterm.pagenum.attribute?    & db.scope.attribute?    & db.index.type.attribute?    & db.indexterm.singular.class.attribute?  db.indexterm.singular =        ## A wrapper for an indexed term    element indexterm {      db.indexterm.singular.attlist, db.indexterm.contentmodel    }}div {  db.indexterm.startofrange.role.attribute = attribute role { text }  db.indexterm.startofrange.class.attribute =        ## Identifies the class of index term    attribute class {            ## The start of a range      "startofrange"    }  db.indexterm.startofrange.attlist =    db.indexterm.startofrange.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.significance.attribute?    & db.zone.attribute?    & db.indexterm.pagenum.attribute?    & db.scope.attribute?    & db.index.type.attribute?    & db.indexterm.startofrange.class.attribute  db.indexterm.startofrange =        ## A wrapper for an indexed term that covers a range    element indexterm {      db.indexterm.startofrange.attlist, db.indexterm.contentmodel    }}div {  db.indexterm.endofrange.role.attribute = attribute role { text }  db.indexterm.endofrange.class.attribute =        ## Identifies the class of index term    attribute class {            ## The end of a range      "endofrange"    }  db.indexterm.endofrange.startref.attribute =        ## Points to the start of the range    attribute startref { xsd:IDREF }  db.indexterm.endofrange.attlist =    db.indexterm.endofrange.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.indexterm.endofrange.class.attribute    & db.indexterm.endofrange.startref.attribute  db.indexterm.endofrange =        ## Identifies the end of a range associated with an indexed term    element indexterm { db.indexterm.endofrange.attlist, empty }}div {  db.indexterm =    db.indexterm.singular    | db.indexterm.startofrange    | db.indexterm.endofrange}div {  db.primary.role.attribute = attribute role { text }  db.primary.attlist =    db.primary.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.sortas.attribute?  db.primary =        ## The primary word or phrase under which an index term should be sorted    element primary { db.primary.attlist, db.all.inlines* }}div {  db.secondary.role.attribute = attribute role { text }  db.secondary.attlist =    db.secondary.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.sortas.attribute?  db.secondary =        ## A secondary word or phrase in an index term    element secondary { db.secondary.attlist, db.all.inlines* }}div {  db.tertiary.role.attribute = attribute role { text }  db.tertiary.attlist =    db.tertiary.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.sortas.attribute?  db.tertiary =        ## A tertiary word or phrase in an index term    element tertiary { db.tertiary.attlist, db.all.inlines* }}div {  db.see.role.attribute = attribute role { text }  db.see.attlist =    db.see.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.see =        ## Part of an index term directing the reader instead to another entry in the index    element see { db.see.attlist, db.all.inlines* }}div {  db.seealso.role.attribute = attribute role { text }  db.seealso.attlist =    db.seealso.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.seealso =        ## Part of an index term directing the reader also to another entry in the index    element seealso { db.seealso.attlist, db.all.inlines* }}div {  db.index.status.attribute = db.status.attribute  db.index.role.attribute = attribute role { text }  db.index.attlist =    db.index.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.index.status.attribute?    & db.index.type.attribute?  db.index.info = db._info  # Yes, db.indexdiv* and db.indexentry*; that way an <index/> is valid.  # Authors can use an empty index to indicate where a generated index should  # appear.  db.index =        ## An index to a book or part of a book    element index {      db.index.attlist,      db.index.info,      db.all.blocks*,      (db.indexdiv* | db.indexentry* | db.segmentedlist)    }}div {  db.setindex.status.attribute = db.status.attribute  db.setindex.role.attribute = attribute role { text }  db.setindex.attlist =    db.setindex.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.setindex.status.attribute?    & db.index.type.attribute?  db.setindex.info = db._info  db.setindex =        ## An index to a set of books    element setindex {      db.setindex.attlist,      db.setindex.info,      db.all.blocks*,      (db.indexdiv* | db.indexentry*)    }}div {  db.indexdiv.status.attribute = db.status.attribute  db.indexdiv.role.attribute = attribute role { text }  db.indexdiv.attlist =    db.indexdiv.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.indexdiv.status.attribute?  db.indexdiv.info = db._info.title.req  db.indexdiv =        ## A division in an index    element indexdiv {      db.indexdiv.attlist,      db.indexdiv.info,      db.all.blocks*,      (db.indexentry+ | db.segmentedlist)    }}div {  db.indexentry.role.attribute = attribute role { text }  db.indexentry.attlist =    db.indexentry.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.indexentry =        ## An entry in an index    element indexentry {      db.indexentry.attlist,      db.primaryie,      (db.seeie | db.seealsoie)*,      (db.secondaryie, (db.seeie | db.seealsoie | db.tertiaryie)*)*    }}div {  db.primaryie.role.attribute = attribute role { text }  db.primaryie.attlist =    db.primaryie.role.attribute?    & db.common.attributes    & db.linkends.attribute?  db.primaryie =        ## A primary term in an index entry, not in the text    element primaryie { db.primaryie.attlist, db.all.inlines* }}div {  db.secondaryie.role.attribute = attribute role { text }  db.secondaryie.attlist =    db.secondaryie.role.attribute?    & db.common.attributes    & db.linkends.attribute?  db.secondaryie =        ## A secondary term in an index entry, rather than in the text    element secondaryie { db.secondaryie.attlist, db.all.inlines* }}div {  db.tertiaryie.role.attribute = attribute role { text }  db.tertiaryie.attlist =    db.tertiaryie.role.attribute?    & db.common.attributes    & db.linkends.attribute?  db.tertiaryie =        ## A tertiary term in an index entry, rather than in the text    element tertiaryie { db.tertiaryie.attlist, db.all.inlines* }}div {  db.seeie.role.attribute = attribute role { text }  db.seeie.attlist =    db.seeie.role.attribute?    & db.common.attributes    & db.linkend.attribute?  db.seeie =        ## A See    ## entry in an index, rather than in the text    element seeie { db.seeie.attlist, db.all.inlines* }}div {  db.seealsoie.role.attribute = attribute role { text }  db.seealsoie.attlist =    db.seealsoie.role.attribute?    & db.common.attributes    & db.linkends.attribute?  db.seealsoie =        ## A See also    ##  entry in an index, rather than in the text    element seealsoie { db.seealsoie.attlist, db.all.inlines* }}db.toc.pagenum.attribute =    ## Indicates the page on which this element occurs in some version of the printed document  attribute pagenum { text }div {  db.toc.role.attribute = attribute role { text }  db.toc.attlist =    db.toc.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.toc.info = db._info.title.only  db.toc =        ## A table of contents    element toc {      db.toc.attlist,      db.toc.info,      db.all.blocks*,      (db.tocdiv | db.tocentry)*    }}div {  db.tocdiv.role.attribute = attribute role { text }  db.tocdiv.pagenum.attribute = db.toc.pagenum.attribute  db.tocdiv.attlist =    db.tocdiv.role.attribute?    & db.common.attributes    & db.tocdiv.pagenum.attribute?    & db.linkend.attribute?  db.tocdiv.info = db._info  db.tocdiv =        ## A division in a table of contents    element tocdiv {      db.tocdiv.attlist,      db.tocdiv.info,      db.all.blocks*,      (db.tocdiv | db.tocentry)+    }}div {  db.tocentry.role.attribute = attribute role { text }  db.tocentry.pagenum.attribute = db.toc.pagenum.attribute  db.tocentry.attlist =    db.tocentry.role.attribute?    & db.common.attributes    & db.tocentry.pagenum.attribute?    & db.linkend.attribute?  db.tocentry =        ## A component title in a table of contents    element tocentry { db.tocentry.attlist, db.all.inlines* }}db.task.info = db._info.title.reqdiv {  db.task.role.attribute = attribute role { text }  db.task.attlist =    db.task.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.task =        ## A task to be completed    element task {      db.task.attlist,      db.task.info,      db.tasksummary?,      db.taskprerequisites?,      db.procedure+,      db.example*,      db.taskrelated?    }}div {  db.tasksummary.role.attribute = attribute role { text }  db.tasksummary.attlist =    db.tasksummary.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.tasksummary.info = db._info.title.only  db.tasksummary =        ## A summary of a task    element tasksummary {      db.tasksummary.attlist, db.tasksummary.info, db.all.blocks+    }}div {  db.taskprerequisites.role.attribute = attribute role { text }  db.taskprerequisites.attlist =    db.taskprerequisites.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.taskprerequisites.info = db._info.title.only  db.taskprerequisites =        ## The prerequisites for a task    element taskprerequisites {      db.taskprerequisites.attlist,      db.taskprerequisites.info,      db.all.blocks+    }}div {  db.taskrelated.role.attribute = attribute role { text }  db.taskrelated.attlist =    db.taskrelated.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.taskrelated.info = db._info.title.only  db.taskrelated =        ## Information related to a task    element taskrelated {      db.taskrelated.attlist, db.taskrelated.info, db.all.blocks+    }}db.area.units.enumeration =    ## Coordinates expressed as a pair of CALS graphic coordinates.  "calspair"  |     ## Coordinates expressed as a line and column.    "linecolumn"  |     ## Coordinates expressed as a pair of lines and columns.    "linecolumnpair"  |     ## Coordinates expressed as a line range.    "linerange"db.area.units-enum.attribute =    ## Identifies the units used in the coords attribute. The default units vary according to the type of callout specified: calspair  ##  for graphics and linecolumn  ##  for line-oriented elements.  attribute units { db.area.units.enumeration }?db.area.units-other.attributes =    ## Indicates that non-standard units are used for this area  ## . In this case otherunits  ##  must be specified.  attribute units {        ## Coordinates expressed in some non-standard units.    "other"  }?,    ## Identifies the units used in the coords  ##  attribute when the units  ##  attribute is other  ## . This attribute is forbidden otherwise.  attribute otherunits { xsd:NMTOKEN }db.area.units.attribute =  db.area.units-enum.attribute | db.area.units-other.attributesdiv {  db.calloutlist.role.attribute = attribute role { text }  db.calloutlist.attlist =    db.calloutlist.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.calloutlist.info = db._info.title.only  db.calloutlist =        ## A list of callout    ## s    element calloutlist {      db.calloutlist.attlist,      db.calloutlist.info,      db.all.blocks*,      db.callout+    }}div {  db.callout.role.attribute = attribute role { text }  db.callout.arearefs.attribute =        ## Identifies the areas described by this callout.    attribute arearefs { xsd:IDREFS }  db.callout.attlist =    db.callout.role.attribute?    & db.common.attributes    & db.callout.arearefs.attribute  db.callout =        ## A called out    ##  description of a marked area    element callout { db.callout.attlist, db.all.blocks+ }}div {  db.programlistingco.role.attribute = attribute role { text }  db.programlistingco.attlist =    db.programlistingco.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.programlistingco.info = db._info.title.forbidden  db.programlistingco =        ## A program listing with associated areas used in callouts    element programlistingco {      db.programlistingco.attlist,      db.programlistingco.info,      db.areaspec,      db.programlisting,      db.calloutlist*    }}div {  db.areaspec.role.attribute = attribute role { text }  db.areaspec.attlist =    db.areaspec.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.area.units.attribute  db.areaspec =        ## A collection of regions in a graphic or code example    element areaspec { db.areaspec.attlist, (db.area | db.areaset)+ }}div {  db.area.role.attribute = attribute role { text }  db.area.linkends.attribute =        ## Point to the callout    ## s which refer to this area. (This provides bidirectional linking which may be useful in online presentation.)    attribute linkends { xsd:IDREFS }  db.area.label.attribute =        ## Specifies an identifying number or string that may be used in presentation. The area label might be drawn on top of the figure, for example, at the position indicated by the coords attribute.    attribute label { text }  db.area.coords.attribute =        ## Provides the coordinates of the area. The coordinates must be interpreted using the units    ##  specified.    attribute coords { text }  db.area.attlist =    db.area.role.attribute?    & db.common.idreq.attributes    & db.area.units.attribute    & (db.area.linkends.attribute | db.xlink.simple.link.attributes)?    & db.area.label.attribute?    & db.area.coords.attribute  db.area =        ## A region defined for a callout in a graphic or code example    element area { db.area.attlist, db.alt? }}div {  # The only difference is that xml:id is optional  db.area.inareaset.attlist =    db.area.role.attribute?    & db.common.attributes    & db.area.units.attribute    & (db.area.linkends.attribute | db.xlink.simple.link.attributes)?    & db.area.label.attribute?    & db.area.coords.attribute  db.area.inareaset =        ## A region defined for a callout in a graphic or code example    element area { db.area.inareaset.attlist, db.alt? }}div {  db.areaset.role.attribute = attribute role { text }  db.areaset.linkends.attribute = db.linkends.attribute  db.areaset.label.attribute = db.label.attribute  db.areaset.attlist =    db.areaset.role.attribute?    & db.common.idreq.attributes    & db.area.units.attribute    & (db.areaset.linkends.attribute | db.xlink.simple.link.attributes)?    & db.areaset.label.attribute?  db.areaset =        ## A set of related areas in a graphic or code example    element areaset { db.areaset.attlist, db.area.inareaset+ }}div {  db.screenco.role.attribute = attribute role { text }  db.screenco.attlist =    db.screenco.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.screenco.info = db._info.title.forbidden  db.screenco =        ## A screen with associated areas used in callouts    element screenco {      db.screenco.attlist,      db.screenco.info,      db.areaspec,      db.screen,      db.calloutlist*    }}div {  db.imageobjectco.role.attribute = attribute role { text }  db.imageobjectco.attlist =    db.imageobjectco.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.imageobjectco.info = db._info.title.forbidden  db.imageobjectco =        ## A wrapper for an image object with callouts    element imageobjectco {      db.imageobjectco.attlist,      db.imageobjectco.info,      db.areaspec,      db.imageobject+,      db.calloutlist*    }}div {  db.co.role.attribute = attribute role { text }  db.co.linkends.attribute = db.linkends.attribute  db.co.label.attribute = db.label.attribute  db.co.attlist =    db.co.role.attribute?    & db.common.idreq.attributes    & db.co.linkends.attribute?    & db.co.label.attribute?  db.co =        ## The location of a callout embedded in text    element co { db.co.attlist, empty }}div {  db.coref.role.attribute = attribute role { text }  db.coref.label.attribute = db.label.attribute  db.coref.attlist =    db.coref.role.attribute?    & db.common.attributes    & db.linkend.attribute    & db.coref.label.attribute?  db.coref =        ## A cross reference to a co    element coref { db.coref.attlist, empty }}div {  db.productionset.role.attribute = attribute role { text }  db.productionset.attlist =    db.productionset.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.productionset.info = db._info.title.only  db.productionset =        ## A set of EBNF productions    element productionset {      db.productionset.attlist,      db.productionset.info,      (db.production | db.productionrecap)+    }}div {  db.production.role.attribute = attribute role { text }  db.production.attlist =    db.production.role.attribute?    & db.common.idreq.attributes    & db.common.linking.attributes  db.production =        ## A production in a set of EBNF productions    element production {      db.production.attlist, db.lhs, db.rhs+, db.constraint*    }}div {  db.lhs.role.attribute = attribute role { text }  db.lhs.attlist =    db.lhs.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.lhs =        ## The left-hand side of an EBNF production    element lhs { db.lhs.attlist, text }}div {  db.rhs.role.attribute = attribute role { text }  db.rhs.attlist =    db.rhs.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.rhs =        ## The right-hand side of an EBNF production    element rhs {      db.rhs.attlist,      (text | db.nonterminal | db.lineannotation | db.sbr)*    }}div {  db.nonterminal.role.attribute = attribute role { text }  db.nonterminal.def.attribute =        ## Specifies a URI that points to a production    ## where the nonterminal    ##  is defined    attribute def { xsd:anyURI }  db.nonterminal.attlist =    db.nonterminal.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.nonterminal.def.attribute  db.nonterminal =        ## A non-terminal in an EBNF production    element nonterminal { db.nonterminal.attlist, text }}div {  db.constraint.role.attribute = attribute role { text }  db.constraint.attlist =    db.constraint.role.attribute?    & db.common.attributes    & db.common.req.linking.attributes  db.constraint =        ## A constraint in an EBNF production    element constraint { db.constraint.attlist, empty }}div {  db.productionrecap.role.attribute = attribute role { text }  db.productionrecap.attlist =    db.productionrecap.role.attribute?    & db.common.attributes    & db.common.req.linking.attributes  db.productionrecap =        ## A cross-reference to an EBNF production    element productionrecap { db.productionrecap.attlist, empty }}div {  db.constraintdef.role.attribute = attribute role { text }  db.constraintdef.attlist =    db.constraintdef.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.constraintdef.info = db._info.title.only  db.constraintdef =        ## The definition of a constraint in an EBNF production    element constraintdef {      db.constraintdef.attlist, db.constraintdef.info, db.all.blocks+    }}db.char.attribute =    ## Specifies the alignment character when align  ##  is set to char  ## .  attribute char { text }db.charoff.attribute =    ## Specifies the percentage of the column's total width that should appear to the left of the first occurance of the character identified in char  ##  when align  ##  is set to char  ## .  attribute charoff {    xsd:decimal { minExclusive = "0" maxExclusive = "100" }  }db.frame.attribute =    ## Specifies how the table is to be framed. Note that there is no way to obtain a border on only the starting edge (left, in left-to-right writing systems) of the table.  attribute frame {        ## Frame all four sides of the table. In some environments with limited control over table border formatting, such as HTML, this may imply additional borders.    "all"    |       ## Frame only the bottom of the table.      "bottom"    |       ## Place no border on the table. In some environments with limited control over table border formatting, such as HTML, this may disable other borders as well.      "none"    |       ## Frame the left and right sides of the table.      "sides"    |       ## Frame the top of the table.      "top"    |       ## Frame the top and bottom of the table.      "topbot"  }db.colsep.attribute =    ## Specifies the presence or absence of the column separator  attribute colsep {        ## No column separator rule.    "0"    |       ## Provide a column separator rule on the right      "1"  }db.rowsep.attribute =    ## Specifies the presence or absence of the row separator  attribute rowsep {        ## No row separator rule.    "0"    |       ## Provide a row separator rule below      "1"  }db.orient.attribute =    ## Specifies the orientation of the table  attribute orient {        ## 90 degrees counter-clockwise from the rest of the text flow.    "land"    |       ## The same orientation as the rest of the text flow.      "port"  }db.tabstyle.attribute =    ## Specifies the table style  attribute tabstyle { text }db.rowheader.attribute =    ## Indicates whether or not the entries in the first column should be considered row headers  attribute rowheader {        ## Indicates that entries in the first column of the table are functionally row headers (analogous to the way that a thead provides column headers).    "firstcol"    |       ## Indicates that entries in the first column have no special significance with respect to column headers.      "norowheader"  }db.align.attribute =    ## Specifies the horizontal alignment of text in an entry.  attribute align {        ## Centered.    "center"    |       ## Aligned on a particular character.      "char"    |       ## Left and right justified.      "justify"    |       ## Left justified.      "left"    |       ## Right justified.      "right"  }db.valign.attribute =    ## Specifies the vertical alignment of text in an entry.  attribute valign {        ## Aligned on the bottom of the entry.    "bottom"    |       ## Aligned in the middle.      "middle"    |       ## Aligned at the top of the entry.      "top"  }db.specify-col-by-colname.attributes =    ## Specifies a column specification by name.  attribute colname { text }db.specify-col-by-namest.attributes =    ## Specifies a starting column by name.  attribute namest { text }db.specify-span-by-spanspec.attributes =    ## Specifies a span by name.  attribute spanname { text }db.specify-span-directly.attributes =    ## Specifies a starting column by name.  attribute namest { text }  &     ## Specifies an ending column by name.    attribute nameend { text }db.column-spec.attributes =  db.specify-col-by-colname.attributes  | db.specify-col-by-namest.attributes  | db.specify-span-by-spanspec.attributes  | db.specify-span-directly.attributesdb.colname.attribute =    ## Provides a name for a column specification.  attribute colname { text }db.spanname.attribute =    ## Provides a name for a span specification.  attribute spanname { text }div {  db.tgroup.role.attribute = attribute role { text }  db.tgroup.tgroupstyle.attribute =        ## Additional style information for downstream processing; typically the name of a style.    attribute tgroupstyle { text }  db.tgroup.cols.attribute =        ## The number of columns in the table. Must be an integer greater than zero.    attribute cols { xsd:positiveInteger }  db.tgroup.attlist =    db.tgroup.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.char.attribute?    & db.charoff.attribute?    & db.tgroup.tgroupstyle.attribute?    & db.tgroup.cols.attribute    & db.colsep.attribute?    & db.rowsep.attribute?    & db.align.attribute?  db.tgroup =        ## A wrapper for the main content of a table, or part of a table    element tgroup {      db.tgroup.attlist,      db.colspec*,      db.spanspec*,      db.cals.thead?,      db.cals.tfoot?,      db.cals.tbody    }}div {  db.colspec.role.attribute = attribute role { text }  db.colspec.colnum.attribute =        ## The number of the column to which this specification applies. Must be greater than any preceding column number. Defaults to one more than the number of the preceding column, if there is one, or one.    attribute colnum { xsd:positiveInteger }  db.colspec.colwidth.attribute =        ## Specifies the width of the column.    attribute colwidth { text }  db.colspec.attlist =    db.colspec.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.colspec.colnum.attribute?    & db.char.attribute?    & db.colsep.attribute?    & db.colspec.colwidth.attribute?    & db.charoff.attribute?    & db.colname.attribute?    & db.rowsep.attribute?    & db.align.attribute?  db.colspec =        ## Specifications for a column in a table    element colspec { db.colspec.attlist, empty }}div {  db.spanspec.role.attribute = attribute role { text }  db.spanspec.namest.attribute =        ## Specifies a starting column by name.    attribute namest { text }  db.spanspec.nameend.attribute =        ## Specifies an ending column by name.    attribute nameend { text }  db.spanspec.attlist =    db.spanspec.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.spanname.attribute    & db.spanspec.namest.attribute    & db.spanspec.nameend.attribute    & db.char.attribute?    & db.colsep.attribute?    & db.charoff.attribute?    & db.rowsep.attribute?    & db.align.attribute?  db.spanspec =        ## Formatting information for a spanned column in a table    element spanspec { db.spanspec.attlist, empty }}div {  db.cals.thead.role.attribute = attribute role { text }  db.cals.thead.attlist =    db.cals.thead.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.valign.attribute?  db.cals.thead =        ## A table header consisting of one or more rows    element thead { db.cals.thead.attlist, db.colspec*, db.row+ }}div {  db.cals.tfoot.role.attribute = attribute role { text }  db.cals.tfoot.attlist =    db.cals.tfoot.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.valign.attribute?  db.cals.tfoot =        ## A table footer consisting of one or more rows    element tfoot { db.cals.tfoot.attlist, db.colspec*, db.row+ }}div {  db.cals.tbody.role.attribute = attribute role { text }  db.cals.tbody.attlist =    db.cals.tbody.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.valign.attribute?  db.cals.tbody =        ## A wrapper for the rows of a table or informal table    element tbody { db.cals.tbody.attlist, db.row+ }}div {  db.row.role.attribute = attribute role { text }  db.row.attlist =    db.row.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.rowsep.attribute?    & db.valign.attribute?  db.row =        ## A row in a table    element row { db.row.attlist, (db.entry | db.entrytbl)+ }}div {  db.entry.role.attribute = attribute role { text }  db.entry.morerows.attribute =        ## Specifies the number of additional rows which this entry occupies. Defaults to zero.    attribute morerows { xsd:integer }  db.entry.rotate.attribute =        ## Specifies the rotation of this entry. A value of 1 (true) rotates the cell 90 degrees counter-clockwise. A value of 0 (false) leaves the cell unrotated.    attribute rotate {            ## Do not rotate the cell.      "0"      |         ## Rotate the cell 90 degrees counter-clockwise.        "1"    }  db.entry.attlist =    db.entry.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.valign.attribute?    & db.char.attribute?    & db.colsep.attribute?    & db.charoff.attribute?    & db.entry.morerows.attribute?    & db.column-spec.attributes?    & db.rowsep.attribute?    & db.entry.rotate.attribute?    & db.align.attribute?  db.entry =        ## A cell in a table    [      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:entry"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:table)"            "table must not occur among the children or descendants of entry"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:entry"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:informaltable)"            "informaltable must not occur among the children or descendants of entry"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element entry {      db.entry.attlist, (db.all.inlines* | db.all.blocks*)    }}div {  db.entrytbl.role.attribute = attribute role { text }  db.entrytbl.tgroupstyle.attribute =        ## Additional style information for downstream processing; typically the name of a style.    attribute tgroupstyle { text }  db.entrytbl.cols.attribute =        ## The number of columns in the entry table. Must be an integer greater than zero.    attribute cols { xsd:positiveInteger }  db.entrytbl.attlist =    db.entrytbl.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.char.attribute?    & db.charoff.attribute?    & db.column-spec.attributes?    & db.entrytbl.tgroupstyle.attribute?    & db.entrytbl.cols.attribute?    & db.colsep.attribute?    & db.rowsep.attribute?    & db.align.attribute?  db.entrytbl =        ## A subtable appearing in place of an entry in a table    element entrytbl {      db.entrytbl.attlist,      db.colspec*,      db.spanspec*,      db.cals.entrytbl.thead?,      db.cals.entrytbl.tbody    }}div {  db.cals.entrytbl.thead.role.attribute = attribute role { text }  db.cals.entrytbl.thead.attlist =    db.cals.entrytbl.thead.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.valign.attribute?  db.cals.entrytbl.thead =        ## A table header consisting of one or more rows    element thead {      db.cals.entrytbl.thead.attlist, db.colspec*, db.entrytbl.row+    }}div {  db.cals.entrytbl.tbody.role.attribute = attribute role { text }  db.cals.entrytbl.tbody.attlist =    db.cals.entrytbl.tbody.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.valign.attribute?  db.cals.entrytbl.tbody =        ## A wrapper for the rows of a table or informal table    element tbody { db.cals.entrytbl.tbody.attlist, db.entrytbl.row+ }}div {  db.entrytbl.row.role.attribute = attribute role { text }  db.entrytbl.row.attlist =    db.entrytbl.row.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.rowsep.attribute?    & db.valign.attribute?  db.entrytbl.row =        ## A row in a table    element row { db.entrytbl.row.attlist, db.entry+ }}div {  db.cals.table.role.attribute = attribute role { text }  db.cals.table.label.attribute = db.label.attribute  db.cals.table.attlist =    db.cals.table.role.attribute?    & db.cals.table.label.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.tabstyle.attribute?    & db.floatstyle.attribute?    & db.orient.attribute?    & db.colsep.attribute?    & db.rowsep.attribute?    & db.frame.attribute?    & db.pgwide.attribute?    &       ## Indicates if the short or long title should be used in a List of Tables      attribute shortentry {                ## Indicates that the full title should be used.        "0"        |           ## Indicates that the short short title (titleabbrev) should be used.          "1"      }?    &       ## Indicates if the table should appear in a List of Tables      attribute tocentry {                ## Indicates that the table should not occur in the List of Tables.        "0"        |           ## Indicates that the table should appear in the List of Tables.          "1"      }?    & db.rowheader.attribute?  db.cals.table.info = db._info.title.onlyreq  db.cals.table =        ## A formal table in a document    [      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:table"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:example)"            "example must not occur among the children or descendants of table"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:table"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:figure)"            "figure must not occur among the children or descendants of table"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:table"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:equation)"            "equation must not occur among the children or descendants of table"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:table"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:caution)"            "caution must not occur among the children or descendants of table"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:table"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:important)"            "important must not occur among the children or descendants of table"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:table"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:note)"            "note must not occur among the children or descendants of table"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:table"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:tip)"            "tip must not occur among the children or descendants of table"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:table"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:warning)"            "warning must not occur among the children or descendants of table"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element table {      db.cals.table.attlist,      db.cals.table.info,      (db.alt? & db.indexing.inlines* & db.textobject*),      (db.mediaobject+ | db.tgroup+),      db.caption?    }}div {  db.cals.informaltable.role.attribute = attribute role { text }  db.cals.informaltable.attlist =    db.cals.informaltable.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.tabstyle.attribute?    & db.floatstyle.attribute?    & db.orient.attribute?    & db.colsep.attribute?    & db.rowsep.attribute?    & db.frame.attribute?    & db.pgwide.attribute?    & db.rowheader.attribute?  db.cals.informaltable.info = db._info.title.forbidden  db.cals.informaltable =        ## A table without a title    element informaltable {      db.cals.informaltable.attlist,      db.cals.informaltable.info,      (db.alt? & db.indexing.inlines* & db.textobject*),      (db.mediaobject+ | db.tgroup+),      db.caption?    }}db.html.coreattrs =    ## This attribute assigns a class name or set of class names to an element. Any number of elements may be assigned the same class name or names. Multiple class names must be separated by white space characters.  attribute class { text }?  &     ## This attribute specifies style information for the current element.    attribute style { text }?  &     ## This attribute offers advisory information about the element for which it is set.    attribute title { text }?db.html.i18n =    ## This attribute specifies the base language of an element's attribute values and text content. The default value of this attribute is unknown.  attribute lang { text }?db.html.events =    ## Occurs when the pointing device button is clicked over an element.  attribute onclick { text }?  &     ## Occurs when the pointing device button is double clicked over an element.    attribute ondblclick { text }?  &     ## Occurs when the pointing device button is pressed over an element.    attribute onmousedown { text }?  &     ## Occurs when the pointing device button is released over an element.    attribute onmouseup { text }?  &     ## Occurs when the pointing device is moved onto an element.    attribute onmouseover { text }?  &     ## Occurs when the pointing device is moved while it is over an element.    attribute onmousemove { text }?  &     ## Occurs when the pointing device is moved away from an element.    attribute onmouseout { text }?  &     ## Occurs when a key is pressed and released over an element.    attribute onkeypress { text }?  &     ## Occurs when a key is pressed down over an element.    attribute onkeydown { text }?  &     ## Occurs when a key is released over an element.    attribute onkeyup { text }?db.html.attrs =  db.common.attributes  & db.html.coreattrs  & db.html.i18n  & db.html.eventsdb.html.cellhalign =    ## Specifies the alignment of data and the justification of text in a cell.  attribute align {        ## Left-flush data/Left-justify text. This is the default value for table data.    "left"    |       ## Center data/Center-justify text. This is the default value for table headers.      "center"    |       ## Right-flush data/Right-justify text.      "right"    |       ## Double-justify text.      "justify"    |       ## Align text around a specific character. If a user agent doesn't support character alignment, behavior in the presence of this value is unspecified.      "char"  }?  &     ## This attribute specifies a single character within a text fragment to act as an axis for alignment. The default value for this attribute is the decimal point character for the current language as set by the lang attribute (e.g., the period in English and the comma in French). User agents are not required to support this attribute.    attribute char { text }?  &     ## When present, this attribute specifies the offset to the first occurrence of the alignment character on each line. If a line doesn't include the alignment character, it should be horizontally shifted to end at the alignment position. When charoff is used to set the offset of an alignment character, the direction of offset is determined by the current text direction (set by the dir attribute). In left-to-right texts (the default), offset is from the left margin. In right-to-left texts, offset is from the right margin. User agents are not required to support this attribute.    attribute charoff {      xsd:integer >> a:documentation [ "An explicit offset." ]      | xsd:string { pattern = "[0-9]+%" }        >> a:documentation [ "A percentage offset." ]    }?db.html.cellvalign =    ## Specifies the vertical position of data within a cell.  attribute valign {        ## Cell data is flush with the top of the cell.    "top"    |       ## Cell data is centered vertically within the cell. This is the default value.      "middle"    |       ## Cell data is flush with the bottom of the cell.      "bottom"    |       ## All cells in the same row as a cell whose valign attribute has this value should have their textual data positioned so that the first text line occurs on a baseline common to all cells in the row. This constraint does not apply to subsequent text lines in these cells.      "baseline"  }?db.html.table.attributes =    ## Provides a summary of the table's purpose and structure for user agents rendering to non-visual media such as speech and Braille.  attribute summary { text }?  &     ## Specifies the desired width of the entire table and is intended for visual user agents. When the value is a percentage value, the value is relative to the user agent's available horizontal space. In the absence of any width specification, table width is determined by the user agent.    attribute width {      xsd:integer >> a:documentation [ "An explicit width." ]      | xsd:string { pattern = "[0-9]+%" }        >> a:documentation [ "A percentage width." ]    }?  &     ## Specifies the width (in pixels only) of the frame around a table.    attribute border { xsd:nonNegativeInteger }?  &     ## Specifies which sides of the frame surrounding a table will be visible.    attribute frame {            ## No sides. This is the default value.      "void"      |         ## The top side only.        "above"      |         ## The bottom side only.        "below"      |         ## The top and bottom sides only.        "hsides"      |         ## The left-hand side only.        "lhs"      |         ## The right-hand side only.        "rhs"      |         ## The right and left sides only.        "vsides"      |         ## All four sides.        "box"      |         ## All four sides.        "border"    }?  &     ## Specifies which rules will appear between cells within a table. The rendering of rules is user agent dependent.    attribute rules {            ## No rules. This is the default value.      "none"      |         ## Rules will appear between row groups (see thead, tfoot, and tbody) and column groups (see colgroup and col) only.        "groups"      |         ## Rules will appear between rows only.        "rows"      |         ## Rules will appear between columns only.        "cols"      |         ## Rules will appear between all rows and columns.        "all"    }?  &     ## Specifies how much space the user agent should leave between the left side of the table and the left-hand side of the leftmost column, the top of the table and the top side of the topmost row, and so on for the right and bottom of the table. The attribute also specifies the amount of space to leave between cells.    attribute cellspacing {      xsd:integer >> a:documentation [ "An explicit spacing." ]      | xsd:string { pattern = "[0-9]+%" }        >> a:documentation [ "A percentage spacing." ]    }?  &     ## Specifies the amount of space between the border of the cell and its contents. If the value of this attribute is a pixel length, all four margins should be this distance from the contents. If the value of the attribute is a percentage length, the top and bottom margins should be equally separated from the content based on a percentage of the available vertical space, and the left and right margins should be equally separated from the content based on a percentage of the available horizontal space.    attribute cellpadding {      xsd:integer >> a:documentation [ "An explicit padding." ]      | xsd:string { pattern = "[0-9]+%" }        >> a:documentation [ "A percentage padding." ]    }?db.html.tablecell.attributes =    ## Provides an abbreviated form of the cell's content and may be rendered by user agents when appropriate in place of the cell's content. Abbreviated names should be short since user agents may render them repeatedly. For instance, speech synthesizers may render the abbreviated headers relating to a particular cell before rendering that cell's content.  attribute abbr { text }?  &     ## This attribute may be used to place a cell into conceptual categories that can be considered to form axes in an n-dimensional space. User agents may give users access to these categories (e.g., the user may query the user agent for all cells that belong to certain categories, the user agent may present a table in the form of a table of contents, etc.). Please consult an HTML reference for more details.    attribute axis { text }?  &     ## Specifies the list of header cells that provide header information for the current data cell. The value of this attribute is a space-separated list of cell names; those cells must be named by setting their id attribute. Authors generally use the headers attribute to help non-visual user agents render header information about data cells (e.g., header information is spoken prior to the cell data), but the attribute may also be used in conjunction with style sheets.    attribute headers { text }?  &     ## Specifies the set of data cells for which the current header cell provides header information. This attribute may be used in place of the headers attribute, particularly for simple tables.    attribute scope {            ## The current cell provides header information for the rest of the row that contains it      "row"      |         ## The current cell provides header information for the rest of the column that contains it.        "col"      |         ## The header cell provides header information for the rest of the row group that contains it.        "rowgroup"      |         ## The header cell provides header information for the rest of the column group that contains it.        "colgroup"    }?  &     ## Specifies the number of rows spanned by the current cell. The default value of this attribute is one (1    ## ). The value zero (0    ## ) means that the cell spans all rows from the current row to the last row of the table section (thead    ## , tbody    ## , or tfoot    ## ) in which the cell is defined.    attribute rowspan { xsd:nonNegativeInteger }?  &     ## Specifies the number of columns spanned by the current cell. The default value of this attribute is one (1    ## ). The value zero (0    ## ) means that the cell spans all columns from the current column to the last column of the column group (colgroup    ## ) in which the cell is defined.    attribute colspan { xsd:nonNegativeInteger }?db.html.table.info = db._info.title.forbiddendb.html.table.model =  db.html.table.info?,  db.html.caption,  (db.html.col* | db.html.colgroup*),  db.html.thead?,  db.html.tfoot?,  (db.html.tbody+ | db.html.tr+)db.html.informaltable.info = db._info.title.forbiddendb.html.informaltable.model =  db.html.informaltable.info?,  (db.html.col* | db.html.colgroup*),  db.html.thead?,  db.html.tfoot?,  (db.html.tbody+ | db.html.tr+)div {  db.html.table.role.attribute = attribute role { text }  db.html.table.label.attribute = db.label.attribute  db.html.table.attlist =    db.html.attrs    & db.html.table.attributes    & db.html.table.role.attribute?    & db.html.table.label.attribute?    & db.orient.attribute?    & db.pgwide.attribute?    & db.tabstyle.attribute?    & db.floatstyle.attribute?  db.html.table =        ## A formal (captioned) HTML table in a document    [      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:table"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:example)"            "example must not occur among the children or descendants of table"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:table"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:figure)"            "figure must not occur among the children or descendants of table"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:table"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:equation)"            "equation must not occur among the children or descendants of table"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:table"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:caution)"            "caution must not occur among the children or descendants of table"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:table"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:important)"            "important must not occur among the children or descendants of table"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:table"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:note)"            "note must not occur among the children or descendants of table"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:table"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:tip)"            "tip must not occur among the children or descendants of table"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:table"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:warning)"            "warning must not occur among the children or descendants of table"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element table { db.html.table.attlist, db.html.table.model }}div {  db.html.informaltable.role.attribute = attribute role { text }  db.html.informaltable.label.attribute = db.label.attribute  db.html.informaltable.attlist =    db.html.attrs    & db.html.table.attributes    & db.html.informaltable.role.attribute?    & db.html.informaltable.label.attribute?    & db.orient.attribute?    & db.pgwide.attribute?    & db.tabstyle.attribute?    & db.floatstyle.attribute?  db.html.informaltable =        ## An HTML table without a title    element informaltable {      db.html.informaltable.attlist, db.html.informaltable.model    }}div {  db.html.caption.attlist = db.html.attrs  db.html.caption =        ## An HTML table caption    [      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:example)"            "example must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:figure)"            "figure must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:table)"            "table must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:equation)"            "equation must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:sidebar)"            "sidebar must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:task)"            "task must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:caution)"            "caution must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:important)"            "important must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:note)"            "note must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:tip)"            "tip must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caption"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:warning)"            "warning must not occur among the children or descendants of caption"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element caption { db.html.caption.attlist, db.all.inlines* }}div {  db.html.col.attlist =    db.html.attrs    &       ## This attribute, whose value must be an integer > 0, specifies the number of columns spanned      ##  by the col      ##  element; the col      ##  element shares its attributes with all the columns it spans. The default value for this attribute is 1 (i.e., a single column). If the span attribute is set to N > 1, the current col      ##  element shares its attributes with the next N-1 columns.      attribute span { xsd:nonNegativeInteger }?    &       ## Specifies a default width for each column spanned by the current col      ##  element. It has the same meaning as the width      ##  attribute for the colgroup      ##  element and overrides it.      attribute width { text }?    & db.html.cellhalign    & db.html.cellvalign  db.html.col =        ## Specifications for a column in an HTML table    element col { db.html.col.attlist, empty }}div {  db.html.colgroup.attlist =    db.html.attrs    &       ## This attribute, which must be an integer > 0, specifies the number of columns in a column group. In the absence of a span attribute, each colgroup      ##  defines a column group containing one column. If the span attribute is set to N > 0, the current colgroup      ##  element defines a column group containing N columns. User agents must ignore this attribute if the colgroup      ##  element contains one or more col      ##  elements.      attribute span { xsd:nonNegativeInteger }?    &       ## This attribute specifies a default width for each column in the current column group. In addition to the standard pixel, percentage, and relative values, this attribute allows the special form 0*      ##  (zero asterisk) which means that the width of the each column in the group should be the minimum width necessary to hold the column's contents. This implies that a column's entire contents must be known before its width may be correctly computed. Authors should be aware that specifying 0*      ##  will prevent visual user agents from rendering a table incrementally. This attribute is overridden for any column in the column group whose width is specified via a col      ##  element.      attribute width { text }?    & db.html.cellhalign    & db.html.cellvalign  db.html.colgroup =        ## A group of columns in an HTML table    element colgroup { db.html.colgroup.attlist, db.html.col* }}div {  db.html.thead.attlist =    db.html.attrs & db.html.cellhalign & db.html.cellvalign  db.html.thead =        ## A table header consisting of one or more rows in an HTML table    element thead { db.html.thead.attlist, db.html.tr+ }}div {  db.html.tfoot.attlist =    db.html.attrs & db.html.cellhalign & db.html.cellvalign  db.html.tfoot =        ## A table footer consisting of one or more rows in an HTML table    element tfoot { db.html.tfoot.attlist, db.html.tr+ }}div {  db.html.tbody.attlist =    db.html.attrs & db.html.cellhalign & db.html.cellvalign  db.html.tbody =        ## A wrapper for the rows of an HTML table or informal HTML table    element tbody { db.html.tbody.attlist, db.html.tr+ }}div {  db.html.tr.attlist =    db.html.attrs & db.html.cellhalign & db.html.cellvalign  db.html.tr =        ## A row in an HTML table    element tr { db.html.tr.attlist, (db.html.th | db.html.td)+ }}div {  db.html.th.attlist =    db.html.attrs    & db.html.tablecell.attributes    & db.html.cellhalign    & db.html.cellvalign  db.html.th =        ## A table header entry in an HTML table    element th {      db.html.th.attlist, (db.all.inlines* | db.all.blocks*)    }}div {  db.html.td.attlist =    db.html.attrs    & db.html.tablecell.attributes    & db.html.cellhalign    & db.html.cellvalign  db.html.td =        ## A table entry in an HTML table    element td {      db.html.td.attlist, (db.all.inlines* | db.all.blocks*)    }}div {  db.msgset.role.attribute = attribute role { text }  db.msgset.attlist =    db.msgset.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.msgset.info = db._info.title.only  db.msgset =        ## A detailed set of messages, usually error messages    element msgset {      db.msgset.attlist,      db.msgset.info,      (db.msgentry+ | db.simplemsgentry+)    }}div {  db.msgentry.role.attribute = attribute role { text }  db.msgentry.attlist =    db.msgentry.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.msgentry =        ## A wrapper for an entry in a message set    element msgentry {      db.msgentry.attlist, db.msg+, db.msginfo?, db.msgexplan*    }}div {  db.simplemsgentry.role.attribute = attribute role { text }  db.simplemsgentry.msgaud.attribute =        ## The audience to which the message relevant    attribute msgaud { text }  db.simplemsgentry.msgorig.attribute =        ## The origin of the message    attribute msgorig { text }  db.simplemsgentry.msglevel.attribute =        ## The level of importance or severity of a message    attribute msglevel { text }  db.simplemsgentry.attlist =    db.simplemsgentry.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.simplemsgentry.msgaud.attribute?    & db.simplemsgentry.msgorig.attribute?    & db.simplemsgentry.msglevel.attribute?  db.simplemsgentry =        ## A wrapper for a simpler entry in a message set    element simplemsgentry {      db.simplemsgentry.attlist, db.msgtext, db.msgexplan+    }}div {  db.msg.role.attribute = attribute role { text }  db.msg.attlist =    db.msg.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.msg.info = db._info.title.only  db.msg =        ## A message in a message set    element msg {      db.msg.attlist, db.msg.info, db.msgmain, (db.msgsub | db.msgrel)*    }}div {  db.msgmain.role.attribute = attribute role { text }  db.msgmain.attlist =    db.msgmain.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.msgmain.info = db._info.title.only  db.msgmain =        ## The primary component of a message in a message set     element msgmain { db.msgmain.attlist, db.msgmain.info, db.msgtext }}div {  db.msgsub.role.attribute = attribute role { text }  db.msgsub.attlist =    db.msgsub.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.msgsub.info = db._info.title.only  db.msgsub =        ## A subcomponent of a message in a message set    element msgsub { db.msgsub.attlist, db.msgsub.info, db.msgtext }}div {  db.msgrel.role.attribute = attribute role { text }  db.msgrel.attlist =    db.msgrel.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.msgrel.info = db._info.title.only  db.msgrel =        ## A related component of a message in a message set    element msgrel { db.msgrel.attlist, db.msgrel.info, db.msgtext }}div {  db.msgtext.role.attribute = attribute role { text }  db.msgtext.attlist =    db.msgtext.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.msgtext =        ## The actual text of a message component in a message set    element msgtext { db.msgtext.attlist, db.all.blocks+ }}div {  db.msginfo.role.attribute = attribute role { text }  db.msginfo.attlist =    db.msginfo.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.msginfo =        ## Information about a message in a message set    element msginfo {      db.msginfo.attlist, (db.msglevel | db.msgorig | db.msgaud)*    }}div {  db.msglevel.role.attribute = attribute role { text }  db.msglevel.attlist =    db.msglevel.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.msglevel =        ## The level of importance or severity of a message in a message set    element msglevel { db.msglevel.attlist, db._text }}div {  db.msgorig.role.attribute = attribute role { text }  db.msgorig.attlist =    db.msgorig.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.msgorig =        ## The origin of a message in a message set    element msgorig { db.msgorig.attlist, db._text }}div {  db.msgaud.role.attribute = attribute role { text }  db.msgaud.attlist =    db.msgaud.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.msgaud =        ## The audience to which a message in a message set is relevant    element msgaud { db.msgaud.attlist, db._text }}div {  db.msgexplan.role.attribute = attribute role { text }  db.msgexplan.attlist =    db.msgexplan.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.msgexplan.info = db._info.title.only  db.msgexplan =        ## Explanatory material relating to a message in a message set    element msgexplan {      db.msgexplan.attlist, db.msgexplan.info, db.all.blocks+    }}div {  db.qandaset.role.attribute = attribute role { text }  db.qandaset.defaultlabel.enumeration =        ## No labels    "none"    |       ## Numeric labels      "number"    |       ## "Q:" and "A:" labels      "qanda"  db.qandaset.defaultlabel.attribute =        ## Specifies the default labelling    attribute defaultlabel { db.qandaset.defaultlabel.enumeration }  db.qandaset.attlist =    db.qandaset.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.qandaset.defaultlabel.attribute?  db.qandaset.info = db._info.title.only  db.qandaset =        ## A question-and-answer set    element qandaset {      db.qandaset.attlist,      db.qandaset.info,      db.all.blocks*,      (db.qandadiv+ | db.qandaentry+)    }}div {  db.qandadiv.role.attribute = attribute role { text }  db.qandadiv.attlist =    db.qandadiv.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.qandadiv.info = db._info.title.only  db.qandadiv =        ## A titled division in a qandaset    element qandadiv {      db.qandadiv.attlist,      db.qandadiv.info,      db.all.blocks*,      (db.qandadiv+ | db.qandaentry+)    }}div {  db.qandaentry.role.attribute = attribute role { text }  db.qandaentry.attlist =    db.qandaentry.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.qandaentry.info = db._info.title.only  db.qandaentry =        ## A question/answer set within a qandaset    element qandaentry {      db.qandaentry.attlist, db.qandaentry.info, db.question, db.answer*    }}div {  db.question.role.attribute = attribute role { text }  db.question.attlist =    db.question.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.question =        ## A question in a qandaset    element question { db.question.attlist, db.label?, db.all.blocks+ }}div {  db.answer.role.attribute = attribute role { text }  db.answer.attlist =    db.answer.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.answer =        ## An answer to a question posed in a qandaset    element answer { db.answer.attlist, db.label?, db.all.blocks+ }}div {  db.label.role.attribute = attribute role { text }  db.label.attlist =    db.label.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.label =        ## A label on a question or answer    element label { db.label.attlist, db._text }}db.math.inlines = db.inlineequationdb.equation.content = (db.mediaobject+ | db.mathphrase+) | db._any.mml+db.inlineequation.content =  (db.inlinemediaobject+ | db.mathphrase+) | db._any.mml+div {  db.equation.role.attribute = attribute role { text }  db.equation.label.attribute = db.label.attribute  db.equation.attlist =    db.equation.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.equation.label.attribute?    & db.pgwide.attribute?    & db.floatstyle.attribute?  db.equation.info = db._info.title.only  db.equation =        ## A displayed mathematical equation    [      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:equation"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:example)"            "example must not occur among the children or descendants of equation"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:equation"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:figure)"            "figure must not occur among the children or descendants of equation"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:equation"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:table)"            "table must not occur among the children or descendants of equation"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:equation"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:equation)"            "equation must not occur among the children or descendants of equation"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:equation"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:caution)"            "caution must not occur among the children or descendants of equation"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:equation"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:important)"            "important must not occur among the children or descendants of equation"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:equation"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:note)"            "note must not occur among the children or descendants of equation"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:equation"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:tip)"            "tip must not occur among the children or descendants of equation"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:equation"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:warning)"            "warning must not occur among the children or descendants of equation"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element equation {      db.equation.attlist,      db.equation.info,      db.alt?,      db.equation.content,      db.caption?    }}div {  db.informalequation.role.attribute = attribute role { text }  db.informalequation.attlist =    db.informalequation.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.pgwide.attribute?    & db.floatstyle.attribute?  db.informalequation.info = db._info.title.forbidden  db.informalequation =        ## A displayed mathematical equation without a title    element informalequation {      db.informalequation.attlist,      db.informalequation.info,      db.alt?,      db.equation.content,      db.caption?    }}div {  db.inlineequation.role.attribute = attribute role { text }  db.inlineequation.attlist =    db.inlineequation.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.inlineequation =        ## A mathematical equation or expression occurring inline    element inlineequation {      db.inlineequation.attlist, db.alt?, db.inlineequation.content    }}div {  db.mathphrase.role.attribute = attribute role { text }  db.mathphrase.attlist =    db.mathphrase.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.mathphrase =        ## A mathematical phrase that can be represented with ordinary text and a small amount of markup    element mathphrase {      db.mathphrase.attlist,      (db._text | db.ubiq.inlines | db._emphasis)*    }}db.imagedata.mathml.content = db._any.mmldiv {  db.imagedata.mathml.role.attribute = attribute role { text }  db.imagedata.mathml.attlist =    db.imagedata.mathml.role.attribute?    & db.common.attributes    &       ## Specifies that the format of the data is MathML      attribute format {                ## Specifies MathML.        "mathml"      }?    & db.imagedata.align.attribute?    & db.imagedata.valign.attribute?    & db.imagedata.width.attribute?    & db.imagedata.contentwidth.attribute?    & db.imagedata.scalefit.attribute?    & db.imagedata.scale.attribute?    & db.imagedata.depth.attribute?    & db.imagedata.contentdepth.attribute?  db.imagedata.mathml.info = db._info.title.forbidden  db.imagedata.mathml =        ## A MathML expression in a media object    element imagedata {      db.imagedata.mathml.attlist,      db.imagedata.mathml.info,      db.imagedata.mathml.content+    }}div {  db._any.mml =        ## Any element from the MathML namespace    element mml:* { (db._any.attribute | text | db._any)* }}db.imagedata.svg.content = db._any.svgdiv {  db.imagedata.svg.role.attribute = attribute role { text }  db.imagedata.svg.attlist =    db.imagedata.svg.role.attribute?    & db.common.attributes    &       ## Specifies that the format of the data is SVG      attribute format {                ## Specifies SVG.        "svg"      }?    & db.imagedata.align.attribute?    & db.imagedata.valign.attribute?    & db.imagedata.width.attribute?    & db.imagedata.contentwidth.attribute?    & db.imagedata.scalefit.attribute?    & db.imagedata.scale.attribute?    & db.imagedata.depth.attribute?    & db.imagedata.contentdepth.attribute?  db.imagedata.svg.info = db._info.title.forbidden  db.imagedata.svg =        ## An SVG drawing in a media object    element imagedata {      db.imagedata.svg.attlist,      db.imagedata.svg.info,      db.imagedata.svg.content+    }}div {  db._any.svg =        ## Any element from the SVG namespace    element svg:* { (db._any.attribute | text | db._any)* }}db.markup.inlines =  db.tag  | db.markup  | db.token  | db.symbol  | db.literal  | db.code  | db.constant  | db.email  | db.uridiv {  db.markup.role.attribute = attribute role { text }  db.markup.attlist =    db.markup.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.markup =        ## A string of formatting markup in text that is to be represented literally    element markup { db.markup.attlist, db._text }}div {  db.tag.role.attribute = attribute role { text }  db.tag.class.enumeration =        ## An attribute    "attribute"    |       ## An attribute value      "attvalue"    |       ## An element      "element"    |       ## An empty element tag      "emptytag"    |       ## An end tag      "endtag"    |       ## A general entity      "genentity"    |       ## The local name part of a qualified name      "localname"    |       ## A namespace      "namespace"    |       ## A numeric character reference      "numcharref"    |       ## A parameter entity      "paramentity"    |       ## A processing instruction      "pi"    |       ## The prefix part of a qualified name      "prefix"    |       ## An SGML comment      "comment"    |       ## A start tag      "starttag"    |       ## An XML processing instruction      "xmlpi"  db.tag.class.attribute =        ## Identifies the nature of the tag content    attribute class { db.tag.class.enumeration }  db.tag.namespace.attribute =        ## Identifies the namespace of the tag content    attribute namespace { xsd:anyURI }  db.tag.attlist =    db.tag.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.tag.class.attribute?    & db.tag.namespace.attribute?  db.tag =        ## A component of XML (or SGML) markup    element tag { db.tag.attlist, (db._text | db.tag)* }}div {  db.symbol.class.attribute =        ## Identifies the class of symbol    attribute class {            ## The value is a limit of some kind      "limit"    }  db.symbol.role.attribute = attribute role { text }  db.symbol.attlist =    db.symbol.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.symbol.class.attribute?  db.symbol =        ## A name that is replaced by a value before processing    element symbol { db.symbol.attlist, db._text }}div {  db.token.role.attribute = attribute role { text }  db.token.attlist =    db.token.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.token =        ## A unit of information    element token { db.token.attlist, db._text }}div {  db.literal.role.attribute = attribute role { text }  db.literal.attlist =    db.literal.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.literal =        ## Inline text that is some literal value    element literal { db.literal.attlist, db._text }}div {  code.language.attribute =        ## Identifies the (computer) language of the code fragment    attribute language { text }  db.code.role.attribute = attribute role { text }  db.code.attlist =    db.code.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & code.language.attribute?  db.code =        ## An inline code fragment    element code {      db.code.attlist, (db.programming.inlines | db._text)*    }}div {  db.constant.class.attribute =        ## Identifies the class of constant    attribute class {            ## The value is a limit of some kind      "limit"    }  db.constant.role.attribute = attribute role { text }  db.constant.attlist =    db.constant.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.constant.class.attribute?  db.constant =        ## A programming or system constant    element constant { db.constant.attlist, db._text }}div {  db.productname.role.attribute = attribute role { text }  db.productname.class.enumeration =        ## A name with a copyright    "copyright"    |       ## A name with a registered copyright      "registered"    |       ## A name of a service      "service"    |       ## A name which is trademarked      "trade"  db.productname.class.attribute =        ## Specifies the class of product name    attribute class { db.productname.class.enumeration }  db.productname.attlist =    db.productname.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.productname.class.attribute?  db.productname =        ## The formal name of a product    element productname { db.productname.attlist, db._text }}div {  db.productnumber.role.attribute = attribute role { text }  db.productnumber.attlist =    db.productnumber.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.productnumber =        ## A number assigned to a product    element productnumber { db.productnumber.attlist, db._text }}div {  db.database.class.enumeration =        ## An alternate or secondary key    "altkey"    |       ## A constraint      "constraint"    |       ## A data type      "datatype"    |       ## A field      "field"    |       ## A foreign key      "foreignkey"    |       ## A group      "group"    |       ## An index      "index"    |       ## The first or primary key      "key1"    |       ## An alternate or secondary key      "key2"    |       ## A name      "name"    |       ## The primary key      "primarykey"    |       ## A (stored) procedure      "procedure"    |       ## A record      "record"    |       ## A rule      "rule"    |       ## The secondary key      "secondarykey"    |       ## A table      "table"    |       ## A user      "user"    |       ## A view      "view"  db.database.class.attribute =        ## Identifies the class of database artifact    attribute class { db.database.class.enumeration }  db.database.role.attribute = attribute role { text }  db.database.attlist =    db.database.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.database.class.attribute?  db.database =        ## The name of a database, or part of a database    element database { db.database.attlist, db._text }}div {  db.application.class.enumeration =        ## A hardware application    "hardware"    |       ## A software application      "software"  db.application.class.attribute =        ## Identifies the class of application    attribute class { db.application.class.enumeration }  db.application.role.attribute = attribute role { text }  db.application.attlist =    db.application.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.application.class.attribute?  db.application =        ## The name of a software program    element application { db.application.attlist, db._text }}div {  db.hardware.role.attribute = attribute role { text }  db.hardware.attlist =    db.hardware.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.hardware =        ## A physical part of a computer system    element hardware { db.hardware.attlist, db._text }}db.gui.inlines =  db.guiicon  | db.guibutton  | db.guimenuitem  | db.guimenu  | db.guisubmenu  | db.guilabel  | db.menuchoice  | db.mousebuttondiv {  db.guibutton.role.attribute = attribute role { text }  db.guibutton.attlist =    db.guibutton.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.guibutton =        ## The text on a button in a GUI    element guibutton {      db.guibutton.attlist,      (db._text | db.accel | db.superscript | db.subscript)*    }}div {  db.guiicon.role.attribute = attribute role { text }  db.guiicon.attlist =    db.guiicon.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.guiicon =        ## Graphic and/or text appearing as a icon in a GUI    element guiicon {      db.guiicon.attlist,      (db._text | db.accel | db.superscript | db.subscript)*    }}div {  db.guilabel.role.attribute = attribute role { text }  db.guilabel.attlist =    db.guilabel.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.guilabel =        ## The text of a label in a GUI    element guilabel {      db.guilabel.attlist,      (db._text | db.accel | db.superscript | db.subscript)*    }}div {  db.guimenu.role.attribute = attribute role { text }  db.guimenu.attlist =    db.guimenu.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.guimenu =        ## The name of a menu in a GUI    element guimenu {      db.guimenu.attlist,      (db._text | db.accel | db.superscript | db.subscript)*    }}div {  db.guimenuitem.role.attribute = attribute role { text }  db.guimenuitem.attlist =    db.guimenuitem.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.guimenuitem =        ## The name of a terminal menu item in a GUI    element guimenuitem {      db.guimenuitem.attlist,      (db._text | db.accel | db.superscript | db.subscript)*    }}div {  db.guisubmenu.role.attribute = attribute role { text }  db.guisubmenu.attlist =    db.guisubmenu.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.guisubmenu =        ## The name of a submenu in a GUI    element guisubmenu {      db.guisubmenu.attlist,      (db._text | db.accel | db.superscript | db.subscript)*    }}div {  db.menuchoice.role.attribute = attribute role { text }  db.menuchoice.attlist =    db.menuchoice.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.menuchoice =        ## A selection or series of selections from a menu    element menuchoice {      db.menuchoice.attlist,      db.shortcut?,      (db.guibutton       | db.guiicon       | db.guilabel       | db.guimenu       | db.guimenuitem       | db.guisubmenu)+    }}div {  db.mousebutton.role.attribute = attribute role { text }  db.mousebutton.attlist =    db.mousebutton.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.mousebutton =        ## The conventional name of a mouse button    element mousebutton { db.mousebutton.attlist, db._text }}db.keyboard.inlines =  db.keycombo  | db.keycap  | db.keycode  | db.keysym  | db.shortcut  | db.acceldiv {  db.keycap.function.enumeration =        ## The "Alt" key    "alt"    |       ## The "Backspace" key      "backspace"    |       ## The "Command" key      "command"    |       ## The "Control" key      "control"    |       ## The "Delete" key      "delete"    |       ## The down arrow      "down"    |       ## The "End" key      "end"    |       ## The "Enter" or "Return" key      "enter"    |       ## The "Escape" key      "escape"    |       ## The "Home" key      "home"    |       ## The "Insert" key      "insert"    |       ## The left arrow      "left"    |       ## The "Meta" key      "meta"    |       ## The "Option" key      "option"    |       ## The page down key      "pagedown"    |       ## The page up key      "pageup"    |       ## The right arrow      "right"    |       ## The "Shift" key      "shift"    |       ## The spacebar      "space"    |       ## The "Tab" key      "tab"    |       ## The up arrow      "up"  db.keycap.function-enum.attribute =        ## Identifies the function key    attribute function { db.keycap.function.enumeration }?  db.keycap.function-other.attributes =        ## Identifies the function key    attribute function {            ## Indicates a non-standard function key      "other"    }?,        ## Specifies a keyword that identifies the non-standard key    attribute otherfunction { text }  db.keycap.function.attrib =    db.keycap.function-enum.attribute    | db.keycap.function-other.attributes  db.keycap.role.attribute = attribute role { text }  db.keycap.attlist =    db.keycap.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.keycap.function.attrib  db.keycap =        ## The text printed on a key on a keyboard    element keycap { db.keycap.attlist, db._text }}div {  db.keycode.role.attribute = attribute role { text }  db.keycode.attlist =    db.keycode.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.keycode =        ## The internal, frequently numeric, identifier for a key on a keyboard    element keycode { db.keycode.attlist, db._text }}db.keycombination.contentmodel =  (db.keycap | db.keycombo | db.keysym) | db.mousebuttondiv {  db.keycombo.action.enumeration =        ## A (single) mouse click.    "click"    |       ## A double mouse click.      "double-click"    |       ## A mouse or key press.      "press"    |       ## Sequential clicks or presses.      "seq"    |       ## Simultaneous clicks or presses.      "simul"  db.keycombo.action-enum.attribute =        ## Identifies the nature of the action taken. If keycombo    ##  contains more than one element, simul    ##  is the default, otherwise there is no default.    attribute action { db.keycombo.action.enumeration }?  db.keycombo.action-other.attributes =        ## Identifies the nature of the action taken    attribute action {            ## Indicates a non-standard action      "other"    }?,        ## Identifies the non-standard action in some unspecified way.    attribute otheraction { text }  db.keycombo.action.attrib =    db.keycombo.action-enum.attribute    | db.keycombo.action-other.attributes  db.keycombo.role.attribute = attribute role { text }  db.keycombo.attlist =    db.keycombo.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.keycombo.action.attrib  db.keycombo =        ## A combination of input actions    element keycombo {      db.keycombo.attlist, db.keycombination.contentmodel+    }}div {  db.keysym.role.attribute = attribute role { text }  db.keysym.attlist =    db.keysym.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.keysym =        ## The symbolic name of a key on a keyboard    element keysym { db.keysym.attlist, db._text }}div {  db.accel.role.attribute = attribute role { text }  db.accel.attlist =    db.accel.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.accel =        ## A graphical user interface (GUI) keyboard shortcut    element accel { db.accel.attlist, db._text }}div {  db.shortcut.action.attrib = db.keycombo.action.attrib  db.shortcut.role.attribute = attribute role { text }  db.shortcut.attlist =    db.shortcut.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.shortcut.action.attrib  db.shortcut =        ## A key combination for an action that is also accessible through a menu    element shortcut {      db.shortcut.attlist, db.keycombination.contentmodel+    }}db.os.inlines =  db.prompt  | db.envar  | db.filename  | db.command  | db.computeroutput  | db.userinputdb.computeroutput.inlines =  (text | db.ubiq.inlines | db.os.inlines | db.technical.inlines)  | db.co  | db.markup.inlinesdb.userinput.inlines =  (text | db.ubiq.inlines | db.os.inlines | db.technical.inlines)  | db.co  | db.markup.inlines  | db.gui.inlines  | db.keyboard.inlinesdb.prompt.inlines = db._text | db.codiv {  db.prompt.role.attribute = attribute role { text }  db.prompt.attlist =    db.prompt.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.prompt =        ## A character or string indicating the start of an input field in a  computer display    element prompt { db.prompt.attlist, db.prompt.inlines* }}div {  db.envar.role.attribute = attribute role { text }  db.envar.attlist =    db.envar.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.envar =        ## A software environment variable    element envar { db.envar.attlist, db._text }}div {  db.filename.class.enumeration =        ## A device    "devicefile"    |       ## A directory      "directory"    |       ## A filename extension      "extension"    |       ## A header file (as for a programming language)      "headerfile"    |       ## A library file      "libraryfile"    |       ## A partition (as of a hard disk)      "partition"    |       ## A symbolic link      "symlink"  db.filename.class.attribute =        ## Identifies the class of filename    attribute class { db.filename.class.enumeration }  db.filename.path.attribute =        ## Specifies the path of the filename    attribute path { text }  db.filename.role.attribute = attribute role { text }  db.filename.attlist =    db.filename.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.filename.path.attribute?    & db.filename.class.attribute?  db.filename =        ## The name of a file    element filename { db.filename.attlist, db._text }}div {  db.command.role.attribute = attribute role { text }  db.command.attlist =    db.command.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.command =        ## The name of an executable program or other software command    element command { db.command.attlist, db._text }}div {  db.computeroutput.role.attribute = attribute role { text }  db.computeroutput.attlist =    db.computeroutput.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.computeroutput =        ## Data, generally text, displayed or presented by a computer    element computeroutput {      db.computeroutput.attlist, db.computeroutput.inlines*    }}div {  db.userinput.role.attribute = attribute role { text }  db.userinput.attlist =    db.userinput.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.userinput =        ## Data entered by the user    element userinput { db.userinput.attlist, db.userinput.inlines* }}div {  db.cmdsynopsis.role.attribute = attribute role { text }  db.cmdsynopsis.sepchar.attribute =        ## Specifies the character that should separate the command and its top-level arguments    attribute sepchar { text }  db.cmdsynopsis.cmdlength.attribute =        ## Indicates the displayed length of the command; this information may be used to intelligently indent command synopses which extend beyond one line    attribute cmdlength { text }  db.cmdsynopsis.label.attribute = db.label.attribute  db.cmdsynopsis.attlist =    db.cmdsynopsis.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.cmdsynopsis.sepchar.attribute?    & db.cmdsynopsis.cmdlength.attribute?    & db.cmdsynopsis.label.attribute?  db.cmdsynopsis.info = db._info.title.forbidden  db.cmdsynopsis =        ## A syntax summary for a software command    element cmdsynopsis {      db.cmdsynopsis.attlist,      db.cmdsynopsis.info,      (db.command | db.arg | db.group | db.sbr)+,      db.synopfragment*    }}db.rep.enumeration =    ## Can not be repeated.  "norepeat"  |     ## Can be repeated.    "repeat"db.rep.attribute =    ## Indicates whether or not repetition is possible.  [ a:defaultValue = "norepeat" ] attribute rep { db.rep.enumeration }db.choice.enumeration =    ## Formatted to indicate that it is optional.  "opt"  |     ## Formatted without indication.    "plain"  |     ## Formatted to indicate that it is required.    "req"db.choice.opt.attribute =    ## Indicates optionality.  [ a:defaultValue = "opt" ] attribute choice { db.choice.enumeration }db.choice.req.attribute =    ## Indicates optionality.  [ a:defaultValue = "req" ] attribute choice { db.choice.enumeration }div {  db.arg.role.attribute = attribute role { text }  db.arg.rep.attribute = db.rep.attribute  db.arg.choice.attribute = db.choice.opt.attribute  db.arg.attlist =    db.arg.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.arg.rep.attribute?    & db.arg.choice.attribute?  db.arg =        ## An argument in a cmdsynopsis    element arg {      db.arg.attlist,      (db._text       | db.arg       | db.group       | db.option       | db.synopfragmentref       | db.sbr)*    }}div {  db.group.role.attribute = attribute role { text }  db.group.rep.attribute = db.rep.attribute  db.group.choice.attribute = db.choice.opt.attribute  db.group.attlist =    db.group.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.group.rep.attribute?    & db.group.choice.attribute?  db.group =        ## A group of elements in a cmdsynopsis    element group {      db.group.attlist,      (db.arg       | db.group       | db.option       | db.synopfragmentref       | db.replaceable       | db.sbr)+    }}div {  db.sbr.role.attribute = attribute role { text }  db.sbr.attlist = db.sbr.role.attribute? & db.common.attributes  db.sbr =        ## An explicit line break in a command synopsis    element sbr { db.sbr.attlist, empty }}div {  db.synopfragment.role.attribute = attribute role { text }  db.synopfragment.attlist =    db.synopfragment.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.synopfragment =        ## A portion of a cmdsynopsis broken out from the main body of the synopsis    element synopfragment {      db.synopfragment.attlist, (db.arg | db.group)+    }}div {  db.synopfragmentref.role.attribute = attribute role { text }  db.synopfragmentref.attlist =    db.synopfragmentref.role.attribute?    & db.common.attributes    & db.linkend.attribute  db.synopfragmentref =        ## A reference to a fragment of a command synopsis    [      s:pattern [        name = "Synopsis fragment type constraint"        "\x{a}" ~        "               "        s:rule [          context = "db:synopfragmentref"          "\x{a}" ~          "                  "          s:assert [            test =              "local-name(//*[@xml:id=current()/@linkend]) = 'synopfragment' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"            "@linkend on synopfragmentref must point to a synopfragment."          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element synopfragmentref { db.synopfragmentref.attlist, text }}db.programming.inlines =  db.function  | db.parameter  | db.varname  | db.returnvalue  | db.type  | db.classname  | db.exceptionname  | db.interfacename  | db.methodname  | db.modifier  | db.initializer  | db.oo.inlinesdb.oo.inlines = db.ooclass | db.ooexception | db.oointerfacedb.synopsis.blocks =  (db.funcsynopsis   | db.classsynopsis   | db.methodsynopsis   | db.constructorsynopsis   | db.destructorsynopsis   | db.fieldsynopsis)  | db.cmdsynopsisdiv {  db.synopsis.role.attribute = attribute role { text }  db.synopsis.label.attribute = db.label.attribute  db.synopsis.attlist =    db.synopsis.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.verbatim.attributes    & db.synopsis.label.attribute?  db.synopsis =        ## A general-purpose element for representing the syntax of commands or functions    element synopsis { db.synopsis.attlist, db.verbatim.contentmodel }}div {  db.funcsynopsis.role.attribute = attribute role { text }  db.funcsynopsis.attlist =    db.funcsynopsis.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.language.attribute?  db.funcsynopsis.info = db._info.title.forbidden  db.funcsynopsis =        ## The syntax summary for a function definition    element funcsynopsis {      db.funcsynopsis.attlist,      db.funcsynopsis.info,      (db.funcsynopsisinfo | db.funcprototype)+    }}div {  db.funcsynopsisinfo.role.attribute = attribute role { text }  db.funcsynopsisinfo.attlist =    db.funcsynopsisinfo.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.verbatim.attributes  db.funcsynopsisinfo =        ## Information supplementing the funcdefs of a funcsynopsis    element funcsynopsisinfo {      db.funcsynopsisinfo.attlist, db.verbatim.contentmodel    }}div {  db.funcprototype.role.attribute = attribute role { text }  db.funcprototype.attlist =    db.funcprototype.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.funcprototype =        ## The prototype of a function    element funcprototype {      db.funcprototype.attlist,      db.modifier*,      db.funcdef,      (db.void       | db.varargs       | ((db.paramdef | db.group.paramdef)+, db.varargs?)),      db.modifier*    }}div {  db.funcdef.role.attribute = attribute role { text }  db.funcdef.attlist =    db.funcdef.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.funcdef =        ## A function (subroutine) name and its return type    element funcdef {      db.funcdef.attlist, (db._text | db.type | db.function)*    }}div {  db.function.role.attribute = attribute role { text }  db.function.attlist =    db.function.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.function =        ## The name of a function or subroutine, as in a programming language    element function { db.function.attlist, db._text }}div {  db.void.role.attribute = attribute role { text }  db.void.attlist =    db.void.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.void =        ## An empty element in a function synopsis indicating that the function in question takes no arguments    element void { db.void.attlist, empty }}div {  db.varargs.role.attribute = attribute role { text }  db.varargs.attlist =    db.varargs.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.varargs =        ## An empty element in a function synopsis indicating a variable number of arguments    element varargs { db.varargs.attlist, empty }}div {  db.group.paramdef.role.attribute = attribute role { text }  db.group.paramdef.choice.attribute = db.choice.opt.attribute  db.group.paramdef.attlist =    db.group.paramdef.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.group.paramdef.choice.attribute?  db.group.paramdef =        ## A group of parameters    element group {      db.group.paramdef.attlist, (db.paramdef | db.group.paramdef)+    }}div {  db.paramdef.role.attribute = attribute role { text }  db.paramdef.choice.enumeration =        ## Formatted to indicate that it is optional.    "opt"    |       ## Formatted to indicate that it is required.      "req"  db.paramdef.choice.attribute =        ## Indicates optionality.    [ a:defaultValue = "opt" ]    attribute choice { db.paramdef.choice.enumeration }  db.paramdef.attlist =    db.paramdef.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.paramdef.choice.attribute?  db.paramdef =        ## Information about a function parameter in a programming language    element paramdef {      db.paramdef.attlist,      (db._text       | db.initializer       | db.type       | db.parameter       | db.funcparams)*    }}div {  db.funcparams.role.attribute = attribute role { text }  db.funcparams.attlist =    db.funcparams.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.funcparams =        ## Parameters for a function referenced through a function pointer in a synopsis    element funcparams { db.funcparams.attlist, db._text }}div {  db.classsynopsis.role.attribute = attribute role { text }  db.classsynopsis.class.enumeration =        ## This is the synopsis of a class    "class"    |       ## This is the synopsis of an interface      "interface"  db.classsynopsis.class.attribute =        ## Specifies the nature of the synopsis    attribute class { db.classsynopsis.class.enumeration }  db.classsynopsis.attlist =    db.classsynopsis.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.language.attribute?    & db.classsynopsis.class.attribute?  db.classsynopsis =        ## The syntax summary for a class definition    element classsynopsis {      db.classsynopsis.attlist,      db.oo.inlines+,      (db.classsynopsisinfo       | db.methodsynopsis       | db.constructorsynopsis       | db.destructorsynopsis       | db.fieldsynopsis)*    }}div {  db.classsynopsisinfo.role.attribute = attribute role { text }  db.classsynopsisinfo.attlist =    db.classsynopsisinfo.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.verbatim.attributes  db.classsynopsisinfo =        ## Information supplementing the contents of a classsynopsis    element classsynopsisinfo {      db.classsynopsisinfo.attlist, db.verbatim.contentmodel    }}div {  db.ooclass.role.attribute = attribute role { text }  db.ooclass.attlist =    db.ooclass.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.ooclass =        ## A class in an object-oriented programming language    element ooclass {      db.ooclass.attlist, (db.package | db.modifier)*, db.classname    }}div {  db.oointerface.role.attribute = attribute role { text }  db.oointerface.attlist =    db.oointerface.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.oointerface =        ## An interface in an object-oriented programming language    element oointerface {      db.oointerface.attlist,      (db.package | db.modifier)*,      db.interfacename    }}div {  db.ooexception.role.attribute = attribute role { text }  db.ooexception.attlist =    db.ooexception.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.ooexception =        ## An exception in an object-oriented programming language    element ooexception {      db.ooexception.attlist,      (db.package | db.modifier)*,      db.exceptionname    }}db.modifier.xml.space.attribute =    ## Can be used to indicate that whitespace in the modifier should be preserved (for multi-line annotations, for example).  attribute xml:space {        ## Extra whitespace and line breaks must be preserved.    [      # Ideally the definition of xml:space used on modifier would be      # different from the definition used on the verbatim elements. The      # verbatim elements forbid the use of xml:space="default" which      # wouldn't be a problem on modifier. But doing that causes the      # generated XSD schemas to be broken so I'm just reusing the existing      # definition for now. It won't be backwards incompatible to fix this      # problem in the future.      #    | ## Extra whitespace and line breaks are not preserved.      #      "default"          ]    "preserve"  }div {  db.modifier.role.attribute = attribute role { text }  db.modifier.attlist =    db.modifier.xml.space.attribute?    & db.modifier.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.modifier =        ## Modifiers in a synopsis    element modifier { db.modifier.attlist, db._text }}div {  db.interfacename.role.attribute = attribute role { text }  db.interfacename.attlist =    db.interfacename.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.interfacename =        ## The name of an interface    element interfacename { db.interfacename.attlist, db._text }}div {  db.exceptionname.role.attribute = attribute role { text }  db.exceptionname.attlist =    db.exceptionname.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.exceptionname =        ## The name of an exception    element exceptionname { db.exceptionname.attlist, db._text }}div {  db.fieldsynopsis.role.attribute = attribute role { text }  db.fieldsynopsis.attlist =    db.fieldsynopsis.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.language.attribute?  db.fieldsynopsis =        ## The name of a field in a class definition    element fieldsynopsis {      db.fieldsynopsis.attlist,      db.modifier*,      db.type?,      db.varname,      db.initializer?    }}div {  db.initializer.role.attribute = attribute role { text }  db.initializer.attlist =    db.initializer.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.initializer.inlines = db._text | db.mathphrase | db.markup.inlines  db.initializer =        ## The initializer for a fieldsynopsis    element initializer {      db.initializer.attlist, db.initializer.inlines*    }}div {  db.constructorsynopsis.role.attribute = attribute role { text }  db.constructorsynopsis.attlist =    db.constructorsynopsis.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.language.attribute?  db.constructorsynopsis =        ## A syntax summary for a constructor    element constructorsynopsis {      db.constructorsynopsis.attlist,      db.modifier*,      db.methodname?,      ((db.methodparam | db.group.methodparam)+ | db.void?),      db.exceptionname*    }}div {  db.destructorsynopsis.role.attribute = attribute role { text }  db.destructorsynopsis.attlist =    db.destructorsynopsis.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.language.attribute?  db.destructorsynopsis =        ## A syntax summary for a destructor    element destructorsynopsis {      db.destructorsynopsis.attlist,      db.modifier*,      db.methodname?,      ((db.methodparam | db.group.methodparam)+ | db.void?),      db.exceptionname*    }}div {  db.methodsynopsis.role.attribute = attribute role { text }  db.methodsynopsis.attlist =    db.methodsynopsis.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.language.attribute?  db.methodsynopsis =        ## A syntax summary for a method    element methodsynopsis {      db.methodsynopsis.attlist,      db.modifier*,      (db.type | db.void)?,      db.methodname,      ((db.methodparam | db.group.methodparam)+ | db.void),      db.exceptionname*,      db.modifier*    }}div {  db.methodname.role.attribute = attribute role { text }  db.methodname.attlist =    db.methodname.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.methodname =        ## The name of a method    element methodname { db.methodname.attlist, db._text }}div {  db.methodparam.role.attribute = attribute role { text }  db.methodparam.rep.attribute = db.rep.attribute  db.methodparam.choice.attribute = db.choice.req.attribute  db.methodparam.attlist =    db.methodparam.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.methodparam.rep.attribute?    & db.methodparam.choice.attribute?  db.methodparam =        ## Parameters to a method    element methodparam {      db.methodparam.attlist,      db.modifier*,      db.type?,      ((db.modifier*, db.parameter, db.initializer?) | db.funcparams),      db.modifier*    }}div {  db.group.methodparam.role.attribute = attribute role { text }  db.group.methodparam.choice.attribute = db.choice.opt.attribute  db.group.methodparam.attlist =    db.group.methodparam.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.group.methodparam.choice.attribute?  db.group.methodparam =        ## A group of method parameters    element group {      db.group.methodparam.attlist,      (db.methodparam | db.group.methodparam)+    }}div {  db.varname.role.attribute = attribute role { text }  db.varname.attlist =    db.varname.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.varname =        ## The name of a variable    element varname { db.varname.attlist, db._text }}div {  db.returnvalue.role.attribute = attribute role { text }  db.returnvalue.attlist =    db.returnvalue.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.returnvalue =        ## The value returned by a function    element returnvalue { db.returnvalue.attlist, db._text }}div {  db.type.role.attribute = attribute role { text }  db.type.attlist =    db.type.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.type =        ## The classification of a value    element type { db.type.attlist, db._text }}div {  db.classname.role.attribute = attribute role { text }  db.classname.attlist =    db.classname.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.classname =        ## The name of a class, in the object-oriented programming sense    element classname { db.classname.attlist, db._text }}div {  db.programlisting.role.attribute = attribute role { text }  db.programlisting.width.attribute = db.width.characters.attribute  db.programlisting.attlist =    db.programlisting.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.verbatim.attributes    & db.programlisting.width.attribute?  db.programlisting =        ## A literal listing of all or part of a program    element programlisting {      db.programlisting.attlist, db.verbatim.contentmodel    }}db.admonition.blocks =  db.caution | db.important | db.note | db.tip | db.warningdb.admonition.contentmodel = db._info.title.only, db.all.blocks+div {  db.caution.role.attribute = attribute role { text }  db.caution.attlist =    db.caution.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.caution =        ## A note of caution    [      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caution"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:caution)"            "caution must not occur among the children or descendants of caution"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caution"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:important)"            "important must not occur among the children or descendants of caution"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caution"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:note)"            "note must not occur among the children or descendants of caution"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caution"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:tip)"            "tip must not occur among the children or descendants of caution"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:caution"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:warning)"            "warning must not occur among the children or descendants of caution"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element caution { db.caution.attlist, db.admonition.contentmodel }}div {  db.important.role.attribute = attribute role { text }  db.important.attlist =    db.important.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.important =        ## An admonition set off from the text    [      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:important"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:caution)"            "caution must not occur among the children or descendants of important"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:important"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:important)"            "important must not occur among the children or descendants of important"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:important"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:note)"            "note must not occur among the children or descendants of important"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:important"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:tip)"            "tip must not occur among the children or descendants of important"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:important"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:warning)"            "warning must not occur among the children or descendants of important"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element important {      db.important.attlist, db.admonition.contentmodel    }}div {  db.note.role.attribute = attribute role { text }  db.note.attlist =    db.note.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.note =        ## A message set off from the text    [      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:note"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:caution)"            "caution must not occur among the children or descendants of note"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:note"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:important)"            "important must not occur among the children or descendants of note"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:note"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:note)"            "note must not occur among the children or descendants of note"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:note"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:tip)"            "tip must not occur among the children or descendants of note"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:note"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:warning)"            "warning must not occur among the children or descendants of note"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element note { db.note.attlist, db.admonition.contentmodel }}div {  db.tip.role.attribute = attribute role { text }  db.tip.attlist =    db.tip.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.tip =        ## A suggestion to the user, set off from the text    [      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:tip"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:caution)"            "caution must not occur among the children or descendants of tip"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:tip"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:important)"            "important must not occur among the children or descendants of tip"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:tip"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:note)"            "note must not occur among the children or descendants of tip"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:tip"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:tip)"            "tip must not occur among the children or descendants of tip"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:tip"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:warning)"            "warning must not occur among the children or descendants of tip"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element tip { db.tip.attlist, db.admonition.contentmodel }}div {  db.warning.role.attribute = attribute role { text }  db.warning.attlist =    db.warning.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.warning =        ## An admonition set off from the text    [      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:warning"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:caution)"            "caution must not occur among the children or descendants of warning"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:warning"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:important)"            "important must not occur among the children or descendants of warning"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:warning"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:note)"            "note must not occur among the children or descendants of warning"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:warning"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:tip)"            "tip must not occur among the children or descendants of warning"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Element exclusion"        "\x{a}" ~        "               "        s:rule [          context = "db:warning"          "\x{a}" ~          "                  "          s:assert [            test = "not(.//db:warning)"            "warning must not occur among the children or descendants of warning"          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element warning { db.warning.attlist, db.admonition.contentmodel }}db.error.inlines =  db.errorcode | db.errortext | db.errorname | db.errortypediv {  db.errorcode.role.attribute = attribute role { text }  db.errorcode.attlist =    db.errorcode.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.errorcode =        ## An error code    element errorcode { db.errorcode.attlist, db._text }}div {  db.errorname.role.attribute = attribute role { text }  db.errorname.attlist =    db.errorname.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.errorname =        ## An error name    element errorname { db.errorname.attlist, db._text }}div {  db.errortext.role.attribute = attribute role { text }  db.errortext.attlist =    db.errortext.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.errortext =        ## An error message.    element errortext { db.errortext.attlist, db._text }}div {  db.errortype.role.attribute = attribute role { text }  db.errortype.attlist =    db.errortype.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.errortype =        ## The classification of an error message    element errortype { db.errortype.attlist, db._text }}db.systemitem.inlines = db._text | db.codiv {  db.systemitem.class.enumeration =        ## A daemon or other system process (syslogd)    "daemon"    |       ## A domain name (example.com)      "domainname"    |       ## An ethernet address (00:05:4E:49:FD:8E)      "etheraddress"    |       ## An event of some sort (SIGHUP)      "event"    |       ## An event handler of some sort (hangup)      "eventhandler"    |       ## A filesystem (ext3)      "filesystem"    |       ## A fully qualified domain name (my.example.com)      "fqdomainname"    |       ## A group name (wheel)      "groupname"    |       ## An IP address (127.0.0.1)      "ipaddress"    |       ## A library (libncurses)      "library"    |       ## A macro      "macro"    |       ## A netmask (255.255.255.192)      "netmask"    |       ## A newsgroup (comp.text.xml)      "newsgroup"    |       ## An operating system name (Hurd)      "osname"    |       ## A process (gnome-cups-icon)      "process"    |       ## A protocol (ftp)      "protocol"    |       ## A resource      "resource"    |       ## A security context (a role, permission, or security token, for example)      "securitycontext"    |       ## A server (mail.example.com)      "server"    |       ## A service (ppp)      "service"    |       ## A system name (hephaistos)      "systemname"    |       ## A user name (ndw)      "username"  db.systemitem.class-enum.attribute =        ## Identifies the nature of the system item    attribute class { db.systemitem.class.enumeration }?  db.systemitem.class-other.attribute =        ## Identifies the nature of the non-standard system item    attribute otherclass { xsd:NMTOKEN }  db.systemitem.class-other.attributes =        ## Identifies the kind of systemitemgraphic identifier    attribute class {            ## Indicates that the system item is some 'other' kind.      "other"    }    & db.systemitem.class-other.attribute  db.systemitem.class.attribute =    db.systemitem.class-enum.attribute    | db.systemitem.class-other.attributes  db.systemitem.role.attribute = attribute role { text }  db.systemitem.attlist =    db.systemitem.role.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.systemitem.class.attribute?  db.systemitem =        ## A system-related item or term    element systemitem { db.systemitem.attlist, db.systemitem.inlines* }}div {  db.option.role.attribute = attribute role { text }  db.option.attlist =    db.option.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.option =        ## An option for a software command    element option { db.option.attlist, db._text }}div {  db.optional.role.attribute = attribute role { text }  db.optional.attlist =    db.optional.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.optional =        ## Optional information    element optional { db.optional.attlist, db._text }}div {  db.property.role.attribute = attribute role { text }  db.property.attlist =    db.property.role.attribute?    & db.common.attributes    & db.common.linking.attributes  db.property =        ## A unit of data associated with some part of a computer system    element property { db.property.attlist, db._text }}div {  db.topic.status.attribute = db.status.attribute  db.topic.role.attribute = attribute role { text }  db.topic.type.attribute =        ## Identifies the topic type    attribute type { text }  db.topic.attlist =    db.topic.role.attribute?    & db.topic.type.attribute?    & db.common.attributes    & db.common.linking.attributes    & db.label.attribute?    & db.topic.status.attribute?  db.topic.info = db._info.title.req  db.topic =        ## A modular unit of documentation not part of any particular narrative flow    element topic {      db.topic.attlist,      db.topic.info,      db.navigation.components*,      db.toplevel.blocks.or.sections,      db.navigation.components*    }}start =  db.assembly  | db.resources  | db.relationships  | db.transforms  | db.moduledb.grammar.attribute =    ## Identifies the markup grammar of a resource  attribute grammar { text }div {  db.assembly.role.attribute = attribute role { text }  db.assembly.attlist =    db.assembly.role.attribute? & db.common.attributes  db.assembly.info = db._info  db.assembly =        ## Defines the hierarchy and relationships for a collection of resources    [      s:pattern [        name = "Root must have version"        "\x{a}" ~        "               "        s:rule [          context = "/db:assembly"          "\x{a}" ~          "                  "          s:assert [            test = "@version"            "If this element is the root element, it must have a version attribute."          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element assembly {      db.assembly.attlist,      db.assembly.info,      db.resources+,      db.structure*,      db.relationships*,      db.transforms?    }}div {  db.resources.role.attribute = attribute role { text }  db.resources.grammar.attribute = db.grammar.attribute  db.resources.attlist =    db.resources.role.attribute?    & db.resources.grammar.attribute?    & db.common.attributes  db.resources.info = db._info.title.forbidden  db.resources =        ## Contains one or more resource objects that are managed by the assembly    [      s:pattern [        name = "Root must have version"        "\x{a}" ~        "               "        s:rule [          context = "/db:resources"          "\x{a}" ~          "                  "          s:assert [            test = "@version"            "If this element is the root element, it must have a version attribute."          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element resources {      db.resources.attlist,      db.resources.info?,      (db.description*, db.resource+)    }}div {  db.resource.role.attribute = attribute role { text }  db.resource.fileref.attribute =        ## Indentifies the location of the data by URI    attribute fileref { xsd:anyURI }  db.resource.grammar.attribute = db.grammar.attribute  db.resource.attlist =    db.resource.role.attribute?    & db.resource.grammar.attribute?    & db.common.attributes  db.resource =        ## Identifies an object managed within the assembly    element resource {      db.resource.attlist,      db.resource.fileref.attribute,      db.description*    }}div {  db.structure.role.attribute = attribute role { text }  db.structure.type.attribute =        ## Identifies the structure type of the structure    attribute type { xsd:NMTOKEN }  db.structure.resourceref.attribute =        ## Indicates a single resource from which to construct this structure    attribute resourceref { xsd:IDREF }  db.structure.defaultformat.attribute =        ## Identifies the default format of the structure    attribute defaultformat { xsd:NMTOKEN }  db.structure.renderas.attribute =        ## Specifies the DocBook element to which this unit should be renamed    attribute renderas { xsd:QName }  db.structure.attlist =    db.structure.role.attribute?    & db.structure.type.attribute?    & db.structure.resourceref.attribute?    & db.structure.renderas.attribute?    & db.structure.defaultformat.attribute?    & db.common.attributes  db.structure.info = db.info?  db.structure =        ## Describes the structure of a document    [      s:pattern [        name = "Specification of renderas"        "\x{a}" ~        "               "        s:rule [          context = "db:structure"          "\x{a}" ~          "                  "          s:assert [            test = "@renderas and db:output/@renderas"            "The renderas attribute can be specified on either the structure or output, but not both."          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element structure {      db.structure.attlist,      (db.output* & db.filterin? & db.filterout? & db.structure.info),      db.merge?,      db.revhistory?,      db.module+    }}div {  db.output.role.attribute = attribute role { text }  db.output.chunk.attribute =        ## Specifies chunking for this module    [ a:defaultValue = "auto" ]    attribute chunk { db.module.chunk.enumeration }  db.output.format.attribute =        ## Identifies the format of the module or structure    attribute format { xsd:NMTOKENS }  db.output.file.attribute =        ## Specifies the output file for this module or structure    attribute file { xsd:anyURI }  db.output.renderas.attribute =        ## Specifies the DocBook element to which this unit should be renamed    attribute renderas { xsd:QName }  db.output.grammar.attribute = db.grammar.attribute  db.output.transform.attribute =        ## Specifies the transformation that should be applied to this unit    attribute transform { xsd:NMTOKEN }  db.output.suppress.attribute =        ## Indicates whether or not this unit should be suppressed    attribute suppress { xsd:boolean }  db.output.attlist =    db.output.role.attribute?    & db.common.attributes    & db.output.chunk.attribute?    & db.output.format.attribute?    & db.output.file.attribute?    & db.output.renderas.attribute?    & db.output.grammar.attribute?    & db.output.transform.attribute?    & db.output.suppress.attribute?  db.output =        ## Specify an output format and/or file name and/or renderas    element output { db.output.attlist, empty }}div {  db.merge.role.attribute = attribute role { text }  db.merge.resourceref.attribute =        ## Indicates a single resource from which to read merged info    attribute resourceref { xsd:IDREF }  db.merge.attlist =    db.merge.role.attribute?    & db.merge.resourceref.attribute?    & db.common.attributes  db.merge =        ## A wrapper for information that a module overrides in the resource it includes    element merge { db.merge.attlist, (db._title & db.info.elements*) }}div {  db.module.role.attribute = attribute role { text }  db.module.chunk.enumeration =        ## This module will be in a chunk    "true"    |       ## This module will not be in a chunk      "false"    |       ## Chunking of this module depends on the overall chunking algorithm      "auto"  db.module.chunk.attribute =        ## Specifies chunking for this module    [ a:defaultValue = "auto" ]    attribute chunk { db.module.chunk.enumeration }  db.module.resourceref.attribute =        ## Indicates a single resource from which to construct this module    attribute resourceref { xsd:IDREF }  db.module.omittitles.attribute =        ## Indicates if titles should be omitted when including a resource    attribute omittitles { xsd:boolean }?  db.module.contentonly.attribute =        ## Indicates if only the content should be copied when including a resource    attribute contentonly { xsd:boolean }?  db.module.renderas.attribute =        ## Specifies the DocBook element to which this unit should be renamed    attribute renderas { xsd:QName }  db.module.attlist =    db.module.role.attribute?    & db.module.chunk.attribute?    & db.module.resourceref.attribute?    & db.module.omittitles.attribute?    & db.module.contentonly.attribute?    & db.module.renderas.attribute?    & db.common.attributes  db.module.info = db.info?  db.module =        ## A modular component within a structure    [      s:pattern [        name = "Root must have version"        "\x{a}" ~        "               "        s:rule [          context = "/db:module"          "\x{a}" ~          "                  "          s:assert [            test = "@version"            "If this element is the root element, it must have a version attribute."          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]      s:pattern [        name = "Specification of renderas"        "\x{a}" ~        "               "        s:rule [          context = "db:module"          "\x{a}" ~          "                  "          s:assert [            test = "@renderas and db:output/@renderas"            "The renderas attribute can be specified on either the structure or output, but not both."          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element module {      db.module.attlist,      ((db.output | db.filterin | db.filterout)*,       db.module.info,       db.merge?,       db.module*)    }}div {  db.filterout.role.attribute = attribute role { text }  db.filterout.attlist =    db.filterout.role.attribute? & db.common.attributes  db.filterout =        ## Elements with effectivity attributes matching this element are suppressed    element filterout { db.filterout.attlist, empty }}div {  db.filterin.role.attribute = attribute role { text }  db.filterin.attlist =    db.filterin.role.attribute? & db.common.attributes  db.filterin =        ## Elements with effectivity attributes matching this element are allowed    element filterin { db.filterin.attlist, empty }}div {  db.relationships.role.attribute = attribute role { text }  db.relationships.type.attribute =        ## Identifies the type of the contained relationships    attribute type { xsd:NMTOKENS }  db.relationships.attlist =    db.relationships.role.attribute?    & db.relationships.type.attribute?    & db.common.attributes  db.relationships.info = db._info  db.relationships =        ## Groups relationship elements to define associations between resources    [      s:pattern [        name = "Root must have version"        "\x{a}" ~        "               "        s:rule [          context = "/db:relationships"          "\x{a}" ~          "                  "          s:assert [            test = "@version"            "If this element is the root element, it must have a version attribute."          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element relationships {      db.relationships.attlist,      db.relationships.info,      (db.relationship | db.instance)+    }}div {  db.relationship.role.attribute = attribute role { text }  db.relationship.type.attribute =        ## Identifies the type of the relationship    attribute type { xsd:NMTOKEN }  db.relationship.attlist =    db.relationship.role.attribute?    & db.relationship.type.attribute?    & db.linkend.attribute?    & db.common.attributes  db.relationship =        ## A relationship associates one or more resources    element relationship {      db.relationship.attlist, db.association, db.instance+    }}div {  db.association.role.attribute = attribute role { text }  db.association.attlist =    db.association.role.attribute?    & db.linkend.attribute?    & db.common.attributes  db.association =        ## Identifies the type of relationship between one or more resources    element association { db.association.attlist, text? }}div {  db.instance.role.attribute = attribute role { text }  db.instance.linking.attribute =        ## Specifies the type of link for this instance    attribute linking { xsd:NMTOKENS }  db.instance.attlist =    db.instance.role.attribute?    & db.instance.linking.attribute?    & db.common.attributes  db.instance =        ## Identifies a resource that is part of a relationship    element instance {      db.instance.attlist, db.linkend.attribute, empty    }}div {  db.transforms.role.attribute = attribute role { text }  db.transforms.attlist =    db.transforms.role.attribute? & db.common.attributes  db.transforms.info = db._info  db.transforms =        ## List of transforms for converting from non-DocBook schemas    [      s:pattern [        name = "Root must have version"        "\x{a}" ~        "               "        s:rule [          context = "/db:transforms"          "\x{a}" ~          "                  "          s:assert [            test = "@version"            "If this element is the root element, it must have a version attribute."          ]          "\x{a}" ~          "               "        ]        "\x{a}" ~        "            "      ]    ]    element transforms {      db.transforms.attlist, db.transforms.info, db.transform+    }}div {  db.transform.role.attribute = attribute role { text }  db.transform.grammar.attribute = db.grammar.attribute  db.transform.fileref.attribute =        ## Indentifies the location of the data by URI    attribute fileref { xsd:anyURI }  db.transform.name.attribute =        ## Identifies the location of the data by reference    attribute name { xsd:NMTOKEN }  db.transform.attlist =    db.transform.role.attribute?    & (db.transform.grammar.attribute | db.transform.name.attribute)    & db.transform.fileref.attribute    & db.common.attributes  db.transform =        ## Identifies a transform for converting from a non-DocBook schema    element transform { db.transform.attlist, empty }}div {  db.description.role.attribute = attribute role { text }  db.description.attlist =    db.description.role.attribute? & db.common.attributes  db.description =        ## A description of a resource or resources    element description { db.description.attlist, db._text }}
 |