assembly51b7.rnc 305 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035
  1. namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
  2. namespace ctrl = "http://nwalsh.com/xmlns/schema-control/"
  3. default namespace db = "http://docbook.org/ns/docbook"
  4. namespace html = "http://www.w3.org/1999/xhtml"
  5. namespace mml = "http://www.w3.org/1998/Math/MathML"
  6. namespace rng = "http://relaxng.org/ns/structure/1.0"
  7. namespace s = "http://purl.oclc.org/dsdl/schematron"
  8. namespace svg = "http://www.w3.org/2000/svg"
  9. namespace xlink = "http://www.w3.org/1999/xlink"
  10. # This file is part of DocBook Assembly V5.1b7
  11. #
  12. # Copyright 2008-2011 HaL Computer Systems, Inc.,
  13. # O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
  14. # Corporation, Norman Walsh, Sun Microsystems, Inc., and the
  15. # Organization for the Advancement of Structured Information
  16. # Standards (OASIS).
  17. #
  18. # Permission to use, copy, modify and distribute the DocBook schema
  19. # and its accompanying documentation for any purpose and without fee
  20. # is hereby granted in perpetuity, provided that the above copyright
  21. # notice and this paragraph appear in all copies. The copyright
  22. # holders make no representation about the suitability of the schema
  23. # for any purpose. It is provided "as is" without expressed or implied
  24. # warranty.
  25. #
  26. # If you modify the DocBook schema in any way, label your schema as a
  27. # variant of DocBook. See the reference documentation
  28. # (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook)
  29. # for more information.
  30. #
  31. # Please direct all questions, bug reports, or suggestions for changes
  32. # to the docbook@lists.oasis-open.org mailing list. For more
  33. # information, see http://www.oasis-open.org/docbook/.
  34. #
  35. # ======================================================================
  36. div {
  37. db._any.attribute =
  38. ## Any attribute, including any attribute in any namespace.
  39. attribute * { text }
  40. db._any =
  41. ## Any element from almost any namespace
  42. element * - (db:* | html:*) {
  43. (db._any.attribute | text | db._any)*
  44. }
  45. }
  46. db.arch.attribute =
  47. ## Designates the computer or chip architecture to which the element applies
  48. attribute arch { text }
  49. db.audience.attribute =
  50. ## Designates the intended audience to which the element applies, for example, system administrators, programmers, or new users.
  51. attribute audience { text }
  52. db.condition.attribute =
  53. ## provides a standard place for application-specific effectivity
  54. attribute condition { text }
  55. db.conformance.attribute =
  56. ## Indicates standards conformance characteristics of the element
  57. attribute conformance { text }
  58. db.os.attribute =
  59. ## Indicates the operating system to which the element is applicable
  60. attribute os { text }
  61. db.revision.attribute =
  62. ## Indicates the editorial revision to which the element belongs
  63. attribute revision { text }
  64. db.security.attribute =
  65. ## Indicates something about the security level associated with the element to which it applies
  66. attribute security { text }
  67. db.userlevel.attribute =
  68. ## Indicates the level of user experience for which the element applies
  69. attribute userlevel { text }
  70. db.vendor.attribute =
  71. ## Indicates the computer vendor to which the element applies.
  72. attribute vendor { text }
  73. db.wordsize.attribute =
  74. ## Indicates the word size (width in bits) of the computer architecture to which the element applies
  75. attribute wordsize { text }
  76. db.effectivity.attributes =
  77. db.arch.attribute?
  78. & db.audience.attribute?
  79. & db.condition.attribute?
  80. & db.conformance.attribute?
  81. & db.os.attribute?
  82. & db.revision.attribute?
  83. & db.security.attribute?
  84. & db.userlevel.attribute?
  85. & db.vendor.attribute?
  86. & db.wordsize.attribute?
  87. db.endterm.attribute =
  88. ## Points to the element whose content is to be used as the text of the link
  89. attribute endterm { xsd:IDREF }
  90. db.linkend.attribute =
  91. ## Points to an internal link target by identifying the value of its xml:id attribute
  92. attribute linkend { xsd:IDREF }
  93. db.linkends.attribute =
  94. ## Points to one or more internal link targets by identifying the value of their xml:id attributes
  95. attribute linkends { xsd:IDREFS }
  96. db.xlink.href.attribute =
  97. ## Identifies a link target with a URI
  98. attribute xlink:href { xsd:anyURI }
  99. db.xlink.simple.type.attribute =
  100. ## Identifies the XLink link type
  101. attribute xlink:type {
  102. ## An XLink simple link type
  103. "simple"
  104. }
  105. db.xlink.role.attribute =
  106. ## Identifies the XLink role of the link
  107. attribute xlink:role { xsd:anyURI }
  108. db.xlink.arcrole.attribute =
  109. ## Identifies the XLink arcrole of the link
  110. attribute xlink:arcrole { xsd:anyURI }
  111. db.xlink.title.attribute =
  112. ## Identifies the XLink title of the link
  113. attribute xlink:title { text }
  114. db.xlink.show.enumeration =
  115. ## An application traversing to the ending resource should load it in a new window, frame, pane, or other relevant presentation context.
  116. "new"
  117. |
  118. ## 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.
  119. "replace"
  120. |
  121. ## An application traversing to the ending resource should load its presentation in place of the presentation of the starting resource.
  122. "embed"
  123. |
  124. ## 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.
  125. "other"
  126. |
  127. ## 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.
  128. "none"
  129. db.xlink.show.attribute =
  130. ## Identifies the XLink show behavior of the link
  131. attribute xlink:show { db.xlink.show.enumeration }
  132. db.xlink.actuate.enumeration =
  133. ## An application should traverse to the ending resource immediately on loading the starting resource.
  134. "onLoad"
  135. |
  136. ## An application should traverse from the starting resource to the ending resource only on a post-loading event triggered for the purpose of traversal.
  137. "onRequest"
  138. |
  139. ## 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.
  140. "other"
  141. |
  142. ## 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.
  143. "none"
  144. db.xlink.actuate.attribute =
  145. ## Identifies the XLink actuate behavior of the link
  146. attribute xlink:actuate { db.xlink.actuate.enumeration }
  147. db.xlink.simple.link.attributes =
  148. db.xlink.simple.type.attribute?
  149. & db.xlink.href.attribute?
  150. & db.xlink.role.attribute?
  151. & db.xlink.arcrole.attribute?
  152. & db.xlink.title.attribute?
  153. & db.xlink.show.attribute?
  154. & db.xlink.actuate.attribute?
  155. db.xlink.attributes =
  156. db.xlink.simple.link.attributes
  157. | (db.xlink.extended.link.attributes
  158. | db.xlink.locator.link.attributes
  159. | db.xlink.arc.link.attributes
  160. | db.xlink.resource.link.attributes
  161. | db.xlink.title.link.attributes)
  162. db.xml.id.attribute =
  163. ## Identifies the unique ID value of the element
  164. attribute xml:id { xsd:ID }
  165. db.version.attribute =
  166. ## Specifies the DocBook version of the element and its descendants
  167. attribute version { text }
  168. db.xml.lang.attribute =
  169. ## Specifies the natural language of the element and its descendants
  170. attribute xml:lang { text }
  171. db.xml.base.attribute =
  172. ## Specifies the base URI of the element and its descendants
  173. attribute xml:base { xsd:anyURI }
  174. db.remap.attribute =
  175. ## Provides the name or similar semantic identifier assigned to the content in some previous markup scheme
  176. attribute remap { text }
  177. db.xreflabel.attribute =
  178. ## Provides the text that is to be generated for a cross reference to the element
  179. attribute xreflabel { text }
  180. db.xrefstyle.attribute =
  181. ## Specifies a keyword or keywords identifying additional style information
  182. attribute xrefstyle { text }
  183. db.revisionflag.enumeration =
  184. ## The element has been changed.
  185. "changed"
  186. |
  187. ## The element is new (has been added to the document).
  188. "added"
  189. |
  190. ## The element has been deleted.
  191. "deleted"
  192. |
  193. ## Explicitly turns off revision markup for this element.
  194. "off"
  195. db.revisionflag.attribute =
  196. ## Identifies the revision status of the element
  197. attribute revisionflag { db.revisionflag.enumeration }
  198. db.dir.enumeration =
  199. ## Left-to-right text
  200. "ltr"
  201. |
  202. ## Right-to-left text
  203. "rtl"
  204. |
  205. ## Left-to-right override
  206. "lro"
  207. |
  208. ## Right-to-left override
  209. "rlo"
  210. db.dir.attribute =
  211. ## Identifies the direction of text in an element
  212. attribute dir { db.dir.enumeration }
  213. db.common.base.attributes =
  214. db.version.attribute?
  215. & db.xml.lang.attribute?
  216. & db.xml.base.attribute?
  217. & db.remap.attribute?
  218. & db.xreflabel.attribute?
  219. & db.revisionflag.attribute?
  220. & db.dir.attribute?
  221. & db.effectivity.attributes
  222. db.common.attributes =
  223. db.xml.id.attribute?
  224. & db.common.base.attributes
  225. & db.annotations.attribute?
  226. db.common.idreq.attributes =
  227. db.xml.id.attribute
  228. & db.common.base.attributes
  229. & db.annotations.attribute?
  230. db.common.linking.attributes =
  231. (db.linkend.attribute | db.xlink.attributes)?
  232. db.common.req.linking.attributes =
  233. db.linkend.attribute | db.xlink.attributes
  234. db.common.data.attributes =
  235. ## Specifies the format of the data
  236. attribute format { text }?,
  237. (
  238. ## Indentifies the location of the data by URI
  239. attribute fileref { xsd:anyURI }
  240. |
  241. ## Identifies the location of the data by external identifier (entity name)
  242. attribute entityref { xsd:ENTITY })
  243. db.verbatim.continuation.enumeration =
  244. ## Line numbering continues from the immediately preceding element with the same name.
  245. "continues"
  246. |
  247. ## Line numbering restarts (begins at 1, usually).
  248. "restarts"
  249. db.verbatim.continuation.attribute =
  250. ## Determines whether line numbering continues from the previous element or restarts.
  251. attribute continuation { db.verbatim.continuation.enumeration }
  252. db.verbatim.linenumbering.enumeration =
  253. ## Lines are numbered.
  254. "numbered"
  255. |
  256. ## Lines are not numbered.
  257. "unnumbered"
  258. db.verbatim.linenumbering.attribute =
  259. ## Determines whether lines are numbered.
  260. attribute linenumbering { db.verbatim.linenumbering.enumeration }
  261. db.verbatim.startinglinenumber.attribute =
  262. ## Specifies the initial line number.
  263. attribute startinglinenumber { xsd:integer }
  264. db.verbatim.language.attribute =
  265. ## Identifies the language (i.e. programming language) of the verbatim content.
  266. attribute language { text }
  267. db.verbatim.xml.space.attribute =
  268. ## 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.
  269. attribute xml:space {
  270. ## Whitespace must be preserved.
  271. "preserve"
  272. }
  273. db.verbatim.common.attributes =
  274. db.verbatim.continuation.attribute?
  275. & db.verbatim.linenumbering.attribute?
  276. & db.verbatim.startinglinenumber.attribute?
  277. & db.verbatim.xml.space.attribute?
  278. db.verbatim.attributes =
  279. db.verbatim.common.attributes & db.verbatim.language.attribute?
  280. db.label.attribute =
  281. ## Specifies an identifying string for presentation purposes
  282. attribute label { text }
  283. db.width.characters.attribute =
  284. ## Specifies the width (in characters) of the element
  285. attribute width { xsd:nonNegativeInteger }
  286. db.spacing.enumeration =
  287. ## The spacing should be "compact".
  288. "compact"
  289. |
  290. ## The spacing should be "normal".
  291. "normal"
  292. db.spacing.attribute =
  293. ## Specifies (a hint about) the spacing of the content
  294. attribute spacing { db.spacing.enumeration }
  295. db.pgwide.enumeration =
  296. ## The element should be rendered in the current text flow (with the flow column width).
  297. "0"
  298. |
  299. ## The element should be rendered across the full text page.
  300. "1"
  301. db.pgwide.attribute =
  302. ## Indicates if the element is rendered across the column or the page
  303. attribute pgwide { db.pgwide.enumeration }
  304. db.language.attribute =
  305. ## Identifies the language (i.e. programming language) of the content.
  306. attribute language { text }
  307. db.performance.enumeration =
  308. ## The content describes an optional step or steps.
  309. "optional"
  310. |
  311. ## The content describes a required step or steps.
  312. "required"
  313. db.performance.attribute =
  314. ## Specifies if the content is required or optional.
  315. attribute performance { db.performance.enumeration }
  316. db.floatstyle.attribute =
  317. ## Specifies style information to be used when rendering the float
  318. attribute floatstyle { text }
  319. db.width.attribute =
  320. ## Specifies the width of the element
  321. attribute width { text }
  322. db.depth.attribute =
  323. ## Specifies the depth of the element
  324. attribute depth { text }
  325. db.contentwidth.attribute =
  326. ## Specifies the width of the content rectangle
  327. attribute contentwidth { text }
  328. db.contentdepth.attribute =
  329. ## Specifies the depth of the content rectangle
  330. attribute contentdepth { text }
  331. db.scalefit.enumeration =
  332. ## False (do not scale-to-fit; anamorphic scaling may occur)
  333. "0"
  334. |
  335. ## True (scale-to-fit; anamorphic scaling is forbidden)
  336. "1"
  337. db.scale.attribute =
  338. ## Specifies the scaling factor
  339. attribute scale { xsd:positiveInteger }
  340. db.classid.attribute =
  341. ## Specifies a classid for a media object player
  342. attribute classid { text }
  343. db.autoplay.attribute =
  344. ## Specifies the autoplay setting for a media object player
  345. attribute autoplay { text }
  346. db.halign.enumeration =
  347. ## Centered horizontally
  348. "center"
  349. |
  350. ## Aligned horizontally on the specified character
  351. "char"
  352. |
  353. ## Fully justified (left and right margins or edges)
  354. "justify"
  355. |
  356. ## Left aligned
  357. "left"
  358. |
  359. ## Right aligned
  360. "right"
  361. db.valign.enumeration =
  362. ## Aligned on the bottom of the region
  363. "bottom"
  364. |
  365. ## Centered vertically
  366. "middle"
  367. |
  368. ## Aligned on the top of the region
  369. "top"
  370. db.biblio.class.enumeration =
  371. ## A digital object identifier.
  372. "doi"
  373. |
  374. ## An international standard book number.
  375. "isbn"
  376. |
  377. ## An international standard technical report number (ISO 10444).
  378. "isrn"
  379. |
  380. ## An international standard serial number.
  381. "issn"
  382. |
  383. ## An international standard text code.
  384. "istc"
  385. |
  386. ## A Library of Congress reference number.
  387. "libraryofcongress"
  388. |
  389. ## A publication number (an internal number or possibly organizational standard).
  390. "pubsnumber"
  391. |
  392. ## A Uniform Resource Identifier
  393. "uri"
  394. db.biblio.class-enum.attribute =
  395. ## Identifies the kind of bibliographic identifier
  396. attribute class { db.biblio.class.enumeration }?
  397. db.biblio.class-other.attribute =
  398. ## Identifies the nature of the non-standard bibliographic identifier
  399. attribute otherclass { xsd:NMTOKEN }
  400. db.biblio.class-other.attributes =
  401. ## Identifies the kind of bibliographic identifier
  402. attribute class {
  403. ## Indicates that the identifier is some 'other' kind.
  404. "other"
  405. }
  406. & db.biblio.class-other.attribute
  407. db.biblio.class.attribute =
  408. db.biblio.class-enum.attribute | db.biblio.class-other.attributes
  409. db.ubiq.inlines =
  410. (db.inlinemediaobject
  411. | db.remark
  412. | db.link.inlines
  413. | db.alt
  414. | db.trademark
  415. | # below, effectively the publishing inlines (as of 5.0)
  416. db.abbrev
  417. | db.acronym
  418. | db.date
  419. | db._emphasis
  420. | db.footnote
  421. | db.footnoteref
  422. | db._foreignphrase
  423. | db._phrase
  424. | db._quote
  425. | db.subscript
  426. | db.superscript
  427. | db.wordasword)
  428. | db.annotation
  429. | (db._firstterm | db._glossterm)
  430. | db.indexterm
  431. | db.coref
  432. db._text = (text | db.ubiq.inlines | db._phrase | db.replaceable)*
  433. db._title = db.title? & db.titleabbrev? & db.subtitle?
  434. db._title.req = db.title & db.titleabbrev? & db.subtitle?
  435. db._title.only = db.title? & db.titleabbrev?
  436. db._title.onlyreq = db.title & db.titleabbrev?
  437. db._info = (db._title, db.titleforbidden.info?) | db.info?
  438. db._info.title.req =
  439. (db._title.req, db.titleforbidden.info?) | db.titlereq.info
  440. db._info.title.only =
  441. (db._title.only, db.titleforbidden.info?) | db.titleonly.info
  442. db._info.title.onlyreq =
  443. (db._title.onlyreq, db.titleforbidden.info?) | db.titleonlyreq.info
  444. db._info.title.forbidden = db.titleforbidden.info?
  445. db.all.inlines =
  446. text | db.ubiq.inlines | db.general.inlines | db.domain.inlines
  447. db.general.inlines =
  448. db.publishing.inlines
  449. | db.product.inlines
  450. | db.bibliography.inlines
  451. | db.graphic.inlines
  452. | db.indexing.inlines
  453. | db.link.inlines
  454. db.domain.inlines =
  455. db.technical.inlines
  456. | db.math.inlines
  457. | db.markup.inlines
  458. | db.gui.inlines
  459. | db.keyboard.inlines
  460. | db.os.inlines
  461. | db.programming.inlines
  462. | db.error.inlines
  463. db.technical.inlines =
  464. (db.replaceable | db.package | db.parameter)
  465. | db.termdef
  466. | db.nonterminal
  467. | (db.systemitem | db.option | db.optional | db.property)
  468. db.product.inlines =
  469. db.trademark
  470. | (db.productnumber
  471. | db.productname
  472. | db.database
  473. | db.application
  474. | db.hardware)
  475. db.bibliography.inlines =
  476. db.citation
  477. | db.citerefentry
  478. | db.citetitle
  479. | db.citebiblioid
  480. | db.author
  481. | db.person
  482. | db.personname
  483. | db.org
  484. | db.orgname
  485. | db.editor
  486. | db.jobtitle
  487. db.publishing.inlines =
  488. (db.abbrev
  489. | db.acronym
  490. | db.date
  491. | db.emphasis
  492. | db.footnote
  493. | db.footnoteref
  494. | db.foreignphrase
  495. | db.phrase
  496. | db.quote
  497. | db.subscript
  498. | db.superscript
  499. | db.wordasword)
  500. | db.glossary.inlines
  501. | db.coref
  502. db.graphic.inlines = db.inlinemediaobject
  503. db.indexing.inlines = notAllowed | db.indexterm
  504. db.link.inlines =
  505. (db.xref | db.link | db.olink | db.anchor) | db.biblioref
  506. db.nopara.blocks =
  507. (db.list.blocks
  508. | db.formal.blocks
  509. | db.informal.blocks
  510. | db.publishing.blocks
  511. | db.graphic.blocks
  512. | db.technical.blocks
  513. | db.verbatim.blocks
  514. | db.bridgehead
  515. | db.remark
  516. | db.revhistory)
  517. | db.indexterm
  518. | db.synopsis.blocks
  519. | db.admonition.blocks
  520. db.para.blocks = db.anchor | db.para | db.formalpara | db.simpara
  521. db.all.blocks = (db.nopara.blocks | db.para.blocks) | db.annotation
  522. db.formal.blocks = (db.example | db.figure | db.table) | db.equation
  523. db.informal.blocks =
  524. (db.informalexample | db.informalfigure | db.informaltable)
  525. | db.informalequation
  526. db.publishing.blocks =
  527. db.sidebar | db.blockquote | db.address | db.epigraph
  528. db.graphic.blocks = db.mediaobject | db.screenshot
  529. db.technical.blocks =
  530. db.procedure
  531. | db.task
  532. | (db.productionset | db.constraintdef)
  533. | db.msgset
  534. db.list.blocks =
  535. (db.itemizedlist
  536. | db.orderedlist
  537. | db.procedure
  538. | db.simplelist
  539. | db.variablelist
  540. | db.segmentedlist)
  541. | db.glosslist
  542. | db.bibliolist
  543. | db.calloutlist
  544. | db.qandaset
  545. db.verbatim.blocks =
  546. (db.screen | db.literallayout)
  547. | (db.programlistingco | db.screenco)
  548. | (db.programlisting | db.synopsis)
  549. db.info.extension = db._any
  550. db.info.elements =
  551. (db.abstract
  552. | db.address
  553. | db.artpagenums
  554. | db.author
  555. | db.authorgroup
  556. | db.authorinitials
  557. | db.bibliocoverage
  558. | db.biblioid
  559. | db.bibliosource
  560. | db.collab
  561. | db.confgroup
  562. | db.contractsponsor
  563. | db.contractnum
  564. | db.copyright
  565. | db.cover
  566. | db.date
  567. | db.edition
  568. | db.editor
  569. | db.issuenum
  570. | db.keywordset
  571. | db.legalnotice
  572. | db.mediaobject
  573. | db.org
  574. | db.orgname
  575. | db.othercredit
  576. | db.pagenums
  577. | db.printhistory
  578. | db.pubdate
  579. | db.publisher
  580. | db.publishername
  581. | db.releaseinfo
  582. | db.revhistory
  583. | db.seriesvolnums
  584. | db.subjectset
  585. | db.volumenum
  586. | db.info.extension)
  587. | db.annotation
  588. | db.extendedlink
  589. | (db.bibliomisc | db.bibliomset | db.bibliorelation | db.biblioset)
  590. | db.itermset
  591. | (db.productname | db.productnumber)
  592. db.bibliographic.elements =
  593. db.info.elements
  594. | db.publishing.inlines
  595. | db.citerefentry
  596. | db.citetitle
  597. | db.citebiblioid
  598. | db.person
  599. | db.personblurb
  600. | db.personname
  601. | db.subtitle
  602. | db.title
  603. | db.titleabbrev
  604. div {
  605. db.title.role.attribute = attribute role { text }
  606. db.title.attlist =
  607. db.title.role.attribute?
  608. & db.common.attributes
  609. & db.common.linking.attributes
  610. db.title =
  611. ## The text of the title of a section of a document or of a formal block-level element
  612. element title { db.title.attlist, db.all.inlines* }
  613. }
  614. div {
  615. db.titleabbrev.role.attribute = attribute role { text }
  616. db.titleabbrev.attlist =
  617. db.titleabbrev.role.attribute?
  618. & db.common.attributes
  619. & db.common.linking.attributes
  620. db.titleabbrev =
  621. ## The abbreviation of a title
  622. element titleabbrev { db.titleabbrev.attlist, db.all.inlines* }
  623. }
  624. div {
  625. db.subtitle.role.attribute = attribute role { text }
  626. db.subtitle.attlist =
  627. db.subtitle.role.attribute?
  628. & db.common.attributes
  629. & db.common.linking.attributes
  630. db.subtitle =
  631. ## The subtitle of a document
  632. element subtitle { db.subtitle.attlist, db.all.inlines* }
  633. }
  634. div {
  635. db.info.role.attribute = attribute role { text }
  636. db.info.attlist = db.info.role.attribute? & db.common.attributes
  637. db.info =
  638. ## A wrapper for information about a component or other block
  639. element info { db.info.attlist, (db._title & db.info.elements*) }
  640. }
  641. div {
  642. db.titlereq.info.role.attribute = attribute role { text }
  643. db.titlereq.info.attlist =
  644. db.titlereq.info.role.attribute? & db.common.attributes
  645. db.titlereq.info =
  646. ## A wrapper for information about a component or other block with a required title
  647. element info {
  648. db.titlereq.info.attlist, (db._title.req & db.info.elements*)
  649. }
  650. }
  651. div {
  652. db.titleonly.info.role.attribute = attribute role { text }
  653. db.titleonly.info.attlist =
  654. db.titleonly.info.role.attribute? & db.common.attributes
  655. db.titleonly.info =
  656. ## A wrapper for information about a component or other block with only a title
  657. element info {
  658. db.titleonly.info.attlist, (db._title.only & db.info.elements*)
  659. }
  660. }
  661. div {
  662. db.titleonlyreq.info.role.attribute = attribute role { text }
  663. db.titleonlyreq.info.attlist =
  664. db.titleonlyreq.info.role.attribute? & db.common.attributes
  665. db.titleonlyreq.info =
  666. ## A wrapper for information about a component or other block with only a required title
  667. element info {
  668. db.titleonlyreq.info.attlist,
  669. (db._title.onlyreq & db.info.elements*)
  670. }
  671. }
  672. div {
  673. db.titleforbidden.info.role.attribute = attribute role { text }
  674. db.titleforbidden.info.attlist =
  675. db.titleforbidden.info.role.attribute? & db.common.attributes
  676. db.titleforbidden.info =
  677. ## A wrapper for information about a component or other block without a title
  678. element info { db.titleforbidden.info.attlist, db.info.elements* }
  679. }
  680. div {
  681. db.subjectset.role.attribute = attribute role { text }
  682. db.subjectset.scheme.attribute =
  683. ## Identifies the controlled vocabulary used by this set's terms
  684. attribute scheme { xsd:NMTOKEN }
  685. db.subjectset.attlist =
  686. db.subjectset.role.attribute?
  687. & db.common.attributes
  688. & db.common.linking.attributes
  689. & db.subjectset.scheme.attribute?
  690. db.subjectset =
  691. ## A set of terms describing the subject matter of a document
  692. element subjectset { db.subjectset.attlist, db.subject+ }
  693. }
  694. div {
  695. db.subject.role.attribute = attribute role { text }
  696. db.subject.weight.attribute =
  697. ## Specifies a ranking for this subject relative to other subjects in the same set
  698. attribute weight { text }
  699. db.subject.attlist =
  700. db.subject.role.attribute?
  701. & db.common.attributes
  702. & db.common.linking.attributes
  703. & db.subject.weight.attribute?
  704. db.subject =
  705. ## One of a group of terms describing the subject matter of a document
  706. element subject { db.subject.attlist, db.subjectterm+ }
  707. }
  708. div {
  709. db.subjectterm.role.attribute = attribute role { text }
  710. db.subjectterm.attlist =
  711. db.subjectterm.role.attribute?
  712. & db.common.attributes
  713. & db.common.linking.attributes
  714. db.subjectterm =
  715. ## A term in a group of terms describing the subject matter of a document
  716. element subjectterm { db.subjectterm.attlist, text }
  717. }
  718. div {
  719. db.keywordset.role.attribute = attribute role { text }
  720. db.keywordset.attlist =
  721. db.keywordset.role.attribute?
  722. & db.common.attributes
  723. & db.common.linking.attributes
  724. db.keywordset =
  725. ## A set of keywords describing the content of a document
  726. element keywordset { db.keywordset.attlist, db.keyword+ }
  727. }
  728. div {
  729. db.keyword.role.attribute = attribute role { text }
  730. db.keyword.attlist =
  731. db.keyword.role.attribute?
  732. & db.common.attributes
  733. & db.common.linking.attributes
  734. db.keyword =
  735. ## One of a set of keywords describing the content of a document
  736. element keyword { db.keyword.attlist, text }
  737. }
  738. db.table.choice = notAllowed | db.cals.table | db.html.table
  739. db.informaltable.choice =
  740. notAllowed | db.cals.informaltable | db.html.informaltable
  741. db.table = db.table.choice
  742. db.informaltable = db.informaltable.choice
  743. div {
  744. db.procedure.role.attribute = attribute role { text }
  745. db.procedure.attlist =
  746. db.procedure.role.attribute?
  747. & db.common.attributes
  748. & db.common.linking.attributes
  749. db.procedure.info = db._info.title.only
  750. db.procedure =
  751. ## A list of operations to be performed in a well-defined sequence
  752. element procedure {
  753. db.procedure.attlist, db.procedure.info, db.all.blocks*, db.step+
  754. }
  755. }
  756. div {
  757. db.step.role.attribute = attribute role { text }
  758. db.step.attlist =
  759. db.step.role.attribute?
  760. & db.common.attributes
  761. & db.common.linking.attributes
  762. & db.performance.attribute?
  763. db.step.info = db._info.title.only
  764. # This content model is blocks*, step|stepalternatives, blocks* but
  765. # expressed this way it avoids UPA issues in XSD and DTD versions
  766. db.step =
  767. ## A unit of action in a procedure
  768. element step {
  769. db.step.attlist,
  770. db.step.info,
  771. ((db.all.blocks+,
  772. ((db.substeps | db.stepalternatives), db.all.blocks*)?)
  773. | ((db.substeps | db.stepalternatives), db.all.blocks*))
  774. }
  775. }
  776. div {
  777. db.stepalternatives.role.attribute = attribute role { text }
  778. db.stepalternatives.attlist =
  779. db.stepalternatives.role.attribute?
  780. & db.common.attributes
  781. & db.common.linking.attributes
  782. & db.performance.attribute?
  783. db.stepalternatives.info = db._info.title.forbidden
  784. db.stepalternatives =
  785. ## Alternative steps in a procedure
  786. element stepalternatives {
  787. db.stepalternatives.attlist, db.stepalternatives.info, db.step+
  788. }
  789. }
  790. div {
  791. db.substeps.role.attribute = attribute role { text }
  792. db.substeps.attlist =
  793. db.substeps.role.attribute?
  794. & db.common.attributes
  795. & db.common.linking.attributes
  796. & db.performance.attribute?
  797. db.substeps =
  798. ## A wrapper for steps that occur within steps in a procedure
  799. element substeps { db.substeps.attlist, db.step+ }
  800. }
  801. div {
  802. db.sidebar.floatstyle.attribute = db.floatstyle.attribute
  803. db.sidebar.role.attribute = attribute role { text }
  804. db.sidebar.attlist =
  805. db.sidebar.role.attribute?
  806. & db.sidebar.floatstyle.attribute?
  807. & db.common.attributes
  808. & db.common.linking.attributes
  809. db.sidebar.info = db._info
  810. db.sidebar =
  811. ## A portion of a document that is isolated from the main narrative flow
  812. [
  813. s:pattern [
  814. name = "Element exclusion"
  815. "\x{a}" ~
  816. " "
  817. s:rule [
  818. context = "db:sidebar"
  819. "\x{a}" ~
  820. " "
  821. s:assert [
  822. test = "not(.//db:sidebar)"
  823. "sidebar must not occur among the children or descendants of sidebar"
  824. ]
  825. "\x{a}" ~
  826. " "
  827. ]
  828. "\x{a}" ~
  829. " "
  830. ]
  831. ]
  832. element sidebar {
  833. db.sidebar.attlist, db.sidebar.info, db.all.blocks+
  834. }
  835. }
  836. div {
  837. db.abstract.role.attribute = attribute role { text }
  838. db.abstract.attlist =
  839. db.abstract.role.attribute?
  840. & db.common.attributes
  841. & db.common.linking.attributes
  842. db.abstract.info = db._info.title.only
  843. db.abstract =
  844. ## A summary
  845. element abstract {
  846. db.abstract.attlist, db.abstract.info, db.para.blocks+
  847. }
  848. }
  849. div {
  850. db.personblurb.role.attribute = attribute role { text }
  851. db.personblurb.attlist =
  852. db.personblurb.role.attribute?
  853. & db.common.attributes
  854. & db.common.linking.attributes
  855. db.personblurb.info = db._info.title.only
  856. db.personblurb =
  857. ## A short description or note about a person
  858. element personblurb {
  859. db.personblurb.attlist, db.personblurb.info, db.para.blocks+
  860. }
  861. }
  862. div {
  863. db.blockquote.role.attribute = attribute role { text }
  864. db.blockquote.attlist =
  865. db.blockquote.role.attribute?
  866. & db.common.attributes
  867. & db.common.linking.attributes
  868. db.blockquote.info = db._info.title.only
  869. db.blockquote =
  870. ## A quotation set off from the main text
  871. element blockquote {
  872. db.blockquote.attlist,
  873. db.blockquote.info,
  874. db.attribution?,
  875. db.all.blocks+
  876. }
  877. }
  878. div {
  879. db.attribution.role.attribute = attribute role { text }
  880. db.attribution.attlist =
  881. db.attribution.role.attribute?
  882. & db.common.attributes
  883. & db.common.linking.attributes
  884. db.attribution =
  885. ## The source of a block quote or epigraph
  886. element attribution {
  887. db.attribution.attlist,
  888. (db._text
  889. | db.person
  890. | db.personname
  891. | db.citetitle
  892. | db.citation)*
  893. }
  894. }
  895. div {
  896. db.bridgehead.renderas.enumeration =
  897. ## Render as a first-level section
  898. "sect1"
  899. |
  900. ## Render as a second-level section
  901. "sect2"
  902. |
  903. ## Render as a third-level section
  904. "sect3"
  905. |
  906. ## Render as a fourth-level section
  907. "sect4"
  908. |
  909. ## Render as a fifth-level section
  910. "sect5"
  911. db.bridgehead.renderas-enum.attribute =
  912. ## Indicates how the bridge head should be rendered
  913. attribute renderas { db.bridgehead.renderas.enumeration }?
  914. db.bridgehead.renderas-other.attribute =
  915. ## Identifies the nature of the non-standard rendering
  916. attribute otherrenderas { xsd:NMTOKEN }
  917. db.bridgehead.renderas-other.attributes =
  918. ## Indicates how the bridge head should be rendered
  919. attribute renderas {
  920. ## Identifies a non-standard rendering
  921. "other"
  922. }
  923. & db.bridgehead.renderas-other.attribute
  924. db.bridgehead.renderas.attribute =
  925. db.bridgehead.renderas-enum.attribute
  926. | db.bridgehead.renderas-other.attributes
  927. db.bridgehead.role.attribute = attribute role { text }
  928. db.bridgehead.attlist =
  929. db.bridgehead.role.attribute?
  930. & db.common.attributes
  931. & db.common.linking.attributes
  932. & db.bridgehead.renderas.attribute?
  933. db.bridgehead =
  934. ## A free-floating heading
  935. element bridgehead { db.bridgehead.attlist, db.all.inlines* }
  936. }
  937. div {
  938. db.remark.role.attribute = attribute role { text }
  939. db.remark.attlist =
  940. db.remark.role.attribute?
  941. & db.common.attributes
  942. & db.common.linking.attributes
  943. db.remark =
  944. ## A remark (or comment) intended for presentation in a draft manuscript
  945. element remark { db.remark.attlist, db.all.inlines* }
  946. }
  947. div {
  948. db.epigraph.role.attribute = attribute role { text }
  949. db.epigraph.attlist =
  950. db.epigraph.role.attribute?
  951. & db.common.attributes
  952. & db.common.linking.attributes
  953. db.epigraph.info = db._info.title.forbidden
  954. db.epigraph =
  955. ## A short inscription at the beginning of a document or component
  956. element epigraph {
  957. db.epigraph.attlist,
  958. db.epigraph.info,
  959. db.attribution?,
  960. (db.para.blocks | db.literallayout)+
  961. }
  962. }
  963. div {
  964. db.footnote.role.attribute = attribute role { text }
  965. db.footnote.label.attribute =
  966. ## Identifies the desired footnote mark
  967. attribute label { xsd:NMTOKEN }
  968. db.footnote.attlist =
  969. db.footnote.role.attribute?
  970. & db.common.attributes
  971. & db.common.linking.attributes
  972. & db.footnote.label.attribute?
  973. db.footnote =
  974. ## A footnote
  975. [
  976. s:pattern [
  977. name = "Element exclusion"
  978. "\x{a}" ~
  979. " "
  980. s:rule [
  981. context = "db:footnote"
  982. "\x{a}" ~
  983. " "
  984. s:assert [
  985. test = "not(.//db:footnote)"
  986. "footnote must not occur among the children or descendants of footnote"
  987. ]
  988. "\x{a}" ~
  989. " "
  990. ]
  991. "\x{a}" ~
  992. " "
  993. ]
  994. s:pattern [
  995. name = "Element exclusion"
  996. "\x{a}" ~
  997. " "
  998. s:rule [
  999. context = "db:footnote"
  1000. "\x{a}" ~
  1001. " "
  1002. s:assert [
  1003. test = "not(.//db:example)"
  1004. "example must not occur among the children or descendants of footnote"
  1005. ]
  1006. "\x{a}" ~
  1007. " "
  1008. ]
  1009. "\x{a}" ~
  1010. " "
  1011. ]
  1012. s:pattern [
  1013. name = "Element exclusion"
  1014. "\x{a}" ~
  1015. " "
  1016. s:rule [
  1017. context = "db:footnote"
  1018. "\x{a}" ~
  1019. " "
  1020. s:assert [
  1021. test = "not(.//db:figure)"
  1022. "figure must not occur among the children or descendants of footnote"
  1023. ]
  1024. "\x{a}" ~
  1025. " "
  1026. ]
  1027. "\x{a}" ~
  1028. " "
  1029. ]
  1030. s:pattern [
  1031. name = "Element exclusion"
  1032. "\x{a}" ~
  1033. " "
  1034. s:rule [
  1035. context = "db:footnote"
  1036. "\x{a}" ~
  1037. " "
  1038. s:assert [
  1039. test = "not(.//db:table)"
  1040. "table must not occur among the children or descendants of footnote"
  1041. ]
  1042. "\x{a}" ~
  1043. " "
  1044. ]
  1045. "\x{a}" ~
  1046. " "
  1047. ]
  1048. s:pattern [
  1049. name = "Element exclusion"
  1050. "\x{a}" ~
  1051. " "
  1052. s:rule [
  1053. context = "db:footnote"
  1054. "\x{a}" ~
  1055. " "
  1056. s:assert [
  1057. test = "not(.//db:equation)"
  1058. "equation must not occur among the children or descendants of footnote"
  1059. ]
  1060. "\x{a}" ~
  1061. " "
  1062. ]
  1063. "\x{a}" ~
  1064. " "
  1065. ]
  1066. s:pattern [
  1067. name = "Element exclusion"
  1068. "\x{a}" ~
  1069. " "
  1070. s:rule [
  1071. context = "db:footnote"
  1072. "\x{a}" ~
  1073. " "
  1074. s:assert [
  1075. test = "not(.//db:sidebar)"
  1076. "sidebar must not occur among the children or descendants of footnote"
  1077. ]
  1078. "\x{a}" ~
  1079. " "
  1080. ]
  1081. "\x{a}" ~
  1082. " "
  1083. ]
  1084. s:pattern [
  1085. name = "Element exclusion"
  1086. "\x{a}" ~
  1087. " "
  1088. s:rule [
  1089. context = "db:footnote"
  1090. "\x{a}" ~
  1091. " "
  1092. s:assert [
  1093. test = "not(.//db:task)"
  1094. "task must not occur among the children or descendants of footnote"
  1095. ]
  1096. "\x{a}" ~
  1097. " "
  1098. ]
  1099. "\x{a}" ~
  1100. " "
  1101. ]
  1102. s:pattern [
  1103. name = "Element exclusion"
  1104. "\x{a}" ~
  1105. " "
  1106. s:rule [
  1107. context = "db:footnote"
  1108. "\x{a}" ~
  1109. " "
  1110. s:assert [
  1111. test = "not(.//db:epigraph)"
  1112. "epigraph must not occur among the children or descendants of footnote"
  1113. ]
  1114. "\x{a}" ~
  1115. " "
  1116. ]
  1117. "\x{a}" ~
  1118. " "
  1119. ]
  1120. s:pattern [
  1121. name = "Element exclusion"
  1122. "\x{a}" ~
  1123. " "
  1124. s:rule [
  1125. context = "db:footnote"
  1126. "\x{a}" ~
  1127. " "
  1128. s:assert [
  1129. test = "not(.//db:caution)"
  1130. "caution must not occur among the children or descendants of footnote"
  1131. ]
  1132. "\x{a}" ~
  1133. " "
  1134. ]
  1135. "\x{a}" ~
  1136. " "
  1137. ]
  1138. s:pattern [
  1139. name = "Element exclusion"
  1140. "\x{a}" ~
  1141. " "
  1142. s:rule [
  1143. context = "db:footnote"
  1144. "\x{a}" ~
  1145. " "
  1146. s:assert [
  1147. test = "not(.//db:important)"
  1148. "important must not occur among the children or descendants of footnote"
  1149. ]
  1150. "\x{a}" ~
  1151. " "
  1152. ]
  1153. "\x{a}" ~
  1154. " "
  1155. ]
  1156. s:pattern [
  1157. name = "Element exclusion"
  1158. "\x{a}" ~
  1159. " "
  1160. s:rule [
  1161. context = "db:footnote"
  1162. "\x{a}" ~
  1163. " "
  1164. s:assert [
  1165. test = "not(.//db:note)"
  1166. "note must not occur among the children or descendants of footnote"
  1167. ]
  1168. "\x{a}" ~
  1169. " "
  1170. ]
  1171. "\x{a}" ~
  1172. " "
  1173. ]
  1174. s:pattern [
  1175. name = "Element exclusion"
  1176. "\x{a}" ~
  1177. " "
  1178. s:rule [
  1179. context = "db:footnote"
  1180. "\x{a}" ~
  1181. " "
  1182. s:assert [
  1183. test = "not(.//db:tip)"
  1184. "tip must not occur among the children or descendants of footnote"
  1185. ]
  1186. "\x{a}" ~
  1187. " "
  1188. ]
  1189. "\x{a}" ~
  1190. " "
  1191. ]
  1192. s:pattern [
  1193. name = "Element exclusion"
  1194. "\x{a}" ~
  1195. " "
  1196. s:rule [
  1197. context = "db:footnote"
  1198. "\x{a}" ~
  1199. " "
  1200. s:assert [
  1201. test = "not(.//db:warning)"
  1202. "warning must not occur among the children or descendants of footnote"
  1203. ]
  1204. "\x{a}" ~
  1205. " "
  1206. ]
  1207. "\x{a}" ~
  1208. " "
  1209. ]
  1210. ]
  1211. element footnote { db.footnote.attlist, db.all.blocks+ }
  1212. }
  1213. div {
  1214. db.formalpara.role.attribute = attribute role { text }
  1215. db.formalpara.attlist =
  1216. db.formalpara.role.attribute?
  1217. & db.common.attributes
  1218. & db.common.linking.attributes
  1219. db.formalpara.info = db._info.title.onlyreq
  1220. db.formalpara =
  1221. ## A paragraph with a title
  1222. element formalpara {
  1223. db.formalpara.attlist,
  1224. db.formalpara.info,
  1225. db.indexing.inlines*,
  1226. db.para
  1227. }
  1228. }
  1229. div {
  1230. db.para.role.attribute = attribute role { text }
  1231. db.para.attlist =
  1232. db.para.role.attribute?
  1233. & db.common.attributes
  1234. & db.common.linking.attributes
  1235. db.para.info = db._info.title.forbidden
  1236. db.para =
  1237. ## A paragraph
  1238. element para {
  1239. db.para.attlist,
  1240. db.para.info,
  1241. (db.all.inlines | db.nopara.blocks)*
  1242. }
  1243. }
  1244. div {
  1245. db.simpara.role.attribute = attribute role { text }
  1246. db.simpara.attlist =
  1247. db.simpara.role.attribute?
  1248. & db.common.attributes
  1249. & db.common.linking.attributes
  1250. db.simpara.info = db._info.title.forbidden
  1251. db.simpara =
  1252. ## A paragraph that contains only text and inline markup, no block elements
  1253. element simpara {
  1254. db.simpara.attlist, db.simpara.info, db.all.inlines*
  1255. }
  1256. }
  1257. div {
  1258. db.itemizedlist.role.attribute = attribute role { text }
  1259. db.itemizedlist.mark.attribute =
  1260. ## Identifies the type of mark to be used on items in this list
  1261. attribute mark { xsd:NMTOKEN }
  1262. db.itemizedlist.attlist =
  1263. db.itemizedlist.role.attribute?
  1264. & db.common.attributes
  1265. & db.common.linking.attributes
  1266. & db.spacing.attribute?
  1267. & db.itemizedlist.mark.attribute?
  1268. db.itemizedlist.info = db._info.title.only
  1269. db.itemizedlist =
  1270. ## A list in which each entry is marked with a bullet or other dingbat
  1271. element itemizedlist {
  1272. db.itemizedlist.attlist,
  1273. db.itemizedlist.info,
  1274. db.all.blocks*,
  1275. db.listitem+
  1276. }
  1277. }
  1278. div {
  1279. db.orderedlist.role.attribute = attribute role { text }
  1280. db.orderedlist.continuation.enumeration =
  1281. ## Specifies that numbering should begin where the preceding list left off
  1282. "continues"
  1283. |
  1284. ## Specifies that numbering should begin again at 1
  1285. "restarts"
  1286. db.orderedlist.continuation.attribute =
  1287. ## Indicates how list numbering should begin relative to the immediately preceding list
  1288. attribute continuation { db.orderedlist.continuation.enumeration }
  1289. db.orderedlist.startingnumber.attribute =
  1290. ## Specifies the initial line number.
  1291. attribute startingnumber { xsd:integer }
  1292. db.orderedlist.inheritnum.enumeration =
  1293. ## Specifies that numbering should ignore list nesting
  1294. "ignore"
  1295. |
  1296. ## Specifies that numbering should inherit from outer-level lists
  1297. "inherit"
  1298. db.orderedlist.inheritnum.attribute =
  1299. ## Indicates whether or not item numbering should be influenced by list nesting
  1300. attribute inheritnum { db.orderedlist.inheritnum.enumeration }
  1301. db.orderedlist.numeration.enumeration =
  1302. ## Specifies Arabic numeration (1, 2, 3, …)
  1303. "arabic"
  1304. |
  1305. ## Specifies upper-case alphabetic numeration (A, B, C, …)
  1306. "upperalpha"
  1307. |
  1308. ## Specifies lower-case alphabetic numeration (a, b, c, …)
  1309. "loweralpha"
  1310. |
  1311. ## Specifies upper-case Roman numeration (I, II, III, …)
  1312. "upperroman"
  1313. |
  1314. ## Specifies lower-case Roman numeration (i, ii, iii …)
  1315. "lowerroman"
  1316. db.orderedlist.numeration.attribute =
  1317. ## Indicates the desired numeration
  1318. attribute numeration { db.orderedlist.numeration.enumeration }
  1319. db.orderedlist.attlist =
  1320. db.orderedlist.role.attribute?
  1321. & db.common.attributes
  1322. & db.common.linking.attributes
  1323. & db.spacing.attribute?
  1324. & (db.orderedlist.continuation.attribute
  1325. | db.orderedlist.startingnumber.attribute)?
  1326. & db.orderedlist.inheritnum.attribute?
  1327. & db.orderedlist.numeration.attribute?
  1328. db.orderedlist.info = db._info.title.only
  1329. db.orderedlist =
  1330. ## A list in which each entry is marked with a sequentially incremented label
  1331. element orderedlist {
  1332. db.orderedlist.attlist,
  1333. db.orderedlist.info,
  1334. db.all.blocks*,
  1335. db.listitem+
  1336. }
  1337. }
  1338. div {
  1339. db.listitem.role.attribute = attribute role { text }
  1340. db.listitem.override.attribute =
  1341. ## Specifies the keyword for the type of mark that should be used on this
  1342. ## item, instead of the mark that would be used by default
  1343. attribute override { xsd:NMTOKEN }
  1344. db.listitem.attlist =
  1345. db.listitem.role.attribute?
  1346. & db.common.attributes
  1347. & db.common.linking.attributes
  1348. & db.listitem.override.attribute?
  1349. db.listitem =
  1350. ## A wrapper for the elements of a list item
  1351. element listitem { db.listitem.attlist, db.all.blocks+ }
  1352. }
  1353. div {
  1354. db.segmentedlist.role.attribute = attribute role { text }
  1355. db.segmentedlist.attlist =
  1356. db.segmentedlist.role.attribute?
  1357. & db.common.attributes
  1358. & db.common.linking.attributes
  1359. db.segmentedlist.info = db._info.title.only
  1360. db.segmentedlist =
  1361. ## A segmented list, a list of sets of elements
  1362. element segmentedlist {
  1363. db.segmentedlist.attlist,
  1364. db.segmentedlist.info,
  1365. db.segtitle+,
  1366. db.seglistitem+
  1367. }
  1368. }
  1369. div {
  1370. db.segtitle.role.attribute = attribute role { text }
  1371. db.segtitle.attlist =
  1372. db.segtitle.role.attribute?
  1373. & db.common.attributes
  1374. & db.common.linking.attributes
  1375. db.segtitle =
  1376. ## The title of an element of a list item in a segmented list
  1377. element segtitle { db.segtitle.attlist, db.all.inlines* }
  1378. }
  1379. div {
  1380. db.seglistitem.role.attribute = attribute role { text }
  1381. db.seglistitem.attlist =
  1382. db.seglistitem.role.attribute?
  1383. & db.common.attributes
  1384. & db.common.linking.attributes
  1385. db.seglistitem =
  1386. ## A list item in a segmented list
  1387. [
  1388. s:pattern [
  1389. name = "Cardinality of segments and titles"
  1390. "\x{a}" ~
  1391. " "
  1392. s:rule [
  1393. context = "db:seglistitem"
  1394. "\x{a}" ~
  1395. " "
  1396. s:assert [
  1397. test = "count(db:seg) = count(../db:segtitle)"
  1398. "The number of seg elements must be the same as the number of segtitle elements in the parent segmentedlist"
  1399. ]
  1400. "\x{a}" ~
  1401. " "
  1402. ]
  1403. "\x{a}" ~
  1404. " "
  1405. ]
  1406. ]
  1407. element seglistitem { db.seglistitem.attlist, db.seg+ }
  1408. }
  1409. div {
  1410. db.seg.role.attribute = attribute role { text }
  1411. db.seg.attlist =
  1412. db.seg.role.attribute?
  1413. & db.common.attributes
  1414. & db.common.linking.attributes
  1415. db.seg =
  1416. ## An element of a list item in a segmented list
  1417. element seg { db.seg.attlist, db.all.inlines* }
  1418. }
  1419. div {
  1420. db.simplelist.role.attribute = attribute role { text }
  1421. db.simplelist.type.enumeration =
  1422. ## A tabular presentation in row-major order.
  1423. "horiz"
  1424. |
  1425. ## A tabular presentation in column-major order.
  1426. "vert"
  1427. |
  1428. ## An inline presentation, usually a comma-delimited list.
  1429. "inline"
  1430. db.simplelist.type.attribute =
  1431. ## Specifies the type of list presentation.
  1432. [ a:defaultValue = "vert" ]
  1433. attribute type { db.simplelist.type.enumeration }
  1434. db.simplelist.columns.attribute =
  1435. ## Specifies the number of columns for horizontal or vertical presentation
  1436. attribute columns { xsd:integer }
  1437. db.simplelist.attlist =
  1438. db.simplelist.role.attribute?
  1439. & db.common.attributes
  1440. & db.common.linking.attributes
  1441. & db.simplelist.type.attribute?
  1442. & db.simplelist.columns.attribute?
  1443. db.simplelist =
  1444. ## An undecorated list of single words or short phrases
  1445. element simplelist { db.simplelist.attlist, db.member+ }
  1446. }
  1447. div {
  1448. db.member.role.attribute = attribute role { text }
  1449. db.member.attlist =
  1450. db.member.role.attribute?
  1451. & db.common.attributes
  1452. & db.common.linking.attributes
  1453. db.member =
  1454. ## An element of a simple list
  1455. element member { db.member.attlist, db.all.inlines* }
  1456. }
  1457. div {
  1458. db.variablelist.role.attribute = attribute role { text }
  1459. db.variablelist.termlength.attribute =
  1460. ## 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
  1461. attribute termlength { text }
  1462. db.variablelist.attlist =
  1463. db.variablelist.role.attribute?
  1464. & db.common.attributes
  1465. & db.common.linking.attributes
  1466. & db.spacing.attribute?
  1467. & db.variablelist.termlength.attribute?
  1468. db.variablelist.info = db._info.title.only
  1469. db.variablelist =
  1470. ## A list in which each entry is composed of a set of one or more terms and an associated description
  1471. element variablelist {
  1472. db.variablelist.attlist,
  1473. db.variablelist.info,
  1474. db.all.blocks*,
  1475. db.varlistentry+
  1476. }
  1477. }
  1478. div {
  1479. db.varlistentry.role.attribute = attribute role { text }
  1480. db.varlistentry.attlist =
  1481. db.varlistentry.role.attribute?
  1482. & db.common.attributes
  1483. & db.common.linking.attributes
  1484. db.varlistentry =
  1485. ## A wrapper for a set of terms and the associated description in a variable list
  1486. element varlistentry {
  1487. db.varlistentry.attlist, db.term+, db.listitem
  1488. }
  1489. }
  1490. div {
  1491. db.term.role.attribute = attribute role { text }
  1492. db.term.attlist =
  1493. db.term.role.attribute?
  1494. & db.common.attributes
  1495. & db.common.linking.attributes
  1496. db.term =
  1497. ## The word or phrase being defined or described in a variable list
  1498. element term { db.term.attlist, db.all.inlines* }
  1499. }
  1500. div {
  1501. db.example.role.attribute = attribute role { text }
  1502. db.example.label.attribute = db.label.attribute
  1503. db.example.width.attribute = db.width.characters.attribute
  1504. db.example.pgwide.attribute = db.pgwide.attribute
  1505. db.example.floatstyle.attribute = db.floatstyle.attribute
  1506. db.example.attlist =
  1507. db.example.role.attribute?
  1508. & db.common.attributes
  1509. & db.common.linking.attributes
  1510. & db.example.label.attribute?
  1511. & db.example.floatstyle.attribute?
  1512. & (db.example.width.attribute | db.example.pgwide.attribute)?
  1513. db.example.info = db._info.title.onlyreq
  1514. db.example =
  1515. ## A formal example, with a title
  1516. [
  1517. s:pattern [
  1518. name = "Element exclusion"
  1519. "\x{a}" ~
  1520. " "
  1521. s:rule [
  1522. context = "db:example"
  1523. "\x{a}" ~
  1524. " "
  1525. s:assert [
  1526. test = "not(.//db:example)"
  1527. "example must not occur among the children or descendants of example"
  1528. ]
  1529. "\x{a}" ~
  1530. " "
  1531. ]
  1532. "\x{a}" ~
  1533. " "
  1534. ]
  1535. s:pattern [
  1536. name = "Element exclusion"
  1537. "\x{a}" ~
  1538. " "
  1539. s:rule [
  1540. context = "db:example"
  1541. "\x{a}" ~
  1542. " "
  1543. s:assert [
  1544. test = "not(.//db:figure)"
  1545. "figure must not occur among the children or descendants of example"
  1546. ]
  1547. "\x{a}" ~
  1548. " "
  1549. ]
  1550. "\x{a}" ~
  1551. " "
  1552. ]
  1553. s:pattern [
  1554. name = "Element exclusion"
  1555. "\x{a}" ~
  1556. " "
  1557. s:rule [
  1558. context = "db:example"
  1559. "\x{a}" ~
  1560. " "
  1561. s:assert [
  1562. test = "not(.//db:table)"
  1563. "table must not occur among the children or descendants of example"
  1564. ]
  1565. "\x{a}" ~
  1566. " "
  1567. ]
  1568. "\x{a}" ~
  1569. " "
  1570. ]
  1571. s:pattern [
  1572. name = "Element exclusion"
  1573. "\x{a}" ~
  1574. " "
  1575. s:rule [
  1576. context = "db:example"
  1577. "\x{a}" ~
  1578. " "
  1579. s:assert [
  1580. test = "not(.//db:equation)"
  1581. "equation must not occur among the children or descendants of example"
  1582. ]
  1583. "\x{a}" ~
  1584. " "
  1585. ]
  1586. "\x{a}" ~
  1587. " "
  1588. ]
  1589. s:pattern [
  1590. name = "Element exclusion"
  1591. "\x{a}" ~
  1592. " "
  1593. s:rule [
  1594. context = "db:example"
  1595. "\x{a}" ~
  1596. " "
  1597. s:assert [
  1598. test = "not(.//db:caution)"
  1599. "caution must not occur among the children or descendants of example"
  1600. ]
  1601. "\x{a}" ~
  1602. " "
  1603. ]
  1604. "\x{a}" ~
  1605. " "
  1606. ]
  1607. s:pattern [
  1608. name = "Element exclusion"
  1609. "\x{a}" ~
  1610. " "
  1611. s:rule [
  1612. context = "db:example"
  1613. "\x{a}" ~
  1614. " "
  1615. s:assert [
  1616. test = "not(.//db:important)"
  1617. "important must not occur among the children or descendants of example"
  1618. ]
  1619. "\x{a}" ~
  1620. " "
  1621. ]
  1622. "\x{a}" ~
  1623. " "
  1624. ]
  1625. s:pattern [
  1626. name = "Element exclusion"
  1627. "\x{a}" ~
  1628. " "
  1629. s:rule [
  1630. context = "db:example"
  1631. "\x{a}" ~
  1632. " "
  1633. s:assert [
  1634. test = "not(.//db:note)"
  1635. "note must not occur among the children or descendants of example"
  1636. ]
  1637. "\x{a}" ~
  1638. " "
  1639. ]
  1640. "\x{a}" ~
  1641. " "
  1642. ]
  1643. s:pattern [
  1644. name = "Element exclusion"
  1645. "\x{a}" ~
  1646. " "
  1647. s:rule [
  1648. context = "db:example"
  1649. "\x{a}" ~
  1650. " "
  1651. s:assert [
  1652. test = "not(.//db:tip)"
  1653. "tip must not occur among the children or descendants of example"
  1654. ]
  1655. "\x{a}" ~
  1656. " "
  1657. ]
  1658. "\x{a}" ~
  1659. " "
  1660. ]
  1661. s:pattern [
  1662. name = "Element exclusion"
  1663. "\x{a}" ~
  1664. " "
  1665. s:rule [
  1666. context = "db:example"
  1667. "\x{a}" ~
  1668. " "
  1669. s:assert [
  1670. test = "not(.//db:warning)"
  1671. "warning must not occur among the children or descendants of example"
  1672. ]
  1673. "\x{a}" ~
  1674. " "
  1675. ]
  1676. "\x{a}" ~
  1677. " "
  1678. ]
  1679. ]
  1680. element example {
  1681. db.example.attlist, db.example.info, db.all.blocks+, db.caption?
  1682. }
  1683. }
  1684. div {
  1685. db.informalexample.role.attribute = attribute role { text }
  1686. db.informalexample.width.attribute = db.width.characters.attribute
  1687. db.informalexample.pgwide.attribute = db.pgwide.attribute
  1688. db.informalexample.floatstyle.attribute = db.floatstyle.attribute
  1689. db.informalexample.attlist =
  1690. db.informalexample.role.attribute?
  1691. & db.common.attributes
  1692. & db.common.linking.attributes
  1693. & db.informalexample.floatstyle.attribute?
  1694. & (db.informalexample.width.attribute
  1695. | db.informalexample.pgwide.attribute)?
  1696. db.informalexample.info = db._info.title.forbidden
  1697. db.informalexample =
  1698. ## A displayed example without a title
  1699. element informalexample {
  1700. db.informalexample.attlist,
  1701. db.informalexample.info,
  1702. db.all.blocks+,
  1703. db.caption?
  1704. }
  1705. }
  1706. db.verbatim.inlines = (db.all.inlines | db.lineannotation) | db.co
  1707. db.verbatim.contentmodel =
  1708. db._info.title.forbidden, (db.textobject | db.verbatim.inlines*)
  1709. div {
  1710. db.literallayout.role.attribute = attribute role { text }
  1711. db.literallayout.class.enumeration =
  1712. ## The literal layout should be formatted with a monospaced font
  1713. "monospaced"
  1714. |
  1715. ## The literal layout should be formatted with the current font
  1716. "normal"
  1717. db.literallayout.class.attribute =
  1718. ## Specifies the class of literal layout
  1719. attribute class { db.literallayout.class.enumeration }
  1720. db.literallayout.attlist =
  1721. db.literallayout.role.attribute?
  1722. & db.common.attributes
  1723. & db.common.linking.attributes
  1724. & db.verbatim.attributes
  1725. & db.literallayout.class.attribute?
  1726. db.literallayout =
  1727. ## A block of text in which line breaks and white space are to be reproduced faithfully
  1728. element literallayout {
  1729. db.literallayout.attlist, db.verbatim.contentmodel
  1730. }
  1731. }
  1732. div {
  1733. db.screen.role.attribute = attribute role { text }
  1734. db.screen.width.attribute = db.width.characters.attribute
  1735. db.screen.attlist =
  1736. db.screen.role.attribute?
  1737. & db.common.attributes
  1738. & db.common.linking.attributes
  1739. & db.verbatim.attributes
  1740. & db.screen.width.attribute?
  1741. db.screen =
  1742. ## Text that a user sees or might see on a computer screen
  1743. element screen { db.screen.attlist, db.verbatim.contentmodel }
  1744. }
  1745. div {
  1746. db.screenshot.role.attribute = attribute role { text }
  1747. db.screenshot.attlist =
  1748. db.screenshot.role.attribute?
  1749. & db.common.attributes
  1750. & db.common.linking.attributes
  1751. db.screenshot.info = db._info
  1752. db.screenshot =
  1753. ## A representation of what the user sees or might see on a computer screen
  1754. element screenshot {
  1755. db.screenshot.attlist, db.screenshot.info, db.mediaobject
  1756. }
  1757. }
  1758. div {
  1759. db.figure.role.attribute = attribute role { text }
  1760. db.figure.label.attribute = db.label.attribute
  1761. db.figure.pgwide.attribute = db.pgwide.attribute
  1762. db.figure.floatstyle.attribute = db.floatstyle.attribute
  1763. db.figure.attlist =
  1764. db.figure.role.attribute?
  1765. & db.common.attributes
  1766. & db.common.linking.attributes
  1767. & db.figure.label.attribute?
  1768. & db.figure.pgwide.attribute?
  1769. & db.figure.floatstyle.attribute?
  1770. db.figure.info = db._info.title.onlyreq
  1771. db.figure =
  1772. ## A formal figure, generally an illustration, with a title
  1773. [
  1774. s:pattern [
  1775. name = "Element exclusion"
  1776. "\x{a}" ~
  1777. " "
  1778. s:rule [
  1779. context = "db:figure"
  1780. "\x{a}" ~
  1781. " "
  1782. s:assert [
  1783. test = "not(.//db:example)"
  1784. "example must not occur among the children or descendants of figure"
  1785. ]
  1786. "\x{a}" ~
  1787. " "
  1788. ]
  1789. "\x{a}" ~
  1790. " "
  1791. ]
  1792. s:pattern [
  1793. name = "Element exclusion"
  1794. "\x{a}" ~
  1795. " "
  1796. s:rule [
  1797. context = "db:figure"
  1798. "\x{a}" ~
  1799. " "
  1800. s:assert [
  1801. test = "not(.//db:figure)"
  1802. "figure must not occur among the children or descendants of figure"
  1803. ]
  1804. "\x{a}" ~
  1805. " "
  1806. ]
  1807. "\x{a}" ~
  1808. " "
  1809. ]
  1810. s:pattern [
  1811. name = "Element exclusion"
  1812. "\x{a}" ~
  1813. " "
  1814. s:rule [
  1815. context = "db:figure"
  1816. "\x{a}" ~
  1817. " "
  1818. s:assert [
  1819. test = "not(.//db:table)"
  1820. "table must not occur among the children or descendants of figure"
  1821. ]
  1822. "\x{a}" ~
  1823. " "
  1824. ]
  1825. "\x{a}" ~
  1826. " "
  1827. ]
  1828. s:pattern [
  1829. name = "Element exclusion"
  1830. "\x{a}" ~
  1831. " "
  1832. s:rule [
  1833. context = "db:figure"
  1834. "\x{a}" ~
  1835. " "
  1836. s:assert [
  1837. test = "not(.//db:equation)"
  1838. "equation must not occur among the children or descendants of figure"
  1839. ]
  1840. "\x{a}" ~
  1841. " "
  1842. ]
  1843. "\x{a}" ~
  1844. " "
  1845. ]
  1846. s:pattern [
  1847. name = "Element exclusion"
  1848. "\x{a}" ~
  1849. " "
  1850. s:rule [
  1851. context = "db:figure"
  1852. "\x{a}" ~
  1853. " "
  1854. s:assert [
  1855. test = "not(.//db:caution)"
  1856. "caution must not occur among the children or descendants of figure"
  1857. ]
  1858. "\x{a}" ~
  1859. " "
  1860. ]
  1861. "\x{a}" ~
  1862. " "
  1863. ]
  1864. s:pattern [
  1865. name = "Element exclusion"
  1866. "\x{a}" ~
  1867. " "
  1868. s:rule [
  1869. context = "db:figure"
  1870. "\x{a}" ~
  1871. " "
  1872. s:assert [
  1873. test = "not(.//db:important)"
  1874. "important must not occur among the children or descendants of figure"
  1875. ]
  1876. "\x{a}" ~
  1877. " "
  1878. ]
  1879. "\x{a}" ~
  1880. " "
  1881. ]
  1882. s:pattern [
  1883. name = "Element exclusion"
  1884. "\x{a}" ~
  1885. " "
  1886. s:rule [
  1887. context = "db:figure"
  1888. "\x{a}" ~
  1889. " "
  1890. s:assert [
  1891. test = "not(.//db:note)"
  1892. "note must not occur among the children or descendants of figure"
  1893. ]
  1894. "\x{a}" ~
  1895. " "
  1896. ]
  1897. "\x{a}" ~
  1898. " "
  1899. ]
  1900. s:pattern [
  1901. name = "Element exclusion"
  1902. "\x{a}" ~
  1903. " "
  1904. s:rule [
  1905. context = "db:figure"
  1906. "\x{a}" ~
  1907. " "
  1908. s:assert [
  1909. test = "not(.//db:tip)"
  1910. "tip must not occur among the children or descendants of figure"
  1911. ]
  1912. "\x{a}" ~
  1913. " "
  1914. ]
  1915. "\x{a}" ~
  1916. " "
  1917. ]
  1918. s:pattern [
  1919. name = "Element exclusion"
  1920. "\x{a}" ~
  1921. " "
  1922. s:rule [
  1923. context = "db:figure"
  1924. "\x{a}" ~
  1925. " "
  1926. s:assert [
  1927. test = "not(.//db:warning)"
  1928. "warning must not occur among the children or descendants of figure"
  1929. ]
  1930. "\x{a}" ~
  1931. " "
  1932. ]
  1933. "\x{a}" ~
  1934. " "
  1935. ]
  1936. ]
  1937. element figure {
  1938. db.figure.attlist, db.figure.info, db.all.blocks+, db.caption?
  1939. }
  1940. }
  1941. div {
  1942. db.informalfigure.role.attribute = attribute role { text }
  1943. db.informalfigure.label.attribute = db.label.attribute
  1944. db.informalfigure.pgwide.attribute = db.pgwide.attribute
  1945. db.informalfigure.floatstyle.attribute = db.floatstyle.attribute
  1946. db.informalfigure.attlist =
  1947. db.informalfigure.role.attribute?
  1948. & db.common.attributes
  1949. & db.common.linking.attributes
  1950. & db.informalfigure.label.attribute?
  1951. & db.informalfigure.pgwide.attribute?
  1952. & db.informalfigure.floatstyle.attribute?
  1953. db.informalfigure.info = db._info.title.forbidden
  1954. db.informalfigure =
  1955. ## A untitled figure
  1956. element informalfigure {
  1957. db.informalfigure.attlist,
  1958. db.informalfigure.info,
  1959. db.all.blocks+,
  1960. db.caption?
  1961. }
  1962. }
  1963. db.mediaobject.content =
  1964. (db.videoobject | db.audioobject | db.imageobject | db.textobject)
  1965. | db.imageobjectco
  1966. div {
  1967. db.mediaobject.role.attribute = attribute role { text }
  1968. db.mediaobject.attlist =
  1969. db.mediaobject.role.attribute?
  1970. & db.common.attributes
  1971. & db.common.linking.attributes
  1972. db.mediaobject.info = db._info.title.forbidden
  1973. db.mediaobject =
  1974. ## A displayed media object (video, audio, image, etc.)
  1975. element mediaobject {
  1976. db.mediaobject.attlist,
  1977. db.mediaobject.info,
  1978. db.alt?,
  1979. db.mediaobject.content+,
  1980. db.caption?
  1981. }
  1982. }
  1983. div {
  1984. db.inlinemediaobject.role.attribute = attribute role { text }
  1985. db.inlinemediaobject.attlist =
  1986. db.inlinemediaobject.role.attribute?
  1987. & db.common.attributes
  1988. & db.common.linking.attributes
  1989. db.inlinemediaobject.info = db._info.title.forbidden
  1990. db.inlinemediaobject =
  1991. ## An inline media object (video, audio, image, and so on)
  1992. element inlinemediaobject {
  1993. db.inlinemediaobject.attlist,
  1994. db.inlinemediaobject.info,
  1995. db.alt?,
  1996. db.mediaobject.content+
  1997. }
  1998. }
  1999. div {
  2000. db.videoobject.role.attribute = attribute role { text }
  2001. db.videoobject.attlist =
  2002. db.videoobject.role.attribute?
  2003. & db.common.attributes
  2004. & db.common.linking.attributes
  2005. db.videoobject.info = db._info.title.forbidden
  2006. db.videoobject =
  2007. ## A wrapper for video data and its associated meta-information
  2008. element videoobject {
  2009. db.videoobject.attlist,
  2010. db.videoobject.info,
  2011. db.videodata,
  2012. db.multimediaparam*
  2013. }
  2014. }
  2015. div {
  2016. db.audioobject.role.attribute = attribute role { text }
  2017. db.audioobject.attlist =
  2018. db.audioobject.role.attribute?
  2019. & db.common.attributes
  2020. & db.common.linking.attributes
  2021. db.audioobject.info = db._info.title.forbidden
  2022. db.audioobject =
  2023. ## A wrapper for audio data and its associated meta-information
  2024. element audioobject {
  2025. db.audioobject.attlist,
  2026. db.audioobject.info,
  2027. db.audiodata,
  2028. db.multimediaparam*
  2029. }
  2030. }
  2031. db.imageobject.content =
  2032. db.imagedata | db.imagedata.mathml | db.imagedata.svg
  2033. div {
  2034. db.imageobject.role.attribute = attribute role { text }
  2035. db.imageobject.attlist =
  2036. db.imageobject.role.attribute?
  2037. & db.common.attributes
  2038. & db.common.linking.attributes
  2039. db.imageobject.info = db._info.title.forbidden
  2040. db.imageobject =
  2041. ## A wrapper for image data and its associated meta-information
  2042. element imageobject {
  2043. db.imageobject.attlist,
  2044. db.imageobject.info,
  2045. db.imageobject.content
  2046. }
  2047. }
  2048. div {
  2049. db.textobject.role.attribute = attribute role { text }
  2050. db.textobject.attlist =
  2051. db.textobject.role.attribute?
  2052. & db.common.attributes
  2053. & db.common.linking.attributes
  2054. db.textobject.info = db._info.title.forbidden
  2055. db.textobject =
  2056. ## A wrapper for a text description of an object and its associated meta-information
  2057. element textobject {
  2058. db.textobject.attlist,
  2059. db.textobject.info,
  2060. (db.phrase | db.textdata | db.all.blocks+)
  2061. }
  2062. }
  2063. div {
  2064. db.videodata.role.attribute = attribute role { text }
  2065. db.videodata.align.enumeration = db.halign.enumeration
  2066. db.videodata.align.attribute =
  2067. ## Specifies the (horizontal) alignment of the video data
  2068. attribute align { db.videodata.align.enumeration }
  2069. db.videodata.autoplay.attribute = db.autoplay.attribute
  2070. db.videodata.classid.attribute = db.classid.attribute
  2071. db.videodata.valign.enumeration = db.valign.enumeration
  2072. db.videodata.valign.attribute =
  2073. ## Specifies the vertical alignment of the video data
  2074. attribute valign { db.videodata.valign.enumeration }
  2075. db.videodata.width.attribute = db.width.attribute
  2076. db.videodata.depth.attribute = db.depth.attribute
  2077. db.videodata.contentwidth.attribute = db.contentwidth.attribute
  2078. db.videodata.contentdepth.attribute = db.contentdepth.attribute
  2079. db.videodata.scalefit.enumeration = db.scalefit.enumeration
  2080. db.videodata.scalefit.attribute =
  2081. ## Determines if anamorphic scaling is forbidden
  2082. attribute scalefit { db.videodata.scalefit.enumeration }
  2083. db.videodata.scale.attribute = db.scale.attribute
  2084. db.videodata.attlist =
  2085. db.videodata.role.attribute?
  2086. & db.common.attributes
  2087. & db.common.data.attributes
  2088. & db.videodata.align.attribute?
  2089. & db.videodata.valign.attribute?
  2090. & db.videodata.width.attribute?
  2091. & db.videodata.contentwidth.attribute?
  2092. & db.videodata.scalefit.attribute?
  2093. & db.videodata.scale.attribute?
  2094. & db.videodata.depth.attribute?
  2095. & db.videodata.contentdepth.attribute?
  2096. & db.videodata.autoplay.attribute?
  2097. & db.videodata.classid.attribute?
  2098. db.videodata.info = db._info.title.forbidden
  2099. db.videodata =
  2100. ## Pointer to external video data
  2101. element videodata { db.videodata.attlist, db.videodata.info }
  2102. }
  2103. div {
  2104. db.audiodata.role.attribute = attribute role { text }
  2105. db.audiodata.align.enumeration = db.halign.enumeration
  2106. db.audiodata.align.attribute =
  2107. ## Specifies the (horizontal) alignment of the video data
  2108. attribute align { db.audiodata.align.enumeration }
  2109. db.audiodata.autoplay.attribute = db.autoplay.attribute
  2110. db.audiodata.classid.attribute = db.classid.attribute
  2111. db.audiodata.contentwidth.attribute = db.contentwidth.attribute
  2112. db.audiodata.contentdepth.attribute = db.contentdepth.attribute
  2113. db.audiodata.depth.attribute = db.depth.attribute
  2114. db.audiodata.scale.attribute = db.scale.attribute
  2115. db.audiodata.scalefit.enumeration = db.scalefit.enumeration
  2116. db.audiodata.scalefit.attribute =
  2117. ## Determines if anamorphic scaling is forbidden
  2118. attribute scalefit { db.audiodata.scalefit.enumeration }
  2119. db.audiodata.valign.enumeration = db.valign.enumeration
  2120. db.audiodata.valign.attribute =
  2121. ## Specifies the vertical alignment of the video data
  2122. attribute valign { db.audiodata.valign.enumeration }
  2123. db.audiodata.width.attribute = db.width.attribute
  2124. db.audiodata.attlist =
  2125. db.audiodata.role.attribute?
  2126. & db.common.attributes
  2127. & db.common.data.attributes
  2128. & db.audiodata.align.attribute?
  2129. & db.audiodata.autoplay.attribute?
  2130. & db.audiodata.classid.attribute?
  2131. & db.audiodata.contentdepth.attribute?
  2132. & db.audiodata.contentwidth.attribute?
  2133. & db.audiodata.depth.attribute?
  2134. & db.audiodata.scale.attribute?
  2135. & db.audiodata.scalefit.attribute?
  2136. & db.audiodata.valign.attribute?
  2137. & db.audiodata.width.attribute?
  2138. db.audiodata.info = db._info.title.forbidden
  2139. db.audiodata =
  2140. ## Pointer to external audio data
  2141. element audiodata { db.audiodata.attlist, db.audiodata.info }
  2142. }
  2143. div {
  2144. db.imagedata.role.attribute = attribute role { text }
  2145. db.imagedata.align.enumeration = db.halign.enumeration
  2146. db.imagedata.align.attribute =
  2147. ## Specifies the (horizontal) alignment of the image data
  2148. attribute align { db.imagedata.align.enumeration }
  2149. db.imagedata.valign.enumeration = db.valign.enumeration
  2150. db.imagedata.valign.attribute =
  2151. ## Specifies the vertical alignment of the image data
  2152. attribute valign { db.imagedata.valign.enumeration }
  2153. db.imagedata.width.attribute = db.width.attribute
  2154. db.imagedata.depth.attribute = db.depth.attribute
  2155. db.imagedata.contentwidth.attribute = db.contentwidth.attribute
  2156. db.imagedata.contentdepth.attribute = db.contentdepth.attribute
  2157. db.imagedata.scalefit.enumeration = db.scalefit.enumeration
  2158. db.imagedata.scalefit.attribute =
  2159. ## Determines if anamorphic scaling is forbidden
  2160. attribute scalefit { db.imagedata.scalefit.enumeration }
  2161. db.imagedata.scale.attribute = db.scale.attribute
  2162. db.imagedata.attlist =
  2163. db.imagedata.role.attribute?
  2164. & db.common.attributes
  2165. & db.common.data.attributes
  2166. & db.imagedata.align.attribute?
  2167. & db.imagedata.valign.attribute?
  2168. & db.imagedata.width.attribute?
  2169. & db.imagedata.contentwidth.attribute?
  2170. & db.imagedata.scalefit.attribute?
  2171. & db.imagedata.scale.attribute?
  2172. & db.imagedata.depth.attribute?
  2173. & db.imagedata.contentdepth.attribute?
  2174. db.imagedata.info = db._info.title.forbidden
  2175. db.imagedata =
  2176. ## Pointer to external image data
  2177. element imagedata { db.imagedata.attlist, db.imagedata.info }
  2178. }
  2179. div {
  2180. db.textdata.role.attribute = attribute role { text }
  2181. db.textdata.encoding.attribute =
  2182. ## Identifies the encoding of the text in the external file
  2183. attribute encoding { text }
  2184. db.textdata.attlist =
  2185. db.textdata.role.attribute?
  2186. & db.common.attributes
  2187. & db.common.data.attributes
  2188. & db.textdata.encoding.attribute?
  2189. db.textdata.info = db._info.title.forbidden
  2190. db.textdata =
  2191. ## Pointer to external text data
  2192. element textdata { db.textdata.attlist, db.textdata.info }
  2193. }
  2194. div {
  2195. db.multimediaparam.role.attribute = attribute role { text }
  2196. db.multimediaparam.name.attribute =
  2197. ## Specifies the name of the parameter
  2198. attribute name { text }
  2199. db.multimediaparam.value.attribute =
  2200. ## Specifies the value of the parameter
  2201. attribute value { text }
  2202. db.multimediaparam.valuetype.attribute =
  2203. ## Specifies the type of the value of the parameter
  2204. attribute valuetype { text }
  2205. db.multimediaparam.attlist =
  2206. db.multimediaparam.role.attribute?
  2207. & db.common.attributes
  2208. & db.multimediaparam.name.attribute
  2209. & db.multimediaparam.value.attribute
  2210. & db.multimediaparam.valuetype.attribute?
  2211. db.multimediaparam =
  2212. ## Application specific parameters for a media player
  2213. element multimediaparam { db.multimediaparam.attlist, empty }
  2214. }
  2215. div {
  2216. db.caption.role.attribute = attribute role { text }
  2217. db.caption.attlist =
  2218. db.caption.role.attribute?
  2219. & db.common.attributes
  2220. & db.common.linking.attributes
  2221. db.caption.info = db._info.title.forbidden
  2222. db.caption =
  2223. ## A caption
  2224. [
  2225. s:pattern [
  2226. name = "Element exclusion"
  2227. "\x{a}" ~
  2228. " "
  2229. s:rule [
  2230. context = "db:caption"
  2231. "\x{a}" ~
  2232. " "
  2233. s:assert [
  2234. test = "not(.//db:example)"
  2235. "example must not occur among the children or descendants of caption"
  2236. ]
  2237. "\x{a}" ~
  2238. " "
  2239. ]
  2240. "\x{a}" ~
  2241. " "
  2242. ]
  2243. s:pattern [
  2244. name = "Element exclusion"
  2245. "\x{a}" ~
  2246. " "
  2247. s:rule [
  2248. context = "db:caption"
  2249. "\x{a}" ~
  2250. " "
  2251. s:assert [
  2252. test = "not(.//db:figure)"
  2253. "figure must not occur among the children or descendants of caption"
  2254. ]
  2255. "\x{a}" ~
  2256. " "
  2257. ]
  2258. "\x{a}" ~
  2259. " "
  2260. ]
  2261. s:pattern [
  2262. name = "Element exclusion"
  2263. "\x{a}" ~
  2264. " "
  2265. s:rule [
  2266. context = "db:caption"
  2267. "\x{a}" ~
  2268. " "
  2269. s:assert [
  2270. test = "not(.//db:table)"
  2271. "table must not occur among the children or descendants of caption"
  2272. ]
  2273. "\x{a}" ~
  2274. " "
  2275. ]
  2276. "\x{a}" ~
  2277. " "
  2278. ]
  2279. s:pattern [
  2280. name = "Element exclusion"
  2281. "\x{a}" ~
  2282. " "
  2283. s:rule [
  2284. context = "db:caption"
  2285. "\x{a}" ~
  2286. " "
  2287. s:assert [
  2288. test = "not(.//db:equation)"
  2289. "equation must not occur among the children or descendants of caption"
  2290. ]
  2291. "\x{a}" ~
  2292. " "
  2293. ]
  2294. "\x{a}" ~
  2295. " "
  2296. ]
  2297. s:pattern [
  2298. name = "Element exclusion"
  2299. "\x{a}" ~
  2300. " "
  2301. s:rule [
  2302. context = "db:caption"
  2303. "\x{a}" ~
  2304. " "
  2305. s:assert [
  2306. test = "not(.//db:sidebar)"
  2307. "sidebar must not occur among the children or descendants of caption"
  2308. ]
  2309. "\x{a}" ~
  2310. " "
  2311. ]
  2312. "\x{a}" ~
  2313. " "
  2314. ]
  2315. s:pattern [
  2316. name = "Element exclusion"
  2317. "\x{a}" ~
  2318. " "
  2319. s:rule [
  2320. context = "db:caption"
  2321. "\x{a}" ~
  2322. " "
  2323. s:assert [
  2324. test = "not(.//db:task)"
  2325. "task must not occur among the children or descendants of caption"
  2326. ]
  2327. "\x{a}" ~
  2328. " "
  2329. ]
  2330. "\x{a}" ~
  2331. " "
  2332. ]
  2333. s:pattern [
  2334. name = "Element exclusion"
  2335. "\x{a}" ~
  2336. " "
  2337. s:rule [
  2338. context = "db:caption"
  2339. "\x{a}" ~
  2340. " "
  2341. s:assert [
  2342. test = "not(.//db:caution)"
  2343. "caution must not occur among the children or descendants of caption"
  2344. ]
  2345. "\x{a}" ~
  2346. " "
  2347. ]
  2348. "\x{a}" ~
  2349. " "
  2350. ]
  2351. s:pattern [
  2352. name = "Element exclusion"
  2353. "\x{a}" ~
  2354. " "
  2355. s:rule [
  2356. context = "db:caption"
  2357. "\x{a}" ~
  2358. " "
  2359. s:assert [
  2360. test = "not(.//db:important)"
  2361. "important must not occur among the children or descendants of caption"
  2362. ]
  2363. "\x{a}" ~
  2364. " "
  2365. ]
  2366. "\x{a}" ~
  2367. " "
  2368. ]
  2369. s:pattern [
  2370. name = "Element exclusion"
  2371. "\x{a}" ~
  2372. " "
  2373. s:rule [
  2374. context = "db:caption"
  2375. "\x{a}" ~
  2376. " "
  2377. s:assert [
  2378. test = "not(.//db:note)"
  2379. "note must not occur among the children or descendants of caption"
  2380. ]
  2381. "\x{a}" ~
  2382. " "
  2383. ]
  2384. "\x{a}" ~
  2385. " "
  2386. ]
  2387. s:pattern [
  2388. name = "Element exclusion"
  2389. "\x{a}" ~
  2390. " "
  2391. s:rule [
  2392. context = "db:caption"
  2393. "\x{a}" ~
  2394. " "
  2395. s:assert [
  2396. test = "not(.//db:tip)"
  2397. "tip must not occur among the children or descendants of caption"
  2398. ]
  2399. "\x{a}" ~
  2400. " "
  2401. ]
  2402. "\x{a}" ~
  2403. " "
  2404. ]
  2405. s:pattern [
  2406. name = "Element exclusion"
  2407. "\x{a}" ~
  2408. " "
  2409. s:rule [
  2410. context = "db:caption"
  2411. "\x{a}" ~
  2412. " "
  2413. s:assert [
  2414. test = "not(.//db:warning)"
  2415. "warning must not occur among the children or descendants of caption"
  2416. ]
  2417. "\x{a}" ~
  2418. " "
  2419. ]
  2420. "\x{a}" ~
  2421. " "
  2422. ]
  2423. ]
  2424. element caption {
  2425. db.caption.attlist, db.caption.info, db.all.blocks+
  2426. }
  2427. }
  2428. div {
  2429. db.address.role.attribute = attribute role { text }
  2430. db.address.attlist =
  2431. db.address.role.attribute?
  2432. & db.common.attributes
  2433. & db.common.linking.attributes
  2434. & db.verbatim.attributes
  2435. db.address =
  2436. ## A real-world address, generally a postal address
  2437. element address {
  2438. db.address.attlist,
  2439. (db._text
  2440. | db.personname
  2441. | db.orgname
  2442. | db.pob
  2443. | db.street
  2444. | db.city
  2445. | db.state
  2446. | db.postcode
  2447. | db.country
  2448. | db.phone
  2449. | db.fax
  2450. | db.email
  2451. | db.uri
  2452. | db.otheraddr)*
  2453. }
  2454. }
  2455. div {
  2456. db.street.role.attribute = attribute role { text }
  2457. db.street.attlist =
  2458. db.street.role.attribute?
  2459. & db.common.attributes
  2460. & db.common.linking.attributes
  2461. db.street =
  2462. ## A street address in an address
  2463. element street { db.street.attlist, db._text }
  2464. }
  2465. div {
  2466. db.pob.role.attribute = attribute role { text }
  2467. db.pob.attlist =
  2468. db.pob.role.attribute?
  2469. & db.common.attributes
  2470. & db.common.linking.attributes
  2471. db.pob =
  2472. ## A post office box in an address
  2473. element pob { db.pob.attlist, db._text }
  2474. }
  2475. div {
  2476. db.postcode.role.attribute = attribute role { text }
  2477. db.postcode.attlist =
  2478. db.postcode.role.attribute?
  2479. & db.common.attributes
  2480. & db.common.linking.attributes
  2481. db.postcode =
  2482. ## A postal code in an address
  2483. element postcode { db.postcode.attlist, db._text }
  2484. }
  2485. div {
  2486. db.city.role.attribute = attribute role { text }
  2487. db.city.attlist =
  2488. db.city.role.attribute?
  2489. & db.common.attributes
  2490. & db.common.linking.attributes
  2491. db.city =
  2492. ## The name of a city in an address
  2493. element city { db.city.attlist, db._text }
  2494. }
  2495. div {
  2496. db.state.role.attribute = attribute role { text }
  2497. db.state.attlist =
  2498. db.state.role.attribute?
  2499. & db.common.attributes
  2500. & db.common.linking.attributes
  2501. db.state =
  2502. ## A state or province in an address
  2503. element state { db.state.attlist, db._text }
  2504. }
  2505. div {
  2506. db.country.role.attribute = attribute role { text }
  2507. db.country.attlist =
  2508. db.country.role.attribute?
  2509. & db.common.attributes
  2510. & db.common.linking.attributes
  2511. db.country =
  2512. ## The name of a country
  2513. element country { db.country.attlist, db._text }
  2514. }
  2515. div {
  2516. db.phone.role.attribute = attribute role { text }
  2517. db.phone.attlist =
  2518. db.phone.role.attribute?
  2519. & db.common.attributes
  2520. & db.common.linking.attributes
  2521. db.phone =
  2522. ## A telephone number
  2523. element phone { db.phone.attlist, db._text }
  2524. }
  2525. div {
  2526. db.fax.role.attribute = attribute role { text }
  2527. db.fax.attlist =
  2528. db.fax.role.attribute?
  2529. & db.common.attributes
  2530. & db.common.linking.attributes
  2531. db.fax =
  2532. ## A fax number
  2533. element fax { db.fax.attlist, db._text }
  2534. }
  2535. div {
  2536. db.otheraddr.role.attribute = attribute role { text }
  2537. db.otheraddr.attlist =
  2538. db.otheraddr.role.attribute?
  2539. & db.common.attributes
  2540. & db.common.linking.attributes
  2541. db.otheraddr =
  2542. ## Uncategorized information in address
  2543. element otheraddr { db.otheraddr.attlist, db._text }
  2544. }
  2545. div {
  2546. db.affiliation.role.attribute = attribute role { text }
  2547. db.affiliation.attlist =
  2548. db.affiliation.role.attribute?
  2549. & db.common.attributes
  2550. & db.common.linking.attributes
  2551. db.affiliation =
  2552. ## The institutional affiliation of an individual
  2553. element affiliation {
  2554. db.affiliation.attlist,
  2555. db.shortaffil?,
  2556. db.jobtitle*,
  2557. (db.org? | (db.orgname?, db.orgdiv*, db.address*))
  2558. }
  2559. }
  2560. div {
  2561. db.shortaffil.role.attribute = attribute role { text }
  2562. db.shortaffil.attlist =
  2563. db.shortaffil.role.attribute?
  2564. & db.common.attributes
  2565. & db.common.linking.attributes
  2566. db.shortaffil =
  2567. ## A brief description of an affiliation
  2568. element shortaffil { db.shortaffil.attlist, db._text }
  2569. }
  2570. div {
  2571. db.jobtitle.role.attribute = attribute role { text }
  2572. db.jobtitle.attlist =
  2573. db.jobtitle.role.attribute?
  2574. & db.common.attributes
  2575. & db.common.linking.attributes
  2576. db.jobtitle =
  2577. ## The title of an individual in an organization
  2578. element jobtitle { db.jobtitle.attlist, db._text }
  2579. }
  2580. div {
  2581. db.orgname.class.enumeration =
  2582. ## A consortium
  2583. "consortium"
  2584. |
  2585. ## A corporation
  2586. "corporation"
  2587. |
  2588. ## An informal organization
  2589. "informal"
  2590. |
  2591. ## A non-profit organization
  2592. "nonprofit"
  2593. db.orgname.class-enum.attribute =
  2594. ## Specifies the nature of the organization
  2595. attribute class { db.orgname.class.enumeration }
  2596. db.orgname.class-other.attributes =
  2597. ## Specifies the nature of the organization
  2598. attribute class {
  2599. ## Indicates a non-standard organization class
  2600. "other"
  2601. },
  2602. ## Identifies the non-standard nature of the organization
  2603. attribute otherclass { text }
  2604. db.orgname.class.attribute =
  2605. db.orgname.class-enum.attribute | db.orgname.class-other.attributes
  2606. db.orgname.role.attribute = attribute role { text }
  2607. db.orgname.attlist =
  2608. db.orgname.role.attribute?
  2609. & db.common.attributes
  2610. & db.common.linking.attributes
  2611. & db.orgname.class.attribute?
  2612. db.orgname =
  2613. ## The name of an organization
  2614. element orgname { db.orgname.attlist, db._text }
  2615. }
  2616. div {
  2617. db.orgdiv.role.attribute = attribute role { text }
  2618. db.orgdiv.attlist =
  2619. db.orgdiv.role.attribute?
  2620. & db.common.attributes
  2621. & db.common.linking.attributes
  2622. db.orgdiv =
  2623. ## A division of an organization
  2624. element orgdiv { db.orgdiv.attlist, db.all.inlines* }
  2625. }
  2626. div {
  2627. db.artpagenums.role.attribute = attribute role { text }
  2628. db.artpagenums.attlist =
  2629. db.artpagenums.role.attribute?
  2630. & db.common.attributes
  2631. & db.common.linking.attributes
  2632. db.artpagenums =
  2633. ## The page numbers of an article as published
  2634. element artpagenums { db.artpagenums.attlist, db._text }
  2635. }
  2636. div {
  2637. db.personname.role.attribute = attribute role { text }
  2638. db.personname.attlist =
  2639. db.personname.role.attribute?
  2640. & db.common.attributes
  2641. & db.common.linking.attributes
  2642. db.personname =
  2643. ## The personal name of an individual
  2644. element personname {
  2645. db.personname.attlist,
  2646. (db._text
  2647. | (db.honorific
  2648. | db.firstname
  2649. | db.surname
  2650. | db.lineage
  2651. | db.othername)+
  2652. | (db.honorific
  2653. | db.givenname
  2654. | db.surname
  2655. | db.lineage
  2656. | db.othername)+)
  2657. }
  2658. }
  2659. db.person.author.contentmodel =
  2660. db.personname,
  2661. (db.personblurb
  2662. | db.affiliation
  2663. | db.email
  2664. | db.uri
  2665. | db.address
  2666. | db.contrib)*
  2667. db.org.author.contentmodel =
  2668. db.orgname,
  2669. (db.orgdiv
  2670. | db.affiliation
  2671. | db.email
  2672. | db.uri
  2673. | db.address
  2674. | db.contrib)*
  2675. db.credit.contentmodel =
  2676. db.person.author.contentmodel | db.org.author.contentmodel
  2677. div {
  2678. db.author.role.attribute = attribute role { text }
  2679. db.author.attlist =
  2680. db.author.role.attribute?
  2681. & db.common.attributes
  2682. & db.common.linking.attributes
  2683. db.author =
  2684. ## The name of an individual author
  2685. element author { db.author.attlist, db.credit.contentmodel }
  2686. }
  2687. div {
  2688. db.authorgroup.role.attribute = attribute role { text }
  2689. db.authorgroup.attlist =
  2690. db.authorgroup.role.attribute?
  2691. & db.common.attributes
  2692. & db.common.linking.attributes
  2693. db.authorgroup =
  2694. ## Wrapper for author information when a document has multiple authors or collaborators
  2695. element authorgroup {
  2696. db.authorgroup.attlist, (db.author | db.editor | db.othercredit)+
  2697. }
  2698. }
  2699. div {
  2700. db.collab.role.attribute = attribute role { text }
  2701. db.collab.attlist =
  2702. db.collab.role.attribute?
  2703. & db.common.attributes
  2704. & db.common.linking.attributes
  2705. db.collab =
  2706. ## Identifies a collaborator
  2707. element collab {
  2708. db.collab.attlist,
  2709. (db.person | db.personname | db.org | db.orgname)+,
  2710. db.affiliation*
  2711. }
  2712. }
  2713. div {
  2714. db.authorinitials.role.attribute = attribute role { text }
  2715. db.authorinitials.attlist =
  2716. db.authorinitials.role.attribute?
  2717. & db.common.attributes
  2718. & db.common.linking.attributes
  2719. db.authorinitials =
  2720. ## The initials or other short identifier for an author
  2721. element authorinitials { db.authorinitials.attlist, db._text }
  2722. }
  2723. div {
  2724. db.person.role.attribute = attribute role { text }
  2725. db.person.attlist =
  2726. db.person.role.attribute?
  2727. & db.common.attributes
  2728. & db.common.linking.attributes
  2729. db.person =
  2730. ## A person and associated metadata
  2731. element person {
  2732. db.person.attlist,
  2733. db.personname,
  2734. (db.address
  2735. | db.affiliation
  2736. | db.email
  2737. | db.uri
  2738. | db.personblurb)*
  2739. }
  2740. }
  2741. div {
  2742. db.org.role.attribute = attribute role { text }
  2743. db.org.attlist =
  2744. db.org.role.attribute?
  2745. & db.common.attributes
  2746. & db.common.linking.attributes
  2747. db.org =
  2748. ## An organization and associated metadata
  2749. element org {
  2750. db.org.attlist,
  2751. db.orgname,
  2752. (db.address | db.affiliation | db.email | db.uri | db.orgdiv)*
  2753. }
  2754. }
  2755. div {
  2756. db.confgroup.role.attribute = attribute role { text }
  2757. db.confgroup.attlist =
  2758. db.confgroup.role.attribute?
  2759. & db.common.attributes
  2760. & db.common.linking.attributes
  2761. db.confgroup =
  2762. ## A wrapper for document meta-information about a conference
  2763. element confgroup {
  2764. db.confgroup.attlist,
  2765. (db.confdates
  2766. | db.conftitle
  2767. | db.confnum
  2768. | db.confsponsor
  2769. | db.address)*
  2770. }
  2771. }
  2772. div {
  2773. db.confdates.role.attribute = attribute role { text }
  2774. db.confdates.attlist =
  2775. db.confdates.role.attribute?
  2776. & db.common.attributes
  2777. & db.common.linking.attributes
  2778. db.confdates =
  2779. ## The dates of a conference for which a document was written
  2780. element confdates { db.confdates.attlist, db._text }
  2781. }
  2782. div {
  2783. db.conftitle.role.attribute = attribute role { text }
  2784. db.conftitle.attlist =
  2785. db.conftitle.role.attribute?
  2786. & db.common.attributes
  2787. & db.common.linking.attributes
  2788. db.conftitle =
  2789. ## The title of a conference for which a document was written
  2790. element conftitle { db.conftitle.attlist, db._text }
  2791. }
  2792. div {
  2793. db.confnum.role.attribute = attribute role { text }
  2794. db.confnum.attlist =
  2795. db.confnum.role.attribute?
  2796. & db.common.attributes
  2797. & db.common.linking.attributes
  2798. db.confnum =
  2799. ## An identifier, frequently numerical, associated with a conference for which a document was written
  2800. element confnum { db.confnum.attlist, db._text }
  2801. }
  2802. div {
  2803. db.confsponsor.role.attribute = attribute role { text }
  2804. db.confsponsor.attlist =
  2805. db.confsponsor.role.attribute?
  2806. & db.common.attributes
  2807. & db.common.linking.attributes
  2808. db.confsponsor =
  2809. ## The sponsor of a conference for which a document was written
  2810. element confsponsor { db.confsponsor.attlist, db._text }
  2811. }
  2812. div {
  2813. db.contractnum.role.attribute = attribute role { text }
  2814. db.contractnum.attlist =
  2815. db.contractnum.role.attribute?
  2816. & db.common.attributes
  2817. & db.common.linking.attributes
  2818. db.contractnum =
  2819. ## The contract number of a document
  2820. element contractnum { db.contractnum.attlist, db._text }
  2821. }
  2822. div {
  2823. db.contractsponsor.role.attribute = attribute role { text }
  2824. db.contractsponsor.attlist =
  2825. db.contractsponsor.role.attribute?
  2826. & db.common.attributes
  2827. & db.common.linking.attributes
  2828. db.contractsponsor =
  2829. ## The sponsor of a contract
  2830. element contractsponsor { db.contractsponsor.attlist, db._text }
  2831. }
  2832. div {
  2833. db.copyright.role.attribute = attribute role { text }
  2834. db.copyright.attlist =
  2835. db.copyright.role.attribute?
  2836. & db.common.attributes
  2837. & db.common.linking.attributes
  2838. db.copyright =
  2839. ## Copyright information about a document
  2840. element copyright { db.copyright.attlist, db.year+, db.holder* }
  2841. }
  2842. div {
  2843. db.year.role.attribute = attribute role { text }
  2844. db.year.attlist =
  2845. db.year.role.attribute?
  2846. & db.common.attributes
  2847. & db.common.linking.attributes
  2848. db.year =
  2849. ## The year of publication of a document
  2850. element year { db.year.attlist, db._text }
  2851. }
  2852. div {
  2853. db.holder.role.attribute = attribute role { text }
  2854. db.holder.attlist =
  2855. db.holder.role.attribute?
  2856. & db.common.attributes
  2857. & db.common.linking.attributes
  2858. db.holder =
  2859. ## The name of the individual or organization that holds a copyright
  2860. element holder { db.holder.attlist, db._text }
  2861. }
  2862. db.cover.contentmodel =
  2863. (db.para.blocks
  2864. | db.list.blocks
  2865. | db.informal.blocks
  2866. | db.publishing.blocks
  2867. | db.graphic.blocks
  2868. | db.technical.blocks
  2869. | db.verbatim.blocks
  2870. | db.bridgehead
  2871. | db.remark
  2872. | db.revhistory)
  2873. | db.synopsis.blocks
  2874. div {
  2875. db.cover.role.attribute = attribute role { text }
  2876. db.cover.attlist =
  2877. db.cover.role.attribute?
  2878. & db.common.attributes
  2879. & db.common.linking.attributes
  2880. db.cover =
  2881. ## Additional content for the cover of a publication
  2882. element cover { db.cover.attlist, db.cover.contentmodel+ }
  2883. }
  2884. db.date.contentmodel =
  2885. xsd:date | xsd:dateTime | xsd:gYearMonth | xsd:gYear | text
  2886. div {
  2887. db.date.role.attribute = attribute role { text }
  2888. db.date.attlist =
  2889. db.date.role.attribute?
  2890. & db.common.attributes
  2891. & db.common.linking.attributes
  2892. db.date =
  2893. ## The date of publication or revision of a document
  2894. element date { db.date.attlist, db.date.contentmodel }
  2895. }
  2896. div {
  2897. db.edition.role.attribute = attribute role { text }
  2898. db.edition.attlist =
  2899. db.edition.role.attribute?
  2900. & db.common.attributes
  2901. & db.common.linking.attributes
  2902. db.edition =
  2903. ## The name or number of an edition of a document
  2904. element edition { db.edition.attlist, db._text }
  2905. }
  2906. div {
  2907. db.editor.role.attribute = attribute role { text }
  2908. db.editor.attlist =
  2909. db.editor.role.attribute?
  2910. & db.common.attributes
  2911. & db.common.linking.attributes
  2912. db.editor =
  2913. ## The name of the editor of a document
  2914. element editor { db.editor.attlist, db.credit.contentmodel }
  2915. }
  2916. div {
  2917. db.biblioid.role.attribute = attribute role { text }
  2918. db.biblioid.attlist =
  2919. db.biblioid.role.attribute?
  2920. & db.common.attributes
  2921. & db.common.linking.attributes
  2922. & db.biblio.class.attribute
  2923. db.biblioid =
  2924. ## An identifier for a document
  2925. element biblioid { db.biblioid.attlist, db._text }
  2926. }
  2927. div {
  2928. db.citebiblioid.role.attribute = attribute role { text }
  2929. db.citebiblioid.attlist =
  2930. db.citebiblioid.role.attribute?
  2931. & db.common.attributes
  2932. & db.common.linking.attributes
  2933. & db.biblio.class.attribute
  2934. db.citebiblioid =
  2935. ## A citation of a bibliographic identifier
  2936. element citebiblioid { db.citebiblioid.attlist, db._text }
  2937. }
  2938. div {
  2939. db.bibliosource.role.attribute = attribute role { text }
  2940. db.bibliosource.attlist =
  2941. db.bibliosource.role.attribute?
  2942. & db.common.attributes
  2943. & db.common.linking.attributes
  2944. & db.biblio.class.attribute
  2945. db.bibliosource =
  2946. ## The source of a document
  2947. element bibliosource { db.bibliosource.attlist, db._text }
  2948. }
  2949. div {
  2950. db.bibliorelation.type.enumeration =
  2951. ## The described resource pre-existed the referenced resource, which is essentially the same intellectual content presented in another format
  2952. "hasformat"
  2953. |
  2954. ## The described resource includes the referenced resource either physically or logically
  2955. "haspart"
  2956. |
  2957. ## The described resource has a version, edition, or adaptation, namely, the referenced resource
  2958. "hasversion"
  2959. |
  2960. ## The described resource is the same intellectual content of the referenced resource, but presented in another format
  2961. "isformatof"
  2962. |
  2963. ## The described resource is a physical or logical part of the referenced resource
  2964. "ispartof"
  2965. |
  2966. ## The described resource is referenced, cited, or otherwise pointed to by the referenced resource
  2967. "isreferencedby"
  2968. |
  2969. ## The described resource is supplanted, displaced, or superceded by the referenced resource
  2970. "isreplacedby"
  2971. |
  2972. ## The described resource is required by the referenced resource, either physically or logically
  2973. "isrequiredby"
  2974. |
  2975. ## 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
  2976. "isversionof"
  2977. |
  2978. ## The described resource references, cites, or otherwise points to the referenced resource
  2979. "references"
  2980. |
  2981. ## The described resource supplants, displaces, or supersedes the referenced resource
  2982. "replaces"
  2983. |
  2984. ## The described resource requires the referenced resource to support its function, delivery, or coherence of content
  2985. "requires"
  2986. db.bibliorelation.type-enum.attribute =
  2987. ## Identifies the type of relationship
  2988. attribute type { db.bibliorelation.type.enumeration }?
  2989. db.bibliorelation.type-other.attributes =
  2990. ## Identifies the type of relationship
  2991. attribute type {
  2992. ## The described resource has a non-standard relationship with the referenced resource
  2993. "othertype"
  2994. }?,
  2995. ## A keyword that identififes the type of the non-standard relationship
  2996. attribute othertype { xsd:NMTOKEN }
  2997. db.bibliorelation.type.attribute =
  2998. db.bibliorelation.type-enum.attribute
  2999. | db.bibliorelation.type-other.attributes
  3000. db.bibliorelation.role.attribute = attribute role { text }
  3001. db.bibliorelation.attlist =
  3002. db.bibliorelation.role.attribute?
  3003. & db.common.attributes
  3004. & db.common.linking.attributes
  3005. & db.biblio.class.attribute
  3006. & db.bibliorelation.type.attribute
  3007. db.bibliorelation =
  3008. ## The relationship of a document to another
  3009. element bibliorelation { db.bibliorelation.attlist, db._text }
  3010. }
  3011. div {
  3012. db.bibliocoverage.spacial.enumeration =
  3013. ## The DCMI Point identifies a point in space using its geographic coordinates
  3014. "dcmipoint"
  3015. |
  3016. ## ISO 3166 Codes for the representation of names of countries
  3017. "iso3166"
  3018. |
  3019. ## The DCMI Box identifies a region of space using its geographic limits
  3020. "dcmibox"
  3021. |
  3022. ## The Getty Thesaurus of Geographic Names
  3023. "tgn"
  3024. db.bibliocoverage.spatial-enum.attribute =
  3025. ## Specifies the type of spatial coverage
  3026. attribute spatial { db.bibliocoverage.spacial.enumeration }?
  3027. db.bibliocoverage.spatial-other.attributes =
  3028. ## Specifies the type of spatial coverage
  3029. attribute spatial {
  3030. ## Identifies a non-standard type of coverage
  3031. "otherspatial"
  3032. }?,
  3033. ## A keyword that identifies the type of non-standard coverage
  3034. attribute otherspatial { xsd:NMTOKEN }
  3035. db.bibliocoverage.spatial.attribute =
  3036. db.bibliocoverage.spatial-enum.attribute
  3037. | db.bibliocoverage.spatial-other.attributes
  3038. db.bibliocoverage.temporal.enumeration =
  3039. ## A specification of the limits of a time interval
  3040. "dcmiperiod"
  3041. |
  3042. ## W3C Encoding rules for dates and times—a profile based on ISO 8601
  3043. "w3c-dtf"
  3044. db.bibliocoverage.temporal-enum.attribute =
  3045. ## Specifies the type of temporal coverage
  3046. attribute temporal { db.bibliocoverage.temporal.enumeration }?
  3047. db.bibliocoverage.temporal-other.attributes =
  3048. ## Specifies the type of temporal coverage
  3049. attribute temporal {
  3050. ## Specifies a non-standard type of coverage
  3051. "othertemporal"
  3052. }?,
  3053. ## A keyword that identifies the type of non-standard coverage
  3054. attribute othertemporal { xsd:NMTOKEN }
  3055. db.bibliocoverage.temporal.attribute =
  3056. db.bibliocoverage.temporal-enum.attribute
  3057. | db.bibliocoverage.temporal-other.attributes
  3058. db.bibliocoverage.coverage.attrib =
  3059. db.bibliocoverage.spatial.attribute
  3060. & db.bibliocoverage.temporal.attribute
  3061. db.bibliocoverage.role.attribute = attribute role { text }
  3062. db.bibliocoverage.attlist =
  3063. db.bibliocoverage.role.attribute?
  3064. & db.common.attributes
  3065. & db.common.linking.attributes
  3066. & db.bibliocoverage.coverage.attrib
  3067. db.bibliocoverage =
  3068. ## The spatial or temporal coverage of a document
  3069. element bibliocoverage { db.bibliocoverage.attlist, db._text }
  3070. }
  3071. div {
  3072. db.legalnotice.role.attribute = attribute role { text }
  3073. db.legalnotice.attlist =
  3074. db.legalnotice.role.attribute?
  3075. & db.common.attributes
  3076. & db.common.linking.attributes
  3077. db.legalnotice.info = db._info.title.only
  3078. db.legalnotice =
  3079. ## A statement of legal obligations or requirements
  3080. element legalnotice {
  3081. db.legalnotice.attlist, db.legalnotice.info, db.all.blocks+
  3082. }
  3083. }
  3084. div {
  3085. db.othercredit.class.enumeration =
  3086. ## A copy editor
  3087. "copyeditor"
  3088. |
  3089. ## A graphic designer
  3090. "graphicdesigner"
  3091. |
  3092. ## Some other contributor
  3093. "other"
  3094. |
  3095. ## A production editor
  3096. "productioneditor"
  3097. |
  3098. ## A technical editor
  3099. "technicaleditor"
  3100. |
  3101. ## A translator
  3102. "translator"
  3103. |
  3104. ## An indexer
  3105. "indexer"
  3106. |
  3107. ## A proof-reader
  3108. "proofreader"
  3109. |
  3110. ## A cover designer
  3111. "coverdesigner"
  3112. |
  3113. ## An interior designer
  3114. "interiordesigner"
  3115. |
  3116. ## An illustrator
  3117. "illustrator"
  3118. |
  3119. ## A reviewer
  3120. "reviewer"
  3121. |
  3122. ## A typesetter
  3123. "typesetter"
  3124. |
  3125. ## A converter (a persons responsible for conversion, not an application)
  3126. "conversion"
  3127. db.othercredit.class-enum.attribute =
  3128. ## Identifies the nature of the contributor
  3129. attribute class { db.othercredit.class.enumeration }?
  3130. db.othercredit.class-other.attribute =
  3131. ## Identifies the nature of the non-standard contribution
  3132. attribute otherclass { xsd:NMTOKEN }
  3133. db.othercredit.class-other.attributes =
  3134. ## Identifies the nature of the contributor
  3135. attribute class {
  3136. ## Identifies a non-standard contribution
  3137. "other"
  3138. }
  3139. & db.othercredit.class-other.attribute
  3140. db.othercredit.class.attribute =
  3141. db.othercredit.class-enum.attribute
  3142. | db.othercredit.class-other.attributes
  3143. db.othercredit.role.attribute = attribute role { text }
  3144. db.othercredit.attlist =
  3145. db.othercredit.role.attribute?
  3146. & db.common.attributes
  3147. & db.common.linking.attributes
  3148. & db.othercredit.class.attribute
  3149. db.othercredit =
  3150. ## A person or entity, other than an author or editor, credited in a document
  3151. element othercredit {
  3152. db.othercredit.attlist, db.credit.contentmodel
  3153. }
  3154. }
  3155. div {
  3156. db.pagenums.role.attribute = attribute role { text }
  3157. db.pagenums.attlist =
  3158. db.pagenums.role.attribute?
  3159. & db.common.attributes
  3160. & db.common.linking.attributes
  3161. db.pagenums =
  3162. ## The numbers of the pages in a book, for use in a bibliographic entry
  3163. element pagenums { db.pagenums.attlist, db._text }
  3164. }
  3165. div {
  3166. db.contrib.role.attribute = attribute role { text }
  3167. db.contrib.attlist =
  3168. db.contrib.role.attribute?
  3169. & db.common.attributes
  3170. & db.common.linking.attributes
  3171. db.contrib =
  3172. ## A summary of the contributions made to a document by a credited source
  3173. element contrib { db.contrib.attlist, db.all.inlines* }
  3174. }
  3175. div {
  3176. db.honorific.role.attribute = attribute role { text }
  3177. db.honorific.attlist =
  3178. db.honorific.role.attribute?
  3179. & db.common.attributes
  3180. & db.common.linking.attributes
  3181. db.honorific =
  3182. ## The title of a person
  3183. element honorific { db.honorific.attlist, db._text }
  3184. }
  3185. div {
  3186. db.firstname.role.attribute = attribute role { text }
  3187. db.firstname.attlist =
  3188. db.firstname.role.attribute?
  3189. & db.common.attributes
  3190. & db.common.linking.attributes
  3191. db.firstname =
  3192. ## A given name of a person
  3193. element firstname { db.firstname.attlist, db._text }
  3194. }
  3195. div {
  3196. db.givenname.role.attribute = attribute role { text }
  3197. db.givenname.attlist =
  3198. db.givenname.role.attribute?
  3199. & db.common.attributes
  3200. & db.common.linking.attributes
  3201. db.givenname =
  3202. ## The given name of a person
  3203. element givenname { db.givenname.attlist, db._text }
  3204. }
  3205. div {
  3206. db.surname.role.attribute = attribute role { text }
  3207. db.surname.attlist =
  3208. db.surname.role.attribute?
  3209. & db.common.attributes
  3210. & db.common.linking.attributes
  3211. db.surname =
  3212. ## An inherited or family name; in western cultures the last name
  3213. element surname { db.surname.attlist, db._text }
  3214. }
  3215. div {
  3216. db.lineage.role.attribute = attribute role { text }
  3217. db.lineage.attlist =
  3218. db.lineage.role.attribute?
  3219. & db.common.attributes
  3220. & db.common.linking.attributes
  3221. db.lineage =
  3222. ## The portion of a person's name indicating a relationship to ancestors
  3223. element lineage { db.lineage.attlist, db._text }
  3224. }
  3225. div {
  3226. db.othername.role.attribute = attribute role { text }
  3227. db.othername.attlist =
  3228. db.othername.role.attribute?
  3229. & db.common.attributes
  3230. & db.common.linking.attributes
  3231. db.othername =
  3232. ## A component of a person's name that is not a first name, surname, or lineage
  3233. element othername { db.othername.attlist, db._text }
  3234. }
  3235. div {
  3236. db.printhistory.role.attribute = attribute role { text }
  3237. db.printhistory.attlist =
  3238. db.printhistory.role.attribute?
  3239. & db.common.attributes
  3240. & db.common.linking.attributes
  3241. db.printhistory =
  3242. ## The printing history of a document
  3243. element printhistory { db.printhistory.attlist, db.para.blocks+ }
  3244. }
  3245. div {
  3246. db.pubdate.role.attribute = attribute role { text }
  3247. db.pubdate.attlist =
  3248. db.pubdate.role.attribute?
  3249. & db.common.attributes
  3250. & db.common.linking.attributes
  3251. db.pubdate =
  3252. ## The date of publication of a document
  3253. element pubdate { db.pubdate.attlist, db.date.contentmodel }
  3254. }
  3255. div {
  3256. db.publisher.role.attribute = attribute role { text }
  3257. db.publisher.attlist =
  3258. db.publisher.role.attribute?
  3259. & db.common.attributes
  3260. & db.common.linking.attributes
  3261. db.publisher =
  3262. ## The publisher of a document
  3263. element publisher {
  3264. db.publisher.attlist, db.publishername, db.address*
  3265. }
  3266. }
  3267. div {
  3268. db.publishername.role.attribute = attribute role { text }
  3269. db.publishername.attlist =
  3270. db.publishername.role.attribute?
  3271. & db.common.attributes
  3272. & db.common.linking.attributes
  3273. db.publishername =
  3274. ## The name of the publisher of a document
  3275. element publishername { db.publishername.attlist, db._text }
  3276. }
  3277. div {
  3278. db.releaseinfo.role.attribute = attribute role { text }
  3279. db.releaseinfo.attlist =
  3280. db.releaseinfo.role.attribute?
  3281. & db.common.attributes
  3282. & db.common.linking.attributes
  3283. db.releaseinfo =
  3284. ## Information about a particular release of a document
  3285. element releaseinfo { db.releaseinfo.attlist, db._text }
  3286. }
  3287. div {
  3288. db.revhistory.role.attribute = attribute role { text }
  3289. db.revhistory.attlist =
  3290. db.revhistory.role.attribute?
  3291. & db.common.attributes
  3292. & db.common.linking.attributes
  3293. db.revhistory.info = db._info.title.only
  3294. db.revhistory =
  3295. ## A history of the revisions to a document
  3296. element revhistory {
  3297. db.revhistory.attlist, db.revhistory.info, db.revision+
  3298. }
  3299. }
  3300. div {
  3301. db.revision.role.attribute = attribute role { text }
  3302. db.revision.attlist =
  3303. db.revision.role.attribute?
  3304. & db.common.attributes
  3305. & db.common.linking.attributes
  3306. db.revision =
  3307. ## An entry describing a single revision in the history of the revisions to a document
  3308. element revision {
  3309. db.revision.attlist,
  3310. db.revnumber?,
  3311. db.date,
  3312. (db.authorinitials | db.author)*,
  3313. (db.revremark | db.revdescription)?
  3314. }
  3315. }
  3316. div {
  3317. db.revnumber.role.attribute = attribute role { text }
  3318. db.revnumber.attlist =
  3319. db.revnumber.role.attribute?
  3320. & db.common.attributes
  3321. & db.common.linking.attributes
  3322. db.revnumber =
  3323. ## A document revision number
  3324. element revnumber { db.revnumber.attlist, db._text }
  3325. }
  3326. div {
  3327. db.revremark.role.attribute = attribute role { text }
  3328. db.revremark.attlist =
  3329. db.revremark.role.attribute?
  3330. & db.common.attributes
  3331. & db.common.linking.attributes
  3332. db.revremark =
  3333. ## A description of a revision to a document
  3334. element revremark { db.revremark.attlist, db._text }
  3335. }
  3336. div {
  3337. db.revdescription.role.attribute = attribute role { text }
  3338. db.revdescription.attlist =
  3339. db.revdescription.role.attribute?
  3340. & db.common.attributes
  3341. & db.common.linking.attributes
  3342. db.revdescription =
  3343. ## A extended description of a revision to a document
  3344. element revdescription { db.revdescription.attlist, db.all.blocks* }
  3345. }
  3346. div {
  3347. db.seriesvolnums.role.attribute = attribute role { text }
  3348. db.seriesvolnums.attlist =
  3349. db.seriesvolnums.role.attribute?
  3350. & db.common.attributes
  3351. & db.common.linking.attributes
  3352. db.seriesvolnums =
  3353. ## Numbers of the volumes in a series of books
  3354. element seriesvolnums { db.seriesvolnums.attlist, db._text }
  3355. }
  3356. div {
  3357. db.volumenum.role.attribute = attribute role { text }
  3358. db.volumenum.attlist =
  3359. db.volumenum.role.attribute?
  3360. & db.common.attributes
  3361. & db.common.linking.attributes
  3362. db.volumenum =
  3363. ## The volume number of a document in a set (as of books in a set or articles in a journal)
  3364. element volumenum { db.volumenum.attlist, db._text }
  3365. }
  3366. div {
  3367. db.issuenum.role.attribute = attribute role { text }
  3368. db.issuenum.attlist =
  3369. db.issuenum.role.attribute?
  3370. & db.common.attributes
  3371. & db.common.linking.attributes
  3372. db.issuenum =
  3373. ## The number of an issue of a journal
  3374. element issuenum { db.issuenum.attlist, db._text }
  3375. }
  3376. div {
  3377. db.package.role.attribute = attribute role { text }
  3378. db.package.attlist =
  3379. db.package.role.attribute?
  3380. & db.common.attributes
  3381. & db.common.linking.attributes
  3382. db.package =
  3383. ## A software or application package
  3384. element package { db.package.attlist, db._text }
  3385. }
  3386. div {
  3387. db.email.role.attribute = attribute role { text }
  3388. db.email.attlist =
  3389. db.email.role.attribute?
  3390. & db.common.attributes
  3391. & db.common.linking.attributes
  3392. db.email =
  3393. ## An email address
  3394. element email { db.email.attlist, db._text }
  3395. }
  3396. div {
  3397. db.lineannotation.role.attribute = attribute role { text }
  3398. db.lineannotation.attlist =
  3399. db.lineannotation.role.attribute?
  3400. & db.common.attributes
  3401. & db.common.linking.attributes
  3402. db.lineannotation =
  3403. ## A comment on a line in a verbatim listing
  3404. element lineannotation { db.lineannotation.attlist, db._text }
  3405. }
  3406. div {
  3407. db.parameter.class.enumeration =
  3408. ## A command
  3409. "command"
  3410. |
  3411. ## A function
  3412. "function"
  3413. |
  3414. ## An option
  3415. "option"
  3416. db.parameter.class.attribute =
  3417. ## Identifies the class of parameter
  3418. attribute class { db.parameter.class.enumeration }
  3419. db.parameter.role.attribute = attribute role { text }
  3420. db.parameter.attlist =
  3421. db.parameter.role.attribute?
  3422. & db.common.attributes
  3423. & db.common.linking.attributes
  3424. & db.parameter.class.attribute?
  3425. db.parameter =
  3426. ## A value or a symbolic reference to a value
  3427. element parameter { db.parameter.attlist, db._text }
  3428. }
  3429. db.replaceable.inlines = db._text | db.co
  3430. div {
  3431. db.replaceable.class.enumeration =
  3432. ## A command
  3433. "command"
  3434. |
  3435. ## A function
  3436. "function"
  3437. |
  3438. ## An option
  3439. "option"
  3440. |
  3441. ## A parameter
  3442. "parameter"
  3443. db.replaceable.class.attribute =
  3444. ## Identifies the nature of the replaceable text
  3445. attribute class { db.replaceable.class.enumeration }
  3446. db.replaceable.role.attribute = attribute role { text }
  3447. db.replaceable.attlist =
  3448. db.replaceable.role.attribute?
  3449. & db.common.attributes
  3450. & db.common.linking.attributes
  3451. & db.replaceable.class.attribute?
  3452. db.replaceable =
  3453. ## Content that may or must be replaced by the user
  3454. element replaceable {
  3455. db.replaceable.attlist, db.replaceable.inlines*
  3456. }
  3457. }
  3458. div {
  3459. db.uri.type.attribute =
  3460. ## Identifies the type of URI specified
  3461. attribute type { text }?
  3462. db.uri.role.attribute = attribute role { text }
  3463. db.uri.attlist =
  3464. db.uri.role.attribute?
  3465. & db.common.attributes
  3466. & db.common.linking.attributes
  3467. & db.uri.type.attribute
  3468. db.uri =
  3469. ## A Uniform Resource Identifier
  3470. element uri { db.uri.attlist, db._text }
  3471. }
  3472. div {
  3473. db.abbrev.role.attribute = attribute role { text }
  3474. db.abbrev.attlist =
  3475. db.abbrev.role.attribute?
  3476. & db.common.attributes
  3477. & db.common.linking.attributes
  3478. db.abbrev =
  3479. ## An abbreviation, especially one followed by a period
  3480. element abbrev {
  3481. db.abbrev.attlist,
  3482. (db._text | db.superscript | db.subscript | db.trademark)*
  3483. }
  3484. }
  3485. div {
  3486. db.acronym.role.attribute = attribute role { text }
  3487. db.acronym.attlist =
  3488. db.acronym.role.attribute?
  3489. & db.common.attributes
  3490. & db.common.linking.attributes
  3491. db.acronym =
  3492. ## An often pronounceable word made from the initial (or selected) letters of a name or phrase
  3493. element acronym {
  3494. db.acronym.attlist,
  3495. (db._text | db.superscript | db.subscript | db.trademark)*
  3496. }
  3497. }
  3498. div {
  3499. db.citation.role.attribute = attribute role { text }
  3500. db.citation.attlist =
  3501. db.citation.role.attribute?
  3502. & db.common.attributes
  3503. & db.common.linking.attributes
  3504. db.citation =
  3505. ## An inline bibliographic reference to another published work
  3506. element citation { db.citation.attlist, db.all.inlines* }
  3507. }
  3508. div {
  3509. db.citerefentry.role.attribute = attribute role { text }
  3510. db.citerefentry.attlist =
  3511. db.citerefentry.role.attribute?
  3512. & db.common.attributes
  3513. & db.common.linking.attributes
  3514. db.citerefentry =
  3515. ## A citation to a reference page
  3516. element citerefentry {
  3517. db.citerefentry.attlist, db.refentrytitle, db.manvolnum?
  3518. }
  3519. }
  3520. div {
  3521. db.refentrytitle.role.attribute = attribute role { text }
  3522. db.refentrytitle.attlist =
  3523. db.refentrytitle.role.attribute?
  3524. & db.common.attributes
  3525. & db.common.linking.attributes
  3526. db.refentrytitle =
  3527. ## The title of a reference page
  3528. element refentrytitle { db.refentrytitle.attlist, db.all.inlines* }
  3529. }
  3530. div {
  3531. db.manvolnum.role.attribute = attribute role { text }
  3532. db.manvolnum.attlist =
  3533. db.manvolnum.role.attribute?
  3534. & db.common.attributes
  3535. & db.common.linking.attributes
  3536. db.manvolnum =
  3537. ## A reference volume number
  3538. element manvolnum { db.manvolnum.attlist, db._text }
  3539. }
  3540. div {
  3541. db.citetitle.pubwork.enumeration =
  3542. ## An article
  3543. "article"
  3544. |
  3545. ## A bulletin board system
  3546. "bbs"
  3547. |
  3548. ## A book
  3549. "book"
  3550. |
  3551. ## A CD-ROM
  3552. "cdrom"
  3553. |
  3554. ## A chapter (as of a book)
  3555. "chapter"
  3556. |
  3557. ## A DVD
  3558. "dvd"
  3559. |
  3560. ## An email message
  3561. "emailmessage"
  3562. |
  3563. ## A gopher page
  3564. "gopher"
  3565. |
  3566. ## A journal
  3567. "journal"
  3568. |
  3569. ## A manuscript
  3570. "manuscript"
  3571. |
  3572. ## A posting to a newsgroup
  3573. "newsposting"
  3574. |
  3575. ## A part (as of a book)
  3576. "part"
  3577. |
  3578. ## A reference entry
  3579. "refentry"
  3580. |
  3581. ## A section (as of a book or article)
  3582. "section"
  3583. |
  3584. ## A series
  3585. "series"
  3586. |
  3587. ## A set (as of books)
  3588. "set"
  3589. |
  3590. ## A web page
  3591. "webpage"
  3592. |
  3593. ## A wiki page
  3594. "wiki"
  3595. db.citetitle.pubwork.attribute =
  3596. ## Identifies the nature of the publication being cited
  3597. attribute pubwork { db.citetitle.pubwork.enumeration }
  3598. db.citetitle.role.attribute = attribute role { text }
  3599. db.citetitle.attlist =
  3600. db.citetitle.role.attribute?
  3601. & db.common.attributes
  3602. & db.common.linking.attributes
  3603. & db.citetitle.pubwork.attribute?
  3604. db.citetitle =
  3605. ## The title of a cited work
  3606. element citetitle { db.citetitle.attlist, db.all.inlines* }
  3607. }
  3608. div {
  3609. db.emphasis.role.attribute = attribute role { text }
  3610. db.emphasis.attlist =
  3611. db.emphasis.role.attribute?
  3612. & db.common.attributes
  3613. & db.common.linking.attributes
  3614. db.emphasis =
  3615. ## Emphasized text
  3616. element emphasis { db.emphasis.attlist, db.all.inlines* }
  3617. }
  3618. div {
  3619. db._emphasis =
  3620. ## A limited span of emphasized text
  3621. element emphasis { db.emphasis.attlist, db._text }
  3622. }
  3623. div {
  3624. db.foreignphrase.role.attribute = attribute role { text }
  3625. db.foreignphrase.attlist =
  3626. db.foreignphrase.role.attribute?
  3627. & db.common.attributes
  3628. & db.common.linking.attributes
  3629. db.foreignphrase =
  3630. ## A word or phrase in a language other than the primary language of the document
  3631. element foreignphrase {
  3632. db.foreignphrase.attlist, (text | db.general.inlines)*
  3633. }
  3634. }
  3635. div {
  3636. db._foreignphrase.role.attribute = attribute role { text }
  3637. db._foreignphrase.attlist =
  3638. db._foreignphrase.role.attribute?
  3639. & db.common.attributes
  3640. & db.common.linking.attributes
  3641. db._foreignphrase =
  3642. ## A limited word or phrase in a language other than the primary language of the document
  3643. element foreignphrase { db._foreignphrase.attlist, db._text }
  3644. }
  3645. div {
  3646. db.phrase.role.attribute = attribute role { text }
  3647. db.phrase.attlist =
  3648. db.phrase.role.attribute?
  3649. & db.common.attributes
  3650. & db.common.linking.attributes
  3651. db.phrase =
  3652. ## A span of text
  3653. element phrase { db.phrase.attlist, db.all.inlines* }
  3654. }
  3655. div {
  3656. db._phrase =
  3657. ## A limited span of text
  3658. element phrase { db.phrase.attlist, db._text }
  3659. }
  3660. div {
  3661. db.quote.role.attribute = attribute role { text }
  3662. db.quote.attlist =
  3663. db.quote.role.attribute?
  3664. & db.common.attributes
  3665. & db.common.linking.attributes
  3666. db.quote =
  3667. ## An inline quotation
  3668. element quote { db.quote.attlist, db.all.inlines* }
  3669. }
  3670. div {
  3671. db._quote.role.attribute = attribute role { text }
  3672. db._quote.attlist =
  3673. db._quote.role.attribute?
  3674. & db.common.attributes
  3675. & db.common.linking.attributes
  3676. db._quote =
  3677. ## A limited inline quotation
  3678. element quote { db._quote.attlist, db._text }
  3679. }
  3680. div {
  3681. db.subscript.role.attribute = attribute role { text }
  3682. db.subscript.attlist =
  3683. db.subscript.role.attribute?
  3684. & db.common.attributes
  3685. & db.common.linking.attributes
  3686. db.subscript =
  3687. ## A subscript (as in H2
  3688. ## O, the molecular formula for water)
  3689. element subscript { db.subscript.attlist, db._text }
  3690. }
  3691. div {
  3692. db.superscript.role.attribute = attribute role { text }
  3693. db.superscript.attlist =
  3694. db.superscript.role.attribute?
  3695. & db.common.attributes
  3696. & db.common.linking.attributes
  3697. db.superscript =
  3698. ## A superscript (as in x2
  3699. ## , the mathematical notation for x multiplied by itself)
  3700. element superscript { db.superscript.attlist, db._text }
  3701. }
  3702. div {
  3703. db.trademark.class.enumeration =
  3704. ## A copyright
  3705. "copyright"
  3706. |
  3707. ## A registered copyright
  3708. "registered"
  3709. |
  3710. ## A service
  3711. "service"
  3712. |
  3713. ## A trademark
  3714. "trade"
  3715. db.trademark.class.attribute =
  3716. ## Identifies the class of trade mark
  3717. attribute class { db.trademark.class.enumeration }
  3718. db.trademark.role.attribute = attribute role { text }
  3719. db.trademark.attlist =
  3720. db.trademark.role.attribute?
  3721. & db.common.attributes
  3722. & db.common.linking.attributes
  3723. & db.trademark.class.attribute?
  3724. db.trademark =
  3725. ## A trademark
  3726. element trademark { db.trademark.attlist, db._text }
  3727. }
  3728. div {
  3729. db.wordasword.role.attribute = attribute role { text }
  3730. db.wordasword.attlist =
  3731. db.wordasword.role.attribute?
  3732. & db.common.attributes
  3733. & db.common.linking.attributes
  3734. db.wordasword =
  3735. ## A word meant specifically as a word and not representing anything else
  3736. element wordasword { db.wordasword.attlist, db._text }
  3737. }
  3738. div {
  3739. db.footnoteref.role.attribute = attribute role { text }
  3740. db.footnoteref.label.attribute = db.label.attribute
  3741. db.footnoteref.attlist =
  3742. db.footnoteref.role.attribute?
  3743. & db.common.attributes
  3744. & db.linkend.attribute
  3745. & db.footnoteref.label.attribute?
  3746. db.footnoteref =
  3747. ## A cross reference to a footnote (a footnote mark)
  3748. [
  3749. s:pattern [
  3750. name = "Footnote reference type constraint"
  3751. "\x{a}" ~
  3752. " "
  3753. s:rule [
  3754. context = "db:footnoteref"
  3755. "\x{a}" ~
  3756. " "
  3757. s:assert [
  3758. test =
  3759. "local-name(//*[@xml:id=current()/@linkend]) = 'footnote' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"
  3760. "@linkend on footnoteref must point to a footnote."
  3761. ]
  3762. "\x{a}" ~
  3763. " "
  3764. ]
  3765. "\x{a}" ~
  3766. " "
  3767. ]
  3768. ]
  3769. element footnoteref { db.footnoteref.attlist, empty }
  3770. }
  3771. div {
  3772. db.xref.role.attribute = attribute role { text }
  3773. db.xref.xrefstyle.attribute = db.xrefstyle.attribute
  3774. db.xref.endterm.attribute = db.endterm.attribute
  3775. db.xref.attlist =
  3776. db.xref.role.attribute?
  3777. & db.common.attributes
  3778. & db.common.req.linking.attributes
  3779. & db.xref.xrefstyle.attribute?
  3780. & db.xref.endterm.attribute?
  3781. db.xref =
  3782. ## A cross reference to another part of the document
  3783. element xref { db.xref.attlist, empty }
  3784. }
  3785. div {
  3786. db.link.role.attribute = attribute role { text }
  3787. db.link.xrefstyle.attribute = db.xrefstyle.attribute
  3788. db.link.endterm.attribute = db.endterm.attribute
  3789. db.link.attlist =
  3790. db.link.role.attribute?
  3791. & db.common.attributes
  3792. & db.common.req.linking.attributes
  3793. & db.link.xrefstyle.attribute?
  3794. & db.link.endterm.attribute?
  3795. db.link =
  3796. ## A hypertext link
  3797. element link { db.link.attlist, db.all.inlines* }
  3798. }
  3799. div {
  3800. db.olink.role.attribute = attribute role { text }
  3801. db.olink.xrefstyle.attribute = db.xrefstyle.attribute
  3802. db.olink.localinfo.attribute =
  3803. ## Holds additional information that may be used by the application when resolving the link
  3804. attribute localinfo { text }
  3805. db.olink.targetdoc.attribute =
  3806. ## Specifies the URI of the document in which the link target appears
  3807. attribute targetdoc { xsd:anyURI }
  3808. db.olink.targetptr.attribute =
  3809. ## Specifies the location of the link target in the document
  3810. attribute targetptr { text }
  3811. db.olink.type.attribute =
  3812. ## Identifies application-specific customization of the link behavior
  3813. attribute type { text }
  3814. db.olink.attlist =
  3815. db.common.attributes
  3816. & db.olink.targetdoc.attribute?
  3817. & db.olink.role.attribute?
  3818. & db.olink.xrefstyle.attribute?
  3819. & db.olink.localinfo.attribute?
  3820. & db.olink.targetptr.attribute?
  3821. & db.olink.type.attribute?
  3822. db.olink =
  3823. ## A link that addresses its target indirectly
  3824. element olink { db.olink.attlist, db.all.inlines* }
  3825. }
  3826. div {
  3827. db.anchor.role.attribute = attribute role { text }
  3828. db.anchor.attlist =
  3829. db.anchor.role.attribute? & db.common.idreq.attributes
  3830. db.anchor =
  3831. ## A spot in the document
  3832. element anchor { db.anchor.attlist, empty }
  3833. }
  3834. div {
  3835. db.alt.role.attribute = attribute role { text }
  3836. db.alt.attlist = db.alt.role.attribute? & db.common.attributes
  3837. db.alt =
  3838. ## A text-only annotation, often used for accessibility
  3839. element alt { db.alt.attlist, (text | db.inlinemediaobject)* }
  3840. }
  3841. db.status.attribute =
  3842. ## Identifies the editorial or publication status of the element on which it occurs
  3843. attribute status { text }
  3844. db.toplevel.sections =
  3845. ((db.section+, db.simplesect*) | db.simplesect+)
  3846. | (db.sect1+, db.simplesect*)
  3847. | db.refentry+
  3848. db.toplevel.blocks.or.sections =
  3849. (db.all.blocks+, db.toplevel.sections?) | db.toplevel.sections
  3850. db.recursive.sections =
  3851. ((db.section+, db.simplesect*) | db.simplesect+)
  3852. | db.refentry+
  3853. db.recursive.blocks.or.sections =
  3854. (db.all.blocks+, db.recursive.sections?) | db.recursive.sections
  3855. db.divisions = db.part | db.reference
  3856. db.components =
  3857. db.dedication
  3858. | db.acknowledgements
  3859. | db.preface
  3860. | db.chapter
  3861. | db.appendix
  3862. | db.article
  3863. | db.colophon
  3864. db.navigation.components =
  3865. notAllowed | db.glossary | db.bibliography | db.index | db.toc
  3866. db.component.contentmodel =
  3867. db.navigation.components*,
  3868. db.toplevel.blocks.or.sections,
  3869. db.navigation.components*
  3870. db.setindex.components = notAllowed | db.setindex
  3871. db.toc.components = notAllowed | db.toc
  3872. db.set.components = db.set | db.book
  3873. div {
  3874. db.set.status.attribute = db.status.attribute
  3875. db.set.role.attribute = attribute role { text }
  3876. db.set.attlist =
  3877. db.set.role.attribute?
  3878. & db.common.attributes
  3879. & db.common.linking.attributes
  3880. & db.label.attribute?
  3881. & db.set.status.attribute?
  3882. db.set.info = db._info.title.req
  3883. db.set =
  3884. ## A collection of books
  3885. element set {
  3886. db.set.attlist,
  3887. db.set.info,
  3888. db.toc.components?,
  3889. db.set.components+,
  3890. db.setindex.components?
  3891. }
  3892. }
  3893. db.book.components =
  3894. (db.navigation.components | db.components | db.divisions)* | db.topic*
  3895. div {
  3896. db.book.status.attribute = db.status.attribute
  3897. db.book.role.attribute = attribute role { text }
  3898. db.book.attlist =
  3899. db.book.role.attribute?
  3900. & db.common.attributes
  3901. & db.common.linking.attributes
  3902. & db.label.attribute?
  3903. & db.book.status.attribute?
  3904. db.book.info = db._info
  3905. db.book =
  3906. ## A book
  3907. element book { db.book.attlist, db.book.info, db.book.components }
  3908. }
  3909. div {
  3910. db.dedication.status.attribute = db.status.attribute
  3911. db.dedication.role.attribute = attribute role { text }
  3912. db.dedication.attlist =
  3913. db.dedication.role.attribute?
  3914. & db.common.attributes
  3915. & db.common.linking.attributes
  3916. & db.label.attribute?
  3917. & db.dedication.status.attribute?
  3918. db.dedication.info = db._info
  3919. db.dedication =
  3920. ## The dedication of a book or other component
  3921. element dedication {
  3922. db.dedication.attlist, db.dedication.info, db.all.blocks+
  3923. }
  3924. }
  3925. div {
  3926. db.acknowledgements.status.attribute = db.status.attribute
  3927. db.acknowledgements.role.attribute = attribute role { text }
  3928. db.acknowledgements.attlist =
  3929. db.acknowledgements.role.attribute?
  3930. & db.common.attributes
  3931. & db.common.linking.attributes
  3932. & db.label.attribute?
  3933. & db.acknowledgements.status.attribute?
  3934. db.acknowledgements.info = db._info
  3935. db.acknowledgements =
  3936. ## Acknowledgements of a book or other component
  3937. element acknowledgements {
  3938. db.acknowledgements.attlist,
  3939. db.acknowledgements.info,
  3940. db.all.blocks+
  3941. }
  3942. }
  3943. div {
  3944. db.colophon.status.attribute = db.status.attribute
  3945. db.colophon.role.attribute = attribute role { text }
  3946. db.colophon.attlist =
  3947. db.colophon.role.attribute?
  3948. & db.common.attributes
  3949. & db.common.linking.attributes
  3950. & db.label.attribute?
  3951. & db.colophon.status.attribute?
  3952. db.colophon.info = db._info
  3953. db.colophon =
  3954. ## Text at the back of a book describing facts about its production
  3955. element colophon {
  3956. db.colophon.attlist,
  3957. db.colophon.info,
  3958. ((db.all.blocks+, db.simplesect*)
  3959. | (db.all.blocks*, db.simplesect+))
  3960. }
  3961. }
  3962. db.appendix.contentmodel = db.component.contentmodel | db.topic+
  3963. div {
  3964. db.appendix.status.attribute = db.status.attribute
  3965. db.appendix.role.attribute = attribute role { text }
  3966. db.appendix.attlist =
  3967. db.appendix.role.attribute?
  3968. & db.common.attributes
  3969. & db.common.linking.attributes
  3970. & db.label.attribute?
  3971. & db.appendix.status.attribute?
  3972. db.appendix.info = db._info.title.req
  3973. db.appendix =
  3974. ## An appendix in a book or article
  3975. element appendix {
  3976. db.appendix.attlist, db.appendix.info, db.appendix.contentmodel?
  3977. }
  3978. }
  3979. db.chapter.contentmodel = db.component.contentmodel | db.topic+
  3980. div {
  3981. db.chapter.status.attribute = db.status.attribute
  3982. db.chapter.role.attribute = attribute role { text }
  3983. db.chapter.attlist =
  3984. db.chapter.role.attribute?
  3985. & db.common.attributes
  3986. & db.common.linking.attributes
  3987. & db.label.attribute?
  3988. & db.chapter.status.attribute?
  3989. db.chapter.info = db._info.title.req
  3990. db.chapter =
  3991. ## A chapter, as of a book
  3992. element chapter {
  3993. db.chapter.attlist, db.chapter.info, db.chapter.contentmodel?
  3994. }
  3995. }
  3996. db.part.components =
  3997. (db.navigation.components | db.components)
  3998. | (db.refentry | db.reference)
  3999. db.part.contentmodel = db.part.components+ | db.topic+
  4000. div {
  4001. db.part.status.attribute = db.status.attribute
  4002. db.part.role.attribute = attribute role { text }
  4003. db.part.attlist =
  4004. db.part.role.attribute?
  4005. & db.common.attributes
  4006. & db.common.linking.attributes
  4007. & db.label.attribute?
  4008. & db.part.status.attribute?
  4009. db.part.info = db._info.title.req
  4010. db.part =
  4011. ## A division in a book
  4012. element part {
  4013. db.part.attlist,
  4014. db.part.info,
  4015. db.partintro?,
  4016. db.part.contentmodel?
  4017. }
  4018. }
  4019. div {
  4020. db.preface.status.attribute = db.status.attribute
  4021. db.preface.role.attribute = attribute role { text }
  4022. db.preface.attlist =
  4023. db.preface.role.attribute?
  4024. & db.common.attributes
  4025. & db.common.linking.attributes
  4026. & db.label.attribute?
  4027. & db.preface.status.attribute?
  4028. db.preface.info = db._info.title.req
  4029. db.preface =
  4030. ## Introductory matter preceding the first chapter of a book
  4031. element preface {
  4032. db.preface.attlist, db.preface.info, db.component.contentmodel?
  4033. }
  4034. }
  4035. div {
  4036. db.partintro.status.attribute = db.status.attribute
  4037. db.partintro.role.attribute = attribute role { text }
  4038. db.partintro.attlist =
  4039. db.partintro.role.attribute?
  4040. & db.common.attributes
  4041. & db.common.linking.attributes
  4042. & db.label.attribute?
  4043. & db.partintro.status.attribute?
  4044. db.partintro.info = db._info
  4045. db.partintro =
  4046. ## An introduction to the contents of a part
  4047. element partintro {
  4048. db.partintro.attlist,
  4049. db.partintro.info,
  4050. db.toplevel.blocks.or.sections?
  4051. }
  4052. }
  4053. div {
  4054. db.section.status.attribute = db.status.attribute
  4055. db.section.role.attribute = attribute role { text }
  4056. db.section.attlist =
  4057. db.section.role.attribute?
  4058. & db.common.attributes
  4059. & db.common.linking.attributes
  4060. & db.label.attribute?
  4061. & db.section.status.attribute?
  4062. db.section.info = db._info.title.req
  4063. db.section =
  4064. ## A recursive section
  4065. element section {
  4066. db.section.attlist,
  4067. db.section.info,
  4068. db.recursive.blocks.or.sections?,
  4069. db.navigation.components*
  4070. }
  4071. }
  4072. div {
  4073. db.simplesect.status.attribute = db.status.attribute
  4074. db.simplesect.role.attribute = attribute role { text }
  4075. db.simplesect.attlist =
  4076. db.simplesect.role.attribute?
  4077. & db.common.attributes
  4078. & db.common.linking.attributes
  4079. & db.label.attribute?
  4080. & db.simplesect.status.attribute?
  4081. db.simplesect.info = db._info.title.req
  4082. db.simplesect =
  4083. ## A section of a document with no subdivisions
  4084. element simplesect {
  4085. db.simplesect.attlist, db.simplesect.info, db.all.blocks*
  4086. }
  4087. }
  4088. db.article.components = db.toplevel.sections
  4089. db.article.navcomponents =
  4090. db.navigation.components
  4091. | db.acknowledgements
  4092. | db.dedication
  4093. | db.appendix
  4094. | db.colophon
  4095. div {
  4096. db.article.status.attribute = db.status.attribute
  4097. db.article.class.enumeration =
  4098. ## A collection of frequently asked questions.
  4099. "faq"
  4100. |
  4101. ## An article in a journal or other periodical.
  4102. "journalarticle"
  4103. |
  4104. ## A description of a product.
  4105. "productsheet"
  4106. |
  4107. ## A specification.
  4108. "specification"
  4109. |
  4110. ## A technical report.
  4111. "techreport"
  4112. |
  4113. ## A white paper.
  4114. "whitepaper"
  4115. db.article.class.attribute =
  4116. ## Identifies the nature of the article
  4117. attribute class { db.article.class.enumeration }
  4118. db.article.role.attribute = attribute role { text }
  4119. db.article.attlist =
  4120. db.article.role.attribute?
  4121. & db.common.attributes
  4122. & db.common.linking.attributes
  4123. & db.label.attribute?
  4124. & db.article.status.attribute?
  4125. & db.article.class.attribute?
  4126. db.article.info = db._info.title.req
  4127. db.article =
  4128. ## An article
  4129. element article {
  4130. db.article.attlist,
  4131. db.article.info,
  4132. db.article.navcomponents*,
  4133. ((db.all.blocks+, db.article.components?)
  4134. | db.article.components),
  4135. db.article.navcomponents*
  4136. }
  4137. }
  4138. db.annotations.attribute =
  4139. ## Identifies one or more annotations that apply to this element
  4140. attribute annotations { text }
  4141. div {
  4142. db.annotation.role.attribute = attribute role { text }
  4143. db.annotation.annotates.attribute =
  4144. ## Identifies one ore more elements to which this annotation applies
  4145. attribute annotates { text }
  4146. db.annotation.attlist =
  4147. db.annotation.role.attribute?
  4148. & db.annotation.annotates.attribute?
  4149. & db.common.attributes
  4150. db.annotation.info = db._info.title.only
  4151. db.annotation =
  4152. ## An annotation
  4153. [
  4154. s:pattern [
  4155. name = "Element exclusion"
  4156. "\x{a}" ~
  4157. " "
  4158. s:rule [
  4159. context = "db:annotation"
  4160. "\x{a}" ~
  4161. " "
  4162. s:assert [
  4163. test = "not(.//db:annotation)"
  4164. "annotation must not occur among the children or descendants of annotation"
  4165. ]
  4166. "\x{a}" ~
  4167. " "
  4168. ]
  4169. "\x{a}" ~
  4170. " "
  4171. ]
  4172. ]
  4173. element annotation {
  4174. db.annotation.attlist, db.annotation.info, db.all.blocks+
  4175. }
  4176. }
  4177. db.xlink.extended.type.attribute =
  4178. ## Identifies the XLink extended link type
  4179. [
  4180. s:pattern [
  4181. name = "XLink extended placement"
  4182. "\x{a}" ~
  4183. " "
  4184. s:rule [
  4185. context = "*[@xlink:type='extended']"
  4186. "\x{a}" ~
  4187. " "
  4188. s:assert [
  4189. test = "not(parent::*[@xlink:type='extended'])"
  4190. "An XLink extended type element may not occur as the direct child of an XLink extended type element."
  4191. ]
  4192. "\x{a}" ~
  4193. " "
  4194. ]
  4195. "\x{a}" ~
  4196. " "
  4197. ]
  4198. ]
  4199. attribute xlink:type {
  4200. ## An XLink extended link type
  4201. "extended"
  4202. }
  4203. db.xlink.locator.type.attribute =
  4204. ## Identifies the XLink locator link type
  4205. [
  4206. s:pattern [
  4207. name = "XLink locator placement"
  4208. "\x{a}" ~
  4209. " "
  4210. s:rule [
  4211. context = "*[@xlink:type='locator']"
  4212. "\x{a}" ~
  4213. " "
  4214. s:assert [
  4215. test = "not(parent::*[@xlink:type='extended'])"
  4216. "An XLink locator type element must occur as the direct child of an XLink extended type element."
  4217. ]
  4218. "\x{a}" ~
  4219. " "
  4220. ]
  4221. "\x{a}" ~
  4222. " "
  4223. ]
  4224. ]
  4225. attribute xlink:type {
  4226. ## An XLink locator link type
  4227. "locator"
  4228. }
  4229. db.xlink.arc.type.attribute =
  4230. ## Identifies the XLink arc link type
  4231. [
  4232. s:pattern [
  4233. name = "XLink arc placement"
  4234. "\x{a}" ~
  4235. " "
  4236. s:rule [
  4237. context = "*[@xlink:type='arc']"
  4238. "\x{a}" ~
  4239. " "
  4240. s:assert [
  4241. test = "parent::*[@xlink:type='extended']"
  4242. "An XLink arc type element must occur as the direct child of an XLink extended type element."
  4243. ]
  4244. "\x{a}" ~
  4245. " "
  4246. ]
  4247. "\x{a}" ~
  4248. " "
  4249. ]
  4250. ]
  4251. attribute xlink:type {
  4252. ## An XLink arc link type
  4253. "arc"
  4254. }
  4255. db.xlink.resource.type.attribute =
  4256. ## Identifies the XLink resource link type
  4257. [
  4258. s:pattern [
  4259. name = "XLink resource placement"
  4260. "\x{a}" ~
  4261. " "
  4262. s:rule [
  4263. context = "*[@xlink:type='resource']"
  4264. "\x{a}" ~
  4265. " "
  4266. s:assert [
  4267. test = "not(parent::*[@xlink:type='extended'])"
  4268. "An XLink resource type element must occur as the direct child of an XLink extended type element."
  4269. ]
  4270. "\x{a}" ~
  4271. " "
  4272. ]
  4273. "\x{a}" ~
  4274. " "
  4275. ]
  4276. ]
  4277. attribute xlink:type {
  4278. ## An XLink resource link type
  4279. "resource"
  4280. }
  4281. db.xlink.title.type.attribute =
  4282. ## Identifies the XLink title link type
  4283. [
  4284. s:pattern [
  4285. name = "XLink title placement"
  4286. "\x{a}" ~
  4287. " "
  4288. s:rule [
  4289. context = "*[@xlink:type='title']"
  4290. "\x{a}" ~
  4291. " "
  4292. s:assert [
  4293. test =
  4294. "not(parent::*[@xlink:type='extended']) and not(parent::*[@xlink:type='locator']) and not(parent::*[@xlink:type='arc'])"
  4295. "An XLink title type element must occur as the direct child of an XLink extended, locator, or arc type element."
  4296. ]
  4297. "\x{a}" ~
  4298. " "
  4299. ]
  4300. "\x{a}" ~
  4301. " "
  4302. ]
  4303. ]
  4304. attribute xlink:type {
  4305. ## An XLink title link type
  4306. "title"
  4307. }
  4308. db.xlink.extended.link.attributes =
  4309. db.xlink.extended.type.attribute
  4310. & db.xlink.role.attribute?
  4311. & db.xlink.title.attribute?
  4312. db.xlink.locator.link.attributes =
  4313. db.xlink.locator.type.attribute
  4314. & db.xlink.href.attribute
  4315. & db.xlink.role.attribute?
  4316. & db.xlink.title.attribute?
  4317. & db.xlink.label.attribute?
  4318. db.xlink.arc.link.attributes =
  4319. db.xlink.arc.type.attribute
  4320. & db.xlink.arcrole.attribute?
  4321. & db.xlink.title.attribute?
  4322. & db.xlink.show.attribute?
  4323. & db.xlink.actuate.attribute?
  4324. & db.xlink.from.attribute?
  4325. & db.xlink.to.attribute?
  4326. db.xlink.resource.link.attributes =
  4327. db.xlink.resource.type.attribute
  4328. & db.xlink.role.attribute?
  4329. & db.xlink.title.attribute?
  4330. & db.xlink.label.attribute?
  4331. db.xlink.title.link.attributes = db.xlink.title.type.attribute
  4332. db.xlink.from.attribute =
  4333. ## Specifies the XLink traversal-from
  4334. attribute xlink:from { xsd:NMTOKEN }
  4335. db.xlink.label.attribute =
  4336. ## Specifies the XLink label
  4337. attribute xlink:label { xsd:NMTOKEN }
  4338. db.xlink.to.attribute =
  4339. ## Specifies the XLink traversal-to
  4340. attribute xlink:to { xsd:NMTOKEN }
  4341. div {
  4342. db.extendedlink.role.attribute = attribute role { text }
  4343. db.extendedlink.attlist =
  4344. db.extendedlink.role.attribute?
  4345. & db.common.attributes
  4346. &
  4347. ## Identifies the XLink link type
  4348. [ a:defaultValue = "extended" ]
  4349. attribute xlink:type {
  4350. ## An XLink extended link
  4351. "extended"
  4352. }?
  4353. & db.xlink.role.attribute?
  4354. & db.xlink.title.attribute?
  4355. db.extendedlink =
  4356. ## An XLink extended link
  4357. element extendedlink {
  4358. db.extendedlink.attlist, (db.locator | db.arc | db.link)+
  4359. }
  4360. }
  4361. div {
  4362. db.locator.role.attribute = attribute role { text }
  4363. db.locator.attlist =
  4364. db.locator.role.attribute?
  4365. & db.common.attributes
  4366. &
  4367. ## Identifies the XLink link type
  4368. [ a:defaultValue = "locator" ]
  4369. attribute xlink:type {
  4370. ## An XLink locator link
  4371. "locator"
  4372. }?
  4373. & db.xlink.href.attribute
  4374. & db.xlink.role.attribute?
  4375. & db.xlink.title.attribute?
  4376. & db.xlink.label.attribute?
  4377. db.locator =
  4378. ## An XLink locator in an extendedlink
  4379. element locator { db.locator.attlist, empty }
  4380. }
  4381. div {
  4382. db.arc.role.attribute = attribute role { text }
  4383. db.arc.attlist =
  4384. db.arc.role.attribute?
  4385. & db.common.attributes
  4386. &
  4387. ## Identifies the XLink link type
  4388. [ a:defaultValue = "arc" ]
  4389. attribute xlink:type {
  4390. ## An XLink arc link
  4391. "arc"
  4392. }?
  4393. & db.xlink.arcrole.attribute?
  4394. & db.xlink.title.attribute?
  4395. & db.xlink.show.attribute?
  4396. & db.xlink.actuate.attribute?
  4397. & db.xlink.from.attribute?
  4398. & db.xlink.to.attribute?
  4399. db.arc =
  4400. ## An XLink arc in an extendedlink
  4401. element arc { db.arc.attlist, empty }
  4402. }
  4403. db.sect1.sections = (db.sect2+, db.simplesect*) | db.simplesect+
  4404. div {
  4405. db.sect1.status.attribute = db.status.attribute
  4406. db.sect1.role.attribute = attribute role { text }
  4407. db.sect1.attlist =
  4408. db.sect1.role.attribute?
  4409. & db.common.attributes
  4410. & db.common.linking.attributes
  4411. & db.label.attribute?
  4412. & db.sect1.status.attribute?
  4413. db.sect1.info = db._info.title.req
  4414. db.sect1 =
  4415. ## A top-level section of document
  4416. element sect1 {
  4417. db.sect1.attlist,
  4418. db.sect1.info,
  4419. ((db.all.blocks+, db.sect1.sections?) | db.sect1.sections)?,
  4420. db.navigation.components*
  4421. }
  4422. }
  4423. db.sect2.sections = (db.sect3+, db.simplesect*) | db.simplesect+
  4424. div {
  4425. db.sect2.status.attribute = db.status.attribute
  4426. db.sect2.role.attribute = attribute role { text }
  4427. db.sect2.attlist =
  4428. db.sect2.role.attribute?
  4429. & db.common.attributes
  4430. & db.common.linking.attributes
  4431. & db.label.attribute?
  4432. & db.sect2.status.attribute?
  4433. db.sect2.info = db._info.title.req
  4434. db.sect2 =
  4435. ## A subsection within a sect1
  4436. element sect2 {
  4437. db.sect2.attlist,
  4438. db.sect2.info,
  4439. ((db.all.blocks+, db.sect2.sections?) | db.sect2.sections)?,
  4440. db.navigation.components*
  4441. }
  4442. }
  4443. db.sect3.sections = (db.sect4+, db.simplesect*) | db.simplesect+
  4444. div {
  4445. db.sect3.status.attribute = db.status.attribute
  4446. db.sect3.role.attribute = attribute role { text }
  4447. db.sect3.attlist =
  4448. db.sect3.role.attribute?
  4449. & db.common.attributes
  4450. & db.common.linking.attributes
  4451. & db.label.attribute?
  4452. & db.sect3.status.attribute?
  4453. db.sect3.info = db._info.title.req
  4454. db.sect3 =
  4455. ## A subsection within a sect2
  4456. element sect3 {
  4457. db.sect3.attlist,
  4458. db.sect3.info,
  4459. ((db.all.blocks+, db.sect3.sections?) | db.sect3.sections)?,
  4460. db.navigation.components*
  4461. }
  4462. }
  4463. db.sect4.sections = (db.sect5+, db.simplesect*) | db.simplesect+
  4464. div {
  4465. db.sect4.status.attribute = db.status.attribute
  4466. db.sect4.role.attribute = attribute role { text }
  4467. db.sect4.attlist =
  4468. db.sect4.role.attribute?
  4469. & db.common.attributes
  4470. & db.common.linking.attributes
  4471. & db.label.attribute?
  4472. & db.sect4.status.attribute?
  4473. db.sect4.info = db._info.title.req
  4474. db.sect4 =
  4475. ## A subsection within a sect3
  4476. element sect4 {
  4477. db.sect4.attlist,
  4478. db.sect4.info,
  4479. ((db.all.blocks+, db.sect4.sections?) | db.sect4.sections)?,
  4480. db.navigation.components*
  4481. }
  4482. }
  4483. db.sect5.sections = db.simplesect+
  4484. div {
  4485. db.sect5.status.attribute = db.status.attribute
  4486. db.sect5.role.attribute = attribute role { text }
  4487. db.sect5.attlist =
  4488. db.sect5.role.attribute?
  4489. & db.common.attributes
  4490. & db.common.linking.attributes
  4491. & db.label.attribute?
  4492. & db.sect5.status.attribute?
  4493. db.sect5.info = db._info.title.req
  4494. db.sect5 =
  4495. ## A subsection within a sect4
  4496. element sect5 {
  4497. db.sect5.attlist,
  4498. db.sect5.info,
  4499. ((db.all.blocks+, db.sect5.sections?) | db.sect5.sections)?,
  4500. db.navigation.components*
  4501. }
  4502. }
  4503. db.toplevel.refsection = db.refsection+ | db.refsect1+
  4504. db.secondlevel.refsection = db.refsection+ | db.refsect2+
  4505. db.reference.components = db.refentry
  4506. div {
  4507. db.reference.status.attribute = db.status.attribute
  4508. db.reference.role.attribute = attribute role { text }
  4509. db.reference.attlist =
  4510. db.reference.role.attribute?
  4511. & db.common.attributes
  4512. & db.common.linking.attributes
  4513. & db.reference.status.attribute?
  4514. & db.label.attribute?
  4515. db.reference.info = db._info.title.req
  4516. db.reference =
  4517. ## A collection of reference entries
  4518. element reference {
  4519. db.reference.attlist,
  4520. db.reference.info,
  4521. db.partintro?,
  4522. db.reference.components*
  4523. }
  4524. }
  4525. div {
  4526. db.refentry.status.attribute = db.status.attribute
  4527. db.refentry.role.attribute = attribute role { text }
  4528. db.refentry.attlist =
  4529. db.refentry.role.attribute?
  4530. & db.common.attributes
  4531. & db.common.linking.attributes
  4532. & db.refentry.status.attribute?
  4533. & db.label.attribute?
  4534. db.refentry.info = db._info.title.forbidden
  4535. db.refentry =
  4536. ## A reference page (originally a UNIX man-style reference page)
  4537. element refentry {
  4538. db.refentry.attlist,
  4539. db.indexterm*,
  4540. db.refentry.info,
  4541. db.refmeta?,
  4542. db.refnamediv+,
  4543. db.refsynopsisdiv?,
  4544. db.toplevel.refsection
  4545. }
  4546. }
  4547. div {
  4548. db.refmeta.role.attribute = attribute role { text }
  4549. db.refmeta.attlist =
  4550. db.refmeta.role.attribute?
  4551. & db.common.attributes
  4552. & db.common.linking.attributes
  4553. db.refmeta =
  4554. ## Meta-information for a reference entry
  4555. element refmeta {
  4556. db.refmeta.attlist,
  4557. db.indexterm*,
  4558. db.refentrytitle,
  4559. db.manvolnum?,
  4560. db.refmiscinfo*,
  4561. db.indexterm*
  4562. }
  4563. }
  4564. db.refmiscinfo.class.enumeration =
  4565. ## The name of the software product or component to which this topic applies
  4566. "source"
  4567. |
  4568. ## The version of the software product or component to which this topic applies
  4569. "version"
  4570. |
  4571. ## The section title of the reference page (e.g., User Commands)
  4572. "manual"
  4573. |
  4574. ## The section title of the reference page (believed synonymous with "manual" but in wide use)
  4575. "sectdesc"
  4576. |
  4577. ## 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)
  4578. "software"
  4579. db.refmiscinfo.class-enum.attribute =
  4580. ## Identifies the kind of miscellaneous information
  4581. attribute class { db.refmiscinfo.class.enumeration }?
  4582. db.refmiscinfo.class-other.attribute =
  4583. ## Identifies the nature of non-standard miscellaneous information
  4584. attribute otherclass { text }
  4585. db.refmiscinfo.class-other.attributes =
  4586. ## Identifies the kind of miscellaneious information
  4587. attribute class {
  4588. ## Indicates that the information is some 'other' kind.
  4589. "other"
  4590. }
  4591. & db.refmiscinfo.class-other.attribute
  4592. db.refmiscinfo.class.attribute =
  4593. db.refmiscinfo.class-enum.attribute
  4594. | db.refmiscinfo.class-other.attributes
  4595. div {
  4596. db.refmiscinfo.role.attribute = attribute role { text }
  4597. db.refmiscinfo.attlist =
  4598. db.refmiscinfo.role.attribute?
  4599. & db.common.attributes
  4600. & db.common.linking.attributes
  4601. & db.refmiscinfo.class.attribute?
  4602. db.refmiscinfo =
  4603. ## Meta-information for a reference entry other than the title and volume number
  4604. element refmiscinfo { db.refmiscinfo.attlist, db._text }
  4605. }
  4606. div {
  4607. db.refnamediv.role.attribute = attribute role { text }
  4608. db.refnamediv.attlist =
  4609. db.refnamediv.role.attribute?
  4610. & db.common.attributes
  4611. & db.common.linking.attributes
  4612. db.refnamediv =
  4613. ## The name, purpose, and classification of a reference page
  4614. element refnamediv {
  4615. db.refnamediv.attlist,
  4616. db.refdescriptor?,
  4617. db.refname+,
  4618. db.refpurpose,
  4619. db.refclass*
  4620. }
  4621. }
  4622. div {
  4623. db.refdescriptor.role.attribute = attribute role { text }
  4624. db.refdescriptor.attlist =
  4625. db.refdescriptor.role.attribute?
  4626. & db.common.attributes
  4627. & db.common.linking.attributes
  4628. db.refdescriptor =
  4629. ## A description of the topic of a reference page
  4630. element refdescriptor { db.refdescriptor.attlist, db.all.inlines* }
  4631. }
  4632. div {
  4633. db.refname.role.attribute = attribute role { text }
  4634. db.refname.attlist =
  4635. db.refname.role.attribute?
  4636. & db.common.attributes
  4637. & db.common.linking.attributes
  4638. db.refname =
  4639. ## The name of (one of) the subject(s) of a reference page
  4640. element refname { db.refname.attlist, db.all.inlines* }
  4641. }
  4642. div {
  4643. db.refpurpose.role.attribute = attribute role { text }
  4644. db.refpurpose.attlist =
  4645. db.refpurpose.role.attribute?
  4646. & db.common.attributes
  4647. & db.common.linking.attributes
  4648. db.refpurpose =
  4649. ## A short (one sentence) synopsis of the topic of a reference page
  4650. element refpurpose { db.refpurpose.attlist, db.all.inlines* }
  4651. }
  4652. div {
  4653. db.refclass.role.attribute = attribute role { text }
  4654. db.refclass.attlist =
  4655. db.refclass.role.attribute?
  4656. & db.common.attributes
  4657. & db.common.linking.attributes
  4658. db.refclass =
  4659. ## The scope or other indication of applicability of a reference entry
  4660. element refclass { db.refclass.attlist, (text | db.application)* }
  4661. }
  4662. div {
  4663. db.refsynopsisdiv.role.attribute = attribute role { text }
  4664. db.refsynopsisdiv.attlist =
  4665. db.refsynopsisdiv.role.attribute?
  4666. & db.common.attributes
  4667. & db.common.linking.attributes
  4668. db.refsynopsisdiv.info = db._info
  4669. db.refsynopsisdiv =
  4670. ## A syntactic synopsis of the subject of the reference page
  4671. element refsynopsisdiv {
  4672. db.refsynopsisdiv.attlist,
  4673. db.refsynopsisdiv.info,
  4674. ((db.all.blocks+, db.secondlevel.refsection?)
  4675. | db.secondlevel.refsection)
  4676. }
  4677. }
  4678. div {
  4679. db.refsection.status.attribute = db.status.attribute
  4680. db.refsection.role.attribute = attribute role { text }
  4681. db.refsection.attlist =
  4682. db.refsection.role.attribute?
  4683. & db.common.attributes
  4684. & db.common.linking.attributes
  4685. & db.refsection.status.attribute?
  4686. & db.label.attribute?
  4687. db.refsection.info = db._info.title.req
  4688. db.refsection =
  4689. ## A recursive section in a refentry
  4690. element refsection {
  4691. db.refsection.attlist,
  4692. db.refsection.info,
  4693. ((db.all.blocks+, db.refsection*) | db.refsection+)
  4694. }
  4695. }
  4696. db.refsect1.sections = db.refsect2+
  4697. div {
  4698. db.refsect1.status.attribute = db.status.attribute
  4699. db.refsect1.role.attribute = attribute role { text }
  4700. db.refsect1.attlist =
  4701. db.refsect1.role.attribute?
  4702. & db.common.attributes
  4703. & db.common.linking.attributes
  4704. & db.label.attribute?
  4705. & db.refsect1.status.attribute?
  4706. db.refsect1.info = db._info.title.req
  4707. db.refsect1 =
  4708. ## A major subsection of a reference entry
  4709. element refsect1 {
  4710. db.refsect1.attlist,
  4711. db.refsect1.info,
  4712. ((db.all.blocks+, db.refsect1.sections?) | db.refsect1.sections)
  4713. }
  4714. }
  4715. db.refsect2.sections = db.refsect3+
  4716. div {
  4717. db.refsect2.status.attribute = db.status.attribute
  4718. db.refsect2.role.attribute = attribute role { text }
  4719. db.refsect2.attlist =
  4720. db.refsect2.role.attribute?
  4721. & db.common.attributes
  4722. & db.common.linking.attributes
  4723. & db.label.attribute?
  4724. & db.refsect2.status.attribute?
  4725. db.refsect2.info = db._info.title.req
  4726. db.refsect2 =
  4727. ## A subsection of a refsect1
  4728. element refsect2 {
  4729. db.refsect2.attlist,
  4730. db.refsect2.info,
  4731. ((db.all.blocks+, db.refsect2.sections?) | db.refsect2.sections)
  4732. }
  4733. }
  4734. div {
  4735. db.refsect3.status.attribute = db.status.attribute
  4736. db.refsect3.role.attribute = attribute role { text }
  4737. db.refsect3.attlist =
  4738. db.refsect3.role.attribute?
  4739. & db.common.attributes
  4740. & db.common.linking.attributes
  4741. & db.label.attribute?
  4742. & db.refsect3.status.attribute?
  4743. db.refsect3.info = db._info.title.req
  4744. db.refsect3 =
  4745. ## A subsection of a refsect2
  4746. element refsect3 {
  4747. db.refsect3.attlist, db.refsect3.info, db.all.blocks+
  4748. }
  4749. }
  4750. db.glossary.inlines =
  4751. db.firstterm | db.glossterm | db._firstterm | db._glossterm
  4752. db.baseform.attribute =
  4753. ## 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.
  4754. attribute baseform { text }?
  4755. div {
  4756. db.glosslist.role.attribute = attribute role { text }
  4757. db.glosslist.attlist =
  4758. db.glosslist.role.attribute?
  4759. & db.common.attributes
  4760. & db.common.linking.attributes
  4761. db.glosslist.info = db._info.title.only
  4762. db.glosslist =
  4763. ## A wrapper for a list of glossary entries
  4764. element glosslist {
  4765. db.glosslist.attlist,
  4766. db.glosslist.info?,
  4767. db.all.blocks*,
  4768. db.glossentry+
  4769. }
  4770. }
  4771. div {
  4772. db.glossentry.role.attribute = attribute role { text }
  4773. db.glossentry.sortas.attribute =
  4774. ## Specifies the string by which the element's content is to be sorted; if unspecified, the content is used
  4775. attribute sortas { text }
  4776. db.glossentry.attlist =
  4777. db.glossentry.role.attribute?
  4778. & db.common.attributes
  4779. & db.common.linking.attributes
  4780. & db.glossentry.sortas.attribute?
  4781. db.glossentry =
  4782. ## An entry in a glossary or glosslist
  4783. element glossentry {
  4784. db.glossentry.attlist,
  4785. db.glossterm,
  4786. db.acronym?,
  4787. db.abbrev?,
  4788. db.indexterm*,
  4789. (db.glosssee | db.glossdef+)
  4790. }
  4791. }
  4792. div {
  4793. db.glossdef.role.attribute = attribute role { text }
  4794. db.glossdef.subject.attribute =
  4795. ## Specifies a list of keywords for the definition
  4796. attribute subject { text }
  4797. db.glossdef.attlist =
  4798. db.glossdef.role.attribute?
  4799. & db.common.attributes
  4800. & db.common.linking.attributes
  4801. & db.glossdef.subject.attribute?
  4802. db.glossdef =
  4803. ## A definition in a glossentry
  4804. element glossdef {
  4805. db.glossdef.attlist, db.all.blocks+, db.glossseealso*
  4806. }
  4807. }
  4808. div {
  4809. db.glosssee.role.attribute = attribute role { text }
  4810. db.glosssee.otherterm.attribute =
  4811. ## Identifies the other term
  4812. attribute otherterm { xsd:IDREF }
  4813. db.glosssee.attlist =
  4814. db.glosssee.role.attribute?
  4815. & db.common.attributes
  4816. & db.common.linking.attributes
  4817. & db.glosssee.otherterm.attribute?
  4818. db.glosssee =
  4819. ## A cross-reference from one glossentry
  4820. ## to another
  4821. [
  4822. s:pattern [
  4823. name = "Glosssary 'see' type constraint"
  4824. "\x{a}" ~
  4825. " "
  4826. s:rule [
  4827. context = "db:glosssee[@otherterm]"
  4828. "\x{a}" ~
  4829. " "
  4830. s:assert [
  4831. test =
  4832. "local-name(//*[@xml:id=current()/@otherterm]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@otherterm]) = 'http://docbook.org/ns/docbook'"
  4833. "@otherterm on glosssee must point to a glossentry."
  4834. ]
  4835. "\x{a}" ~
  4836. " "
  4837. ]
  4838. "\x{a}" ~
  4839. " "
  4840. ]
  4841. ]
  4842. element glosssee { db.glosssee.attlist, db.all.inlines* }
  4843. }
  4844. div {
  4845. db.glossseealso.role.attribute = attribute role { text }
  4846. db.glossseealso.otherterm.attribute =
  4847. ## Identifies the other term
  4848. attribute otherterm { xsd:IDREF }
  4849. db.glossseealso.attlist =
  4850. db.glossseealso.role.attribute?
  4851. & db.common.attributes
  4852. & db.common.linking.attributes
  4853. & db.glossseealso.otherterm.attribute?
  4854. db.glossseealso =
  4855. ## A cross-reference from one glossentry to another
  4856. [
  4857. s:pattern [
  4858. name = "Glossary 'seealso' type constraint"
  4859. "\x{a}" ~
  4860. " "
  4861. s:rule [
  4862. context = "db:glossseealso[@otherterm]"
  4863. "\x{a}" ~
  4864. " "
  4865. s:assert [
  4866. test =
  4867. "local-name(//*[@xml:id=current()/@otherterm]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@otherterm]) = 'http://docbook.org/ns/docbook'"
  4868. "@otherterm on glossseealso must point to a glossentry."
  4869. ]
  4870. "\x{a}" ~
  4871. " "
  4872. ]
  4873. "\x{a}" ~
  4874. " "
  4875. ]
  4876. ]
  4877. element glossseealso { db.glossseealso.attlist, db.all.inlines* }
  4878. }
  4879. div {
  4880. db.firstterm.role.attribute = attribute role { text }
  4881. db.firstterm.attlist =
  4882. db.firstterm.role.attribute?
  4883. & db.common.attributes
  4884. & db.common.linking.attributes
  4885. & db.baseform.attribute
  4886. db.firstterm =
  4887. ## The first occurrence of a term
  4888. [
  4889. s:pattern [
  4890. name = "Glossary 'firstterm' type constraint"
  4891. "\x{a}" ~
  4892. " "
  4893. s:rule [
  4894. context = "db:firstterm[@linkend]"
  4895. "\x{a}" ~
  4896. " "
  4897. s:assert [
  4898. test =
  4899. "local-name(//*[@xml:id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"
  4900. "@linkend on firstterm must point to a glossentry."
  4901. ]
  4902. "\x{a}" ~
  4903. " "
  4904. ]
  4905. "\x{a}" ~
  4906. " "
  4907. ]
  4908. ]
  4909. element firstterm { db.firstterm.attlist, db.all.inlines* }
  4910. }
  4911. div {
  4912. db._firstterm.role.attribute = attribute role { text }
  4913. db._firstterm.attlist =
  4914. db._firstterm.role.attribute?
  4915. & db.common.attributes
  4916. & db.common.linking.attributes
  4917. & db.baseform.attribute
  4918. db._firstterm =
  4919. ## The first occurrence of a term, with limited content
  4920. [
  4921. s:pattern [
  4922. name = "Glossary 'firstterm' type constraint"
  4923. "\x{a}" ~
  4924. " "
  4925. s:rule [
  4926. context = "db:firstterm[@linkend]"
  4927. "\x{a}" ~
  4928. " "
  4929. s:assert [
  4930. test =
  4931. "local-name(//*[@xml:id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"
  4932. "@linkend on firstterm must point to a glossentry."
  4933. ]
  4934. "\x{a}" ~
  4935. " "
  4936. ]
  4937. "\x{a}" ~
  4938. " "
  4939. ]
  4940. ]
  4941. element firstterm { db._firstterm.attlist, db._text }
  4942. }
  4943. div {
  4944. db.glossterm.role.attribute = attribute role { text }
  4945. db.glossterm.attlist =
  4946. db.glossterm.role.attribute?
  4947. & db.common.attributes
  4948. & db.common.linking.attributes
  4949. & db.baseform.attribute
  4950. db.glossterm =
  4951. ## A glossary term
  4952. [
  4953. s:pattern [
  4954. name = "Glossary 'glossterm' type constraint"
  4955. "\x{a}" ~
  4956. " "
  4957. s:rule [
  4958. context = "db:glossterm[@linkend]"
  4959. "\x{a}" ~
  4960. " "
  4961. s:assert [
  4962. test =
  4963. "local-name(//*[@xml:id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"
  4964. "@linkend on glossterm must point to a glossentry."
  4965. ]
  4966. "\x{a}" ~
  4967. " "
  4968. ]
  4969. "\x{a}" ~
  4970. " "
  4971. ]
  4972. ]
  4973. element glossterm { db.glossterm.attlist, db.all.inlines* }
  4974. }
  4975. div {
  4976. db._glossterm.role.attribute = attribute role { text }
  4977. db._glossterm.attlist =
  4978. db._glossterm.role.attribute?
  4979. & db.common.attributes
  4980. & db.common.linking.attributes
  4981. & db.baseform.attribute
  4982. db._glossterm =
  4983. ## A glossary term
  4984. [
  4985. s:pattern [
  4986. name = "Glossary 'glossterm' type constraint"
  4987. "\x{a}" ~
  4988. " "
  4989. s:rule [
  4990. context = "db:glossterm[@linkend]"
  4991. "\x{a}" ~
  4992. " "
  4993. s:assert [
  4994. test =
  4995. "local-name(//*[@xml:id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"
  4996. "@linkend on glossterm must point to a glossentry."
  4997. ]
  4998. "\x{a}" ~
  4999. " "
  5000. ]
  5001. "\x{a}" ~
  5002. " "
  5003. ]
  5004. ]
  5005. element glossterm { db._glossterm.attlist, db._text }
  5006. }
  5007. div {
  5008. db.glossary.status.attribute = db.status.attribute
  5009. db.glossary.role.attribute = attribute role { text }
  5010. db.glossary.attlist =
  5011. db.glossary.role.attribute?
  5012. & db.common.attributes
  5013. & db.common.linking.attributes
  5014. & db.label.attribute?
  5015. & db.glossary.status.attribute?
  5016. db.glossary.info = db._info
  5017. db.glossary =
  5018. ## A glossary
  5019. element glossary {
  5020. db.glossary.attlist,
  5021. db.glossary.info,
  5022. db.all.blocks*,
  5023. (db.glossdiv* | db.glossentry*),
  5024. db.bibliography?
  5025. }
  5026. }
  5027. div {
  5028. db.glossdiv.status.attribute = db.status.attribute
  5029. db.glossdiv.role.attribute = attribute role { text }
  5030. db.glossdiv.attlist =
  5031. db.glossdiv.role.attribute?
  5032. & db.common.attributes
  5033. & db.common.linking.attributes
  5034. & db.label.attribute?
  5035. & db.glossdiv.status.attribute?
  5036. db.glossdiv.info = db._info.title.req
  5037. db.glossdiv =
  5038. ## A division in a glossary
  5039. element glossdiv {
  5040. db.glossdiv.attlist,
  5041. db.glossdiv.info,
  5042. db.all.blocks*,
  5043. db.glossentry+
  5044. }
  5045. }
  5046. div {
  5047. db.termdef.role.attribute = attribute role { text }
  5048. db.termdef.attlist =
  5049. db.termdef.role.attribute?
  5050. & db.glossentry.sortas.attribute?
  5051. & db.common.attributes
  5052. & db.common.linking.attributes
  5053. & db.baseform.attribute
  5054. db.termdef =
  5055. ## An inline definition of a term
  5056. [
  5057. s:pattern [
  5058. name = "Glossary term definition constraint"
  5059. "\x{a}" ~
  5060. " "
  5061. s:rule [
  5062. context = "db:termdef"
  5063. "\x{a}" ~
  5064. " "
  5065. s:assert [
  5066. test = "count(db:firstterm) = 1"
  5067. "A termdef must contain exactly one firstterm"
  5068. ]
  5069. "\x{a}" ~
  5070. " "
  5071. ]
  5072. "\x{a}" ~
  5073. " "
  5074. ]
  5075. ]
  5076. element termdef { db.termdef.attlist, db.all.inlines* }
  5077. }
  5078. db.relation.attribute =
  5079. ## Identifies the relationship between the bibliographic elemnts
  5080. attribute relation { text }
  5081. div {
  5082. db.biblioentry.role.attribute = attribute role { text }
  5083. db.biblioentry.attlist =
  5084. db.biblioentry.role.attribute?
  5085. & db.common.attributes
  5086. & db.common.linking.attributes
  5087. db.biblioentry =
  5088. ## A raw entry in a bibliography
  5089. element biblioentry {
  5090. db.biblioentry.attlist, db.bibliographic.elements+
  5091. }
  5092. }
  5093. div {
  5094. db.bibliomixed.role.attribute = attribute role { text }
  5095. db.bibliomixed.attlist =
  5096. db.bibliomixed.role.attribute?
  5097. & db.common.attributes
  5098. & db.common.linking.attributes
  5099. db.bibliomixed =
  5100. ## A cooked entry in a bibliography
  5101. element bibliomixed {
  5102. db.bibliomixed.attlist,
  5103. ((db._text
  5104. | db.honorific
  5105. | db.firstname
  5106. | db.surname
  5107. | db.lineage
  5108. | db.othername
  5109. | db.bibliographic.elements)*
  5110. | (db._text
  5111. | db.honorific
  5112. | db.givenname
  5113. | db.surname
  5114. | db.lineage
  5115. | db.othername
  5116. | db.bibliographic.elements)*)
  5117. }
  5118. }
  5119. div {
  5120. db.biblioset.relation.attribute = db.relation.attribute
  5121. db.biblioset.role.attribute = attribute role { text }
  5122. db.biblioset.attlist =
  5123. db.biblioset.role.attribute?
  5124. & db.common.attributes
  5125. & db.common.linking.attributes
  5126. & db.biblioset.relation.attribute?
  5127. db.biblioset =
  5128. ## A raw container for related bibliographic information
  5129. element biblioset {
  5130. db.biblioset.attlist, db.bibliographic.elements+
  5131. }
  5132. }
  5133. div {
  5134. db.bibliomset.relation.attribute = db.relation.attribute
  5135. db.bibliomset.role.attribute = attribute role { text }
  5136. db.bibliomset.attlist =
  5137. db.bibliomset.role.attribute?
  5138. & db.common.attributes
  5139. & db.common.linking.attributes
  5140. & db.bibliomset.relation.attribute?
  5141. db.bibliomset =
  5142. ## A cooked container for related bibliographic information
  5143. element bibliomset {
  5144. db.bibliomset.attlist,
  5145. ((db._text
  5146. | db.honorific
  5147. | db.firstname
  5148. | db.surname
  5149. | db.lineage
  5150. | db.othername
  5151. | db.bibliographic.elements)*
  5152. | (db._text
  5153. | db.honorific
  5154. | db.givenname
  5155. | db.surname
  5156. | db.lineage
  5157. | db.othername
  5158. | db.bibliographic.elements)*)
  5159. }
  5160. }
  5161. div {
  5162. db.bibliomisc.role.attribute = attribute role { text }
  5163. db.bibliomisc.attlist =
  5164. db.bibliomisc.role.attribute?
  5165. & db.common.attributes
  5166. & db.common.linking.attributes
  5167. db.bibliomisc =
  5168. ## Untyped bibliographic information
  5169. element bibliomisc { db.bibliomisc.attlist, db._text }
  5170. }
  5171. div {
  5172. db.bibliography.status.attrib = db.status.attribute
  5173. db.bibliography.role.attribute = attribute role { text }
  5174. db.bibliography.attlist =
  5175. db.bibliography.role.attribute?
  5176. & db.common.attributes
  5177. & db.common.linking.attributes
  5178. & db.label.attribute?
  5179. & db.bibliography.status.attrib?
  5180. db.bibliography.info = db._info
  5181. db.bibliography =
  5182. ## A bibliography
  5183. element bibliography {
  5184. db.bibliography.attlist,
  5185. db.bibliography.info,
  5186. db.all.blocks*,
  5187. (db.bibliodiv+ | (db.biblioentry | db.bibliomixed)+)
  5188. }
  5189. }
  5190. div {
  5191. db.bibliodiv.status.attrib = db.status.attribute
  5192. db.bibliodiv.role.attribute = attribute role { text }
  5193. db.bibliodiv.attlist =
  5194. db.bibliodiv.role.attribute?
  5195. & db.common.attributes
  5196. & db.common.linking.attributes
  5197. & db.label.attribute?
  5198. & db.bibliodiv.status.attrib?
  5199. db.bibliodiv.info = db._info.title.req
  5200. db.bibliodiv =
  5201. ## A section of a bibliography
  5202. element bibliodiv {
  5203. db.bibliodiv.attlist,
  5204. db.bibliodiv.info,
  5205. db.all.blocks*,
  5206. (db.biblioentry | db.bibliomixed)+
  5207. }
  5208. }
  5209. div {
  5210. db.bibliolist.role.attribute = attribute role { text }
  5211. db.bibliolist.attlist =
  5212. db.bibliolist.role.attribute?
  5213. & db.common.attributes
  5214. & db.common.linking.attributes
  5215. db.bibliolist.info = db._info.title.only
  5216. db.bibliolist =
  5217. ## A wrapper for a list of bibliography entries
  5218. element bibliolist {
  5219. db.bibliolist.attlist,
  5220. db.bibliolist.info?,
  5221. db.all.blocks*,
  5222. (db.biblioentry | db.bibliomixed)+
  5223. }
  5224. }
  5225. div {
  5226. db.biblioref.role.attribute = attribute role { text }
  5227. db.biblioref.xrefstyle.attribute = db.xrefstyle.attribute
  5228. db.biblioref.endterm.attribute = db.endterm.attribute
  5229. db.biblioref.units.attribute =
  5230. ## The units (for example, pages) used to identify the beginning and ending of a reference.
  5231. attribute units { xsd:token }
  5232. db.biblioref.begin.attribute =
  5233. ## Identifies the beginning of a reference; the location within the work that is being referenced.
  5234. attribute begin { xsd:token }
  5235. db.biblioref.end.attribute =
  5236. ## Identifies the end of a reference.
  5237. attribute end { xsd:token }
  5238. db.biblioref.attlist =
  5239. db.biblioref.role.attribute?
  5240. & db.common.attributes
  5241. & db.common.req.linking.attributes
  5242. & db.biblioref.xrefstyle.attribute?
  5243. & db.biblioref.endterm.attribute?
  5244. & db.biblioref.units.attribute?
  5245. & db.biblioref.begin.attribute?
  5246. & db.biblioref.end.attribute?
  5247. db.biblioref =
  5248. ## A cross-reference to a bibliographic entry
  5249. element biblioref { db.biblioref.attlist, empty }
  5250. }
  5251. db.significance.enumeration =
  5252. ## Normal
  5253. "normal"
  5254. |
  5255. ## Preferred
  5256. "preferred"
  5257. db.significance.attribute =
  5258. ## Specifies the significance of the term
  5259. attribute significance { db.significance.enumeration }
  5260. db.zone.attribute =
  5261. ## Specifies the IDs of the elements to which this term applies
  5262. attribute zone { xsd:IDREFS }
  5263. db.indexterm.pagenum.attribute =
  5264. ## Indicates the page on which this index term occurs in some version of the printed document
  5265. attribute pagenum { text }
  5266. db.scope.enumeration =
  5267. ## All indexes
  5268. "all"
  5269. |
  5270. ## The global index (as for a combined index of a set of books)
  5271. "global"
  5272. |
  5273. ## The local index (the index for this document only)
  5274. "local"
  5275. db.scope.attribute =
  5276. ## Specifies the scope of the index term
  5277. attribute scope { db.scope.enumeration }
  5278. db.sortas.attribute =
  5279. ## Specifies the string by which the term is to be sorted; if unspecified, the term content is used
  5280. attribute sortas { text }
  5281. db.index.type.attribute =
  5282. ## Specifies the target index for this term
  5283. attribute type { text }
  5284. div {
  5285. db.itermset.role.attribute = attribute role { text }
  5286. db.itermset.attlist =
  5287. db.itermset.role.attribute?
  5288. & db.common.attributes
  5289. & db.common.linking.attributes
  5290. db.itermset =
  5291. ## A set of index terms in the meta-information of a document
  5292. element itermset { db.itermset.attlist, db.indexterm.singular+ }
  5293. }
  5294. db.indexterm.contentmodel =
  5295. db.primary?,
  5296. ((db.secondary,
  5297. ((db.tertiary, (db.see | db.seealso+)?)
  5298. | db.see
  5299. | db.seealso+)?)
  5300. | db.see
  5301. | db.seealso+)?
  5302. div {
  5303. db.indexterm.singular.role.attribute = attribute role { text }
  5304. db.indexterm.singular.class.attribute =
  5305. ## Identifies the class of index term
  5306. attribute class {
  5307. ## A singular index term
  5308. "singular"
  5309. }
  5310. db.indexterm.singular.attlist =
  5311. db.indexterm.singular.role.attribute?
  5312. & db.common.attributes
  5313. & db.common.linking.attributes
  5314. & db.significance.attribute?
  5315. & db.zone.attribute?
  5316. & db.indexterm.pagenum.attribute?
  5317. & db.scope.attribute?
  5318. & db.index.type.attribute?
  5319. & db.indexterm.singular.class.attribute?
  5320. db.indexterm.singular =
  5321. ## A wrapper for an indexed term
  5322. element indexterm {
  5323. db.indexterm.singular.attlist, db.indexterm.contentmodel
  5324. }
  5325. }
  5326. div {
  5327. db.indexterm.startofrange.role.attribute = attribute role { text }
  5328. db.indexterm.startofrange.class.attribute =
  5329. ## Identifies the class of index term
  5330. attribute class {
  5331. ## The start of a range
  5332. "startofrange"
  5333. }
  5334. db.indexterm.startofrange.attlist =
  5335. db.indexterm.startofrange.role.attribute?
  5336. & db.common.attributes
  5337. & db.common.linking.attributes
  5338. & db.significance.attribute?
  5339. & db.zone.attribute?
  5340. & db.indexterm.pagenum.attribute?
  5341. & db.scope.attribute?
  5342. & db.index.type.attribute?
  5343. & db.indexterm.startofrange.class.attribute
  5344. db.indexterm.startofrange =
  5345. ## A wrapper for an indexed term that covers a range
  5346. element indexterm {
  5347. db.indexterm.startofrange.attlist, db.indexterm.contentmodel
  5348. }
  5349. }
  5350. div {
  5351. db.indexterm.endofrange.role.attribute = attribute role { text }
  5352. db.indexterm.endofrange.class.attribute =
  5353. ## Identifies the class of index term
  5354. attribute class {
  5355. ## The end of a range
  5356. "endofrange"
  5357. }
  5358. db.indexterm.endofrange.startref.attribute =
  5359. ## Points to the start of the range
  5360. attribute startref { xsd:IDREF }
  5361. db.indexterm.endofrange.attlist =
  5362. db.indexterm.endofrange.role.attribute?
  5363. & db.common.attributes
  5364. & db.common.linking.attributes
  5365. & db.indexterm.endofrange.class.attribute
  5366. & db.indexterm.endofrange.startref.attribute
  5367. db.indexterm.endofrange =
  5368. ## Identifies the end of a range associated with an indexed term
  5369. element indexterm { db.indexterm.endofrange.attlist, empty }
  5370. }
  5371. div {
  5372. db.indexterm =
  5373. db.indexterm.singular
  5374. | db.indexterm.startofrange
  5375. | db.indexterm.endofrange
  5376. }
  5377. div {
  5378. db.primary.role.attribute = attribute role { text }
  5379. db.primary.attlist =
  5380. db.primary.role.attribute?
  5381. & db.common.attributes
  5382. & db.common.linking.attributes
  5383. & db.sortas.attribute?
  5384. db.primary =
  5385. ## The primary word or phrase under which an index term should be sorted
  5386. element primary { db.primary.attlist, db.all.inlines* }
  5387. }
  5388. div {
  5389. db.secondary.role.attribute = attribute role { text }
  5390. db.secondary.attlist =
  5391. db.secondary.role.attribute?
  5392. & db.common.attributes
  5393. & db.common.linking.attributes
  5394. & db.sortas.attribute?
  5395. db.secondary =
  5396. ## A secondary word or phrase in an index term
  5397. element secondary { db.secondary.attlist, db.all.inlines* }
  5398. }
  5399. div {
  5400. db.tertiary.role.attribute = attribute role { text }
  5401. db.tertiary.attlist =
  5402. db.tertiary.role.attribute?
  5403. & db.common.attributes
  5404. & db.common.linking.attributes
  5405. & db.sortas.attribute?
  5406. db.tertiary =
  5407. ## A tertiary word or phrase in an index term
  5408. element tertiary { db.tertiary.attlist, db.all.inlines* }
  5409. }
  5410. div {
  5411. db.see.role.attribute = attribute role { text }
  5412. db.see.attlist =
  5413. db.see.role.attribute?
  5414. & db.common.attributes
  5415. & db.common.linking.attributes
  5416. db.see =
  5417. ## Part of an index term directing the reader instead to another entry in the index
  5418. element see { db.see.attlist, db.all.inlines* }
  5419. }
  5420. div {
  5421. db.seealso.role.attribute = attribute role { text }
  5422. db.seealso.attlist =
  5423. db.seealso.role.attribute?
  5424. & db.common.attributes
  5425. & db.common.linking.attributes
  5426. db.seealso =
  5427. ## Part of an index term directing the reader also to another entry in the index
  5428. element seealso { db.seealso.attlist, db.all.inlines* }
  5429. }
  5430. div {
  5431. db.index.status.attribute = db.status.attribute
  5432. db.index.role.attribute = attribute role { text }
  5433. db.index.attlist =
  5434. db.index.role.attribute?
  5435. & db.common.attributes
  5436. & db.common.linking.attributes
  5437. & db.label.attribute?
  5438. & db.index.status.attribute?
  5439. & db.index.type.attribute?
  5440. db.index.info = db._info
  5441. # Yes, db.indexdiv* and db.indexentry*; that way an <index/> is valid.
  5442. # Authors can use an empty index to indicate where a generated index should
  5443. # appear.
  5444. db.index =
  5445. ## An index to a book or part of a book
  5446. element index {
  5447. db.index.attlist,
  5448. db.index.info,
  5449. db.all.blocks*,
  5450. (db.indexdiv* | db.indexentry* | db.segmentedlist)
  5451. }
  5452. }
  5453. div {
  5454. db.setindex.status.attribute = db.status.attribute
  5455. db.setindex.role.attribute = attribute role { text }
  5456. db.setindex.attlist =
  5457. db.setindex.role.attribute?
  5458. & db.common.attributes
  5459. & db.common.linking.attributes
  5460. & db.label.attribute?
  5461. & db.setindex.status.attribute?
  5462. & db.index.type.attribute?
  5463. db.setindex.info = db._info
  5464. db.setindex =
  5465. ## An index to a set of books
  5466. element setindex {
  5467. db.setindex.attlist,
  5468. db.setindex.info,
  5469. db.all.blocks*,
  5470. (db.indexdiv* | db.indexentry*)
  5471. }
  5472. }
  5473. div {
  5474. db.indexdiv.status.attribute = db.status.attribute
  5475. db.indexdiv.role.attribute = attribute role { text }
  5476. db.indexdiv.attlist =
  5477. db.indexdiv.role.attribute?
  5478. & db.common.attributes
  5479. & db.common.linking.attributes
  5480. & db.label.attribute?
  5481. & db.indexdiv.status.attribute?
  5482. db.indexdiv.info = db._info.title.req
  5483. db.indexdiv =
  5484. ## A division in an index
  5485. element indexdiv {
  5486. db.indexdiv.attlist,
  5487. db.indexdiv.info,
  5488. db.all.blocks*,
  5489. (db.indexentry+ | db.segmentedlist)
  5490. }
  5491. }
  5492. div {
  5493. db.indexentry.role.attribute = attribute role { text }
  5494. db.indexentry.attlist =
  5495. db.indexentry.role.attribute?
  5496. & db.common.attributes
  5497. & db.common.linking.attributes
  5498. db.indexentry =
  5499. ## An entry in an index
  5500. element indexentry {
  5501. db.indexentry.attlist,
  5502. db.primaryie,
  5503. (db.seeie | db.seealsoie)*,
  5504. (db.secondaryie, (db.seeie | db.seealsoie | db.tertiaryie)*)*
  5505. }
  5506. }
  5507. div {
  5508. db.primaryie.role.attribute = attribute role { text }
  5509. db.primaryie.attlist =
  5510. db.primaryie.role.attribute?
  5511. & db.common.attributes
  5512. & db.linkends.attribute?
  5513. db.primaryie =
  5514. ## A primary term in an index entry, not in the text
  5515. element primaryie { db.primaryie.attlist, db.all.inlines* }
  5516. }
  5517. div {
  5518. db.secondaryie.role.attribute = attribute role { text }
  5519. db.secondaryie.attlist =
  5520. db.secondaryie.role.attribute?
  5521. & db.common.attributes
  5522. & db.linkends.attribute?
  5523. db.secondaryie =
  5524. ## A secondary term in an index entry, rather than in the text
  5525. element secondaryie { db.secondaryie.attlist, db.all.inlines* }
  5526. }
  5527. div {
  5528. db.tertiaryie.role.attribute = attribute role { text }
  5529. db.tertiaryie.attlist =
  5530. db.tertiaryie.role.attribute?
  5531. & db.common.attributes
  5532. & db.linkends.attribute?
  5533. db.tertiaryie =
  5534. ## A tertiary term in an index entry, rather than in the text
  5535. element tertiaryie { db.tertiaryie.attlist, db.all.inlines* }
  5536. }
  5537. div {
  5538. db.seeie.role.attribute = attribute role { text }
  5539. db.seeie.attlist =
  5540. db.seeie.role.attribute?
  5541. & db.common.attributes
  5542. & db.linkend.attribute?
  5543. db.seeie =
  5544. ## A See
  5545. ## entry in an index, rather than in the text
  5546. element seeie { db.seeie.attlist, db.all.inlines* }
  5547. }
  5548. div {
  5549. db.seealsoie.role.attribute = attribute role { text }
  5550. db.seealsoie.attlist =
  5551. db.seealsoie.role.attribute?
  5552. & db.common.attributes
  5553. & db.linkends.attribute?
  5554. db.seealsoie =
  5555. ## A See also
  5556. ## entry in an index, rather than in the text
  5557. element seealsoie { db.seealsoie.attlist, db.all.inlines* }
  5558. }
  5559. db.toc.pagenum.attribute =
  5560. ## Indicates the page on which this element occurs in some version of the printed document
  5561. attribute pagenum { text }
  5562. div {
  5563. db.toc.role.attribute = attribute role { text }
  5564. db.toc.attlist =
  5565. db.toc.role.attribute?
  5566. & db.common.attributes
  5567. & db.common.linking.attributes
  5568. db.toc.info = db._info.title.only
  5569. db.toc =
  5570. ## A table of contents
  5571. element toc {
  5572. db.toc.attlist,
  5573. db.toc.info,
  5574. db.all.blocks*,
  5575. (db.tocdiv | db.tocentry)*
  5576. }
  5577. }
  5578. div {
  5579. db.tocdiv.role.attribute = attribute role { text }
  5580. db.tocdiv.pagenum.attribute = db.toc.pagenum.attribute
  5581. db.tocdiv.attlist =
  5582. db.tocdiv.role.attribute?
  5583. & db.common.attributes
  5584. & db.tocdiv.pagenum.attribute?
  5585. & db.linkend.attribute?
  5586. db.tocdiv.info = db._info
  5587. db.tocdiv =
  5588. ## A division in a table of contents
  5589. element tocdiv {
  5590. db.tocdiv.attlist,
  5591. db.tocdiv.info,
  5592. db.all.blocks*,
  5593. (db.tocdiv | db.tocentry)+
  5594. }
  5595. }
  5596. div {
  5597. db.tocentry.role.attribute = attribute role { text }
  5598. db.tocentry.pagenum.attribute = db.toc.pagenum.attribute
  5599. db.tocentry.attlist =
  5600. db.tocentry.role.attribute?
  5601. & db.common.attributes
  5602. & db.tocentry.pagenum.attribute?
  5603. & db.linkend.attribute?
  5604. db.tocentry =
  5605. ## A component title in a table of contents
  5606. element tocentry { db.tocentry.attlist, db.all.inlines* }
  5607. }
  5608. db.task.info = db._info.title.req
  5609. div {
  5610. db.task.role.attribute = attribute role { text }
  5611. db.task.attlist =
  5612. db.task.role.attribute?
  5613. & db.common.attributes
  5614. & db.common.linking.attributes
  5615. db.task =
  5616. ## A task to be completed
  5617. element task {
  5618. db.task.attlist,
  5619. db.task.info,
  5620. db.tasksummary?,
  5621. db.taskprerequisites?,
  5622. db.procedure+,
  5623. db.example*,
  5624. db.taskrelated?
  5625. }
  5626. }
  5627. div {
  5628. db.tasksummary.role.attribute = attribute role { text }
  5629. db.tasksummary.attlist =
  5630. db.tasksummary.role.attribute?
  5631. & db.common.attributes
  5632. & db.common.linking.attributes
  5633. db.tasksummary.info = db._info.title.only
  5634. db.tasksummary =
  5635. ## A summary of a task
  5636. element tasksummary {
  5637. db.tasksummary.attlist, db.tasksummary.info, db.all.blocks+
  5638. }
  5639. }
  5640. div {
  5641. db.taskprerequisites.role.attribute = attribute role { text }
  5642. db.taskprerequisites.attlist =
  5643. db.taskprerequisites.role.attribute?
  5644. & db.common.attributes
  5645. & db.common.linking.attributes
  5646. db.taskprerequisites.info = db._info.title.only
  5647. db.taskprerequisites =
  5648. ## The prerequisites for a task
  5649. element taskprerequisites {
  5650. db.taskprerequisites.attlist,
  5651. db.taskprerequisites.info,
  5652. db.all.blocks+
  5653. }
  5654. }
  5655. div {
  5656. db.taskrelated.role.attribute = attribute role { text }
  5657. db.taskrelated.attlist =
  5658. db.taskrelated.role.attribute?
  5659. & db.common.attributes
  5660. & db.common.linking.attributes
  5661. db.taskrelated.info = db._info.title.only
  5662. db.taskrelated =
  5663. ## Information related to a task
  5664. element taskrelated {
  5665. db.taskrelated.attlist, db.taskrelated.info, db.all.blocks+
  5666. }
  5667. }
  5668. db.area.units.enumeration =
  5669. ## Coordinates expressed as a pair of CALS graphic coordinates.
  5670. "calspair"
  5671. |
  5672. ## Coordinates expressed as a line and column.
  5673. "linecolumn"
  5674. |
  5675. ## Coordinates expressed as a pair of lines and columns.
  5676. "linecolumnpair"
  5677. |
  5678. ## Coordinates expressed as a line range.
  5679. "linerange"
  5680. db.area.units-enum.attribute =
  5681. ## Identifies the units used in the coords attribute. The default units vary according to the type of callout specified: calspair
  5682. ## for graphics and linecolumn
  5683. ## for line-oriented elements.
  5684. attribute units { db.area.units.enumeration }?
  5685. db.area.units-other.attributes =
  5686. ## Indicates that non-standard units are used for this area
  5687. ## . In this case otherunits
  5688. ## must be specified.
  5689. attribute units {
  5690. ## Coordinates expressed in some non-standard units.
  5691. "other"
  5692. }?,
  5693. ## Identifies the units used in the coords
  5694. ## attribute when the units
  5695. ## attribute is other
  5696. ## . This attribute is forbidden otherwise.
  5697. attribute otherunits { xsd:NMTOKEN }
  5698. db.area.units.attribute =
  5699. db.area.units-enum.attribute | db.area.units-other.attributes
  5700. div {
  5701. db.calloutlist.role.attribute = attribute role { text }
  5702. db.calloutlist.attlist =
  5703. db.calloutlist.role.attribute?
  5704. & db.common.attributes
  5705. & db.common.linking.attributes
  5706. db.calloutlist.info = db._info.title.only
  5707. db.calloutlist =
  5708. ## A list of callout
  5709. ## s
  5710. element calloutlist {
  5711. db.calloutlist.attlist,
  5712. db.calloutlist.info,
  5713. db.all.blocks*,
  5714. db.callout+
  5715. }
  5716. }
  5717. div {
  5718. db.callout.role.attribute = attribute role { text }
  5719. db.callout.arearefs.attribute =
  5720. ## Identifies the areas described by this callout.
  5721. attribute arearefs { xsd:IDREFS }
  5722. db.callout.attlist =
  5723. db.callout.role.attribute?
  5724. & db.common.attributes
  5725. & db.callout.arearefs.attribute
  5726. db.callout =
  5727. ## A called out
  5728. ## description of a marked area
  5729. element callout { db.callout.attlist, db.all.blocks+ }
  5730. }
  5731. div {
  5732. db.programlistingco.role.attribute = attribute role { text }
  5733. db.programlistingco.attlist =
  5734. db.programlistingco.role.attribute?
  5735. & db.common.attributes
  5736. & db.common.linking.attributes
  5737. db.programlistingco.info = db._info.title.forbidden
  5738. db.programlistingco =
  5739. ## A program listing with associated areas used in callouts
  5740. element programlistingco {
  5741. db.programlistingco.attlist,
  5742. db.programlistingco.info,
  5743. db.areaspec,
  5744. db.programlisting,
  5745. db.calloutlist*
  5746. }
  5747. }
  5748. div {
  5749. db.areaspec.role.attribute = attribute role { text }
  5750. db.areaspec.attlist =
  5751. db.areaspec.role.attribute?
  5752. & db.common.attributes
  5753. & db.common.linking.attributes
  5754. & db.area.units.attribute
  5755. db.areaspec =
  5756. ## A collection of regions in a graphic or code example
  5757. element areaspec { db.areaspec.attlist, (db.area | db.areaset)+ }
  5758. }
  5759. div {
  5760. db.area.role.attribute = attribute role { text }
  5761. db.area.linkends.attribute =
  5762. ## Point to the callout
  5763. ## s which refer to this area. (This provides bidirectional linking which may be useful in online presentation.)
  5764. attribute linkends { xsd:IDREFS }
  5765. db.area.label.attribute =
  5766. ## 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.
  5767. attribute label { text }
  5768. db.area.coords.attribute =
  5769. ## Provides the coordinates of the area. The coordinates must be interpreted using the units
  5770. ## specified.
  5771. attribute coords { text }
  5772. db.area.attlist =
  5773. db.area.role.attribute?
  5774. & db.common.idreq.attributes
  5775. & db.area.units.attribute
  5776. & (db.area.linkends.attribute | db.xlink.simple.link.attributes)?
  5777. & db.area.label.attribute?
  5778. & db.area.coords.attribute
  5779. db.area =
  5780. ## A region defined for a callout in a graphic or code example
  5781. element area { db.area.attlist, db.alt? }
  5782. }
  5783. div {
  5784. # The only difference is that xml:id is optional
  5785. db.area.inareaset.attlist =
  5786. db.area.role.attribute?
  5787. & db.common.attributes
  5788. & db.area.units.attribute
  5789. & (db.area.linkends.attribute | db.xlink.simple.link.attributes)?
  5790. & db.area.label.attribute?
  5791. & db.area.coords.attribute
  5792. db.area.inareaset =
  5793. ## A region defined for a callout in a graphic or code example
  5794. element area { db.area.inareaset.attlist, db.alt? }
  5795. }
  5796. div {
  5797. db.areaset.role.attribute = attribute role { text }
  5798. db.areaset.linkends.attribute = db.linkends.attribute
  5799. db.areaset.label.attribute = db.label.attribute
  5800. db.areaset.attlist =
  5801. db.areaset.role.attribute?
  5802. & db.common.idreq.attributes
  5803. & db.area.units.attribute
  5804. & (db.areaset.linkends.attribute | db.xlink.simple.link.attributes)?
  5805. & db.areaset.label.attribute?
  5806. db.areaset =
  5807. ## A set of related areas in a graphic or code example
  5808. element areaset { db.areaset.attlist, db.area.inareaset+ }
  5809. }
  5810. div {
  5811. db.screenco.role.attribute = attribute role { text }
  5812. db.screenco.attlist =
  5813. db.screenco.role.attribute?
  5814. & db.common.attributes
  5815. & db.common.linking.attributes
  5816. db.screenco.info = db._info.title.forbidden
  5817. db.screenco =
  5818. ## A screen with associated areas used in callouts
  5819. element screenco {
  5820. db.screenco.attlist,
  5821. db.screenco.info,
  5822. db.areaspec,
  5823. db.screen,
  5824. db.calloutlist*
  5825. }
  5826. }
  5827. div {
  5828. db.imageobjectco.role.attribute = attribute role { text }
  5829. db.imageobjectco.attlist =
  5830. db.imageobjectco.role.attribute?
  5831. & db.common.attributes
  5832. & db.common.linking.attributes
  5833. db.imageobjectco.info = db._info.title.forbidden
  5834. db.imageobjectco =
  5835. ## A wrapper for an image object with callouts
  5836. element imageobjectco {
  5837. db.imageobjectco.attlist,
  5838. db.imageobjectco.info,
  5839. db.areaspec,
  5840. db.imageobject+,
  5841. db.calloutlist*
  5842. }
  5843. }
  5844. div {
  5845. db.co.role.attribute = attribute role { text }
  5846. db.co.linkends.attribute = db.linkends.attribute
  5847. db.co.label.attribute = db.label.attribute
  5848. db.co.attlist =
  5849. db.co.role.attribute?
  5850. & db.common.idreq.attributes
  5851. & db.co.linkends.attribute?
  5852. & db.co.label.attribute?
  5853. db.co =
  5854. ## The location of a callout embedded in text
  5855. element co { db.co.attlist, empty }
  5856. }
  5857. div {
  5858. db.coref.role.attribute = attribute role { text }
  5859. db.coref.label.attribute = db.label.attribute
  5860. db.coref.attlist =
  5861. db.coref.role.attribute?
  5862. & db.common.attributes
  5863. & db.linkend.attribute
  5864. & db.coref.label.attribute?
  5865. db.coref =
  5866. ## A cross reference to a co
  5867. element coref { db.coref.attlist, empty }
  5868. }
  5869. div {
  5870. db.productionset.role.attribute = attribute role { text }
  5871. db.productionset.attlist =
  5872. db.productionset.role.attribute?
  5873. & db.common.attributes
  5874. & db.common.linking.attributes
  5875. db.productionset.info = db._info.title.only
  5876. db.productionset =
  5877. ## A set of EBNF productions
  5878. element productionset {
  5879. db.productionset.attlist,
  5880. db.productionset.info,
  5881. (db.production | db.productionrecap)+
  5882. }
  5883. }
  5884. div {
  5885. db.production.role.attribute = attribute role { text }
  5886. db.production.attlist =
  5887. db.production.role.attribute?
  5888. & db.common.idreq.attributes
  5889. & db.common.linking.attributes
  5890. db.production =
  5891. ## A production in a set of EBNF productions
  5892. element production {
  5893. db.production.attlist, db.lhs, db.rhs+, db.constraint*
  5894. }
  5895. }
  5896. div {
  5897. db.lhs.role.attribute = attribute role { text }
  5898. db.lhs.attlist =
  5899. db.lhs.role.attribute?
  5900. & db.common.attributes
  5901. & db.common.linking.attributes
  5902. db.lhs =
  5903. ## The left-hand side of an EBNF production
  5904. element lhs { db.lhs.attlist, text }
  5905. }
  5906. div {
  5907. db.rhs.role.attribute = attribute role { text }
  5908. db.rhs.attlist =
  5909. db.rhs.role.attribute?
  5910. & db.common.attributes
  5911. & db.common.linking.attributes
  5912. db.rhs =
  5913. ## The right-hand side of an EBNF production
  5914. element rhs {
  5915. db.rhs.attlist,
  5916. (text | db.nonterminal | db.lineannotation | db.sbr)*
  5917. }
  5918. }
  5919. div {
  5920. db.nonterminal.role.attribute = attribute role { text }
  5921. db.nonterminal.def.attribute =
  5922. ## Specifies a URI that points to a production
  5923. ## where the nonterminal
  5924. ## is defined
  5925. attribute def { xsd:anyURI }
  5926. db.nonterminal.attlist =
  5927. db.nonterminal.role.attribute?
  5928. & db.common.attributes
  5929. & db.common.linking.attributes
  5930. & db.nonterminal.def.attribute
  5931. db.nonterminal =
  5932. ## A non-terminal in an EBNF production
  5933. element nonterminal { db.nonterminal.attlist, text }
  5934. }
  5935. div {
  5936. db.constraint.role.attribute = attribute role { text }
  5937. db.constraint.attlist =
  5938. db.constraint.role.attribute?
  5939. & db.common.attributes
  5940. & db.common.req.linking.attributes
  5941. db.constraint =
  5942. ## A constraint in an EBNF production
  5943. element constraint { db.constraint.attlist, empty }
  5944. }
  5945. div {
  5946. db.productionrecap.role.attribute = attribute role { text }
  5947. db.productionrecap.attlist =
  5948. db.productionrecap.role.attribute?
  5949. & db.common.attributes
  5950. & db.common.req.linking.attributes
  5951. db.productionrecap =
  5952. ## A cross-reference to an EBNF production
  5953. element productionrecap { db.productionrecap.attlist, empty }
  5954. }
  5955. div {
  5956. db.constraintdef.role.attribute = attribute role { text }
  5957. db.constraintdef.attlist =
  5958. db.constraintdef.role.attribute?
  5959. & db.common.attributes
  5960. & db.common.linking.attributes
  5961. db.constraintdef.info = db._info.title.only
  5962. db.constraintdef =
  5963. ## The definition of a constraint in an EBNF production
  5964. element constraintdef {
  5965. db.constraintdef.attlist, db.constraintdef.info, db.all.blocks+
  5966. }
  5967. }
  5968. db.char.attribute =
  5969. ## Specifies the alignment character when align
  5970. ## is set to char
  5971. ## .
  5972. attribute char { text }
  5973. db.charoff.attribute =
  5974. ## 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
  5975. ## when align
  5976. ## is set to char
  5977. ## .
  5978. attribute charoff {
  5979. xsd:decimal { minExclusive = "0" maxExclusive = "100" }
  5980. }
  5981. db.frame.attribute =
  5982. ## 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.
  5983. attribute frame {
  5984. ## 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.
  5985. "all"
  5986. |
  5987. ## Frame only the bottom of the table.
  5988. "bottom"
  5989. |
  5990. ## 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.
  5991. "none"
  5992. |
  5993. ## Frame the left and right sides of the table.
  5994. "sides"
  5995. |
  5996. ## Frame the top of the table.
  5997. "top"
  5998. |
  5999. ## Frame the top and bottom of the table.
  6000. "topbot"
  6001. }
  6002. db.colsep.attribute =
  6003. ## Specifies the presence or absence of the column separator
  6004. attribute colsep {
  6005. ## No column separator rule.
  6006. "0"
  6007. |
  6008. ## Provide a column separator rule on the right
  6009. "1"
  6010. }
  6011. db.rowsep.attribute =
  6012. ## Specifies the presence or absence of the row separator
  6013. attribute rowsep {
  6014. ## No row separator rule.
  6015. "0"
  6016. |
  6017. ## Provide a row separator rule below
  6018. "1"
  6019. }
  6020. db.orient.attribute =
  6021. ## Specifies the orientation of the table
  6022. attribute orient {
  6023. ## 90 degrees counter-clockwise from the rest of the text flow.
  6024. "land"
  6025. |
  6026. ## The same orientation as the rest of the text flow.
  6027. "port"
  6028. }
  6029. db.tabstyle.attribute =
  6030. ## Specifies the table style
  6031. attribute tabstyle { text }
  6032. db.rowheader.attribute =
  6033. ## Indicates whether or not the entries in the first column should be considered row headers
  6034. attribute rowheader {
  6035. ## Indicates that entries in the first column of the table are functionally row headers (analogous to the way that a thead provides column headers).
  6036. "firstcol"
  6037. |
  6038. ## Indicates that entries in the first column have no special significance with respect to column headers.
  6039. "norowheader"
  6040. }
  6041. db.align.attribute =
  6042. ## Specifies the horizontal alignment of text in an entry.
  6043. attribute align {
  6044. ## Centered.
  6045. "center"
  6046. |
  6047. ## Aligned on a particular character.
  6048. "char"
  6049. |
  6050. ## Left and right justified.
  6051. "justify"
  6052. |
  6053. ## Left justified.
  6054. "left"
  6055. |
  6056. ## Right justified.
  6057. "right"
  6058. }
  6059. db.valign.attribute =
  6060. ## Specifies the vertical alignment of text in an entry.
  6061. attribute valign {
  6062. ## Aligned on the bottom of the entry.
  6063. "bottom"
  6064. |
  6065. ## Aligned in the middle.
  6066. "middle"
  6067. |
  6068. ## Aligned at the top of the entry.
  6069. "top"
  6070. }
  6071. db.specify-col-by-colname.attributes =
  6072. ## Specifies a column specification by name.
  6073. attribute colname { text }
  6074. db.specify-col-by-namest.attributes =
  6075. ## Specifies a starting column by name.
  6076. attribute namest { text }
  6077. db.specify-span-by-spanspec.attributes =
  6078. ## Specifies a span by name.
  6079. attribute spanname { text }
  6080. db.specify-span-directly.attributes =
  6081. ## Specifies a starting column by name.
  6082. attribute namest { text }
  6083. &
  6084. ## Specifies an ending column by name.
  6085. attribute nameend { text }
  6086. db.column-spec.attributes =
  6087. db.specify-col-by-colname.attributes
  6088. | db.specify-col-by-namest.attributes
  6089. | db.specify-span-by-spanspec.attributes
  6090. | db.specify-span-directly.attributes
  6091. db.colname.attribute =
  6092. ## Provides a name for a column specification.
  6093. attribute colname { text }
  6094. db.spanname.attribute =
  6095. ## Provides a name for a span specification.
  6096. attribute spanname { text }
  6097. div {
  6098. db.tgroup.role.attribute = attribute role { text }
  6099. db.tgroup.tgroupstyle.attribute =
  6100. ## Additional style information for downstream processing; typically the name of a style.
  6101. attribute tgroupstyle { text }
  6102. db.tgroup.cols.attribute =
  6103. ## The number of columns in the table. Must be an integer greater than zero.
  6104. attribute cols { xsd:positiveInteger }
  6105. db.tgroup.attlist =
  6106. db.tgroup.role.attribute?
  6107. & db.common.attributes
  6108. & db.common.linking.attributes
  6109. & db.char.attribute?
  6110. & db.charoff.attribute?
  6111. & db.tgroup.tgroupstyle.attribute?
  6112. & db.tgroup.cols.attribute
  6113. & db.colsep.attribute?
  6114. & db.rowsep.attribute?
  6115. & db.align.attribute?
  6116. db.tgroup =
  6117. ## A wrapper for the main content of a table, or part of a table
  6118. element tgroup {
  6119. db.tgroup.attlist,
  6120. db.colspec*,
  6121. db.spanspec*,
  6122. db.cals.thead?,
  6123. db.cals.tfoot?,
  6124. db.cals.tbody
  6125. }
  6126. }
  6127. div {
  6128. db.colspec.role.attribute = attribute role { text }
  6129. db.colspec.colnum.attribute =
  6130. ## 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.
  6131. attribute colnum { xsd:positiveInteger }
  6132. db.colspec.colwidth.attribute =
  6133. ## Specifies the width of the column.
  6134. attribute colwidth { text }
  6135. db.colspec.attlist =
  6136. db.colspec.role.attribute?
  6137. & db.common.attributes
  6138. & db.common.linking.attributes
  6139. & db.colspec.colnum.attribute?
  6140. & db.char.attribute?
  6141. & db.colsep.attribute?
  6142. & db.colspec.colwidth.attribute?
  6143. & db.charoff.attribute?
  6144. & db.colname.attribute?
  6145. & db.rowsep.attribute?
  6146. & db.align.attribute?
  6147. db.colspec =
  6148. ## Specifications for a column in a table
  6149. element colspec { db.colspec.attlist, empty }
  6150. }
  6151. div {
  6152. db.spanspec.role.attribute = attribute role { text }
  6153. db.spanspec.namest.attribute =
  6154. ## Specifies a starting column by name.
  6155. attribute namest { text }
  6156. db.spanspec.nameend.attribute =
  6157. ## Specifies an ending column by name.
  6158. attribute nameend { text }
  6159. db.spanspec.attlist =
  6160. db.spanspec.role.attribute?
  6161. & db.common.attributes
  6162. & db.common.linking.attributes
  6163. & db.spanname.attribute
  6164. & db.spanspec.namest.attribute
  6165. & db.spanspec.nameend.attribute
  6166. & db.char.attribute?
  6167. & db.colsep.attribute?
  6168. & db.charoff.attribute?
  6169. & db.rowsep.attribute?
  6170. & db.align.attribute?
  6171. db.spanspec =
  6172. ## Formatting information for a spanned column in a table
  6173. element spanspec { db.spanspec.attlist, empty }
  6174. }
  6175. div {
  6176. db.cals.thead.role.attribute = attribute role { text }
  6177. db.cals.thead.attlist =
  6178. db.cals.thead.role.attribute?
  6179. & db.common.attributes
  6180. & db.common.linking.attributes
  6181. & db.valign.attribute?
  6182. db.cals.thead =
  6183. ## A table header consisting of one or more rows
  6184. element thead { db.cals.thead.attlist, db.colspec*, db.row+ }
  6185. }
  6186. div {
  6187. db.cals.tfoot.role.attribute = attribute role { text }
  6188. db.cals.tfoot.attlist =
  6189. db.cals.tfoot.role.attribute?
  6190. & db.common.attributes
  6191. & db.common.linking.attributes
  6192. & db.valign.attribute?
  6193. db.cals.tfoot =
  6194. ## A table footer consisting of one or more rows
  6195. element tfoot { db.cals.tfoot.attlist, db.colspec*, db.row+ }
  6196. }
  6197. div {
  6198. db.cals.tbody.role.attribute = attribute role { text }
  6199. db.cals.tbody.attlist =
  6200. db.cals.tbody.role.attribute?
  6201. & db.common.attributes
  6202. & db.common.linking.attributes
  6203. & db.valign.attribute?
  6204. db.cals.tbody =
  6205. ## A wrapper for the rows of a table or informal table
  6206. element tbody { db.cals.tbody.attlist, db.row+ }
  6207. }
  6208. div {
  6209. db.row.role.attribute = attribute role { text }
  6210. db.row.attlist =
  6211. db.row.role.attribute?
  6212. & db.common.attributes
  6213. & db.common.linking.attributes
  6214. & db.rowsep.attribute?
  6215. & db.valign.attribute?
  6216. db.row =
  6217. ## A row in a table
  6218. element row { db.row.attlist, (db.entry | db.entrytbl)+ }
  6219. }
  6220. div {
  6221. db.entry.role.attribute = attribute role { text }
  6222. db.entry.morerows.attribute =
  6223. ## Specifies the number of additional rows which this entry occupies. Defaults to zero.
  6224. attribute morerows { xsd:integer }
  6225. db.entry.rotate.attribute =
  6226. ## 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.
  6227. attribute rotate {
  6228. ## Do not rotate the cell.
  6229. "0"
  6230. |
  6231. ## Rotate the cell 90 degrees counter-clockwise.
  6232. "1"
  6233. }
  6234. db.entry.attlist =
  6235. db.entry.role.attribute?
  6236. & db.common.attributes
  6237. & db.common.linking.attributes
  6238. & db.valign.attribute?
  6239. & db.char.attribute?
  6240. & db.colsep.attribute?
  6241. & db.charoff.attribute?
  6242. & db.entry.morerows.attribute?
  6243. & db.column-spec.attributes?
  6244. & db.rowsep.attribute?
  6245. & db.entry.rotate.attribute?
  6246. & db.align.attribute?
  6247. db.entry =
  6248. ## A cell in a table
  6249. [
  6250. s:pattern [
  6251. name = "Element exclusion"
  6252. "\x{a}" ~
  6253. " "
  6254. s:rule [
  6255. context = "db:entry"
  6256. "\x{a}" ~
  6257. " "
  6258. s:assert [
  6259. test = "not(.//db:table)"
  6260. "table must not occur among the children or descendants of entry"
  6261. ]
  6262. "\x{a}" ~
  6263. " "
  6264. ]
  6265. "\x{a}" ~
  6266. " "
  6267. ]
  6268. s:pattern [
  6269. name = "Element exclusion"
  6270. "\x{a}" ~
  6271. " "
  6272. s:rule [
  6273. context = "db:entry"
  6274. "\x{a}" ~
  6275. " "
  6276. s:assert [
  6277. test = "not(.//db:informaltable)"
  6278. "informaltable must not occur among the children or descendants of entry"
  6279. ]
  6280. "\x{a}" ~
  6281. " "
  6282. ]
  6283. "\x{a}" ~
  6284. " "
  6285. ]
  6286. ]
  6287. element entry {
  6288. db.entry.attlist, (db.all.inlines* | db.all.blocks*)
  6289. }
  6290. }
  6291. div {
  6292. db.entrytbl.role.attribute = attribute role { text }
  6293. db.entrytbl.tgroupstyle.attribute =
  6294. ## Additional style information for downstream processing; typically the name of a style.
  6295. attribute tgroupstyle { text }
  6296. db.entrytbl.cols.attribute =
  6297. ## The number of columns in the entry table. Must be an integer greater than zero.
  6298. attribute cols { xsd:positiveInteger }
  6299. db.entrytbl.attlist =
  6300. db.entrytbl.role.attribute?
  6301. & db.common.attributes
  6302. & db.common.linking.attributes
  6303. & db.char.attribute?
  6304. & db.charoff.attribute?
  6305. & db.column-spec.attributes?
  6306. & db.entrytbl.tgroupstyle.attribute?
  6307. & db.entrytbl.cols.attribute?
  6308. & db.colsep.attribute?
  6309. & db.rowsep.attribute?
  6310. & db.align.attribute?
  6311. db.entrytbl =
  6312. ## A subtable appearing in place of an entry in a table
  6313. element entrytbl {
  6314. db.entrytbl.attlist,
  6315. db.colspec*,
  6316. db.spanspec*,
  6317. db.cals.entrytbl.thead?,
  6318. db.cals.entrytbl.tbody
  6319. }
  6320. }
  6321. div {
  6322. db.cals.entrytbl.thead.role.attribute = attribute role { text }
  6323. db.cals.entrytbl.thead.attlist =
  6324. db.cals.entrytbl.thead.role.attribute?
  6325. & db.common.attributes
  6326. & db.common.linking.attributes
  6327. & db.valign.attribute?
  6328. db.cals.entrytbl.thead =
  6329. ## A table header consisting of one or more rows
  6330. element thead {
  6331. db.cals.entrytbl.thead.attlist, db.colspec*, db.entrytbl.row+
  6332. }
  6333. }
  6334. div {
  6335. db.cals.entrytbl.tbody.role.attribute = attribute role { text }
  6336. db.cals.entrytbl.tbody.attlist =
  6337. db.cals.entrytbl.tbody.role.attribute?
  6338. & db.common.attributes
  6339. & db.common.linking.attributes
  6340. & db.valign.attribute?
  6341. db.cals.entrytbl.tbody =
  6342. ## A wrapper for the rows of a table or informal table
  6343. element tbody { db.cals.entrytbl.tbody.attlist, db.entrytbl.row+ }
  6344. }
  6345. div {
  6346. db.entrytbl.row.role.attribute = attribute role { text }
  6347. db.entrytbl.row.attlist =
  6348. db.entrytbl.row.role.attribute?
  6349. & db.common.attributes
  6350. & db.common.linking.attributes
  6351. & db.rowsep.attribute?
  6352. & db.valign.attribute?
  6353. db.entrytbl.row =
  6354. ## A row in a table
  6355. element row { db.entrytbl.row.attlist, db.entry+ }
  6356. }
  6357. div {
  6358. db.cals.table.role.attribute = attribute role { text }
  6359. db.cals.table.label.attribute = db.label.attribute
  6360. db.cals.table.attlist =
  6361. db.cals.table.role.attribute?
  6362. & db.cals.table.label.attribute?
  6363. & db.common.attributes
  6364. & db.common.linking.attributes
  6365. & db.tabstyle.attribute?
  6366. & db.floatstyle.attribute?
  6367. & db.orient.attribute?
  6368. & db.colsep.attribute?
  6369. & db.rowsep.attribute?
  6370. & db.frame.attribute?
  6371. & db.pgwide.attribute?
  6372. &
  6373. ## Indicates if the short or long title should be used in a List of Tables
  6374. attribute shortentry {
  6375. ## Indicates that the full title should be used.
  6376. "0"
  6377. |
  6378. ## Indicates that the short short title (titleabbrev) should be used.
  6379. "1"
  6380. }?
  6381. &
  6382. ## Indicates if the table should appear in a List of Tables
  6383. attribute tocentry {
  6384. ## Indicates that the table should not occur in the List of Tables.
  6385. "0"
  6386. |
  6387. ## Indicates that the table should appear in the List of Tables.
  6388. "1"
  6389. }?
  6390. & db.rowheader.attribute?
  6391. db.cals.table.info = db._info.title.onlyreq
  6392. db.cals.table =
  6393. ## A formal table in a document
  6394. [
  6395. s:pattern [
  6396. name = "Element exclusion"
  6397. "\x{a}" ~
  6398. " "
  6399. s:rule [
  6400. context = "db:table"
  6401. "\x{a}" ~
  6402. " "
  6403. s:assert [
  6404. test = "not(.//db:example)"
  6405. "example must not occur among the children or descendants of table"
  6406. ]
  6407. "\x{a}" ~
  6408. " "
  6409. ]
  6410. "\x{a}" ~
  6411. " "
  6412. ]
  6413. s:pattern [
  6414. name = "Element exclusion"
  6415. "\x{a}" ~
  6416. " "
  6417. s:rule [
  6418. context = "db:table"
  6419. "\x{a}" ~
  6420. " "
  6421. s:assert [
  6422. test = "not(.//db:figure)"
  6423. "figure must not occur among the children or descendants of table"
  6424. ]
  6425. "\x{a}" ~
  6426. " "
  6427. ]
  6428. "\x{a}" ~
  6429. " "
  6430. ]
  6431. s:pattern [
  6432. name = "Element exclusion"
  6433. "\x{a}" ~
  6434. " "
  6435. s:rule [
  6436. context = "db:table"
  6437. "\x{a}" ~
  6438. " "
  6439. s:assert [
  6440. test = "not(.//db:equation)"
  6441. "equation must not occur among the children or descendants of table"
  6442. ]
  6443. "\x{a}" ~
  6444. " "
  6445. ]
  6446. "\x{a}" ~
  6447. " "
  6448. ]
  6449. s:pattern [
  6450. name = "Element exclusion"
  6451. "\x{a}" ~
  6452. " "
  6453. s:rule [
  6454. context = "db:table"
  6455. "\x{a}" ~
  6456. " "
  6457. s:assert [
  6458. test = "not(.//db:caution)"
  6459. "caution must not occur among the children or descendants of table"
  6460. ]
  6461. "\x{a}" ~
  6462. " "
  6463. ]
  6464. "\x{a}" ~
  6465. " "
  6466. ]
  6467. s:pattern [
  6468. name = "Element exclusion"
  6469. "\x{a}" ~
  6470. " "
  6471. s:rule [
  6472. context = "db:table"
  6473. "\x{a}" ~
  6474. " "
  6475. s:assert [
  6476. test = "not(.//db:important)"
  6477. "important must not occur among the children or descendants of table"
  6478. ]
  6479. "\x{a}" ~
  6480. " "
  6481. ]
  6482. "\x{a}" ~
  6483. " "
  6484. ]
  6485. s:pattern [
  6486. name = "Element exclusion"
  6487. "\x{a}" ~
  6488. " "
  6489. s:rule [
  6490. context = "db:table"
  6491. "\x{a}" ~
  6492. " "
  6493. s:assert [
  6494. test = "not(.//db:note)"
  6495. "note must not occur among the children or descendants of table"
  6496. ]
  6497. "\x{a}" ~
  6498. " "
  6499. ]
  6500. "\x{a}" ~
  6501. " "
  6502. ]
  6503. s:pattern [
  6504. name = "Element exclusion"
  6505. "\x{a}" ~
  6506. " "
  6507. s:rule [
  6508. context = "db:table"
  6509. "\x{a}" ~
  6510. " "
  6511. s:assert [
  6512. test = "not(.//db:tip)"
  6513. "tip must not occur among the children or descendants of table"
  6514. ]
  6515. "\x{a}" ~
  6516. " "
  6517. ]
  6518. "\x{a}" ~
  6519. " "
  6520. ]
  6521. s:pattern [
  6522. name = "Element exclusion"
  6523. "\x{a}" ~
  6524. " "
  6525. s:rule [
  6526. context = "db:table"
  6527. "\x{a}" ~
  6528. " "
  6529. s:assert [
  6530. test = "not(.//db:warning)"
  6531. "warning must not occur among the children or descendants of table"
  6532. ]
  6533. "\x{a}" ~
  6534. " "
  6535. ]
  6536. "\x{a}" ~
  6537. " "
  6538. ]
  6539. ]
  6540. element table {
  6541. db.cals.table.attlist,
  6542. db.cals.table.info,
  6543. (db.alt? & db.indexing.inlines* & db.textobject*),
  6544. (db.mediaobject+ | db.tgroup+),
  6545. db.caption?
  6546. }
  6547. }
  6548. div {
  6549. db.cals.informaltable.role.attribute = attribute role { text }
  6550. db.cals.informaltable.attlist =
  6551. db.cals.informaltable.role.attribute?
  6552. & db.common.attributes
  6553. & db.common.linking.attributes
  6554. & db.tabstyle.attribute?
  6555. & db.floatstyle.attribute?
  6556. & db.orient.attribute?
  6557. & db.colsep.attribute?
  6558. & db.rowsep.attribute?
  6559. & db.frame.attribute?
  6560. & db.pgwide.attribute?
  6561. & db.rowheader.attribute?
  6562. db.cals.informaltable.info = db._info.title.forbidden
  6563. db.cals.informaltable =
  6564. ## A table without a title
  6565. element informaltable {
  6566. db.cals.informaltable.attlist,
  6567. db.cals.informaltable.info,
  6568. (db.alt? & db.indexing.inlines* & db.textobject*),
  6569. (db.mediaobject+ | db.tgroup+),
  6570. db.caption?
  6571. }
  6572. }
  6573. db.html.coreattrs =
  6574. ## 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.
  6575. attribute class { text }?
  6576. &
  6577. ## This attribute specifies style information for the current element.
  6578. attribute style { text }?
  6579. &
  6580. ## This attribute offers advisory information about the element for which it is set.
  6581. attribute title { text }?
  6582. db.html.i18n =
  6583. ## This attribute specifies the base language of an element's attribute values and text content. The default value of this attribute is unknown.
  6584. attribute lang { text }?
  6585. db.html.events =
  6586. ## Occurs when the pointing device button is clicked over an element.
  6587. attribute onclick { text }?
  6588. &
  6589. ## Occurs when the pointing device button is double clicked over an element.
  6590. attribute ondblclick { text }?
  6591. &
  6592. ## Occurs when the pointing device button is pressed over an element.
  6593. attribute onmousedown { text }?
  6594. &
  6595. ## Occurs when the pointing device button is released over an element.
  6596. attribute onmouseup { text }?
  6597. &
  6598. ## Occurs when the pointing device is moved onto an element.
  6599. attribute onmouseover { text }?
  6600. &
  6601. ## Occurs when the pointing device is moved while it is over an element.
  6602. attribute onmousemove { text }?
  6603. &
  6604. ## Occurs when the pointing device is moved away from an element.
  6605. attribute onmouseout { text }?
  6606. &
  6607. ## Occurs when a key is pressed and released over an element.
  6608. attribute onkeypress { text }?
  6609. &
  6610. ## Occurs when a key is pressed down over an element.
  6611. attribute onkeydown { text }?
  6612. &
  6613. ## Occurs when a key is released over an element.
  6614. attribute onkeyup { text }?
  6615. db.html.attrs =
  6616. db.common.attributes
  6617. & db.html.coreattrs
  6618. & db.html.i18n
  6619. & db.html.events
  6620. db.html.cellhalign =
  6621. ## Specifies the alignment of data and the justification of text in a cell.
  6622. attribute align {
  6623. ## Left-flush data/Left-justify text. This is the default value for table data.
  6624. "left"
  6625. |
  6626. ## Center data/Center-justify text. This is the default value for table headers.
  6627. "center"
  6628. |
  6629. ## Right-flush data/Right-justify text.
  6630. "right"
  6631. |
  6632. ## Double-justify text.
  6633. "justify"
  6634. |
  6635. ## Align text around a specific character. If a user agent doesn't support character alignment, behavior in the presence of this value is unspecified.
  6636. "char"
  6637. }?
  6638. &
  6639. ## 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.
  6640. attribute char { text }?
  6641. &
  6642. ## 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.
  6643. attribute charoff {
  6644. xsd:integer >> a:documentation [ "An explicit offset." ]
  6645. | xsd:string { pattern = "[0-9]+%" }
  6646. >> a:documentation [ "A percentage offset." ]
  6647. }?
  6648. db.html.cellvalign =
  6649. ## Specifies the vertical position of data within a cell.
  6650. attribute valign {
  6651. ## Cell data is flush with the top of the cell.
  6652. "top"
  6653. |
  6654. ## Cell data is centered vertically within the cell. This is the default value.
  6655. "middle"
  6656. |
  6657. ## Cell data is flush with the bottom of the cell.
  6658. "bottom"
  6659. |
  6660. ## 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.
  6661. "baseline"
  6662. }?
  6663. db.html.table.attributes =
  6664. ## Provides a summary of the table's purpose and structure for user agents rendering to non-visual media such as speech and Braille.
  6665. attribute summary { text }?
  6666. &
  6667. ## 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.
  6668. attribute width {
  6669. xsd:integer >> a:documentation [ "An explicit width." ]
  6670. | xsd:string { pattern = "[0-9]+%" }
  6671. >> a:documentation [ "A percentage width." ]
  6672. }?
  6673. &
  6674. ## Specifies the width (in pixels only) of the frame around a table.
  6675. attribute border { xsd:nonNegativeInteger }?
  6676. &
  6677. ## Specifies which sides of the frame surrounding a table will be visible.
  6678. attribute frame {
  6679. ## No sides. This is the default value.
  6680. "void"
  6681. |
  6682. ## The top side only.
  6683. "above"
  6684. |
  6685. ## The bottom side only.
  6686. "below"
  6687. |
  6688. ## The top and bottom sides only.
  6689. "hsides"
  6690. |
  6691. ## The left-hand side only.
  6692. "lhs"
  6693. |
  6694. ## The right-hand side only.
  6695. "rhs"
  6696. |
  6697. ## The right and left sides only.
  6698. "vsides"
  6699. |
  6700. ## All four sides.
  6701. "box"
  6702. |
  6703. ## All four sides.
  6704. "border"
  6705. }?
  6706. &
  6707. ## Specifies which rules will appear between cells within a table. The rendering of rules is user agent dependent.
  6708. attribute rules {
  6709. ## No rules. This is the default value.
  6710. "none"
  6711. |
  6712. ## Rules will appear between row groups (see thead, tfoot, and tbody) and column groups (see colgroup and col) only.
  6713. "groups"
  6714. |
  6715. ## Rules will appear between rows only.
  6716. "rows"
  6717. |
  6718. ## Rules will appear between columns only.
  6719. "cols"
  6720. |
  6721. ## Rules will appear between all rows and columns.
  6722. "all"
  6723. }?
  6724. &
  6725. ## 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.
  6726. attribute cellspacing {
  6727. xsd:integer >> a:documentation [ "An explicit spacing." ]
  6728. | xsd:string { pattern = "[0-9]+%" }
  6729. >> a:documentation [ "A percentage spacing." ]
  6730. }?
  6731. &
  6732. ## 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.
  6733. attribute cellpadding {
  6734. xsd:integer >> a:documentation [ "An explicit padding." ]
  6735. | xsd:string { pattern = "[0-9]+%" }
  6736. >> a:documentation [ "A percentage padding." ]
  6737. }?
  6738. db.html.tablecell.attributes =
  6739. ## 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.
  6740. attribute abbr { text }?
  6741. &
  6742. ## 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.
  6743. attribute axis { text }?
  6744. &
  6745. ## 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.
  6746. attribute headers { text }?
  6747. &
  6748. ## 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.
  6749. attribute scope {
  6750. ## The current cell provides header information for the rest of the row that contains it
  6751. "row"
  6752. |
  6753. ## The current cell provides header information for the rest of the column that contains it.
  6754. "col"
  6755. |
  6756. ## The header cell provides header information for the rest of the row group that contains it.
  6757. "rowgroup"
  6758. |
  6759. ## The header cell provides header information for the rest of the column group that contains it.
  6760. "colgroup"
  6761. }?
  6762. &
  6763. ## Specifies the number of rows spanned by the current cell. The default value of this attribute is one (1
  6764. ## ). The value zero (0
  6765. ## ) means that the cell spans all rows from the current row to the last row of the table section (thead
  6766. ## , tbody
  6767. ## , or tfoot
  6768. ## ) in which the cell is defined.
  6769. attribute rowspan { xsd:nonNegativeInteger }?
  6770. &
  6771. ## Specifies the number of columns spanned by the current cell. The default value of this attribute is one (1
  6772. ## ). The value zero (0
  6773. ## ) means that the cell spans all columns from the current column to the last column of the column group (colgroup
  6774. ## ) in which the cell is defined.
  6775. attribute colspan { xsd:nonNegativeInteger }?
  6776. db.html.table.info = db._info.title.forbidden
  6777. db.html.table.model =
  6778. db.html.table.info?,
  6779. db.html.caption,
  6780. (db.html.col* | db.html.colgroup*),
  6781. db.html.thead?,
  6782. db.html.tfoot?,
  6783. (db.html.tbody+ | db.html.tr+)
  6784. db.html.informaltable.info = db._info.title.forbidden
  6785. db.html.informaltable.model =
  6786. db.html.informaltable.info?,
  6787. (db.html.col* | db.html.colgroup*),
  6788. db.html.thead?,
  6789. db.html.tfoot?,
  6790. (db.html.tbody+ | db.html.tr+)
  6791. div {
  6792. db.html.table.role.attribute = attribute role { text }
  6793. db.html.table.label.attribute = db.label.attribute
  6794. db.html.table.attlist =
  6795. db.html.attrs
  6796. & db.html.table.attributes
  6797. & db.html.table.role.attribute?
  6798. & db.html.table.label.attribute?
  6799. & db.orient.attribute?
  6800. & db.pgwide.attribute?
  6801. & db.tabstyle.attribute?
  6802. & db.floatstyle.attribute?
  6803. db.html.table =
  6804. ## A formal (captioned) HTML table in a document
  6805. [
  6806. s:pattern [
  6807. name = "Element exclusion"
  6808. "\x{a}" ~
  6809. " "
  6810. s:rule [
  6811. context = "db:table"
  6812. "\x{a}" ~
  6813. " "
  6814. s:assert [
  6815. test = "not(.//db:example)"
  6816. "example must not occur among the children or descendants of table"
  6817. ]
  6818. "\x{a}" ~
  6819. " "
  6820. ]
  6821. "\x{a}" ~
  6822. " "
  6823. ]
  6824. s:pattern [
  6825. name = "Element exclusion"
  6826. "\x{a}" ~
  6827. " "
  6828. s:rule [
  6829. context = "db:table"
  6830. "\x{a}" ~
  6831. " "
  6832. s:assert [
  6833. test = "not(.//db:figure)"
  6834. "figure must not occur among the children or descendants of table"
  6835. ]
  6836. "\x{a}" ~
  6837. " "
  6838. ]
  6839. "\x{a}" ~
  6840. " "
  6841. ]
  6842. s:pattern [
  6843. name = "Element exclusion"
  6844. "\x{a}" ~
  6845. " "
  6846. s:rule [
  6847. context = "db:table"
  6848. "\x{a}" ~
  6849. " "
  6850. s:assert [
  6851. test = "not(.//db:equation)"
  6852. "equation must not occur among the children or descendants of table"
  6853. ]
  6854. "\x{a}" ~
  6855. " "
  6856. ]
  6857. "\x{a}" ~
  6858. " "
  6859. ]
  6860. s:pattern [
  6861. name = "Element exclusion"
  6862. "\x{a}" ~
  6863. " "
  6864. s:rule [
  6865. context = "db:table"
  6866. "\x{a}" ~
  6867. " "
  6868. s:assert [
  6869. test = "not(.//db:caution)"
  6870. "caution must not occur among the children or descendants of table"
  6871. ]
  6872. "\x{a}" ~
  6873. " "
  6874. ]
  6875. "\x{a}" ~
  6876. " "
  6877. ]
  6878. s:pattern [
  6879. name = "Element exclusion"
  6880. "\x{a}" ~
  6881. " "
  6882. s:rule [
  6883. context = "db:table"
  6884. "\x{a}" ~
  6885. " "
  6886. s:assert [
  6887. test = "not(.//db:important)"
  6888. "important must not occur among the children or descendants of table"
  6889. ]
  6890. "\x{a}" ~
  6891. " "
  6892. ]
  6893. "\x{a}" ~
  6894. " "
  6895. ]
  6896. s:pattern [
  6897. name = "Element exclusion"
  6898. "\x{a}" ~
  6899. " "
  6900. s:rule [
  6901. context = "db:table"
  6902. "\x{a}" ~
  6903. " "
  6904. s:assert [
  6905. test = "not(.//db:note)"
  6906. "note must not occur among the children or descendants of table"
  6907. ]
  6908. "\x{a}" ~
  6909. " "
  6910. ]
  6911. "\x{a}" ~
  6912. " "
  6913. ]
  6914. s:pattern [
  6915. name = "Element exclusion"
  6916. "\x{a}" ~
  6917. " "
  6918. s:rule [
  6919. context = "db:table"
  6920. "\x{a}" ~
  6921. " "
  6922. s:assert [
  6923. test = "not(.//db:tip)"
  6924. "tip must not occur among the children or descendants of table"
  6925. ]
  6926. "\x{a}" ~
  6927. " "
  6928. ]
  6929. "\x{a}" ~
  6930. " "
  6931. ]
  6932. s:pattern [
  6933. name = "Element exclusion"
  6934. "\x{a}" ~
  6935. " "
  6936. s:rule [
  6937. context = "db:table"
  6938. "\x{a}" ~
  6939. " "
  6940. s:assert [
  6941. test = "not(.//db:warning)"
  6942. "warning must not occur among the children or descendants of table"
  6943. ]
  6944. "\x{a}" ~
  6945. " "
  6946. ]
  6947. "\x{a}" ~
  6948. " "
  6949. ]
  6950. ]
  6951. element table { db.html.table.attlist, db.html.table.model }
  6952. }
  6953. div {
  6954. db.html.informaltable.role.attribute = attribute role { text }
  6955. db.html.informaltable.label.attribute = db.label.attribute
  6956. db.html.informaltable.attlist =
  6957. db.html.attrs
  6958. & db.html.table.attributes
  6959. & db.html.informaltable.role.attribute?
  6960. & db.html.informaltable.label.attribute?
  6961. & db.orient.attribute?
  6962. & db.pgwide.attribute?
  6963. & db.tabstyle.attribute?
  6964. & db.floatstyle.attribute?
  6965. db.html.informaltable =
  6966. ## An HTML table without a title
  6967. element informaltable {
  6968. db.html.informaltable.attlist, db.html.informaltable.model
  6969. }
  6970. }
  6971. div {
  6972. db.html.caption.attlist = db.html.attrs
  6973. db.html.caption =
  6974. ## An HTML table caption
  6975. [
  6976. s:pattern [
  6977. name = "Element exclusion"
  6978. "\x{a}" ~
  6979. " "
  6980. s:rule [
  6981. context = "db:caption"
  6982. "\x{a}" ~
  6983. " "
  6984. s:assert [
  6985. test = "not(.//db:example)"
  6986. "example must not occur among the children or descendants of caption"
  6987. ]
  6988. "\x{a}" ~
  6989. " "
  6990. ]
  6991. "\x{a}" ~
  6992. " "
  6993. ]
  6994. s:pattern [
  6995. name = "Element exclusion"
  6996. "\x{a}" ~
  6997. " "
  6998. s:rule [
  6999. context = "db:caption"
  7000. "\x{a}" ~
  7001. " "
  7002. s:assert [
  7003. test = "not(.//db:figure)"
  7004. "figure must not occur among the children or descendants of caption"
  7005. ]
  7006. "\x{a}" ~
  7007. " "
  7008. ]
  7009. "\x{a}" ~
  7010. " "
  7011. ]
  7012. s:pattern [
  7013. name = "Element exclusion"
  7014. "\x{a}" ~
  7015. " "
  7016. s:rule [
  7017. context = "db:caption"
  7018. "\x{a}" ~
  7019. " "
  7020. s:assert [
  7021. test = "not(.//db:table)"
  7022. "table must not occur among the children or descendants of caption"
  7023. ]
  7024. "\x{a}" ~
  7025. " "
  7026. ]
  7027. "\x{a}" ~
  7028. " "
  7029. ]
  7030. s:pattern [
  7031. name = "Element exclusion"
  7032. "\x{a}" ~
  7033. " "
  7034. s:rule [
  7035. context = "db:caption"
  7036. "\x{a}" ~
  7037. " "
  7038. s:assert [
  7039. test = "not(.//db:equation)"
  7040. "equation must not occur among the children or descendants of caption"
  7041. ]
  7042. "\x{a}" ~
  7043. " "
  7044. ]
  7045. "\x{a}" ~
  7046. " "
  7047. ]
  7048. s:pattern [
  7049. name = "Element exclusion"
  7050. "\x{a}" ~
  7051. " "
  7052. s:rule [
  7053. context = "db:caption"
  7054. "\x{a}" ~
  7055. " "
  7056. s:assert [
  7057. test = "not(.//db:sidebar)"
  7058. "sidebar must not occur among the children or descendants of caption"
  7059. ]
  7060. "\x{a}" ~
  7061. " "
  7062. ]
  7063. "\x{a}" ~
  7064. " "
  7065. ]
  7066. s:pattern [
  7067. name = "Element exclusion"
  7068. "\x{a}" ~
  7069. " "
  7070. s:rule [
  7071. context = "db:caption"
  7072. "\x{a}" ~
  7073. " "
  7074. s:assert [
  7075. test = "not(.//db:task)"
  7076. "task must not occur among the children or descendants of caption"
  7077. ]
  7078. "\x{a}" ~
  7079. " "
  7080. ]
  7081. "\x{a}" ~
  7082. " "
  7083. ]
  7084. s:pattern [
  7085. name = "Element exclusion"
  7086. "\x{a}" ~
  7087. " "
  7088. s:rule [
  7089. context = "db:caption"
  7090. "\x{a}" ~
  7091. " "
  7092. s:assert [
  7093. test = "not(.//db:caution)"
  7094. "caution must not occur among the children or descendants of caption"
  7095. ]
  7096. "\x{a}" ~
  7097. " "
  7098. ]
  7099. "\x{a}" ~
  7100. " "
  7101. ]
  7102. s:pattern [
  7103. name = "Element exclusion"
  7104. "\x{a}" ~
  7105. " "
  7106. s:rule [
  7107. context = "db:caption"
  7108. "\x{a}" ~
  7109. " "
  7110. s:assert [
  7111. test = "not(.//db:important)"
  7112. "important must not occur among the children or descendants of caption"
  7113. ]
  7114. "\x{a}" ~
  7115. " "
  7116. ]
  7117. "\x{a}" ~
  7118. " "
  7119. ]
  7120. s:pattern [
  7121. name = "Element exclusion"
  7122. "\x{a}" ~
  7123. " "
  7124. s:rule [
  7125. context = "db:caption"
  7126. "\x{a}" ~
  7127. " "
  7128. s:assert [
  7129. test = "not(.//db:note)"
  7130. "note must not occur among the children or descendants of caption"
  7131. ]
  7132. "\x{a}" ~
  7133. " "
  7134. ]
  7135. "\x{a}" ~
  7136. " "
  7137. ]
  7138. s:pattern [
  7139. name = "Element exclusion"
  7140. "\x{a}" ~
  7141. " "
  7142. s:rule [
  7143. context = "db:caption"
  7144. "\x{a}" ~
  7145. " "
  7146. s:assert [
  7147. test = "not(.//db:tip)"
  7148. "tip must not occur among the children or descendants of caption"
  7149. ]
  7150. "\x{a}" ~
  7151. " "
  7152. ]
  7153. "\x{a}" ~
  7154. " "
  7155. ]
  7156. s:pattern [
  7157. name = "Element exclusion"
  7158. "\x{a}" ~
  7159. " "
  7160. s:rule [
  7161. context = "db:caption"
  7162. "\x{a}" ~
  7163. " "
  7164. s:assert [
  7165. test = "not(.//db:warning)"
  7166. "warning must not occur among the children or descendants of caption"
  7167. ]
  7168. "\x{a}" ~
  7169. " "
  7170. ]
  7171. "\x{a}" ~
  7172. " "
  7173. ]
  7174. ]
  7175. element caption { db.html.caption.attlist, db.all.inlines* }
  7176. }
  7177. div {
  7178. db.html.col.attlist =
  7179. db.html.attrs
  7180. &
  7181. ## This attribute, whose value must be an integer > 0, specifies the number of columns spanned
  7182. ## by the col
  7183. ## element; the col
  7184. ## 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
  7185. ## element shares its attributes with the next N-1 columns.
  7186. attribute span { xsd:nonNegativeInteger }?
  7187. &
  7188. ## Specifies a default width for each column spanned by the current col
  7189. ## element. It has the same meaning as the width
  7190. ## attribute for the colgroup
  7191. ## element and overrides it.
  7192. attribute width { text }?
  7193. & db.html.cellhalign
  7194. & db.html.cellvalign
  7195. db.html.col =
  7196. ## Specifications for a column in an HTML table
  7197. element col { db.html.col.attlist, empty }
  7198. }
  7199. div {
  7200. db.html.colgroup.attlist =
  7201. db.html.attrs
  7202. &
  7203. ## 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
  7204. ## defines a column group containing one column. If the span attribute is set to N > 0, the current colgroup
  7205. ## element defines a column group containing N columns. User agents must ignore this attribute if the colgroup
  7206. ## element contains one or more col
  7207. ## elements.
  7208. attribute span { xsd:nonNegativeInteger }?
  7209. &
  7210. ## 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*
  7211. ## (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*
  7212. ## 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
  7213. ## element.
  7214. attribute width { text }?
  7215. & db.html.cellhalign
  7216. & db.html.cellvalign
  7217. db.html.colgroup =
  7218. ## A group of columns in an HTML table
  7219. element colgroup { db.html.colgroup.attlist, db.html.col* }
  7220. }
  7221. div {
  7222. db.html.thead.attlist =
  7223. db.html.attrs & db.html.cellhalign & db.html.cellvalign
  7224. db.html.thead =
  7225. ## A table header consisting of one or more rows in an HTML table
  7226. element thead { db.html.thead.attlist, db.html.tr+ }
  7227. }
  7228. div {
  7229. db.html.tfoot.attlist =
  7230. db.html.attrs & db.html.cellhalign & db.html.cellvalign
  7231. db.html.tfoot =
  7232. ## A table footer consisting of one or more rows in an HTML table
  7233. element tfoot { db.html.tfoot.attlist, db.html.tr+ }
  7234. }
  7235. div {
  7236. db.html.tbody.attlist =
  7237. db.html.attrs & db.html.cellhalign & db.html.cellvalign
  7238. db.html.tbody =
  7239. ## A wrapper for the rows of an HTML table or informal HTML table
  7240. element tbody { db.html.tbody.attlist, db.html.tr+ }
  7241. }
  7242. div {
  7243. db.html.tr.attlist =
  7244. db.html.attrs & db.html.cellhalign & db.html.cellvalign
  7245. db.html.tr =
  7246. ## A row in an HTML table
  7247. element tr { db.html.tr.attlist, (db.html.th | db.html.td)+ }
  7248. }
  7249. div {
  7250. db.html.th.attlist =
  7251. db.html.attrs
  7252. & db.html.tablecell.attributes
  7253. & db.html.cellhalign
  7254. & db.html.cellvalign
  7255. db.html.th =
  7256. ## A table header entry in an HTML table
  7257. element th {
  7258. db.html.th.attlist, (db.all.inlines* | db.all.blocks*)
  7259. }
  7260. }
  7261. div {
  7262. db.html.td.attlist =
  7263. db.html.attrs
  7264. & db.html.tablecell.attributes
  7265. & db.html.cellhalign
  7266. & db.html.cellvalign
  7267. db.html.td =
  7268. ## A table entry in an HTML table
  7269. element td {
  7270. db.html.td.attlist, (db.all.inlines* | db.all.blocks*)
  7271. }
  7272. }
  7273. div {
  7274. db.msgset.role.attribute = attribute role { text }
  7275. db.msgset.attlist =
  7276. db.msgset.role.attribute?
  7277. & db.common.attributes
  7278. & db.common.linking.attributes
  7279. db.msgset.info = db._info.title.only
  7280. db.msgset =
  7281. ## A detailed set of messages, usually error messages
  7282. element msgset {
  7283. db.msgset.attlist,
  7284. db.msgset.info,
  7285. (db.msgentry+ | db.simplemsgentry+)
  7286. }
  7287. }
  7288. div {
  7289. db.msgentry.role.attribute = attribute role { text }
  7290. db.msgentry.attlist =
  7291. db.msgentry.role.attribute?
  7292. & db.common.attributes
  7293. & db.common.linking.attributes
  7294. db.msgentry =
  7295. ## A wrapper for an entry in a message set
  7296. element msgentry {
  7297. db.msgentry.attlist, db.msg+, db.msginfo?, db.msgexplan*
  7298. }
  7299. }
  7300. div {
  7301. db.simplemsgentry.role.attribute = attribute role { text }
  7302. db.simplemsgentry.msgaud.attribute =
  7303. ## The audience to which the message relevant
  7304. attribute msgaud { text }
  7305. db.simplemsgentry.msgorig.attribute =
  7306. ## The origin of the message
  7307. attribute msgorig { text }
  7308. db.simplemsgentry.msglevel.attribute =
  7309. ## The level of importance or severity of a message
  7310. attribute msglevel { text }
  7311. db.simplemsgentry.attlist =
  7312. db.simplemsgentry.role.attribute?
  7313. & db.common.attributes
  7314. & db.common.linking.attributes
  7315. & db.simplemsgentry.msgaud.attribute?
  7316. & db.simplemsgentry.msgorig.attribute?
  7317. & db.simplemsgentry.msglevel.attribute?
  7318. db.simplemsgentry =
  7319. ## A wrapper for a simpler entry in a message set
  7320. element simplemsgentry {
  7321. db.simplemsgentry.attlist, db.msgtext, db.msgexplan+
  7322. }
  7323. }
  7324. div {
  7325. db.msg.role.attribute = attribute role { text }
  7326. db.msg.attlist =
  7327. db.msg.role.attribute?
  7328. & db.common.attributes
  7329. & db.common.linking.attributes
  7330. db.msg.info = db._info.title.only
  7331. db.msg =
  7332. ## A message in a message set
  7333. element msg {
  7334. db.msg.attlist, db.msg.info, db.msgmain, (db.msgsub | db.msgrel)*
  7335. }
  7336. }
  7337. div {
  7338. db.msgmain.role.attribute = attribute role { text }
  7339. db.msgmain.attlist =
  7340. db.msgmain.role.attribute?
  7341. & db.common.attributes
  7342. & db.common.linking.attributes
  7343. db.msgmain.info = db._info.title.only
  7344. db.msgmain =
  7345. ## The primary component of a message in a message set
  7346. element msgmain { db.msgmain.attlist, db.msgmain.info, db.msgtext }
  7347. }
  7348. div {
  7349. db.msgsub.role.attribute = attribute role { text }
  7350. db.msgsub.attlist =
  7351. db.msgsub.role.attribute?
  7352. & db.common.attributes
  7353. & db.common.linking.attributes
  7354. db.msgsub.info = db._info.title.only
  7355. db.msgsub =
  7356. ## A subcomponent of a message in a message set
  7357. element msgsub { db.msgsub.attlist, db.msgsub.info, db.msgtext }
  7358. }
  7359. div {
  7360. db.msgrel.role.attribute = attribute role { text }
  7361. db.msgrel.attlist =
  7362. db.msgrel.role.attribute?
  7363. & db.common.attributes
  7364. & db.common.linking.attributes
  7365. db.msgrel.info = db._info.title.only
  7366. db.msgrel =
  7367. ## A related component of a message in a message set
  7368. element msgrel { db.msgrel.attlist, db.msgrel.info, db.msgtext }
  7369. }
  7370. div {
  7371. db.msgtext.role.attribute = attribute role { text }
  7372. db.msgtext.attlist =
  7373. db.msgtext.role.attribute?
  7374. & db.common.attributes
  7375. & db.common.linking.attributes
  7376. db.msgtext =
  7377. ## The actual text of a message component in a message set
  7378. element msgtext { db.msgtext.attlist, db.all.blocks+ }
  7379. }
  7380. div {
  7381. db.msginfo.role.attribute = attribute role { text }
  7382. db.msginfo.attlist =
  7383. db.msginfo.role.attribute?
  7384. & db.common.attributes
  7385. & db.common.linking.attributes
  7386. db.msginfo =
  7387. ## Information about a message in a message set
  7388. element msginfo {
  7389. db.msginfo.attlist, (db.msglevel | db.msgorig | db.msgaud)*
  7390. }
  7391. }
  7392. div {
  7393. db.msglevel.role.attribute = attribute role { text }
  7394. db.msglevel.attlist =
  7395. db.msglevel.role.attribute?
  7396. & db.common.attributes
  7397. & db.common.linking.attributes
  7398. db.msglevel =
  7399. ## The level of importance or severity of a message in a message set
  7400. element msglevel { db.msglevel.attlist, db._text }
  7401. }
  7402. div {
  7403. db.msgorig.role.attribute = attribute role { text }
  7404. db.msgorig.attlist =
  7405. db.msgorig.role.attribute?
  7406. & db.common.attributes
  7407. & db.common.linking.attributes
  7408. db.msgorig =
  7409. ## The origin of a message in a message set
  7410. element msgorig { db.msgorig.attlist, db._text }
  7411. }
  7412. div {
  7413. db.msgaud.role.attribute = attribute role { text }
  7414. db.msgaud.attlist =
  7415. db.msgaud.role.attribute?
  7416. & db.common.attributes
  7417. & db.common.linking.attributes
  7418. db.msgaud =
  7419. ## The audience to which a message in a message set is relevant
  7420. element msgaud { db.msgaud.attlist, db._text }
  7421. }
  7422. div {
  7423. db.msgexplan.role.attribute = attribute role { text }
  7424. db.msgexplan.attlist =
  7425. db.msgexplan.role.attribute?
  7426. & db.common.attributes
  7427. & db.common.linking.attributes
  7428. db.msgexplan.info = db._info.title.only
  7429. db.msgexplan =
  7430. ## Explanatory material relating to a message in a message set
  7431. element msgexplan {
  7432. db.msgexplan.attlist, db.msgexplan.info, db.all.blocks+
  7433. }
  7434. }
  7435. div {
  7436. db.qandaset.role.attribute = attribute role { text }
  7437. db.qandaset.defaultlabel.enumeration =
  7438. ## No labels
  7439. "none"
  7440. |
  7441. ## Numeric labels
  7442. "number"
  7443. |
  7444. ## "Q:" and "A:" labels
  7445. "qanda"
  7446. db.qandaset.defaultlabel.attribute =
  7447. ## Specifies the default labelling
  7448. attribute defaultlabel { db.qandaset.defaultlabel.enumeration }
  7449. db.qandaset.attlist =
  7450. db.qandaset.role.attribute?
  7451. & db.common.attributes
  7452. & db.common.linking.attributes
  7453. & db.qandaset.defaultlabel.attribute?
  7454. db.qandaset.info = db._info.title.only
  7455. db.qandaset =
  7456. ## A question-and-answer set
  7457. element qandaset {
  7458. db.qandaset.attlist,
  7459. db.qandaset.info,
  7460. db.all.blocks*,
  7461. (db.qandadiv+ | db.qandaentry+)
  7462. }
  7463. }
  7464. div {
  7465. db.qandadiv.role.attribute = attribute role { text }
  7466. db.qandadiv.attlist =
  7467. db.qandadiv.role.attribute?
  7468. & db.common.attributes
  7469. & db.common.linking.attributes
  7470. db.qandadiv.info = db._info.title.only
  7471. db.qandadiv =
  7472. ## A titled division in a qandaset
  7473. element qandadiv {
  7474. db.qandadiv.attlist,
  7475. db.qandadiv.info,
  7476. db.all.blocks*,
  7477. (db.qandadiv+ | db.qandaentry+)
  7478. }
  7479. }
  7480. div {
  7481. db.qandaentry.role.attribute = attribute role { text }
  7482. db.qandaentry.attlist =
  7483. db.qandaentry.role.attribute?
  7484. & db.common.attributes
  7485. & db.common.linking.attributes
  7486. db.qandaentry.info = db._info.title.only
  7487. db.qandaentry =
  7488. ## A question/answer set within a qandaset
  7489. element qandaentry {
  7490. db.qandaentry.attlist, db.qandaentry.info, db.question, db.answer*
  7491. }
  7492. }
  7493. div {
  7494. db.question.role.attribute = attribute role { text }
  7495. db.question.attlist =
  7496. db.question.role.attribute?
  7497. & db.common.attributes
  7498. & db.common.linking.attributes
  7499. db.question =
  7500. ## A question in a qandaset
  7501. element question { db.question.attlist, db.label?, db.all.blocks+ }
  7502. }
  7503. div {
  7504. db.answer.role.attribute = attribute role { text }
  7505. db.answer.attlist =
  7506. db.answer.role.attribute?
  7507. & db.common.attributes
  7508. & db.common.linking.attributes
  7509. db.answer =
  7510. ## An answer to a question posed in a qandaset
  7511. element answer { db.answer.attlist, db.label?, db.all.blocks+ }
  7512. }
  7513. div {
  7514. db.label.role.attribute = attribute role { text }
  7515. db.label.attlist =
  7516. db.label.role.attribute?
  7517. & db.common.attributes
  7518. & db.common.linking.attributes
  7519. db.label =
  7520. ## A label on a question or answer
  7521. element label { db.label.attlist, db._text }
  7522. }
  7523. db.math.inlines = db.inlineequation
  7524. db.equation.content = (db.mediaobject+ | db.mathphrase+) | db._any.mml+
  7525. db.inlineequation.content =
  7526. (db.inlinemediaobject+ | db.mathphrase+) | db._any.mml+
  7527. div {
  7528. db.equation.role.attribute = attribute role { text }
  7529. db.equation.label.attribute = db.label.attribute
  7530. db.equation.attlist =
  7531. db.equation.role.attribute?
  7532. & db.common.attributes
  7533. & db.common.linking.attributes
  7534. & db.equation.label.attribute?
  7535. & db.pgwide.attribute?
  7536. & db.floatstyle.attribute?
  7537. db.equation.info = db._info.title.only
  7538. db.equation =
  7539. ## A displayed mathematical equation
  7540. [
  7541. s:pattern [
  7542. name = "Element exclusion"
  7543. "\x{a}" ~
  7544. " "
  7545. s:rule [
  7546. context = "db:equation"
  7547. "\x{a}" ~
  7548. " "
  7549. s:assert [
  7550. test = "not(.//db:example)"
  7551. "example must not occur among the children or descendants of equation"
  7552. ]
  7553. "\x{a}" ~
  7554. " "
  7555. ]
  7556. "\x{a}" ~
  7557. " "
  7558. ]
  7559. s:pattern [
  7560. name = "Element exclusion"
  7561. "\x{a}" ~
  7562. " "
  7563. s:rule [
  7564. context = "db:equation"
  7565. "\x{a}" ~
  7566. " "
  7567. s:assert [
  7568. test = "not(.//db:figure)"
  7569. "figure must not occur among the children or descendants of equation"
  7570. ]
  7571. "\x{a}" ~
  7572. " "
  7573. ]
  7574. "\x{a}" ~
  7575. " "
  7576. ]
  7577. s:pattern [
  7578. name = "Element exclusion"
  7579. "\x{a}" ~
  7580. " "
  7581. s:rule [
  7582. context = "db:equation"
  7583. "\x{a}" ~
  7584. " "
  7585. s:assert [
  7586. test = "not(.//db:table)"
  7587. "table must not occur among the children or descendants of equation"
  7588. ]
  7589. "\x{a}" ~
  7590. " "
  7591. ]
  7592. "\x{a}" ~
  7593. " "
  7594. ]
  7595. s:pattern [
  7596. name = "Element exclusion"
  7597. "\x{a}" ~
  7598. " "
  7599. s:rule [
  7600. context = "db:equation"
  7601. "\x{a}" ~
  7602. " "
  7603. s:assert [
  7604. test = "not(.//db:equation)"
  7605. "equation must not occur among the children or descendants of equation"
  7606. ]
  7607. "\x{a}" ~
  7608. " "
  7609. ]
  7610. "\x{a}" ~
  7611. " "
  7612. ]
  7613. s:pattern [
  7614. name = "Element exclusion"
  7615. "\x{a}" ~
  7616. " "
  7617. s:rule [
  7618. context = "db:equation"
  7619. "\x{a}" ~
  7620. " "
  7621. s:assert [
  7622. test = "not(.//db:caution)"
  7623. "caution must not occur among the children or descendants of equation"
  7624. ]
  7625. "\x{a}" ~
  7626. " "
  7627. ]
  7628. "\x{a}" ~
  7629. " "
  7630. ]
  7631. s:pattern [
  7632. name = "Element exclusion"
  7633. "\x{a}" ~
  7634. " "
  7635. s:rule [
  7636. context = "db:equation"
  7637. "\x{a}" ~
  7638. " "
  7639. s:assert [
  7640. test = "not(.//db:important)"
  7641. "important must not occur among the children or descendants of equation"
  7642. ]
  7643. "\x{a}" ~
  7644. " "
  7645. ]
  7646. "\x{a}" ~
  7647. " "
  7648. ]
  7649. s:pattern [
  7650. name = "Element exclusion"
  7651. "\x{a}" ~
  7652. " "
  7653. s:rule [
  7654. context = "db:equation"
  7655. "\x{a}" ~
  7656. " "
  7657. s:assert [
  7658. test = "not(.//db:note)"
  7659. "note must not occur among the children or descendants of equation"
  7660. ]
  7661. "\x{a}" ~
  7662. " "
  7663. ]
  7664. "\x{a}" ~
  7665. " "
  7666. ]
  7667. s:pattern [
  7668. name = "Element exclusion"
  7669. "\x{a}" ~
  7670. " "
  7671. s:rule [
  7672. context = "db:equation"
  7673. "\x{a}" ~
  7674. " "
  7675. s:assert [
  7676. test = "not(.//db:tip)"
  7677. "tip must not occur among the children or descendants of equation"
  7678. ]
  7679. "\x{a}" ~
  7680. " "
  7681. ]
  7682. "\x{a}" ~
  7683. " "
  7684. ]
  7685. s:pattern [
  7686. name = "Element exclusion"
  7687. "\x{a}" ~
  7688. " "
  7689. s:rule [
  7690. context = "db:equation"
  7691. "\x{a}" ~
  7692. " "
  7693. s:assert [
  7694. test = "not(.//db:warning)"
  7695. "warning must not occur among the children or descendants of equation"
  7696. ]
  7697. "\x{a}" ~
  7698. " "
  7699. ]
  7700. "\x{a}" ~
  7701. " "
  7702. ]
  7703. ]
  7704. element equation {
  7705. db.equation.attlist,
  7706. db.equation.info,
  7707. db.alt?,
  7708. db.equation.content,
  7709. db.caption?
  7710. }
  7711. }
  7712. div {
  7713. db.informalequation.role.attribute = attribute role { text }
  7714. db.informalequation.attlist =
  7715. db.informalequation.role.attribute?
  7716. & db.common.attributes
  7717. & db.common.linking.attributes
  7718. & db.pgwide.attribute?
  7719. & db.floatstyle.attribute?
  7720. db.informalequation.info = db._info.title.forbidden
  7721. db.informalequation =
  7722. ## A displayed mathematical equation without a title
  7723. element informalequation {
  7724. db.informalequation.attlist,
  7725. db.informalequation.info,
  7726. db.alt?,
  7727. db.equation.content,
  7728. db.caption?
  7729. }
  7730. }
  7731. div {
  7732. db.inlineequation.role.attribute = attribute role { text }
  7733. db.inlineequation.attlist =
  7734. db.inlineequation.role.attribute?
  7735. & db.common.attributes
  7736. & db.common.linking.attributes
  7737. db.inlineequation =
  7738. ## A mathematical equation or expression occurring inline
  7739. element inlineequation {
  7740. db.inlineequation.attlist, db.alt?, db.inlineequation.content
  7741. }
  7742. }
  7743. div {
  7744. db.mathphrase.role.attribute = attribute role { text }
  7745. db.mathphrase.attlist =
  7746. db.mathphrase.role.attribute?
  7747. & db.common.attributes
  7748. & db.common.linking.attributes
  7749. db.mathphrase =
  7750. ## A mathematical phrase that can be represented with ordinary text and a small amount of markup
  7751. element mathphrase {
  7752. db.mathphrase.attlist,
  7753. (db._text | db.ubiq.inlines | db._emphasis)*
  7754. }
  7755. }
  7756. db.imagedata.mathml.content = db._any.mml
  7757. div {
  7758. db.imagedata.mathml.role.attribute = attribute role { text }
  7759. db.imagedata.mathml.attlist =
  7760. db.imagedata.mathml.role.attribute?
  7761. & db.common.attributes
  7762. &
  7763. ## Specifies that the format of the data is MathML
  7764. attribute format {
  7765. ## Specifies MathML.
  7766. "mathml"
  7767. }?
  7768. & db.imagedata.align.attribute?
  7769. & db.imagedata.valign.attribute?
  7770. & db.imagedata.width.attribute?
  7771. & db.imagedata.contentwidth.attribute?
  7772. & db.imagedata.scalefit.attribute?
  7773. & db.imagedata.scale.attribute?
  7774. & db.imagedata.depth.attribute?
  7775. & db.imagedata.contentdepth.attribute?
  7776. db.imagedata.mathml.info = db._info.title.forbidden
  7777. db.imagedata.mathml =
  7778. ## A MathML expression in a media object
  7779. element imagedata {
  7780. db.imagedata.mathml.attlist,
  7781. db.imagedata.mathml.info,
  7782. db.imagedata.mathml.content+
  7783. }
  7784. }
  7785. div {
  7786. db._any.mml =
  7787. ## Any element from the MathML namespace
  7788. element mml:* { (db._any.attribute | text | db._any)* }
  7789. }
  7790. db.imagedata.svg.content = db._any.svg
  7791. div {
  7792. db.imagedata.svg.role.attribute = attribute role { text }
  7793. db.imagedata.svg.attlist =
  7794. db.imagedata.svg.role.attribute?
  7795. & db.common.attributes
  7796. &
  7797. ## Specifies that the format of the data is SVG
  7798. attribute format {
  7799. ## Specifies SVG.
  7800. "svg"
  7801. }?
  7802. & db.imagedata.align.attribute?
  7803. & db.imagedata.valign.attribute?
  7804. & db.imagedata.width.attribute?
  7805. & db.imagedata.contentwidth.attribute?
  7806. & db.imagedata.scalefit.attribute?
  7807. & db.imagedata.scale.attribute?
  7808. & db.imagedata.depth.attribute?
  7809. & db.imagedata.contentdepth.attribute?
  7810. db.imagedata.svg.info = db._info.title.forbidden
  7811. db.imagedata.svg =
  7812. ## An SVG drawing in a media object
  7813. element imagedata {
  7814. db.imagedata.svg.attlist,
  7815. db.imagedata.svg.info,
  7816. db.imagedata.svg.content+
  7817. }
  7818. }
  7819. div {
  7820. db._any.svg =
  7821. ## Any element from the SVG namespace
  7822. element svg:* { (db._any.attribute | text | db._any)* }
  7823. }
  7824. db.markup.inlines =
  7825. db.tag
  7826. | db.markup
  7827. | db.token
  7828. | db.symbol
  7829. | db.literal
  7830. | db.code
  7831. | db.constant
  7832. | db.email
  7833. | db.uri
  7834. div {
  7835. db.markup.role.attribute = attribute role { text }
  7836. db.markup.attlist =
  7837. db.markup.role.attribute?
  7838. & db.common.attributes
  7839. & db.common.linking.attributes
  7840. db.markup =
  7841. ## A string of formatting markup in text that is to be represented literally
  7842. element markup { db.markup.attlist, db._text }
  7843. }
  7844. div {
  7845. db.tag.role.attribute = attribute role { text }
  7846. db.tag.class.enumeration =
  7847. ## An attribute
  7848. "attribute"
  7849. |
  7850. ## An attribute value
  7851. "attvalue"
  7852. |
  7853. ## An element
  7854. "element"
  7855. |
  7856. ## An empty element tag
  7857. "emptytag"
  7858. |
  7859. ## An end tag
  7860. "endtag"
  7861. |
  7862. ## A general entity
  7863. "genentity"
  7864. |
  7865. ## The local name part of a qualified name
  7866. "localname"
  7867. |
  7868. ## A namespace
  7869. "namespace"
  7870. |
  7871. ## A numeric character reference
  7872. "numcharref"
  7873. |
  7874. ## A parameter entity
  7875. "paramentity"
  7876. |
  7877. ## A processing instruction
  7878. "pi"
  7879. |
  7880. ## The prefix part of a qualified name
  7881. "prefix"
  7882. |
  7883. ## An SGML comment
  7884. "comment"
  7885. |
  7886. ## A start tag
  7887. "starttag"
  7888. |
  7889. ## An XML processing instruction
  7890. "xmlpi"
  7891. db.tag.class.attribute =
  7892. ## Identifies the nature of the tag content
  7893. attribute class { db.tag.class.enumeration }
  7894. db.tag.namespace.attribute =
  7895. ## Identifies the namespace of the tag content
  7896. attribute namespace { xsd:anyURI }
  7897. db.tag.attlist =
  7898. db.tag.role.attribute?
  7899. & db.common.attributes
  7900. & db.common.linking.attributes
  7901. & db.tag.class.attribute?
  7902. & db.tag.namespace.attribute?
  7903. db.tag =
  7904. ## A component of XML (or SGML) markup
  7905. element tag { db.tag.attlist, (db._text | db.tag)* }
  7906. }
  7907. div {
  7908. db.symbol.class.attribute =
  7909. ## Identifies the class of symbol
  7910. attribute class {
  7911. ## The value is a limit of some kind
  7912. "limit"
  7913. }
  7914. db.symbol.role.attribute = attribute role { text }
  7915. db.symbol.attlist =
  7916. db.symbol.role.attribute?
  7917. & db.common.attributes
  7918. & db.common.linking.attributes
  7919. & db.symbol.class.attribute?
  7920. db.symbol =
  7921. ## A name that is replaced by a value before processing
  7922. element symbol { db.symbol.attlist, db._text }
  7923. }
  7924. div {
  7925. db.token.role.attribute = attribute role { text }
  7926. db.token.attlist =
  7927. db.token.role.attribute?
  7928. & db.common.attributes
  7929. & db.common.linking.attributes
  7930. db.token =
  7931. ## A unit of information
  7932. element token { db.token.attlist, db._text }
  7933. }
  7934. div {
  7935. db.literal.role.attribute = attribute role { text }
  7936. db.literal.attlist =
  7937. db.literal.role.attribute?
  7938. & db.common.attributes
  7939. & db.common.linking.attributes
  7940. db.literal =
  7941. ## Inline text that is some literal value
  7942. element literal { db.literal.attlist, db._text }
  7943. }
  7944. div {
  7945. code.language.attribute =
  7946. ## Identifies the (computer) language of the code fragment
  7947. attribute language { text }
  7948. db.code.role.attribute = attribute role { text }
  7949. db.code.attlist =
  7950. db.code.role.attribute?
  7951. & db.common.attributes
  7952. & db.common.linking.attributes
  7953. & code.language.attribute?
  7954. db.code =
  7955. ## An inline code fragment
  7956. element code {
  7957. db.code.attlist, (db.programming.inlines | db._text)*
  7958. }
  7959. }
  7960. div {
  7961. db.constant.class.attribute =
  7962. ## Identifies the class of constant
  7963. attribute class {
  7964. ## The value is a limit of some kind
  7965. "limit"
  7966. }
  7967. db.constant.role.attribute = attribute role { text }
  7968. db.constant.attlist =
  7969. db.constant.role.attribute?
  7970. & db.common.attributes
  7971. & db.common.linking.attributes
  7972. & db.constant.class.attribute?
  7973. db.constant =
  7974. ## A programming or system constant
  7975. element constant { db.constant.attlist, db._text }
  7976. }
  7977. div {
  7978. db.productname.role.attribute = attribute role { text }
  7979. db.productname.class.enumeration =
  7980. ## A name with a copyright
  7981. "copyright"
  7982. |
  7983. ## A name with a registered copyright
  7984. "registered"
  7985. |
  7986. ## A name of a service
  7987. "service"
  7988. |
  7989. ## A name which is trademarked
  7990. "trade"
  7991. db.productname.class.attribute =
  7992. ## Specifies the class of product name
  7993. attribute class { db.productname.class.enumeration }
  7994. db.productname.attlist =
  7995. db.productname.role.attribute?
  7996. & db.common.attributes
  7997. & db.common.linking.attributes
  7998. & db.productname.class.attribute?
  7999. db.productname =
  8000. ## The formal name of a product
  8001. element productname { db.productname.attlist, db._text }
  8002. }
  8003. div {
  8004. db.productnumber.role.attribute = attribute role { text }
  8005. db.productnumber.attlist =
  8006. db.productnumber.role.attribute?
  8007. & db.common.attributes
  8008. & db.common.linking.attributes
  8009. db.productnumber =
  8010. ## A number assigned to a product
  8011. element productnumber { db.productnumber.attlist, db._text }
  8012. }
  8013. div {
  8014. db.database.class.enumeration =
  8015. ## An alternate or secondary key
  8016. "altkey"
  8017. |
  8018. ## A constraint
  8019. "constraint"
  8020. |
  8021. ## A data type
  8022. "datatype"
  8023. |
  8024. ## A field
  8025. "field"
  8026. |
  8027. ## A foreign key
  8028. "foreignkey"
  8029. |
  8030. ## A group
  8031. "group"
  8032. |
  8033. ## An index
  8034. "index"
  8035. |
  8036. ## The first or primary key
  8037. "key1"
  8038. |
  8039. ## An alternate or secondary key
  8040. "key2"
  8041. |
  8042. ## A name
  8043. "name"
  8044. |
  8045. ## The primary key
  8046. "primarykey"
  8047. |
  8048. ## A (stored) procedure
  8049. "procedure"
  8050. |
  8051. ## A record
  8052. "record"
  8053. |
  8054. ## A rule
  8055. "rule"
  8056. |
  8057. ## The secondary key
  8058. "secondarykey"
  8059. |
  8060. ## A table
  8061. "table"
  8062. |
  8063. ## A user
  8064. "user"
  8065. |
  8066. ## A view
  8067. "view"
  8068. db.database.class.attribute =
  8069. ## Identifies the class of database artifact
  8070. attribute class { db.database.class.enumeration }
  8071. db.database.role.attribute = attribute role { text }
  8072. db.database.attlist =
  8073. db.database.role.attribute?
  8074. & db.common.attributes
  8075. & db.common.linking.attributes
  8076. & db.database.class.attribute?
  8077. db.database =
  8078. ## The name of a database, or part of a database
  8079. element database { db.database.attlist, db._text }
  8080. }
  8081. div {
  8082. db.application.class.enumeration =
  8083. ## A hardware application
  8084. "hardware"
  8085. |
  8086. ## A software application
  8087. "software"
  8088. db.application.class.attribute =
  8089. ## Identifies the class of application
  8090. attribute class { db.application.class.enumeration }
  8091. db.application.role.attribute = attribute role { text }
  8092. db.application.attlist =
  8093. db.application.role.attribute?
  8094. & db.common.attributes
  8095. & db.common.linking.attributes
  8096. & db.application.class.attribute?
  8097. db.application =
  8098. ## The name of a software program
  8099. element application { db.application.attlist, db._text }
  8100. }
  8101. div {
  8102. db.hardware.role.attribute = attribute role { text }
  8103. db.hardware.attlist =
  8104. db.hardware.role.attribute?
  8105. & db.common.attributes
  8106. & db.common.linking.attributes
  8107. db.hardware =
  8108. ## A physical part of a computer system
  8109. element hardware { db.hardware.attlist, db._text }
  8110. }
  8111. db.gui.inlines =
  8112. db.guiicon
  8113. | db.guibutton
  8114. | db.guimenuitem
  8115. | db.guimenu
  8116. | db.guisubmenu
  8117. | db.guilabel
  8118. | db.menuchoice
  8119. | db.mousebutton
  8120. div {
  8121. db.guibutton.role.attribute = attribute role { text }
  8122. db.guibutton.attlist =
  8123. db.guibutton.role.attribute?
  8124. & db.common.attributes
  8125. & db.common.linking.attributes
  8126. db.guibutton =
  8127. ## The text on a button in a GUI
  8128. element guibutton {
  8129. db.guibutton.attlist,
  8130. (db._text | db.accel | db.superscript | db.subscript)*
  8131. }
  8132. }
  8133. div {
  8134. db.guiicon.role.attribute = attribute role { text }
  8135. db.guiicon.attlist =
  8136. db.guiicon.role.attribute?
  8137. & db.common.attributes
  8138. & db.common.linking.attributes
  8139. db.guiicon =
  8140. ## Graphic and/or text appearing as a icon in a GUI
  8141. element guiicon {
  8142. db.guiicon.attlist,
  8143. (db._text | db.accel | db.superscript | db.subscript)*
  8144. }
  8145. }
  8146. div {
  8147. db.guilabel.role.attribute = attribute role { text }
  8148. db.guilabel.attlist =
  8149. db.guilabel.role.attribute?
  8150. & db.common.attributes
  8151. & db.common.linking.attributes
  8152. db.guilabel =
  8153. ## The text of a label in a GUI
  8154. element guilabel {
  8155. db.guilabel.attlist,
  8156. (db._text | db.accel | db.superscript | db.subscript)*
  8157. }
  8158. }
  8159. div {
  8160. db.guimenu.role.attribute = attribute role { text }
  8161. db.guimenu.attlist =
  8162. db.guimenu.role.attribute?
  8163. & db.common.attributes
  8164. & db.common.linking.attributes
  8165. db.guimenu =
  8166. ## The name of a menu in a GUI
  8167. element guimenu {
  8168. db.guimenu.attlist,
  8169. (db._text | db.accel | db.superscript | db.subscript)*
  8170. }
  8171. }
  8172. div {
  8173. db.guimenuitem.role.attribute = attribute role { text }
  8174. db.guimenuitem.attlist =
  8175. db.guimenuitem.role.attribute?
  8176. & db.common.attributes
  8177. & db.common.linking.attributes
  8178. db.guimenuitem =
  8179. ## The name of a terminal menu item in a GUI
  8180. element guimenuitem {
  8181. db.guimenuitem.attlist,
  8182. (db._text | db.accel | db.superscript | db.subscript)*
  8183. }
  8184. }
  8185. div {
  8186. db.guisubmenu.role.attribute = attribute role { text }
  8187. db.guisubmenu.attlist =
  8188. db.guisubmenu.role.attribute?
  8189. & db.common.attributes
  8190. & db.common.linking.attributes
  8191. db.guisubmenu =
  8192. ## The name of a submenu in a GUI
  8193. element guisubmenu {
  8194. db.guisubmenu.attlist,
  8195. (db._text | db.accel | db.superscript | db.subscript)*
  8196. }
  8197. }
  8198. div {
  8199. db.menuchoice.role.attribute = attribute role { text }
  8200. db.menuchoice.attlist =
  8201. db.menuchoice.role.attribute?
  8202. & db.common.attributes
  8203. & db.common.linking.attributes
  8204. db.menuchoice =
  8205. ## A selection or series of selections from a menu
  8206. element menuchoice {
  8207. db.menuchoice.attlist,
  8208. db.shortcut?,
  8209. (db.guibutton
  8210. | db.guiicon
  8211. | db.guilabel
  8212. | db.guimenu
  8213. | db.guimenuitem
  8214. | db.guisubmenu)+
  8215. }
  8216. }
  8217. div {
  8218. db.mousebutton.role.attribute = attribute role { text }
  8219. db.mousebutton.attlist =
  8220. db.mousebutton.role.attribute?
  8221. & db.common.attributes
  8222. & db.common.linking.attributes
  8223. db.mousebutton =
  8224. ## The conventional name of a mouse button
  8225. element mousebutton { db.mousebutton.attlist, db._text }
  8226. }
  8227. db.keyboard.inlines =
  8228. db.keycombo
  8229. | db.keycap
  8230. | db.keycode
  8231. | db.keysym
  8232. | db.shortcut
  8233. | db.accel
  8234. div {
  8235. db.keycap.function.enumeration =
  8236. ## The "Alt" key
  8237. "alt"
  8238. |
  8239. ## The "Backspace" key
  8240. "backspace"
  8241. |
  8242. ## The "Command" key
  8243. "command"
  8244. |
  8245. ## The "Control" key
  8246. "control"
  8247. |
  8248. ## The "Delete" key
  8249. "delete"
  8250. |
  8251. ## The down arrow
  8252. "down"
  8253. |
  8254. ## The "End" key
  8255. "end"
  8256. |
  8257. ## The "Enter" or "Return" key
  8258. "enter"
  8259. |
  8260. ## The "Escape" key
  8261. "escape"
  8262. |
  8263. ## The "Home" key
  8264. "home"
  8265. |
  8266. ## The "Insert" key
  8267. "insert"
  8268. |
  8269. ## The left arrow
  8270. "left"
  8271. |
  8272. ## The "Meta" key
  8273. "meta"
  8274. |
  8275. ## The "Option" key
  8276. "option"
  8277. |
  8278. ## The page down key
  8279. "pagedown"
  8280. |
  8281. ## The page up key
  8282. "pageup"
  8283. |
  8284. ## The right arrow
  8285. "right"
  8286. |
  8287. ## The "Shift" key
  8288. "shift"
  8289. |
  8290. ## The spacebar
  8291. "space"
  8292. |
  8293. ## The "Tab" key
  8294. "tab"
  8295. |
  8296. ## The up arrow
  8297. "up"
  8298. db.keycap.function-enum.attribute =
  8299. ## Identifies the function key
  8300. attribute function { db.keycap.function.enumeration }?
  8301. db.keycap.function-other.attributes =
  8302. ## Identifies the function key
  8303. attribute function {
  8304. ## Indicates a non-standard function key
  8305. "other"
  8306. }?,
  8307. ## Specifies a keyword that identifies the non-standard key
  8308. attribute otherfunction { text }
  8309. db.keycap.function.attrib =
  8310. db.keycap.function-enum.attribute
  8311. | db.keycap.function-other.attributes
  8312. db.keycap.role.attribute = attribute role { text }
  8313. db.keycap.attlist =
  8314. db.keycap.role.attribute?
  8315. & db.common.attributes
  8316. & db.common.linking.attributes
  8317. & db.keycap.function.attrib
  8318. db.keycap =
  8319. ## The text printed on a key on a keyboard
  8320. element keycap { db.keycap.attlist, db._text }
  8321. }
  8322. div {
  8323. db.keycode.role.attribute = attribute role { text }
  8324. db.keycode.attlist =
  8325. db.keycode.role.attribute?
  8326. & db.common.attributes
  8327. & db.common.linking.attributes
  8328. db.keycode =
  8329. ## The internal, frequently numeric, identifier for a key on a keyboard
  8330. element keycode { db.keycode.attlist, db._text }
  8331. }
  8332. db.keycombination.contentmodel =
  8333. (db.keycap | db.keycombo | db.keysym) | db.mousebutton
  8334. div {
  8335. db.keycombo.action.enumeration =
  8336. ## A (single) mouse click.
  8337. "click"
  8338. |
  8339. ## A double mouse click.
  8340. "double-click"
  8341. |
  8342. ## A mouse or key press.
  8343. "press"
  8344. |
  8345. ## Sequential clicks or presses.
  8346. "seq"
  8347. |
  8348. ## Simultaneous clicks or presses.
  8349. "simul"
  8350. db.keycombo.action-enum.attribute =
  8351. ## Identifies the nature of the action taken. If keycombo
  8352. ## contains more than one element, simul
  8353. ## is the default, otherwise there is no default.
  8354. attribute action { db.keycombo.action.enumeration }?
  8355. db.keycombo.action-other.attributes =
  8356. ## Identifies the nature of the action taken
  8357. attribute action {
  8358. ## Indicates a non-standard action
  8359. "other"
  8360. }?,
  8361. ## Identifies the non-standard action in some unspecified way.
  8362. attribute otheraction { text }
  8363. db.keycombo.action.attrib =
  8364. db.keycombo.action-enum.attribute
  8365. | db.keycombo.action-other.attributes
  8366. db.keycombo.role.attribute = attribute role { text }
  8367. db.keycombo.attlist =
  8368. db.keycombo.role.attribute?
  8369. & db.common.attributes
  8370. & db.common.linking.attributes
  8371. & db.keycombo.action.attrib
  8372. db.keycombo =
  8373. ## A combination of input actions
  8374. element keycombo {
  8375. db.keycombo.attlist, db.keycombination.contentmodel+
  8376. }
  8377. }
  8378. div {
  8379. db.keysym.role.attribute = attribute role { text }
  8380. db.keysym.attlist =
  8381. db.keysym.role.attribute?
  8382. & db.common.attributes
  8383. & db.common.linking.attributes
  8384. db.keysym =
  8385. ## The symbolic name of a key on a keyboard
  8386. element keysym { db.keysym.attlist, db._text }
  8387. }
  8388. div {
  8389. db.accel.role.attribute = attribute role { text }
  8390. db.accel.attlist =
  8391. db.accel.role.attribute?
  8392. & db.common.attributes
  8393. & db.common.linking.attributes
  8394. db.accel =
  8395. ## A graphical user interface (GUI) keyboard shortcut
  8396. element accel { db.accel.attlist, db._text }
  8397. }
  8398. div {
  8399. db.shortcut.action.attrib = db.keycombo.action.attrib
  8400. db.shortcut.role.attribute = attribute role { text }
  8401. db.shortcut.attlist =
  8402. db.shortcut.role.attribute?
  8403. & db.common.attributes
  8404. & db.common.linking.attributes
  8405. & db.shortcut.action.attrib
  8406. db.shortcut =
  8407. ## A key combination for an action that is also accessible through a menu
  8408. element shortcut {
  8409. db.shortcut.attlist, db.keycombination.contentmodel+
  8410. }
  8411. }
  8412. db.os.inlines =
  8413. db.prompt
  8414. | db.envar
  8415. | db.filename
  8416. | db.command
  8417. | db.computeroutput
  8418. | db.userinput
  8419. db.computeroutput.inlines =
  8420. (text | db.ubiq.inlines | db.os.inlines | db.technical.inlines)
  8421. | db.co
  8422. | db.markup.inlines
  8423. db.userinput.inlines =
  8424. (text | db.ubiq.inlines | db.os.inlines | db.technical.inlines)
  8425. | db.co
  8426. | db.markup.inlines
  8427. | db.gui.inlines
  8428. | db.keyboard.inlines
  8429. db.prompt.inlines = db._text | db.co
  8430. div {
  8431. db.prompt.role.attribute = attribute role { text }
  8432. db.prompt.attlist =
  8433. db.prompt.role.attribute?
  8434. & db.common.attributes
  8435. & db.common.linking.attributes
  8436. db.prompt =
  8437. ## A character or string indicating the start of an input field in a computer display
  8438. element prompt { db.prompt.attlist, db.prompt.inlines* }
  8439. }
  8440. div {
  8441. db.envar.role.attribute = attribute role { text }
  8442. db.envar.attlist =
  8443. db.envar.role.attribute?
  8444. & db.common.attributes
  8445. & db.common.linking.attributes
  8446. db.envar =
  8447. ## A software environment variable
  8448. element envar { db.envar.attlist, db._text }
  8449. }
  8450. div {
  8451. db.filename.class.enumeration =
  8452. ## A device
  8453. "devicefile"
  8454. |
  8455. ## A directory
  8456. "directory"
  8457. |
  8458. ## A filename extension
  8459. "extension"
  8460. |
  8461. ## A header file (as for a programming language)
  8462. "headerfile"
  8463. |
  8464. ## A library file
  8465. "libraryfile"
  8466. |
  8467. ## A partition (as of a hard disk)
  8468. "partition"
  8469. |
  8470. ## A symbolic link
  8471. "symlink"
  8472. db.filename.class.attribute =
  8473. ## Identifies the class of filename
  8474. attribute class { db.filename.class.enumeration }
  8475. db.filename.path.attribute =
  8476. ## Specifies the path of the filename
  8477. attribute path { text }
  8478. db.filename.role.attribute = attribute role { text }
  8479. db.filename.attlist =
  8480. db.filename.role.attribute?
  8481. & db.common.attributes
  8482. & db.common.linking.attributes
  8483. & db.filename.path.attribute?
  8484. & db.filename.class.attribute?
  8485. db.filename =
  8486. ## The name of a file
  8487. element filename { db.filename.attlist, db._text }
  8488. }
  8489. div {
  8490. db.command.role.attribute = attribute role { text }
  8491. db.command.attlist =
  8492. db.command.role.attribute?
  8493. & db.common.attributes
  8494. & db.common.linking.attributes
  8495. db.command =
  8496. ## The name of an executable program or other software command
  8497. element command { db.command.attlist, db._text }
  8498. }
  8499. div {
  8500. db.computeroutput.role.attribute = attribute role { text }
  8501. db.computeroutput.attlist =
  8502. db.computeroutput.role.attribute?
  8503. & db.common.attributes
  8504. & db.common.linking.attributes
  8505. db.computeroutput =
  8506. ## Data, generally text, displayed or presented by a computer
  8507. element computeroutput {
  8508. db.computeroutput.attlist, db.computeroutput.inlines*
  8509. }
  8510. }
  8511. div {
  8512. db.userinput.role.attribute = attribute role { text }
  8513. db.userinput.attlist =
  8514. db.userinput.role.attribute?
  8515. & db.common.attributes
  8516. & db.common.linking.attributes
  8517. db.userinput =
  8518. ## Data entered by the user
  8519. element userinput { db.userinput.attlist, db.userinput.inlines* }
  8520. }
  8521. div {
  8522. db.cmdsynopsis.role.attribute = attribute role { text }
  8523. db.cmdsynopsis.sepchar.attribute =
  8524. ## Specifies the character that should separate the command and its top-level arguments
  8525. attribute sepchar { text }
  8526. db.cmdsynopsis.cmdlength.attribute =
  8527. ## Indicates the displayed length of the command; this information may be used to intelligently indent command synopses which extend beyond one line
  8528. attribute cmdlength { text }
  8529. db.cmdsynopsis.label.attribute = db.label.attribute
  8530. db.cmdsynopsis.attlist =
  8531. db.cmdsynopsis.role.attribute?
  8532. & db.common.attributes
  8533. & db.common.linking.attributes
  8534. & db.cmdsynopsis.sepchar.attribute?
  8535. & db.cmdsynopsis.cmdlength.attribute?
  8536. & db.cmdsynopsis.label.attribute?
  8537. db.cmdsynopsis.info = db._info.title.forbidden
  8538. db.cmdsynopsis =
  8539. ## A syntax summary for a software command
  8540. element cmdsynopsis {
  8541. db.cmdsynopsis.attlist,
  8542. db.cmdsynopsis.info,
  8543. (db.command | db.arg | db.group | db.sbr)+,
  8544. db.synopfragment*
  8545. }
  8546. }
  8547. db.rep.enumeration =
  8548. ## Can not be repeated.
  8549. "norepeat"
  8550. |
  8551. ## Can be repeated.
  8552. "repeat"
  8553. db.rep.attribute =
  8554. ## Indicates whether or not repetition is possible.
  8555. [ a:defaultValue = "norepeat" ] attribute rep { db.rep.enumeration }
  8556. db.choice.enumeration =
  8557. ## Formatted to indicate that it is optional.
  8558. "opt"
  8559. |
  8560. ## Formatted without indication.
  8561. "plain"
  8562. |
  8563. ## Formatted to indicate that it is required.
  8564. "req"
  8565. db.choice.opt.attribute =
  8566. ## Indicates optionality.
  8567. [ a:defaultValue = "opt" ] attribute choice { db.choice.enumeration }
  8568. db.choice.req.attribute =
  8569. ## Indicates optionality.
  8570. [ a:defaultValue = "req" ] attribute choice { db.choice.enumeration }
  8571. div {
  8572. db.arg.role.attribute = attribute role { text }
  8573. db.arg.rep.attribute = db.rep.attribute
  8574. db.arg.choice.attribute = db.choice.opt.attribute
  8575. db.arg.attlist =
  8576. db.arg.role.attribute?
  8577. & db.common.attributes
  8578. & db.common.linking.attributes
  8579. & db.arg.rep.attribute?
  8580. & db.arg.choice.attribute?
  8581. db.arg =
  8582. ## An argument in a cmdsynopsis
  8583. element arg {
  8584. db.arg.attlist,
  8585. (db._text
  8586. | db.arg
  8587. | db.group
  8588. | db.option
  8589. | db.synopfragmentref
  8590. | db.sbr)*
  8591. }
  8592. }
  8593. div {
  8594. db.group.role.attribute = attribute role { text }
  8595. db.group.rep.attribute = db.rep.attribute
  8596. db.group.choice.attribute = db.choice.opt.attribute
  8597. db.group.attlist =
  8598. db.group.role.attribute?
  8599. & db.common.attributes
  8600. & db.common.linking.attributes
  8601. & db.group.rep.attribute?
  8602. & db.group.choice.attribute?
  8603. db.group =
  8604. ## A group of elements in a cmdsynopsis
  8605. element group {
  8606. db.group.attlist,
  8607. (db.arg
  8608. | db.group
  8609. | db.option
  8610. | db.synopfragmentref
  8611. | db.replaceable
  8612. | db.sbr)+
  8613. }
  8614. }
  8615. div {
  8616. db.sbr.role.attribute = attribute role { text }
  8617. db.sbr.attlist = db.sbr.role.attribute? & db.common.attributes
  8618. db.sbr =
  8619. ## An explicit line break in a command synopsis
  8620. element sbr { db.sbr.attlist, empty }
  8621. }
  8622. div {
  8623. db.synopfragment.role.attribute = attribute role { text }
  8624. db.synopfragment.attlist =
  8625. db.synopfragment.role.attribute?
  8626. & db.common.attributes
  8627. & db.common.linking.attributes
  8628. db.synopfragment =
  8629. ## A portion of a cmdsynopsis broken out from the main body of the synopsis
  8630. element synopfragment {
  8631. db.synopfragment.attlist, (db.arg | db.group)+
  8632. }
  8633. }
  8634. div {
  8635. db.synopfragmentref.role.attribute = attribute role { text }
  8636. db.synopfragmentref.attlist =
  8637. db.synopfragmentref.role.attribute?
  8638. & db.common.attributes
  8639. & db.linkend.attribute
  8640. db.synopfragmentref =
  8641. ## A reference to a fragment of a command synopsis
  8642. [
  8643. s:pattern [
  8644. name = "Synopsis fragment type constraint"
  8645. "\x{a}" ~
  8646. " "
  8647. s:rule [
  8648. context = "db:synopfragmentref"
  8649. "\x{a}" ~
  8650. " "
  8651. s:assert [
  8652. test =
  8653. "local-name(//*[@xml:id=current()/@linkend]) = 'synopfragment' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'"
  8654. "@linkend on synopfragmentref must point to a synopfragment."
  8655. ]
  8656. "\x{a}" ~
  8657. " "
  8658. ]
  8659. "\x{a}" ~
  8660. " "
  8661. ]
  8662. ]
  8663. element synopfragmentref { db.synopfragmentref.attlist, text }
  8664. }
  8665. db.programming.inlines =
  8666. db.function
  8667. | db.parameter
  8668. | db.varname
  8669. | db.returnvalue
  8670. | db.type
  8671. | db.classname
  8672. | db.exceptionname
  8673. | db.interfacename
  8674. | db.methodname
  8675. | db.modifier
  8676. | db.initializer
  8677. | db.oo.inlines
  8678. db.oo.inlines = db.ooclass | db.ooexception | db.oointerface
  8679. db.synopsis.blocks =
  8680. (db.funcsynopsis
  8681. | db.classsynopsis
  8682. | db.methodsynopsis
  8683. | db.constructorsynopsis
  8684. | db.destructorsynopsis
  8685. | db.fieldsynopsis)
  8686. | db.cmdsynopsis
  8687. div {
  8688. db.synopsis.role.attribute = attribute role { text }
  8689. db.synopsis.label.attribute = db.label.attribute
  8690. db.synopsis.attlist =
  8691. db.synopsis.role.attribute?
  8692. & db.common.attributes
  8693. & db.common.linking.attributes
  8694. & db.verbatim.attributes
  8695. & db.synopsis.label.attribute?
  8696. db.synopsis =
  8697. ## A general-purpose element for representing the syntax of commands or functions
  8698. element synopsis { db.synopsis.attlist, db.verbatim.contentmodel }
  8699. }
  8700. div {
  8701. db.funcsynopsis.role.attribute = attribute role { text }
  8702. db.funcsynopsis.attlist =
  8703. db.funcsynopsis.role.attribute?
  8704. & db.common.attributes
  8705. & db.common.linking.attributes
  8706. & db.language.attribute?
  8707. db.funcsynopsis.info = db._info.title.forbidden
  8708. db.funcsynopsis =
  8709. ## The syntax summary for a function definition
  8710. element funcsynopsis {
  8711. db.funcsynopsis.attlist,
  8712. db.funcsynopsis.info,
  8713. (db.funcsynopsisinfo | db.funcprototype)+
  8714. }
  8715. }
  8716. div {
  8717. db.funcsynopsisinfo.role.attribute = attribute role { text }
  8718. db.funcsynopsisinfo.attlist =
  8719. db.funcsynopsisinfo.role.attribute?
  8720. & db.common.attributes
  8721. & db.common.linking.attributes
  8722. & db.verbatim.attributes
  8723. db.funcsynopsisinfo =
  8724. ## Information supplementing the funcdefs of a funcsynopsis
  8725. element funcsynopsisinfo {
  8726. db.funcsynopsisinfo.attlist, db.verbatim.contentmodel
  8727. }
  8728. }
  8729. div {
  8730. db.funcprototype.role.attribute = attribute role { text }
  8731. db.funcprototype.attlist =
  8732. db.funcprototype.role.attribute?
  8733. & db.common.attributes
  8734. & db.common.linking.attributes
  8735. db.funcprototype =
  8736. ## The prototype of a function
  8737. element funcprototype {
  8738. db.funcprototype.attlist,
  8739. db.modifier*,
  8740. db.funcdef,
  8741. (db.void
  8742. | db.varargs
  8743. | ((db.paramdef | db.group.paramdef)+, db.varargs?)),
  8744. db.modifier*
  8745. }
  8746. }
  8747. div {
  8748. db.funcdef.role.attribute = attribute role { text }
  8749. db.funcdef.attlist =
  8750. db.funcdef.role.attribute?
  8751. & db.common.attributes
  8752. & db.common.linking.attributes
  8753. db.funcdef =
  8754. ## A function (subroutine) name and its return type
  8755. element funcdef {
  8756. db.funcdef.attlist, (db._text | db.type | db.function)*
  8757. }
  8758. }
  8759. div {
  8760. db.function.role.attribute = attribute role { text }
  8761. db.function.attlist =
  8762. db.function.role.attribute?
  8763. & db.common.attributes
  8764. & db.common.linking.attributes
  8765. db.function =
  8766. ## The name of a function or subroutine, as in a programming language
  8767. element function { db.function.attlist, db._text }
  8768. }
  8769. div {
  8770. db.void.role.attribute = attribute role { text }
  8771. db.void.attlist =
  8772. db.void.role.attribute?
  8773. & db.common.attributes
  8774. & db.common.linking.attributes
  8775. db.void =
  8776. ## An empty element in a function synopsis indicating that the function in question takes no arguments
  8777. element void { db.void.attlist, empty }
  8778. }
  8779. div {
  8780. db.varargs.role.attribute = attribute role { text }
  8781. db.varargs.attlist =
  8782. db.varargs.role.attribute?
  8783. & db.common.attributes
  8784. & db.common.linking.attributes
  8785. db.varargs =
  8786. ## An empty element in a function synopsis indicating a variable number of arguments
  8787. element varargs { db.varargs.attlist, empty }
  8788. }
  8789. div {
  8790. db.group.paramdef.role.attribute = attribute role { text }
  8791. db.group.paramdef.choice.attribute = db.choice.opt.attribute
  8792. db.group.paramdef.attlist =
  8793. db.group.paramdef.role.attribute?
  8794. & db.common.attributes
  8795. & db.common.linking.attributes
  8796. & db.group.paramdef.choice.attribute?
  8797. db.group.paramdef =
  8798. ## A group of parameters
  8799. element group {
  8800. db.group.paramdef.attlist, (db.paramdef | db.group.paramdef)+
  8801. }
  8802. }
  8803. div {
  8804. db.paramdef.role.attribute = attribute role { text }
  8805. db.paramdef.choice.enumeration =
  8806. ## Formatted to indicate that it is optional.
  8807. "opt"
  8808. |
  8809. ## Formatted to indicate that it is required.
  8810. "req"
  8811. db.paramdef.choice.attribute =
  8812. ## Indicates optionality.
  8813. [ a:defaultValue = "opt" ]
  8814. attribute choice { db.paramdef.choice.enumeration }
  8815. db.paramdef.attlist =
  8816. db.paramdef.role.attribute?
  8817. & db.common.attributes
  8818. & db.common.linking.attributes
  8819. & db.paramdef.choice.attribute?
  8820. db.paramdef =
  8821. ## Information about a function parameter in a programming language
  8822. element paramdef {
  8823. db.paramdef.attlist,
  8824. (db._text
  8825. | db.initializer
  8826. | db.type
  8827. | db.parameter
  8828. | db.funcparams)*
  8829. }
  8830. }
  8831. div {
  8832. db.funcparams.role.attribute = attribute role { text }
  8833. db.funcparams.attlist =
  8834. db.funcparams.role.attribute?
  8835. & db.common.attributes
  8836. & db.common.linking.attributes
  8837. db.funcparams =
  8838. ## Parameters for a function referenced through a function pointer in a synopsis
  8839. element funcparams { db.funcparams.attlist, db._text }
  8840. }
  8841. div {
  8842. db.classsynopsis.role.attribute = attribute role { text }
  8843. db.classsynopsis.class.enumeration =
  8844. ## This is the synopsis of a class
  8845. "class"
  8846. |
  8847. ## This is the synopsis of an interface
  8848. "interface"
  8849. db.classsynopsis.class.attribute =
  8850. ## Specifies the nature of the synopsis
  8851. attribute class { db.classsynopsis.class.enumeration }
  8852. db.classsynopsis.attlist =
  8853. db.classsynopsis.role.attribute?
  8854. & db.common.attributes
  8855. & db.common.linking.attributes
  8856. & db.language.attribute?
  8857. & db.classsynopsis.class.attribute?
  8858. db.classsynopsis =
  8859. ## The syntax summary for a class definition
  8860. element classsynopsis {
  8861. db.classsynopsis.attlist,
  8862. db.oo.inlines+,
  8863. (db.classsynopsisinfo
  8864. | db.methodsynopsis
  8865. | db.constructorsynopsis
  8866. | db.destructorsynopsis
  8867. | db.fieldsynopsis)*
  8868. }
  8869. }
  8870. div {
  8871. db.classsynopsisinfo.role.attribute = attribute role { text }
  8872. db.classsynopsisinfo.attlist =
  8873. db.classsynopsisinfo.role.attribute?
  8874. & db.common.attributes
  8875. & db.common.linking.attributes
  8876. & db.verbatim.attributes
  8877. db.classsynopsisinfo =
  8878. ## Information supplementing the contents of a classsynopsis
  8879. element classsynopsisinfo {
  8880. db.classsynopsisinfo.attlist, db.verbatim.contentmodel
  8881. }
  8882. }
  8883. div {
  8884. db.ooclass.role.attribute = attribute role { text }
  8885. db.ooclass.attlist =
  8886. db.ooclass.role.attribute?
  8887. & db.common.attributes
  8888. & db.common.linking.attributes
  8889. db.ooclass =
  8890. ## A class in an object-oriented programming language
  8891. element ooclass {
  8892. db.ooclass.attlist, (db.package | db.modifier)*, db.classname
  8893. }
  8894. }
  8895. div {
  8896. db.oointerface.role.attribute = attribute role { text }
  8897. db.oointerface.attlist =
  8898. db.oointerface.role.attribute?
  8899. & db.common.attributes
  8900. & db.common.linking.attributes
  8901. db.oointerface =
  8902. ## An interface in an object-oriented programming language
  8903. element oointerface {
  8904. db.oointerface.attlist,
  8905. (db.package | db.modifier)*,
  8906. db.interfacename
  8907. }
  8908. }
  8909. div {
  8910. db.ooexception.role.attribute = attribute role { text }
  8911. db.ooexception.attlist =
  8912. db.ooexception.role.attribute?
  8913. & db.common.attributes
  8914. & db.common.linking.attributes
  8915. db.ooexception =
  8916. ## An exception in an object-oriented programming language
  8917. element ooexception {
  8918. db.ooexception.attlist,
  8919. (db.package | db.modifier)*,
  8920. db.exceptionname
  8921. }
  8922. }
  8923. db.modifier.xml.space.attribute =
  8924. ## Can be used to indicate that whitespace in the modifier should be preserved (for multi-line annotations, for example).
  8925. attribute xml:space {
  8926. ## Extra whitespace and line breaks must be preserved.
  8927. [
  8928. # Ideally the definition of xml:space used on modifier would be
  8929. # different from the definition used on the verbatim elements. The
  8930. # verbatim elements forbid the use of xml:space="default" which
  8931. # wouldn't be a problem on modifier. But doing that causes the
  8932. # generated XSD schemas to be broken so I'm just reusing the existing
  8933. # definition for now. It won't be backwards incompatible to fix this
  8934. # problem in the future.
  8935. # | ## Extra whitespace and line breaks are not preserved.
  8936. # "default"
  8937. ]
  8938. "preserve"
  8939. }
  8940. div {
  8941. db.modifier.role.attribute = attribute role { text }
  8942. db.modifier.attlist =
  8943. db.modifier.xml.space.attribute?
  8944. & db.modifier.role.attribute?
  8945. & db.common.attributes
  8946. & db.common.linking.attributes
  8947. db.modifier =
  8948. ## Modifiers in a synopsis
  8949. element modifier { db.modifier.attlist, db._text }
  8950. }
  8951. div {
  8952. db.interfacename.role.attribute = attribute role { text }
  8953. db.interfacename.attlist =
  8954. db.interfacename.role.attribute?
  8955. & db.common.attributes
  8956. & db.common.linking.attributes
  8957. db.interfacename =
  8958. ## The name of an interface
  8959. element interfacename { db.interfacename.attlist, db._text }
  8960. }
  8961. div {
  8962. db.exceptionname.role.attribute = attribute role { text }
  8963. db.exceptionname.attlist =
  8964. db.exceptionname.role.attribute?
  8965. & db.common.attributes
  8966. & db.common.linking.attributes
  8967. db.exceptionname =
  8968. ## The name of an exception
  8969. element exceptionname { db.exceptionname.attlist, db._text }
  8970. }
  8971. div {
  8972. db.fieldsynopsis.role.attribute = attribute role { text }
  8973. db.fieldsynopsis.attlist =
  8974. db.fieldsynopsis.role.attribute?
  8975. & db.common.attributes
  8976. & db.common.linking.attributes
  8977. & db.language.attribute?
  8978. db.fieldsynopsis =
  8979. ## The name of a field in a class definition
  8980. element fieldsynopsis {
  8981. db.fieldsynopsis.attlist,
  8982. db.modifier*,
  8983. db.type?,
  8984. db.varname,
  8985. db.initializer?
  8986. }
  8987. }
  8988. div {
  8989. db.initializer.role.attribute = attribute role { text }
  8990. db.initializer.attlist =
  8991. db.initializer.role.attribute?
  8992. & db.common.attributes
  8993. & db.common.linking.attributes
  8994. db.initializer.inlines = db._text | db.mathphrase | db.markup.inlines
  8995. db.initializer =
  8996. ## The initializer for a fieldsynopsis
  8997. element initializer {
  8998. db.initializer.attlist, db.initializer.inlines*
  8999. }
  9000. }
  9001. div {
  9002. db.constructorsynopsis.role.attribute = attribute role { text }
  9003. db.constructorsynopsis.attlist =
  9004. db.constructorsynopsis.role.attribute?
  9005. & db.common.attributes
  9006. & db.common.linking.attributes
  9007. & db.language.attribute?
  9008. db.constructorsynopsis =
  9009. ## A syntax summary for a constructor
  9010. element constructorsynopsis {
  9011. db.constructorsynopsis.attlist,
  9012. db.modifier*,
  9013. db.methodname?,
  9014. ((db.methodparam | db.group.methodparam)+ | db.void?),
  9015. db.exceptionname*
  9016. }
  9017. }
  9018. div {
  9019. db.destructorsynopsis.role.attribute = attribute role { text }
  9020. db.destructorsynopsis.attlist =
  9021. db.destructorsynopsis.role.attribute?
  9022. & db.common.attributes
  9023. & db.common.linking.attributes
  9024. & db.language.attribute?
  9025. db.destructorsynopsis =
  9026. ## A syntax summary for a destructor
  9027. element destructorsynopsis {
  9028. db.destructorsynopsis.attlist,
  9029. db.modifier*,
  9030. db.methodname?,
  9031. ((db.methodparam | db.group.methodparam)+ | db.void?),
  9032. db.exceptionname*
  9033. }
  9034. }
  9035. div {
  9036. db.methodsynopsis.role.attribute = attribute role { text }
  9037. db.methodsynopsis.attlist =
  9038. db.methodsynopsis.role.attribute?
  9039. & db.common.attributes
  9040. & db.common.linking.attributes
  9041. & db.language.attribute?
  9042. db.methodsynopsis =
  9043. ## A syntax summary for a method
  9044. element methodsynopsis {
  9045. db.methodsynopsis.attlist,
  9046. db.modifier*,
  9047. (db.type | db.void)?,
  9048. db.methodname,
  9049. ((db.methodparam | db.group.methodparam)+ | db.void),
  9050. db.exceptionname*,
  9051. db.modifier*
  9052. }
  9053. }
  9054. div {
  9055. db.methodname.role.attribute = attribute role { text }
  9056. db.methodname.attlist =
  9057. db.methodname.role.attribute?
  9058. & db.common.attributes
  9059. & db.common.linking.attributes
  9060. db.methodname =
  9061. ## The name of a method
  9062. element methodname { db.methodname.attlist, db._text }
  9063. }
  9064. div {
  9065. db.methodparam.role.attribute = attribute role { text }
  9066. db.methodparam.rep.attribute = db.rep.attribute
  9067. db.methodparam.choice.attribute = db.choice.req.attribute
  9068. db.methodparam.attlist =
  9069. db.methodparam.role.attribute?
  9070. & db.common.attributes
  9071. & db.common.linking.attributes
  9072. & db.methodparam.rep.attribute?
  9073. & db.methodparam.choice.attribute?
  9074. db.methodparam =
  9075. ## Parameters to a method
  9076. element methodparam {
  9077. db.methodparam.attlist,
  9078. db.modifier*,
  9079. db.type?,
  9080. ((db.modifier*, db.parameter, db.initializer?) | db.funcparams),
  9081. db.modifier*
  9082. }
  9083. }
  9084. div {
  9085. db.group.methodparam.role.attribute = attribute role { text }
  9086. db.group.methodparam.choice.attribute = db.choice.opt.attribute
  9087. db.group.methodparam.attlist =
  9088. db.group.methodparam.role.attribute?
  9089. & db.common.attributes
  9090. & db.common.linking.attributes
  9091. & db.group.methodparam.choice.attribute?
  9092. db.group.methodparam =
  9093. ## A group of method parameters
  9094. element group {
  9095. db.group.methodparam.attlist,
  9096. (db.methodparam | db.group.methodparam)+
  9097. }
  9098. }
  9099. div {
  9100. db.varname.role.attribute = attribute role { text }
  9101. db.varname.attlist =
  9102. db.varname.role.attribute?
  9103. & db.common.attributes
  9104. & db.common.linking.attributes
  9105. db.varname =
  9106. ## The name of a variable
  9107. element varname { db.varname.attlist, db._text }
  9108. }
  9109. div {
  9110. db.returnvalue.role.attribute = attribute role { text }
  9111. db.returnvalue.attlist =
  9112. db.returnvalue.role.attribute?
  9113. & db.common.attributes
  9114. & db.common.linking.attributes
  9115. db.returnvalue =
  9116. ## The value returned by a function
  9117. element returnvalue { db.returnvalue.attlist, db._text }
  9118. }
  9119. div {
  9120. db.type.role.attribute = attribute role { text }
  9121. db.type.attlist =
  9122. db.type.role.attribute?
  9123. & db.common.attributes
  9124. & db.common.linking.attributes
  9125. db.type =
  9126. ## The classification of a value
  9127. element type { db.type.attlist, db._text }
  9128. }
  9129. div {
  9130. db.classname.role.attribute = attribute role { text }
  9131. db.classname.attlist =
  9132. db.classname.role.attribute?
  9133. & db.common.attributes
  9134. & db.common.linking.attributes
  9135. db.classname =
  9136. ## The name of a class, in the object-oriented programming sense
  9137. element classname { db.classname.attlist, db._text }
  9138. }
  9139. div {
  9140. db.programlisting.role.attribute = attribute role { text }
  9141. db.programlisting.width.attribute = db.width.characters.attribute
  9142. db.programlisting.attlist =
  9143. db.programlisting.role.attribute?
  9144. & db.common.attributes
  9145. & db.common.linking.attributes
  9146. & db.verbatim.attributes
  9147. & db.programlisting.width.attribute?
  9148. db.programlisting =
  9149. ## A literal listing of all or part of a program
  9150. element programlisting {
  9151. db.programlisting.attlist, db.verbatim.contentmodel
  9152. }
  9153. }
  9154. db.admonition.blocks =
  9155. db.caution | db.important | db.note | db.tip | db.warning
  9156. db.admonition.contentmodel = db._info.title.only, db.all.blocks+
  9157. div {
  9158. db.caution.role.attribute = attribute role { text }
  9159. db.caution.attlist =
  9160. db.caution.role.attribute?
  9161. & db.common.attributes
  9162. & db.common.linking.attributes
  9163. db.caution =
  9164. ## A note of caution
  9165. [
  9166. s:pattern [
  9167. name = "Element exclusion"
  9168. "\x{a}" ~
  9169. " "
  9170. s:rule [
  9171. context = "db:caution"
  9172. "\x{a}" ~
  9173. " "
  9174. s:assert [
  9175. test = "not(.//db:caution)"
  9176. "caution must not occur among the children or descendants of caution"
  9177. ]
  9178. "\x{a}" ~
  9179. " "
  9180. ]
  9181. "\x{a}" ~
  9182. " "
  9183. ]
  9184. s:pattern [
  9185. name = "Element exclusion"
  9186. "\x{a}" ~
  9187. " "
  9188. s:rule [
  9189. context = "db:caution"
  9190. "\x{a}" ~
  9191. " "
  9192. s:assert [
  9193. test = "not(.//db:important)"
  9194. "important must not occur among the children or descendants of caution"
  9195. ]
  9196. "\x{a}" ~
  9197. " "
  9198. ]
  9199. "\x{a}" ~
  9200. " "
  9201. ]
  9202. s:pattern [
  9203. name = "Element exclusion"
  9204. "\x{a}" ~
  9205. " "
  9206. s:rule [
  9207. context = "db:caution"
  9208. "\x{a}" ~
  9209. " "
  9210. s:assert [
  9211. test = "not(.//db:note)"
  9212. "note must not occur among the children or descendants of caution"
  9213. ]
  9214. "\x{a}" ~
  9215. " "
  9216. ]
  9217. "\x{a}" ~
  9218. " "
  9219. ]
  9220. s:pattern [
  9221. name = "Element exclusion"
  9222. "\x{a}" ~
  9223. " "
  9224. s:rule [
  9225. context = "db:caution"
  9226. "\x{a}" ~
  9227. " "
  9228. s:assert [
  9229. test = "not(.//db:tip)"
  9230. "tip must not occur among the children or descendants of caution"
  9231. ]
  9232. "\x{a}" ~
  9233. " "
  9234. ]
  9235. "\x{a}" ~
  9236. " "
  9237. ]
  9238. s:pattern [
  9239. name = "Element exclusion"
  9240. "\x{a}" ~
  9241. " "
  9242. s:rule [
  9243. context = "db:caution"
  9244. "\x{a}" ~
  9245. " "
  9246. s:assert [
  9247. test = "not(.//db:warning)"
  9248. "warning must not occur among the children or descendants of caution"
  9249. ]
  9250. "\x{a}" ~
  9251. " "
  9252. ]
  9253. "\x{a}" ~
  9254. " "
  9255. ]
  9256. ]
  9257. element caution { db.caution.attlist, db.admonition.contentmodel }
  9258. }
  9259. div {
  9260. db.important.role.attribute = attribute role { text }
  9261. db.important.attlist =
  9262. db.important.role.attribute?
  9263. & db.common.attributes
  9264. & db.common.linking.attributes
  9265. db.important =
  9266. ## An admonition set off from the text
  9267. [
  9268. s:pattern [
  9269. name = "Element exclusion"
  9270. "\x{a}" ~
  9271. " "
  9272. s:rule [
  9273. context = "db:important"
  9274. "\x{a}" ~
  9275. " "
  9276. s:assert [
  9277. test = "not(.//db:caution)"
  9278. "caution must not occur among the children or descendants of important"
  9279. ]
  9280. "\x{a}" ~
  9281. " "
  9282. ]
  9283. "\x{a}" ~
  9284. " "
  9285. ]
  9286. s:pattern [
  9287. name = "Element exclusion"
  9288. "\x{a}" ~
  9289. " "
  9290. s:rule [
  9291. context = "db:important"
  9292. "\x{a}" ~
  9293. " "
  9294. s:assert [
  9295. test = "not(.//db:important)"
  9296. "important must not occur among the children or descendants of important"
  9297. ]
  9298. "\x{a}" ~
  9299. " "
  9300. ]
  9301. "\x{a}" ~
  9302. " "
  9303. ]
  9304. s:pattern [
  9305. name = "Element exclusion"
  9306. "\x{a}" ~
  9307. " "
  9308. s:rule [
  9309. context = "db:important"
  9310. "\x{a}" ~
  9311. " "
  9312. s:assert [
  9313. test = "not(.//db:note)"
  9314. "note must not occur among the children or descendants of important"
  9315. ]
  9316. "\x{a}" ~
  9317. " "
  9318. ]
  9319. "\x{a}" ~
  9320. " "
  9321. ]
  9322. s:pattern [
  9323. name = "Element exclusion"
  9324. "\x{a}" ~
  9325. " "
  9326. s:rule [
  9327. context = "db:important"
  9328. "\x{a}" ~
  9329. " "
  9330. s:assert [
  9331. test = "not(.//db:tip)"
  9332. "tip must not occur among the children or descendants of important"
  9333. ]
  9334. "\x{a}" ~
  9335. " "
  9336. ]
  9337. "\x{a}" ~
  9338. " "
  9339. ]
  9340. s:pattern [
  9341. name = "Element exclusion"
  9342. "\x{a}" ~
  9343. " "
  9344. s:rule [
  9345. context = "db:important"
  9346. "\x{a}" ~
  9347. " "
  9348. s:assert [
  9349. test = "not(.//db:warning)"
  9350. "warning must not occur among the children or descendants of important"
  9351. ]
  9352. "\x{a}" ~
  9353. " "
  9354. ]
  9355. "\x{a}" ~
  9356. " "
  9357. ]
  9358. ]
  9359. element important {
  9360. db.important.attlist, db.admonition.contentmodel
  9361. }
  9362. }
  9363. div {
  9364. db.note.role.attribute = attribute role { text }
  9365. db.note.attlist =
  9366. db.note.role.attribute?
  9367. & db.common.attributes
  9368. & db.common.linking.attributes
  9369. db.note =
  9370. ## A message set off from the text
  9371. [
  9372. s:pattern [
  9373. name = "Element exclusion"
  9374. "\x{a}" ~
  9375. " "
  9376. s:rule [
  9377. context = "db:note"
  9378. "\x{a}" ~
  9379. " "
  9380. s:assert [
  9381. test = "not(.//db:caution)"
  9382. "caution must not occur among the children or descendants of note"
  9383. ]
  9384. "\x{a}" ~
  9385. " "
  9386. ]
  9387. "\x{a}" ~
  9388. " "
  9389. ]
  9390. s:pattern [
  9391. name = "Element exclusion"
  9392. "\x{a}" ~
  9393. " "
  9394. s:rule [
  9395. context = "db:note"
  9396. "\x{a}" ~
  9397. " "
  9398. s:assert [
  9399. test = "not(.//db:important)"
  9400. "important must not occur among the children or descendants of note"
  9401. ]
  9402. "\x{a}" ~
  9403. " "
  9404. ]
  9405. "\x{a}" ~
  9406. " "
  9407. ]
  9408. s:pattern [
  9409. name = "Element exclusion"
  9410. "\x{a}" ~
  9411. " "
  9412. s:rule [
  9413. context = "db:note"
  9414. "\x{a}" ~
  9415. " "
  9416. s:assert [
  9417. test = "not(.//db:note)"
  9418. "note must not occur among the children or descendants of note"
  9419. ]
  9420. "\x{a}" ~
  9421. " "
  9422. ]
  9423. "\x{a}" ~
  9424. " "
  9425. ]
  9426. s:pattern [
  9427. name = "Element exclusion"
  9428. "\x{a}" ~
  9429. " "
  9430. s:rule [
  9431. context = "db:note"
  9432. "\x{a}" ~
  9433. " "
  9434. s:assert [
  9435. test = "not(.//db:tip)"
  9436. "tip must not occur among the children or descendants of note"
  9437. ]
  9438. "\x{a}" ~
  9439. " "
  9440. ]
  9441. "\x{a}" ~
  9442. " "
  9443. ]
  9444. s:pattern [
  9445. name = "Element exclusion"
  9446. "\x{a}" ~
  9447. " "
  9448. s:rule [
  9449. context = "db:note"
  9450. "\x{a}" ~
  9451. " "
  9452. s:assert [
  9453. test = "not(.//db:warning)"
  9454. "warning must not occur among the children or descendants of note"
  9455. ]
  9456. "\x{a}" ~
  9457. " "
  9458. ]
  9459. "\x{a}" ~
  9460. " "
  9461. ]
  9462. ]
  9463. element note { db.note.attlist, db.admonition.contentmodel }
  9464. }
  9465. div {
  9466. db.tip.role.attribute = attribute role { text }
  9467. db.tip.attlist =
  9468. db.tip.role.attribute?
  9469. & db.common.attributes
  9470. & db.common.linking.attributes
  9471. db.tip =
  9472. ## A suggestion to the user, set off from the text
  9473. [
  9474. s:pattern [
  9475. name = "Element exclusion"
  9476. "\x{a}" ~
  9477. " "
  9478. s:rule [
  9479. context = "db:tip"
  9480. "\x{a}" ~
  9481. " "
  9482. s:assert [
  9483. test = "not(.//db:caution)"
  9484. "caution must not occur among the children or descendants of tip"
  9485. ]
  9486. "\x{a}" ~
  9487. " "
  9488. ]
  9489. "\x{a}" ~
  9490. " "
  9491. ]
  9492. s:pattern [
  9493. name = "Element exclusion"
  9494. "\x{a}" ~
  9495. " "
  9496. s:rule [
  9497. context = "db:tip"
  9498. "\x{a}" ~
  9499. " "
  9500. s:assert [
  9501. test = "not(.//db:important)"
  9502. "important must not occur among the children or descendants of tip"
  9503. ]
  9504. "\x{a}" ~
  9505. " "
  9506. ]
  9507. "\x{a}" ~
  9508. " "
  9509. ]
  9510. s:pattern [
  9511. name = "Element exclusion"
  9512. "\x{a}" ~
  9513. " "
  9514. s:rule [
  9515. context = "db:tip"
  9516. "\x{a}" ~
  9517. " "
  9518. s:assert [
  9519. test = "not(.//db:note)"
  9520. "note must not occur among the children or descendants of tip"
  9521. ]
  9522. "\x{a}" ~
  9523. " "
  9524. ]
  9525. "\x{a}" ~
  9526. " "
  9527. ]
  9528. s:pattern [
  9529. name = "Element exclusion"
  9530. "\x{a}" ~
  9531. " "
  9532. s:rule [
  9533. context = "db:tip"
  9534. "\x{a}" ~
  9535. " "
  9536. s:assert [
  9537. test = "not(.//db:tip)"
  9538. "tip must not occur among the children or descendants of tip"
  9539. ]
  9540. "\x{a}" ~
  9541. " "
  9542. ]
  9543. "\x{a}" ~
  9544. " "
  9545. ]
  9546. s:pattern [
  9547. name = "Element exclusion"
  9548. "\x{a}" ~
  9549. " "
  9550. s:rule [
  9551. context = "db:tip"
  9552. "\x{a}" ~
  9553. " "
  9554. s:assert [
  9555. test = "not(.//db:warning)"
  9556. "warning must not occur among the children or descendants of tip"
  9557. ]
  9558. "\x{a}" ~
  9559. " "
  9560. ]
  9561. "\x{a}" ~
  9562. " "
  9563. ]
  9564. ]
  9565. element tip { db.tip.attlist, db.admonition.contentmodel }
  9566. }
  9567. div {
  9568. db.warning.role.attribute = attribute role { text }
  9569. db.warning.attlist =
  9570. db.warning.role.attribute?
  9571. & db.common.attributes
  9572. & db.common.linking.attributes
  9573. db.warning =
  9574. ## An admonition set off from the text
  9575. [
  9576. s:pattern [
  9577. name = "Element exclusion"
  9578. "\x{a}" ~
  9579. " "
  9580. s:rule [
  9581. context = "db:warning"
  9582. "\x{a}" ~
  9583. " "
  9584. s:assert [
  9585. test = "not(.//db:caution)"
  9586. "caution must not occur among the children or descendants of warning"
  9587. ]
  9588. "\x{a}" ~
  9589. " "
  9590. ]
  9591. "\x{a}" ~
  9592. " "
  9593. ]
  9594. s:pattern [
  9595. name = "Element exclusion"
  9596. "\x{a}" ~
  9597. " "
  9598. s:rule [
  9599. context = "db:warning"
  9600. "\x{a}" ~
  9601. " "
  9602. s:assert [
  9603. test = "not(.//db:important)"
  9604. "important must not occur among the children or descendants of warning"
  9605. ]
  9606. "\x{a}" ~
  9607. " "
  9608. ]
  9609. "\x{a}" ~
  9610. " "
  9611. ]
  9612. s:pattern [
  9613. name = "Element exclusion"
  9614. "\x{a}" ~
  9615. " "
  9616. s:rule [
  9617. context = "db:warning"
  9618. "\x{a}" ~
  9619. " "
  9620. s:assert [
  9621. test = "not(.//db:note)"
  9622. "note must not occur among the children or descendants of warning"
  9623. ]
  9624. "\x{a}" ~
  9625. " "
  9626. ]
  9627. "\x{a}" ~
  9628. " "
  9629. ]
  9630. s:pattern [
  9631. name = "Element exclusion"
  9632. "\x{a}" ~
  9633. " "
  9634. s:rule [
  9635. context = "db:warning"
  9636. "\x{a}" ~
  9637. " "
  9638. s:assert [
  9639. test = "not(.//db:tip)"
  9640. "tip must not occur among the children or descendants of warning"
  9641. ]
  9642. "\x{a}" ~
  9643. " "
  9644. ]
  9645. "\x{a}" ~
  9646. " "
  9647. ]
  9648. s:pattern [
  9649. name = "Element exclusion"
  9650. "\x{a}" ~
  9651. " "
  9652. s:rule [
  9653. context = "db:warning"
  9654. "\x{a}" ~
  9655. " "
  9656. s:assert [
  9657. test = "not(.//db:warning)"
  9658. "warning must not occur among the children or descendants of warning"
  9659. ]
  9660. "\x{a}" ~
  9661. " "
  9662. ]
  9663. "\x{a}" ~
  9664. " "
  9665. ]
  9666. ]
  9667. element warning { db.warning.attlist, db.admonition.contentmodel }
  9668. }
  9669. db.error.inlines =
  9670. db.errorcode | db.errortext | db.errorname | db.errortype
  9671. div {
  9672. db.errorcode.role.attribute = attribute role { text }
  9673. db.errorcode.attlist =
  9674. db.errorcode.role.attribute?
  9675. & db.common.attributes
  9676. & db.common.linking.attributes
  9677. db.errorcode =
  9678. ## An error code
  9679. element errorcode { db.errorcode.attlist, db._text }
  9680. }
  9681. div {
  9682. db.errorname.role.attribute = attribute role { text }
  9683. db.errorname.attlist =
  9684. db.errorname.role.attribute?
  9685. & db.common.attributes
  9686. & db.common.linking.attributes
  9687. db.errorname =
  9688. ## An error name
  9689. element errorname { db.errorname.attlist, db._text }
  9690. }
  9691. div {
  9692. db.errortext.role.attribute = attribute role { text }
  9693. db.errortext.attlist =
  9694. db.errortext.role.attribute?
  9695. & db.common.attributes
  9696. & db.common.linking.attributes
  9697. db.errortext =
  9698. ## An error message.
  9699. element errortext { db.errortext.attlist, db._text }
  9700. }
  9701. div {
  9702. db.errortype.role.attribute = attribute role { text }
  9703. db.errortype.attlist =
  9704. db.errortype.role.attribute?
  9705. & db.common.attributes
  9706. & db.common.linking.attributes
  9707. db.errortype =
  9708. ## The classification of an error message
  9709. element errortype { db.errortype.attlist, db._text }
  9710. }
  9711. db.systemitem.inlines = db._text | db.co
  9712. div {
  9713. db.systemitem.class.enumeration =
  9714. ## A daemon or other system process (syslogd)
  9715. "daemon"
  9716. |
  9717. ## A domain name (example.com)
  9718. "domainname"
  9719. |
  9720. ## An ethernet address (00:05:4E:49:FD:8E)
  9721. "etheraddress"
  9722. |
  9723. ## An event of some sort (SIGHUP)
  9724. "event"
  9725. |
  9726. ## An event handler of some sort (hangup)
  9727. "eventhandler"
  9728. |
  9729. ## A filesystem (ext3)
  9730. "filesystem"
  9731. |
  9732. ## A fully qualified domain name (my.example.com)
  9733. "fqdomainname"
  9734. |
  9735. ## A group name (wheel)
  9736. "groupname"
  9737. |
  9738. ## An IP address (127.0.0.1)
  9739. "ipaddress"
  9740. |
  9741. ## A library (libncurses)
  9742. "library"
  9743. |
  9744. ## A macro
  9745. "macro"
  9746. |
  9747. ## A netmask (255.255.255.192)
  9748. "netmask"
  9749. |
  9750. ## A newsgroup (comp.text.xml)
  9751. "newsgroup"
  9752. |
  9753. ## An operating system name (Hurd)
  9754. "osname"
  9755. |
  9756. ## A process (gnome-cups-icon)
  9757. "process"
  9758. |
  9759. ## A protocol (ftp)
  9760. "protocol"
  9761. |
  9762. ## A resource
  9763. "resource"
  9764. |
  9765. ## A security context (a role, permission, or security token, for example)
  9766. "securitycontext"
  9767. |
  9768. ## A server (mail.example.com)
  9769. "server"
  9770. |
  9771. ## A service (ppp)
  9772. "service"
  9773. |
  9774. ## A system name (hephaistos)
  9775. "systemname"
  9776. |
  9777. ## A user name (ndw)
  9778. "username"
  9779. db.systemitem.class-enum.attribute =
  9780. ## Identifies the nature of the system item
  9781. attribute class { db.systemitem.class.enumeration }?
  9782. db.systemitem.class-other.attribute =
  9783. ## Identifies the nature of the non-standard system item
  9784. attribute otherclass { xsd:NMTOKEN }
  9785. db.systemitem.class-other.attributes =
  9786. ## Identifies the kind of systemitemgraphic identifier
  9787. attribute class {
  9788. ## Indicates that the system item is some 'other' kind.
  9789. "other"
  9790. }
  9791. & db.systemitem.class-other.attribute
  9792. db.systemitem.class.attribute =
  9793. db.systemitem.class-enum.attribute
  9794. | db.systemitem.class-other.attributes
  9795. db.systemitem.role.attribute = attribute role { text }
  9796. db.systemitem.attlist =
  9797. db.systemitem.role.attribute?
  9798. & db.common.attributes
  9799. & db.common.linking.attributes
  9800. & db.systemitem.class.attribute?
  9801. db.systemitem =
  9802. ## A system-related item or term
  9803. element systemitem { db.systemitem.attlist, db.systemitem.inlines* }
  9804. }
  9805. div {
  9806. db.option.role.attribute = attribute role { text }
  9807. db.option.attlist =
  9808. db.option.role.attribute?
  9809. & db.common.attributes
  9810. & db.common.linking.attributes
  9811. db.option =
  9812. ## An option for a software command
  9813. element option { db.option.attlist, db._text }
  9814. }
  9815. div {
  9816. db.optional.role.attribute = attribute role { text }
  9817. db.optional.attlist =
  9818. db.optional.role.attribute?
  9819. & db.common.attributes
  9820. & db.common.linking.attributes
  9821. db.optional =
  9822. ## Optional information
  9823. element optional { db.optional.attlist, db._text }
  9824. }
  9825. div {
  9826. db.property.role.attribute = attribute role { text }
  9827. db.property.attlist =
  9828. db.property.role.attribute?
  9829. & db.common.attributes
  9830. & db.common.linking.attributes
  9831. db.property =
  9832. ## A unit of data associated with some part of a computer system
  9833. element property { db.property.attlist, db._text }
  9834. }
  9835. div {
  9836. db.topic.status.attribute = db.status.attribute
  9837. db.topic.role.attribute = attribute role { text }
  9838. db.topic.type.attribute =
  9839. ## Identifies the topic type
  9840. attribute type { text }
  9841. db.topic.attlist =
  9842. db.topic.role.attribute?
  9843. & db.topic.type.attribute?
  9844. & db.common.attributes
  9845. & db.common.linking.attributes
  9846. & db.label.attribute?
  9847. & db.topic.status.attribute?
  9848. db.topic.info = db._info.title.req
  9849. db.topic =
  9850. ## A modular unit of documentation not part of any particular narrative flow
  9851. element topic {
  9852. db.topic.attlist,
  9853. db.topic.info,
  9854. db.navigation.components*,
  9855. db.toplevel.blocks.or.sections,
  9856. db.navigation.components*
  9857. }
  9858. }
  9859. start =
  9860. db.assembly
  9861. | db.resources
  9862. | db.relationships
  9863. | db.transforms
  9864. | db.module
  9865. db.grammar.attribute =
  9866. ## Identifies the markup grammar of a resource
  9867. attribute grammar { text }
  9868. div {
  9869. db.assembly.role.attribute = attribute role { text }
  9870. db.assembly.attlist =
  9871. db.assembly.role.attribute? & db.common.attributes
  9872. db.assembly.info = db._info
  9873. db.assembly =
  9874. ## Defines the hierarchy and relationships for a collection of resources
  9875. [
  9876. s:pattern [
  9877. name = "Root must have version"
  9878. "\x{a}" ~
  9879. " "
  9880. s:rule [
  9881. context = "/db:assembly"
  9882. "\x{a}" ~
  9883. " "
  9884. s:assert [
  9885. test = "@version"
  9886. "If this element is the root element, it must have a version attribute."
  9887. ]
  9888. "\x{a}" ~
  9889. " "
  9890. ]
  9891. "\x{a}" ~
  9892. " "
  9893. ]
  9894. ]
  9895. element assembly {
  9896. db.assembly.attlist,
  9897. db.assembly.info,
  9898. db.resources+,
  9899. db.structure*,
  9900. db.relationships*,
  9901. db.transforms?
  9902. }
  9903. }
  9904. div {
  9905. db.resources.role.attribute = attribute role { text }
  9906. db.resources.grammar.attribute = db.grammar.attribute
  9907. db.resources.attlist =
  9908. db.resources.role.attribute?
  9909. & db.resources.grammar.attribute?
  9910. & db.common.attributes
  9911. db.resources.info = db._info.title.forbidden
  9912. db.resources =
  9913. ## Contains one or more resource objects that are managed by the assembly
  9914. [
  9915. s:pattern [
  9916. name = "Root must have version"
  9917. "\x{a}" ~
  9918. " "
  9919. s:rule [
  9920. context = "/db:resources"
  9921. "\x{a}" ~
  9922. " "
  9923. s:assert [
  9924. test = "@version"
  9925. "If this element is the root element, it must have a version attribute."
  9926. ]
  9927. "\x{a}" ~
  9928. " "
  9929. ]
  9930. "\x{a}" ~
  9931. " "
  9932. ]
  9933. ]
  9934. element resources {
  9935. db.resources.attlist,
  9936. db.resources.info?,
  9937. (db.description*, db.resource+)
  9938. }
  9939. }
  9940. div {
  9941. db.resource.role.attribute = attribute role { text }
  9942. db.resource.fileref.attribute =
  9943. ## Indentifies the location of the data by URI
  9944. attribute fileref { xsd:anyURI }
  9945. db.resource.grammar.attribute = db.grammar.attribute
  9946. db.resource.attlist =
  9947. db.resource.role.attribute?
  9948. & db.resource.grammar.attribute?
  9949. & db.common.attributes
  9950. db.resource =
  9951. ## Identifies an object managed within the assembly
  9952. element resource {
  9953. db.resource.attlist,
  9954. db.resource.fileref.attribute,
  9955. db.description*
  9956. }
  9957. }
  9958. div {
  9959. db.structure.role.attribute = attribute role { text }
  9960. db.structure.type.attribute =
  9961. ## Identifies the structure type of the structure
  9962. attribute type { xsd:NMTOKEN }
  9963. db.structure.resourceref.attribute =
  9964. ## Indicates a single resource from which to construct this structure
  9965. attribute resourceref { xsd:IDREF }
  9966. db.structure.defaultformat.attribute =
  9967. ## Identifies the default format of the structure
  9968. attribute defaultformat { xsd:NMTOKEN }
  9969. db.structure.renderas.attribute =
  9970. ## Specifies the DocBook element to which this unit should be renamed
  9971. attribute renderas { xsd:QName }
  9972. db.structure.attlist =
  9973. db.structure.role.attribute?
  9974. & db.structure.type.attribute?
  9975. & db.structure.resourceref.attribute?
  9976. & db.structure.renderas.attribute?
  9977. & db.structure.defaultformat.attribute?
  9978. & db.common.attributes
  9979. db.structure.info = db.info?
  9980. db.structure =
  9981. ## Describes the structure of a document
  9982. [
  9983. s:pattern [
  9984. name = "Specification of renderas"
  9985. "\x{a}" ~
  9986. " "
  9987. s:rule [
  9988. context = "db:structure"
  9989. "\x{a}" ~
  9990. " "
  9991. s:assert [
  9992. test = "@renderas and db:output/@renderas"
  9993. "The renderas attribute can be specified on either the structure or output, but not both."
  9994. ]
  9995. "\x{a}" ~
  9996. " "
  9997. ]
  9998. "\x{a}" ~
  9999. " "
  10000. ]
  10001. ]
  10002. element structure {
  10003. db.structure.attlist,
  10004. (db.output* & db.filterin? & db.filterout? & db.structure.info),
  10005. db.merge?,
  10006. db.revhistory?,
  10007. db.module+
  10008. }
  10009. }
  10010. div {
  10011. db.output.role.attribute = attribute role { text }
  10012. db.output.chunk.attribute =
  10013. ## Specifies chunking for this module
  10014. [ a:defaultValue = "auto" ]
  10015. attribute chunk { db.module.chunk.enumeration }
  10016. db.output.format.attribute =
  10017. ## Identifies the format of the module or structure
  10018. attribute format { xsd:NMTOKENS }
  10019. db.output.file.attribute =
  10020. ## Specifies the output file for this module or structure
  10021. attribute file { xsd:anyURI }
  10022. db.output.renderas.attribute =
  10023. ## Specifies the DocBook element to which this unit should be renamed
  10024. attribute renderas { xsd:QName }
  10025. db.output.grammar.attribute = db.grammar.attribute
  10026. db.output.transform.attribute =
  10027. ## Specifies the transformation that should be applied to this unit
  10028. attribute transform { xsd:NMTOKEN }
  10029. db.output.suppress.attribute =
  10030. ## Indicates whether or not this unit should be suppressed
  10031. attribute suppress { xsd:boolean }
  10032. db.output.attlist =
  10033. db.output.role.attribute?
  10034. & db.common.attributes
  10035. & db.output.chunk.attribute?
  10036. & db.output.format.attribute?
  10037. & db.output.file.attribute?
  10038. & db.output.renderas.attribute?
  10039. & db.output.grammar.attribute?
  10040. & db.output.transform.attribute?
  10041. & db.output.suppress.attribute?
  10042. db.output =
  10043. ## Specify an output format and/or file name and/or renderas
  10044. element output { db.output.attlist, empty }
  10045. }
  10046. div {
  10047. db.merge.role.attribute = attribute role { text }
  10048. db.merge.resourceref.attribute =
  10049. ## Indicates a single resource from which to read merged info
  10050. attribute resourceref { xsd:IDREF }
  10051. db.merge.attlist =
  10052. db.merge.role.attribute?
  10053. & db.merge.resourceref.attribute?
  10054. & db.common.attributes
  10055. db.merge =
  10056. ## A wrapper for information that a module overrides in the resource it includes
  10057. element merge { db.merge.attlist, (db._title & db.info.elements*) }
  10058. }
  10059. div {
  10060. db.module.role.attribute = attribute role { text }
  10061. db.module.chunk.enumeration =
  10062. ## This module will be in a chunk
  10063. "true"
  10064. |
  10065. ## This module will not be in a chunk
  10066. "false"
  10067. |
  10068. ## Chunking of this module depends on the overall chunking algorithm
  10069. "auto"
  10070. db.module.chunk.attribute =
  10071. ## Specifies chunking for this module
  10072. [ a:defaultValue = "auto" ]
  10073. attribute chunk { db.module.chunk.enumeration }
  10074. db.module.resourceref.attribute =
  10075. ## Indicates a single resource from which to construct this module
  10076. attribute resourceref { xsd:IDREF }
  10077. db.module.omittitles.attribute =
  10078. ## Indicates if titles should be omitted when including a resource
  10079. attribute omittitles { xsd:boolean }?
  10080. db.module.contentonly.attribute =
  10081. ## Indicates if only the content should be copied when including a resource
  10082. attribute contentonly { xsd:boolean }?
  10083. db.module.renderas.attribute =
  10084. ## Specifies the DocBook element to which this unit should be renamed
  10085. attribute renderas { xsd:QName }
  10086. db.module.attlist =
  10087. db.module.role.attribute?
  10088. & db.module.chunk.attribute?
  10089. & db.module.resourceref.attribute?
  10090. & db.module.omittitles.attribute?
  10091. & db.module.contentonly.attribute?
  10092. & db.module.renderas.attribute?
  10093. & db.common.attributes
  10094. db.module.info = db.info?
  10095. db.module =
  10096. ## A modular component within a structure
  10097. [
  10098. s:pattern [
  10099. name = "Root must have version"
  10100. "\x{a}" ~
  10101. " "
  10102. s:rule [
  10103. context = "/db:module"
  10104. "\x{a}" ~
  10105. " "
  10106. s:assert [
  10107. test = "@version"
  10108. "If this element is the root element, it must have a version attribute."
  10109. ]
  10110. "\x{a}" ~
  10111. " "
  10112. ]
  10113. "\x{a}" ~
  10114. " "
  10115. ]
  10116. s:pattern [
  10117. name = "Specification of renderas"
  10118. "\x{a}" ~
  10119. " "
  10120. s:rule [
  10121. context = "db:module"
  10122. "\x{a}" ~
  10123. " "
  10124. s:assert [
  10125. test = "@renderas and db:output/@renderas"
  10126. "The renderas attribute can be specified on either the structure or output, but not both."
  10127. ]
  10128. "\x{a}" ~
  10129. " "
  10130. ]
  10131. "\x{a}" ~
  10132. " "
  10133. ]
  10134. ]
  10135. element module {
  10136. db.module.attlist,
  10137. ((db.output | db.filterin | db.filterout)*,
  10138. db.module.info,
  10139. db.merge?,
  10140. db.module*)
  10141. }
  10142. }
  10143. div {
  10144. db.filterout.role.attribute = attribute role { text }
  10145. db.filterout.attlist =
  10146. db.filterout.role.attribute? & db.common.attributes
  10147. db.filterout =
  10148. ## Elements with effectivity attributes matching this element are suppressed
  10149. element filterout { db.filterout.attlist, empty }
  10150. }
  10151. div {
  10152. db.filterin.role.attribute = attribute role { text }
  10153. db.filterin.attlist =
  10154. db.filterin.role.attribute? & db.common.attributes
  10155. db.filterin =
  10156. ## Elements with effectivity attributes matching this element are allowed
  10157. element filterin { db.filterin.attlist, empty }
  10158. }
  10159. div {
  10160. db.relationships.role.attribute = attribute role { text }
  10161. db.relationships.type.attribute =
  10162. ## Identifies the type of the contained relationships
  10163. attribute type { xsd:NMTOKENS }
  10164. db.relationships.attlist =
  10165. db.relationships.role.attribute?
  10166. & db.relationships.type.attribute?
  10167. & db.common.attributes
  10168. db.relationships.info = db._info
  10169. db.relationships =
  10170. ## Groups relationship elements to define associations between resources
  10171. [
  10172. s:pattern [
  10173. name = "Root must have version"
  10174. "\x{a}" ~
  10175. " "
  10176. s:rule [
  10177. context = "/db:relationships"
  10178. "\x{a}" ~
  10179. " "
  10180. s:assert [
  10181. test = "@version"
  10182. "If this element is the root element, it must have a version attribute."
  10183. ]
  10184. "\x{a}" ~
  10185. " "
  10186. ]
  10187. "\x{a}" ~
  10188. " "
  10189. ]
  10190. ]
  10191. element relationships {
  10192. db.relationships.attlist,
  10193. db.relationships.info,
  10194. (db.relationship | db.instance)+
  10195. }
  10196. }
  10197. div {
  10198. db.relationship.role.attribute = attribute role { text }
  10199. db.relationship.type.attribute =
  10200. ## Identifies the type of the relationship
  10201. attribute type { xsd:NMTOKEN }
  10202. db.relationship.attlist =
  10203. db.relationship.role.attribute?
  10204. & db.relationship.type.attribute?
  10205. & db.linkend.attribute?
  10206. & db.common.attributes
  10207. db.relationship =
  10208. ## A relationship associates one or more resources
  10209. element relationship {
  10210. db.relationship.attlist, db.association, db.instance+
  10211. }
  10212. }
  10213. div {
  10214. db.association.role.attribute = attribute role { text }
  10215. db.association.attlist =
  10216. db.association.role.attribute?
  10217. & db.linkend.attribute?
  10218. & db.common.attributes
  10219. db.association =
  10220. ## Identifies the type of relationship between one or more resources
  10221. element association { db.association.attlist, text? }
  10222. }
  10223. div {
  10224. db.instance.role.attribute = attribute role { text }
  10225. db.instance.linking.attribute =
  10226. ## Specifies the type of link for this instance
  10227. attribute linking { xsd:NMTOKENS }
  10228. db.instance.attlist =
  10229. db.instance.role.attribute?
  10230. & db.instance.linking.attribute?
  10231. & db.common.attributes
  10232. db.instance =
  10233. ## Identifies a resource that is part of a relationship
  10234. element instance {
  10235. db.instance.attlist, db.linkend.attribute, empty
  10236. }
  10237. }
  10238. div {
  10239. db.transforms.role.attribute = attribute role { text }
  10240. db.transforms.attlist =
  10241. db.transforms.role.attribute? & db.common.attributes
  10242. db.transforms.info = db._info
  10243. db.transforms =
  10244. ## List of transforms for converting from non-DocBook schemas
  10245. [
  10246. s:pattern [
  10247. name = "Root must have version"
  10248. "\x{a}" ~
  10249. " "
  10250. s:rule [
  10251. context = "/db:transforms"
  10252. "\x{a}" ~
  10253. " "
  10254. s:assert [
  10255. test = "@version"
  10256. "If this element is the root element, it must have a version attribute."
  10257. ]
  10258. "\x{a}" ~
  10259. " "
  10260. ]
  10261. "\x{a}" ~
  10262. " "
  10263. ]
  10264. ]
  10265. element transforms {
  10266. db.transforms.attlist, db.transforms.info, db.transform+
  10267. }
  10268. }
  10269. div {
  10270. db.transform.role.attribute = attribute role { text }
  10271. db.transform.grammar.attribute = db.grammar.attribute
  10272. db.transform.fileref.attribute =
  10273. ## Indentifies the location of the data by URI
  10274. attribute fileref { xsd:anyURI }
  10275. db.transform.name.attribute =
  10276. ## Identifies the location of the data by reference
  10277. attribute name { xsd:NMTOKEN }
  10278. db.transform.attlist =
  10279. db.transform.role.attribute?
  10280. & (db.transform.grammar.attribute | db.transform.name.attribute)
  10281. & db.transform.fileref.attribute
  10282. & db.common.attributes
  10283. db.transform =
  10284. ## Identifies a transform for converting from a non-DocBook schema
  10285. element transform { db.transform.attlist, empty }
  10286. }
  10287. div {
  10288. db.description.role.attribute = attribute role { text }
  10289. db.description.attlist =
  10290. db.description.role.attribute? & db.common.attributes
  10291. db.description =
  10292. ## A description of a resource or resources
  10293. element description { db.description.attlist, db._text }
  10294. }