OpenDocument-schema-v1.3.rnc 213 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414
  1. # Open Document Format for Office Applications (OpenDocument) Version 1.3
  2. # Committee Specification 02
  3. # 30 October 2020
  4. # Copyright (c) OASIS Open 2020. All Rights Reserved.
  5. # Source: https://docs.oasis-open.org/office/OpenDocument/v1.3/cs02/schemas/
  6. # Latest stage of specification: https://docs.oasis-open.org/office/OpenDocument/v1.3/OpenDocument-v1.3-part1-introduction.html
  7. # TC IPR Statement: https://www.oasis-open.org/committees/office/ipr.php
  8. #
  9. # Open Document Format for Office Applications (OpenDocument) Version 1.3
  10. # Relax-NG Schema
  11. # OpenDocument-v1.3-schema.rng
  12. # https://issues.oasis-open.org/browse/OFFICE-2153
  13. namespace anim = "urn:oasis:names:tc:opendocument:xmlns:animation:1.0"
  14. namespace chart = "urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
  15. namespace config = "urn:oasis:names:tc:opendocument:xmlns:config:1.0"
  16. namespace db = "urn:oasis:names:tc:opendocument:xmlns:database:1.0"
  17. namespace dc = "http://purl.org/dc/elements/1.1/"
  18. namespace dr3d = "urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
  19. namespace draw = "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
  20. namespace fo =
  21. "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
  22. namespace form = "urn:oasis:names:tc:opendocument:xmlns:form:1.0"
  23. namespace grddl = "http://www.w3.org/2003/g/data-view#"
  24. namespace math = "http://www.w3.org/1998/Math/MathML"
  25. namespace meta = "urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
  26. namespace number = "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
  27. namespace office = "urn:oasis:names:tc:opendocument:xmlns:office:1.0"
  28. namespace presentation =
  29. "urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"
  30. namespace rng = "http://relaxng.org/ns/structure/1.0"
  31. namespace script = "urn:oasis:names:tc:opendocument:xmlns:script:1.0"
  32. namespace smil =
  33. "urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0"
  34. namespace style = "urn:oasis:names:tc:opendocument:xmlns:style:1.0"
  35. namespace svg =
  36. "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
  37. namespace table = "urn:oasis:names:tc:opendocument:xmlns:table:1.0"
  38. namespace text = "urn:oasis:names:tc:opendocument:xmlns:text:1.0"
  39. namespace xforms = "http://www.w3.org/2002/xforms"
  40. namespace xhtml = "http://www.w3.org/1999/xhtml"
  41. namespace xlink = "http://www.w3.org/1999/xlink"
  42. start =
  43. office-document
  44. | office-document-content
  45. | office-document-styles
  46. | office-document-meta
  47. | office-document-settings
  48. CURIE =
  49. xsd:string { pattern = "(([\i-[:]][\c-[:]]*)?:)?.+" minLength = "1" }
  50. CURIEs = list { CURIE+ }
  51. ID = xsd:ID
  52. IDREF = xsd:IDREF
  53. IDREFS = xsd:IDREFS
  54. NCName = xsd:NCName
  55. SafeCURIE =
  56. xsd:string {
  57. pattern = "\[(([\i-[:]][\c-[:]]*)?:)?.+\]"
  58. minLength = "3"
  59. }
  60. URIorSafeCURIE = anyURI | SafeCURIE
  61. angle = xsd:string
  62. anim-animate-color-attlist =
  63. attribute anim:color-interpolation { "rgb" | "hsl" }?
  64. & attribute anim:color-interpolation-direction {
  65. "clockwise" | "counter-clockwise"
  66. }?
  67. anim-animate-motion-attlist =
  68. attribute svg:path { pathData }?
  69. & attribute svg:origin { \string }?
  70. & attribute smil:calcMode {
  71. "discrete" | "linear" | "paced" | "spline"
  72. }?
  73. anim-animate-transform-attlist =
  74. attribute svg:type {
  75. "translate" | "scale" | "rotate" | "skewX" | "skewY"
  76. }
  77. anim-audio-attlist =
  78. attribute xlink:href { anyIRI }?
  79. & attribute anim:audio-level { double }?
  80. anim-command-attlist = attribute anim:command { \string }
  81. anim-iterate-attlist =
  82. common-anim-target-attlist
  83. & attribute anim:iterate-type { \string }?
  84. & attribute anim:iterate-interval { duration }?
  85. anim-transition-filter-attlist =
  86. attribute smil:type { \string }
  87. & attribute smil:subtype { \string }?
  88. & attribute smil:direction { "forward" | "reverse" }?
  89. & attribute smil:fadeColor { color }?
  90. & attribute smil:mode { "in" | "out" }?
  91. animation-element =
  92. element anim:animate {
  93. common-anim-target-attlist,
  94. common-anim-named-target-attlist,
  95. common-anim-values-attlist,
  96. common-anim-spline-mode-attlist,
  97. common-spline-anim-value-attlist,
  98. common-timing-attlist,
  99. common-anim-add-accum-attlist
  100. }
  101. | element anim:set {
  102. common-anim-target-attlist,
  103. common-anim-named-target-attlist,
  104. common-anim-set-values-attlist,
  105. common-timing-attlist,
  106. common-anim-add-accum-attlist
  107. }
  108. | element anim:animateMotion {
  109. anim-animate-motion-attlist,
  110. common-anim-target-attlist,
  111. common-anim-named-target-attlist,
  112. common-anim-add-accum-attlist,
  113. common-anim-values-attlist,
  114. common-timing-attlist,
  115. common-spline-anim-value-attlist
  116. }
  117. | element anim:animateColor {
  118. common-anim-target-attlist,
  119. common-anim-named-target-attlist,
  120. common-anim-add-accum-attlist,
  121. common-anim-values-attlist,
  122. common-anim-spline-mode-attlist,
  123. common-spline-anim-value-attlist,
  124. anim-animate-color-attlist,
  125. common-timing-attlist
  126. }
  127. | element anim:animateTransform {
  128. common-anim-target-attlist,
  129. common-anim-named-target-attlist,
  130. common-anim-add-accum-attlist,
  131. common-anim-values-attlist,
  132. anim-animate-transform-attlist,
  133. common-timing-attlist
  134. }
  135. | element anim:transitionFilter {
  136. common-anim-target-attlist,
  137. common-anim-add-accum-attlist,
  138. common-anim-values-attlist,
  139. common-anim-spline-mode-attlist,
  140. anim-transition-filter-attlist,
  141. common-timing-attlist
  142. }
  143. | element anim:par {
  144. common-anim-attlist,
  145. common-timing-attlist,
  146. common-endsync-timing-attlist,
  147. animation-element*
  148. }
  149. | element anim:seq {
  150. common-anim-attlist,
  151. common-endsync-timing-attlist,
  152. common-timing-attlist,
  153. animation-element*
  154. }
  155. | element anim:iterate {
  156. common-anim-attlist,
  157. anim-iterate-attlist,
  158. common-timing-attlist,
  159. common-endsync-timing-attlist,
  160. animation-element*
  161. }
  162. | element anim:audio {
  163. common-anim-attlist,
  164. anim-audio-attlist,
  165. common-basic-timing-attlist
  166. }
  167. | element anim:command {
  168. common-anim-attlist,
  169. anim-command-attlist,
  170. common-begin-end-timing-attlist,
  171. common-anim-target-attlist,
  172. element anim:param {
  173. attribute anim:name { \string },
  174. attribute anim:value { \string }
  175. }*
  176. }
  177. any-date =
  178. number-day
  179. | number-month
  180. | number-year
  181. | number-era
  182. | number-day-of-week
  183. | number-week-of-year
  184. | number-quarter
  185. | number-hours
  186. | number-am-pm
  187. | number-minutes
  188. | number-seconds
  189. any-number = number-number | number-scientific-number | number-fraction
  190. any-time = number-hours | number-am-pm | number-minutes | number-seconds
  191. anyAttListOrElements =
  192. attribute * { text }*,
  193. anyElements
  194. anyElements =
  195. element * {
  196. mixed { anyAttListOrElements }
  197. }*
  198. anyIRI =
  199. xsd:anyURI
  200. >> dc:description [
  201. "An IRI-reference as defined in [RFC3987]. See ODF 1.3 Part 3 section 18.3."
  202. ]
  203. anyURI = xsd:anyURI
  204. base64Binary = xsd:base64Binary
  205. boolean = "true" | "false"
  206. borderWidths = list { positiveLength, positiveLength, positiveLength }
  207. bound-column = attribute form:bound-column { \string }?
  208. button-type = attribute form:button-type { types }?
  209. cellAddress =
  210. xsd:string {
  211. pattern = "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+"
  212. }
  213. cellRangeAddress =
  214. xsd:string {
  215. pattern =
  216. "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+)?"
  217. }
  218. | xsd:string {
  219. pattern =
  220. "($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+:($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+"
  221. }
  222. | xsd:string {
  223. pattern =
  224. "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+"
  225. }
  226. cellRangeAddressList =
  227. xsd:string
  228. >> dc:description [
  229. 'Value is a space separated list of "cellRangeAddress" patterns'
  230. ]
  231. change-mark-attr = attribute text:change-id { IDREF }
  232. change-marks =
  233. element text:change { change-mark-attr }
  234. | element text:change-start { change-mark-attr }
  235. | element text:change-end { change-mark-attr }
  236. character = xsd:string { length = "1" }
  237. chart-axis =
  238. element chart:axis {
  239. chart-axis-attlist, chart-title?, chart-categories?, chart-grid*
  240. }
  241. chart-axis-attlist =
  242. attribute chart:dimension { chart-dimension }
  243. & attribute chart:name { \string }?
  244. & attribute chart:style-name { styleNameRef }?
  245. chart-categories =
  246. element chart:categories {
  247. attribute table:cell-range-address { cellRangeAddressList }?
  248. }
  249. chart-chart =
  250. element chart:chart {
  251. chart-chart-attlist,
  252. chart-title?,
  253. chart-subtitle?,
  254. chart-footer?,
  255. chart-legend?,
  256. chart-plot-area,
  257. shape*,
  258. # https://issues.oasis-open.org/browse/OFFICE-2123
  259. table-table?
  260. }
  261. chart-chart-attlist =
  262. attribute chart:class { namespacedToken }
  263. & common-draw-size-attlist
  264. & attribute chart:column-mapping { \string }?
  265. & attribute chart:row-mapping { \string }?
  266. & attribute chart:style-name { styleNameRef }?
  267. & (attribute xlink:type { "simple" },
  268. attribute xlink:href { anyIRI })?
  269. & xml-id?
  270. chart-coordinate-region =
  271. element chart:coordinate-region {
  272. chart-coordinate-region-attlist, empty
  273. }
  274. chart-coordinate-region-attlist =
  275. common-draw-position-attlist, common-draw-size-attlist
  276. # https://issues.oasis-open.org/browse/OFFICE-3928
  277. chart-data-label =
  278. element chart:data-label { chart-data-label-attlist, text-p? }
  279. chart-data-label-attlist =
  280. common-draw-position-attlist
  281. & attribute chart:style-name { styleNameRef }?
  282. chart-data-point =
  283. element chart:data-point {
  284. chart-data-point-attlist, chart-data-label?
  285. }
  286. chart-data-point-attlist =
  287. attribute chart:repeated { positiveInteger }?
  288. & attribute chart:style-name { styleNameRef }?
  289. & xml-id?
  290. chart-dimension = "x" | "y" | "z"
  291. chart-domain =
  292. element chart:domain {
  293. attribute table:cell-range-address { cellRangeAddressList }?
  294. }
  295. chart-equation =
  296. element chart:equation { chart-equation-attlist, text-p? }
  297. chart-equation-attlist =
  298. attribute chart:automatic-content { boolean }?
  299. & attribute chart:display-r-square { boolean }?
  300. & attribute chart:display-equation { boolean }?
  301. & common-draw-position-attlist
  302. & attribute chart:style-name { styleNameRef }?
  303. chart-error-indicator =
  304. element chart:error-indicator { chart-error-indicator-attlist, empty }
  305. chart-error-indicator-attlist =
  306. attribute chart:style-name { styleNameRef }?
  307. & attribute chart:dimension { chart-dimension }
  308. chart-floor = element chart:floor { chart-floor-attlist, empty }
  309. chart-floor-attlist =
  310. attribute svg:width { length }?
  311. & attribute chart:style-name { styleNameRef }?
  312. chart-footer = element chart:footer { chart-title-attlist, text-p? }
  313. chart-grid = element chart:grid { chart-grid-attlist }
  314. chart-grid-attlist =
  315. attribute chart:class { "major" | "minor" }?
  316. & attribute chart:style-name { styleNameRef }?
  317. chart-legend = element chart:legend { chart-legend-attlist, text-p? }
  318. chart-legend-attlist =
  319. ((attribute chart:legend-position {
  320. "start" | "end" | "top" | "bottom"
  321. },
  322. attribute chart:legend-align { "start" | "center" | "end" }?)
  323. | attribute chart:legend-position {
  324. "top-start" | "bottom-start" | "top-end" | "bottom-end"
  325. }
  326. | empty)
  327. & common-draw-position-attlist
  328. & (attribute style:legend-expansion { "wide" | "high" | "balanced" }
  329. | (attribute style:legend-expansion { "custom" },
  330. attribute style:legend-expansion-aspect-ratio { double },
  331. common-draw-size-attlist
  332. # https://issues.oasis-open.org/browse/OFFICE-3883
  333. )
  334. | empty)
  335. & attribute chart:style-name { styleNameRef }?
  336. chart-mean-value =
  337. element chart:mean-value { chart-mean-value-attlist, empty }
  338. chart-mean-value-attlist = attribute chart:style-name { styleNameRef }?
  339. chart-plot-area =
  340. element chart:plot-area {
  341. chart-plot-area-attlist,
  342. # https://issues.oasis-open.org/browse/OFFICE-3928
  343. chart-coordinate-region?,
  344. dr3d-light*,
  345. chart-axis*,
  346. chart-series*,
  347. chart-stock-gain-marker?,
  348. chart-stock-loss-marker?,
  349. chart-stock-range-line?,
  350. chart-wall?,
  351. chart-floor?
  352. }
  353. chart-plot-area-attlist =
  354. common-draw-position-attlist
  355. & common-draw-size-attlist
  356. & attribute chart:style-name { styleNameRef }?
  357. & attribute table:cell-range-address { cellRangeAddressList }?
  358. & attribute chart:data-source-has-labels {
  359. "none" | "row" | "column" | "both"
  360. }?
  361. & dr3d-scene-attlist
  362. & common-dr3d-transform-attlist
  363. & xml-id?
  364. chart-regression-curve =
  365. element chart:regression-curve {
  366. chart-regression-curve-attlist, chart-equation?
  367. }
  368. chart-regression-curve-attlist =
  369. attribute chart:style-name { styleNameRef }?
  370. chart-series =
  371. element chart:series {
  372. chart-series-attlist,
  373. chart-domain*,
  374. chart-mean-value?,
  375. chart-regression-curve*,
  376. chart-error-indicator*,
  377. chart-data-point*,
  378. chart-data-label?
  379. }
  380. chart-series-attlist =
  381. attribute chart:values-cell-range-address { cellRangeAddressList }?
  382. & attribute chart:label-cell-address { cellRangeAddressList }?
  383. & attribute chart:class { namespacedToken }?
  384. & attribute chart:attached-axis { \string }?
  385. & attribute chart:style-name { styleNameRef }?
  386. & xml-id?
  387. chart-stock-gain-marker =
  388. element chart:stock-gain-marker { common-stock-marker-attlist }
  389. chart-stock-loss-marker =
  390. element chart:stock-loss-marker { common-stock-marker-attlist }
  391. chart-stock-range-line =
  392. element chart:stock-range-line { common-stock-marker-attlist }
  393. chart-subtitle = element chart:subtitle { chart-title-attlist, text-p? }
  394. chart-title = element chart:title { chart-title-attlist, text-p? }
  395. chart-title-attlist =
  396. attribute table:cell-range { cellRangeAddressList }?
  397. & common-draw-position-attlist
  398. & attribute chart:style-name { styleNameRef }?
  399. chart-wall = element chart:wall { chart-wall-attlist, empty }
  400. chart-wall-attlist =
  401. attribute svg:width { length }?
  402. & attribute chart:style-name { styleNameRef }?
  403. clipShape =
  404. xsd:string {
  405. pattern =
  406. "rect\([ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)))|(auto))([ ]*,[ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))))|(auto)){3}[ ]*\)"
  407. }
  408. color = xsd:string { pattern = "#[0-9a-fA-F]{6}" }
  409. column-controls =
  410. element form:text { form-text-attlist, common-form-control-content }
  411. | element form:textarea {
  412. form-textarea-attlist, common-form-control-content, text-p*
  413. }
  414. | element form:formatted-text {
  415. form-formatted-text-attlist, common-form-control-content
  416. }
  417. | element form:number {
  418. form-number-attlist,
  419. common-numeric-control-attlist,
  420. common-form-control-content,
  421. common-linked-cell,
  422. common-spin-button,
  423. common-repeat,
  424. common-delay-for-repeat
  425. }
  426. | element form:date {
  427. form-date-attlist,
  428. common-numeric-control-attlist,
  429. common-form-control-content,
  430. common-linked-cell,
  431. common-spin-button,
  432. common-repeat,
  433. common-delay-for-repeat
  434. }
  435. | element form:time {
  436. form-time-attlist,
  437. common-numeric-control-attlist,
  438. common-form-control-content,
  439. common-linked-cell,
  440. common-spin-button,
  441. common-repeat,
  442. common-delay-for-repeat
  443. }
  444. | element form:combobox {
  445. form-combobox-attlist, common-form-control-content, form-item*
  446. }
  447. | element form:listbox {
  448. form-listbox-attlist, common-form-control-content, form-option*
  449. }
  450. | element form:checkbox {
  451. form-checkbox-attlist, common-form-control-content
  452. }
  453. common-anim-add-accum-attlist =
  454. attribute smil:accumulate { "none" | "sum" }?
  455. & attribute smil:additive { "replace" | "sum" }?
  456. common-anim-attlist =
  457. attribute presentation:node-type {
  458. "default"
  459. | "on-click"
  460. | "with-previous"
  461. | "after-previous"
  462. | "timing-root"
  463. | "main-sequence"
  464. | "interactive-sequence"
  465. }?
  466. & attribute presentation:preset-id { \string }?
  467. & attribute presentation:preset-sub-type { \string }?
  468. & attribute presentation:preset-class {
  469. "custom"
  470. | "entrance"
  471. | "exit"
  472. | "emphasis"
  473. | "motion-path"
  474. | "ole-action"
  475. | "media-call"
  476. }?
  477. & attribute presentation:master-element { IDREF }?
  478. & attribute presentation:group-id { \string }?
  479. & (xml-id,
  480. attribute anim:id { NCName }?)?
  481. common-anim-named-target-attlist =
  482. attribute smil:attributeName { \string }
  483. common-anim-set-values-attlist = attribute smil:to { \string }?
  484. common-anim-spline-mode-attlist =
  485. attribute smil:calcMode {
  486. "discrete" | "linear" | "paced" | "spline"
  487. }?
  488. common-anim-target-attlist =
  489. attribute smil:targetElement { IDREF }?
  490. & attribute anim:sub-item { \string }?
  491. common-anim-values-attlist =
  492. attribute smil:values { \string }?
  493. & attribute anim:formula { \string }?
  494. & common-anim-set-values-attlist
  495. & attribute smil:from { \string }?
  496. & attribute smil:by { \string }?
  497. common-auto-reorder-attlist =
  498. attribute number:automatic-order { boolean }?
  499. common-background-color-attlist =
  500. attribute fo:background-color { "transparent" | color }?
  501. common-background-transparency-attlist =
  502. attribute style:background-transparency { zeroToHundredPercent }?
  503. common-basic-timing-attlist =
  504. common-begin-end-timing-attlist,
  505. common-dur-timing-attlist,
  506. common-repeat-timing-attlist,
  507. common-restart-timing-attlist,
  508. common-restart-default-attlist,
  509. common-fill-timing-attlist,
  510. common-fill-default-attlist
  511. common-begin-end-timing-attlist =
  512. attribute smil:begin { \string }?
  513. & attribute smil:end { \string }?
  514. common-border-attlist =
  515. attribute fo:border { \string }?,
  516. attribute fo:border-top { \string }?,
  517. attribute fo:border-bottom { \string }?,
  518. attribute fo:border-left { \string }?,
  519. attribute fo:border-right { \string }?
  520. common-border-line-width-attlist =
  521. attribute style:border-line-width { borderWidths }?,
  522. attribute style:border-line-width-top { borderWidths }?,
  523. attribute style:border-line-width-bottom { borderWidths }?,
  524. attribute style:border-line-width-left { borderWidths }?,
  525. attribute style:border-line-width-right { borderWidths }?
  526. common-break-attlist =
  527. attribute fo:break-before { "auto" | "column" | "page" }?,
  528. attribute fo:break-after { "auto" | "column" | "page" }?
  529. common-calendar-attlist =
  530. attribute number:calendar {
  531. "gregorian"
  532. | "gengou"
  533. | "ROC"
  534. | "hanja_yoil"
  535. | "hanja"
  536. | "hijri"
  537. | "jewish"
  538. | "buddhist"
  539. | \string
  540. }?
  541. common-contour-attlist = attribute draw:recreate-on-edit { boolean }
  542. common-control-id-attlist =
  543. xml-id,
  544. attribute form:id { NCName }?
  545. common-convert-empty-attlist =
  546. attribute form:convert-empty-to-null { boolean }?
  547. common-current-value-attlist = attribute form:current-value { \string }?
  548. common-data-field-attlist = attribute form:data-field { \string }?
  549. common-data-style-attlist =
  550. attribute style:name { styleName }
  551. & attribute style:display-name { \string }?
  552. & attribute number:language { languageCode }?
  553. & attribute number:country { countryCode }?
  554. & attribute number:script { scriptCode }?
  555. & attribute number:rfc-language-tag { language }?
  556. & attribute number:title { \string }?
  557. & attribute style:volatile { boolean }?
  558. & attribute number:transliteration-format { \string }?
  559. & attribute number:transliteration-language { countryCode }?
  560. & attribute number:transliteration-country { countryCode }?
  561. & attribute number:transliteration-style {
  562. "short" | "medium" | "long"
  563. }?
  564. common-db-default-value = common-value-and-type-attlist?
  565. common-db-object-description = attribute db:description { \string }?
  566. common-db-object-name = attribute db:name { \string }
  567. common-db-object-title = attribute db:title { \string }?
  568. common-db-table-name-attlist =
  569. attribute db:name { \string }
  570. & attribute db:catalog-name { \string }?
  571. & attribute db:schema-name { \string }?
  572. common-db-table-style-name =
  573. attribute db:style-name { styleNameRef }?
  574. & attribute db:default-row-style-name { styleNameRef }?
  575. common-dde-connection-decl-attlist =
  576. attribute office:dde-application { \string }
  577. & attribute office:dde-topic { \string }
  578. & attribute office:dde-item { \string }
  579. & attribute office:automatic-update { boolean }?
  580. common-decimal-places-attlist =
  581. attribute number:decimal-places { integer }?,
  582. (attribute number:min-decimal-places { integer }?)
  583. # https://issues.oasis-open.org/browse/OFFICE-3860 added number:min-decimal-places
  584. common-delay-for-repeat = attribute form:delay-for-repeat { duration }?
  585. common-disabled-attlist = attribute form:disabled { boolean }?
  586. common-dr3d-transform-attlist = attribute dr3d:transform { \string }?
  587. common-draw-area-attlist =
  588. (attribute xlink:type { "simple" },
  589. attribute xlink:href { anyIRI },
  590. attribute office:target-frame-name { targetFrameName }?,
  591. attribute xlink:show { "new" | "replace" }?)?
  592. & attribute office:name { \string }?
  593. & attribute draw:nohref { "nohref" }?
  594. common-draw-caption-id-attlist = attribute draw:caption-id { IDREF }?
  595. common-draw-circle-ellipse-attlist =
  596. attribute draw:kind { "full" | "section" | "cut" | "arc" }?
  597. & attribute draw:start-angle { angle }?
  598. & attribute draw:end-angle { angle }?
  599. common-draw-circle-ellipse-pos-attlist =
  600. attribute svg:cx { coordinate },
  601. attribute svg:cy { coordinate }
  602. common-draw-data-attlist =
  603. attribute xlink:type { "simple" },
  604. attribute xlink:href { anyIRI },
  605. attribute xlink:show { "embed" }?,
  606. attribute xlink:actuate { "onLoad" }?
  607. common-draw-gradient-attlist =
  608. attribute draw:name { styleName }?
  609. & attribute draw:display-name { \string }?
  610. & attribute draw:style { gradient-style }
  611. & attribute draw:cx { percent }?
  612. & attribute draw:cy { percent }?
  613. & attribute draw:angle { angle }?
  614. & attribute draw:border { percent }?
  615. common-draw-id-attlist =
  616. (xml-id,
  617. attribute draw:id { NCName }?)?
  618. common-draw-layer-name-attlist = attribute draw:layer { \string }?
  619. common-draw-mime-type-attlist = attribute draw:mime-type { \string }?
  620. # https://issues.oasis-open.org/browse/OFFICE-3943
  621. common-draw-name-attlist = attribute draw:name { \string }?
  622. common-draw-path-data-attlist = attribute svg:d { pathData }
  623. common-draw-points-attlist = attribute draw:points { points }
  624. common-draw-position-attlist =
  625. attribute svg:x { coordinate }?,
  626. attribute svg:y { coordinate }?
  627. common-draw-rel-size-attlist =
  628. common-draw-size-attlist,
  629. attribute style:rel-width { percent | "scale" | "scale-min" }?,
  630. attribute style:rel-height { percent | "scale" | "scale-min" }?
  631. common-draw-shape-with-styles-attlist =
  632. common-draw-z-index-attlist,
  633. common-draw-id-attlist,
  634. common-draw-layer-name-attlist,
  635. common-draw-style-name-attlist,
  636. common-draw-transform-attlist,
  637. common-draw-name-attlist,
  638. common-text-spreadsheet-shape-attlist
  639. common-draw-shape-with-text-and-styles-attlist =
  640. common-draw-shape-with-styles-attlist,
  641. common-draw-text-style-name-attlist
  642. common-draw-size-attlist =
  643. attribute svg:width { length }?,
  644. attribute svg:height { length }?
  645. common-draw-style-name-attlist =
  646. (attribute draw:style-name { styleNameRef }?,
  647. attribute draw:class-names { styleNameRefs }?)
  648. | (attribute presentation:style-name { styleNameRef }?,
  649. attribute presentation:class-names { styleNameRefs }?)
  650. common-draw-text-style-name-attlist =
  651. attribute draw:text-style-name { styleNameRef }?
  652. common-draw-transform-attlist = attribute draw:transform { \string }?
  653. common-draw-viewbox-attlist =
  654. attribute svg:viewBox {
  655. list { integer, integer, integer, integer }
  656. }
  657. common-draw-z-index-attlist =
  658. attribute draw:z-index { nonNegativeInteger }?
  659. common-dur-timing-attlist = attribute smil:dur { \string }?
  660. common-editable-attlist = attribute style:editable { boolean }?
  661. common-endsync-timing-attlist =
  662. attribute smil:endsync { "first" | "last" | "all" | "media" | IDREF }?
  663. common-field-data-style-name-attlist =
  664. attribute style:data-style-name { styleNameRef }?
  665. common-field-database-name =
  666. attribute text:database-name { \string }?
  667. | form-connection-resource
  668. common-field-database-table =
  669. common-field-database-table-attlist, common-field-database-name
  670. common-field-database-table-attlist =
  671. attribute text:table-name { \string }
  672. & attribute text:table-type { "table" | "query" | "command" }?
  673. common-field-description-attlist =
  674. attribute text:description { \string }?
  675. common-field-display-value-formula-attlist =
  676. attribute text:display { "value" | "formula" }?
  677. common-field-display-value-formula-none-attlist =
  678. attribute text:display { "value" | "formula" | "none" }?
  679. common-field-display-value-none-attlist =
  680. attribute text:display { "value" | "none" }?
  681. common-field-fixed-attlist = attribute text:fixed { boolean }?
  682. common-field-formula-attlist = attribute text:formula { \string }?
  683. common-field-name-attlist = attribute text:name { variableName }
  684. common-field-num-format-attlist = common-num-format-attlist?
  685. common-fill-default-attlist =
  686. attribute smil:fillDefault {
  687. "remove" | "freeze" | "hold" | "transition" | "auto" | "inherit"
  688. }?
  689. common-fill-timing-attlist =
  690. attribute smil:fill {
  691. "remove" | "freeze" | "hold" | "auto" | "default" | "transition"
  692. }?
  693. common-form-control-attlist =
  694. attribute form:name { \string }?
  695. & attribute form:control-implementation { namespacedToken }?
  696. common-form-control-content = form-properties?, office-event-listeners?
  697. common-form-relative-image-position-attlist =
  698. attribute form:image-position { "center" }?
  699. | (attribute form:image-position {
  700. "start" | "end" | "top" | "bottom"
  701. },
  702. attribute form:image-align { "start" | "center" | "end" }?)
  703. common-form-visual-effect-attlist =
  704. attribute form:visual-effect { "flat" | "3d" }?
  705. common-format-source-attlist =
  706. attribute number:format-source { "fixed" | "language" }?
  707. common-horizontal-margin-attlist =
  708. attribute fo:margin-left { length | percent }?,
  709. attribute fo:margin-right { length | percent }?
  710. common-in-content-meta-attlist =
  711. attribute xhtml:about { URIorSafeCURIE },
  712. attribute xhtml:property { CURIEs },
  713. common-meta-literal-attlist
  714. common-keep-with-next-attlist =
  715. attribute fo:keep-with-next { "auto" | "always" }?
  716. common-linked-cell =
  717. attribute form:linked-cell { cellAddress | \string }?
  718. common-margin-attlist =
  719. attribute fo:margin { nonNegativeLength | percent }?
  720. common-maxlength-attlist =
  721. attribute form:max-length { nonNegativeInteger }?
  722. common-meta-literal-attlist =
  723. attribute xhtml:datatype { CURIE }?,
  724. attribute xhtml:content { \string }?
  725. common-num-format-attlist =
  726. attribute style:num-format { "1" | "i" | "I" | \string | empty }
  727. | (attribute style:num-format { "a" | "A" },
  728. style-num-letter-sync-attlist)
  729. | empty
  730. common-num-format-prefix-suffix-attlist =
  731. attribute style:num-prefix { \string }?,
  732. attribute style:num-suffix { \string }?
  733. common-number-attlist =
  734. attribute number:min-integer-digits { integer }?
  735. & attribute number:grouping { boolean }?
  736. common-numeric-control-attlist =
  737. form-control-attlist,
  738. common-disabled-attlist,
  739. common-maxlength-attlist,
  740. common-printable-attlist,
  741. common-readonly-attlist,
  742. common-tab-attlist,
  743. common-title-attlist,
  744. common-convert-empty-attlist,
  745. common-data-field-attlist
  746. common-office-annotation-name-attlist =
  747. attribute office:name { \string }
  748. common-padding-attlist =
  749. attribute fo:padding { nonNegativeLength }?,
  750. attribute fo:padding-top { nonNegativeLength }?,
  751. attribute fo:padding-bottom { nonNegativeLength }?,
  752. attribute fo:padding-left { nonNegativeLength }?,
  753. attribute fo:padding-right { nonNegativeLength }?
  754. common-page-number-attlist =
  755. attribute style:page-number {
  756. (nonNegativeInteger | "auto")
  757. # https://issues.oasis-open.org/browse/OFFICE-3923
  758. }?
  759. common-presentation-effect-attlist =
  760. attribute draw:shape-id { IDREF }
  761. & attribute presentation:effect { presentationEffects }?
  762. & attribute presentation:direction { presentationEffectDirections }?
  763. & attribute presentation:speed { presentationSpeeds }?
  764. & attribute presentation:delay { duration }?
  765. & attribute presentation:start-scale { percent }?
  766. & attribute presentation:path-id { \string }?
  767. common-presentation-header-footer-attlist =
  768. attribute presentation:use-header-name { \string }?
  769. & attribute presentation:use-footer-name { \string }?
  770. & attribute presentation:use-date-time-name { \string }?
  771. common-printable-attlist = attribute form:printable { boolean }?
  772. common-readonly-attlist = attribute form:readonly { boolean }?
  773. common-ref-format-values = "page" | "chapter" | "direction" | "text"
  774. common-repeat = attribute form:repeat { boolean }?
  775. common-repeat-timing-attlist =
  776. attribute smil:repeatDur { \string }?,
  777. attribute smil:repeatCount { nonNegativeDecimal | "indefinite" }?
  778. common-restart-default-attlist =
  779. attribute smil:restartDefault {
  780. "never" | "always" | "whenNotActive" | "inherit"
  781. }?
  782. common-restart-timing-attlist =
  783. attribute smil:restart {
  784. "never" | "always" | "whenNotActive" | "default"
  785. }?
  786. common-rotation-angle-attlist =
  787. attribute style:rotation-angle { angle }?
  788. common-section-attlist =
  789. attribute text:style-name { styleNameRef }?
  790. & attribute text:name { \string }
  791. & attribute text:protected { boolean }?
  792. & attribute text:protection-key { \string }?
  793. & attribute text:protection-key-digest-algorithm { anyIRI }?
  794. & xml-id?
  795. common-shadow-attlist = attribute style:shadow { shadowType }?
  796. common-source-cell-range =
  797. attribute form:source-cell-range { cellRangeAddress | \string }?
  798. common-spin-button = attribute form:spin-button { boolean }?
  799. common-spline-anim-value-attlist =
  800. attribute smil:keyTimes { \string }?
  801. & attribute smil:keySplines { \string }?
  802. common-stock-marker-attlist =
  803. attribute chart:style-name { styleNameRef }?
  804. common-style-direction-attlist =
  805. attribute style:direction { "ltr" | "ttb" }?
  806. common-style-header-footer-attlist =
  807. attribute style:display { boolean }?
  808. common-svg-font-face-xlink-attlist =
  809. attribute xlink:type { "simple" },
  810. attribute xlink:href { anyIRI },
  811. attribute xlink:actuate { "onRequest" }?
  812. common-svg-gradient-attlist =
  813. attribute svg:gradientUnits { "objectBoundingBox" }?
  814. & attribute svg:gradientTransform { \string }?
  815. & attribute svg:spreadMethod { "pad" | "reflect" | "repeat" }?
  816. & attribute draw:name { styleName }
  817. & attribute draw:display-name { \string }?
  818. common-tab-attlist =
  819. attribute form:tab-index { nonNegativeInteger }?
  820. & attribute form:tab-stop { boolean }?
  821. common-table-cell-address-attlist =
  822. attribute table:column { integer },
  823. attribute table:row { integer },
  824. attribute table:table { integer }
  825. common-table-cell-range-address-attlist =
  826. attribute table:start-column { integer },
  827. attribute table:start-row { integer },
  828. attribute table:start-table { integer },
  829. attribute table:end-column { integer },
  830. attribute table:end-row { integer },
  831. attribute table:end-table { integer }
  832. common-table-change-attlist =
  833. attribute table:id { \string }
  834. & attribute table:acceptance-state {
  835. "accepted" | "rejected" | "pending"
  836. }?
  837. & attribute table:rejecting-change-id { \string }?
  838. common-table-range-attlist =
  839. common-table-cell-address-attlist
  840. | common-table-cell-range-address-attlist
  841. common-table-template-attlist =
  842. attribute table:style-name { styleNameRef },
  843. attribute table:paragraph-style-name { styleNameRef }?
  844. common-text-align =
  845. attribute fo:text-align {
  846. "start" | "end" | "left" | "right" | "center" | "justify"
  847. }?
  848. common-text-anchor-attlist =
  849. attribute text:anchor-type {
  850. "page" | "frame" | "paragraph" | "char" | "as-char"
  851. }?
  852. & attribute text:anchor-page-number { positiveInteger }?
  853. common-text-spreadsheet-shape-attlist =
  854. attribute table:end-cell-address { cellAddress }?
  855. & attribute table:end-x { coordinate }?
  856. & attribute table:end-y { coordinate }?
  857. & attribute table:table-background { boolean }?
  858. & common-text-anchor-attlist
  859. common-time-manip-attlist =
  860. attribute smil:accelerate { zeroToOneDecimal }?
  861. & attribute smil:decelerate { zeroToOneDecimal }?
  862. & attribute smil:autoReverse { boolean }?
  863. common-timing-attlist =
  864. common-basic-timing-attlist, common-time-manip-attlist
  865. common-title-attlist = attribute form:title { \string }?
  866. common-value-and-type-attlist =
  867. (attribute office:value-type { "float" },
  868. attribute office:value { double })
  869. | (attribute office:value-type { "percentage" },
  870. attribute office:value { double })
  871. | (attribute office:value-type { "currency" },
  872. attribute office:value { double },
  873. attribute office:currency { \string }?)
  874. | (attribute office:value-type { "date" },
  875. attribute office:date-value { dateOrDateTime })
  876. | (attribute office:value-type { "time" },
  877. attribute office:time-value { duration })
  878. | (attribute office:value-type { "boolean" },
  879. attribute office:boolean-value { boolean })
  880. | (attribute office:value-type { "string" },
  881. attribute office:string-value { \string }?)
  882. common-value-attlist = attribute form:value { \string }?
  883. common-value-type-attlist = attribute office:value-type { valueType }
  884. common-vertical-margin-attlist =
  885. attribute fo:margin-top { nonNegativeLength | percent }?,
  886. attribute fo:margin-bottom { nonNegativeLength | percent }?
  887. common-vertical-pos-attlist =
  888. attribute style:vertical-pos {
  889. "top" | "middle" | "bottom" | "from-top" | "below"
  890. }?,
  891. attribute svg:y { coordinate }?
  892. common-vertical-rel-attlist =
  893. attribute style:vertical-rel {
  894. "page"
  895. | "page-content"
  896. | "frame"
  897. | "frame-content"
  898. | "paragraph"
  899. | "paragraph-content"
  900. | "char"
  901. | "line"
  902. | "baseline"
  903. | "text"
  904. }?
  905. common-writing-mode-attlist =
  906. attribute style:writing-mode {
  907. "lr-tb" | "rl-tb" | "tb-rl" | "tb-lr" | "lr" | "rl" | "tb" | "page"
  908. }?
  909. config-config-item =
  910. element config:config-item { config-config-item-attlist, text }
  911. config-config-item-attlist =
  912. attribute config:name { \string }
  913. & attribute config:type {
  914. "boolean"
  915. | "short"
  916. | "int"
  917. | "long"
  918. | "double"
  919. | "string"
  920. | "datetime"
  921. | "base64Binary"
  922. }
  923. config-config-item-map-entry =
  924. element config:config-item-map-entry {
  925. config-config-item-map-entry-attlist, config-items
  926. }
  927. config-config-item-map-entry-attlist =
  928. attribute config:name { \string }?
  929. config-config-item-map-indexed =
  930. element config:config-item-map-indexed {
  931. config-config-item-map-indexed-attlist,
  932. config-config-item-map-entry+
  933. }
  934. config-config-item-map-indexed-attlist =
  935. attribute config:name { \string }
  936. config-config-item-map-named =
  937. element config:config-item-map-named {
  938. config-config-item-map-named-attlist, config-config-item-map-entry+
  939. }
  940. config-config-item-map-named-attlist = attribute config:name { \string }
  941. config-config-item-set =
  942. element config:config-item-set {
  943. config-config-item-set-attlist, config-items
  944. }
  945. config-config-item-set-attlist = attribute config:name { \string }
  946. config-items =
  947. (config-config-item
  948. | config-config-item-set
  949. | config-config-item-map-named
  950. | config-config-item-map-indexed)+
  951. controls =
  952. column-controls
  953. | element form:password {
  954. form-password-attlist, common-form-control-content
  955. }
  956. | element form:file { form-file-attlist, common-form-control-content }
  957. | element form:fixed-text {
  958. form-fixed-text-attlist, common-form-control-content
  959. }
  960. | element form:button {
  961. form-button-attlist, common-form-control-content
  962. }
  963. | element form:image {
  964. form-image-attlist, common-form-control-content
  965. }
  966. | element form:radio {
  967. form-radio-attlist, common-form-control-content
  968. }
  969. | element form:frame {
  970. form-frame-attlist, common-form-control-content
  971. }
  972. | element form:image-frame {
  973. form-image-frame-attlist, common-form-control-content
  974. }
  975. | element form:hidden {
  976. form-hidden-attlist, common-form-control-content
  977. }
  978. | element form:grid {
  979. form-grid-attlist, common-form-control-content, form-column*
  980. }
  981. | element form:value-range {
  982. form-value-range-attlist, common-form-control-content
  983. }
  984. | element form:generic-control {
  985. form-generic-control-attlist, common-form-control-content
  986. }
  987. coordinate = length
  988. countryCode = xsd:token { pattern = "[A-Za-z0-9]{1,8}" }
  989. currency-symbol-and-text =
  990. number-currency-symbol,
  991. number-text-with-fillchar
  992. # https://issues.oasis-open.org/browse/OFFICE-3765
  993. ?
  994. current-selected = attribute form:current-selected { boolean }?
  995. custom-shape-type = "non-primitive" | \string
  996. date = xsd:date
  997. dateOrDateTime = xsd:date | xsd:dateTime
  998. dateTime = xsd:dateTime
  999. db-application-connection-settings =
  1000. element db:application-connection-settings {
  1001. db-application-connection-settings-attlist,
  1002. db-table-filter?,
  1003. db-table-type-filter?,
  1004. db-data-source-settings?
  1005. }
  1006. db-application-connection-settings-attlist =
  1007. attribute db:is-table-name-length-limited { boolean }?
  1008. & attribute db:enable-sql92-check { boolean }?
  1009. & attribute db:append-table-alias-name { boolean }?
  1010. & attribute db:ignore-driver-privileges { boolean }?
  1011. & attribute db:boolean-comparison-mode {
  1012. "equal-integer"
  1013. | "is-boolean"
  1014. | "equal-boolean"
  1015. | "equal-use-only-zero"
  1016. }?
  1017. & attribute db:use-catalog { boolean }?
  1018. & attribute db:max-row-count { integer }?
  1019. & attribute db:suppress-version-columns { boolean }?
  1020. db-apply-command = attribute db:apply-command { boolean }?
  1021. db-auto-increment =
  1022. element db:auto-increment { db-auto-increment-attlist, empty }
  1023. db-auto-increment-attlist =
  1024. attribute db:additional-column-statement { \string }?
  1025. & attribute db:row-retrieving-statement { \string }?
  1026. db-character-set =
  1027. element db:character-set { db-character-set-attlist, empty }
  1028. db-character-set-attlist = attribute db:encoding { textEncoding }?
  1029. db-column =
  1030. element db:column {
  1031. db-column-attlist,
  1032. common-db-object-name,
  1033. common-db-object-title,
  1034. common-db-object-description,
  1035. common-db-default-value
  1036. }
  1037. db-column-attlist =
  1038. attribute db:visible { boolean }?
  1039. & attribute db:style-name { styleNameRef }?
  1040. & attribute db:default-cell-style-name { styleNameRef }?
  1041. db-column-definition =
  1042. element db:column-definition {
  1043. db-column-definition-attlist, common-db-default-value
  1044. }
  1045. db-column-definition-attlist =
  1046. attribute db:name { \string }
  1047. & attribute db:data-type { db-data-types }?
  1048. & attribute db:type-name { \string }?
  1049. & attribute db:precision { positiveInteger }?
  1050. & attribute db:scale { positiveInteger }?
  1051. & attribute db:is-nullable { "no-nulls" | "nullable" }?
  1052. & attribute db:is-empty-allowed { boolean }?
  1053. & attribute db:is-autoincrement { boolean }?
  1054. db-column-definitions =
  1055. element db:column-definitions {
  1056. db-column-definitions-attlist, db-column-definition+
  1057. }
  1058. db-column-definitions-attlist = empty
  1059. db-columns = element db:columns { db-columns-attlist, db-column+ }
  1060. db-columns-attlist = empty
  1061. db-command = attribute db:command { \string }
  1062. db-component =
  1063. element db:component {
  1064. db-component-attlist,
  1065. common-db-object-name,
  1066. common-db-object-title,
  1067. common-db-object-description,
  1068. (office-document | math-math)?
  1069. }
  1070. db-component-attlist =
  1071. (attribute xlink:type { "simple" },
  1072. attribute xlink:href { anyIRI },
  1073. attribute xlink:show { "none" }?,
  1074. attribute xlink:actuate { "onRequest" }?)?
  1075. & attribute db:as-template { boolean }?
  1076. db-component-collection =
  1077. element db:component-collection {
  1078. db-component-collection-attlist,
  1079. common-db-object-name,
  1080. common-db-object-title,
  1081. common-db-object-description,
  1082. (db-component | db-component-collection)*
  1083. }
  1084. db-component-collection-attlist = empty
  1085. db-connection-data =
  1086. element db:connection-data {
  1087. db-connection-data-attlist,
  1088. (db-database-description | db-connection-resource),
  1089. db-login?
  1090. }
  1091. db-connection-data-attlist = empty
  1092. db-connection-resource =
  1093. element db:connection-resource {
  1094. db-connection-resource-attlist, empty
  1095. }
  1096. db-connection-resource-attlist =
  1097. attribute xlink:type { "simple" },
  1098. attribute xlink:href { anyIRI },
  1099. attribute xlink:show { "none" }?,
  1100. attribute xlink:actuate { "onRequest" }?
  1101. db-data-source =
  1102. element db:data-source {
  1103. db-data-source-attlist,
  1104. db-connection-data,
  1105. db-driver-settings?,
  1106. db-application-connection-settings?
  1107. }
  1108. db-data-source-attlist = empty
  1109. db-data-source-setting =
  1110. element db:data-source-setting {
  1111. db-data-source-setting-attlist, db-data-source-setting-value+
  1112. }
  1113. db-data-source-setting-attlist =
  1114. attribute db:data-source-setting-is-list { boolean }?
  1115. & attribute db:data-source-setting-name { \string }
  1116. & attribute db:data-source-setting-type {
  1117. db-data-source-setting-types
  1118. }
  1119. db-data-source-setting-types =
  1120. "boolean" | "short" | "int" | "long" | "double" | "string"
  1121. db-data-source-setting-value =
  1122. element db:data-source-setting-value {
  1123. db-data-source-setting-value-attlist, \string
  1124. }
  1125. db-data-source-setting-value-attlist = empty
  1126. db-data-source-settings =
  1127. element db:data-source-settings {
  1128. db-data-source-settings-attlist, db-data-source-setting+
  1129. }
  1130. db-data-source-settings-attlist = empty
  1131. db-data-types =
  1132. "bit"
  1133. | "boolean"
  1134. | "tinyint"
  1135. | "smallint"
  1136. | "integer"
  1137. | "bigint"
  1138. | "float"
  1139. | "real"
  1140. | "double"
  1141. | "numeric"
  1142. | "decimal"
  1143. | "char"
  1144. | "varchar"
  1145. | "longvarchar"
  1146. | "date"
  1147. | "time"
  1148. | "timestmp"
  1149. | "binary"
  1150. | "varbinary"
  1151. | "longvarbinary"
  1152. | "sqlnull"
  1153. | "other"
  1154. | "object"
  1155. | "distinct"
  1156. | "struct"
  1157. | "array"
  1158. | "blob"
  1159. | "clob"
  1160. | "ref"
  1161. db-database-description =
  1162. element db:database-description {
  1163. db-database-description-attlist,
  1164. (db-file-based-database | db-server-database)
  1165. }
  1166. db-database-description-attlist = empty
  1167. db-delimiter = element db:delimiter { db-delimiter-attlist, empty }
  1168. db-delimiter-attlist =
  1169. attribute db:field { \string }?
  1170. & attribute db:string { \string }?
  1171. & attribute db:decimal { \string }?
  1172. & attribute db:thousand { \string }?
  1173. db-driver-settings =
  1174. element db:driver-settings {
  1175. db-driver-settings-attlist,
  1176. db-auto-increment?,
  1177. db-delimiter?,
  1178. db-character-set?,
  1179. db-table-settings?
  1180. }
  1181. db-driver-settings-attlist =
  1182. db-show-deleted
  1183. & attribute db:system-driver-settings { \string }?
  1184. & attribute db:base-dn { \string }?
  1185. & db-is-first-row-header-line
  1186. & attribute db:parameter-name-substitution { boolean }?
  1187. db-file-based-database =
  1188. element db:file-based-database { db-file-based-database-attlist }
  1189. db-file-based-database-attlist =
  1190. attribute xlink:type { "simple" }
  1191. & attribute xlink:href { anyIRI }
  1192. & attribute db:media-type { \string }
  1193. & attribute db:extension { \string }?
  1194. db-filter-statement =
  1195. element db:filter-statement { db-command, db-apply-command, empty }
  1196. db-forms =
  1197. element db:forms {
  1198. db-forms-attlist, (db-component | db-component-collection)*
  1199. }
  1200. db-forms-attlist = empty
  1201. db-host-and-port =
  1202. attribute db:hostname { \string },
  1203. attribute db:port { positiveInteger }?
  1204. db-index = element db:index { db-index-attlist, db-index-columns+ }
  1205. db-index-attlist =
  1206. attribute db:name { \string }
  1207. & attribute db:catalog-name { \string }?
  1208. & attribute db:is-unique { boolean }?
  1209. & attribute db:is-clustered { boolean }?
  1210. db-index-column =
  1211. element db:index-column { db-index-column-attlist, empty }
  1212. db-index-column-attlist =
  1213. attribute db:name { \string }
  1214. & attribute db:is-ascending { boolean }?
  1215. db-index-columns = element db:index-columns { db-index-column+ }
  1216. db-indices = element db:indices { db-indices-attlist, db-index+ }
  1217. db-indices-attlist = empty
  1218. db-is-first-row-header-line =
  1219. attribute db:is-first-row-header-line { boolean }?
  1220. db-key = element db:key { db-key-attlist, db-key-columns+ }
  1221. db-key-attlist =
  1222. attribute db:name { \string }?
  1223. & attribute db:type { "primary" | "unique" | "foreign" }
  1224. & attribute db:referenced-table-name { \string }?
  1225. & attribute db:update-rule {
  1226. "cascade" | "restrict" | "set-null" | "no-action" | "set-default"
  1227. }?
  1228. & attribute db:delete-rule {
  1229. "cascade" | "restrict" | "set-null" | "no-action" | "set-default"
  1230. }?
  1231. db-key-column = element db:key-column { db-key-column-attlist, empty }
  1232. db-key-column-attlist =
  1233. attribute db:name { \string }?
  1234. & attribute db:related-column-name { \string }?
  1235. db-key-columns =
  1236. element db:key-columns { db-key-columns-attlist, db-key-column+ }
  1237. db-key-columns-attlist = empty
  1238. db-keys = element db:keys { db-keys-attlist, db-key+ }
  1239. db-keys-attlist = empty
  1240. db-local-socket-name = attribute db:local-socket { \string }?
  1241. db-login = element db:login { db-login-attlist, empty }
  1242. db-login-attlist =
  1243. (attribute db:user-name { \string }
  1244. | attribute db:use-system-user { boolean })?
  1245. & attribute db:is-password-required { boolean }?
  1246. & attribute db:login-timeout { positiveInteger }?
  1247. db-order-statement =
  1248. element db:order-statement { db-command, db-apply-command, empty }
  1249. db-queries =
  1250. element db:queries {
  1251. db-queries-attlist, (db-query | db-query-collection)*
  1252. }
  1253. db-queries-attlist = empty
  1254. db-query =
  1255. element db:query {
  1256. db-query-attlist,
  1257. common-db-object-name,
  1258. common-db-object-title,
  1259. common-db-object-description,
  1260. common-db-table-style-name,
  1261. db-order-statement?,
  1262. db-filter-statement?,
  1263. db-columns?,
  1264. db-update-table?
  1265. }
  1266. db-query-attlist =
  1267. attribute db:command { \string }
  1268. & attribute db:escape-processing { boolean }?
  1269. db-query-collection =
  1270. element db:query-collection {
  1271. db-query-collection-attlist,
  1272. common-db-object-name,
  1273. common-db-object-title,
  1274. common-db-object-description,
  1275. (db-query | db-query-collection)*
  1276. }
  1277. db-query-collection-attlist = empty
  1278. db-reports =
  1279. element db:reports {
  1280. db-reports-attlist, (db-component | db-component-collection)*
  1281. }
  1282. db-reports-attlist = empty
  1283. db-schema-definition =
  1284. element db:schema-definition {
  1285. db-schema-definition-attlist, db-table-definitions
  1286. }
  1287. db-schema-definition-attlist = empty
  1288. db-server-database =
  1289. element db:server-database { db-server-database-attlist, empty }
  1290. db-server-database-attlist =
  1291. attribute db:type { namespacedToken }
  1292. & (db-host-and-port | db-local-socket-name)
  1293. & attribute db:database-name { \string }?
  1294. db-show-deleted = attribute db:show-deleted { boolean }?
  1295. db-table-definition =
  1296. element db:table-definition {
  1297. common-db-table-name-attlist,
  1298. db-table-definition-attlist,
  1299. db-column-definitions,
  1300. db-keys?,
  1301. db-indices?
  1302. }
  1303. db-table-definition-attlist = attribute db:type { \string }?
  1304. db-table-definitions =
  1305. element db:table-definitions {
  1306. db-table-definitions-attlist, db-table-definition*
  1307. }
  1308. db-table-definitions-attlist = empty
  1309. db-table-exclude-filter =
  1310. element db:table-exclude-filter {
  1311. db-table-exclude-filter-attlist, db-table-filter-pattern+
  1312. }
  1313. db-table-exclude-filter-attlist = empty
  1314. db-table-filter =
  1315. element db:table-filter {
  1316. db-table-filter-attlist,
  1317. db-table-include-filter?,
  1318. db-table-exclude-filter?
  1319. }
  1320. db-table-filter-attlist = empty
  1321. db-table-filter-pattern =
  1322. element db:table-filter-pattern {
  1323. db-table-filter-pattern-attlist, \string
  1324. }
  1325. db-table-filter-pattern-attlist = empty
  1326. db-table-include-filter =
  1327. element db:table-include-filter {
  1328. db-table-include-filter-attlist, db-table-filter-pattern+
  1329. }
  1330. db-table-include-filter-attlist = empty
  1331. db-table-presentation =
  1332. element db:table-representation {
  1333. db-table-presentation-attlist,
  1334. common-db-table-name-attlist,
  1335. common-db-object-title,
  1336. common-db-object-description,
  1337. common-db-table-style-name,
  1338. db-order-statement?,
  1339. db-filter-statement?,
  1340. db-columns?
  1341. }
  1342. db-table-presentation-attlist = empty
  1343. db-table-presentations =
  1344. element db:table-representations {
  1345. db-table-presentations-attlist, db-table-presentation*
  1346. }
  1347. db-table-presentations-attlist = empty
  1348. db-table-setting =
  1349. element db:table-setting {
  1350. db-table-setting-attlist, db-delimiter?, db-character-set?, empty
  1351. }
  1352. db-table-setting-attlist = db-is-first-row-header-line, db-show-deleted
  1353. db-table-settings = element db:table-settings { db-table-setting* }
  1354. db-table-type = element db:table-type { db-table-type-attlist, \string }
  1355. db-table-type-attlist = empty
  1356. db-table-type-filter =
  1357. element db:table-type-filter {
  1358. db-table-type-filter-attlist, db-table-type*
  1359. }
  1360. db-table-type-filter-attlist = empty
  1361. db-update-table =
  1362. element db:update-table { common-db-table-name-attlist }
  1363. dc-creator = element dc:creator { \string }
  1364. dc-date = element dc:date { dateTime }
  1365. distance = length
  1366. double = xsd:double
  1367. dr3d-cube =
  1368. element dr3d:cube {
  1369. dr3d-cube-attlist,
  1370. common-draw-z-index-attlist,
  1371. common-draw-id-attlist,
  1372. common-draw-layer-name-attlist,
  1373. common-draw-style-name-attlist,
  1374. common-dr3d-transform-attlist,
  1375. empty
  1376. }
  1377. dr3d-cube-attlist =
  1378. attribute dr3d:min-edge { vector3D }?,
  1379. attribute dr3d:max-edge { vector3D }?
  1380. dr3d-extrude =
  1381. element dr3d:extrude {
  1382. common-draw-path-data-attlist,
  1383. common-draw-viewbox-attlist,
  1384. common-draw-id-attlist,
  1385. common-draw-z-index-attlist,
  1386. common-draw-layer-name-attlist,
  1387. common-draw-style-name-attlist,
  1388. common-dr3d-transform-attlist,
  1389. empty
  1390. }
  1391. dr3d-light = element dr3d:light { dr3d-light-attlist, empty }
  1392. dr3d-light-attlist =
  1393. attribute dr3d:diffuse-color { color }?
  1394. & attribute dr3d:direction { vector3D }
  1395. & attribute dr3d:enabled { boolean }?
  1396. & attribute dr3d:specular { boolean }?
  1397. dr3d-rotate =
  1398. element dr3d:rotate {
  1399. common-draw-viewbox-attlist,
  1400. common-draw-path-data-attlist,
  1401. common-draw-z-index-attlist,
  1402. common-draw-id-attlist,
  1403. common-draw-layer-name-attlist,
  1404. common-draw-style-name-attlist,
  1405. common-dr3d-transform-attlist,
  1406. empty
  1407. }
  1408. dr3d-scene =
  1409. element dr3d:scene {
  1410. dr3d-scene-attlist,
  1411. common-draw-position-attlist,
  1412. common-draw-size-attlist,
  1413. common-draw-style-name-attlist,
  1414. common-draw-z-index-attlist,
  1415. common-draw-id-attlist,
  1416. common-draw-layer-name-attlist,
  1417. common-text-spreadsheet-shape-attlist,
  1418. common-dr3d-transform-attlist,
  1419. common-draw-caption-id-attlist,
  1420. svg-title?,
  1421. svg-desc?,
  1422. dr3d-light*,
  1423. shapes3d*,
  1424. draw-glue-point*
  1425. }
  1426. dr3d-scene-attlist =
  1427. attribute dr3d:vrp { vector3D }?
  1428. & attribute dr3d:vpn { vector3D }?
  1429. & attribute dr3d:vup { vector3D }?
  1430. & attribute dr3d:projection { "parallel" | "perspective" }?
  1431. & attribute dr3d:distance { length }?
  1432. & attribute dr3d:focal-length { length }?
  1433. & attribute dr3d:shadow-slant { angle }?
  1434. & attribute dr3d:shade-mode {
  1435. "flat" | "phong" | "gouraud" | "draft"
  1436. }?
  1437. & attribute dr3d:ambient-color { color }?
  1438. & attribute dr3d:lighting-mode { boolean }?
  1439. dr3d-sphere =
  1440. element dr3d:sphere {
  1441. dr3d-sphere-attlist,
  1442. common-draw-z-index-attlist,
  1443. common-draw-id-attlist,
  1444. common-draw-layer-name-attlist,
  1445. common-draw-style-name-attlist,
  1446. common-dr3d-transform-attlist,
  1447. empty
  1448. }
  1449. dr3d-sphere-attlist =
  1450. attribute dr3d:center { vector3D }?
  1451. & attribute dr3d:size { vector3D }?
  1452. draw-a = element draw:a { draw-a-attlist, shape-instance }
  1453. draw-a-attlist =
  1454. attribute xlink:type { "simple" }
  1455. & attribute xlink:href { anyIRI }
  1456. & attribute xlink:actuate { "onRequest" }?
  1457. & attribute office:target-frame-name { targetFrameName }?
  1458. & attribute xlink:show { "new" | "replace" }?
  1459. & attribute office:name { \string }?
  1460. & attribute office:title { \string }?
  1461. & attribute office:server-map { boolean }?
  1462. & xml-id?
  1463. draw-applet =
  1464. element draw:applet {
  1465. draw-applet-attlist, common-draw-data-attlist?, draw-param*
  1466. }
  1467. draw-applet-attlist =
  1468. attribute draw:code { \string }?
  1469. & attribute draw:object { \string }?
  1470. & attribute draw:archive { \string }?
  1471. & attribute draw:may-script { boolean }?
  1472. & xml-id?
  1473. draw-area-circle =
  1474. element draw:area-circle {
  1475. common-draw-area-attlist,
  1476. attribute svg:cx { coordinate },
  1477. attribute svg:cy { coordinate },
  1478. attribute svg:r { length },
  1479. svg-title?,
  1480. svg-desc?,
  1481. office-event-listeners?
  1482. }
  1483. draw-area-polygon =
  1484. element draw:area-polygon {
  1485. common-draw-area-attlist,
  1486. attribute svg:x { coordinate },
  1487. attribute svg:y { coordinate },
  1488. attribute svg:width { length },
  1489. attribute svg:height { length },
  1490. common-draw-viewbox-attlist,
  1491. common-draw-points-attlist,
  1492. svg-title?,
  1493. svg-desc?,
  1494. office-event-listeners?
  1495. }
  1496. draw-area-rectangle =
  1497. element draw:area-rectangle {
  1498. common-draw-area-attlist,
  1499. attribute svg:x { coordinate },
  1500. attribute svg:y { coordinate },
  1501. attribute svg:width { length },
  1502. attribute svg:height { length },
  1503. svg-title?,
  1504. svg-desc?,
  1505. office-event-listeners?
  1506. }
  1507. draw-caption =
  1508. element draw:caption {
  1509. draw-caption-attlist,
  1510. common-draw-position-attlist,
  1511. common-draw-size-attlist,
  1512. common-draw-shape-with-text-and-styles-attlist,
  1513. common-draw-caption-id-attlist,
  1514. svg-title?,
  1515. svg-desc?,
  1516. office-event-listeners?,
  1517. draw-glue-point*,
  1518. draw-text
  1519. }
  1520. draw-caption-attlist =
  1521. (attribute draw:caption-point-x { coordinate },
  1522. attribute draw:caption-point-y { coordinate })?
  1523. & attribute draw:corner-radius { nonNegativeLength }?
  1524. draw-circle =
  1525. element draw:circle {
  1526. ((draw-circle-attlist, common-draw-circle-ellipse-pos-attlist)
  1527. | (common-draw-position-attlist, common-draw-size-attlist)),
  1528. common-draw-circle-ellipse-attlist,
  1529. common-draw-shape-with-text-and-styles-attlist,
  1530. common-draw-caption-id-attlist,
  1531. svg-title?,
  1532. svg-desc?,
  1533. office-event-listeners?,
  1534. draw-glue-point*,
  1535. draw-text
  1536. }
  1537. draw-circle-attlist = attribute svg:r { length }
  1538. draw-connector =
  1539. element draw:connector {
  1540. draw-connector-attlist,
  1541. common-draw-shape-with-text-and-styles-attlist,
  1542. common-draw-caption-id-attlist,
  1543. common-draw-viewbox-attlist,
  1544. svg-title?,
  1545. svg-desc?,
  1546. office-event-listeners?,
  1547. draw-glue-point*,
  1548. draw-text
  1549. }
  1550. draw-connector-attlist =
  1551. attribute draw:type { "standard" | "lines" | "line" | "curve" }?
  1552. & (attribute svg:x1 { coordinate },
  1553. attribute svg:y1 { coordinate })?
  1554. & attribute draw:start-shape { IDREF }?
  1555. & attribute draw:start-glue-point { nonNegativeInteger }?
  1556. & (attribute svg:x2 { coordinate },
  1557. attribute svg:y2 { coordinate })?
  1558. & attribute draw:end-shape { IDREF }?
  1559. & attribute draw:end-glue-point { nonNegativeInteger }?
  1560. & attribute draw:line-skew {
  1561. list { length, (length, length?)? }
  1562. }?
  1563. & attribute svg:d { pathData }?
  1564. draw-contour-path =
  1565. element draw:contour-path {
  1566. common-contour-attlist,
  1567. common-draw-size-attlist,
  1568. common-draw-viewbox-attlist,
  1569. common-draw-path-data-attlist,
  1570. empty
  1571. }
  1572. draw-contour-polygon =
  1573. element draw:contour-polygon {
  1574. common-contour-attlist,
  1575. common-draw-size-attlist,
  1576. common-draw-viewbox-attlist,
  1577. common-draw-points-attlist,
  1578. empty
  1579. }
  1580. draw-control =
  1581. element draw:control {
  1582. draw-control-attlist,
  1583. common-draw-position-attlist,
  1584. common-draw-size-attlist,
  1585. common-draw-shape-with-text-and-styles-attlist,
  1586. common-draw-caption-id-attlist,
  1587. svg-title?,
  1588. svg-desc?,
  1589. draw-glue-point*
  1590. }
  1591. draw-control-attlist = attribute draw:control { IDREF }
  1592. draw-custom-shape =
  1593. element draw:custom-shape {
  1594. draw-custom-shape-attlist,
  1595. common-draw-position-attlist,
  1596. common-draw-size-attlist,
  1597. common-draw-shape-with-text-and-styles-attlist,
  1598. common-draw-caption-id-attlist,
  1599. svg-title?,
  1600. svg-desc?,
  1601. office-event-listeners?,
  1602. draw-glue-point*,
  1603. draw-text,
  1604. draw-enhanced-geometry?
  1605. }
  1606. draw-custom-shape-attlist =
  1607. attribute draw:engine { namespacedToken }?
  1608. & attribute draw:data { \string }?
  1609. draw-ellipse =
  1610. element draw:ellipse {
  1611. ((draw-ellipse-attlist, common-draw-circle-ellipse-pos-attlist)
  1612. | (common-draw-position-attlist, common-draw-size-attlist)),
  1613. common-draw-circle-ellipse-attlist,
  1614. common-draw-shape-with-text-and-styles-attlist,
  1615. common-draw-caption-id-attlist,
  1616. svg-title?,
  1617. svg-desc?,
  1618. office-event-listeners?,
  1619. draw-glue-point*,
  1620. draw-text
  1621. }
  1622. draw-ellipse-attlist =
  1623. attribute svg:rx { length },
  1624. attribute svg:ry { length }
  1625. draw-enhanced-geometry =
  1626. element draw:enhanced-geometry {
  1627. draw-enhanced-geometry-attlist, draw-equation*, draw-handle*
  1628. }
  1629. draw-enhanced-geometry-attlist =
  1630. attribute draw:type { custom-shape-type }?
  1631. & attribute svg:viewBox {
  1632. list { integer, integer, integer, integer }
  1633. }?
  1634. & attribute draw:mirror-vertical { boolean }?
  1635. & attribute draw:mirror-horizontal { boolean }?
  1636. & attribute draw:text-rotate-angle { angle }?
  1637. & attribute draw:extrusion-allowed { boolean }?
  1638. & attribute draw:text-path-allowed { boolean }?
  1639. & attribute draw:concentric-gradient-fill-allowed { boolean }?
  1640. & attribute draw:extrusion { boolean }?
  1641. & attribute draw:extrusion-brightness { zeroToHundredPercent }?
  1642. & attribute draw:extrusion-depth {
  1643. list { length, double }
  1644. }?
  1645. & attribute draw:extrusion-diffusion { percent }?
  1646. & attribute draw:extrusion-number-of-line-segments { integer }?
  1647. & attribute draw:extrusion-light-face { boolean }?
  1648. & attribute draw:extrusion-first-light-harsh { boolean }?
  1649. & attribute draw:extrusion-second-light-harsh { boolean }?
  1650. & attribute draw:extrusion-first-light-level { zeroToHundredPercent }?
  1651. & attribute draw:extrusion-second-light-level {
  1652. zeroToHundredPercent
  1653. }?
  1654. & attribute draw:extrusion-first-light-direction { vector3D }?
  1655. & attribute draw:extrusion-second-light-direction { vector3D }?
  1656. & attribute draw:extrusion-metal { boolean }?
  1657. & attribute dr3d:shade-mode {
  1658. "flat" | "phong" | "gouraud" | "draft"
  1659. }?
  1660. & attribute draw:extrusion-rotation-angle {
  1661. list { angle, angle }
  1662. }?
  1663. & attribute draw:extrusion-rotation-center { vector3D }?
  1664. & attribute draw:extrusion-shininess { zeroToHundredPercent }?
  1665. & attribute draw:extrusion-skew {
  1666. list { double, angle }
  1667. }?
  1668. & attribute draw:extrusion-specularity { zeroToHundredPercent }?
  1669. & attribute dr3d:projection { "parallel" | "perspective" }?
  1670. & attribute draw:extrusion-viewpoint { point3D }?
  1671. & attribute draw:extrusion-origin {
  1672. list { extrusionOrigin, extrusionOrigin }
  1673. }?
  1674. & attribute draw:extrusion-color { boolean }?
  1675. & attribute draw:enhanced-path { \string }?
  1676. & attribute draw:path-stretchpoint-x { double }?
  1677. & attribute draw:path-stretchpoint-y { double }?
  1678. & attribute draw:text-areas { \string }?
  1679. & attribute draw:glue-points { \string }?
  1680. & attribute draw:glue-point-type {
  1681. "none" | "segments" | "rectangle"
  1682. }?
  1683. & attribute draw:glue-point-leaving-directions { \string }?
  1684. & attribute draw:text-path { boolean }?
  1685. & attribute draw:text-path-mode { "normal" | "path" | "shape" }?
  1686. & attribute draw:text-path-scale { "path" | "shape" }?
  1687. & attribute draw:text-path-same-letter-heights { boolean }?
  1688. & attribute draw:modifiers { \string }?
  1689. draw-equation = element draw:equation { draw-equation-attlist, empty }
  1690. draw-equation-attlist =
  1691. attribute draw:name { \string }?
  1692. & attribute draw:formula { \string }?
  1693. draw-fill-image =
  1694. element draw:fill-image {
  1695. draw-fill-image-attlist,
  1696. # XLink duplicate declaration removed. see common-draw-data-attlist
  1697. ((common-draw-data-attlist, empty) | office-binary-data)
  1698. # https://issues.oasis-open.org/browse/OFFICE-3933
  1699. }
  1700. draw-fill-image-attlist =
  1701. attribute draw:name { styleName }
  1702. & attribute draw:display-name { \string }?
  1703. & attribute svg:width { length }?
  1704. & attribute svg:height { length }?
  1705. draw-floating-frame =
  1706. element draw:floating-frame {
  1707. draw-floating-frame-attlist, common-draw-data-attlist
  1708. }
  1709. draw-floating-frame-attlist =
  1710. attribute draw:frame-name { \string }?
  1711. & xml-id?
  1712. draw-frame =
  1713. element draw:frame {
  1714. common-draw-shape-with-text-and-styles-attlist,
  1715. common-draw-position-attlist,
  1716. common-draw-rel-size-attlist,
  1717. common-draw-caption-id-attlist,
  1718. presentation-shape-attlist,
  1719. draw-frame-attlist,
  1720. (draw-text-box
  1721. | draw-image
  1722. | draw-object
  1723. | draw-object-ole
  1724. | draw-applet
  1725. | draw-floating-frame
  1726. | draw-plugin
  1727. | table-table)*,
  1728. office-event-listeners?,
  1729. draw-glue-point*,
  1730. draw-image-map?,
  1731. svg-title?,
  1732. svg-desc?,
  1733. (draw-contour-polygon | draw-contour-path)?
  1734. }
  1735. draw-frame-attlist = attribute draw:copy-of { \string }?
  1736. draw-g =
  1737. element draw:g {
  1738. draw-g-attlist,
  1739. common-draw-z-index-attlist,
  1740. common-draw-name-attlist,
  1741. common-draw-id-attlist,
  1742. common-draw-style-name-attlist,
  1743. common-text-spreadsheet-shape-attlist,
  1744. common-draw-caption-id-attlist,
  1745. svg-title?,
  1746. svg-desc?,
  1747. office-event-listeners?,
  1748. draw-glue-point*,
  1749. shape*
  1750. }
  1751. draw-g-attlist = attribute svg:y { coordinate }?
  1752. draw-glue-point =
  1753. element draw:glue-point { draw-glue-point-attlist, empty }
  1754. draw-glue-point-attlist =
  1755. attribute draw:id { nonNegativeInteger }
  1756. & attribute svg:x { distance | percent }
  1757. & attribute svg:y { distance | percent }
  1758. & attribute draw:align {
  1759. "top-left"
  1760. | "top"
  1761. | "top-right"
  1762. | "left"
  1763. | "center"
  1764. | "right"
  1765. | "bottom-left"
  1766. | "bottom-right"
  1767. }?
  1768. & attribute draw:escape-direction {
  1769. "auto"
  1770. | "left"
  1771. | "right"
  1772. | "up"
  1773. | "down"
  1774. | "horizontal"
  1775. | "vertical"
  1776. }
  1777. draw-gradient =
  1778. element draw:gradient {
  1779. common-draw-gradient-attlist, draw-gradient-attlist, empty
  1780. }
  1781. draw-gradient-attlist =
  1782. attribute draw:start-color { color }?
  1783. & attribute draw:end-color { color }?
  1784. & attribute draw:start-intensity { zeroToHundredPercent }?
  1785. & attribute draw:end-intensity { zeroToHundredPercent }?
  1786. draw-handle = element draw:handle { draw-handle-attlist, empty }
  1787. draw-handle-attlist =
  1788. attribute draw:handle-mirror-vertical { boolean }?
  1789. & attribute draw:handle-mirror-horizontal { boolean }?
  1790. & attribute draw:handle-switched { boolean }?
  1791. & attribute draw:handle-position { \string }
  1792. & attribute draw:handle-range-x-minimum { \string }?
  1793. & attribute draw:handle-range-x-maximum { \string }?
  1794. & attribute draw:handle-range-y-minimum { \string }?
  1795. & attribute draw:handle-range-y-maximum { \string }?
  1796. & attribute draw:handle-polar { \string }?
  1797. & attribute draw:handle-radius-range-minimum { \string }?
  1798. & attribute draw:handle-radius-range-maximum { \string }?
  1799. draw-hatch = element draw:hatch { draw-hatch-attlist, empty }
  1800. draw-hatch-attlist =
  1801. attribute draw:name { styleName }
  1802. & attribute draw:display-name { \string }?
  1803. & attribute draw:style { "single" | "double" | "triple" }
  1804. & attribute draw:color { color }?
  1805. & attribute draw:distance { length }?
  1806. & attribute draw:rotation { angle }?
  1807. draw-image =
  1808. element draw:image {
  1809. draw-image-attlist,
  1810. (common-draw-data-attlist | office-binary-data),
  1811. draw-text
  1812. }
  1813. draw-image-attlist =
  1814. attribute draw:filter-name { \string }?
  1815. & common-draw-mime-type-attlist
  1816. & # https://issues.oasis-open.org/browse/OFFICE-3943
  1817. xml-id?
  1818. draw-image-map =
  1819. element draw:image-map {
  1820. (draw-area-rectangle | draw-area-circle | draw-area-polygon)*
  1821. }
  1822. draw-layer =
  1823. element draw:layer { draw-layer-attlist, svg-title?, svg-desc? }
  1824. draw-layer-attlist =
  1825. attribute draw:name { \string }
  1826. & attribute draw:protected { boolean }?
  1827. & attribute draw:display { "always" | "screen" | "printer" | "none" }?
  1828. draw-layer-set = element draw:layer-set { draw-layer* }
  1829. draw-line =
  1830. element draw:line {
  1831. draw-line-attlist,
  1832. common-draw-shape-with-text-and-styles-attlist,
  1833. common-draw-caption-id-attlist,
  1834. svg-title?,
  1835. svg-desc?,
  1836. office-event-listeners?,
  1837. draw-glue-point*,
  1838. draw-text
  1839. }
  1840. draw-line-attlist =
  1841. attribute svg:x1 { coordinate }
  1842. & attribute svg:y1 { coordinate }
  1843. & attribute svg:x2 { coordinate }
  1844. & attribute svg:y2 { coordinate }
  1845. draw-marker =
  1846. element draw:marker {
  1847. draw-marker-attlist,
  1848. common-draw-viewbox-attlist,
  1849. common-draw-path-data-attlist,
  1850. empty
  1851. }
  1852. draw-marker-attlist =
  1853. attribute draw:name { styleName }
  1854. & attribute draw:display-name { \string }?
  1855. draw-measure =
  1856. element draw:measure {
  1857. draw-measure-attlist,
  1858. common-draw-shape-with-text-and-styles-attlist,
  1859. common-draw-caption-id-attlist,
  1860. svg-title?,
  1861. svg-desc?,
  1862. office-event-listeners?,
  1863. draw-glue-point*,
  1864. draw-text
  1865. }
  1866. draw-measure-attlist =
  1867. attribute svg:x1 { coordinate }
  1868. & attribute svg:y1 { coordinate }
  1869. & attribute svg:x2 { coordinate }
  1870. & attribute svg:y2 { coordinate }
  1871. draw-object =
  1872. element draw:object {
  1873. draw-object-attlist,
  1874. (common-draw-data-attlist | office-document | math-math)
  1875. }
  1876. draw-object-attlist =
  1877. attribute draw:notify-on-update-of-ranges {
  1878. cellRangeAddressList | \string
  1879. }?
  1880. & xml-id?
  1881. draw-object-ole =
  1882. element draw:object-ole {
  1883. draw-object-ole-attlist,
  1884. (common-draw-data-attlist | office-binary-data)
  1885. }
  1886. draw-object-ole-attlist =
  1887. attribute draw:class-id { \string }?
  1888. & xml-id?
  1889. draw-opacity =
  1890. element draw:opacity {
  1891. common-draw-gradient-attlist, draw-opacity-attlist, empty
  1892. }
  1893. draw-opacity-attlist =
  1894. attribute draw:start { zeroToHundredPercent }?,
  1895. attribute draw:end { zeroToHundredPercent }?
  1896. draw-page =
  1897. element draw:page {
  1898. common-presentation-header-footer-attlist,
  1899. draw-page-attlist,
  1900. svg-title?,
  1901. svg-desc?,
  1902. draw-layer-set?,
  1903. office-forms?,
  1904. shape*,
  1905. (presentation-animations | animation-element)?,
  1906. presentation-notes?
  1907. }
  1908. draw-page-attlist =
  1909. attribute draw:name { \string }?
  1910. & attribute draw:style-name { styleNameRef }?
  1911. & attribute draw:master-page-name { styleNameRef }
  1912. & attribute presentation:presentation-page-layout-name {
  1913. styleNameRef
  1914. }?
  1915. & (xml-id,
  1916. attribute draw:id { NCName }?)?
  1917. & attribute draw:nav-order { IDREFS }?
  1918. draw-page-thumbnail =
  1919. element draw:page-thumbnail {
  1920. draw-page-thumbnail-attlist,
  1921. common-draw-position-attlist,
  1922. common-draw-size-attlist,
  1923. presentation-shape-attlist,
  1924. common-draw-shape-with-styles-attlist,
  1925. common-draw-caption-id-attlist,
  1926. svg-title?,
  1927. svg-desc?
  1928. }
  1929. draw-page-thumbnail-attlist =
  1930. attribute draw:page-number { positiveInteger }?
  1931. draw-param = element draw:param { draw-param-attlist, empty }
  1932. draw-param-attlist =
  1933. attribute draw:name { \string }?
  1934. & attribute draw:value { \string }?
  1935. draw-path =
  1936. element draw:path {
  1937. common-draw-path-data-attlist,
  1938. common-draw-position-attlist,
  1939. common-draw-size-attlist,
  1940. common-draw-viewbox-attlist,
  1941. common-draw-shape-with-text-and-styles-attlist,
  1942. common-draw-caption-id-attlist,
  1943. svg-title?,
  1944. svg-desc?,
  1945. office-event-listeners?,
  1946. draw-glue-point*,
  1947. draw-text
  1948. }
  1949. draw-plugin =
  1950. element draw:plugin {
  1951. draw-plugin-attlist, common-draw-data-attlist, draw-param*
  1952. }
  1953. draw-plugin-attlist = common-draw-mime-type-attlist & xml-id?
  1954. # https://issues.oasis-open.org/browse/OFFICE-3943
  1955. draw-polygon =
  1956. element draw:polygon {
  1957. common-draw-points-attlist,
  1958. common-draw-position-attlist,
  1959. common-draw-size-attlist,
  1960. common-draw-viewbox-attlist,
  1961. common-draw-shape-with-text-and-styles-attlist,
  1962. common-draw-caption-id-attlist,
  1963. svg-title?,
  1964. svg-desc?,
  1965. office-event-listeners?,
  1966. draw-glue-point*,
  1967. draw-text
  1968. }
  1969. draw-polyline =
  1970. element draw:polyline {
  1971. common-draw-points-attlist,
  1972. common-draw-position-attlist,
  1973. common-draw-size-attlist,
  1974. common-draw-viewbox-attlist,
  1975. common-draw-shape-with-text-and-styles-attlist,
  1976. common-draw-caption-id-attlist,
  1977. svg-title?,
  1978. svg-desc?,
  1979. office-event-listeners?,
  1980. draw-glue-point*,
  1981. draw-text
  1982. }
  1983. draw-rect =
  1984. element draw:rect {
  1985. draw-rect-attlist,
  1986. common-draw-position-attlist,
  1987. common-draw-size-attlist,
  1988. common-draw-shape-with-text-and-styles-attlist,
  1989. common-draw-caption-id-attlist,
  1990. svg-title?,
  1991. svg-desc?,
  1992. office-event-listeners?,
  1993. draw-glue-point*,
  1994. draw-text
  1995. }
  1996. draw-rect-attlist =
  1997. attribute draw:corner-radius { nonNegativeLength }?
  1998. | (attribute svg:rx { nonNegativeLength }?,
  1999. attribute svg:ry { nonNegativeLength }?)
  2000. draw-regular-polygon =
  2001. element draw:regular-polygon {
  2002. draw-regular-polygon-attlist,
  2003. common-draw-position-attlist,
  2004. common-draw-size-attlist,
  2005. common-draw-shape-with-text-and-styles-attlist,
  2006. common-draw-caption-id-attlist,
  2007. svg-title?,
  2008. svg-desc?,
  2009. office-event-listeners?,
  2010. draw-glue-point*,
  2011. draw-text
  2012. }
  2013. draw-regular-polygon-attlist =
  2014. (attribute draw:concave { "false" }
  2015. | (attribute draw:concave { "true" },
  2016. draw-regular-polygon-sharpness-attlist))
  2017. & attribute draw:corners { positiveInteger }
  2018. draw-regular-polygon-sharpness-attlist =
  2019. attribute draw:sharpness { percent }
  2020. draw-stroke-dash =
  2021. element draw:stroke-dash { draw-stroke-dash-attlist, empty }
  2022. draw-stroke-dash-attlist =
  2023. attribute draw:name { styleName }
  2024. & attribute draw:display-name { \string }?
  2025. & attribute draw:style { "rect" | "round" }?
  2026. & attribute draw:dots1 { integer }?
  2027. & attribute draw:dots1-length { length | percent }?
  2028. & attribute draw:dots2 { integer }?
  2029. & attribute draw:dots2-length { length | percent }?
  2030. & attribute draw:distance { length | percent }?
  2031. draw-text = (text-p | text-list)*
  2032. draw-text-box =
  2033. element draw:text-box { draw-text-box-attlist, text-content* }
  2034. draw-text-box-attlist =
  2035. attribute draw:chain-next-name { \string }?
  2036. & attribute draw:corner-radius { nonNegativeLength }?
  2037. & attribute fo:min-height { length | percent }?
  2038. & attribute fo:min-width { length | percent }?
  2039. & attribute fo:max-height { length | percent }?
  2040. & attribute fo:max-width { length | percent }?
  2041. & (xml-id,
  2042. attribute text:id { NCName }?)?
  2043. dropdown = attribute form:dropdown { boolean }?
  2044. duration = xsd:duration
  2045. extrusionOrigin =
  2046. xsd:double { minInclusive = "-0.5" maxInclusive = "0.5" }
  2047. fontFamilyGeneric =
  2048. "roman" | "swiss" | "modern" | "decorative" | "script" | "system"
  2049. fontPitch = "fixed" | "variable"
  2050. fontStyle = "normal" | "italic" | "oblique"
  2051. fontVariant = "normal" | "small-caps"
  2052. fontWeight =
  2053. "normal"
  2054. | "bold"
  2055. | "100"
  2056. | "200"
  2057. | "300"
  2058. | "400"
  2059. | "500"
  2060. | "600"
  2061. | "700"
  2062. | "800"
  2063. | "900"
  2064. for = attribute form:for { \string }?
  2065. form-button-attlist =
  2066. form-control-attlist
  2067. & button-type
  2068. & common-disabled-attlist
  2069. & label
  2070. & image-data
  2071. & common-printable-attlist
  2072. & common-tab-attlist
  2073. & target-frame
  2074. & target-location
  2075. & common-title-attlist
  2076. & common-value-attlist
  2077. & common-form-relative-image-position-attlist
  2078. & common-repeat
  2079. & common-delay-for-repeat
  2080. & attribute form:default-button { boolean }?
  2081. & attribute form:toggle { boolean }?
  2082. & attribute form:focus-on-click { boolean }?
  2083. & attribute form:xforms-submission { \string }?
  2084. form-checkbox-attlist =
  2085. form-control-attlist
  2086. & common-disabled-attlist
  2087. & label
  2088. & common-printable-attlist
  2089. & common-tab-attlist
  2090. & common-title-attlist
  2091. & common-value-attlist
  2092. & common-data-field-attlist
  2093. & common-form-visual-effect-attlist
  2094. & common-form-relative-image-position-attlist
  2095. & common-linked-cell
  2096. & attribute form:current-state { states }?
  2097. & attribute form:is-tristate { boolean }?
  2098. & attribute form:state { states }?
  2099. form-column =
  2100. element form:column { form-column-attlist, column-controls+ }
  2101. form-column-attlist =
  2102. common-form-control-attlist, label, text-style-name
  2103. form-combobox-attlist =
  2104. form-control-attlist
  2105. & common-current-value-attlist
  2106. & common-disabled-attlist
  2107. & dropdown
  2108. & common-maxlength-attlist
  2109. & common-printable-attlist
  2110. & common-readonly-attlist
  2111. & size
  2112. & common-tab-attlist
  2113. & common-title-attlist
  2114. & common-value-attlist
  2115. & common-convert-empty-attlist
  2116. & common-data-field-attlist
  2117. & list-source
  2118. & list-source-type
  2119. & common-linked-cell
  2120. & common-source-cell-range
  2121. & attribute form:auto-complete { boolean }?
  2122. form-connection-resource =
  2123. element form:connection-resource {
  2124. attribute xlink:href { anyIRI },
  2125. empty
  2126. }
  2127. form-control-attlist =
  2128. common-form-control-attlist,
  2129. common-control-id-attlist,
  2130. xforms-bind-attlist
  2131. form-date-attlist =
  2132. attribute form:value { date }?
  2133. & attribute form:current-value { date }?
  2134. & attribute form:min-value { date }?
  2135. & attribute form:max-value { date }?
  2136. form-file-attlist =
  2137. form-control-attlist,
  2138. common-current-value-attlist,
  2139. common-disabled-attlist,
  2140. common-maxlength-attlist,
  2141. common-printable-attlist,
  2142. common-readonly-attlist,
  2143. common-tab-attlist,
  2144. common-title-attlist,
  2145. common-value-attlist,
  2146. common-linked-cell
  2147. form-fixed-text-attlist =
  2148. form-control-attlist
  2149. & for
  2150. & common-disabled-attlist
  2151. & label
  2152. & common-printable-attlist
  2153. & common-title-attlist
  2154. & attribute form:multi-line { boolean }?
  2155. form-form =
  2156. element form:form {
  2157. common-form-control-attlist,
  2158. form-form-attlist,
  2159. form-properties?,
  2160. office-event-listeners?,
  2161. (controls | form-form)*,
  2162. form-connection-resource?
  2163. }
  2164. form-form-attlist =
  2165. (attribute xlink:type { "simple" },
  2166. attribute xlink:href { anyIRI },
  2167. attribute xlink:actuate { "onRequest" }?)?
  2168. & attribute office:target-frame { targetFrameName }?
  2169. & attribute form:method { "get" | "post" | \string }?
  2170. & attribute form:enctype { \string }?
  2171. & attribute form:allow-deletes { boolean }?
  2172. & attribute form:allow-inserts { boolean }?
  2173. & attribute form:allow-updates { boolean }?
  2174. & attribute form:apply-filter { boolean }?
  2175. & attribute form:command-type { "table" | "query" | "command" }?
  2176. & attribute form:command { \string }?
  2177. & attribute form:datasource { anyIRI | \string }?
  2178. & attribute form:master-fields { \string }?
  2179. & attribute form:detail-fields { \string }?
  2180. & attribute form:escape-processing { boolean }?
  2181. & attribute form:filter { \string }?
  2182. & attribute form:ignore-result { boolean }?
  2183. & attribute form:navigation-mode { navigation }?
  2184. & attribute form:order { \string }?
  2185. & attribute form:tab-cycle { tab-cycles }?
  2186. form-formatted-text-attlist =
  2187. form-control-attlist
  2188. & common-current-value-attlist
  2189. & common-disabled-attlist
  2190. & common-maxlength-attlist
  2191. & common-printable-attlist
  2192. & common-readonly-attlist
  2193. & common-tab-attlist
  2194. & common-title-attlist
  2195. & common-value-attlist
  2196. & common-convert-empty-attlist
  2197. & common-data-field-attlist
  2198. & common-linked-cell
  2199. & common-spin-button
  2200. & common-repeat
  2201. & common-delay-for-repeat
  2202. & attribute form:max-value { \string }?
  2203. & attribute form:min-value { \string }?
  2204. & attribute form:validation { boolean }?
  2205. form-frame-attlist =
  2206. form-control-attlist,
  2207. common-disabled-attlist,
  2208. for,
  2209. label,
  2210. common-printable-attlist,
  2211. common-title-attlist
  2212. form-generic-control-attlist = form-control-attlist
  2213. form-grid-attlist =
  2214. form-control-attlist,
  2215. common-disabled-attlist,
  2216. common-printable-attlist,
  2217. common-tab-attlist,
  2218. common-title-attlist
  2219. form-hidden-attlist = form-control-attlist, common-value-attlist
  2220. form-image-attlist =
  2221. form-control-attlist,
  2222. button-type,
  2223. common-disabled-attlist,
  2224. image-data,
  2225. common-printable-attlist,
  2226. common-tab-attlist,
  2227. target-frame,
  2228. target-location,
  2229. common-title-attlist,
  2230. common-value-attlist
  2231. form-image-frame-attlist =
  2232. form-control-attlist,
  2233. common-disabled-attlist,
  2234. image-data,
  2235. common-printable-attlist,
  2236. common-readonly-attlist,
  2237. common-title-attlist,
  2238. common-data-field-attlist
  2239. form-item = element form:item { form-item-attlist, text }
  2240. form-item-attlist = label
  2241. form-listbox-attlist =
  2242. form-control-attlist
  2243. & common-disabled-attlist
  2244. & dropdown
  2245. & common-printable-attlist
  2246. & size
  2247. & common-tab-attlist
  2248. & common-title-attlist
  2249. & bound-column
  2250. & common-data-field-attlist
  2251. & list-source
  2252. & list-source-type
  2253. & common-linked-cell
  2254. & list-linkage-type
  2255. & common-source-cell-range
  2256. & attribute form:multiple { boolean }?
  2257. & attribute form:xforms-list-source { \string }?
  2258. form-number-attlist =
  2259. attribute form:value { double }?
  2260. & attribute form:current-value { double }?
  2261. & attribute form:min-value { double }?
  2262. & attribute form:max-value { double }?
  2263. form-option = element form:option { form-option-attlist, text }
  2264. form-option-attlist =
  2265. current-selected, selected, label, common-value-attlist
  2266. form-password-attlist =
  2267. form-control-attlist
  2268. & common-disabled-attlist
  2269. & common-maxlength-attlist
  2270. & common-printable-attlist
  2271. & common-tab-attlist
  2272. & common-title-attlist
  2273. & common-value-attlist
  2274. & common-convert-empty-attlist
  2275. & common-linked-cell
  2276. & attribute form:echo-char { character }?
  2277. form-properties = element form:properties { form-property+ }
  2278. form-property =
  2279. element form:property {
  2280. form-property-name, form-property-value-and-type-attlist
  2281. }
  2282. | element form:list-property {
  2283. form-property-name, form-property-type-and-value-list
  2284. }
  2285. form-property-name = attribute form:property-name { \string }
  2286. form-property-type-and-value-list =
  2287. (attribute office:value-type { "float" },
  2288. element form:list-value {
  2289. attribute office:value { double }
  2290. }*)
  2291. | (attribute office:value-type { "percentage" },
  2292. element form:list-value {
  2293. attribute office:value { double }
  2294. }*)
  2295. | (attribute office:value-type { "currency" },
  2296. element form:list-value {
  2297. attribute office:value { double },
  2298. attribute office:currency { \string }?
  2299. }*)
  2300. | (attribute office:value-type { "date" },
  2301. element form:list-value {
  2302. attribute office:date-value { dateOrDateTime }
  2303. }*)
  2304. | (attribute office:value-type { "time" },
  2305. element form:list-value {
  2306. attribute office:time-value { duration }
  2307. }*)
  2308. | (attribute office:value-type { "boolean" },
  2309. element form:list-value {
  2310. attribute office:boolean-value { boolean }
  2311. }*)
  2312. | (attribute office:value-type { "string" },
  2313. element form:list-value {
  2314. attribute office:string-value { \string }
  2315. }*)
  2316. | attribute office:value-type { "void" }
  2317. form-property-value-and-type-attlist =
  2318. common-value-and-type-attlist
  2319. | attribute office:value-type { "void" }
  2320. form-radio-attlist =
  2321. form-control-attlist,
  2322. current-selected,
  2323. common-disabled-attlist,
  2324. label,
  2325. common-printable-attlist,
  2326. selected,
  2327. common-tab-attlist,
  2328. common-title-attlist,
  2329. common-value-attlist,
  2330. common-data-field-attlist,
  2331. common-form-visual-effect-attlist,
  2332. common-form-relative-image-position-attlist,
  2333. common-linked-cell
  2334. form-text-attlist =
  2335. form-control-attlist,
  2336. common-current-value-attlist,
  2337. common-disabled-attlist,
  2338. common-maxlength-attlist,
  2339. common-printable-attlist,
  2340. common-readonly-attlist,
  2341. common-tab-attlist,
  2342. common-title-attlist,
  2343. common-value-attlist,
  2344. common-convert-empty-attlist,
  2345. common-data-field-attlist,
  2346. common-linked-cell
  2347. form-textarea-attlist =
  2348. form-control-attlist,
  2349. common-current-value-attlist,
  2350. common-disabled-attlist,
  2351. common-maxlength-attlist,
  2352. common-printable-attlist,
  2353. common-readonly-attlist,
  2354. common-tab-attlist,
  2355. common-title-attlist,
  2356. common-value-attlist,
  2357. common-convert-empty-attlist,
  2358. common-data-field-attlist,
  2359. common-linked-cell
  2360. form-time-attlist =
  2361. attribute form:value { time }?
  2362. & attribute form:current-value { time }?
  2363. & attribute form:min-value { time }?
  2364. & attribute form:max-value { time }?
  2365. form-value-range-attlist =
  2366. form-control-attlist
  2367. & common-disabled-attlist
  2368. & common-printable-attlist
  2369. & common-tab-attlist
  2370. & common-title-attlist
  2371. & common-value-attlist
  2372. & common-linked-cell
  2373. & common-repeat
  2374. & common-delay-for-repeat
  2375. & attribute form:max-value { integer }?
  2376. & attribute form:min-value { integer }?
  2377. & attribute form:step-size { positiveInteger }?
  2378. & attribute form:page-step-size { positiveInteger }?
  2379. & attribute form:orientation { "horizontal" | "vertical" }?
  2380. gradient-style =
  2381. "linear" | "axial" | "radial" | "ellipsoid" | "square" | "rectangular"
  2382. header-footer-content =
  2383. (text-tracked-changes,
  2384. text-decls,
  2385. (text-h
  2386. | text-p
  2387. | text-list
  2388. | table-table
  2389. | text-section
  2390. | text-table-of-content
  2391. | text-illustration-index
  2392. | text-table-index
  2393. | text-object-index
  2394. | text-user-index
  2395. | text-alphabetical-index
  2396. | text-bibliography
  2397. | text-index-title
  2398. | change-marks)*)
  2399. | (style-region-left?, style-region-center?, style-region-right?)
  2400. heading-attrs =
  2401. attribute text:outline-level { positiveInteger }
  2402. & attribute text:restart-numbering { boolean }?
  2403. & attribute text:start-value { nonNegativeInteger }?
  2404. & attribute text:is-list-header { boolean }?
  2405. horiBackPos = "left" | "center" | "right"
  2406. horizontal-mirror =
  2407. "horizontal" | "horizontal-on-odd" | "horizontal-on-even"
  2408. image-data = attribute form:image-data { anyIRI }?
  2409. index-content-main = text-content | text-index-title
  2410. integer = xsd:integer
  2411. label = attribute form:label { \string }?
  2412. labelPositions =
  2413. "avoid-overlap"
  2414. | "center"
  2415. | "top"
  2416. | "top-right"
  2417. | "right"
  2418. | "bottom-right"
  2419. | "bottom"
  2420. | "bottom-left"
  2421. | "left"
  2422. | "top-left"
  2423. | "inside"
  2424. | "outside"
  2425. | "near-origin"
  2426. language = xsd:language
  2427. languageCode = xsd:token { pattern = "[A-Za-z]{1,8}" }
  2428. length =
  2429. xsd:string {
  2430. pattern =
  2431. "-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))"
  2432. }
  2433. lineMode = "continuous" | "skip-white-space"
  2434. lineStyle =
  2435. "none"
  2436. | "solid"
  2437. | "dotted"
  2438. | "dash"
  2439. | "long-dash"
  2440. | "dot-dash"
  2441. | "dot-dot-dash"
  2442. | "wave"
  2443. lineType = "none" | "single" | "double"
  2444. lineWidth =
  2445. "auto"
  2446. | "normal"
  2447. | "bold"
  2448. | "thin"
  2449. | "medium"
  2450. | "thick"
  2451. | positiveInteger
  2452. | percent
  2453. | positiveLength
  2454. list-linkage-type =
  2455. attribute form:list-linkage-type {
  2456. "selection" | "selection-indices"
  2457. }?
  2458. list-source = attribute form:list-source { \string }?
  2459. list-source-type =
  2460. attribute form:list-source-type {
  2461. "table"
  2462. | "query"
  2463. | "sql"
  2464. | "sql-pass-through"
  2465. | "value-list"
  2466. | "table-fields"
  2467. }?
  2468. math-math = element math:math { mathMarkup }
  2469. [
  2470. dc:description [
  2471. "To avoid inclusion of the complete MathML schema, anything is allowed within a math:math top-level element"
  2472. ]
  2473. ]
  2474. mathMarkup =
  2475. (attribute * { text }
  2476. | text
  2477. | element * { mathMarkup })*
  2478. meta-date-string = element meta:date-string { \string }
  2479. namespacedToken = xsd:QName { pattern = "[^:]+:[^:]+" }
  2480. navigation = "none" | "current" | "parent"
  2481. nonNegativeDecimal = xsd:decimal { minInclusive = "0.0" }
  2482. nonNegativeInteger = xsd:nonNegativeInteger
  2483. nonNegativeLength =
  2484. xsd:string {
  2485. pattern =
  2486. "([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))"
  2487. }
  2488. nonNegativePixelLength =
  2489. xsd:string { pattern = "([0-9]+(\.[0-9]*)?|\.[0-9]+)(px)" }
  2490. number-am-pm = element number:am-pm { empty }
  2491. number-and-text =
  2492. number-number,
  2493. (number-text-with-fillchar?)
  2494. # https://issues.oasis-open.org/browse/OFFICE-3765
  2495. number-boolean = element number:boolean { empty }
  2496. number-boolean-style =
  2497. element number:boolean-style {
  2498. common-data-style-attlist,
  2499. style-text-properties?,
  2500. number-text?,
  2501. (number-boolean, number-text?)?,
  2502. style-map*
  2503. }
  2504. number-currency-style =
  2505. element number:currency-style {
  2506. common-data-style-attlist,
  2507. common-auto-reorder-attlist,
  2508. style-text-properties?,
  2509. number-text-with-fillchar?,
  2510. # https://issues.oasis-open.org/browse/OFFICE-3765
  2511. ((number-and-text, currency-symbol-and-text?)
  2512. | (currency-symbol-and-text, number-and-text?))?,
  2513. style-map*
  2514. }
  2515. number-currency-symbol =
  2516. element number:currency-symbol {
  2517. number-currency-symbol-attlist, text
  2518. }
  2519. number-currency-symbol-attlist =
  2520. attribute number:language { languageCode }?,
  2521. attribute number:country { countryCode }?,
  2522. attribute number:script { scriptCode }?,
  2523. attribute number:rfc-language-tag { language }?
  2524. number-date-style =
  2525. element number:date-style {
  2526. common-data-style-attlist,
  2527. common-auto-reorder-attlist,
  2528. common-format-source-attlist,
  2529. style-text-properties?,
  2530. number-text-with-fillchar?,
  2531. # https://issues.oasis-open.org/browse/OFFICE-3765
  2532. (any-date,
  2533. (number-text-with-fillchar?)
  2534. # https://issues.oasis-open.org/browse/OFFICE-3765
  2535. )+,
  2536. style-map*
  2537. }
  2538. number-day =
  2539. element number:day {
  2540. number-day-attlist, common-calendar-attlist, empty
  2541. }
  2542. number-day-attlist = attribute number:style { "short" | "long" }?
  2543. number-day-of-week =
  2544. element number:day-of-week {
  2545. number-day-of-week-attlist, common-calendar-attlist, empty
  2546. }
  2547. number-day-of-week-attlist =
  2548. attribute number:style { "short" | "long" }?
  2549. number-embedded-text =
  2550. element number:embedded-text { number-embedded-text-attlist, text }
  2551. number-embedded-text-attlist = attribute number:position { integer }
  2552. number-era =
  2553. element number:era {
  2554. number-era-attlist, common-calendar-attlist, empty
  2555. }
  2556. number-era-attlist = attribute number:style { "short" | "long" }?
  2557. number-fill-character = element number:fill-character { text }
  2558. # https://issues.oasis-open.org/browse/OFFICE-3765
  2559. number-fraction =
  2560. element number:fraction {
  2561. number-fraction-attlist, common-number-attlist, empty
  2562. }
  2563. number-fraction-attlist =
  2564. attribute number:min-numerator-digits { integer }?
  2565. & attribute number:min-denominator-digits { integer }?
  2566. & attribute number:denominator-value { integer }?
  2567. & (attribute number:max-denominator-value { positiveInteger }?)
  2568. # https://issues.oasis-open.org/browse/OFFICE-3695 max-denominator-value
  2569. number-hours = element number:hours { number-hours-attlist, empty }
  2570. number-hours-attlist = attribute number:style { "short" | "long" }?
  2571. number-minutes =
  2572. element number:minutes { number-minutes-attlist, empty }
  2573. number-minutes-attlist = attribute number:style { "short" | "long" }?
  2574. number-month =
  2575. element number:month {
  2576. number-month-attlist, common-calendar-attlist, empty
  2577. }
  2578. number-month-attlist =
  2579. attribute number:textual { boolean }?
  2580. & attribute number:possessive-form { boolean }?
  2581. & attribute number:style { "short" | "long" }?
  2582. number-number =
  2583. element number:number {
  2584. number-number-attlist,
  2585. common-decimal-places-attlist,
  2586. common-number-attlist,
  2587. number-embedded-text*
  2588. }
  2589. number-number-attlist =
  2590. attribute number:decimal-replacement { \string }?
  2591. & attribute number:display-factor { double }?
  2592. number-number-style =
  2593. element number:number-style {
  2594. common-data-style-attlist,
  2595. style-text-properties?,
  2596. number-text-with-fillchar?,
  2597. # https://issues.oasis-open.org/browse/OFFICE-3765
  2598. (any-number, number-text-with-fillchar?)?,
  2599. # https://issues.oasis-open.org/browse/OFFICE-3765
  2600. style-map*
  2601. }
  2602. number-percentage-style =
  2603. element number:percentage-style {
  2604. common-data-style-attlist,
  2605. style-text-properties?,
  2606. number-text-with-fillchar?,
  2607. # https://issues.oasis-open.org/browse/OFFICE-3765
  2608. number-and-text?,
  2609. style-map*
  2610. }
  2611. number-quarter =
  2612. element number:quarter {
  2613. number-quarter-attlist, common-calendar-attlist, empty
  2614. }
  2615. number-quarter-attlist = attribute number:style { "short" | "long" }?
  2616. number-scientific-number =
  2617. element number:scientific-number {
  2618. number-scientific-number-attlist,
  2619. common-decimal-places-attlist,
  2620. common-number-attlist,
  2621. empty
  2622. }
  2623. number-scientific-number-attlist =
  2624. attribute number:min-exponent-digits { integer }?
  2625. & attribute number:exponent-interval { positiveInteger }?
  2626. & # https://issues.oasis-open.org/browse/OFFICE-1828 exponent-interval
  2627. attribute number:forced-exponent-sign { boolean }
  2628. # https://issues.oasis-open.org/browse/OFFICE-3860 added number:forced-exponent-sign
  2629. ?
  2630. number-seconds =
  2631. element number:seconds { number-seconds-attlist, empty }
  2632. number-seconds-attlist =
  2633. attribute number:style { "short" | "long" }?
  2634. & attribute number:decimal-places { integer }?
  2635. number-text = element number:text { text }
  2636. number-text-content = element number:text-content { empty }
  2637. number-text-style =
  2638. element number:text-style {
  2639. common-data-style-attlist,
  2640. style-text-properties?,
  2641. number-text-with-fillchar?,
  2642. # https://issues.oasis-open.org/browse/OFFICE-3765
  2643. (number-text-content,
  2644. (number-text-with-fillchar?)
  2645. # https://issues.oasis-open.org/browse/OFFICE-3765
  2646. )*,
  2647. style-map*
  2648. }
  2649. number-text-with-fillchar =
  2650. number-text?, (number-fill-character, number-text?)?
  2651. # https://issues.oasis-open.org/browse/OFFICE-3765
  2652. number-time-style =
  2653. element number:time-style {
  2654. number-time-style-attlist,
  2655. common-data-style-attlist,
  2656. common-format-source-attlist,
  2657. style-text-properties?,
  2658. number-text-with-fillchar?,
  2659. # https://issues.oasis-open.org/browse/OFFICE-3765
  2660. (any-time,
  2661. (number-text-with-fillchar?)
  2662. # https://issues.oasis-open.org/browse/OFFICE-3765
  2663. )+,
  2664. style-map*
  2665. }
  2666. number-time-style-attlist =
  2667. attribute number:truncate-on-overflow { boolean }?
  2668. number-week-of-year =
  2669. element number:week-of-year { common-calendar-attlist, empty }
  2670. number-year =
  2671. element number:year {
  2672. number-year-attlist, common-calendar-attlist, empty
  2673. }
  2674. number-year-attlist = attribute number:style { "short" | "long" }?
  2675. office-annotation =
  2676. element office:annotation {
  2677. office-annotation-attlist,
  2678. draw-caption-attlist,
  2679. common-draw-position-attlist,
  2680. common-draw-size-attlist,
  2681. common-draw-shape-with-text-and-styles-attlist,
  2682. dc-creator?,
  2683. dc-date?,
  2684. meta-date-string?,
  2685. element meta:creator-initials { text }?,
  2686. # https://issues.oasis-open.org/browse/OFFICE-3776
  2687. (text-p | text-list)*
  2688. }
  2689. office-annotation-attlist =
  2690. attribute office:display { boolean }?
  2691. & common-office-annotation-name-attlist?
  2692. office-annotation-end =
  2693. element office:annotation-end { office-annotation-end-attlist }
  2694. office-annotation-end-attlist = common-office-annotation-name-attlist
  2695. office-automatic-styles =
  2696. element office:automatic-styles { styles & style-page-layout* }?
  2697. office-binary-data = element office:binary-data { base64Binary }
  2698. office-body = element office:body { office-body-content }
  2699. office-body-content =
  2700. element office:text {
  2701. office-text-attlist,
  2702. office-text-content-prelude,
  2703. office-text-content-main,
  2704. office-text-content-epilogue
  2705. }
  2706. | element office:drawing {
  2707. office-drawing-attlist,
  2708. office-drawing-content-prelude,
  2709. office-drawing-content-main,
  2710. office-drawing-content-epilogue
  2711. }
  2712. | element office:presentation {
  2713. office-presentation-attlist,
  2714. office-presentation-content-prelude,
  2715. office-presentation-content-main,
  2716. office-presentation-content-epilogue
  2717. }
  2718. | element office:spreadsheet {
  2719. office-spreadsheet-attlist,
  2720. office-spreadsheet-content-prelude,
  2721. office-spreadsheet-content-main,
  2722. office-spreadsheet-content-epilogue
  2723. }
  2724. | element office:chart {
  2725. office-chart-attlist,
  2726. office-chart-content-prelude,
  2727. office-chart-content-main,
  2728. office-chart-content-epilogue
  2729. }
  2730. | element office:image {
  2731. office-image-attlist,
  2732. office-image-content-prelude,
  2733. office-image-content-main,
  2734. office-image-content-epilogue
  2735. }
  2736. | office-database
  2737. office-change-info =
  2738. element office:change-info { dc-creator, dc-date, text-p* }
  2739. office-chart-attlist = empty
  2740. office-chart-content-epilogue = table-functions
  2741. office-chart-content-main = chart-chart
  2742. office-chart-content-prelude = text-decls, table-decls
  2743. office-database =
  2744. element office:database {
  2745. db-data-source,
  2746. db-forms?,
  2747. db-reports?,
  2748. db-queries?,
  2749. db-table-presentations?,
  2750. db-schema-definition?
  2751. }
  2752. office-dde-source =
  2753. element office:dde-source {
  2754. office-dde-source-attlist, common-dde-connection-decl-attlist
  2755. }
  2756. office-dde-source-attlist =
  2757. attribute office:name { \string }?
  2758. & attribute office:conversion-mode {
  2759. "into-default-style-data-style"
  2760. | "into-english-number"
  2761. | "keep-text"
  2762. }?
  2763. office-document =
  2764. element office:document {
  2765. office-document-attrs,
  2766. office-document-common-attrs,
  2767. office-meta,
  2768. office-settings,
  2769. office-scripts,
  2770. office-font-face-decls,
  2771. office-styles,
  2772. office-automatic-styles,
  2773. office-master-styles,
  2774. office-body
  2775. }
  2776. office-document-attrs = attribute office:mimetype { \string }
  2777. office-document-common-attrs =
  2778. attribute office:version { "1.3" }
  2779. & attribute grddl:transformation {
  2780. list { anyIRI* }
  2781. }?
  2782. office-document-content =
  2783. element office:document-content {
  2784. office-document-common-attrs,
  2785. office-scripts,
  2786. office-font-face-decls,
  2787. office-automatic-styles,
  2788. office-body
  2789. }
  2790. office-document-meta =
  2791. element office:document-meta {
  2792. office-document-common-attrs, office-meta
  2793. }
  2794. office-document-settings =
  2795. element office:document-settings {
  2796. office-document-common-attrs, office-settings
  2797. }
  2798. office-document-styles =
  2799. element office:document-styles {
  2800. office-document-common-attrs,
  2801. office-font-face-decls,
  2802. office-styles,
  2803. office-automatic-styles,
  2804. office-master-styles
  2805. }
  2806. office-drawing-attlist = empty
  2807. office-drawing-content-epilogue = table-functions
  2808. office-drawing-content-main = draw-page*
  2809. office-drawing-content-prelude = text-decls, table-decls
  2810. office-event-listeners =
  2811. element office:event-listeners {
  2812. (script-event-listener | presentation-event-listener)*
  2813. }
  2814. office-font-face-decls =
  2815. element office:font-face-decls { style-font-face* }?
  2816. office-forms =
  2817. element office:forms {
  2818. office-forms-attlist, (form-form | xforms-model)*
  2819. }?
  2820. office-forms-attlist =
  2821. attribute form:automatic-focus { boolean }?
  2822. & attribute form:apply-design-mode { boolean }?
  2823. office-image-attlist = empty
  2824. office-image-content-epilogue = empty
  2825. office-image-content-main = draw-frame
  2826. office-image-content-prelude = empty
  2827. office-master-styles =
  2828. element office:master-styles {
  2829. style-master-page* & style-handout-master? & draw-layer-set?
  2830. }?
  2831. office-meta = element office:meta { office-meta-content-strict }?
  2832. office-meta-content-strict = office-meta-data*
  2833. office-meta-data =
  2834. element meta:generator { \string }
  2835. | element dc:title { \string }
  2836. | element dc:description { \string }
  2837. | element dc:subject { \string }
  2838. | element meta:keyword { \string }
  2839. | element meta:initial-creator { \string }
  2840. | dc-creator
  2841. | element meta:printed-by { \string }
  2842. | element meta:creation-date { dateTime }
  2843. | dc-date
  2844. | element meta:print-date { dateTime }
  2845. | element meta:template {
  2846. attribute xlink:type { "simple" },
  2847. attribute xlink:href { anyIRI },
  2848. attribute xlink:actuate { "onRequest" }?,
  2849. attribute xlink:title { \string }?,
  2850. attribute meta:date { dateTime }?
  2851. }
  2852. | element meta:auto-reload {
  2853. (attribute xlink:type { "simple" },
  2854. attribute xlink:href { anyIRI },
  2855. attribute xlink:show { "replace" }?,
  2856. attribute xlink:actuate { "onLoad" }?)?,
  2857. attribute meta:delay { duration }?
  2858. }
  2859. | element meta:hyperlink-behaviour {
  2860. attribute office:target-frame-name { targetFrameName }?,
  2861. attribute xlink:show { "new" | "replace" }?
  2862. }
  2863. | element dc:language { language }
  2864. | element meta:editing-cycles { nonNegativeInteger }
  2865. | element meta:editing-duration { duration }
  2866. | element meta:document-statistic {
  2867. attribute meta:page-count { nonNegativeInteger }?,
  2868. attribute meta:table-count { nonNegativeInteger }?,
  2869. attribute meta:draw-count { nonNegativeInteger }?,
  2870. attribute meta:image-count { nonNegativeInteger }?,
  2871. attribute meta:ole-object-count { nonNegativeInteger }?,
  2872. attribute meta:object-count { nonNegativeInteger }?,
  2873. attribute meta:paragraph-count { nonNegativeInteger }?,
  2874. attribute meta:word-count { nonNegativeInteger }?,
  2875. attribute meta:character-count { nonNegativeInteger }?,
  2876. attribute meta:frame-count { nonNegativeInteger }?,
  2877. attribute meta:sentence-count { nonNegativeInteger }?,
  2878. attribute meta:syllable-count { nonNegativeInteger }?,
  2879. attribute meta:non-whitespace-character-count {
  2880. nonNegativeInteger
  2881. }?,
  2882. attribute meta:row-count { nonNegativeInteger }?,
  2883. attribute meta:cell-count { nonNegativeInteger }?
  2884. }
  2885. | element meta:user-defined {
  2886. attribute meta:name { \string },
  2887. ((attribute meta:value-type { "float" },
  2888. double)
  2889. | (attribute meta:value-type { "date" },
  2890. dateOrDateTime)
  2891. | (attribute meta:value-type { "time" },
  2892. duration)
  2893. | (attribute meta:value-type { "boolean" },
  2894. boolean)
  2895. | (attribute meta:value-type { "string" },
  2896. \string)
  2897. | text)
  2898. }
  2899. office-presentation-attlist = empty
  2900. office-presentation-content-epilogue =
  2901. presentation-settings, table-functions
  2902. office-presentation-content-main = draw-page*
  2903. office-presentation-content-prelude =
  2904. text-decls, table-decls, presentation-decls
  2905. # removed from text as well
  2906. # <rng:define name="office-process-content">
  2907. # <rng:optional>
  2908. # <rng:attribute name="office:process-content">
  2909. # <rng:ref name="boolean"/>
  2910. # </rng:attribute>
  2911. # </rng:optional>
  2912. # </rng:define>
  2913. office-script =
  2914. element office:script {
  2915. office-script-attlist,
  2916. mixed { anyElements }
  2917. }
  2918. office-script-attlist = attribute script:language { \string }
  2919. office-scripts =
  2920. element office:scripts { office-script*, office-event-listeners? }?
  2921. office-settings = element office:settings { config-config-item-set+ }?
  2922. office-spreadsheet-attlist =
  2923. attribute table:structure-protected { boolean }?,
  2924. attribute table:protection-key { \string }?,
  2925. attribute table:protection-key-digest-algorithm { anyIRI }?
  2926. office-spreadsheet-content-epilogue = table-functions
  2927. office-spreadsheet-content-main = table-table*
  2928. office-spreadsheet-content-prelude =
  2929. table-tracked-changes?, text-decls, table-decls
  2930. office-styles =
  2931. element office:styles {
  2932. styles
  2933. & style-default-style*
  2934. & style-default-page-layout?
  2935. & text-outline-style?
  2936. & text-notes-configuration*
  2937. & text-bibliography-configuration?
  2938. & text-linenumbering-configuration?
  2939. & draw-gradient*
  2940. & svg-linearGradient*
  2941. & svg-radialGradient*
  2942. & draw-hatch*
  2943. & draw-fill-image*
  2944. & draw-marker*
  2945. & draw-stroke-dash*
  2946. & draw-opacity*
  2947. & style-presentation-page-layout*
  2948. & table-table-template*
  2949. }?
  2950. office-text-attlist =
  2951. attribute text:global { boolean }?
  2952. & attribute text:use-soft-page-breaks { boolean }?
  2953. office-text-content-epilogue = table-functions
  2954. office-text-content-main =
  2955. text-content*
  2956. | (text-page-sequence, (shape)*)
  2957. office-text-content-prelude =
  2958. office-forms, text-tracked-changes, text-decls, table-decls
  2959. paragraph-attrs =
  2960. attribute text:style-name { styleNameRef }?
  2961. & attribute text:class-names { styleNameRefs }?
  2962. & attribute text:cond-style-name { styleNameRef }?
  2963. & (xml-id,
  2964. attribute text:id { NCName }?)?
  2965. & common-in-content-meta-attlist?
  2966. paragraph-content =
  2967. text
  2968. | element text:s {
  2969. attribute text:c { nonNegativeInteger }?
  2970. }
  2971. | element text:tab { text-tab-attr }
  2972. | element text:line-break { empty }
  2973. | text-soft-page-break
  2974. | element text:span {
  2975. attribute text:style-name { styleNameRef }?,
  2976. attribute text:class-names { styleNameRefs }?,
  2977. paragraph-content-or-hyperlink*
  2978. }
  2979. | element text:meta {
  2980. text-meta-attlist, paragraph-content-or-hyperlink*
  2981. }
  2982. | (text-bookmark | text-bookmark-start | text-bookmark-end)
  2983. | element text:reference-mark {
  2984. attribute text:name { \string }
  2985. }
  2986. | (element text:reference-mark-start {
  2987. attribute text:name { \string }
  2988. }
  2989. | element text:reference-mark-end {
  2990. attribute text:name { \string }
  2991. })
  2992. | element text:note {
  2993. text-note-class,
  2994. attribute text:id { \string }?,
  2995. element text:note-citation {
  2996. attribute text:label { \string }?,
  2997. text
  2998. },
  2999. element text:note-body { text-content* }
  3000. }
  3001. | element text:ruby {
  3002. attribute text:style-name { styleNameRef }?,
  3003. element text:ruby-base { paragraph-content-or-hyperlink* },
  3004. element text:ruby-text {
  3005. attribute text:style-name { styleNameRef }?,
  3006. text
  3007. }
  3008. }
  3009. | (office-annotation | office-annotation-end)
  3010. | change-marks
  3011. | shape
  3012. | element text:date { text-date-attlist, text }
  3013. | element text:time { text-time-attlist, text }
  3014. | element text:page-number { text-page-number-attlist, text }
  3015. | element text:page-continuation {
  3016. text-page-continuation-attlist, text
  3017. }
  3018. | element text:sender-firstname { common-field-fixed-attlist, text }
  3019. | element text:sender-lastname { common-field-fixed-attlist, text }
  3020. | element text:sender-initials { common-field-fixed-attlist, text }
  3021. | element text:sender-title { common-field-fixed-attlist, text }
  3022. | element text:sender-position { common-field-fixed-attlist, text }
  3023. | element text:sender-email { common-field-fixed-attlist, text }
  3024. | element text:sender-phone-private {
  3025. common-field-fixed-attlist, text
  3026. }
  3027. | element text:sender-fax { common-field-fixed-attlist, text }
  3028. | element text:sender-company { common-field-fixed-attlist, text }
  3029. | element text:sender-phone-work { common-field-fixed-attlist, text }
  3030. | element text:sender-street { common-field-fixed-attlist, text }
  3031. | element text:sender-city { common-field-fixed-attlist, text }
  3032. | element text:sender-postal-code { common-field-fixed-attlist, text }
  3033. | element text:sender-country { common-field-fixed-attlist, text }
  3034. | element text:sender-state-or-province {
  3035. common-field-fixed-attlist, text
  3036. }
  3037. | element text:author-name { common-field-fixed-attlist, text }
  3038. | element text:author-initials { common-field-fixed-attlist, text }
  3039. | element text:chapter { text-chapter-attlist, text }
  3040. | element text:file-name { text-file-name-attlist, text }
  3041. | element text:template-name { text-template-name-attlist, text }
  3042. | element text:sheet-name { text }
  3043. | element text:variable-set {
  3044. (common-field-name-attlist
  3045. & common-field-formula-attlist
  3046. & common-value-and-type-attlist
  3047. & common-field-display-value-none-attlist
  3048. & common-field-data-style-name-attlist),
  3049. text
  3050. }
  3051. | element text:variable-get {
  3052. (common-field-name-attlist
  3053. & common-field-display-value-formula-attlist
  3054. & common-field-data-style-name-attlist),
  3055. text
  3056. }
  3057. | element text:variable-input {
  3058. (common-field-name-attlist
  3059. & common-field-description-attlist
  3060. & common-value-type-attlist
  3061. & common-field-display-value-none-attlist
  3062. & common-field-data-style-name-attlist),
  3063. text
  3064. }
  3065. | element text:user-field-get {
  3066. (common-field-name-attlist
  3067. & common-field-display-value-formula-none-attlist
  3068. & common-field-data-style-name-attlist),
  3069. text
  3070. }
  3071. | element text:user-field-input {
  3072. (common-field-name-attlist
  3073. & common-field-description-attlist
  3074. & common-field-data-style-name-attlist),
  3075. text
  3076. }
  3077. | element text:sequence {
  3078. (common-field-name-attlist
  3079. & common-field-formula-attlist
  3080. & common-field-num-format-attlist
  3081. & text-sequence-ref-name),
  3082. text
  3083. }
  3084. | element text:expression {
  3085. (common-field-formula-attlist
  3086. & common-value-and-type-attlist?
  3087. & common-field-display-value-formula-attlist
  3088. & common-field-data-style-name-attlist),
  3089. text
  3090. }
  3091. | element text:text-input { common-field-description-attlist, text }
  3092. | text-drop-down
  3093. | # OFFICE-3881
  3094. element text:initial-creator { common-field-fixed-attlist, text }
  3095. | element text:creation-date {
  3096. (common-field-fixed-attlist
  3097. & common-field-data-style-name-attlist
  3098. & attribute text:date-value { dateOrDateTime }?),
  3099. text
  3100. }
  3101. | element text:creation-time {
  3102. (common-field-fixed-attlist
  3103. & common-field-data-style-name-attlist
  3104. & attribute text:time-value { timeOrDateTime }?),
  3105. text
  3106. }
  3107. | element text:description { common-field-fixed-attlist, text }
  3108. | element text:user-defined {
  3109. (common-field-fixed-attlist
  3110. & attribute text:name { \string }
  3111. & common-field-data-style-name-attlist
  3112. & attribute office:value { double }?
  3113. & attribute office:date-value { dateOrDateTime }?
  3114. & attribute office:time-value { duration }?
  3115. & attribute office:boolean-value { boolean }?
  3116. & attribute office:string-value { \string }?),
  3117. text
  3118. }
  3119. | element text:print-time {
  3120. (common-field-fixed-attlist
  3121. & common-field-data-style-name-attlist
  3122. & attribute text:time-value { time }?),
  3123. text
  3124. }
  3125. | element text:print-date {
  3126. (common-field-fixed-attlist
  3127. & common-field-data-style-name-attlist
  3128. & attribute text:date-value { date }?),
  3129. text
  3130. }
  3131. | element text:printed-by { common-field-fixed-attlist, text }
  3132. | element text:title { common-field-fixed-attlist, text }
  3133. | element text:subject { common-field-fixed-attlist, text }
  3134. | element text:keywords { common-field-fixed-attlist, text }
  3135. | element text:editing-cycles { common-field-fixed-attlist, text }
  3136. | element text:editing-duration {
  3137. (common-field-fixed-attlist
  3138. & common-field-data-style-name-attlist
  3139. & attribute text:duration { duration }?),
  3140. text
  3141. }
  3142. | element text:modification-time {
  3143. (common-field-fixed-attlist
  3144. & common-field-data-style-name-attlist
  3145. & attribute text:time-value { time }?),
  3146. text
  3147. }
  3148. | element text:modification-date {
  3149. (common-field-fixed-attlist
  3150. & common-field-data-style-name-attlist
  3151. & attribute text:date-value { date }?),
  3152. text
  3153. }
  3154. | element text:creator { common-field-fixed-attlist, text }
  3155. | element text:page-count
  3156. | text:paragraph-count
  3157. | text:word-count
  3158. | text:character-count
  3159. | text:table-count
  3160. | text:image-count
  3161. | text:object-count {
  3162. common-field-num-format-attlist, text
  3163. }
  3164. | element text:database-display {
  3165. text-database-display-attlist, text
  3166. }
  3167. | element text:database-next { text-database-next-attlist }
  3168. | element text:database-row-select {
  3169. text-database-row-select-attlist
  3170. }
  3171. | element text:database-row-number {
  3172. (common-field-database-table
  3173. & common-field-num-format-attlist
  3174. & attribute text:value { nonNegativeInteger }?),
  3175. text
  3176. }
  3177. | element text:database-name { common-field-database-table, text }
  3178. | element text:page-variable-set {
  3179. text-set-page-variable-attlist, text
  3180. }
  3181. | element text:page-variable-get {
  3182. text-get-page-variable-attlist, text
  3183. }
  3184. | element text:placeholder { text-placeholder-attlist, text }
  3185. | element text:conditional-text {
  3186. text-conditional-text-attlist, text
  3187. }
  3188. | element text:hidden-text { text-hidden-text-attlist, text }
  3189. | element text:reference-ref | text:bookmark-ref {
  3190. text-common-ref-content & text-bookmark-ref-content
  3191. }
  3192. | element text:note-ref {
  3193. text-common-ref-content & text-note-ref-content
  3194. }
  3195. | element text:sequence-ref {
  3196. text-common-ref-content & text-sequence-ref-content
  3197. }
  3198. | element text:script {
  3199. ((attribute xlink:type { "simple" },
  3200. attribute xlink:href { anyIRI })
  3201. | text)
  3202. & attribute script:language { \string }?
  3203. }
  3204. | element text:execute-macro {
  3205. attribute text:name { \string }?,
  3206. office-event-listeners?,
  3207. text
  3208. }
  3209. | element text:hidden-paragraph {
  3210. text-hidden-paragraph-attlist, text
  3211. }
  3212. | element text:dde-connection {
  3213. attribute text:connection-name { \string },
  3214. text
  3215. }
  3216. | element text:measure {
  3217. attribute text:kind { "value" | "unit" | "gap" },
  3218. text
  3219. }
  3220. | element text:table-formula {
  3221. (common-field-formula-attlist
  3222. & common-field-display-value-formula-attlist
  3223. & common-field-data-style-name-attlist),
  3224. text
  3225. }
  3226. | element text:meta-field {
  3227. text-meta-field-attlist, paragraph-content-or-hyperlink*
  3228. }
  3229. | element text:toc-mark-start { text-toc-mark-start-attrs }
  3230. | element text:toc-mark-end { text-id }
  3231. | element text:toc-mark {
  3232. attribute text:string-value { \string },
  3233. text-outline-level
  3234. }
  3235. | element text:user-index-mark-start {
  3236. text-id, text-outline-level, text-index-name
  3237. }
  3238. | element text:user-index-mark-end { text-id }
  3239. | element text:user-index-mark {
  3240. attribute text:string-value { \string },
  3241. text-outline-level,
  3242. text-index-name
  3243. }
  3244. | element text:alphabetical-index-mark-start {
  3245. text-id, text-alphabetical-index-mark-attrs
  3246. }
  3247. | element text:alphabetical-index-mark-end { text-id }
  3248. | element text:alphabetical-index-mark {
  3249. attribute text:string-value { \string },
  3250. text-alphabetical-index-mark-attrs
  3251. }
  3252. | element text:bibliography-mark {
  3253. attribute text:bibliography-type { text-bibliography-types },
  3254. attribute text:identifier
  3255. | text:address
  3256. | text:annote
  3257. | text:author
  3258. | text:booktitle
  3259. | text:chapter
  3260. | text:edition
  3261. | text:editor
  3262. | text:howpublished
  3263. | text:institution
  3264. | text:journal
  3265. | text:month
  3266. | text:note
  3267. | text:number
  3268. | text:organizations
  3269. | text:pages
  3270. | text:publisher
  3271. | text:school
  3272. | text:series
  3273. | text:title
  3274. | text:report-type
  3275. | text:volume
  3276. | text:year
  3277. | text:url
  3278. | text:custom1
  3279. | text:custom2
  3280. | text:custom3
  3281. | text:custom4
  3282. | text:custom5
  3283. | text:isbn
  3284. | text:issn { \string }*,
  3285. text
  3286. }
  3287. | element presentation:header { empty }
  3288. | element presentation:footer { empty }
  3289. | element presentation:date-time { empty }
  3290. paragraph-content-or-hyperlink = paragraph-content | text-a
  3291. pathData = xsd:string
  3292. percent = xsd:string { pattern = "-?([0-9]+(\.[0-9]*)?|\.[0-9]+)%" }
  3293. point3D =
  3294. xsd:string {
  3295. pattern =
  3296. "\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))){2}[ ]*\)"
  3297. }
  3298. points =
  3299. xsd:string { pattern = "-?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)*" }
  3300. positiveInteger = xsd:positiveInteger
  3301. positiveLength =
  3302. xsd:string {
  3303. pattern =
  3304. "([0-9]*[1-9][0-9]*(\.[0-9]*)?|0+\.[0-9]*[1-9][0-9]*|\.[0-9]*[1-9][0-9]*)((cm)|(mm)|(in)|(pt)|(pc)|(px))"
  3305. }
  3306. presentation-animation-elements =
  3307. presentation-show-shape
  3308. | presentation-show-text
  3309. | presentation-hide-shape
  3310. | presentation-hide-text
  3311. | presentation-dim
  3312. | presentation-play
  3313. presentation-animation-group =
  3314. element presentation:animation-group {
  3315. presentation-animation-elements*
  3316. }
  3317. presentation-animations =
  3318. element presentation:animations {
  3319. (presentation-animation-elements | presentation-animation-group)*
  3320. }
  3321. presentation-classes =
  3322. "title"
  3323. | "outline"
  3324. | "subtitle"
  3325. | "text"
  3326. | "graphic"
  3327. | "object"
  3328. | "chart"
  3329. | "table"
  3330. | "orgchart"
  3331. | "page"
  3332. | "notes"
  3333. | "handout"
  3334. | "header"
  3335. | "footer"
  3336. | "date-time"
  3337. | "page-number"
  3338. presentation-date-time-decl-attlist =
  3339. attribute presentation:name { \string }
  3340. & attribute presentation:source { "fixed" | "current-date" }
  3341. & attribute style:data-style-name { styleNameRef }?
  3342. presentation-decl =
  3343. element presentation:header-decl {
  3344. presentation-header-decl-attlist, text
  3345. }
  3346. | element presentation:footer-decl {
  3347. presentation-footer-decl-attlist, text
  3348. }
  3349. | element presentation:date-time-decl {
  3350. presentation-date-time-decl-attlist, text
  3351. }
  3352. presentation-decls = presentation-decl*
  3353. presentation-dim =
  3354. element presentation:dim {
  3355. presentation-dim-attlist, presentation-sound?
  3356. }
  3357. presentation-dim-attlist =
  3358. attribute draw:shape-id { IDREF }
  3359. & attribute draw:color { color }
  3360. presentation-event-listener =
  3361. element presentation:event-listener {
  3362. presentation-event-listener-attlist, presentation-sound?
  3363. }
  3364. presentation-event-listener-attlist =
  3365. attribute script:event-name { \string }
  3366. & attribute presentation:action {
  3367. "none"
  3368. | "previous-page"
  3369. | "next-page"
  3370. | "first-page"
  3371. | "last-page"
  3372. | "hide"
  3373. | "stop"
  3374. | "execute"
  3375. | "show"
  3376. | "verb"
  3377. | "fade-out"
  3378. | "sound"
  3379. | "last-visited-page"
  3380. }
  3381. & attribute presentation:effect { presentationEffects }?
  3382. & attribute presentation:direction { presentationEffectDirections }?
  3383. & attribute presentation:speed { presentationSpeeds }?
  3384. & attribute presentation:start-scale { percent }?
  3385. & (attribute xlink:type { "simple" },
  3386. attribute xlink:href { anyIRI },
  3387. attribute xlink:show { "embed" }?,
  3388. attribute xlink:actuate { "onRequest" }?)?
  3389. & attribute presentation:verb { nonNegativeInteger }?
  3390. presentation-footer-decl-attlist =
  3391. attribute presentation:name { \string }
  3392. presentation-header-decl-attlist =
  3393. attribute presentation:name { \string }
  3394. presentation-hide-shape =
  3395. element presentation:hide-shape {
  3396. common-presentation-effect-attlist, presentation-sound?
  3397. }
  3398. presentation-hide-text =
  3399. element presentation:hide-text {
  3400. common-presentation-effect-attlist, presentation-sound?
  3401. }
  3402. presentation-notes =
  3403. element presentation:notes {
  3404. common-presentation-header-footer-attlist,
  3405. presentation-notes-attlist,
  3406. office-forms,
  3407. shape*
  3408. }
  3409. presentation-notes-attlist =
  3410. attribute style:page-layout-name { styleNameRef }?
  3411. & attribute draw:style-name { styleNameRef }?
  3412. presentation-placeholder =
  3413. element presentation:placeholder {
  3414. attribute presentation:object { presentation-classes },
  3415. attribute svg:x { coordinate | percent },
  3416. attribute svg:y { coordinate | percent },
  3417. attribute svg:width { length | percent },
  3418. attribute svg:height { length | percent },
  3419. empty
  3420. }
  3421. presentation-play =
  3422. element presentation:play { presentation-play-attlist, empty }
  3423. presentation-play-attlist =
  3424. attribute draw:shape-id { IDREF },
  3425. attribute presentation:speed { presentationSpeeds }?
  3426. presentation-settings =
  3427. element presentation:settings {
  3428. presentation-settings-attlist, presentation-show*
  3429. }?
  3430. presentation-settings-attlist =
  3431. attribute presentation:start-page { \string }?
  3432. & attribute presentation:show { \string }?
  3433. & attribute presentation:full-screen { boolean }?
  3434. & attribute presentation:endless { boolean }?
  3435. & attribute presentation:pause { duration }?
  3436. & attribute presentation:show-logo { boolean }?
  3437. & attribute presentation:force-manual { boolean }?
  3438. & attribute presentation:mouse-visible { boolean }?
  3439. & attribute presentation:mouse-as-pen { boolean }?
  3440. & attribute presentation:start-with-navigator { boolean }?
  3441. & attribute presentation:animations { "enabled" | "disabled" }?
  3442. & attribute presentation:transition-on-click {
  3443. "enabled" | "disabled"
  3444. }?
  3445. & attribute presentation:stay-on-top { boolean }?
  3446. & attribute presentation:show-end-of-presentation-slide { boolean }?
  3447. presentation-shape-attlist =
  3448. attribute presentation:class { presentation-classes }?
  3449. & attribute presentation:placeholder { boolean }?
  3450. & attribute presentation:user-transformed { boolean }?
  3451. presentation-show =
  3452. element presentation:show { presentation-show-attlist, empty }
  3453. presentation-show-attlist =
  3454. attribute presentation:name { \string }
  3455. & attribute presentation:pages { \string }
  3456. presentation-show-shape =
  3457. element presentation:show-shape {
  3458. common-presentation-effect-attlist, presentation-sound?
  3459. }
  3460. presentation-show-text =
  3461. element presentation:show-text {
  3462. common-presentation-effect-attlist, presentation-sound?
  3463. }
  3464. presentation-sound =
  3465. element presentation:sound {
  3466. presentation-sound-attlist,
  3467. attribute xlink:type { "simple" },
  3468. attribute xlink:href { anyIRI },
  3469. attribute xlink:actuate { "onRequest" }?,
  3470. attribute xlink:show { "new" | "replace" }?,
  3471. empty
  3472. }
  3473. presentation-sound-attlist =
  3474. attribute presentation:play-full { boolean }?
  3475. & xml-id?
  3476. presentationEffectDirections =
  3477. "none"
  3478. | "from-left"
  3479. | "from-top"
  3480. | "from-right"
  3481. | "from-bottom"
  3482. | "from-center"
  3483. | "from-upper-left"
  3484. | "from-upper-right"
  3485. | "from-lower-left"
  3486. | "from-lower-right"
  3487. | "to-left"
  3488. | "to-top"
  3489. | "to-right"
  3490. | "to-bottom"
  3491. | "to-upper-left"
  3492. | "to-upper-right"
  3493. | "to-lower-right"
  3494. | "to-lower-left"
  3495. | "path"
  3496. | "spiral-inward-left"
  3497. | "spiral-inward-right"
  3498. | "spiral-outward-left"
  3499. | "spiral-outward-right"
  3500. | "vertical"
  3501. | "horizontal"
  3502. | "to-center"
  3503. | "clockwise"
  3504. | "counter-clockwise"
  3505. presentationEffects =
  3506. "none"
  3507. | "fade"
  3508. | "move"
  3509. | "stripes"
  3510. | "open"
  3511. | "close"
  3512. | "dissolve"
  3513. | "wavyline"
  3514. | "random"
  3515. | "lines"
  3516. | "laser"
  3517. | "appear"
  3518. | "hide"
  3519. | "move-short"
  3520. | "checkerboard"
  3521. | "rotate"
  3522. | "stretch"
  3523. presentationSpeeds = "slow" | "medium" | "fast"
  3524. region-content = text-p*
  3525. relativeLength = xsd:string { pattern = "[0-9]+\*" }
  3526. rowOrCol = "row" | "column"
  3527. script-event-listener =
  3528. element script:event-listener { script-event-listener-attlist, empty }
  3529. script-event-listener-attlist =
  3530. attribute script:event-name { \string }
  3531. & attribute script:language { \string }
  3532. & (attribute script:macro-name { \string }
  3533. | (attribute xlink:type { "simple" },
  3534. attribute xlink:href { anyIRI },
  3535. attribute xlink:actuate { "onRequest" }?))
  3536. scriptCode = xsd:token { pattern = "[A-Za-z0-9]{1,8}" }
  3537. selected = attribute form:selected { boolean }?
  3538. shadowType = "none" | \string
  3539. shape = shape-instance | draw-a
  3540. shape-instance =
  3541. draw-rect
  3542. | draw-line
  3543. | draw-polyline
  3544. | draw-polygon
  3545. | draw-regular-polygon
  3546. | draw-path
  3547. | draw-circle
  3548. | draw-ellipse
  3549. | draw-g
  3550. | draw-page-thumbnail
  3551. | draw-frame
  3552. | draw-measure
  3553. | draw-caption
  3554. | draw-connector
  3555. | draw-control
  3556. | dr3d-scene
  3557. | draw-custom-shape
  3558. shapes3d =
  3559. dr3d-scene | dr3d-extrude | dr3d-sphere | dr3d-rotate | dr3d-cube
  3560. signedZeroToHundredPercent =
  3561. xsd:string {
  3562. pattern = "-?([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)%"
  3563. }
  3564. size = attribute form:size { nonNegativeInteger }?
  3565. states = "unchecked" | "checked" | "unknown"
  3566. \string = xsd:string
  3567. style-background-image =
  3568. element style:background-image {
  3569. style-background-image-attlist,
  3570. (common-draw-data-attlist | office-binary-data | empty)
  3571. }?
  3572. style-background-image-attlist =
  3573. attribute style:repeat { "no-repeat" | "repeat" | "stretch" }?
  3574. & attribute style:position {
  3575. "left"
  3576. | "center"
  3577. | "right"
  3578. | "top"
  3579. | "bottom"
  3580. | list { horiBackPos, vertBackPos }
  3581. | list { vertBackPos, horiBackPos }
  3582. }?
  3583. & attribute style:filter-name { \string }?
  3584. & attribute draw:opacity { zeroToHundredPercent }?
  3585. style-chart-properties =
  3586. element style:chart-properties {
  3587. style-chart-properties-content-strict
  3588. }
  3589. style-chart-properties-attlist =
  3590. attribute chart:scale-text { boolean }?
  3591. & attribute chart:three-dimensional { boolean }?
  3592. & attribute chart:deep { boolean }?
  3593. & attribute chart:right-angled-axes { boolean }?
  3594. & (attribute chart:symbol-type { "none" }
  3595. | attribute chart:symbol-type { "automatic" }
  3596. | (attribute chart:symbol-type { "named-symbol" },
  3597. attribute chart:symbol-name {
  3598. "square"
  3599. | "diamond"
  3600. | "arrow-down"
  3601. | "arrow-up"
  3602. | "arrow-right"
  3603. | "arrow-left"
  3604. | "bow-tie"
  3605. | "hourglass"
  3606. | "circle"
  3607. | "star"
  3608. | "x"
  3609. | "plus"
  3610. | "asterisk"
  3611. | "horizontal-bar"
  3612. | "vertical-bar"
  3613. })
  3614. | (attribute chart:symbol-type { "image" },
  3615. element chart:symbol-image {
  3616. attribute xlink:href { anyIRI }
  3617. })
  3618. | empty)
  3619. & attribute chart:symbol-width { nonNegativeLength }?
  3620. & attribute chart:symbol-height { nonNegativeLength }?
  3621. & attribute chart:sort-by-x-values { boolean }?
  3622. & attribute chart:vertical { boolean }?
  3623. & attribute chart:connect-bars { boolean }?
  3624. & attribute chart:gap-width { integer }?
  3625. & attribute chart:overlap { integer }?
  3626. & attribute chart:group-bars-per-axis { boolean }?
  3627. & attribute chart:japanese-candle-stick { boolean }?
  3628. & attribute chart:interpolation {
  3629. "none"
  3630. | "cubic-spline"
  3631. | "b-spline"
  3632. | "step-start"
  3633. | "step-end"
  3634. | "step-center-x"
  3635. | "step-center-y"
  3636. }?
  3637. & attribute chart:spline-order { positiveInteger }?
  3638. & attribute chart:spline-resolution { positiveInteger }?
  3639. & attribute chart:pie-offset { nonNegativeInteger }?
  3640. & attribute chart:angle-offset { angle }?
  3641. & attribute chart:hole-size { percent }?
  3642. & attribute chart:lines { boolean }?
  3643. & attribute chart:solid-type {
  3644. "cuboid" | "cylinder" | "cone" | "pyramid"
  3645. }?
  3646. & attribute chart:stacked { boolean }?
  3647. & attribute chart:percentage { boolean }?
  3648. & attribute chart:treat-empty-cells {
  3649. "use-zero" | "leave-gap" | "ignore"
  3650. }?
  3651. & attribute chart:link-data-style-to-source { boolean }?
  3652. & attribute chart:logarithmic { boolean }?
  3653. & attribute chart:maximum { double }?
  3654. & attribute chart:minimum { double }?
  3655. & attribute chart:origin { double }?
  3656. & attribute chart:interval-major { double }?
  3657. & attribute chart:interval-minor-divisor { positiveInteger }?
  3658. & attribute chart:tick-marks-major-inner { boolean }?
  3659. & attribute chart:tick-marks-major-outer { boolean }?
  3660. & attribute chart:tick-marks-minor-inner { boolean }?
  3661. & attribute chart:tick-marks-minor-outer { boolean }?
  3662. & attribute chart:reverse-direction { boolean }?
  3663. & attribute chart:display-label { boolean }?
  3664. & attribute chart:text-overlap { boolean }?
  3665. & attribute text:line-break { boolean }?
  3666. & attribute chart:label-arrangement {
  3667. "side-by-side" | "stagger-even" | "stagger-odd"
  3668. }?
  3669. & common-style-direction-attlist
  3670. & common-rotation-angle-attlist
  3671. & attribute chart:data-label-number {
  3672. "none" | "value" | "percentage" | "value-and-percentage"
  3673. }?
  3674. & attribute chart:data-label-text { boolean }?
  3675. & attribute chart:data-label-symbol { boolean }?
  3676. & element chart:label-separator { text-p }?
  3677. & attribute chart:label-position { labelPositions }?
  3678. & attribute chart:label-position-negative { labelPositions }?
  3679. & attribute chart:visible { boolean }?
  3680. & attribute chart:auto-position { boolean }?
  3681. & attribute chart:auto-size { boolean }?
  3682. & attribute chart:mean-value { boolean }?
  3683. & attribute chart:error-category {
  3684. "none"
  3685. | "variance"
  3686. | "standard-deviation"
  3687. | "percentage"
  3688. | "error-margin"
  3689. | "constant"
  3690. | "standard-error"
  3691. | "cell-range"
  3692. }?
  3693. & attribute chart:error-percentage { double }?
  3694. & attribute chart:error-margin { double }?
  3695. & attribute chart:error-lower-limit { double }?
  3696. & attribute chart:error-upper-limit { double }?
  3697. & attribute chart:error-upper-indicator { boolean }?
  3698. & attribute chart:error-lower-indicator { boolean }?
  3699. & attribute chart:error-lower-range { cellRangeAddressList }?
  3700. & attribute chart:error-upper-range { cellRangeAddressList }?
  3701. & attribute chart:series-source { "columns" | "rows" }?
  3702. & attribute chart:regression-type {
  3703. "none"
  3704. | "linear"
  3705. | "logarithmic"
  3706. | "moving-average"
  3707. | "exponential"
  3708. | "power"
  3709. | "polynomial"
  3710. }?
  3711. & attribute chart:regression-max-degree { positiveInteger }?
  3712. & attribute chart:regression-force-intercept { boolean }?
  3713. & attribute chart:regression-intercept-value { double }?
  3714. & attribute chart:regression-name { \string }?
  3715. & # https://issues.oasis-open.org/browse/OFFICE-3958
  3716. attribute chart:regression-period { positiveInteger }?
  3717. & attribute chart:regression-moving-type {
  3718. "prior" | "central" | "averaged-abscissa"
  3719. }?
  3720. & # https://issues.oasis-open.org/browse/OFFICE-3959
  3721. attribute chart:axis-position { "start" | "end" | double }?
  3722. & attribute chart:axis-label-position {
  3723. "near-axis"
  3724. | "near-axis-other-side"
  3725. | "outside-start"
  3726. | "outside-end"
  3727. }?
  3728. & attribute chart:tick-mark-position {
  3729. "at-labels" | "at-axis" | "at-labels-and-axis"
  3730. }?
  3731. & attribute chart:include-hidden-cells { boolean }?
  3732. & (attribute chart:data-label-series { boolean }?)
  3733. # https://issues.oasis-open.org/browse/OFFICE-2117
  3734. style-chart-properties-content-strict =
  3735. style-chart-properties-attlist, style-chart-properties-elements
  3736. style-chart-properties-elements = empty
  3737. style-column = element style:column { style-column-attlist }
  3738. style-column-attlist =
  3739. attribute style:rel-width { relativeLength }
  3740. & attribute fo:start-indent { length }?
  3741. & attribute fo:end-indent { length }?
  3742. & attribute fo:space-before { length }?
  3743. & attribute fo:space-after { length }?
  3744. style-column-sep = element style:column-sep { style-column-sep-attlist }
  3745. style-column-sep-attlist =
  3746. attribute style:style {
  3747. "none" | "solid" | "dotted" | "dashed" | "dot-dashed"
  3748. }?
  3749. & attribute style:width { length }
  3750. & attribute style:height { zeroToHundredPercent }?
  3751. & attribute style:vertical-align { "top" | "middle" | "bottom" }?
  3752. & attribute style:color { color }?
  3753. style-columns =
  3754. element style:columns {
  3755. style-columns-attlist, style-column-sep?, style-column*
  3756. }?
  3757. style-columns-attlist =
  3758. attribute fo:column-count { positiveInteger }
  3759. & attribute fo:column-gap { length }?
  3760. style-default-page-layout =
  3761. element style:default-page-layout { style-page-layout-content }
  3762. style-default-style =
  3763. element style:default-style { style-style-content }
  3764. style-drawing-page-properties =
  3765. element style:drawing-page-properties {
  3766. style-drawing-page-properties-content-strict
  3767. }
  3768. style-drawing-page-properties-attlist =
  3769. attribute presentation:transition-type {
  3770. "manual" | "automatic" | "semi-automatic"
  3771. }?
  3772. & attribute presentation:transition-style {
  3773. "none"
  3774. | "fade-from-left"
  3775. | "fade-from-top"
  3776. | "fade-from-right"
  3777. | "fade-from-bottom"
  3778. | "fade-from-upperleft"
  3779. | "fade-from-upperright"
  3780. | "fade-from-lowerleft"
  3781. | "fade-from-lowerright"
  3782. | "move-from-left"
  3783. | "move-from-top"
  3784. | "move-from-right"
  3785. | "move-from-bottom"
  3786. | "move-from-upperleft"
  3787. | "move-from-upperright"
  3788. | "move-from-lowerleft"
  3789. | "move-from-lowerright"
  3790. | "uncover-to-left"
  3791. | "uncover-to-top"
  3792. | "uncover-to-right"
  3793. | "uncover-to-bottom"
  3794. | "uncover-to-upperleft"
  3795. | "uncover-to-upperright"
  3796. | "uncover-to-lowerleft"
  3797. | "uncover-to-lowerright"
  3798. | "fade-to-center"
  3799. | "fade-from-center"
  3800. | "vertical-stripes"
  3801. | "horizontal-stripes"
  3802. | "clockwise"
  3803. | "counterclockwise"
  3804. | "open-vertical"
  3805. | "open-horizontal"
  3806. | "close-vertical"
  3807. | "close-horizontal"
  3808. | "wavyline-from-left"
  3809. | "wavyline-from-top"
  3810. | "wavyline-from-right"
  3811. | "wavyline-from-bottom"
  3812. | "spiralin-left"
  3813. | "spiralin-right"
  3814. | "spiralout-left"
  3815. | "spiralout-right"
  3816. | "roll-from-top"
  3817. | "roll-from-left"
  3818. | "roll-from-right"
  3819. | "roll-from-bottom"
  3820. | "stretch-from-left"
  3821. | "stretch-from-top"
  3822. | "stretch-from-right"
  3823. | "stretch-from-bottom"
  3824. | "vertical-lines"
  3825. | "horizontal-lines"
  3826. | "dissolve"
  3827. | "random"
  3828. | "vertical-checkerboard"
  3829. | "horizontal-checkerboard"
  3830. | "interlocking-horizontal-left"
  3831. | "interlocking-horizontal-right"
  3832. | "interlocking-vertical-top"
  3833. | "interlocking-vertical-bottom"
  3834. | "fly-away"
  3835. | "open"
  3836. | "close"
  3837. | "melt"
  3838. }?
  3839. & attribute presentation:transition-speed { presentationSpeeds }?
  3840. & attribute smil:type { \string }?
  3841. & attribute smil:subtype { \string }?
  3842. & attribute smil:direction { "forward" | "reverse" }?
  3843. & attribute smil:fadeColor { color }?
  3844. & attribute presentation:duration { duration }?
  3845. & attribute presentation:visibility { "visible" | "hidden" }?
  3846. & attribute draw:background-size { "full" | "border" }?
  3847. & attribute presentation:background-objects-visible { boolean }?
  3848. & attribute presentation:background-visible { boolean }?
  3849. & attribute presentation:display-header { boolean }?
  3850. & attribute presentation:display-footer { boolean }?
  3851. & attribute presentation:display-page-number { boolean }?
  3852. & attribute presentation:display-date-time { boolean }?
  3853. style-drawing-page-properties-content-strict =
  3854. style-graphic-fill-properties-attlist,
  3855. style-drawing-page-properties-attlist,
  3856. style-drawing-page-properties-elements
  3857. style-drawing-page-properties-elements = presentation-sound?
  3858. style-drop-cap =
  3859. element style:drop-cap { style-drop-cap-attlist, empty }?
  3860. style-drop-cap-attlist =
  3861. attribute style:length { "word" | positiveInteger }?
  3862. & attribute style:lines { positiveInteger }?
  3863. & attribute style:distance { length }?
  3864. & attribute style:style-name { styleNameRef }?
  3865. style-font-face =
  3866. element style:font-face {
  3867. style-font-face-attlist, svg-font-face-src?, svg-definition-src?
  3868. }
  3869. style-font-face-attlist =
  3870. attribute svg:font-family { \string }?
  3871. & attribute svg:font-style { fontStyle }?
  3872. & attribute svg:font-variant { fontVariant }?
  3873. & attribute svg:font-weight { fontWeight }?
  3874. & attribute svg:font-stretch {
  3875. "normal"
  3876. | "ultra-condensed"
  3877. | "extra-condensed"
  3878. | "condensed"
  3879. | "semi-condensed"
  3880. | "semi-expanded"
  3881. | "expanded"
  3882. | "extra-expanded"
  3883. | "ultra-expanded"
  3884. }?
  3885. & attribute svg:font-size { positiveLength }?
  3886. & attribute svg:unicode-range { \string }?
  3887. & attribute svg:units-per-em { integer }?
  3888. & attribute svg:panose-1 { \string }?
  3889. & attribute svg:stemv { integer }?
  3890. & attribute svg:stemh { integer }?
  3891. & attribute svg:slope { integer }?
  3892. & attribute svg:cap-height { integer }?
  3893. & attribute svg:x-height { integer }?
  3894. & attribute svg:accent-height { integer }?
  3895. & attribute svg:ascent { integer }?
  3896. & attribute svg:descent { integer }?
  3897. & attribute svg:widths { \string }?
  3898. & attribute svg:bbox { \string }?
  3899. & attribute svg:ideographic { integer }?
  3900. & attribute svg:alphabetic { integer }?
  3901. & attribute svg:mathematical { integer }?
  3902. & attribute svg:hanging { integer }?
  3903. & attribute svg:v-ideographic { integer }?
  3904. & attribute svg:v-alphabetic { integer }?
  3905. & attribute svg:v-mathematical { integer }?
  3906. & attribute svg:v-hanging { integer }?
  3907. & attribute svg:underline-position { integer }?
  3908. & attribute svg:underline-thickness { integer }?
  3909. & attribute svg:strikethrough-position { integer }?
  3910. & attribute svg:strikethrough-thickness { integer }?
  3911. & attribute svg:overline-position { integer }?
  3912. & attribute svg:overline-thickness { integer }?
  3913. & attribute style:name { \string }
  3914. & attribute style:font-adornments { \string }?
  3915. & attribute style:font-family-generic { fontFamilyGeneric }?
  3916. & attribute style:font-pitch { fontPitch }?
  3917. & attribute style:font-charset { textEncoding }?
  3918. style-footer =
  3919. element style:footer {
  3920. common-style-header-footer-attlist, header-footer-content
  3921. }
  3922. style-footer-first =
  3923. element style:footer-first {
  3924. common-style-header-footer-attlist,
  3925. header-footer-content
  3926. # https://issues.oasis-open.org/browse/OFFICE-3789
  3927. }
  3928. style-footer-left =
  3929. element style:footer-left {
  3930. common-style-header-footer-attlist, header-footer-content
  3931. }
  3932. style-footer-style =
  3933. element style:footer-style { style-header-footer-properties? }
  3934. style-footnote-sep =
  3935. element style:footnote-sep { style-footnote-sep-attlist, empty }?
  3936. style-footnote-sep-attlist =
  3937. attribute style:width { length }?,
  3938. attribute style:rel-width { percent }?,
  3939. attribute style:color { color }?,
  3940. attribute style:line-style { lineStyle }?,
  3941. attribute style:adjustment { "left" | "center" | "right" }?,
  3942. attribute style:distance-before-sep { length }?,
  3943. attribute style:distance-after-sep { length }?
  3944. style-graphic-fill-properties-attlist =
  3945. attribute draw:fill {
  3946. "none" | "solid" | "bitmap" | "gradient" | "hatch"
  3947. }?
  3948. & attribute draw:fill-color { color }?
  3949. & attribute draw:secondary-fill-color { color }?
  3950. & attribute draw:fill-gradient-name { styleNameRef }?
  3951. & attribute draw:gradient-step-count { nonNegativeInteger }?
  3952. & attribute draw:fill-hatch-name { styleNameRef }?
  3953. & attribute draw:fill-hatch-solid { boolean }?
  3954. & attribute draw:fill-image-name { styleNameRef }?
  3955. & attribute style:repeat { "no-repeat" | "repeat" | "stretch" }?
  3956. & attribute draw:fill-image-width { length | percent }?
  3957. & attribute draw:fill-image-height { length | percent }?
  3958. & attribute draw:fill-image-ref-point-x { percent }?
  3959. & attribute draw:fill-image-ref-point-y { percent }?
  3960. & attribute draw:fill-image-ref-point {
  3961. "top-left"
  3962. | "top"
  3963. | "top-right"
  3964. | "left"
  3965. | "center"
  3966. | "right"
  3967. | "bottom-left"
  3968. | "bottom"
  3969. | "bottom-right"
  3970. }?
  3971. & attribute draw:tile-repeat-offset {
  3972. list { zeroToHundredPercent, ("horizontal" | "vertical") }
  3973. }?
  3974. & attribute draw:opacity { zeroToHundredPercent }?
  3975. & attribute draw:opacity-name { styleNameRef }?
  3976. & attribute svg:fill-rule { "nonzero" | "evenodd" }?
  3977. style-graphic-properties =
  3978. element style:graphic-properties {
  3979. style-graphic-properties-content-strict
  3980. }
  3981. style-graphic-properties-attlist =
  3982. attribute draw:stroke { "none" | "dash" | "solid" }?
  3983. & attribute draw:stroke-dash { styleNameRef }?
  3984. & attribute draw:stroke-dash-names { styleNameRefs }?
  3985. & attribute svg:stroke-width { length }?
  3986. & attribute svg:stroke-color { color }?
  3987. & attribute draw:marker-start { styleNameRef }?
  3988. & attribute draw:marker-end { styleNameRef }?
  3989. & attribute draw:marker-start-width { length }?
  3990. & attribute draw:marker-end-width { length }?
  3991. & attribute draw:marker-start-center { boolean }?
  3992. & attribute draw:marker-end-center { boolean }?
  3993. & attribute svg:stroke-opacity {
  3994. xsd:double { minInclusive = "0" maxInclusive = "1" }
  3995. | zeroToHundredPercent
  3996. }?
  3997. & attribute draw:stroke-linejoin {
  3998. "miter" | "round" | "bevel" | "middle" | "none"
  3999. }?
  4000. & attribute svg:stroke-linecap { "butt" | "square" | "round" }?
  4001. & attribute draw:symbol-color { color }?
  4002. & attribute text:animation {
  4003. "none" | "scroll" | "alternate" | "slide"
  4004. }?
  4005. & attribute text:animation-direction {
  4006. "left" | "right" | "up" | "down"
  4007. }?
  4008. & attribute text:animation-start-inside { boolean }?
  4009. & attribute text:animation-stop-inside { boolean }?
  4010. & attribute text:animation-repeat { nonNegativeInteger }?
  4011. & attribute text:animation-delay { duration }?
  4012. & attribute text:animation-steps { length }?
  4013. & attribute draw:auto-grow-width { boolean }?
  4014. & attribute draw:auto-grow-height { boolean }?
  4015. & attribute draw:fit-to-size { boolean }?
  4016. & attribute draw:fit-to-contour { boolean }?
  4017. & attribute draw:textarea-vertical-align {
  4018. "top" | "middle" | "bottom" | "justify"
  4019. }?
  4020. & attribute draw:textarea-horizontal-align {
  4021. "left" | "center" | "right" | "justify"
  4022. }?
  4023. & attribute fo:wrap-option { "no-wrap" | "wrap" }?
  4024. & attribute style:shrink-to-fit { boolean }?
  4025. & attribute draw:color-mode {
  4026. "greyscale" | "mono" | "watermark" | "standard"
  4027. }?
  4028. & attribute draw:color-inversion { boolean }?
  4029. & attribute draw:luminance { signedZeroToHundredPercent }
  4030. # https://issues.oasis-open.org/browse/OFFICE-3821
  4031. ?
  4032. & attribute draw:contrast { percent }?
  4033. & attribute draw:gamma { percent }?
  4034. & attribute draw:red { signedZeroToHundredPercent }?
  4035. & attribute draw:green { signedZeroToHundredPercent }?
  4036. & attribute draw:blue { signedZeroToHundredPercent }?
  4037. & attribute draw:image-opacity { zeroToHundredPercent }?
  4038. & attribute draw:shadow { "visible" | "hidden" }?
  4039. & attribute draw:shadow-offset-x { length }?
  4040. & attribute draw:shadow-offset-y { length }?
  4041. & attribute draw:shadow-color { color }?
  4042. & attribute draw:shadow-opacity { zeroToHundredPercent }?
  4043. & attribute draw:start-line-spacing-horizontal { distance }?
  4044. & attribute draw:start-line-spacing-vertical { distance }?
  4045. & attribute draw:end-line-spacing-horizontal { distance }?
  4046. & attribute draw:end-line-spacing-vertical { distance }?
  4047. & attribute draw:line-distance { distance }?
  4048. & attribute draw:guide-overhang { length }?
  4049. & attribute draw:guide-distance { distance }?
  4050. & attribute draw:start-guide { length }?
  4051. & attribute draw:end-guide { length }?
  4052. & attribute draw:placing { "below" | "above" }?
  4053. & attribute draw:parallel { boolean }?
  4054. & attribute draw:measure-align {
  4055. "automatic" | "left-outside" | "inside" | "right-outside"
  4056. }?
  4057. & attribute draw:measure-vertical-align {
  4058. "automatic" | "above" | "below" | "center"
  4059. }?
  4060. & attribute draw:unit {
  4061. "automatic"
  4062. | "mm"
  4063. | "cm"
  4064. | "m"
  4065. | "km"
  4066. | "pt"
  4067. | "pc"
  4068. | "inch"
  4069. | "ft"
  4070. | "mi"
  4071. }?
  4072. & attribute draw:show-unit { boolean }?
  4073. & attribute draw:decimal-places { nonNegativeInteger }?
  4074. & attribute draw:caption-type {
  4075. "straight-line" | "angled-line" | "angled-connector-line"
  4076. }?
  4077. & attribute draw:caption-angle-type { "fixed" | "free" }?
  4078. & attribute draw:caption-angle { angle }?
  4079. & attribute draw:caption-gap { distance }?
  4080. & attribute draw:caption-escape-direction {
  4081. "horizontal" | "vertical" | "auto"
  4082. }?
  4083. & attribute draw:caption-escape { length | percent }?
  4084. & attribute draw:caption-line-length { length }?
  4085. & attribute draw:caption-fit-line-length { boolean }?
  4086. & attribute dr3d:horizontal-segments { nonNegativeInteger }?
  4087. & attribute dr3d:vertical-segments { nonNegativeInteger }?
  4088. & attribute dr3d:edge-rounding { percent }?
  4089. & attribute dr3d:edge-rounding-mode { "correct" | "attractive" }?
  4090. & attribute dr3d:back-scale { percent }?
  4091. & attribute dr3d:depth { length }?
  4092. & attribute dr3d:backface-culling { "enabled" | "disabled" }?
  4093. & attribute dr3d:end-angle { angle }?
  4094. & attribute dr3d:close-front { boolean }?
  4095. & attribute dr3d:close-back { boolean }?
  4096. & attribute dr3d:lighting-mode { "standard" | "double-sided" }?
  4097. & attribute dr3d:normals-kind { "object" | "flat" | "sphere" }?
  4098. & attribute dr3d:normals-direction { "normal" | "inverse" }?
  4099. & attribute dr3d:texture-generation-mode-x {
  4100. "object" | "parallel" | "sphere"
  4101. }?
  4102. & attribute dr3d:texture-generation-mode-y {
  4103. "object" | "parallel" | "sphere"
  4104. }?
  4105. & attribute dr3d:texture-kind { "luminance" | "intensity" | "color" }?
  4106. & attribute dr3d:texture-filter { "enabled" | "disabled" }?
  4107. & attribute dr3d:texture-mode { "replace" | "modulate" | "blend" }?
  4108. & attribute dr3d:ambient-color { color }?
  4109. & attribute dr3d:emissive-color { color }?
  4110. & attribute dr3d:specular-color { color }?
  4111. & attribute dr3d:diffuse-color { color }?
  4112. & attribute dr3d:shininess { percent }?
  4113. & attribute dr3d:shadow { "visible" | "hidden" }?
  4114. & common-draw-rel-size-attlist
  4115. & attribute fo:min-width { length | percent }?
  4116. & attribute fo:min-height { length | percent }?
  4117. & attribute fo:max-height { length | percent }?
  4118. & attribute fo:max-width { length | percent }?
  4119. & common-horizontal-margin-attlist
  4120. & common-vertical-margin-attlist
  4121. & common-margin-attlist
  4122. & attribute style:print-content { boolean }?
  4123. & attribute style:protect {
  4124. "none"
  4125. | list { ("content" | "position" | "size")+ }
  4126. }?
  4127. & attribute style:horizontal-pos {
  4128. "left"
  4129. | "center"
  4130. | "right"
  4131. | "from-left"
  4132. | "inside"
  4133. | "outside"
  4134. | "from-inside"
  4135. }?
  4136. & attribute svg:x { coordinate }?
  4137. & attribute style:horizontal-rel {
  4138. "page"
  4139. | "page-content"
  4140. | "page-start-margin"
  4141. | "page-end-margin"
  4142. | "frame"
  4143. | "frame-content"
  4144. | "frame-start-margin"
  4145. | "frame-end-margin"
  4146. | "paragraph"
  4147. | "paragraph-content"
  4148. | "paragraph-start-margin"
  4149. | "paragraph-end-margin"
  4150. | "char"
  4151. }?
  4152. & common-vertical-pos-attlist
  4153. & common-vertical-rel-attlist
  4154. & common-text-anchor-attlist
  4155. & common-border-attlist
  4156. & common-border-line-width-attlist
  4157. & common-padding-attlist
  4158. & common-shadow-attlist
  4159. & common-background-color-attlist
  4160. & common-background-transparency-attlist
  4161. & common-editable-attlist
  4162. & attribute style:wrap {
  4163. "none"
  4164. | "left"
  4165. | "right"
  4166. | "parallel"
  4167. | "dynamic"
  4168. | "run-through"
  4169. | "biggest"
  4170. }?
  4171. & attribute style:wrap-dynamic-threshold { nonNegativeLength }?
  4172. & attribute style:number-wrapped-paragraphs {
  4173. "no-limit" | positiveInteger
  4174. }?
  4175. & attribute style:wrap-contour { boolean }?
  4176. & attribute style:wrap-contour-mode { "full" | "outside" }?
  4177. & attribute style:run-through { "foreground" | "background" }?
  4178. & attribute style:flow-with-text { boolean }?
  4179. & attribute style:overflow-behavior {
  4180. "clip" | "auto-create-new-frame"
  4181. }?
  4182. & attribute style:mirror {
  4183. "none"
  4184. | "vertical"
  4185. | horizontal-mirror
  4186. | list { "vertical", horizontal-mirror }
  4187. | list { horizontal-mirror, "vertical" }
  4188. }?
  4189. & attribute fo:clip { "auto" | clipShape }?
  4190. & attribute draw:wrap-influence-on-position {
  4191. "iterative" | "once-concurrent" | "once-successive"
  4192. }?
  4193. & common-writing-mode-attlist
  4194. & attribute draw:frame-display-scrollbar { boolean }?
  4195. & attribute draw:frame-display-border { boolean }?
  4196. & attribute draw:frame-margin-horizontal { nonNegativePixelLength }?
  4197. & attribute draw:frame-margin-vertical { nonNegativePixelLength }?
  4198. & attribute draw:visible-area-left { nonNegativeLength }?
  4199. & attribute draw:visible-area-top { nonNegativeLength }?
  4200. & attribute draw:visible-area-width { positiveLength }?
  4201. & attribute draw:visible-area-height { positiveLength }?
  4202. & attribute draw:draw-aspect {
  4203. "content" | "thumbnail" | "icon" | "print-view"
  4204. }?
  4205. & attribute draw:ole-draw-aspect { nonNegativeInteger }?
  4206. style-graphic-properties-content-strict =
  4207. style-graphic-properties-attlist,
  4208. style-graphic-fill-properties-attlist,
  4209. style-graphic-properties-elements
  4210. style-graphic-properties-elements =
  4211. text-list-style? & style-background-image & style-columns
  4212. style-handout-master =
  4213. element style:handout-master {
  4214. common-presentation-header-footer-attlist,
  4215. style-handout-master-attlist,
  4216. shape*
  4217. }
  4218. style-handout-master-attlist =
  4219. attribute presentation:presentation-page-layout-name { styleNameRef }?
  4220. & attribute style:page-layout-name { styleNameRef }
  4221. & attribute draw:style-name { styleNameRef }?
  4222. style-header =
  4223. element style:header {
  4224. common-style-header-footer-attlist, header-footer-content
  4225. }
  4226. style-header-first =
  4227. element style:header-first {
  4228. common-style-header-footer-attlist,
  4229. header-footer-content
  4230. # https://issues.oasis-open.org/browse/OFFICE-3789
  4231. }
  4232. style-header-footer-properties =
  4233. element style:header-footer-properties {
  4234. style-header-footer-properties-content-strict
  4235. }
  4236. style-header-footer-properties-attlist =
  4237. attribute svg:height { length }?
  4238. & attribute fo:min-height { length }?
  4239. & common-horizontal-margin-attlist
  4240. & common-vertical-margin-attlist
  4241. & common-margin-attlist
  4242. & common-border-attlist
  4243. & common-border-line-width-attlist
  4244. & common-padding-attlist
  4245. & common-background-color-attlist
  4246. & common-shadow-attlist
  4247. & attribute style:dynamic-spacing { boolean }?
  4248. style-header-footer-properties-content-strict =
  4249. style-header-footer-properties-attlist,
  4250. style-header-footer-properties-elements
  4251. style-header-footer-properties-elements = style-background-image
  4252. style-header-left =
  4253. element style:header-left {
  4254. common-style-header-footer-attlist, header-footer-content
  4255. }
  4256. style-header-style =
  4257. element style:header-style { style-header-footer-properties? }
  4258. style-list-level-label-alignment =
  4259. element style:list-level-label-alignment {
  4260. style-list-level-label-alignment-attlist, empty
  4261. }?
  4262. style-list-level-label-alignment-attlist =
  4263. attribute text:label-followed-by { "listtab" | "space" | "nothing" }
  4264. & attribute text:list-tab-stop-position { length }?
  4265. & attribute fo:text-indent { length }?
  4266. & attribute fo:margin-left { length }?
  4267. style-list-level-properties =
  4268. element style:list-level-properties {
  4269. style-list-level-properties-content-strict
  4270. }
  4271. style-list-level-properties-attlist =
  4272. common-text-align
  4273. & attribute text:space-before { length }?
  4274. & attribute text:min-label-width { nonNegativeLength }?
  4275. & attribute text:min-label-distance { nonNegativeLength }?
  4276. & attribute style:font-name { \string }?
  4277. & attribute fo:width { positiveLength }?
  4278. & attribute fo:height { positiveLength }?
  4279. & common-vertical-rel-attlist
  4280. & common-vertical-pos-attlist
  4281. & attribute text:list-level-position-and-space-mode {
  4282. "label-width-and-position" | "label-alignment"
  4283. }?
  4284. style-list-level-properties-content-strict =
  4285. style-list-level-properties-attlist,
  4286. style-list-level-properties-elements
  4287. style-list-level-properties-elements = style-list-level-label-alignment
  4288. style-map = element style:map { style-map-attlist, empty }
  4289. style-map-attlist =
  4290. attribute style:condition { \string }
  4291. & attribute style:apply-style-name { styleNameRef }
  4292. & attribute style:base-cell-address { cellAddress }?
  4293. style-master-page =
  4294. element style:master-page {
  4295. style-master-page-attlist,
  4296. (style-header,
  4297. style-header-left?,
  4298. (style-header-first?)
  4299. # https://issues.oasis-open.org/browse/OFFICE-3789
  4300. )?,
  4301. (style-footer,
  4302. style-footer-left?,
  4303. (style-footer-first?)
  4304. # https://issues.oasis-open.org/browse/OFFICE-3789
  4305. )?,
  4306. draw-layer-set?,
  4307. office-forms?,
  4308. shape*,
  4309. animation-element?,
  4310. presentation-notes?
  4311. }
  4312. style-master-page-attlist =
  4313. attribute style:name { styleName }
  4314. & attribute style:display-name { \string }?
  4315. & attribute style:page-layout-name { styleNameRef }
  4316. & attribute draw:style-name { styleNameRef }?
  4317. & attribute style:next-style-name { styleNameRef }?
  4318. style-num-letter-sync-attlist =
  4319. attribute style:num-letter-sync { boolean }?
  4320. style-page-layout =
  4321. element style:page-layout {
  4322. style-page-layout-attlist, style-page-layout-content
  4323. }
  4324. style-page-layout-attlist =
  4325. attribute style:name { styleName }
  4326. & attribute style:page-usage {
  4327. "all" | "left" | "right" | "mirrored"
  4328. }?
  4329. style-page-layout-content =
  4330. style-page-layout-properties?,
  4331. style-header-style?,
  4332. style-footer-style?
  4333. style-page-layout-properties =
  4334. element style:page-layout-properties {
  4335. style-page-layout-properties-content-strict
  4336. }
  4337. style-page-layout-properties-attlist =
  4338. attribute fo:page-width { length }?
  4339. & attribute fo:page-height { length }?
  4340. & common-num-format-attlist?
  4341. & common-num-format-prefix-suffix-attlist
  4342. & attribute style:paper-tray-name { "default" | \string }?
  4343. & attribute style:print-orientation { "portrait" | "landscape" }?
  4344. & common-horizontal-margin-attlist
  4345. & common-vertical-margin-attlist
  4346. & common-margin-attlist
  4347. & common-border-attlist
  4348. & common-border-line-width-attlist
  4349. & common-padding-attlist
  4350. & common-shadow-attlist
  4351. & common-background-color-attlist
  4352. & attribute style:register-truth-ref-style-name { styleNameRef }?
  4353. & attribute style:print {
  4354. list {
  4355. ("headers"
  4356. | "grid"
  4357. | "annotations"
  4358. | "objects"
  4359. | "charts"
  4360. | "drawings"
  4361. | "formulas"
  4362. | "zero-values")*
  4363. }
  4364. }?
  4365. & attribute style:print-page-order { "ttb" | "ltr" }?
  4366. & attribute style:first-page-number { positiveInteger | "continue" }?
  4367. & (attribute style:scale-to { percent }?
  4368. | attribute style:scale-to-pages { positiveInteger }?
  4369. | (attribute style:scale-to-X { positiveInteger }?,
  4370. attribute style:scale-to-Y { positiveInteger }?))
  4371. & # https://issues.oasis-open.org/browse/OFFICE-3857
  4372. attribute style:table-centering {
  4373. "horizontal" | "vertical" | "both" | "none"
  4374. }?
  4375. & attribute style:footnote-max-height { length }?
  4376. & common-writing-mode-attlist
  4377. & attribute style:layout-grid-mode { "none" | "line" | "both" }?
  4378. & attribute style:layout-grid-standard-mode { boolean }?
  4379. & attribute style:layout-grid-base-height { length }?
  4380. & attribute style:layout-grid-ruby-height { length }?
  4381. & attribute style:layout-grid-lines { positiveInteger }?
  4382. & attribute style:layout-grid-base-width { length }?
  4383. & attribute style:layout-grid-color { color }?
  4384. & attribute style:layout-grid-ruby-below { boolean }?
  4385. & attribute style:layout-grid-print { boolean }?
  4386. & attribute style:layout-grid-display { boolean }?
  4387. & attribute style:layout-grid-snap-to { boolean }?
  4388. style-page-layout-properties-content-strict =
  4389. style-page-layout-properties-attlist,
  4390. style-page-layout-properties-elements
  4391. style-page-layout-properties-elements =
  4392. style-background-image & style-columns & style-footnote-sep
  4393. style-paragraph-properties =
  4394. element style:paragraph-properties {
  4395. style-paragraph-properties-content-strict
  4396. }
  4397. style-paragraph-properties-attlist =
  4398. attribute style:contextual-spacing { boolean }?
  4399. & # https://issues.oasis-open.org/browse/OFFICE-3767
  4400. attribute fo:line-height { "normal" | nonNegativeLength | percent }?
  4401. & attribute style:line-height-at-least { nonNegativeLength }?
  4402. & attribute style:line-spacing { length }?
  4403. & attribute style:font-independent-line-spacing { boolean }?
  4404. & common-text-align
  4405. & attribute fo:text-align-last { "start" | "center" | "justify" }?
  4406. & attribute style:justify-single-word { boolean }?
  4407. & attribute fo:keep-together { "auto" | "always" }?
  4408. & attribute fo:widows { nonNegativeInteger }?
  4409. & attribute fo:orphans { nonNegativeInteger }?
  4410. & attribute style:tab-stop-distance { nonNegativeLength }?
  4411. & attribute fo:hyphenation-keep { "auto" | "page" }?
  4412. & attribute fo:hyphenation-ladder-count {
  4413. "no-limit" | positiveInteger
  4414. }?
  4415. & attribute style:register-true { boolean }?
  4416. & common-horizontal-margin-attlist
  4417. & attribute fo:text-indent { length | percent }?
  4418. & attribute style:auto-text-indent { boolean }?
  4419. & common-vertical-margin-attlist
  4420. & common-margin-attlist
  4421. & common-break-attlist
  4422. & common-background-color-attlist
  4423. & common-border-attlist
  4424. & common-border-line-width-attlist
  4425. & attribute style:join-border { boolean }?
  4426. & common-padding-attlist
  4427. & common-shadow-attlist
  4428. & common-keep-with-next-attlist
  4429. & attribute text:number-lines { boolean }?
  4430. & attribute text:line-number { nonNegativeInteger }?
  4431. & attribute style:text-autospace { "none" | "ideograph-alpha" }?
  4432. & attribute style:punctuation-wrap { "simple" | "hanging" }?
  4433. & attribute style:line-break { "normal" | "strict" }?
  4434. & attribute style:vertical-align {
  4435. "top" | "middle" | "bottom" | "auto" | "baseline"
  4436. }?
  4437. & common-writing-mode-attlist
  4438. & attribute style:writing-mode-automatic { boolean }?
  4439. & attribute style:snap-to-layout-grid { boolean }?
  4440. & common-page-number-attlist
  4441. & common-background-transparency-attlist
  4442. style-paragraph-properties-content-strict =
  4443. style-paragraph-properties-attlist,
  4444. style-paragraph-properties-elements
  4445. style-paragraph-properties-elements =
  4446. style-tab-stops & style-drop-cap & style-background-image
  4447. style-presentation-page-layout =
  4448. element style:presentation-page-layout {
  4449. attribute style:name { styleName },
  4450. attribute style:display-name { \string }?,
  4451. presentation-placeholder*
  4452. }
  4453. style-region-center = element style:region-center { region-content }
  4454. style-region-left = element style:region-left { region-content }
  4455. style-region-right = element style:region-right { region-content }
  4456. style-ruby-properties =
  4457. element style:ruby-properties { style-ruby-properties-content-strict }
  4458. style-ruby-properties-attlist =
  4459. attribute style:ruby-position { "above" | "below" }?
  4460. & attribute style:ruby-align {
  4461. "left"
  4462. | "center"
  4463. | "right"
  4464. | "distribute-letter"
  4465. | "distribute-space"
  4466. }?
  4467. style-ruby-properties-content-strict =
  4468. style-ruby-properties-attlist, style-ruby-properties-elements
  4469. style-ruby-properties-elements = empty
  4470. style-section-properties =
  4471. element style:section-properties {
  4472. style-section-properties-content-strict
  4473. }
  4474. style-section-properties-attlist =
  4475. common-background-color-attlist
  4476. & common-horizontal-margin-attlist
  4477. & attribute style:protect { boolean }?
  4478. & common-editable-attlist
  4479. & attribute text:dont-balance-text-columns { boolean }?
  4480. & common-writing-mode-attlist
  4481. style-section-properties-content-strict =
  4482. style-section-properties-attlist, style-section-properties-elements
  4483. style-section-properties-elements =
  4484. style-background-image & style-columns & text-notes-configuration*
  4485. style-style =
  4486. element style:style {
  4487. style-style-attlist, style-style-content, style-map*
  4488. }
  4489. style-style-attlist =
  4490. attribute style:name { styleName }
  4491. & attribute style:display-name { \string }?
  4492. & attribute style:parent-style-name { styleNameRef }?
  4493. & attribute style:next-style-name { styleNameRef }?
  4494. & attribute style:list-level { positiveInteger | empty }?
  4495. & attribute style:list-style-name { styleName | empty }?
  4496. & attribute style:master-page-name { styleNameRef }?
  4497. & attribute style:auto-update { boolean }?
  4498. & attribute style:data-style-name { styleNameRef }?
  4499. & attribute style:percentage-data-style-name { styleNameRef }?
  4500. & attribute style:class { \string }?
  4501. & attribute style:default-outline-level { positiveInteger | empty }?
  4502. style-style-content =
  4503. (attribute style:family { "text" },
  4504. style-text-properties?)
  4505. | (attribute style:family { "paragraph" },
  4506. style-paragraph-properties?,
  4507. style-text-properties?)
  4508. | (attribute style:family { "section" },
  4509. style-section-properties?)
  4510. | (attribute style:family { "ruby" },
  4511. style-ruby-properties?)
  4512. | (attribute style:family { "table" },
  4513. style-table-properties?)
  4514. | (attribute style:family { "table-column" },
  4515. style-table-column-properties?)
  4516. | (attribute style:family { "table-row" },
  4517. style-table-row-properties?)
  4518. | (attribute style:family { "table-cell" },
  4519. style-table-cell-properties?,
  4520. style-paragraph-properties?,
  4521. style-text-properties?)
  4522. | (attribute style:family { "graphic" | "presentation" },
  4523. style-graphic-properties?,
  4524. style-paragraph-properties?,
  4525. style-text-properties?)
  4526. | (attribute style:family { "drawing-page" },
  4527. style-drawing-page-properties?)
  4528. | (attribute style:family { "chart" },
  4529. style-chart-properties?,
  4530. style-graphic-properties?,
  4531. style-paragraph-properties?,
  4532. style-text-properties?)
  4533. style-tab-stop =
  4534. element style:tab-stop { style-tab-stop-attlist, empty }
  4535. style-tab-stop-attlist =
  4536. attribute style:position { length }
  4537. & (attribute style:type { "left" | "center" | "right" }?
  4538. | (attribute style:type { "char" },
  4539. style-tab-stop-char-attlist))
  4540. & attribute style:leader-type { lineType }?
  4541. & attribute style:leader-style { lineStyle }?
  4542. & attribute style:leader-width { lineWidth }?
  4543. & attribute style:leader-color { "font-color" | color }?
  4544. & attribute style:leader-text { character }?
  4545. & attribute style:leader-text-style { styleNameRef }?
  4546. style-tab-stop-char-attlist = attribute style:char { character }
  4547. style-tab-stops = element style:tab-stops { style-tab-stop* }?
  4548. style-table-cell-properties =
  4549. element style:table-cell-properties {
  4550. style-table-cell-properties-content-strict
  4551. }
  4552. style-table-cell-properties-attlist =
  4553. attribute style:vertical-align {
  4554. "top" | "middle" | "bottom" | "automatic"
  4555. }?
  4556. & attribute style:text-align-source { "fix" | "value-type" }?
  4557. & common-style-direction-attlist
  4558. & attribute style:glyph-orientation-vertical {
  4559. "auto" | "0" | "0deg" | "0rad" | "0grad"
  4560. }?
  4561. & common-writing-mode-attlist
  4562. & common-shadow-attlist
  4563. & common-background-color-attlist
  4564. & common-border-attlist
  4565. & attribute style:diagonal-tl-br { \string }?
  4566. & attribute style:diagonal-tl-br-widths { borderWidths }?
  4567. & attribute style:diagonal-bl-tr { \string }?
  4568. & attribute style:diagonal-bl-tr-widths { borderWidths }?
  4569. & common-border-line-width-attlist
  4570. & common-padding-attlist
  4571. & attribute fo:wrap-option { "no-wrap" | "wrap" }?
  4572. & common-rotation-angle-attlist
  4573. & attribute style:rotation-align {
  4574. "none" | "bottom" | "top" | "center"
  4575. }?
  4576. & attribute style:cell-protect {
  4577. "none"
  4578. | "hidden-and-protected"
  4579. | list { ("protected" | "formula-hidden")+ }
  4580. }?
  4581. & attribute style:print-content { boolean }?
  4582. & attribute style:decimal-places { nonNegativeInteger }?
  4583. & attribute style:repeat-content { boolean }?
  4584. & attribute style:shrink-to-fit { boolean }?
  4585. style-table-cell-properties-content-strict =
  4586. style-table-cell-properties-attlist,
  4587. style-table-cell-properties-elements
  4588. style-table-cell-properties-elements = style-background-image
  4589. style-table-column-properties =
  4590. element style:table-column-properties {
  4591. style-table-column-properties-content-strict
  4592. }
  4593. style-table-column-properties-attlist =
  4594. attribute style:column-width { positiveLength }?
  4595. & attribute style:rel-column-width { relativeLength }?
  4596. & attribute style:use-optimal-column-width { boolean }?
  4597. & common-break-attlist
  4598. style-table-column-properties-content-strict =
  4599. style-table-column-properties-attlist,
  4600. style-table-column-properties-elements
  4601. style-table-column-properties-elements = empty
  4602. style-table-properties =
  4603. element style:table-properties {
  4604. style-table-properties-content-strict
  4605. }
  4606. style-table-properties-attlist =
  4607. attribute style:width { positiveLength }?
  4608. & attribute style:rel-width { percent }?
  4609. & attribute table:align { "left" | "center" | "right" | "margins" }?
  4610. & common-horizontal-margin-attlist
  4611. & common-vertical-margin-attlist
  4612. & common-margin-attlist
  4613. & common-page-number-attlist
  4614. & common-break-attlist
  4615. & common-background-color-attlist
  4616. & common-shadow-attlist
  4617. & common-keep-with-next-attlist
  4618. & attribute style:may-break-between-rows { boolean }?
  4619. & attribute table:border-model { "collapsing" | "separating" }?
  4620. & common-writing-mode-attlist
  4621. & attribute table:display { boolean }?
  4622. & (attribute table:tab-color { color }?)
  4623. # https://issues.oasis-open.org/browse/OFFICE-2173
  4624. style-table-properties-content-strict =
  4625. style-table-properties-attlist, style-table-properties-elements
  4626. style-table-properties-elements = style-background-image
  4627. style-table-row-properties =
  4628. element style:table-row-properties {
  4629. style-table-row-properties-content-strict
  4630. }
  4631. style-table-row-properties-attlist =
  4632. attribute style:row-height { positiveLength }?
  4633. & attribute style:min-row-height { nonNegativeLength }?
  4634. & attribute style:use-optimal-row-height { boolean }?
  4635. & common-background-color-attlist
  4636. & common-break-attlist
  4637. & attribute fo:keep-together { "auto" | "always" }?
  4638. style-table-row-properties-content-strict =
  4639. style-table-row-properties-attlist,
  4640. style-table-row-properties-elements
  4641. style-table-row-properties-elements = style-background-image
  4642. style-text-properties =
  4643. element style:text-properties { style-text-properties-content-strict }
  4644. style-text-properties-attlist =
  4645. attribute fo:font-variant { fontVariant }?
  4646. & attribute fo:text-transform {
  4647. "none" | "lowercase" | "uppercase" | "capitalize"
  4648. }?
  4649. & attribute fo:color { color }?
  4650. & attribute style:use-window-font-color { boolean }?
  4651. & attribute style:text-outline { boolean }?
  4652. & attribute style:text-line-through-type { lineType }?
  4653. & attribute style:text-line-through-style { lineStyle }?
  4654. & attribute style:text-line-through-width { lineWidth }?
  4655. & attribute style:text-line-through-color { "font-color" | color }?
  4656. & attribute style:text-line-through-text { \string }?
  4657. & attribute style:text-line-through-text-style { styleNameRef }?
  4658. & attribute style:text-position {
  4659. list { (percent | "super" | "sub"), percent? }
  4660. }?
  4661. & attribute style:font-name { \string }?
  4662. & attribute style:font-name-asian { \string }?
  4663. & attribute style:font-name-complex { \string }?
  4664. & attribute fo:font-family { \string }?
  4665. & attribute style:font-family-asian { \string }?
  4666. & attribute style:font-family-complex { \string }?
  4667. & attribute style:font-family-generic { fontFamilyGeneric }?
  4668. & attribute style:font-family-generic-asian { fontFamilyGeneric }?
  4669. & attribute style:font-family-generic-complex { fontFamilyGeneric }?
  4670. & attribute style:font-style-name { \string }?
  4671. & attribute style:font-style-name-asian { \string }?
  4672. & attribute style:font-style-name-complex { \string }?
  4673. & attribute style:font-pitch { fontPitch }?
  4674. & attribute style:font-pitch-asian { fontPitch }?
  4675. & attribute style:font-pitch-complex { fontPitch }?
  4676. & attribute style:font-charset { textEncoding }?
  4677. & attribute style:font-charset-asian { textEncoding }?
  4678. & attribute style:font-charset-complex { textEncoding }?
  4679. & attribute fo:font-size { positiveLength | percent }?
  4680. & attribute style:font-size-asian { positiveLength | percent }?
  4681. & attribute style:font-size-complex { positiveLength | percent }?
  4682. & attribute style:font-size-rel { length }?
  4683. & attribute style:font-size-rel-asian { length }?
  4684. & attribute style:font-size-rel-complex { length }?
  4685. & attribute style:script-type {
  4686. "latin" | "asian" | "complex" | "ignore"
  4687. }?
  4688. & attribute fo:letter-spacing { length | "normal" }?
  4689. & attribute fo:language { languageCode }?
  4690. & attribute style:language-asian { languageCode }?
  4691. & attribute style:language-complex { languageCode }?
  4692. & attribute fo:country { countryCode }?
  4693. & attribute style:country-asian { countryCode }?
  4694. & attribute style:country-complex { countryCode }?
  4695. & attribute fo:script { scriptCode }?
  4696. & attribute style:script-asian { scriptCode }?
  4697. & attribute style:script-complex { scriptCode }?
  4698. & attribute style:rfc-language-tag { language }?
  4699. & attribute style:rfc-language-tag-asian { language }?
  4700. & attribute style:rfc-language-tag-complex { language }?
  4701. & attribute fo:font-style { fontStyle }?
  4702. & attribute style:font-style-asian { fontStyle }?
  4703. & attribute style:font-style-complex { fontStyle }?
  4704. & attribute style:font-relief { "none" | "embossed" | "engraved" }?
  4705. & attribute fo:text-shadow { shadowType }?
  4706. & attribute style:text-underline-type { lineType }?
  4707. & attribute style:text-underline-style { lineStyle }?
  4708. & attribute style:text-underline-width { lineWidth }?
  4709. & attribute style:text-underline-color { "font-color" | color }?
  4710. & attribute style:text-overline-type { lineType }?
  4711. & attribute style:text-overline-style { lineStyle }?
  4712. & attribute style:text-overline-width { lineWidth }?
  4713. & attribute style:text-overline-color { "font-color" | color }?
  4714. & attribute style:text-overline-mode { lineMode }?
  4715. & attribute fo:font-weight { fontWeight }?
  4716. & attribute style:font-weight-asian { fontWeight }?
  4717. & attribute style:font-weight-complex { fontWeight }?
  4718. & attribute style:text-underline-mode { lineMode }?
  4719. & attribute style:text-line-through-mode { lineMode }?
  4720. & attribute style:letter-kerning { boolean }?
  4721. & attribute style:text-blinking { boolean }?
  4722. & common-background-color-attlist
  4723. & attribute style:text-combine { "none" | "letters" | "lines" }?
  4724. & attribute style:text-combine-start-char { character }?
  4725. & attribute style:text-combine-end-char { character }?
  4726. & attribute style:text-emphasize {
  4727. "none"
  4728. | list {
  4729. ("none" | "accent" | "dot" | "circle" | "disc"),
  4730. ("above" | "below")
  4731. }
  4732. }?
  4733. & attribute style:text-scale { percent }?
  4734. & attribute style:text-rotation-angle { angle }?
  4735. & attribute style:text-rotation-scale { "fixed" | "line-height" }?
  4736. & attribute fo:hyphenate { boolean }?
  4737. & attribute fo:hyphenation-remain-char-count { positiveInteger }?
  4738. & attribute fo:hyphenation-push-char-count { positiveInteger }?
  4739. & (attribute text:display { "true" }
  4740. | attribute text:display { "none" }
  4741. | (attribute text:display { "condition" },
  4742. attribute text:condition { "none" })
  4743. | empty)
  4744. style-text-properties-content-strict =
  4745. style-text-properties-attlist, style-text-properties-elements
  4746. style-text-properties-elements = empty
  4747. styleName = xsd:NCName
  4748. styleNameRef = xsd:NCName | empty
  4749. styleNameRefs = list { xsd:NCName* }
  4750. styles =
  4751. style-style*
  4752. & text-list-style*
  4753. & number-number-style*
  4754. & number-currency-style*
  4755. & number-percentage-style*
  4756. & number-date-style*
  4757. & number-time-style*
  4758. & number-boolean-style*
  4759. & number-text-style*
  4760. svg-definition-src =
  4761. element svg:definition-src {
  4762. common-svg-font-face-xlink-attlist, empty
  4763. }
  4764. svg-desc = element svg:desc { text }
  4765. svg-font-face-format =
  4766. element svg:font-face-format {
  4767. attribute svg:string { \string }?,
  4768. empty
  4769. }
  4770. svg-font-face-name =
  4771. element svg:font-face-name {
  4772. attribute svg:name { \string }?,
  4773. empty
  4774. }
  4775. svg-font-face-src =
  4776. element svg:font-face-src {
  4777. (svg-font-face-uri | svg-font-face-name)+
  4778. }
  4779. svg-font-face-uri =
  4780. element svg:font-face-uri {
  4781. common-svg-font-face-xlink-attlist, svg-font-face-format*
  4782. }
  4783. svg-linearGradient =
  4784. element svg:linearGradient {
  4785. common-svg-gradient-attlist,
  4786. attribute svg:x1 { coordinate | percent }?,
  4787. attribute svg:y1 { coordinate | percent }?,
  4788. attribute svg:x2 { coordinate | percent }?,
  4789. attribute svg:y2 { coordinate | percent }?,
  4790. svg-stop*
  4791. }
  4792. svg-radialGradient =
  4793. element svg:radialGradient {
  4794. common-svg-gradient-attlist,
  4795. attribute svg:cx { coordinate | percent }?,
  4796. attribute svg:cy { coordinate | percent }?,
  4797. attribute svg:r { coordinate | percent }?,
  4798. attribute svg:fx { coordinate | percent }?,
  4799. attribute svg:fy { coordinate | percent }?,
  4800. svg-stop*
  4801. }
  4802. svg-stop =
  4803. element svg:stop {
  4804. attribute svg:offset { double | percent },
  4805. attribute svg:stop-color { color }?,
  4806. attribute svg:stop-opacity { double }?
  4807. }
  4808. svg-title = element svg:title { text }
  4809. tab-cycles = "records" | "current" | "page"
  4810. table-background =
  4811. element table:background { table-background-attlist, empty }
  4812. table-background-attlist = attribute table:style-name { styleNameRef }
  4813. table-body = element table:body { common-table-template-attlist, empty }
  4814. table-calculation-setting-attlist =
  4815. attribute table:case-sensitive { boolean }?
  4816. & attribute table:precision-as-shown { boolean }?
  4817. & attribute table:search-criteria-must-apply-to-whole-cell {
  4818. boolean
  4819. }?
  4820. & attribute table:automatic-find-labels { boolean }?
  4821. & attribute table:use-regular-expressions { boolean }?
  4822. & attribute table:use-wildcards { boolean }?
  4823. & attribute table:null-year { positiveInteger }?
  4824. table-calculation-settings =
  4825. element table:calculation-settings {
  4826. table-calculation-setting-attlist,
  4827. table-null-date?,
  4828. table-iteration?
  4829. }
  4830. table-cell-address =
  4831. element table:cell-address {
  4832. common-table-cell-address-attlist, empty
  4833. }
  4834. table-cell-content-change =
  4835. element table:cell-content-change {
  4836. common-table-change-attlist,
  4837. table-cell-address,
  4838. office-change-info,
  4839. table-dependencies?,
  4840. table-deletions?,
  4841. table-previous
  4842. }
  4843. table-cell-content-deletion =
  4844. element table:cell-content-deletion {
  4845. attribute table:id { \string }?,
  4846. table-cell-address?,
  4847. table-change-track-table-cell?
  4848. }
  4849. table-cell-range-source =
  4850. element table:cell-range-source {
  4851. table-table-cell-range-source-attlist,
  4852. table-linked-source-attlist,
  4853. empty
  4854. }
  4855. table-change-deletion =
  4856. element table:change-deletion {
  4857. attribute table:id { \string }?,
  4858. empty
  4859. }
  4860. table-change-track-table-cell =
  4861. element table:change-track-table-cell {
  4862. table-change-track-table-cell-attlist, text-p*
  4863. }
  4864. table-change-track-table-cell-attlist =
  4865. attribute table:cell-address { cellAddress }?
  4866. & attribute table:matrix-covered { boolean }?
  4867. & attribute table:formula { \string }?
  4868. & attribute table:number-matrix-columns-spanned { positiveInteger }?
  4869. & attribute table:number-matrix-rows-spanned { positiveInteger }?
  4870. & common-value-and-type-attlist?
  4871. table-columns = table-table-columns | table-table-column+
  4872. table-columns-and-groups =
  4873. (table-table-column-group | table-columns-no-group)+
  4874. table-columns-no-group =
  4875. (table-columns, (table-table-header-columns, table-columns?)?)
  4876. | (table-table-header-columns, table-columns?)
  4877. table-consolidation =
  4878. element table:consolidation { table-consolidation-attlist, empty }
  4879. table-consolidation-attlist =
  4880. attribute table:function {
  4881. "average"
  4882. | "count"
  4883. | "countnums"
  4884. | "max"
  4885. | "min"
  4886. | "product"
  4887. | "stdev"
  4888. | "stdevp"
  4889. | "sum"
  4890. | "var"
  4891. | "varp"
  4892. | \string
  4893. }
  4894. & attribute table:source-cell-range-addresses { cellRangeAddressList }
  4895. & attribute table:target-cell-address { cellAddress }
  4896. & attribute table:use-labels { "none" | "row" | "column" | "both" }?
  4897. & attribute table:link-to-source-data { boolean }?
  4898. table-content-validation =
  4899. element table:content-validation {
  4900. table-validation-attlist,
  4901. table-help-message?,
  4902. (table-error-message | (table-error-macro, office-event-listeners))?
  4903. }
  4904. table-content-validations =
  4905. element table:content-validations { table-content-validation+ }
  4906. table-covered-table-cell =
  4907. element table:covered-table-cell {
  4908. table-table-cell-attlist, table-table-cell-content
  4909. }
  4910. table-cut-offs =
  4911. element table:cut-offs {
  4912. table-movement-cut-off+
  4913. | (table-insertion-cut-off, table-movement-cut-off*)
  4914. }
  4915. table-data-pilot-display-info =
  4916. element table:data-pilot-display-info {
  4917. table-data-pilot-display-info-attlist, empty
  4918. }
  4919. table-data-pilot-display-info-attlist =
  4920. attribute table:enabled { boolean }
  4921. & attribute table:data-field { \string }
  4922. & attribute table:member-count { nonNegativeInteger }
  4923. & attribute table:display-member-mode { "from-top" | "from-bottom" }
  4924. table-data-pilot-field =
  4925. element table:data-pilot-field {
  4926. table-data-pilot-field-attlist,
  4927. table-data-pilot-level?,
  4928. table-data-pilot-field-reference?,
  4929. table-data-pilot-groups?
  4930. }
  4931. table-data-pilot-field-attlist =
  4932. attribute table:source-field-name { \string }
  4933. & (attribute table:orientation {
  4934. "row" | "column" | "data" | "hidden"
  4935. }
  4936. | (attribute table:orientation { "page" },
  4937. attribute table:selected-page { \string }))
  4938. & attribute table:is-data-layout-field { \string }?
  4939. & attribute table:function {
  4940. "auto"
  4941. | "average"
  4942. | "count"
  4943. | "countnums"
  4944. | "max"
  4945. | "min"
  4946. | "product"
  4947. | "stdev"
  4948. | "stdevp"
  4949. | "sum"
  4950. | "var"
  4951. | "varp"
  4952. | \string
  4953. }?
  4954. & attribute table:used-hierarchy { integer }?
  4955. table-data-pilot-field-reference =
  4956. element table:data-pilot-field-reference {
  4957. table-data-pilot-field-reference-attlist
  4958. }
  4959. table-data-pilot-field-reference-attlist =
  4960. attribute table:field-name { \string }
  4961. & ((attribute table:member-type { "named" },
  4962. attribute table:member-name { \string })
  4963. | attribute table:member-type { "previous" | "next" })
  4964. & attribute table:type {
  4965. "none"
  4966. | "member-difference"
  4967. | "member-percentage"
  4968. | "member-percentage-difference"
  4969. | "running-total"
  4970. | "row-percentage"
  4971. | "column-percentage"
  4972. | "total-percentage"
  4973. | "index"
  4974. }
  4975. table-data-pilot-group =
  4976. element table:data-pilot-group {
  4977. table-data-pilot-group-attlist, table-data-pilot-group-member+
  4978. }
  4979. table-data-pilot-group-attlist = attribute table:name { \string }
  4980. table-data-pilot-group-member =
  4981. element table:data-pilot-group-member {
  4982. table-data-pilot-group-member-attlist
  4983. }
  4984. table-data-pilot-group-member-attlist = attribute table:name { \string }
  4985. table-data-pilot-groups =
  4986. element table:data-pilot-groups {
  4987. table-data-pilot-groups-attlist, table-data-pilot-group+
  4988. }
  4989. table-data-pilot-groups-attlist =
  4990. attribute table:source-field-name { \string }
  4991. & (attribute table:date-start { dateOrDateTime | "auto" }
  4992. | attribute table:start { double | "auto" })?
  4993. & (attribute table:date-end { dateOrDateTime | "auto" }
  4994. | attribute table:end { double | "auto" })?
  4995. & attribute table:step { double }?
  4996. & attribute table:grouped-by {
  4997. "seconds"
  4998. | "minutes"
  4999. | "hours"
  5000. | "days"
  5001. | "months"
  5002. | "quarters"
  5003. | "years"
  5004. }?
  5005. # https://issues.oasis-open.org/browse/OFFICE-2118
  5006. table-data-pilot-layout-info =
  5007. element table:data-pilot-layout-info {
  5008. table-data-pilot-layout-info-attlist, empty
  5009. }
  5010. table-data-pilot-layout-info-attlist =
  5011. attribute table:layout-mode {
  5012. "tabular-layout"
  5013. | "outline-subtotals-top"
  5014. | "outline-subtotals-bottom"
  5015. }
  5016. & attribute table:add-empty-lines { boolean }
  5017. table-data-pilot-level =
  5018. element table:data-pilot-level {
  5019. table-data-pilot-level-attlist,
  5020. table-data-pilot-subtotals?,
  5021. table-data-pilot-members?,
  5022. table-data-pilot-display-info?,
  5023. table-data-pilot-sort-info?,
  5024. table-data-pilot-layout-info?
  5025. }
  5026. table-data-pilot-level-attlist = attribute table:show-empty { boolean }?
  5027. table-data-pilot-member =
  5028. element table:data-pilot-member {
  5029. table-data-pilot-member-attlist, empty
  5030. }
  5031. table-data-pilot-member-attlist =
  5032. attribute table:name { \string }
  5033. & attribute table:display { boolean }?
  5034. & attribute table:show-details { boolean }?
  5035. table-data-pilot-members =
  5036. element table:data-pilot-members { table-data-pilot-member* }
  5037. table-data-pilot-sort-info =
  5038. element table:data-pilot-sort-info {
  5039. table-data-pilot-sort-info-attlist, empty
  5040. }
  5041. table-data-pilot-sort-info-attlist =
  5042. ((attribute table:sort-mode { "data" },
  5043. attribute table:data-field { \string })
  5044. | attribute table:sort-mode { "none" | "manual" | "name" })
  5045. & attribute table:order { "ascending" | "descending" }
  5046. table-data-pilot-subtotal =
  5047. element table:data-pilot-subtotal {
  5048. table-data-pilot-subtotal-attlist, empty
  5049. }
  5050. table-data-pilot-subtotal-attlist =
  5051. attribute table:function {
  5052. "auto"
  5053. | "average"
  5054. | "count"
  5055. | "countnums"
  5056. | "max"
  5057. | "min"
  5058. | "product"
  5059. | "stdev"
  5060. | "stdevp"
  5061. | "sum"
  5062. | "var"
  5063. | "varp"
  5064. | \string
  5065. }
  5066. table-data-pilot-subtotals =
  5067. element table:data-pilot-subtotals { table-data-pilot-subtotal* }
  5068. table-data-pilot-table =
  5069. element table:data-pilot-table {
  5070. table-data-pilot-table-attlist,
  5071. (table-database-source-sql
  5072. | table-database-source-table
  5073. | table-database-source-query
  5074. | table-source-service
  5075. | table-source-cell-range)?,
  5076. table-data-pilot-field+
  5077. }
  5078. table-data-pilot-table-attlist =
  5079. attribute table:name { \string }
  5080. & attribute table:application-data { \string }?
  5081. & attribute table:grand-total { "none" | "row" | "column" | "both" }?
  5082. & attribute table:ignore-empty-rows { boolean }?
  5083. & attribute table:identify-categories { boolean }?
  5084. & attribute table:target-range-address { cellRangeAddress }
  5085. & attribute table:buttons { cellRangeAddressList }?
  5086. & attribute table:show-filter-button { boolean }?
  5087. & attribute table:drill-down-on-double-click { boolean }?
  5088. table-data-pilot-tables =
  5089. element table:data-pilot-tables { table-data-pilot-table* }
  5090. table-database-range =
  5091. element table:database-range {
  5092. table-database-range-attlist,
  5093. (table-database-source-sql
  5094. | table-database-source-table
  5095. | table-database-source-query)?,
  5096. table-filter?,
  5097. table-sort?,
  5098. table-subtotal-rules?
  5099. }
  5100. table-database-range-attlist =
  5101. attribute table:name { \string }?
  5102. & attribute table:is-selection { boolean }?
  5103. & attribute table:on-update-keep-styles { boolean }?
  5104. & attribute table:on-update-keep-size { boolean }?
  5105. & attribute table:has-persistent-data { boolean }?
  5106. & attribute table:orientation { "column" | "row" }?
  5107. & attribute table:contains-header { boolean }?
  5108. & attribute table:display-filter-buttons { boolean }?
  5109. & attribute table:target-range-address { cellRangeAddress }
  5110. & attribute table:refresh-delay { boolean }?
  5111. table-database-ranges =
  5112. element table:database-ranges { table-database-range* }
  5113. table-database-source-query =
  5114. element table:database-source-table {
  5115. table-database-source-table-attlist, empty
  5116. }
  5117. table-database-source-query-attlist =
  5118. attribute table:database-name { \string }
  5119. & attribute table:query-name { \string }
  5120. table-database-source-sql =
  5121. element table:database-source-sql {
  5122. table-database-source-sql-attlist, empty
  5123. }
  5124. table-database-source-sql-attlist =
  5125. attribute table:database-name { \string }
  5126. & attribute table:sql-statement { \string }
  5127. & attribute table:parse-sql-statement { boolean }?
  5128. table-database-source-table =
  5129. element table:database-source-query {
  5130. table-database-source-query-attlist, empty
  5131. }
  5132. table-database-source-table-attlist =
  5133. attribute table:database-name { \string }
  5134. & attribute table:database-table-name { \string }
  5135. table-dde-link =
  5136. element table:dde-link { office-dde-source, table-table }
  5137. table-dde-links = element table:dde-links { table-dde-link+ }
  5138. table-decls =
  5139. table-calculation-settings?,
  5140. table-content-validations?,
  5141. table-label-ranges?
  5142. table-deletion =
  5143. element table:deletion {
  5144. table-deletion-attlist,
  5145. common-table-change-attlist,
  5146. office-change-info,
  5147. table-dependencies?,
  5148. table-deletions?,
  5149. table-cut-offs?
  5150. }
  5151. table-deletion-attlist =
  5152. attribute table:type { "row" | "column" | "table" }
  5153. & attribute table:position { integer }
  5154. & attribute table:table { integer }?
  5155. & attribute table:multi-deletion-spanned { integer }?
  5156. table-deletions =
  5157. element table:deletions {
  5158. (table-cell-content-deletion | table-change-deletion)+
  5159. }
  5160. table-dependencies = element table:dependencies { table-dependency+ }
  5161. table-dependency =
  5162. element table:dependency {
  5163. attribute table:id { \string },
  5164. empty
  5165. }
  5166. table-desc = element table:desc { text }
  5167. table-detective =
  5168. element table:detective { table-highlighted-range*, table-operation* }
  5169. table-error-macro =
  5170. element table:error-macro {
  5171. attribute table:execute { boolean }?
  5172. }
  5173. table-error-message =
  5174. element table:error-message {
  5175. attribute table:title { \string }?,
  5176. attribute table:display { boolean }?,
  5177. attribute table:message-type {
  5178. "stop" | "warning" | "information"
  5179. }?,
  5180. text-p*
  5181. }
  5182. table-even-columns =
  5183. element table:even-columns { common-table-template-attlist, empty }
  5184. table-even-rows =
  5185. element table:even-rows { common-table-template-attlist, empty }
  5186. table-filter =
  5187. element table:filter {
  5188. table-filter-attlist,
  5189. (table-filter-condition | table-filter-and | table-filter-or)
  5190. }
  5191. table-filter-and =
  5192. element table:filter-and {
  5193. (table-filter-or | table-filter-condition)+
  5194. }
  5195. table-filter-attlist =
  5196. attribute table:target-range-address { cellRangeAddress }?
  5197. & attribute table:condition-source { "self" | "cell-range" }?
  5198. & attribute table:condition-source-range-address { cellRangeAddress }?
  5199. & attribute table:display-duplicates { boolean }?
  5200. table-filter-condition =
  5201. element table:filter-condition {
  5202. table-filter-condition-attlist, table-filter-set-item*
  5203. }
  5204. table-filter-condition-attlist =
  5205. attribute table:field-number { nonNegativeInteger }
  5206. & attribute table:value { \string | double }
  5207. & attribute table:operator { \string }
  5208. & attribute table:case-sensitive { \string }?
  5209. & attribute table:data-type { "text" | "number" }?
  5210. table-filter-or =
  5211. element table:filter-or {
  5212. (table-filter-and | table-filter-condition)+
  5213. }
  5214. table-filter-set-item =
  5215. element table:filter-set-item {
  5216. attribute table:value { \string },
  5217. empty
  5218. }
  5219. table-first-column =
  5220. element table:first-column { common-table-template-attlist, empty }
  5221. table-first-row =
  5222. element table:first-row { common-table-template-attlist, empty }
  5223. table-functions =
  5224. table-named-expressions?,
  5225. table-database-ranges?,
  5226. table-data-pilot-tables?,
  5227. table-consolidation?,
  5228. table-dde-links?
  5229. table-help-message =
  5230. element table:help-message {
  5231. attribute table:title { \string }?,
  5232. attribute table:display { boolean }?,
  5233. text-p*
  5234. }
  5235. table-highlighted-range =
  5236. element table:highlighted-range {
  5237. (table-highlighted-range-attlist
  5238. | table-highlighted-range-attlist-invalid),
  5239. empty
  5240. }
  5241. table-highlighted-range-attlist =
  5242. attribute table:cell-range-address { cellRangeAddress }?
  5243. & attribute table:direction {
  5244. "from-another-table" | "to-another-table" | "from-same-table"
  5245. }
  5246. & attribute table:contains-error { boolean }?
  5247. table-highlighted-range-attlist-invalid =
  5248. attribute table:marked-invalid { boolean }
  5249. table-insertion =
  5250. element table:insertion {
  5251. table-insertion-attlist,
  5252. common-table-change-attlist,
  5253. office-change-info,
  5254. table-dependencies?,
  5255. table-deletions?
  5256. }
  5257. table-insertion-attlist =
  5258. attribute table:type { "row" | "column" | "table" }
  5259. & attribute table:position { integer }
  5260. & attribute table:count { positiveInteger }?
  5261. & attribute table:table { integer }?
  5262. table-insertion-cut-off =
  5263. element table:insertion-cut-off {
  5264. table-insertion-cut-off-attlist, empty
  5265. }
  5266. table-insertion-cut-off-attlist =
  5267. attribute table:id { \string }
  5268. & attribute table:position { integer }
  5269. table-iteration =
  5270. element table:iteration {
  5271. attribute table:status { "enable" | "disable" }?,
  5272. attribute table:steps { positiveInteger }?,
  5273. attribute table:maximum-difference { double }?,
  5274. empty
  5275. }
  5276. table-label-range =
  5277. element table:label-range { table-label-range-attlist, empty }
  5278. table-label-range-attlist =
  5279. attribute table:label-cell-range-address { cellRangeAddress }
  5280. & attribute table:data-cell-range-address { cellRangeAddress }
  5281. & attribute table:orientation { "column" | "row" }
  5282. table-label-ranges = element table:label-ranges { table-label-range* }
  5283. table-last-column =
  5284. element table:last-column { common-table-template-attlist, empty }
  5285. table-last-row =
  5286. element table:last-row { common-table-template-attlist, empty }
  5287. table-linked-source-attlist =
  5288. attribute xlink:type { "simple" }
  5289. & attribute xlink:href { anyIRI }
  5290. & attribute xlink:actuate { "onRequest" }?
  5291. & attribute table:filter-name { \string }?
  5292. & attribute table:filter-options { \string }?
  5293. & attribute table:refresh-delay { duration }?
  5294. table-movement =
  5295. element table:movement {
  5296. common-table-change-attlist,
  5297. table-source-range-address,
  5298. table-target-range-address,
  5299. office-change-info,
  5300. table-dependencies?,
  5301. table-deletions?
  5302. }
  5303. table-movement-cut-off =
  5304. element table:movement-cut-off {
  5305. table-movement-cut-off-attlist, empty
  5306. }
  5307. table-movement-cut-off-attlist =
  5308. attribute table:position { integer }
  5309. | (attribute table:start-position { integer },
  5310. attribute table:end-position { integer })
  5311. table-named-expression =
  5312. element table:named-expression {
  5313. table-named-expression-attlist, empty
  5314. }
  5315. table-named-expression-attlist =
  5316. attribute table:name { \string },
  5317. attribute table:expression { \string },
  5318. attribute table:base-cell-address { cellAddress }?
  5319. table-named-expressions =
  5320. element table:named-expressions {
  5321. (table-named-range | table-named-expression)*
  5322. }
  5323. table-named-range =
  5324. element table:named-range { table-named-range-attlist, empty }
  5325. table-named-range-attlist =
  5326. attribute table:name { \string },
  5327. attribute table:cell-range-address { cellRangeAddress },
  5328. attribute table:base-cell-address { cellAddress }?,
  5329. attribute table:range-usable-as {
  5330. "none"
  5331. | list {
  5332. ("print-range" | "filter" | "repeat-row" | "repeat-column")+
  5333. }
  5334. }?
  5335. table-null-date =
  5336. element table:null-date {
  5337. attribute table:value-type { "date" }?,
  5338. attribute table:date-value { date }?,
  5339. empty
  5340. }
  5341. table-odd-columns =
  5342. element table:odd-columns { common-table-template-attlist, empty }
  5343. table-odd-rows =
  5344. element table:odd-rows { common-table-template-attlist, empty }
  5345. table-operation =
  5346. element table:operation { table-operation-attlist, empty }
  5347. table-operation-attlist =
  5348. attribute table:name {
  5349. "trace-dependents"
  5350. | "remove-dependents"
  5351. | "trace-precedents"
  5352. | "remove-precedents"
  5353. | "trace-errors"
  5354. }
  5355. & attribute table:index { nonNegativeInteger }
  5356. table-previous =
  5357. element table:previous {
  5358. attribute table:id { \string }?,
  5359. table-change-track-table-cell
  5360. }
  5361. table-rows =
  5362. table-table-rows | (text-soft-page-break?, table-table-row)+
  5363. table-rows-and-groups = (table-table-row-group | table-rows-no-group)+
  5364. table-rows-no-group =
  5365. (table-rows, (table-table-header-rows, table-rows?)?)
  5366. | (table-table-header-rows, table-rows?)
  5367. table-scenario =
  5368. element table:scenario { table-scenario-attlist, empty }
  5369. table-scenario-attlist =
  5370. attribute table:scenario-ranges { cellRangeAddressList }
  5371. & attribute table:is-active { boolean }
  5372. & attribute table:display-border { boolean }?
  5373. & attribute table:border-color { color }?
  5374. & attribute table:copy-back { boolean }?
  5375. & attribute table:copy-styles { boolean }?
  5376. & attribute table:copy-formulas { boolean }?
  5377. & attribute table:comment { \string }?
  5378. & attribute table:protected { boolean }?
  5379. table-shapes = element table:shapes { shape+ }
  5380. table-sort = element table:sort { table-sort-attlist, table-sort-by+ }
  5381. table-sort-attlist =
  5382. attribute table:bind-styles-to-content { boolean }?
  5383. & attribute table:target-range-address { cellRangeAddress }?
  5384. & attribute table:case-sensitive { boolean }?
  5385. & attribute table:language { languageCode }?
  5386. & attribute table:country { countryCode }?
  5387. & attribute table:script { scriptCode }?
  5388. & attribute table:rfc-language-tag { language }?
  5389. & attribute table:algorithm { \string }?
  5390. & attribute table:embedded-number-behavior {
  5391. "alpha-numeric" | "integer" | "double"
  5392. }?
  5393. table-sort-by = element table:sort-by { table-sort-by-attlist, empty }
  5394. table-sort-by-attlist =
  5395. attribute table:field-number { nonNegativeInteger }
  5396. & attribute table:data-type {
  5397. "text" | "number" | "automatic" | \string
  5398. }?
  5399. & attribute table:order { "ascending" | "descending" }?
  5400. table-sort-groups =
  5401. element table:sort-groups { table-sort-groups-attlist, empty }
  5402. table-sort-groups-attlist =
  5403. attribute table:data-type {
  5404. "text" | "number" | "automatic" | \string
  5405. }?
  5406. & attribute table:order { "ascending" | "descending" }?
  5407. table-source-cell-range =
  5408. element table:source-cell-range {
  5409. table-source-cell-range-attlist, table-filter?
  5410. }
  5411. table-source-cell-range-attlist =
  5412. # OFFICE-3665
  5413. (attribute table:cell-range-address { cellRangeAddress }
  5414. | (attribute table:name { \string },
  5415. attribute table:cell-range-address { cellRangeAddress }?))
  5416. table-source-range-address =
  5417. element table:source-range-address {
  5418. common-table-range-attlist, empty
  5419. }
  5420. table-source-service =
  5421. element table:source-service { table-source-service-attlist, empty }
  5422. table-source-service-attlist =
  5423. attribute table:name { \string }
  5424. & attribute table:source-name { \string }
  5425. & attribute table:object-name { \string }
  5426. & attribute table:user-name { \string }?
  5427. & attribute table:password { \string }?
  5428. table-subtotal-field =
  5429. element table:subtotal-field { table-subtotal-field-attlist, empty }
  5430. table-subtotal-field-attlist =
  5431. attribute table:field-number { nonNegativeInteger }
  5432. & attribute table:function {
  5433. "average"
  5434. | "count"
  5435. | "countnums"
  5436. | "max"
  5437. | "min"
  5438. | "product"
  5439. | "stdev"
  5440. | "stdevp"
  5441. | "sum"
  5442. | "var"
  5443. | "varp"
  5444. | \string
  5445. }
  5446. table-subtotal-rule =
  5447. element table:subtotal-rule {
  5448. table-subtotal-rule-attlist, table-subtotal-field*
  5449. }
  5450. table-subtotal-rule-attlist =
  5451. attribute table:group-by-field-number { nonNegativeInteger }
  5452. table-subtotal-rules =
  5453. element table:subtotal-rules {
  5454. table-subtotal-rules-attlist,
  5455. table-sort-groups?,
  5456. table-subtotal-rule*
  5457. }
  5458. table-subtotal-rules-attlist =
  5459. attribute table:bind-styles-to-content { boolean }?
  5460. & attribute table:case-sensitive { boolean }?
  5461. & attribute table:page-breaks-on-group-change { boolean }?
  5462. table-table =
  5463. element table:table {
  5464. table-table-attlist,
  5465. table-title?,
  5466. table-desc?,
  5467. table-table-source?,
  5468. office-dde-source?,
  5469. table-scenario?,
  5470. office-forms?,
  5471. table-shapes?,
  5472. table-columns-and-groups,
  5473. table-rows-and-groups,
  5474. table-named-expressions?
  5475. }
  5476. table-table-attlist =
  5477. attribute table:name { \string }?
  5478. & attribute table:style-name { styleNameRef }?
  5479. & attribute table:template-name { \string }?
  5480. & attribute table:use-first-row-styles { boolean }?
  5481. & attribute table:use-last-row-styles { boolean }?
  5482. & attribute table:use-first-column-styles { boolean }?
  5483. & attribute table:use-last-column-styles { boolean }?
  5484. & attribute table:use-banding-rows-styles { boolean }?
  5485. & attribute table:use-banding-columns-styles { boolean }?
  5486. & attribute table:protected { boolean }?
  5487. & attribute table:protection-key { \string }?
  5488. & attribute table:protection-key-digest-algorithm { anyIRI }?
  5489. & attribute table:print { boolean }?
  5490. & attribute table:print-ranges { cellRangeAddressList }?
  5491. & xml-id?
  5492. & attribute table:is-sub-table { boolean }?
  5493. table-table-cell =
  5494. element table:table-cell {
  5495. table-table-cell-attlist,
  5496. table-table-cell-attlist-extra,
  5497. table-table-cell-content
  5498. }
  5499. table-table-cell-attlist =
  5500. attribute table:number-columns-repeated { positiveInteger }?
  5501. & attribute table:style-name { styleNameRef }?
  5502. & attribute table:content-validation-name { \string }?
  5503. & attribute table:formula { \string }?
  5504. & common-value-and-type-attlist?
  5505. & attribute table:protect { boolean }?
  5506. & attribute table:protected { boolean }?
  5507. & xml-id?
  5508. & common-in-content-meta-attlist?
  5509. table-table-cell-attlist-extra =
  5510. attribute table:number-columns-spanned { positiveInteger }?
  5511. & attribute table:number-rows-spanned { positiveInteger }?
  5512. & attribute table:number-matrix-columns-spanned { positiveInteger }?
  5513. & attribute table:number-matrix-rows-spanned { positiveInteger }?
  5514. table-table-cell-content =
  5515. table-cell-range-source?,
  5516. office-annotation?,
  5517. table-detective?,
  5518. text-content*
  5519. table-table-cell-range-source-attlist =
  5520. attribute table:name { \string }
  5521. & attribute table:last-column-spanned { positiveInteger }
  5522. & attribute table:last-row-spanned { positiveInteger }
  5523. table-table-column =
  5524. element table:table-column { table-table-column-attlist, empty }
  5525. table-table-column-attlist =
  5526. attribute table:number-columns-repeated { positiveInteger }?
  5527. & attribute table:style-name { styleNameRef }?
  5528. & attribute table:visibility { table-visibility-value }?
  5529. & attribute table:default-cell-style-name { styleNameRef }?
  5530. & xml-id?
  5531. table-table-column-group =
  5532. element table:table-column-group {
  5533. table-table-column-group-attlist, table-columns-and-groups
  5534. }
  5535. table-table-column-group-attlist = attribute table:display { boolean }?
  5536. table-table-columns =
  5537. element table:table-columns { table-table-column+ }
  5538. table-table-header-columns =
  5539. element table:table-header-columns { table-table-column+ }
  5540. table-table-header-rows =
  5541. element table:table-header-rows {
  5542. (text-soft-page-break?, table-table-row)+
  5543. }
  5544. table-table-row =
  5545. element table:table-row {
  5546. table-table-row-attlist,
  5547. (table-table-cell | table-covered-table-cell)+
  5548. }
  5549. table-table-row-attlist =
  5550. attribute table:number-rows-repeated { positiveInteger }?
  5551. & attribute table:style-name { styleNameRef }?
  5552. & attribute table:default-cell-style-name { styleNameRef }?
  5553. & attribute table:visibility { table-visibility-value }?
  5554. & xml-id?
  5555. table-table-row-group =
  5556. element table:table-row-group {
  5557. table-table-row-group-attlist, table-rows-and-groups
  5558. }
  5559. table-table-row-group-attlist = attribute table:display { boolean }?
  5560. table-table-rows =
  5561. element table:table-rows { (text-soft-page-break?, table-table-row)+ }
  5562. table-table-source =
  5563. element table:table-source {
  5564. table-table-source-attlist, table-linked-source-attlist, empty
  5565. }
  5566. table-table-source-attlist =
  5567. attribute table:mode { "copy-all" | "copy-results-only" }?
  5568. & attribute table:table-name { \string }?
  5569. table-table-template =
  5570. element table:table-template {
  5571. table-table-template-attlist,
  5572. table-first-row?,
  5573. table-last-row?,
  5574. table-first-column?,
  5575. table-last-column?,
  5576. table-body,
  5577. table-even-rows?,
  5578. table-odd-rows?,
  5579. table-even-columns?,
  5580. table-odd-columns?,
  5581. table-background?
  5582. }
  5583. table-table-template-attlist =
  5584. attribute table:name { \string }
  5585. & attribute table:first-row-start-column { rowOrCol }
  5586. & attribute table:first-row-end-column { rowOrCol }
  5587. & attribute table:last-row-start-column { rowOrCol }
  5588. & attribute table:last-row-end-column { rowOrCol }
  5589. table-target-range-address =
  5590. element table:target-range-address {
  5591. common-table-range-attlist, empty
  5592. }
  5593. table-title = element table:title { text }
  5594. table-tracked-changes =
  5595. element table:tracked-changes {
  5596. table-tracked-changes-attlist,
  5597. (table-cell-content-change
  5598. | table-insertion
  5599. | table-deletion
  5600. | table-movement)*
  5601. }
  5602. table-tracked-changes-attlist =
  5603. attribute table:track-changes { boolean }?
  5604. table-validation-attlist =
  5605. attribute table:name { \string }
  5606. & attribute table:condition { \string }?
  5607. & attribute table:base-cell-address { cellAddress }?
  5608. & attribute table:allow-empty-cell { boolean }?
  5609. & attribute table:display-list {
  5610. "none" | "unsorted" | "sort-ascending"
  5611. }?
  5612. table-visibility-value = "visible" | "collapse" | "filter"
  5613. target-frame = attribute office:target-frame { targetFrameName }?
  5614. target-location = attribute xlink:href { anyIRI }?
  5615. targetFrameName = "_self" | "_blank" | "_parent" | "_top" | \string
  5616. text-a =
  5617. element text:a {
  5618. text-a-attlist, office-event-listeners?, paragraph-content*
  5619. }
  5620. text-a-attlist =
  5621. attribute office:name { \string }?
  5622. & attribute office:title { \string }?
  5623. & attribute xlink:type { "simple" }
  5624. & attribute xlink:href { anyIRI }
  5625. & attribute xlink:actuate { "onRequest" }?
  5626. & attribute office:target-frame-name { targetFrameName }?
  5627. & attribute xlink:show { "new" | "replace" }?
  5628. & attribute text:style-name { styleNameRef }?
  5629. & attribute text:visited-style-name { styleNameRef }?
  5630. text-alphabetical-index =
  5631. element text:alphabetical-index {
  5632. common-section-attlist,
  5633. text-alphabetical-index-source,
  5634. text-index-body
  5635. }
  5636. text-alphabetical-index-auto-mark-file =
  5637. element text:alphabetical-index-auto-mark-file {
  5638. attribute xlink:type { "simple" },
  5639. attribute xlink:href { anyIRI }
  5640. }
  5641. text-alphabetical-index-entry-template =
  5642. element text:alphabetical-index-entry-template {
  5643. text-alphabetical-index-entry-template-attrs,
  5644. (text-index-entry-chapter
  5645. | text-index-entry-page-number
  5646. | text-index-entry-text
  5647. | text-index-entry-span
  5648. | text-index-entry-tab-stop)*
  5649. }
  5650. text-alphabetical-index-entry-template-attrs =
  5651. attribute text:outline-level { "1" | "2" | "3" | "separator" }
  5652. & attribute text:style-name { styleNameRef }
  5653. text-alphabetical-index-mark-attrs =
  5654. attribute text:key1 { \string }?
  5655. & attribute text:key2 { \string }?
  5656. & attribute text:string-value-phonetic { \string }?
  5657. & attribute text:key1-phonetic { \string }?
  5658. & attribute text:key2-phonetic { \string }?
  5659. & attribute text:main-entry { boolean }?
  5660. text-alphabetical-index-source =
  5661. element text:alphabetical-index-source {
  5662. text-alphabetical-index-source-attrs,
  5663. text-index-title-template?,
  5664. text-alphabetical-index-entry-template*
  5665. }
  5666. text-alphabetical-index-source-attrs =
  5667. text-index-scope-attr
  5668. & text-relative-tab-stop-position-attr
  5669. & attribute text:ignore-case { boolean }?
  5670. & attribute text:main-entry-style-name { styleNameRef }?
  5671. & attribute text:alphabetical-separators { boolean }?
  5672. & attribute text:combine-entries { boolean }?
  5673. & attribute text:combine-entries-with-dash { boolean }?
  5674. & attribute text:combine-entries-with-pp { boolean }?
  5675. & attribute text:use-keys-as-entries { boolean }?
  5676. & attribute text:capitalize-entries { boolean }?
  5677. & attribute text:comma-separated { boolean }?
  5678. & attribute fo:language { languageCode }?
  5679. & attribute fo:country { countryCode }?
  5680. & attribute fo:script { scriptCode }?
  5681. & attribute style:rfc-language-tag { language }?
  5682. & attribute text:sort-algorithm { \string }?
  5683. text-bibliography =
  5684. element text:bibliography {
  5685. common-section-attlist, text-bibliography-source, text-index-body
  5686. }
  5687. text-bibliography-configuration =
  5688. element text:bibliography-configuration {
  5689. text-bibliography-configuration-attlist, text-sort-key*
  5690. }
  5691. text-bibliography-configuration-attlist =
  5692. attribute text:prefix { \string }?
  5693. & attribute text:suffix { \string }?
  5694. & attribute text:numbered-entries { boolean }?
  5695. & attribute text:sort-by-position { boolean }?
  5696. & attribute fo:language { languageCode }?
  5697. & attribute fo:country { countryCode }?
  5698. & attribute fo:script { scriptCode }?
  5699. & attribute style:rfc-language-tag { language }?
  5700. & attribute text:sort-algorithm { \string }?
  5701. text-bibliography-entry-template =
  5702. element text:bibliography-entry-template {
  5703. text-bibliography-entry-template-attrs,
  5704. (text-index-entry-span
  5705. | text-index-entry-tab-stop
  5706. | text-index-entry-bibliography)*
  5707. }
  5708. text-bibliography-entry-template-attrs =
  5709. attribute text:bibliography-type { text-bibliography-types }
  5710. & attribute text:style-name { styleNameRef }
  5711. text-bibliography-source =
  5712. element text:bibliography-source {
  5713. text-index-title-template?, text-bibliography-entry-template*
  5714. }
  5715. text-bibliography-types =
  5716. "article"
  5717. | "book"
  5718. | "booklet"
  5719. | "conference"
  5720. | "custom1"
  5721. | "custom2"
  5722. | "custom3"
  5723. | "custom4"
  5724. | "custom5"
  5725. | "email"
  5726. | "inbook"
  5727. | "incollection"
  5728. | "inproceedings"
  5729. | "journal"
  5730. | "manual"
  5731. | "mastersthesis"
  5732. | "misc"
  5733. | "phdthesis"
  5734. | "proceedings"
  5735. | "techreport"
  5736. | "unpublished"
  5737. | "www"
  5738. text-bookmark = element text:bookmark { text-bookmark-attlist, empty }
  5739. text-bookmark-attlist =
  5740. attribute text:name { \string }
  5741. & xml-id?
  5742. text-bookmark-end =
  5743. element text:bookmark-end { text-bookmark-end-attlist, empty }
  5744. text-bookmark-end-attlist = attribute text:name { \string }
  5745. text-bookmark-ref-content =
  5746. attribute text:reference-format {
  5747. common-ref-format-values
  5748. | "number-no-superior"
  5749. | "number-all-superior"
  5750. | "number"
  5751. }?
  5752. text-bookmark-start =
  5753. element text:bookmark-start { text-bookmark-start-attlist, empty }
  5754. text-bookmark-start-attlist =
  5755. attribute text:name { \string }
  5756. & xml-id?
  5757. & common-in-content-meta-attlist?
  5758. text-changed-region =
  5759. element text:changed-region {
  5760. text-changed-region-attr, text-changed-region-content
  5761. }
  5762. text-changed-region-attr =
  5763. xml-id,
  5764. attribute text:id { NCName }?
  5765. text-changed-region-content =
  5766. element text:insertion { office-change-info }
  5767. | element text:deletion { office-change-info, text-content* }
  5768. | element text:format-change { office-change-info }
  5769. text-chapter-attlist =
  5770. attribute text:display {
  5771. "name"
  5772. | "number"
  5773. | "number-and-name"
  5774. | "plain-number-and-name"
  5775. | "plain-number"
  5776. }
  5777. & attribute text:outline-level { nonNegativeInteger }
  5778. text-common-ref-content =
  5779. text
  5780. & attribute text:ref-name { \string }?
  5781. text-conditional-text-attlist =
  5782. attribute text:condition { \string }
  5783. & attribute text:string-value-if-true { \string }
  5784. & attribute text:string-value-if-false { \string }
  5785. & attribute text:current-value { boolean }?
  5786. text-content =
  5787. text-h
  5788. | text-p
  5789. | text-list
  5790. | text-numbered-paragraph
  5791. | table-table
  5792. | text-section
  5793. | text-soft-page-break
  5794. | text-table-of-content
  5795. | text-illustration-index
  5796. | text-table-index
  5797. | text-object-index
  5798. | text-user-index
  5799. | text-alphabetical-index
  5800. | text-bibliography
  5801. | shape
  5802. | change-marks
  5803. text-database-display-attlist =
  5804. common-field-database-table
  5805. & common-field-data-style-name-attlist
  5806. & attribute text:column-name { \string }
  5807. text-database-next-attlist =
  5808. common-field-database-table
  5809. & attribute text:condition { \string }?
  5810. text-database-row-select-attlist =
  5811. common-field-database-table
  5812. & attribute text:condition { \string }?
  5813. & attribute text:row-number { nonNegativeInteger }?
  5814. text-date-attlist =
  5815. (common-field-fixed-attlist & common-field-data-style-name-attlist)
  5816. & attribute text:date-value { dateOrDateTime }?
  5817. & attribute text:date-adjust { duration }?
  5818. text-dde-connection-decl =
  5819. element text:dde-connection-decl {
  5820. text-dde-connection-decl-attlist, common-dde-connection-decl-attlist
  5821. }
  5822. text-dde-connection-decl-attlist = attribute office:name { \string }
  5823. text-decls =
  5824. element text:variable-decls { text-variable-decl* }?,
  5825. element text:sequence-decls { text-sequence-decl* }?,
  5826. element text:user-field-decls { text-user-field-decl* }?,
  5827. element text:dde-connection-decls { text-dde-connection-decl* }?,
  5828. text-alphabetical-index-auto-mark-file?
  5829. text-drop-down =
  5830. element text:drop-down {
  5831. attribute text:name { \string },
  5832. element text:label {
  5833. attribute text:value { \string }?,
  5834. attribute text:current-selected { boolean }?
  5835. }*,
  5836. text
  5837. }
  5838. text-file-name-attlist =
  5839. attribute text:display {
  5840. "full" | "path" | "name" | "name-and-extension"
  5841. }?
  5842. & common-field-fixed-attlist
  5843. text-get-page-variable-attlist = common-field-num-format-attlist
  5844. text-h =
  5845. element text:h {
  5846. heading-attrs,
  5847. paragraph-attrs,
  5848. text-number?,
  5849. paragraph-content-or-hyperlink*
  5850. }
  5851. text-hidden-paragraph-attlist =
  5852. attribute text:condition { \string }
  5853. & attribute text:is-hidden { boolean }?
  5854. text-hidden-text-attlist =
  5855. attribute text:condition { \string }
  5856. & attribute text:string-value { \string }
  5857. & attribute text:is-hidden { boolean }?
  5858. text-id = attribute text:id { \string }
  5859. text-illustration-index =
  5860. element text:illustration-index {
  5861. common-section-attlist,
  5862. text-illustration-index-source,
  5863. text-index-body
  5864. }
  5865. text-illustration-index-entry-content =
  5866. text-illustration-index-entry-template-attrs,
  5867. (text-index-entry-chapter
  5868. | text-index-entry-page-number
  5869. | text-index-entry-text
  5870. | text-index-entry-span
  5871. | text-index-entry-tab-stop
  5872. | text-index-entry-link-start
  5873. | text-index-entry-link-end
  5874. # https://issues.oasis-open.org/browse/OFFICE-3941
  5875. )*
  5876. text-illustration-index-entry-template =
  5877. element text:illustration-index-entry-template {
  5878. text-illustration-index-entry-content
  5879. }
  5880. text-illustration-index-entry-template-attrs =
  5881. attribute text:style-name { styleNameRef }
  5882. text-illustration-index-source =
  5883. element text:illustration-index-source {
  5884. text-illustration-index-source-attrs,
  5885. text-index-title-template?,
  5886. text-illustration-index-entry-template?
  5887. }
  5888. text-illustration-index-source-attrs =
  5889. text-index-scope-attr
  5890. & text-relative-tab-stop-position-attr
  5891. & attribute text:use-caption { boolean }?
  5892. & attribute text:caption-sequence-name { \string }?
  5893. & attribute text:caption-sequence-format {
  5894. "text" | "category-and-value" | "caption"
  5895. }?
  5896. text-index-body = element text:index-body { index-content-main* }
  5897. text-index-entry-bibliography =
  5898. element text:index-entry-bibliography {
  5899. text-index-entry-bibliography-attrs
  5900. }
  5901. text-index-entry-bibliography-attrs =
  5902. attribute text:style-name { styleNameRef }?
  5903. & attribute text:bibliography-data-field {
  5904. "address"
  5905. | "annote"
  5906. | "author"
  5907. | "bibliography-type"
  5908. | "booktitle"
  5909. | "chapter"
  5910. | "custom1"
  5911. | "custom2"
  5912. | "custom3"
  5913. | "custom4"
  5914. | "custom5"
  5915. | "edition"
  5916. | "editor"
  5917. | "howpublished"
  5918. | "identifier"
  5919. | "institution"
  5920. | "isbn"
  5921. | "issn"
  5922. | "journal"
  5923. | "month"
  5924. | "note"
  5925. | "number"
  5926. | "organizations"
  5927. | "pages"
  5928. | "publisher"
  5929. | "report-type"
  5930. | "school"
  5931. | "series"
  5932. | "title"
  5933. | "url"
  5934. | "volume"
  5935. | "year"
  5936. }
  5937. text-index-entry-chapter =
  5938. element text:index-entry-chapter {
  5939. attribute text:style-name { styleNameRef }?,
  5940. text-index-entry-chapter-attrs
  5941. }
  5942. text-index-entry-chapter-attrs =
  5943. attribute text:display {
  5944. "name"
  5945. | "number"
  5946. | "number-and-name"
  5947. | "plain-number"
  5948. | "plain-number-and-name"
  5949. }?
  5950. & attribute text:outline-level { positiveInteger }?
  5951. text-index-entry-link-end =
  5952. element text:index-entry-link-end {
  5953. attribute text:style-name { styleNameRef }?
  5954. }
  5955. text-index-entry-link-start =
  5956. element text:index-entry-link-start {
  5957. attribute text:style-name { styleNameRef }?
  5958. }
  5959. text-index-entry-page-number =
  5960. element text:index-entry-page-number {
  5961. attribute text:style-name { styleNameRef }?
  5962. }
  5963. text-index-entry-span =
  5964. element text:index-entry-span {
  5965. attribute text:style-name { styleNameRef }?,
  5966. text
  5967. }
  5968. text-index-entry-tab-stop =
  5969. element text:index-entry-tab-stop {
  5970. attribute text:style-name { styleNameRef }?,
  5971. text-index-entry-tab-stop-attrs
  5972. }
  5973. text-index-entry-tab-stop-attrs =
  5974. attribute style:leader-char { character }?
  5975. & (attribute style:type { "right" }
  5976. | (attribute style:type { "left" },
  5977. attribute style:position { length }))
  5978. text-index-entry-text =
  5979. element text:index-entry-text {
  5980. attribute text:style-name { styleNameRef }?
  5981. }
  5982. text-index-name = attribute text:index-name { \string }
  5983. text-index-scope-attr =
  5984. attribute text:index-scope { "document" | "chapter" }?
  5985. text-index-source-style =
  5986. element text:index-source-style {
  5987. attribute text:style-name { styleNameRef },
  5988. empty
  5989. }
  5990. # https://issues.oasis-open.org/browse/OFFICE-3675
  5991. text-index-source-styles =
  5992. element text:index-source-styles {
  5993. attribute text:outline-level { positiveInteger },
  5994. text-index-source-style*
  5995. }
  5996. text-index-title =
  5997. element text:index-title {
  5998. common-section-attlist, index-content-main*
  5999. }
  6000. text-index-title-template =
  6001. element text:index-title-template {
  6002. attribute text:style-name { styleNameRef }?,
  6003. text
  6004. }
  6005. text-linenumbering-configuration =
  6006. element text:linenumbering-configuration {
  6007. text-linenumbering-configuration-attlist,
  6008. text-linenumbering-separator?
  6009. }
  6010. text-linenumbering-configuration-attlist =
  6011. attribute text:number-lines { boolean }?
  6012. & common-num-format-attlist?
  6013. & attribute text:style-name { styleNameRef }?
  6014. & attribute text:increment { nonNegativeInteger }?
  6015. & attribute text:number-position {
  6016. "left" | "right" | "inner" | "outer"
  6017. }?
  6018. & attribute text:offset { nonNegativeLength }?
  6019. & attribute text:count-empty-lines { boolean }?
  6020. & attribute text:count-in-text-boxes { boolean }?
  6021. & attribute text:restart-on-page { boolean }?
  6022. text-linenumbering-separator =
  6023. element text:linenumbering-separator {
  6024. attribute text:increment { nonNegativeInteger }?,
  6025. text
  6026. }
  6027. text-list =
  6028. element text:list {
  6029. text-list-attr, text-list-header?, text-list-item*
  6030. }
  6031. text-list-attr =
  6032. attribute text:style-name { styleNameRef }?
  6033. & attribute text:continue-numbering { boolean }?
  6034. & attribute text:continue-list { IDREF }?
  6035. & xml-id?
  6036. text-list-header =
  6037. element text:list-header {
  6038. text-list-header-attr, text-list-item-content
  6039. }
  6040. text-list-header-attr = xml-id?
  6041. text-list-item =
  6042. element text:list-item { text-list-item-attr, text-list-item-content }
  6043. text-list-item-attr =
  6044. attribute text:start-value { nonNegativeInteger }?
  6045. & attribute text:style-override { styleNameRef }?
  6046. & xml-id?
  6047. text-list-item-content =
  6048. text-number?, (text-p | text-h | text-list | text-soft-page-break)*
  6049. text-list-level-style-attr = attribute text:level { positiveInteger }
  6050. text-list-level-style-bullet-attr =
  6051. attribute text:style-name { styleNameRef }?
  6052. & attribute text:bullet-char { character }
  6053. & common-num-format-prefix-suffix-attlist
  6054. & attribute text:bullet-relative-size { percent }?
  6055. text-list-level-style-image-attr =
  6056. common-draw-data-attlist | office-binary-data
  6057. text-list-level-style-number-attr =
  6058. attribute text:style-name { styleNameRef }?
  6059. & common-num-format-attlist
  6060. & common-num-format-prefix-suffix-attlist
  6061. & attribute text:display-levels { positiveInteger }?
  6062. & attribute text:start-value { positiveInteger }?
  6063. text-list-style =
  6064. element text:list-style {
  6065. text-list-style-attr, text-list-style-content*
  6066. }
  6067. text-list-style-attr =
  6068. attribute style:name { styleName }
  6069. & attribute style:display-name { \string }?
  6070. & attribute text:consecutive-numbering { boolean }?
  6071. text-list-style-content =
  6072. element text:list-level-style-number {
  6073. text-list-level-style-attr,
  6074. text-list-level-style-number-attr,
  6075. style-list-level-properties?,
  6076. style-text-properties?
  6077. }
  6078. | element text:list-level-style-bullet {
  6079. text-list-level-style-attr,
  6080. text-list-level-style-bullet-attr,
  6081. style-list-level-properties?,
  6082. style-text-properties?
  6083. }
  6084. | element text:list-level-style-image {
  6085. text-list-level-style-attr,
  6086. text-list-level-style-image-attr,
  6087. style-list-level-properties?
  6088. }
  6089. text-meta-attlist = common-in-content-meta-attlist? & xml-id?
  6090. text-meta-field-attlist = xml-id & common-field-data-style-name-attlist
  6091. text-note-class = attribute text:note-class { "footnote" | "endnote" }
  6092. text-note-ref-content =
  6093. attribute text:reference-format { common-ref-format-values }?
  6094. & text-note-class
  6095. text-notes-configuration =
  6096. element text:notes-configuration { text-notes-configuration-content }
  6097. text-notes-configuration-content =
  6098. text-note-class
  6099. & attribute text:citation-style-name { styleNameRef }?
  6100. & attribute text:citation-body-style-name { styleNameRef }?
  6101. & attribute text:default-style-name { styleNameRef }?
  6102. & attribute text:master-page-name { styleNameRef }?
  6103. & attribute text:start-value { nonNegativeInteger }?
  6104. & common-num-format-prefix-suffix-attlist
  6105. & common-num-format-attlist?
  6106. & attribute text:start-numbering-at {
  6107. "document" | "chapter" | "page"
  6108. }?
  6109. & attribute text:footnotes-position {
  6110. "text" | "page" | "section" | "document"
  6111. }?
  6112. & element text:note-continuation-notice-forward { text }?
  6113. & element text:note-continuation-notice-backward { text }?
  6114. text-number = element text:number { \string }
  6115. text-numbered-paragraph =
  6116. element text:numbered-paragraph {
  6117. text-numbered-paragraph-attr, text-number?, (text-p | text-h)
  6118. }
  6119. text-numbered-paragraph-attr =
  6120. attribute text:list-id { NCName }
  6121. & attribute text:level { positiveInteger }?
  6122. & (attribute text:style-name { styleNameRef },
  6123. attribute text:continue-numbering { boolean },
  6124. attribute text:start-value { nonNegativeInteger })?
  6125. & xml-id?
  6126. text-object-index =
  6127. element text:object-index {
  6128. common-section-attlist, text-object-index-source, text-index-body
  6129. }
  6130. text-object-index-entry-template =
  6131. element text:object-index-entry-template {
  6132. text-illustration-index-entry-content
  6133. }
  6134. text-object-index-source =
  6135. element text:object-index-source {
  6136. text-object-index-source-attrs,
  6137. text-index-title-template?,
  6138. text-object-index-entry-template?
  6139. }
  6140. text-object-index-source-attrs =
  6141. text-index-scope-attr
  6142. & text-relative-tab-stop-position-attr
  6143. & attribute text:use-spreadsheet-objects { boolean }?
  6144. & attribute text:use-math-objects { boolean }?
  6145. & attribute text:use-draw-objects { boolean }?
  6146. & attribute text:use-chart-objects { boolean }?
  6147. & attribute text:use-other-objects { boolean }?
  6148. text-outline-level = attribute text:outline-level { positiveInteger }?
  6149. text-outline-level-style =
  6150. element text:outline-level-style {
  6151. text-outline-level-style-attlist,
  6152. style-list-level-properties?,
  6153. style-text-properties?
  6154. }
  6155. text-outline-level-style-attlist =
  6156. attribute text:level { positiveInteger }
  6157. & attribute text:style-name { styleNameRef }?
  6158. & common-num-format-attlist
  6159. & common-num-format-prefix-suffix-attlist
  6160. & attribute text:display-levels { positiveInteger }?
  6161. & attribute text:start-value { positiveInteger }?
  6162. text-outline-style =
  6163. element text:outline-style {
  6164. text-outline-style-attr, text-outline-level-style+
  6165. }
  6166. text-outline-style-attr = attribute style:name { styleName }
  6167. text-p =
  6168. element text:p { paragraph-attrs, paragraph-content-or-hyperlink* }
  6169. text-page = element text:page { text-page-attlist, empty }
  6170. text-page-attlist = attribute text:master-page-name { styleNameRef }
  6171. text-page-continuation-attlist =
  6172. attribute text:select-page { "previous" | "next" }
  6173. & attribute text:string-value { \string }?
  6174. text-page-number-attlist =
  6175. (common-field-num-format-attlist & common-field-fixed-attlist)
  6176. & attribute text:page-adjust { integer }?
  6177. & attribute text:select-page { "previous" | "current" | "next" }?
  6178. text-page-sequence = element text:page-sequence { text-page+ }
  6179. text-placeholder-attlist =
  6180. attribute text:placeholder-type {
  6181. "text" | "table" | "text-box" | "image" | "object"
  6182. }
  6183. & common-field-description-attlist
  6184. text-relative-tab-stop-position-attr =
  6185. attribute text:relative-tab-stop-position { boolean }?
  6186. text-section =
  6187. element text:section {
  6188. text-section-attlist,
  6189. (text-section-source | text-section-source-dde | empty),
  6190. text-content*
  6191. }
  6192. text-section-attlist =
  6193. common-section-attlist
  6194. & (attribute text:display { "true" | "none" }
  6195. | (attribute text:display { "condition" },
  6196. attribute text:condition { \string })
  6197. | empty)
  6198. text-section-source =
  6199. element text:section-source { text-section-source-attr }
  6200. text-section-source-attr =
  6201. (attribute xlink:type { "simple" },
  6202. attribute xlink:href { anyIRI },
  6203. attribute xlink:show { "embed" }?)?
  6204. & attribute text:section-name { \string }?
  6205. & attribute text:filter-name { \string }?
  6206. text-section-source-dde = office-dde-source
  6207. text-sequence-decl =
  6208. element text:sequence-decl { text-sequence-decl-attlist }
  6209. text-sequence-decl-attlist =
  6210. common-field-name-attlist
  6211. & attribute text:display-outline-level { nonNegativeInteger }
  6212. & attribute text:separation-character { character }?
  6213. text-sequence-ref-content =
  6214. attribute text:reference-format {
  6215. common-ref-format-values
  6216. | "category-and-value"
  6217. | "caption"
  6218. | "value"
  6219. }?
  6220. text-sequence-ref-name = attribute text:ref-name { \string }?
  6221. text-set-page-variable-attlist =
  6222. attribute text:active { boolean }?
  6223. & attribute text:page-adjust { integer }?
  6224. text-soft-page-break = element text:soft-page-break { empty }
  6225. text-sort-key = element text:sort-key { text-sort-key-attlist, empty }
  6226. text-sort-key-attlist =
  6227. attribute text:key {
  6228. "address"
  6229. | "annote"
  6230. | "author"
  6231. | "bibliography-type"
  6232. | "booktitle"
  6233. | "chapter"
  6234. | "custom1"
  6235. | "custom2"
  6236. | "custom3"
  6237. | "custom4"
  6238. | "custom5"
  6239. | "edition"
  6240. | "editor"
  6241. | "howpublished"
  6242. | "identifier"
  6243. | "institution"
  6244. | "isbn"
  6245. | "issn"
  6246. | "journal"
  6247. | "month"
  6248. | "note"
  6249. | "number"
  6250. | "organizations"
  6251. | "pages"
  6252. | "publisher"
  6253. | "report-type"
  6254. | "school"
  6255. | "series"
  6256. | "title"
  6257. | "url"
  6258. | "volume"
  6259. | "year"
  6260. },
  6261. attribute text:sort-ascending { boolean }?
  6262. text-style-name = attribute form:text-style-name { styleNameRef }?
  6263. text-tab-attr = attribute text:tab-ref { nonNegativeInteger }?
  6264. text-table-index =
  6265. element text:table-index {
  6266. common-section-attlist, text-table-index-source, text-index-body
  6267. }
  6268. text-table-index-entry-template =
  6269. element text:table-index-entry-template {
  6270. text-illustration-index-entry-content
  6271. }
  6272. text-table-index-source =
  6273. element text:table-index-source {
  6274. text-illustration-index-source-attrs,
  6275. text-index-title-template?,
  6276. text-table-index-entry-template?
  6277. }
  6278. text-table-of-content =
  6279. element text:table-of-content {
  6280. common-section-attlist,
  6281. text-table-of-content-source,
  6282. text-index-body
  6283. }
  6284. text-table-of-content-children =
  6285. text-index-entry-chapter
  6286. | text-index-entry-page-number
  6287. | text-index-entry-text
  6288. | text-index-entry-span
  6289. | text-index-entry-tab-stop
  6290. | text-index-entry-link-start
  6291. | text-index-entry-link-end
  6292. text-table-of-content-entry-template =
  6293. element text:table-of-content-entry-template {
  6294. text-table-of-content-entry-template-attlist,
  6295. text-table-of-content-children*
  6296. }
  6297. text-table-of-content-entry-template-attlist =
  6298. attribute text:outline-level { positiveInteger }
  6299. & attribute text:style-name { styleNameRef }
  6300. text-table-of-content-source =
  6301. element text:table-of-content-source {
  6302. text-table-of-content-source-attlist,
  6303. text-index-title-template?,
  6304. text-table-of-content-entry-template*,
  6305. text-index-source-styles*
  6306. }
  6307. text-table-of-content-source-attlist =
  6308. attribute text:outline-level { positiveInteger }?
  6309. & attribute text:use-outline-level { boolean }?
  6310. & attribute text:use-index-marks { boolean }?
  6311. & attribute text:use-index-source-styles { boolean }?
  6312. & attribute text:index-scope { "document" | "chapter" }?
  6313. & attribute text:relative-tab-stop-position { boolean }?
  6314. text-template-name-attlist =
  6315. attribute text:display {
  6316. "full" | "path" | "name" | "name-and-extension" | "area" | "title"
  6317. }?
  6318. text-time-attlist =
  6319. (common-field-fixed-attlist & common-field-data-style-name-attlist)
  6320. & attribute text:time-value { timeOrDateTime }?
  6321. & attribute text:time-adjust { duration }?
  6322. text-toc-mark-start-attrs = text-id, text-outline-level
  6323. text-tracked-changes =
  6324. element text:tracked-changes {
  6325. text-tracked-changes-attr, text-changed-region*
  6326. }?
  6327. text-tracked-changes-attr = attribute text:track-changes { boolean }?
  6328. text-user-field-decl =
  6329. element text:user-field-decl {
  6330. common-field-name-attlist,
  6331. common-field-formula-attlist?,
  6332. common-value-and-type-attlist
  6333. }
  6334. text-user-index =
  6335. element text:user-index {
  6336. common-section-attlist, text-user-index-source, text-index-body
  6337. }
  6338. text-user-index-entry-template =
  6339. element text:user-index-entry-template {
  6340. text-user-index-entry-template-attrs,
  6341. (text-index-entry-chapter
  6342. | text-index-entry-page-number
  6343. | text-index-entry-text
  6344. | text-index-entry-span
  6345. | text-index-entry-tab-stop
  6346. | text-index-entry-link-start
  6347. | text-index-entry-link-end
  6348. # https://issues.oasis-open.org/browse/OFFICE-3941
  6349. )*
  6350. }
  6351. text-user-index-entry-template-attrs =
  6352. attribute text:outline-level { positiveInteger }
  6353. & attribute text:style-name { styleNameRef }
  6354. text-user-index-source =
  6355. element text:user-index-source {
  6356. text-user-index-source-attr,
  6357. text-index-title-template?,
  6358. text-user-index-entry-template*,
  6359. text-index-source-styles*
  6360. }
  6361. text-user-index-source-attr =
  6362. text-index-scope-attr
  6363. & text-relative-tab-stop-position-attr
  6364. & attribute text:use-index-marks { boolean }?
  6365. & attribute text:use-index-source-styles { boolean }?
  6366. & attribute text:use-graphics { boolean }?
  6367. & attribute text:use-tables { boolean }?
  6368. & attribute text:use-floating-frames { boolean }?
  6369. & attribute text:use-objects { boolean }?
  6370. & attribute text:copy-outline-levels { boolean }?
  6371. & attribute text:index-name { \string }
  6372. text-variable-decl =
  6373. element text:variable-decl {
  6374. common-field-name-attlist, common-value-type-attlist
  6375. }
  6376. textEncoding = xsd:string { pattern = "[A-Za-z][A-Za-z0-9._\-]*" }
  6377. time = xsd:time
  6378. timeOrDateTime = xsd:time | xsd:dateTime
  6379. types = "submit" | "reset" | "push" | "url"
  6380. valueType =
  6381. "float"
  6382. | "time"
  6383. | "date"
  6384. | "percentage"
  6385. | "currency"
  6386. | "boolean"
  6387. | "string"
  6388. variableName = xsd:string
  6389. vector3D =
  6390. xsd:string {
  6391. pattern =
  6392. "\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\)"
  6393. }
  6394. vertBackPos = "top" | "center" | "bottom"
  6395. xforms-bind-attlist = attribute xforms:bind { \string }?
  6396. xforms-model = element xforms:model { anyAttListOrElements }
  6397. xml-id = attribute xml:id { ID }
  6398. zeroToHundredPercent =
  6399. xsd:string {
  6400. pattern = "([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)%"
  6401. }
  6402. zeroToOneDecimal = xsd:decimal { minInclusive = "0" maxInclusive = "1" }