od-schema-v1.1.rnc 221 KB

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