| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444 | # OASIS OpenDocument v1.1# OASIS Standard, 1 Feb 2007# Relax-NG Schema# # $Id$# # © 2002-2007 OASIS Open# © 1999-2007 Sun Microsystems, Inc.namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"namespace anim = "urn:oasis:names:tc:opendocument:xmlns:animation:1.0"namespace chart = "urn:oasis:names:tc:opendocument:xmlns:chart:1.0"namespace config = "urn:oasis:names:tc:opendocument:xmlns:config:1.0"namespace dc = "http://purl.org/dc/elements/1.1/"namespace dr3d = "urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"namespace draw = "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"namespace fo =  "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"namespace form = "urn:oasis:names:tc:opendocument:xmlns:form:1.0"namespace math = "http://www.w3.org/1998/Math/MathML"namespace meta = "urn:oasis:names:tc:opendocument:xmlns:meta:1.0"namespace number = "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"namespace office = "urn:oasis:names:tc:opendocument:xmlns:office:1.0"namespace presentation =  "urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"namespace script = "urn:oasis:names:tc:opendocument:xmlns:script:1.0"namespace smil =  "urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0"namespace style = "urn:oasis:names:tc:opendocument:xmlns:style:1.0"namespace svg =  "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"namespace table = "urn:oasis:names:tc:opendocument:xmlns:table:1.0"namespace text = "urn:oasis:names:tc:opendocument:xmlns:text:1.0"namespace xforms = "http://www.w3.org/2002/xforms"namespace xlink = "http://www.w3.org/1999/xlink"office-process-content =  [ a:defaultValue = "true" ]  attribute office:process-content { boolean }?start =  office-document  | office-document-content  | office-document-styles  | office-document-meta  | office-document-settingsoffice-document =  element office:document {    office-document-attrs,    office-document-common-attrs,    office-meta,    office-settings,    office-scripts,    office-font-face-decls,    office-styles,    office-automatic-styles,    office-master-styles,    office-body  }office-document-content =  element office:document-content {    office-document-common-attrs,    office-scripts,    office-font-face-decls,    office-automatic-styles,    office-body  }office-document-styles =  element office:document-styles {    office-document-common-attrs,    office-font-face-decls,    office-styles,    office-automatic-styles,    office-master-styles  }office-document-meta =  element office:document-meta {    office-document-common-attrs, office-meta  }office-document-settings =  element office:document-settings {    office-document-common-attrs, office-settings  }office-document-common-attrs &= attribute office:version { \string }?office-document-attrs &= attribute office:mimetype { \string }office-meta = element office:meta { office-meta-content }?office-meta-content = anyElementsoffice-meta-content-strict = office-meta-data*office-body = element office:body { office-body-content }office-body-content |=  element office:text {    office-text-attlist,    office-text-content-prelude,    office-text-content-main*,    office-text-content-epilogue  }office-text-content-prelude =  office-forms, text-tracked-changes, text-decls, table-declsoffice-text-content-main =  text-content*  | (text-page-sequence, (draw-a | shape)*)text-content =  text-h  | text-p  | text-list  | text-numbered-paragraph  | table-table  | draw-a  | text-section  | text-soft-page-break  | text-table-of-content  | text-illustration-index  | text-table-index  | text-object-index  | text-user-index  | text-alphabetical-index  | text-bibliography  | shape  | change-marksoffice-text-content-epilogue = table-functionsoffice-text-attlist &=  [ a:defaultValue = "false" ] attribute text:global { boolean }?office-text-attlist &=  [ a:defaultValue = "false" ]  attribute text:use-soft-page-breaks { boolean }?office-body-content |=  element office:drawing {    office-drawing-attlist,    office-drawing-content-prelude,    office-drawing-content-main,    office-drawing-content-epilogue  }office-drawing-attlist = emptyoffice-drawing-content-prelude = text-decls, table-declsoffice-drawing-content-main = draw-page*office-drawing-content-epilogue = table-functionsoffice-body-content |=  element office:presentation {    office-presentation-attlist,    office-presentation-content-prelude,    office-presentation-content-main,    office-presentation-content-epilogue  }office-presentation-attlist = emptyoffice-presentation-content-prelude =  text-decls, table-decls, presentation-declsoffice-presentation-content-main = draw-page*office-presentation-content-epilogue =  presentation-settings, table-functionsoffice-body-content |=  element office:spreadsheet {    office-spreadsheet-attlist,    office-spreadsheet-content-prelude,    office-spreadsheet-content-main,    office-spreadsheet-content-epilogue  }office-spreadsheet-content-prelude =  table-tracked-changes?, text-decls, table-declstable-decls =  table-calculation-settings?,  table-content-validations?,  table-label-ranges?office-spreadsheet-content-main = table-table*office-spreadsheet-content-epilogue = table-functionstable-functions =  table-named-expressions?,  table-database-ranges?,  table-data-pilot-tables?,  table-consolidation?,  table-dde-links?office-body-content |=  element office:chart {    office-chart-attlist,    office-chart-content-prelude,    office-chart-content-main,    office-chart-content-epilogue  }office-chart-attlist = emptyoffice-chart-content-prelude = text-decls, table-declsoffice-chart-content-main = chart-chartoffice-chart-content-epilogue = table-functionsoffice-body-content |=  element office:image {    office-image-attlist,    office-image-content-prelude,    office-image-content-main,    office-image-content-epilogue  }office-image-attlist = emptyoffice-image-content-prelude = emptyoffice-image-content-main = draw-frameoffice-image-content-epilogue = emptyoffice-settings = element office:settings { config-config-item-set+ }?config-config-item-set =  element config:config-item-set {    config-config-item-set-attlist, config-items  }config-items =  (config-config-item   | config-config-item-set   | config-config-item-map-named   | config-config-item-map-indexed)+config-config-item-set-attlist &= attribute config:name { \string }config-config-item =  element config:config-item { config-config-item-attlist, text }config-config-item-attlist &= attribute config:name { \string }config-config-item-attlist &=  attribute config:type {    "boolean"    | "short"    | "int"    | "long"    | "double"    | "string"    | "datetime"    | "base64Binary"  }config-config-item-map-indexed =  element config:config-item-map-indexed {    config-config-item-map-indexed-attlist,    config-config-item-map-entry+  }config-config-item-map-indexed-attlist &=  attribute config:name { \string }config-config-item-map-entry =  element config:config-item-map-entry {    config-config-item-map-entry-attlist, config-items  }config-config-item-map-entry-attlist &=  attribute config:name { \string }?config-config-item-map-named =  element config:config-item-map-named {    config-config-item-map-named-attlist, config-config-item-map-entry+  }config-config-item-map-named-attlist &=  attribute config:name { \string }office-scripts =  element office:scripts { office-script*, office-event-listeners? }?office-script =  element office:script {    office-script-attlist,    mixed { anyElements }  }office-script-attlist = attribute script:language { \string }office-font-face-decls =  element office:font-face-decls { style-font-face* }?office-styles =  element office:styles {    styles    & style-default-style*    & text-outline-style?    & text-notes-configuration*    & text-bibliography-configuration?    & text-linenumbering-configuration?    & draw-gradient*    & svg-linearGradient*    & svg-radialGradient*    & draw-hatch*    & draw-fill-image*    & draw-marker*    & draw-stroke-dash*    & draw-opacity*    & style-presentation-page-layout*  }?office-automatic-styles =  element office:automatic-styles { styles & style-page-layout* }?office-master-styles =  element office:master-styles {    style-master-page* & style-handout-master? & draw-layer-set?  }?styles =  style-style*  & text-list-style*  & number-number-style*  & number-currency-style*  & number-percentage-style*  & number-date-style*  & number-time-style*  & number-boolean-style*  & number-text-style*office-meta-data |= element meta:generator { \string }office-meta-data |= element dc:title { \string }office-meta-data |= element dc:description { \string }office-meta-data |= element dc:subject { \string }office-meta-data |= element meta:keyword { \string }office-meta-data |= element meta:initial-creator { \string }office-meta-data |= dc-creatordc-creator = element dc:creator { \string }office-meta-data |= element meta:printed-by { \string }office-meta-data |= element meta:creation-date { dateTime }office-meta-data |= dc-datedc-date = element dc:date { dateTime }office-meta-data |= element meta:print-date { dateTime }office-meta-data |=  element meta:template {    attribute xlink:href { anyURI },    [ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,    [ a:defaultValue = "onRequest" ]    attribute xlink:actuate { "onRequest" }?,    attribute xlink:title { \string }?,    attribute meta:date { dateTime }?  }office-meta-data |=  element meta:auto-reload {    [ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,    [ a:defaultValue = "replace" ] attribute xlink:show { "replace" }?,    [ a:defaultValue = "onLoad" ] attribute xlink:actuate { "onLoad" }?,    attribute xlink:href { anyURI }?,    attribute meta:delay { duration }?  }office-meta-data |=  element meta:hyperlink-behaviour {    attribute office:target-frame-name { targetFrameName }?,    attribute xlink:show { "new" | "replace" }?  }office-meta-data |= element dc:language { language }office-meta-data |= element meta:editing-cycles { nonNegativeInteger }office-meta-data |= element meta:editing-duration { duration }office-meta-data |=  element meta:document-statistic {    attribute meta:page-count { nonNegativeInteger }?,    attribute meta:table-count { nonNegativeInteger }?,    attribute meta:draw-count { nonNegativeInteger }?,    attribute meta:image-count { nonNegativeInteger }?,    attribute meta:ole-object-count { nonNegativeInteger }?,    attribute meta:object-count { nonNegativeInteger }?,    attribute meta:paragraph-count { nonNegativeInteger }?,    attribute meta:word-count { nonNegativeInteger }?,    attribute meta:character-count { nonNegativeInteger }?,    attribute frame-count { nonNegativeInteger }?,    attribute sentence-count { nonNegativeInteger }?,    attribute syllable-count { nonNegativeInteger }?,    attribute non-whitespace-character-count { nonNegativeInteger }?,    attribute meta:row-count { nonNegativeInteger }?,    attribute meta:cell-count { nonNegativeInteger }?  }office-meta-data |=  element meta:user-defined {    attribute meta:name { \string },    ((attribute meta:value-type { "float" },      double)     | (attribute meta:value-type { "date" },        dateOrDateTime)     | (attribute meta:value-type { "time" },        duration)     | (attribute meta:value-type { "boolean" },        boolean)     | (attribute meta:value-type { "string" },        \string)     | text)  }text-h =  element text:h {    heading-attrs, paragraph-attrs, text-number?, paragraph-content*  }heading-attrs &= attribute text:outline-level { positiveInteger }heading-attrs &=  [ a:defaultValue = "false" ]  attribute text:restart-numbering { boolean }?heading-attrs &= attribute text:start-value { nonNegativeInteger }?heading-attrs &=  [ a:defaultValue = "false" ]  attribute text:is-list-header { boolean }?text-number = element text:number { \string }text-p = element text:p { paragraph-attrs, paragraph-content* }paragraph-attrs =  attribute text:style-name { styleNameRef }?,  attribute text:class-names { styleNameRefs }?,  attribute text:cond-style-name { styleNameRef }?paragraph-attrs &= text-id?text-page-sequence = element text:page-sequence { text-page+ }text-page = element text:page { text-page-attlist, empty }text-page-attlist = attribute text:master-page-name { styleNameRef }text-list =  element text:list {    text-list-attr, text-list-header?, text-list-item*  }text-list-attr &= attribute text:style-name { styleNameRef }?text-list-attr &= attribute text:continue-numbering { boolean }?text-list-item =  element text:list-item { text-list-item-attr, text-list-item-content }text-list-item-content =  text-number?, (text-p | text-h | text-list | text-soft-page-break)*text-list-item-attr &=  attribute text:start-value { nonNegativeInteger }?text-list-header = element text:list-header { text-list-item-content }text-numbered-paragraph =  element text:numbered-paragraph {    text-numbered-paragraph-attr, text-number?, (text-p | text-h)  }text-numbered-paragraph-attr &=  [ a:defaultValue = "1" ] attribute text:level { positiveInteger }?text-numbered-paragraph-attr &= text-list-attrtext-numbered-paragraph-attr &= text-list-item-attrtext-section =  element text:section {    text-section-attr,    (text-section-source | text-section-source-dde | empty),    text-content*  }text-section-attr &= sectionAttrsectionAttr &= attribute text:style-name { styleNameRef }?sectionAttr &= attribute text:name { \string }sectionAttr &= attribute text:protected { boolean }?sectionAttr &= attribute text:protection-key { \string }?text-section-attr &=  attribute text:display { "true" | "none" }  | (attribute text:display { "condition" },     attribute text:condition { \string })  | emptytext-section-source =  element text:section-source { text-section-source-attr }text-section-source-attr &=  (attribute xlink:href { anyURI },   [ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,   [ a:defaultValue = "embed" ] attribute xlink:show { "embed" }?)?text-section-source-attr &= attribute text:section-name { \string }?text-section-source-attr &= attribute text:filter-name { \string }?text-section-source-dde = office-dde-sourcetext-tracked-changes =  element text:tracked-changes {    text-tracked-changes-attr, text-changed-region*  }?text-tracked-changes-attr &=  [ a:defaultValue = "true" ] attribute text:track-changes { boolean }?text-changed-region =  element text:changed-region {    text-changed-region-attr, text-changed-region-content  }text-changed-region-attr &= attribute text:id { ID }text-changed-region-content |=  element text:insertion { office-change-info }text-changed-region-content |=  element text:deletion { office-change-info, text-content* }text-changed-region-content |=  element text:format-change { office-change-info }change-marks =  element text:change { change-mark-attr }  | element text:change-start { change-mark-attr }  | element text:change-end { change-mark-attr }change-mark-attr = attribute text:change-id { IDREF }text-soft-page-break = element text:soft-page-break { empty }text-decls =  element text:variable-decls { text-variable-decl* }?,  element text:sequence-decls { text-sequence-decl* }?,  element text:user-field-decls { text-user-field-decl* }?,  element text:dde-connection-decls { text-dde-connection-decl* }?,  text-alphabetical-index-auto-mark-file?paragraph-content |= textparagraph-content |=  element text:s {    attribute text:c { nonNegativeInteger }?  }paragraph-content |= element text:tab { text-tab-attr }text-tab-attr = attribute text:tab-ref { nonNegativeInteger }?paragraph-content |= element text:line-break { empty }paragraph-content |= text-soft-page-breakparagraph-content |=  element text:span {    attribute text:style-name { styleNameRef }?,    attribute text:class-names { styleNameRefs }?,    paragraph-content*  }paragraph-content |=  element text:a {    text-a-attlist, office-event-listeners?, paragraph-content*  }text-a-attlist &= attribute office:name { \string }?text-a-attlist &= attribute office:title { \string }?text-a-attlist &=  attribute xlink:href { anyURI },  [ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,  [ a:defaultValue = "onRequest" ]  attribute xlink:actuate { "onRequest" }?text-a-attlist &=  attribute office:target-frame-name { targetFrameName }?,  attribute xlink:show { "new" | "replace" }?text-a-attlist &=  attribute text:style-name { styleNameRef }?,  attribute text:visited-style-name { styleNameRef }?paragraph-content |=  element text:bookmark {    attribute text:name { \string }  }  | element text:bookmark-start {      attribute text:name { \string }    }  | element text:bookmark-end {      attribute text:name { \string }    }paragraph-content |=  element text:reference-mark {    attribute text:name { \string }  }paragraph-content |=  element text:reference-mark-start {    attribute text:name { \string }  }  | element text:reference-mark-end {      attribute text:name { \string }    }paragraph-content |=  element text:note {    text-note-class,    attribute text:id { \string }?,    element text:note-citation {      attribute text:label { \string }?,      text    },    element text:note-body { text-content* }  }text-note-class = attribute text:note-class { "footnote" | "endnote" }paragraph-content |=  element text:ruby {    attribute text:style-name { styleNameRef }?,    element text:ruby-base { paragraph-content },    element text:ruby-text {      attribute text:style-name { styleNameRef }?,      text    }  }paragraph-content |= office-annotationparagraph-content |= change-marksparagraph-content |= shape | draw-aparagraph-content |= element text:date { text-date-attlist, text }text-date-attlist &=  common-field-fixed-attlist & common-field-data-style-name-attlisttext-date-attlist &= attribute text:date-value { dateOrDateTime }?text-date-attlist &= attribute text:date-adjust { duration }?paragraph-content |= element text:time { text-time-attlist, text }text-time-attlist &=  common-field-fixed-attlist & common-field-data-style-name-attlisttext-time-attlist &= attribute text:time-value { timeOrDateTime }?text-time-attlist &= attribute text:time-adjust { duration }?paragraph-content |=  element text:page-number { text-page-number-attlist, text }text-page-number-attlist &=  common-field-num-format-attlist & common-field-fixed-attlisttext-page-number-attlist &= attribute text:page-adjust { integer }?text-page-number-attlist &=  attribute text:select-page { "previous" | "current" | "next" }?paragraph-content |=  element text:page-continuation {    text-page-continuation-attlist, text  }text-page-continuation-attlist &=  attribute text:select-page { "previous" | "next" }text-page-continuation-attlist &=  attribute text:string-value { \string }?paragraph-content |=  element text:sender-firstname { common-field-fixed-attlist, text }paragraph-content |=  element text:sender-lastname { common-field-fixed-attlist, text }paragraph-content |=  element text:sender-initials { common-field-fixed-attlist, text }paragraph-content |=  element text:sender-title { common-field-fixed-attlist, text }paragraph-content |=  element text:sender-position { common-field-fixed-attlist, text }paragraph-content |=  element text:sender-email { common-field-fixed-attlist, text }paragraph-content |=  element text:sender-phone-private { common-field-fixed-attlist, text }paragraph-content |=  element text:sender-fax { common-field-fixed-attlist, text }paragraph-content |=  element text:sender-company { common-field-fixed-attlist, text }paragraph-content |=  element text:sender-phone-work { common-field-fixed-attlist, text }paragraph-content |=  element text:sender-street { common-field-fixed-attlist, text }paragraph-content |=  element text:sender-city { common-field-fixed-attlist, text }paragraph-content |=  element text:sender-postal-code { common-field-fixed-attlist, text }paragraph-content |=  element text:sender-country { common-field-fixed-attlist, text }paragraph-content |=  element text:sender-state-or-province {    common-field-fixed-attlist, text  }paragraph-content |=  element text:author-name { common-field-fixed-attlist, text }paragraph-content |=  element text:author-initials { common-field-fixed-attlist, text }paragraph-content |= element text:chapter { text-chapter-attlist, text }text-chapter-attlist &=  attribute text:display {    "name"    | "number"    | "number-and-name"    | "plain-number-and-name"    | "plain-number"  }text-chapter-attlist &=  attribute text:outline-level { nonNegativeInteger }paragraph-content |=  element text:file-name { text-file-name-attlist, text }text-file-name-attlist &=  attribute text:display {    "full" | "path" | "name" | "name-and-extension"  }?text-file-name-attlist &= common-field-fixed-attlistparagraph-content |=  element text:template-name { text-template-name-attlist, text }text-template-name-attlist =  attribute text:display {    "full" | "path" | "name" | "name-and-extension" | "area" | "title"  }?paragraph-content |= element text:sheet-name { text }text-variable-decl =  element text:variable-decl {    common-field-name-attlist, common-value-type-attlist  }paragraph-content |=  element text:variable-set {    (common-field-name-attlist     & common-field-formula-attlist     & common-value-and-type-attlist     & common-field-display-value-none-attlist     & common-field-data-style-name-attlist),    text  }paragraph-content |=  element text:variable-get {    (common-field-name-attlist     & common-field-display-value-formula-attlist     & common-field-data-style-name-attlist),    text  }paragraph-content |=  element text:variable-input {    (common-field-name-attlist     & common-field-description-attlist     & common-value-type-attlist     & common-field-display-value-none-attlist     & common-field-data-style-name-attlist),    text  }text-user-field-decl =  element text:user-field-decl {    common-field-name-attlist,    common-field-formula-attlist?,    common-value-and-type-attlist  }paragraph-content |=  element text:user-field-get {    (common-field-name-attlist     & common-field-display-value-formula-none-attlist     & common-field-data-style-name-attlist),    text  }paragraph-content |=  element text:user-field-input {    (common-field-name-attlist     & common-field-description-attlist     & common-field-data-style-name-attlist),    text  }text-sequence-decl =  element text:sequence-decl { text-sequence-decl-attlist }text-sequence-decl-attlist &= common-field-name-attlisttext-sequence-decl-attlist &=  attribute text:display-outline-level { nonNegativeInteger }text-sequence-decl-attlist &=  attribute text:separation-character { character }?paragraph-content |=  element text:sequence {    (common-field-name-attlist     & common-field-formula-attlist     & common-field-num-format-attlist     & text-sequence-ref-name),    text  }text-sequence-ref-name = attribute text:ref-name { \string }?paragraph-content |=  element text:expression {    (common-field-formula-attlist     & common-value-and-type-attlist?     & common-field-display-value-formula-attlist     & common-field-data-style-name-attlist),    text  }paragraph-content |=  element text:text-input { common-field-description-attlist, text }paragraph-content |=  element text:initial-creator { common-field-fixed-attlist, text }paragraph-content |=  element text:creation-date {    (common-field-fixed-attlist     & common-field-data-style-name-attlist     & attribute text:date-value { dateOrDateTime }?),    text  }paragraph-content |=  element text:creation-time {    (common-field-fixed-attlist     & common-field-data-style-name-attlist     & attribute text:time-value { timeOrDateTime }?),    text  }paragraph-content |=  element text:description { common-field-fixed-attlist, text }paragraph-content |=  element text:user-defined {    (common-field-fixed-attlist     & attribute text:name { \string }     & common-field-data-style-name-attlist     & attribute office:value { double }?     & attribute office:date-value { dateOrDateTime }?     & attribute office:time-value { duration }?     & attribute office:boolean-value { boolean }?     & attribute office:string-value { \string }?),    text  }paragraph-content |=  element text:print-time {    (common-field-fixed-attlist     & common-field-data-style-name-attlist     & attribute text:time-value { time }?),    text  }paragraph-content |=  element text:print-date {    (common-field-fixed-attlist     & common-field-data-style-name-attlist     & attribute text:date-value { date }?),    text  }paragraph-content |=  element text:printed-by { common-field-fixed-attlist, text }paragraph-content |=  element text:title { common-field-fixed-attlist, text }paragraph-content |=  element text:subject { common-field-fixed-attlist, text }paragraph-content |=  element text:keywords { common-field-fixed-attlist, text }paragraph-content |=  element text:editing-cycles { common-field-fixed-attlist, text }paragraph-content |=  element text:editing-duration {    (common-field-fixed-attlist     & common-field-data-style-name-attlist     & attribute text:duration { duration }?),    text  }paragraph-content |=  element text:modification-time {    (common-field-fixed-attlist     & common-field-data-style-name-attlist     & attribute text:time-value { time }?),    text  }paragraph-content |=  element text:modification-date {    (common-field-fixed-attlist     & common-field-data-style-name-attlist     & attribute text:date-value { date }?),    text  }paragraph-content |=  element text:creator { common-field-fixed-attlist, text }paragraph-content |=  element text:page-count          | text:paragraph-count          | text:word-count          | text:character-count          | text:table-count          | text:image-count          | text:object-count { common-field-num-format-attlist, text }common-field-database-table =  common-field-database-table-attlist, common-field-database-namecommon-field-database-name |= attribute text:database-name { \string }?common-field-database-name |= form-connection-resourcecommon-field-database-table-attlist &=  attribute text:table-name { \string }common-field-database-table-attlist &=  attribute text:table-type { "table" | "query" | "command" }?paragraph-content |=  element text:database-display { text-database-display-attlist, text }text-database-display-attlist &= common-field-database-tabletext-database-display-attlist &= common-field-data-style-name-attlisttext-database-display-attlist &= attribute text:column-name { \string }paragraph-content |=  element text:database-next { text-database-next-attlist }text-database-next-attlist &= common-field-database-tabletext-database-next-attlist &= attribute text:condition { formula }?paragraph-content |=  element text:database-row-select { text-database-row-select-attlist }text-database-row-select-attlist &= common-field-database-tabletext-database-row-select-attlist &=  attribute text:condition { formula }?text-database-row-select-attlist &=  attribute text:row-number { nonNegativeInteger }?paragraph-content |=  element text:database-row-number {    (common-field-database-table     & common-field-num-format-attlist     & attribute text:value { nonNegativeInteger }?),    text  }paragraph-content |=  element text:database-name { common-field-database-table, text }paragraph-content |=  element text:page-variable-set {    text-set-page-variable-attlist, text  }text-set-page-variable-attlist &= attribute text:active { boolean }?text-set-page-variable-attlist &=  attribute text:page-adjust { integer }?paragraph-content |=  element text:page-variable-get {    text-get-page-variable-attlist, text  }text-get-page-variable-attlist &= common-field-num-format-attlistparagraph-content |=  element text:placeholder { text-placeholder-attlist, text }text-placeholder-attlist &=  attribute text:placeholder-type {    "text" | "table" | "text-box" | "image" | "object"  }text-placeholder-attlist &= common-field-description-attlistparagraph-content |=  element text:conditional-text { text-conditional-text-attlist, text }text-conditional-text-attlist &= attribute text:condition { formula }text-conditional-text-attlist &=  attribute text:string-value-if-true { \string }text-conditional-text-attlist &=  attribute text:string-value-if-false { \string }text-conditional-text-attlist &=  attribute text:current-value { boolean }?paragraph-content |=  element text:hidden-text { text-hidden-text-attlist, text }text-hidden-text-attlist &= attribute text:condition { formula }text-hidden-text-attlist &= attribute text:string-value { \string }text-hidden-text-attlist &= attribute text:is-hidden { boolean }?paragraph-content |=  element text:reference-ref | text:bookmark-ref {    text-common-ref-content & text-ref-content  }paragraph-content |=  element text:note-ref {    text-common-ref-content & text-note-ref-content & text-ref-content  }paragraph-content |=  element text:sequence-ref {    text-common-ref-content & text-sequence-ref-content  }text-common-ref-content &= texttext-common-ref-content &= attribute text:ref-name { \string }?text-note-ref-content &= text-note-classtext-ref-content &=  attribute text:reference-format {    "page" | "chapter" | "direction" | "text"  }?text-sequence-ref-content &=  attribute text:reference-format {    "page"    | "chapter"    | "direction"    | "text"    | "category-and-value"    | "caption"    | "value"  }?paragraph-content |=  element text:script {    ((attribute xlink:href { anyURI },      [ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?)     | text)    & attribute script:language { \string }?  }paragraph-content |=  element text:execute-macro {    attribute text:name { \string }?,    office-event-listeners?,    text  }paragraph-content |=  element text:hidden-paragraph { text-hidden-paragraph-attlist, text }text-hidden-paragraph-attlist &= attribute text:condition { formula }text-hidden-paragraph-attlist &= attribute text:is-hidden { boolean }?paragraph-content |=  element text:dde-connection {    attribute text:connection-name { \string },    text  }paragraph-content |=  element text:measure {    attribute text:kind { "value" | "unit" | "gap" },    text  }paragraph-content |=  element text:table-formula {    (common-field-formula-attlist     & common-field-display-value-formula-attlist     & common-field-data-style-name-attlist),    text  }common-value-type-attlist = attribute office:value-type { valueType }common-value-and-type-attlist =  (attribute office:value-type { "float" },   attribute office:value { double })  | (attribute office:value-type { "percentage" },     attribute office:value { double })  | (attribute office:value-type { "currency" },     attribute office:value { double },     attribute office:currency { \string }?)  | (attribute office:value-type { "date" },     attribute office:date-value { dateOrDateTime })  | (attribute office:value-type { "time" },     attribute office:time-value { duration })  | (attribute office:value-type { "boolean" },     attribute office:boolean-value { boolean })  | (attribute office:value-type { "string" },     attribute office:string-value { \string }?)common-field-fixed-attlist = attribute text:fixed { boolean }?common-field-name-attlist = attribute text:name { variableName }common-field-description-attlist = attribute text:description { text }?common-field-display-value-none-attlist =  attribute text:display { "value" | "none" }?common-field-display-value-formula-none-attlist =  attribute text:display { "value" | "formula" | "none" }?common-field-display-value-formula-attlist =  attribute text:display { "value" | "formula" }?common-field-formula-attlist = attribute text:formula { formula }?common-field-data-style-name-attlist =  attribute style:data-style-name { styleNameRef }?common-field-num-format-attlist = common-num-format-attlist?paragraph-content |=  element text:toc-mark-start { text-toc-mark-start-attrs }text-toc-mark-start-attrs = text-id, text-outline-leveltext-outline-level = attribute text:outline-level { positiveInteger }?text-id = attribute text:id { \string }paragraph-content |= element text:toc-mark-end { text-id }paragraph-content |=  element text:toc-mark {    attribute text:string-value { \string },    text-outline-level  }paragraph-content |=  element text:user-index-mark-start {    text-id, text-outline-level, text-index-name  }paragraph-content |=  element text:user-index-mark-end { text-id, text-outline-level }paragraph-content |=  element text:user-index-mark {    attribute text:string-value { \string },    text-outline-level,    text-index-name  }text-index-name = attribute text:index-name { \string }paragraph-content |=  element text:alphabetical-index-mark-start {    text-id, text-alphabetical-index-mark-attrs  }paragraph-content |=  element text:alphabetical-index-mark-end { text-id }paragraph-content |=  element text:alphabetical-index-mark {    attribute text:string-value { \string },    text-alphabetical-index-mark-attrs  }text-alphabetical-index-mark-attrs &=  attribute text:key1 { \string }?,  attribute text:key2 { \string }?text-alphabetical-index-mark-attrs &=  attribute text:string-value-phonetic { \string }?,  attribute text:key1-phonetic { \string }?,  attribute text:key2-phonetic { \string }?text-alphabetical-index-mark-attrs &=  [ a:defaultValue = "false" ] attribute text:main-entry { boolean }?paragraph-content |=  element text:bibliography-mark {    attribute text:bibliography-type { text-bibliography-types },    attribute text:identifier              | text:address              | text:annote              | text:author              | text:booktitle              | text:chapter              | text:edition              | text:editor              | text:howpublished              | text:institution              | text:journal              | text:month              | text:note              | text:number              | text:organizations              | text:pages              | text:publisher              | text:school              | text:series              | text:title              | text:report-type              | text:volume              | text:year              | text:url              | text:custom1              | text:custom2              | text:custom3              | text:custom4              | text:custom5              | text:isbn              | text:issn { \string }*,    text  }text-bibliography-types =  "article"  | "book"  | "booklet"  | "conference"  | "custom1"  | "custom2"  | "custom3"  | "custom4"  | "custom5"  | "email"  | "inbook"  | "incollection"  | "inproceedings"  | "journal"  | "manual"  | "mastersthesis"  | "misc"  | "phdthesis"  | "proceedings"  | "techreport"  | "unpublished"  | "www"text-index-body = element text:index-body { index-content-main* }index-content-main = text-content | text-index-titletext-index-title =  element text:index-title { sectionAttr, index-content-main* }text-table-of-content =  element text:table-of-content {    sectionAttr, text-table-of-content-source, text-index-body  }text-table-of-content-source =  element text:table-of-content-source {    text-table-of-content-source-attlist,    text-index-title-template?,    text-table-of-content-entry-template*,    text-index-source-styles*  }text-table-of-content-source-attlist &=  attribute text:outline-level { positiveInteger }?text-table-of-content-source-attlist &=  [ a:defaultValue = "true" ]  attribute text:use-outline-level { boolean }?text-table-of-content-source-attlist &=  attribute text:use-index-marks { boolean }?text-table-of-content-source-attlist &=  attribute text:use-index-source-styles { boolean }?text-table-of-content-source-attlist &=  attribute text:index-scope { "document" | "chapter" }?text-table-of-content-source-attlist &=  attribute text:relative-tab-stop-position { boolean }?text-table-of-content-entry-template =  element text:table-of-content-entry-template {    text-table-of-content-entry-template-attlist,    text-table-of-content-children*  }text-table-of-content-children =  text-index-entry-chapter  | text-index-entry-page-number  | text-index-entry-text  | text-index-entry-span  | text-index-entry-tab-stop  | text-index-entry-link-start  | text-index-entry-link-endtext-table-of-content-entry-template-attlist &=  attribute text:outline-level { positiveInteger }text-table-of-content-entry-template-attlist &=  attribute text:style-name { styleNameRef }text-illustration-index =  element text:illustration-index {    sectionAttr, text-illustration-index-source, text-index-body  }text-illustration-index-source =  element text:illustration-index-source {    text-illustration-index-source-attrs,    text-index-title-template?,    text-illustration-index-entry-template?  }text-illustration-index-source-attrs &= text-index-scope-attrtext-index-scope-attr =  [ a:defaultValue = "document" ]  attribute text:index-scope { "document" | "chapter" }?text-illustration-index-source-attrs &=  text-relative-tab-stop-position-attrtext-relative-tab-stop-position-attr =  [ a:defaultValue = "true" ]  attribute text:relative-tab-stop-position { boolean }?text-illustration-index-source-attrs &=  [ a:defaultValue = "true" ] attribute text:use-caption { boolean }?text-illustration-index-source-attrs &=  attribute text:caption-sequence-name { \string }?text-illustration-index-source-attrs &=  attribute text:caption-sequence-format {    "text" | "category-and-value" | "caption"  }?text-illustration-index-entry-template =  element text:illustration-index-entry-template {    text-illustration-index-entry-content  }text-illustration-index-entry-content =  text-illustration-index-entry-template-attrs,  (text-index-entry-page-number   | text-index-entry-text   | text-index-entry-span   | text-index-entry-tab-stop)*text-illustration-index-entry-template-attrs =  attribute text:style-name { styleNameRef }text-table-index =  element text:table-index {    sectionAttr, text-table-index-source, text-index-body  }text-table-index-source =  element text:table-index-source {    text-illustration-index-source-attrs,    text-index-title-template?,    text-table-index-entry-template?  }text-table-index-entry-template =  element text:table-index-entry-template {    text-illustration-index-entry-content  }text-object-index =  element text:object-index {    sectionAttr, text-object-index-source, text-index-body  }text-object-index-source =  element text:object-index-source {    text-object-index-source-attrs,    text-index-title-template?,    text-object-index-entry-template?  }text-object-index-source-attrs &= text-index-scope-attrtext-object-index-source-attrs &= text-relative-tab-stop-position-attrtext-object-index-source-attrs &=  [ a:defaultValue = "false" ]  attribute text:use-spreadsheet-objects { boolean }?text-object-index-source-attrs &=  [ a:defaultValue = "false" ]  attribute text:use-math-objects { boolean }?text-object-index-source-attrs &=  [ a:defaultValue = "false" ]  attribute text:use-draw-objects { boolean }?text-object-index-source-attrs &=  [ a:defaultValue = "false" ]  attribute text:use-chart-objects { boolean }?text-object-index-source-attrs &=  [ a:defaultValue = "false" ]  attribute text:use-other-objects { boolean }?text-object-index-entry-template =  element text:object-index-entry-template {    text-illustration-index-entry-content  }text-user-index =  element text:user-index {    sectionAttr, text-user-index-source, text-index-body  }text-user-index-source =  element text:user-index-source {    text-user-index-source-attr,    text-index-title-template?,    text-user-index-entry-template*,    text-index-source-styles*  }text-user-index-source-attr &=  text-index-scope-attr,  text-relative-tab-stop-position-attr,  attribute text:index-name { \string }text-user-index-source-attr &=  [ a:defaultValue = "false" ]  attribute text:use-index-marks { boolean }?,  [ a:defaultValue = "false" ] attribute text:use-graphics { boolean }?,  [ a:defaultValue = "false" ] attribute text:use-tables { boolean }?,  [ a:defaultValue = "false" ]  attribute text:use-floating-frames { boolean }?,  [ a:defaultValue = "false" ] attribute text:use-objects { boolean }?text-user-index-source-attr &=  [ a:defaultValue = "false" ]  attribute text:copy-outline-levels { boolean }?text-user-index-entry-template =  element text:user-index-entry-template {    text-user-index-entry-template-attrs,    (text-index-entry-chapter     | text-index-entry-page-number     | text-index-entry-text     | text-index-entry-span     | text-index-entry-tab-stop)*  }text-user-index-entry-template-attrs &=  attribute text:outline-level { positiveInteger }text-user-index-entry-template-attrs &=  attribute text:style-name { styleNameRef }text-alphabetical-index =  element text:alphabetical-index {    sectionAttr, text-alphabetical-index-source, text-index-body  }text-alphabetical-index-source =  element text:alphabetical-index-source {    text-alphabetical-index-source-attrs,    text-index-title-template?,    text-alphabetical-index-entry-template*  }text-alphabetical-index-source-attrs &=  text-index-scope-attr, text-relative-tab-stop-position-attrtext-alphabetical-index-source-attrs &=  [ a:defaultValue = "false" ] attribute text:ignore-case { boolean }?text-alphabetical-index-source-attrs &=  attribute text:main-entry-style-name { styleNameRef }?text-alphabetical-index-source-attrs &=  [ a:defaultValue = "false" ]  attribute text:alphabetical-separators { boolean }?text-alphabetical-index-source-attrs &=  [ a:defaultValue = "true" ]  attribute text:combine-entries { boolean }?,  [ a:defaultValue = "false" ]  attribute text:combine-entries-with-dash { boolean }?,  [ a:defaultValue = "true" ]  attribute text:combine-entries-with-pp { boolean }?text-alphabetical-index-source-attrs &=  [ a:defaultValue = "false" ]  attribute text:use-keys-as-entries { boolean }?text-alphabetical-index-source-attrs &=  [ a:defaultValue = "false" ]  attribute text:capitalize-entries { boolean }?text-alphabetical-index-source-attrs &=  [ a:defaultValue = "false" ]  attribute text:comma-separated { boolean }?text-alphabetical-index-source-attrs &=  attribute fo:language { languageCode }?text-alphabetical-index-source-attrs &=  attribute fo:country { countryCode }?text-alphabetical-index-source-attrs &=  attribute text:sort-algorithm { \string }?text-alphabetical-index-auto-mark-file =  element text:alphabetical-index-auto-mark-file {    attribute xlink:href { anyURI },    [ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?  }text-alphabetical-index-entry-template =  element text:alphabetical-index-entry-template {    text-alphabetical-index-entry-template-attrs,    (text-index-entry-chapter     | text-index-entry-page-number     | text-index-entry-text     | text-index-entry-span     | text-index-entry-tab-stop)*  }text-alphabetical-index-entry-template-attrs &=  attribute text:outline-level { "1" | "2" | "3" | "separator" }text-alphabetical-index-entry-template-attrs &=  attribute text:style-name { styleNameRef }text-bibliography =  element text:bibliography {    sectionAttr, text-bibliography-source, text-index-body  }text-bibliography-source =  element text:bibliography-source {    text-index-title-template?, text-bibliography-entry-template*  }text-bibliography-entry-template =  element text:bibliography-entry-template {    text-bibliography-entry-template-attrs,    (text-index-entry-span     | text-index-entry-tab-stop     | text-index-entry-bibliography)*  }text-bibliography-entry-template-attrs &=  attribute text:bibliography-type { text-bibliography-types }text-bibliography-entry-template-attrs &=  attribute text:style-name { styleNameRef }text-index-source-styles =  element text:index-source-styles {    attribute text:outline-level { positiveInteger },    text-index-source-style*  }text-index-source-style =  element text:index-source-style {    attribute text:style-name { styleName },    empty  }text-index-title-template =  element text:index-title-template {    attribute text:style-name { styleNameRef }?,    text  }text-index-entry-chapter =  element text:index-entry-chapter {    attribute text:style-name { styleNameRef }?,    text-index-entry-chapter-attrs  }text-index-entry-chapter-attrs =  [ a:defaultValue = "number" ]  attribute text:display { "name" | "number" | "number-and-name" }?text-index-entry-text =  element text:index-entry-text {    attribute text:style-name { styleNameRef }?  }text-index-entry-page-number =  element text:index-entry-page-number {    attribute text:style-name { styleNameRef }?  }text-index-entry-span =  element text:index-entry-span {    attribute text:style-name { styleNameRef }?,    text  }text-index-entry-bibliography =  element text:index-entry-bibliography {    text-index-entry-bibliography-attrs  }text-index-entry-bibliography-attrs &=  attribute text:style-name { styleNameRef }?text-index-entry-bibliography-attrs &=  attribute text:bibliography-data-field {    "address"    | "annote"    | "author"    | "bibliography-type"    | "booktitle"    | "chapter"    | "custom1"    | "custom2"    | "custom3"    | "custom4"    | "custom5"    | "edition"    | "editor"    | "howpublished"    | "identifier"    | "institution"    | "isbn"    | "issn"    | "journal"    | "month"    | "note"    | "number"    | "organizations"    | "pages"    | "publisher"    | "report-type"    | "school"    | "series"    | "title"    | "url"    | "volume"    | "year"  }text-index-entry-tab-stop =  element text:index-entry-tab-stop {    attribute text:style-name { styleNameRef }?,    text-index-entry-tab-stop-attrs  }text-index-entry-tab-stop-attrs &=  attribute style:leader-char { character }?text-index-entry-tab-stop-attrs &=  attribute style:type { "right" }  | (attribute style:type { "left" },     attribute style:position { length })text-index-entry-link-start =  element text:index-entry-link-start {    attribute text:style-name { styleNameRef }?  }text-index-entry-link-end =  element text:index-entry-link-end {    attribute text:style-name { styleNameRef }?  }table-table =  element table:table {    table-table-attlist,    table-table-source?,    office-dde-source?,    table-scenario?,    office-forms?,    table-shapes?,    table-columns-and-groups,    table-rows-and-groups  }table-columns-and-groups =  (table-table-column-group | table-columns-no-group)+table-columns-no-group =  (table-columns, (table-table-header-columns, table-columns?)?)  | (table-table-header-columns, table-columns?)table-columns = table-table-columns | table-table-column+table-rows-and-groups = (table-table-row-group | table-rows-no-group)+table-rows-no-group =  (table-rows, (table-table-header-rows, table-rows?)?)  | (table-table-header-rows, table-rows?)table-rows =  table-table-rows | (text-soft-page-break?, table-table-row)+table-table-attlist &= attribute table:name { \string }?table-table-attlist &= attribute table:style-name { styleNameRef }?table-table-attlist &=  [ a:defaultValue = "false" ] attribute table:protected { boolean }?,  attribute table:protection-key { text }?table-table-attlist &=  [ a:defaultValue = "true" ] attribute table:print { boolean }?table-table-attlist &=  attribute table:print-ranges { cellRangeAddressList }?table-table-row =  element table:table-row {    table-table-row-attlist,    (table-table-cell | table-covered-table-cell)+  }table-table-row-attlist &=  [ a:defaultValue = "1" ]  attribute table:number-rows-repeated { positiveInteger }?table-table-row-attlist &= attribute table:style-name { styleNameRef }?table-table-row-attlist &=  attribute table:default-cell-style-name { styleNameRef }?table-table-row-attlist &=  [ a:defaultValue = "visible" ]  attribute table:visibility { table-visibility-value }?table-visibility-value = "visible" | "collapse" | "filter"table-table-cell =  element table:table-cell {    table-table-cell-attlist,    table-table-cell-attlist-extra,    table-table-cell-content  }table-covered-table-cell =  element table:covered-table-cell {    table-table-cell-attlist, table-table-cell-content  }table-table-cell-content =  table-cell-range-source?,  office-annotation?,  table-detective?,  text-content*table-table-cell-attlist &=  [ a:defaultValue = "1" ]  attribute table:number-columns-repeated { positiveInteger }?table-table-cell-attlist-extra &=  [ a:defaultValue = "1" ]  attribute table:number-columns-spanned { positiveInteger }?,  [ a:defaultValue = "1" ]  attribute table:number-rows-spanned { positiveInteger }?table-table-cell-attlist &= attribute table:style-name { styleNameRef }?table-table-cell-attlist &=  attribute table:content-validation-name { \string }?table-table-cell-attlist &= attribute table:formula { \string }?table-table-cell-attlist-extra &=  attribute table:number-matrix-columns-spanned { positiveInteger }?,  attribute table:number-matrix-rows-spanned { positiveInteger }?table-table-cell-attlist &= common-value-and-type-attlist?table-table-cell-attlist &=  [ a:defaultValue = "false" ] attribute table:protect { boolean }?table-table-column =  element table:table-column { table-table-column-attlist, empty }table-table-column-attlist &=  [ a:defaultValue = "1" ]  attribute table:number-columns-repeated { positiveInteger }?table-table-column-attlist &=  attribute table:style-name { styleNameRef }?table-table-column-attlist &=  [ a:defaultValue = "visible" ]  attribute table:visibility { table-visibility-value }?table-table-column-attlist &=  attribute table:default-cell-style-name { styleNameRef }?table-table-header-columns =  element table:table-header-columns { table-table-column+ }table-table-columns =  element table:table-columns { table-table-column+ }table-table-column-group =  element table:table-column-group {    table-table-column-group-attlist, table-columns-and-groups  }table-table-column-group-attlist &=  [ a:defaultValue = "true" ] attribute table:display { boolean }?table-table-header-rows =  element table:table-header-rows {    (text-soft-page-break?, table-table-row)+  }table-table-rows =  element table:table-rows { (text-soft-page-break?, table-table-row)+ }table-table-row-group =  element table:table-row-group {    table-table-row-group-attlist, table-rows-and-groups  }table-table-row-group-attlist &=  [ a:defaultValue = "true" ] attribute table:display { boolean }?table-table-attlist &=  [ a:defaultValue = "false" ] attribute table:is-sub-table { boolean }?cellAddress =  xsd:string {    pattern = "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+"  }cellRangeAddress =  xsd:string {    pattern =      "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+)?"  }cellRangeAddressList =  # Value is a space separated list of "cellRangeAddress" patterns  xsd:stringtable-table-source =  element table:table-source {    table-table-source-attlist, table-linked-source-attlist, empty  }table-table-source-attlist &=  [ a:defaultValue = "copy-all" ]  attribute table:mode { "copy-all" | "copy-results-only" }?table-table-source-attlist &= attribute table:table-name { \string }?table-linked-source-attlist &=  [ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,  [ a:defaultValue = "onRequest" ]  attribute xlink:actuate { "onRequest" }?,  attribute xlink:href { anyURI }table-linked-source-attlist &= attribute table:filter-name { \string }?table-linked-source-attlist &=  attribute table:filter-options { \string }?table-linked-source-attlist &=  attribute table:refresh-delay { duration }?table-scenario =  element table:scenario { table-scenario-attlist, empty }table-scenario-attlist &=  attribute table:scenario-ranges { cellRangeAddressList }table-scenario-attlist &= attribute table:is-active { boolean }table-scenario-attlist &=  [ a:defaultValue = "true" ]  attribute table:display-border { boolean }?table-scenario-attlist &= attribute table:border-color { color }?table-scenario-attlist &=  [ a:defaultValue = "true" ] attribute table:copy-back { boolean }?table-scenario-attlist &=  [ a:defaultValue = "true" ] attribute table:copy-styles { boolean }?table-scenario-attlist &=  [ a:defaultValue = "true" ] attribute table:copy-formulas { boolean }?table-scenario-attlist &= attribute table:comment { \string }?table-scenario-attlist &= attribute table:protected { boolean }?table-shapes = element table:shapes { shape+ }table-cell-range-source =  element table:cell-range-source {    table-table-cell-range-source-attlist,    table-linked-source-attlist,    empty  }table-table-cell-range-source-attlist &=  attribute table:name { \string }table-table-cell-range-source-attlist &=  attribute table:last-column-spanned { positiveInteger },  attribute table:last-row-spanned { positiveInteger }table-detective =  element table:detective { table-highlighted-range*, table-operation* }table-operation =  element table:operation { table-operation-attlist, empty }table-operation-attlist &=  attribute table:name {    "trace-dependents"    | "remove-dependents"    | "trace-precedents"    | "remove-precedents"    | "trace-errors"  }table-operation-attlist &= attribute table:index { nonNegativeInteger }table-highlighted-range =  element table:highlighted-range {    (table-highlighted-range-attlist     | table-highlighted-range-attlist-invalid),    empty  }table-highlighted-range-attlist &=  attribute table:cell-range-address { cellRangeAddress }?table-highlighted-range-attlist &=  attribute table:direction {    "from-another-table" | "to-another-table" | "from-same-table"  }table-highlighted-range-attlist &=  [ a:defaultValue = "false" ]  attribute table:contains-error { boolean }?table-highlighted-range-attlist-invalid &=  attribute table:marked-invalid { boolean }office-spreadsheet-attlist &=  [ a:defaultValue = "false" ]  attribute table:structure-protected { boolean }?,  attribute table:protection-key { \string }?table-calculation-settings =  element table:calculation-settings {    table-calculation-setting-attlist,    table-null-date?,    table-iteration?  }table-calculation-setting-attlist &=  [ a:defaultValue = "true" ]  attribute table:case-sensitive { boolean }?table-calculation-setting-attlist &=  [ a:defaultValue = "false" ]  attribute table:precision-as-shown { boolean }?table-calculation-setting-attlist &=  [ a:defaultValue = "true" ]  attribute table:search-criteria-must-apply-to-whole-cell { boolean }?table-calculation-setting-attlist &=  [ a:defaultValue = "true" ]  attribute table:automatic-find-labels { boolean }?table-calculation-setting-attlist &=  [ a:defaultValue = "true" ]  attribute table:use-regular-expressions { boolean }?table-calculation-setting-attlist &=  [ a:defaultValue = "1930" ]  attribute table:null-year { positiveInteger }?table-null-date =  element table:null-date {    [ a:defaultValue = "date" ]    attribute table:value-type { valueType }?,    [ a:defaultValue = "1899-12-30" ]    attribute table:date-value { date }?,    empty  }table-iteration =  element table:iteration {    [ a:defaultValue = "disable" ]    attribute table:status { "enable" | "disable" }?,    [ a:defaultValue = "100" ]    attribute table:steps { positiveInteger }?,    [ a:defaultValue = "0.001" ]    attribute table:maximum-difference { double }?,    empty  }table-content-validations =  element table:content-validations { table-content-validation+ }table-content-validation =  element table:content-validation {    table-validation-attlist,    table-help-message?,    (table-error-message     | (table-error-macro, office-event-listeners?))?  }table-validation-attlist &= attribute table:name { \string }table-validation-attlist &= attribute table:condition { \string }?table-validation-attlist &=  attribute table:base-cell-address { cellAddress }?table-validation-attlist &=  [ a:defaultValue = "true" ]  attribute table:allow-empty-cell { boolean }?table-validation-attlist &=  [ a:defaultValue = "unsorted" ]  attribute table:display-list {    "none" | "unsorted" | "sort-ascending"  }?table-help-message =  element table:help-message {    attribute table:title { \string }?,    [ a:defaultValue = "false" ] attribute table:display { boolean }?,    text-p*  }table-error-message =  element table:error-message {    attribute table:title { \string }?,    [ a:defaultValue = "false" ] attribute table:display { boolean }?,    [ a:defaultValue = "stop" ]    attribute table:message-type {      "stop" | "warning" | "information"    }?,    text-p*  }table-error-macro =  element table:error-macro {    [ a:defaultValue = "true" ] attribute table:execute { boolean }?  }table-label-ranges = element table:label-ranges { table-label-range* }table-label-range =  element table:label-range { table-label-range-attlist, empty }table-label-range-attlist &=  attribute table:label-cell-range-address { cellRangeAddress }table-label-range-attlist &=  attribute table:data-cell-range-address { cellRangeAddress }table-label-range-attlist &=  attribute table:orientation { "column" | "row" }table-named-expressions =  element table:named-expressions {    (table-named-range | table-named-expression)*  }table-named-range =  element table:named-range { table-named-range-attlist, empty }table-named-range-attlist &=  attribute table:name { \string },  attribute table:cell-range-address { cellRangeAddress },  attribute table:base-cell-address { cellAddress }?,  [ a:defaultValue = "none" ]  attribute table:range-usable-as {    "none"    | list {        ("print-range" | "filter" | "repeat-row" | "repeat-column")+      }  }?table-named-expression =  element table:named-expression {    table-named-expression-attlist, empty  }table-named-expression-attlist &=  attribute table:name { \string },  attribute table:expression { \string },  attribute table:base-cell-address { cellAddress }?table-database-ranges =  element table:database-ranges { table-database-range* }table-database-range =  element table:database-range {    table-database-range-attlist,    (table-database-source-sql     | table-database-source-table     | table-database-source-query)?,    table-filter?,    table-sort?,    table-subtotal-rules?  }table-database-range-attlist &= attribute table:name { \string }?table-database-range-attlist &=  [ a:defaultValue = "false" ] attribute table:is-selection { boolean }?table-database-range-attlist &=  [ a:defaultValue = "false" ]  attribute table:on-update-keep-styles { boolean }?table-database-range-attlist &=  [ a:defaultValue = "true" ]  attribute table:on-update-keep-size { boolean }?table-database-range-attlist &=  [ a:defaultValue = "true" ]  attribute table:has-persistent-data { boolean }?table-database-range-attlist &=  [ a:defaultValue = "row" ]  attribute table:orientation { "column" | "row" }?table-database-range-attlist &=  [ a:defaultValue = "true" ]  attribute table:contains-header { boolean }?table-database-range-attlist &=  [ a:defaultValue = "false" ]  attribute table:display-filter-buttons { boolean }?table-database-range-attlist &=  attribute table:target-range-address { cellRangeAddress }table-database-range-attlist &=  attribute table:refresh-delay { boolean }?table-database-source-sql =  element table:database-source-sql {    table-database-source-sql-attlist, empty  }table-database-source-sql-attlist &=  attribute table:database-name { \string }table-database-source-sql-attlist &=  attribute table:sql-statement { \string }table-database-source-sql-attlist &=  [ a:defaultValue = "false" ]  attribute table:parse-sql-statement { boolean }?table-database-source-query =  element table:database-source-table {    table-database-source-table-attlist, empty  }table-database-source-table-attlist &=  attribute table:database-name { \string }table-database-source-table-attlist &=  attribute table:database-table-name { \string }table-database-source-table =  element table:database-source-query {    table-database-source-query-attlist, empty  }table-database-source-query-attlist &=  attribute table:database-name { \string }table-database-source-query-attlist &=  attribute table:query-name { \string }table-sort = element table:sort { table-sort-attlist, table-sort-by+ }table-sort-attlist &=  [ a:defaultValue = "true" ]  attribute table:bind-styles-to-content { boolean }?table-sort-attlist &=  attribute table:target-range-address { cellRangeAddress }?table-sort-attlist &=  [ a:defaultValue = "false" ]  attribute table:case-sensitive { boolean }?table-sort-attlist &= attribute table:language { languageCode }?table-sort-attlist &= attribute table:country { countryCode }?table-sort-attlist &= attribute table:algorithm { \string }?table-sort-by = element table:sort-by { table-sort-by-attlist, empty }table-sort-by-attlist &=  attribute table:field-number { nonNegativeInteger }table-sort-by-attlist &=  [ a:defaultValue = "automatic" ]  attribute table:data-type {    "text" | "number" | "automatic" | \string  }?table-sort-by-attlist &=  [ a:defaultValue = "ascending" ]  attribute table:order { "ascending" | "descending" }?table-subtotal-rules =  element table:subtotal-rules {    table-subtotal-rules-attlist,    table-sort-groups?,    table-subtotal-rule*  }table-subtotal-rules-attlist &=  [ a:defaultValue = "true" ]  attribute table:bind-styles-to-content { boolean }?table-subtotal-rules-attlist &=  [ a:defaultValue = "false" ]  attribute table:case-sensitive { boolean }?table-subtotal-rules-attlist &=  [ a:defaultValue = "false" ]  attribute table:page-breaks-on-group-change { boolean }?table-sort-groups =  element table:sort-groups { table-sort-groups-attlist, empty }table-sort-groups-attlist &=  [ a:defaultValue = "automatic" ]  attribute table:data-type {    "text" | "number" | "automatic" | \string  }?table-sort-groups-attlist &=  [ a:defaultValue = "ascending" ]  attribute table:order { "ascending" | "descending" }?table-subtotal-rule =  element table:subtotal-rule {    table-subtotal-rule-attlist, table-subtotal-field*  }table-subtotal-rule-attlist &=  attribute table:group-by-field-number { nonNegativeInteger }table-subtotal-field =  element table:subtotal-field { table-subtotal-field-attlist, empty }table-subtotal-field-attlist &=  attribute table:field-number { nonNegativeInteger }table-subtotal-field-attlist &=  attribute table:function {    "auto"    | "average"    | "count"    | "countnums"    | "max"    | "min"    | "product"    | "stdev"    | "stdevp"    | "sum"    | "var"    | "varp"    | \string  }table-filter =  element table:filter {    table-filter-attlist,    (table-filter-condition | table-filter-and | table-filter-or)  }table-filter-attlist &=  attribute table:target-range-address { cellRangeAddress }?table-filter-attlist &=  [ a:defaultValue = "self" ]  attribute table:condition-source { "self" | "cell-range" }?table-filter-attlist &=  attribute table:condition-source-range-address { cellRangeAddress }?table-filter-attlist &=  [ a:defaultValue = "true" ]  attribute table:display-duplicates { boolean }?table-filter-and =  element table:filter-and {    (table-filter-or | table-filter-condition)+  }table-filter-or =  element table:filter-or {    (table-filter-and | table-filter-condition)+  }table-filter-condition =  element table:filter-condition {    table-filter-condition-attlist, empty  }table-filter-condition-attlist &=  attribute table:field-number { nonNegativeInteger }table-filter-condition-attlist &= attribute table:value { \string }table-filter-condition-attlist &= attribute table:operator { \string }table-filter-condition-attlist &=  [ a:defaultValue = "false" ]  attribute table:case-sensitive { \string }?table-filter-condition-attlist &=  [ a:defaultValue = "text" ]  attribute table:data-type { "text" | "number" }?table-data-pilot-tables =  element table:data-pilot-tables { table-data-pilot-table* }table-data-pilot-table =  element table:data-pilot-table {    table-data-pilot-table-attlist,    (table-database-source-sql     | table-database-source-table     | table-database-source-query     | table-source-service     | table-source-cell-range)?,    table-data-pilot-field+  }table-data-pilot-table-attlist &= attribute table:name { \string }table-data-pilot-table-attlist &=  attribute table:application-data { \string }?table-data-pilot-table-attlist &=  [ a:defaultValue = "both" ]  attribute table:grand-total { "none" | "row" | "column" | "both" }?table-data-pilot-table-attlist &=  [ a:defaultValue = "false" ]  attribute table:ignore-empty-rows { boolean }?table-data-pilot-table-attlist &=  [ a:defaultValue = "false" ]  attribute table:identify-categories { boolean }?table-data-pilot-table-attlist &=  attribute table:target-range-address { cellRangeAddress }table-data-pilot-table-attlist &=  attribute table:buttons { cellRangeAddressList }?table-data-pilot-table-attlist &=  [ a:defaultValue = "true" ]  attribute table:show-filter-button { boolean }?table-data-pilot-table-attlist &=  [ a:defaultValue = "true" ]  attribute table:drill-down-on-double-click { boolean }?table-source-cell-range =  element table:source-cell-range {    table-source-cell-range-attlist, table-filter?  }table-source-cell-range-attlist &=  attribute table:cell-range-address { cellRangeAddress }table-source-service =  element table:source-service { table-source-service-attlist, empty }table-source-service-attlist &= attribute table:name { \string }table-source-service-attlist &= attribute table:source-name { \string }table-source-service-attlist &= attribute table:object-name { \string }table-source-service-attlist &= attribute table:user-name { \string }?table-source-service-attlist &= attribute table:password { \string }?table-data-pilot-field =  element table:data-pilot-field {    table-data-pilot-field-attlist,    table-data-pilot-level?,    table-data-pilot-field-reference?,    table-data-pilot-groups?  }table-data-pilot-field-attlist &=  attribute table:source-field-name { \string }table-data-pilot-field-attlist &=  attribute table:orientation { "row" | "column" | "data" | "hidden" }  | (attribute table:orientation { "page" },     attribute table:selected-page { \string })table-data-pilot-field-attlist &=  [ a:defaultValue = "false" ]  attribute table:is-data-layout-field { \string }?table-data-pilot-field-attlist &=  attribute table:function {    "auto"    | "average"    | "count"    | "countnums"    | "max"    | "min"    | "product"    | "stdev"    | "stdevp"    | "sum"    | "var"    | "varp"    | \string  }?table-data-pilot-field-attlist &=  [ a:defaultValue = "-1" ] attribute table:used-hierarchy { integer }?table-data-pilot-level =  element table:data-pilot-level {    table-data-pilot-level-attlist,    table-data-pilot-subtotals?,    table-data-pilot-members?,    table-data-pilot-display-info?,    table-data-pilot-sort-info?,    table-data-pilot-layout-info?  }table-data-pilot-level-attlist &=  attribute table:show-empty { boolean }?table-data-pilot-subtotals =  element table:data-pilot-subtotals { table-data-pilot-subtotal* }table-data-pilot-subtotal =  element table:data-pilot-subtotal {    table-data-pilot-subtotal-attlist, empty  }table-data-pilot-subtotal-attlist &=  attribute table:function {    "auto"    | "average"    | "count"    | "countnums"    | "max"    | "min"    | "product"    | "stdev"    | "stdevp"    | "sum"    | "var"    | "varp"    | \string  }table-data-pilot-members =  element table:data-pilot-members { table-data-pilot-member* }table-data-pilot-member =  element table:data-pilot-member {    table-data-pilot-member-attlist, empty  }table-data-pilot-member-attlist &= attribute table:name { \string }table-data-pilot-member-attlist &= attribute table:display { boolean }?table-data-pilot-member-attlist &=  attribute table:show-details { boolean }?table-data-pilot-display-info =  element table:data-pilot-display-info {    table-data-pilot-display-info-attlist, empty  }table-data-pilot-display-info-attlist &=  attribute table:enabled { boolean }table-data-pilot-display-info-attlist &=  attribute table:data-field { \string }table-data-pilot-display-info-attlist &=  attribute table:member-count { nonNegativeInteger }table-data-pilot-display-info-attlist &=  attribute table:display-member-mode { "from-top" | "from-bottom" }table-data-pilot-sort-info =  element table:data-pilot-sort-info {    table-data-pilot-sort-info-attlist, empty  }table-data-pilot-sort-info-attlist &=  (attribute table:sort-mode { "data" },   attribute table:data-field { \string })  | attribute table:sort-mode { "none" | "manual" | "name" }table-data-pilot-sort-info-attlist &=  attribute table:order { "ascending" | "descending" }table-data-pilot-layout-info =  element table:data-pilot-layout-info {    table-data-pilot-layout-info-attlist, empty  }table-data-pilot-layout-info-attlist &=  attribute table:layout-mode {    "tabular-layout"    | "outline-subtotals-top"    | "outline-subtotals-bottom"  }table-data-pilot-layout-info-attlist &=  attribute table:add-empty-lines { boolean }table-data-pilot-field-reference =  element table:data-pilot-field-reference {    table-data-pilot-field-reference-attlist  }table-data-pilot-field-reference-attlist &=  attribute table:field-name { \string }table-data-pilot-field-reference-attlist &=  (attribute table:member-type { "named" },   attribute table:member-name { \string })  | attribute table:member-type { "previous" | "next" }table-data-pilot-field-reference-attlist &=  attribute table:type {    "none"    | "member-difference"    | "member-percentage"    | "member-percentage-difference"    | "running-total"    | "row-percentage"    | "column-percentage"    | "total-percentage"    | "index"  }table-data-pilot-groups =  element table:data-pilot-groups {    table-data-pilot-groups-attlist, table-data-pilot-group+  }table-data-pilot-groups-attlist &=  attribute table:source-field-name { \string }table-data-pilot-groups-attlist &=  attribute table:date-start { dateOrDateTime | "auto" }  | attribute table:start { double | "auto" }table-data-pilot-groups-attlist &=  attribute table:date-end { dateOrDateTime | "auto" }  | attribute table:end { double | "auto" }table-data-pilot-groups-attlist &= attribute table:step { double }table-data-pilot-groups-attlist &=  attribute table:grouped-by {    "seconds"    | "minutes"    | "hours"    | "days"    | "months"    | "quarters"    | "years"  }table-data-pilot-group =  element table:data-pilot-group {    table-data-pilot-group-attlist, table-data-pilot-group-member+  }table-data-pilot-group-attlist &= attribute table:name { \string }table-data-pilot-group-member =  element table:data-pilot-group-member {    table-data-pilot-group-member-attlist  }table-data-pilot-group-member-attlist &=  attribute table:name { \string }table-consolidation =  element table:consolidation { table-consolidation-attlist, empty }table-consolidation-attlist &=  attribute table:function {    "auto"    | "average"    | "count"    | "countnums"    | "max"    | "min"    | "product"    | "stdev"    | "stdevp"    | "sum"    | "var"    | "varp"    | \string  }table-consolidation-attlist &=  attribute table:source-cell-range-addresses { cellRangeAddressList }table-consolidation-attlist &=  attribute table:target-cell-address { cellAddress }table-consolidation-attlist &=  [ a:defaultValue = "none" ]  attribute table:use-labels { "none" | "row" | "column" | "both" }?table-consolidation-attlist &=  [ a:defaultValue = "false" ]  attribute table:link-to-source-data { boolean }?table-dde-links = element table:dde-links { table-dde-link+ }table-tracked-changes =  element table:tracked-changes {    table-tracked-changes-attlist,    (table-cell-content-change     | table-insertion     | table-deletion     | table-movement)*  }table-tracked-changes-attlist &=  [ a:defaultValue = "false" ]  attribute table:track-changes { boolean }?table-insertion =  element table:insertion {    table-insertion-attlist,    common-table-change-attlist,    office-change-info,    table-dependencies?,    table-deletions?  }table-insertion-attlist &=  attribute table:type { "row" | "column" | "table" }table-insertion-attlist &= attribute table:position { integer }table-insertion-attlist &=  [ a:defaultValue = "1" ] attribute table:count { positiveInteger }?table-insertion-attlist &= attribute table:table { integer }?table-dependencies = element table:dependencies { table-dependency+ }table-dependency =  element table:dependency {    attribute table:id { \string },    empty  }table-deletions =  element table:deletions {    (table-cell-content-deletion | table-change-deletion)+  }table-cell-content-deletion =  element table:cell-content-deletion {    attribute table:id { \string }?,    table-cell-address?,    table-change-track-table-cell?  }table-change-deletion =  element table:change-deletion {    attribute table:id { \string }?,    empty  }table-deletion =  element table:deletion {    table-deletion-attlist,    common-table-change-attlist,    office-change-info,    table-dependencies?,    table-deletions?,    table-cut-offs?  }table-deletion-attlist &=  attribute table:type { "row" | "column" | "table" }table-deletion-attlist &= attribute table:position { integer }table-deletion-attlist &= attribute table:table { integer }?table-deletion-attlist &=  attribute table:multi-deletion-spanned { integer }?table-cut-offs =  element table:cut-offs {    table-movement-cut-off+    | (table-insertion-cut-off, table-movement-cut-off*)  }table-insertion-cut-off =  element table:insertion-cut-off {    table-insertion-cut-off-attlist, empty  }table-insertion-cut-off-attlist &= attribute table:id { \string }table-insertion-cut-off-attlist &= attribute table:position { integer }table-movement-cut-off =  element table:movement-cut-off {    table-movement-cut-off-attlist, empty  }table-movement-cut-off-attlist &=  attribute table:position { integer }  | (attribute table:start-position { integer },     attribute table:end-position { integer })table-movement =  element table:movement {    common-table-change-attlist,    table-source-range-address,    table-target-range-address,    office-change-info,    table-dependencies?,    table-deletions?  }table-source-range-address =  element table:source-range-address {    common-table-range-attlist, empty  }table-target-range-address =  element table:target-range-address {    common-table-range-attlist, empty  }common-table-range-attlist &=  common-table-cell-address-attlist  | common-table-cell-range-address-attlistcommon-table-cell-address-attlist &=  attribute table:column { integer },  attribute table:row { integer },  attribute table:table { integer }common-table-cell-range-address-attlist &=  attribute table:start-column { integer },  attribute table:start-row { integer },  attribute table:start-table { integer },  attribute table:end-column { integer },  attribute table:end-row { integer },  attribute table:end-table { integer }table-change-track-table-cell &=  element table:change-track-table-cell {    table-change-track-table-cell-attlist, text-p*  }table-change-track-table-cell-attlist &=  attribute table:cell-address { cellAddress }?table-change-track-table-cell-attlist &=  [ a:defaultValue = "false" ]  attribute table:matrix-covered { boolean }?table-change-track-table-cell-attlist &=  attribute table:formula { \string }?,  attribute table:number-matrix-columns-spanned { positiveInteger }?,  attribute table:number-matrix-rows-spanned { positiveInteger }?,  common-value-and-type-attlist?table-cell-content-change =  element table:cell-content-change {    common-table-change-attlist,    table-cell-address,    office-change-info,    table-dependencies?,    table-deletions?,    table-previous  }table-cell-address =  element table:cell-address {    common-table-cell-address-attlist, empty  }table-previous =  element table:previous {    attribute table:id { \string }?,    table-change-track-table-cell  }common-table-change-attlist &= attribute table:id { \string }common-table-change-attlist &=  [ a:defaultValue = "pending" ]  attribute table:acceptance-state {    "accepted" | "rejected" | "pending"  }?common-table-change-attlist &=  attribute table:rejecting-change-id { \string }?style-handout-master =  element style:handout-master {    common-presentation-header-footer-attlist,    style-handout-master-attlist,    shape*  }style-handout-master-attlist &=  attribute presentation:presentation-page-layout-name { styleNameRef }?style-handout-master-attlist &=  attribute style:page-layout-name { styleNameRef }style-handout-master-attlist &=  attribute draw:style-name { styleNameRef }?draw-layer-set = element draw:layer-set { draw-layer* }draw-layer =  element draw:layer { draw-layer-attlist, svg-title?, svg-desc? }draw-layer-attlist &= attribute draw:name { \string }draw-layer-attlist &=  [ a:defaultValue = "false" ] attribute draw:protected { boolean }?draw-layer-attlist &=  [ a:defaultValue = "always" ]  attribute draw:display { "always" | "screen" | "printer" | "none" }?draw-page =  element draw:page {    common-presentation-header-footer-attlist,    draw-page-attlist,    office-forms?,    shape*,    (presentation-animations | animation-element)?,    presentation-notes?  }draw-page-attlist &= attribute draw:name { \string }?draw-page-attlist &= attribute draw:style-name { styleNameRef }?draw-page-attlist &= attribute draw:master-page-name { styleNameRef }draw-page-attlist &=  attribute presentation:presentation-page-layout-name { styleNameRef }?common-presentation-header-footer-attlist &=  attribute presentation:use-header-name { \string }?common-presentation-header-footer-attlist &=  attribute presentation:use-footer-name { \string }?common-presentation-header-footer-attlist &=  attribute presentation:use-date-time-name { \string }?draw-page-attlist &= attribute draw:id { ID }?draw-page-attlist &= attribute draw:nav-order { IDREFS }?shape =  draw-rect  | draw-line  | draw-polyline  | draw-polygon  | draw-regular-polygon  | draw-path  | draw-circle  | draw-ellipse  | draw-g  | draw-page-thumbnail  | draw-frame  | draw-measure  | draw-caption  | draw-connector  | draw-control  | dr3d-scene  | draw-custom-shapedraw-rect =  element draw:rect {    draw-rect-attlist,    common-draw-position-attlist,    common-draw-size-attlist,    common-draw-shape-with-text-and-styles-attlist,    common-draw-caption-id-attlist,    svg-title?,    svg-desc?,    office-event-listeners?,    draw-glue-point*,    draw-text  }draw-rect-attlist &= attribute draw:corner-radius { nonNegativeLength }?draw-line =  element draw:line {    draw-line-attlist,    common-draw-shape-with-text-and-styles-attlist,    common-draw-caption-id-attlist,    svg-title?,    svg-desc?,    office-event-listeners?,    draw-glue-point*,    draw-text  }draw-line-attlist &=  attribute svg:x1 { coordinate },  attribute svg:y1 { coordinate }draw-line-attlist &=  attribute svg:x2 { coordinate },  attribute svg:y2 { coordinate }draw-polyline =  element draw:polyline {    common-draw-points-attlist,    common-draw-position-attlist,    common-draw-size-attlist,    common-draw-viewbox-attlist,    common-draw-shape-with-text-and-styles-attlist,    common-draw-caption-id-attlist,    svg-title?,    svg-desc?,    office-event-listeners?,    draw-glue-point*,    draw-text  }common-draw-points-attlist = attribute draw:points { points }draw-polygon =  element draw:polygon {    common-draw-points-attlist,    common-draw-position-attlist,    common-draw-size-attlist,    common-draw-viewbox-attlist,    common-draw-shape-with-text-and-styles-attlist,    common-draw-caption-id-attlist,    svg-title?,    svg-desc?,    office-event-listeners?,    draw-glue-point*,    draw-text  }draw-regular-polygon =  element draw:regular-polygon {    draw-regular-polygon-attlist,    common-draw-position-attlist,    common-draw-size-attlist,    common-draw-shape-with-text-and-styles-attlist,    common-draw-caption-id-attlist,    svg-title?,    svg-desc?,    office-event-listeners?,    draw-glue-point*,    draw-text  }draw-regular-polygon-attlist &=  attribute draw:concave { "false" }  | (attribute draw:concave { "true" },     draw-regular-polygon-sharpness-attlist)draw-regular-polygon-attlist &=  attribute draw:corners { positiveInteger }draw-regular-polygon-sharpness-attlist =  attribute draw:sharpness { percent }draw-path =  element draw:path {    common-draw-path-data-attlist,    common-draw-position-attlist,    common-draw-size-attlist,    common-draw-viewbox-attlist,    common-draw-shape-with-text-and-styles-attlist,    common-draw-caption-id-attlist,    svg-title?,    svg-desc?,    office-event-listeners?,    draw-glue-point*,    draw-text  }common-draw-path-data-attlist = attribute svg:d { pathData }draw-circle =  element draw:circle {    draw-circle-attlist,    common-draw-circle-ellipse-attlist,    common-draw-position-attlist,    common-draw-size-attlist,    common-draw-shape-with-text-and-styles-attlist,    common-draw-caption-id-attlist,    svg-title?,    svg-desc?,    office-event-listeners?,    draw-glue-point*,    draw-text  }common-draw-circle-ellipse-attlist &=  (attribute svg:cx { coordinate },   attribute svg:cy { coordinate })?draw-circle-attlist &= attribute svg:r { length }?common-draw-circle-ellipse-attlist &=  [ a:defaultValue = "full" ]  attribute draw:kind { "full" | "section" | "cut" | "arc" }?common-draw-circle-ellipse-attlist &=  attribute draw:start-angle { double }?common-draw-circle-ellipse-attlist &=  attribute draw:end-angle { double }?draw-ellipse =  element draw:ellipse {    common-draw-circle-ellipse-attlist,    draw-ellipse-attlist,    common-draw-position-attlist,    common-draw-size-attlist,    common-draw-shape-with-text-and-styles-attlist,    common-draw-caption-id-attlist,    svg-title?,    svg-desc?,    office-event-listeners?,    draw-glue-point*,    draw-text  }draw-ellipse-attlist &=  (attribute svg:rx { length },   attribute svg:ry { length })?draw-connector =  element draw:connector {    draw-connector-attlist,    common-draw-shape-with-text-and-styles-attlist,    common-draw-caption-id-attlist,    svg-title?,    svg-desc?,    office-event-listeners?,    draw-glue-point*,    draw-text  }draw-connector-attlist &=  [ a:defaultValue = "standard" ]  attribute draw:type { "standard" | "lines" | "line" | "curve" }?draw-connector-attlist &=  (attribute svg:x1 { coordinate },   attribute svg:y1 { coordinate })?draw-connector-attlist &= attribute draw:start-shape { IDREF }?draw-connector-attlist &=  attribute draw:start-glue-point { nonNegativeInteger }?draw-connector-attlist &=  (attribute svg:x2 { coordinate },   attribute svg:y2 { coordinate })?draw-connector-attlist &= attribute draw:end-shape { IDREF }?draw-connector-attlist &=  attribute draw:end-glue-point { nonNegativeInteger }?draw-connector-attlist &=  attribute draw:line-skew {    list { length, (length, length?)? }  }?draw-caption =  element draw:caption {    draw-caption-attlist,    common-draw-position-attlist,    common-draw-size-attlist,    common-draw-shape-with-text-and-styles-attlist,    common-draw-caption-id-attlist,    svg-title?,    svg-desc?,    office-event-listeners?,    draw-glue-point*,    draw-text  }draw-caption-attlist &=  (attribute draw:caption-point-x { coordinate },   attribute draw:caption-point-y { coordinate })?draw-caption-attlist &=  attribute draw:corner-radius { nonNegativeLength }?draw-measure =  element draw:measure {    draw-measure-attlist,    common-draw-shape-with-text-and-styles-attlist,    common-draw-caption-id-attlist,    svg-title?,    svg-desc?,    office-event-listeners?,    draw-glue-point*,    draw-text  }draw-measure-attlist &=  attribute svg:x1 { coordinate },  attribute svg:y1 { coordinate }draw-measure-attlist &=  attribute svg:x2 { coordinate },  attribute svg:y2 { coordinate }draw-control =  element draw:control {    draw-control-attlist,    common-draw-position-attlist,    common-draw-size-attlist,    common-draw-shape-with-text-and-styles-attlist,    common-draw-caption-id-attlist,    svg-title?,    svg-desc?,    draw-glue-point*  }draw-control-attlist &= attribute draw:control { IDREF }draw-page-thumbnail =  element draw:page-thumbnail {    draw-page-thumbnail-attlist,    common-draw-position-attlist,    common-draw-size-attlist,    presentation-shape-attlist,    common-draw-shape-with-styles-attlist,    common-draw-caption-id-attlist,    svg-title?,    svg-desc?  }draw-page-thumbnail-attlist =  attribute draw:page-number { positiveInteger }?draw-g =  element draw:g {    draw-g-attlist,    common-draw-z-index-attlist,    common-draw-name-attlist,    common-draw-id-attlist,    common-draw-style-name-attlist,    common-text-spreadsheet-shape-attlist,    common-draw-caption-id-attlist,    svg-title?,    svg-desc?,    office-event-listeners?,    draw-glue-point*,    shape*  }draw-g-attlist &= attribute svg:y { coordinate }?common-draw-name-attlist &= attribute draw:name { \string }?common-draw-caption-id-attlist &= attribute draw:caption-id { IDREF }?common-draw-position-attlist =  attribute svg:x { coordinate }?,  attribute svg:y { coordinate }?common-draw-size-attlist =  attribute svg:width { length }?,  attribute svg:height { length }?common-draw-transform-attlist = attribute draw:transform { \string }?common-draw-viewbox-attlist =  attribute svg:viewBox {    list { integer, integer, integer, integer }  }common-draw-style-name-attlist =  (attribute draw:style-name { styleNameRef }?,   attribute draw:class-names { styleNameRefs }?)  | (attribute presentation:style-name { styleNameRef }?,     attribute presentation:class-names { styleNameRefs }?)common-draw-text-style-name-attlist =  attribute draw:text-style-name { styleNameRef }?common-draw-layer-name-attlist = attribute draw:layer { xsd:string }?common-draw-id-attlist = attribute draw:id { ID }?common-draw-z-index-attlist =  attribute draw:z-index { nonNegativeInteger }?common-text-spreadsheet-shape-attlist &=  attribute table:end-cell-address { cellAddress }?,  attribute table:end-x { coordinate }?,  attribute table:end-y { coordinate }?common-text-spreadsheet-shape-attlist &=  attribute table:table-background { boolean }?common-text-spreadsheet-shape-attlist &= common-text-anchor-attlistcommon-text-anchor-attlist &=  attribute text:anchor-type {    "page" | "frame" | "paragraph" | "char" | "as-char"  }?common-text-anchor-attlist &=  attribute text:anchor-page-number { positiveInteger }?draw-text = (text-p | text-list)*common-draw-shape-with-styles-attlist =  common-draw-z-index-attlist,  common-draw-id-attlist,  common-draw-layer-name-attlist,  common-draw-style-name-attlist,  common-draw-transform-attlist,  common-draw-name-attlist,  common-text-spreadsheet-shape-attlistcommon-draw-shape-with-text-and-styles-attlist =  common-draw-shape-with-styles-attlist,  common-draw-text-style-name-attlistdraw-glue-point =  element draw:glue-point { draw-glue-point-attlist, empty }draw-glue-point-attlist &= attribute draw:id { nonNegativeInteger }draw-glue-point-attlist &=  attribute svg:x { distance | percent },  attribute svg:y { distance | percent }draw-glue-point-attlist &=  attribute draw:align {    "top-left"    | "top"    | "top-right"    | "left"    | "center"    | "right"    | "bottom-left"    | "bottom-right"  }?draw-glue-points-attlist &=  attribute draw:escape-direction {    "auto"    | "left"    | "right"    | "up"    | "down"    | "horizontal"    | "vertical"  }svg-title = element svg:title { text }svg-desc = element svg:desc { text }draw-frame =  element draw:frame {    common-draw-shape-with-text-and-styles-attlist,    common-draw-position-attlist,    common-draw-rel-size-attlist,    common-draw-caption-id-attlist,    presentation-shape-attlist,    draw-frame-attlist,    (draw-text-box     | draw-image     | draw-object     | draw-object-ole     | draw-applet     | draw-floating-frame     | draw-plugin)*,    office-event-listeners?,    draw-glue-point*,    draw-image-map?,    svg-title?,    svg-desc?,    (draw-contour-polygon | draw-contour-path)?  }common-draw-rel-size-attlist =  common-draw-size-attlist,  attribute style:rel-width { percent | "scale" | "scale-min" }?,  attribute style:rel-height { percent | "scale" | "scale-min" }?draw-frame-attlist &= attribute draw:copy-of { \string }?draw-text-box =  element draw:text-box { draw-text-box-attlist, text-content* }draw-text-box-attlist &= attribute draw:chain-next-name { \string }?draw-text-box-attlist &=  attribute draw:corner-radius { nonNegativeLength }?draw-text-box-attlist &=  attribute fo:min-height { length | percent }?,  attribute fo:min-width { length | percent }?draw-text-box-attlist &=  attribute fo:max-height { length | percent }?,  attribute fo:max-width { length | percent }?draw-text-box-attlist &= text-id?draw-image =  element draw:image {    draw-image-attlist,    (common-draw-data-attlist | office-binary-data),    draw-text  }common-draw-data-attlist &=  attribute xlink:href { anyURI },  [ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,  [ a:defaultValue = "embed" ] attribute xlink:show { "embed" }?,  [ a:defaultValue = "onLoad" ] attribute xlink:actuate { "onLoad" }?office-binary-data = element office:binary-data { base64Binary }draw-image-attlist &= attribute draw:filter-name { \string }?draw-object =  element draw:object {    draw-object-attlist,    (common-draw-data-attlist | office-document | math-math)  }draw-object-ole =  element draw:object-ole {    draw-object-ole-attlist,    (common-draw-data-attlist | office-binary-data)  }draw-object-attlist &=  attribute draw:notify-on-update-of-ranges { \string }?draw-object-ole-attlist &= attribute draw:class-id { text }?draw-applet =  element draw:applet {    draw-applet-attlist, common-draw-data-attlist?, draw-param*  }draw-applet-attlist &= attribute draw:code { text }?draw-applet-attlist &= attribute draw:object { text }?draw-applet-attlist &= attribute draw:archive { text }?draw-applet-attlist &=  [ a:defaultValue = "false" ] attribute draw:may-script { boolean }?draw-plugin =  element draw:plugin {    draw-plugin-attlist, common-draw-data-attlist, draw-param*  }draw-plugin-attlist &= attribute draw:mime-type { text }?draw-param = element draw:param { draw-param-attlist, empty }draw-param-attlist &= attribute draw:name { text }?draw-param-attlist &= attribute draw:value { text }?draw-floating-frame =  element draw:floating-frame {    draw-floating-frame-attlist, common-draw-data-attlist  }draw-floating-frame-attlist &= attribute draw:frame-name { \string }?draw-contour-polygon =  element draw:contour-polygon {    common-contour-attlist,    common-draw-size-attlist,    common-draw-viewbox-attlist,    common-draw-points-attlist,    empty  }draw-contour-path =  element draw:contour-path {    common-contour-attlist,    common-draw-size-attlist,    common-draw-viewbox-attlist,    common-draw-path-data-attlist,    empty  }common-contour-attlist &= attribute draw:recreate-on-edit { boolean }draw-a = element draw:a { draw-a-attlist, draw-frame }draw-a-attlist &=  attribute xlink:href { anyURI },  [ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,  [ a:defaultValue = "onRequest" ]  attribute xlink:actuate { "onRequest" }?draw-a-attlist &=  attribute office:target-frame-name { targetFrameName }?,  attribute xlink:show { "new" | "replace" }?draw-a-attlist &= attribute office:name { \string }?draw-a-attlist &= attribute office:title { \string }?draw-a-attlist &=  [ a:defaultValue = "false" ] attribute office:server-map { boolean }?draw-image-map =  element draw:image-map {    (draw-area-rectangle | draw-area-circle | draw-area-polygon)*  }draw-area-rectangle =  element draw:area-rectangle {    common-draw-area-attlist,    attribute svg:x { coordinate },    attribute svg:y { coordinate },    attribute svg:width { length },    attribute svg:height { length },    svg-title?,    svg-desc?,    office-event-listeners?  }draw-area-circle =  element draw:area-circle {    common-draw-area-attlist,    attribute svg:cx { coordinate },    attribute svg:cy { coordinate },    attribute svg:r { length },    svg-title?,    svg-desc?,    office-event-listeners?  }draw-area-polygon =  element draw:area-polygon {    common-draw-area-attlist,    attribute svg:x { coordinate },    attribute svg:y { coordinate },    attribute svg:width { length },    attribute svg:height { length },    common-draw-viewbox-attlist,    common-draw-points-attlist,    svg-title?,    svg-desc?,    office-event-listeners?  }common-draw-area-attlist &=  attribute xlink:href { anyURI }?,  [ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,  attribute office:target-frame-name { targetFrameName }?,  attribute xlink:show { "new" | "replace" }?common-draw-area-attlist &= attribute office:name { \string }?common-draw-area-attlist &= attribute draw:nohref { "nohref" }?dr3d-scene =  element dr3d:scene {    dr3d-scene-attlist,    common-draw-position-attlist,    common-draw-size-attlist,    common-draw-style-name-attlist,    common-draw-z-index-attlist,    common-draw-id-attlist,    common-draw-layer-name-attlist,    common-text-spreadsheet-shape-attlist,    common-dr3d-transform-attlist,    common-draw-caption-id-attlist,    svg-title?,    svg-desc?,    dr3d-light*,    shapes3d*  }shapes3d =  dr3d-scene | dr3d-extrude | dr3d-sphere | dr3d-rotate | dr3d-cubedr3d-scene-attlist &=  attribute dr3d:vrp { vector3D }?,  attribute dr3d:vpn { vector3D }?,  attribute dr3d:vup { vector3D }?dr3d-scene-attlist &=  attribute dr3d:projection { "parallel" | "perspective" }?dr3d-scene-attlist &= attribute dr3d:distance { length }?dr3d-scene-attlist &= attribute dr3d:focal-length { length }?dr3d-scene-attlist &=  attribute dr3d:shadow-slant { nonNegativeInteger }?dr3d-scene-attlist &=  attribute dr3d:shade-mode { "flat" | "phong" | "gouraud" | "draft" }?dr3d-scene-attlist &= attribute dr3d:ambient-color { color }?dr3d-scene-attlist &= attribute dr3d:lighting-mode { boolean }?common-dr3d-transform-attlist = attribute dr3d:transform { text }?dr3d-light = element dr3d:light { dr3d-light-attlist, empty }dr3d-light-attlist &= attribute dr3d:diffuse-color { color }?dr3d-light-attlist &= attribute dr3d:direction { vector3D }dr3d-light-attlist &= attribute dr3d:enabled { boolean }?dr3d-light-attlist &= attribute dr3d:specular { boolean }?dr3d-cube =  element dr3d:cube {    dr3d-cube-attlist,    common-draw-z-index-attlist,    common-draw-id-attlist,    common-draw-layer-name-attlist,    common-draw-style-name-attlist,    common-dr3d-transform-attlist,    empty  }dr3d-cube-attlist &=  attribute dr3d:min-edge { vector3D }?,  attribute dr3d:max-edge { vector3D }?dr3d-sphere =  element dr3d:sphere {    dr3d-sphere-attlist,    common-draw-z-index-attlist,    common-draw-id-attlist,    common-draw-layer-name-attlist,    common-draw-style-name-attlist,    common-dr3d-transform-attlist,    empty  }dr3d-sphere-attlist &= attribute dr3d:center { vector3D }?dr3d-sphere-attlist &= attribute dr3d:size { vector3D }?dr3d-extrude =  element dr3d:extrude {    common-draw-path-data-attlist,    common-draw-viewbox-attlist,    common-draw-id-attlist,    common-draw-z-index-attlist,    common-draw-layer-name-attlist,    common-draw-style-name-attlist,    common-dr3d-transform-attlist,    empty  }dr3d-rotate =  element dr3d:rotate {    common-draw-viewbox-attlist,    common-draw-path-data-attlist,    common-draw-z-index-attlist,    common-draw-id-attlist,    common-draw-layer-name-attlist,    common-draw-style-name-attlist,    common-dr3d-transform-attlist,    empty  }draw-custom-shape =  element draw:custom-shape {    draw-custom-shape-attlist,    common-draw-position-attlist,    common-draw-size-attlist,    common-draw-shape-with-text-and-styles-attlist,    common-draw-caption-id-attlist,    svg-title?,    svg-desc?,    office-event-listeners?,    draw-glue-point*,    draw-text,    draw-enhanced-geometry?  }draw-custom-shape-attlist &= attribute draw:engine { namespacedToken }?draw-custom-shape-attlist &= attribute draw:data { \string }?draw-enhanced-geometry =  element draw:enhanced-geometry {    draw-enhanced-geometry-attlist, draw-equation*, draw-handle*  }draw-enhanced-geometry-attlist &=  [ a:defaultValue = "non-primitive" ]  attribute draw:type { custom-shape-type }?custom-shape-type = "non-primitive" | \stringdraw-enhanced-geometry-attlist &=  attribute svg:viewBox {    list { integer, integer, integer, integer }  }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "false" ]  attribute draw:mirror-vertical { boolean }?,  [ a:defaultValue = "false" ]  attribute draw:mirror-horizontal { boolean }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "0" ] attribute draw:text-rotate-angle { double }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "false" ]  attribute draw:extrusion-allowed { boolean }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "false" ]  attribute draw:text-path-allowed { boolean }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "false" ]  attribute draw:concentric-gradient-fill-allowed { boolean }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "false" ] attribute draw:extrusion { boolean }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "33%" ]  attribute draw:extrusion-brightness { percent }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "36pt 0" ]  attribute draw:extrusion-depth {    list { length, double }  }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "0%" ]  attribute draw:extrusion-diffusion { percent }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "30" ]  attribute draw:extrusion-number-of-line-segments { integer }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "true" ]  attribute draw:extrusion-light-face { boolean }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "true" ]  attribute draw:extrusion-first-light-harsh { boolean }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "true" ]  attribute draw:extrusion-second-light-harsh { boolean }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "66%" ]  attribute draw:extrusion-first-light-level { percent }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "66%" ]  attribute draw:extrusion-second-light-level { percent }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "(5 0 1)" ]  attribute draw:extrusion-first-light-direction { vector3D }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "(-5 0 1)" ]  attribute draw:extrusion-second-light-direction { vector3D }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "false" ]  attribute draw:extrusion-metal { boolean }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "flat" ]  attribute dr3d:shade-mode { "flat" | "phong" | "gouraud" | "draft" }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "0 0" ]  attribute draw:extrusion-rotation-angle {    list { double, double }  }?draw-enhanced-geometry-attlist &=  attribute draw:extrusion-rotation-center { vector3D }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "50%" ]  attribute draw:extrusion-shininess { percent }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "50 45" ]  attribute draw:extrusion-skew {    list { double, double }  }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "0%" ]  attribute draw:extrusion-specularity { percent }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "parallel" ]  attribute dr3d:projection { "parallel" | "perspective" }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "3.5cm -3.5cm 25cm" ]  attribute draw:extrusion-viewpoint { point3D }?point3D = xsd:stringdraw-enhanced-geometry-attlist &=  [ a:defaultValue = "0.5 -0.5" ]  attribute draw:extrusion-origin {    list { double, double }  }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "false" ]  attribute draw:extrusion-color { boolean }?draw-enhanced-geometry-attlist &=  attribute draw:enhanced-path { \string }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "0" ]  attribute draw:path-stretchpoint-x { double }?,  [ a:defaultValue = "0" ]  attribute draw:path-stretchpoint-y { double }?draw-enhanced-geometry-attlist &= attribute draw:text-areas { \string }?draw-enhanced-geometry-attlist &=  attribute draw:glue-points { \string }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "none" ]  attribute draw:glue-point-type { "none" | "segments" | "rectangle" }?draw-enhanced-geometry-attlist &=  attribute draw:glue-point-leaving-directions { text }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "false" ] attribute draw:text-path { boolean }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "normal" ]  attribute draw:text-path-mode { "normal" | "path" | "shape" }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "path" ]  attribute draw:text-path-scale { "path" | "shape" }?draw-enhanced-geometry-attlist &=  [ a:defaultValue = "false" ]  attribute draw:text-path-same-letter-heights { boolean }?draw-enhanced-geometry-attlist &= attribute draw:modifiers { \string }?draw-equation = element draw:equation { draw-equation-attlist, empty }draw-equation-attlist &= attribute draw:name { \string }?draw-equation-attlist &= attribute draw:formula { \string }?draw-handle = element draw:handle { draw-handle-attlist, empty }draw-handle-attlist &=  [ a:defaultValue = "false" ]  attribute draw:handle-mirror-vertical { boolean }?draw-handle-attlist &=  [ a:defaultValue = "false" ]  attribute draw:handle-mirror-horizontal { boolean }?draw-handle-attlist &=  [ a:defaultValue = "false" ]  attribute draw:handle-switched { boolean }?draw-handle-attlist &= attribute draw:handle-position { \string }draw-handle-attlist &=  attribute draw:handle-range-x-minimum { \string }?draw-handle-attlist &=  attribute draw:handle-range-x-maximum { \string }?draw-handle-attlist &=  attribute draw:handle-range-y-minimum { \string }?draw-handle-attlist &=  attribute draw:handle-range-y-maximum { \string }?draw-handle-attlist &= attribute draw:handle-polar { \string }?draw-handle-attlist &=  attribute draw:handle-radius-range-minimum { \string }?draw-handle-attlist &=  attribute draw:handle-radius-range-maximum { \string }?presentation-shape-attlist &=  attribute presentation:class { presentation-classes }?presentation-classes =  "title"  | "outline"  | "subtitle"  | "text"  | "graphic"  | "object"  | "chart"  | "table"  | "orgchart"  | "page"  | "notes"  | "handout"  | "header"  | "footer"  | "date-time"  | "page-number"presentation-shape-attlist &=  attribute presentation:placeholder { boolean }?presentation-shape-attlist &=  attribute presentation:user-transformed { boolean }?presentation-animations =  element presentation:animations {    (presentation-animation-elements | presentation-animation-group)*  }presentation-animation-elements =  presentation-show-shape  | presentation-show-text  | presentation-hide-shape  | presentation-hide-text  | presentation-dim  | presentation-playpresentation-sound =  element presentation:sound {    presentation-sound-attlist,    attribute xlink:href { anyURI },    [ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,    [ a:defaultValue = "onRequest" ]    attribute xlink:actuate { "onRequest" }?,    attribute xlink:show { "new" | "replace" }?,    empty  }presentation-sound-attlist &=  attribute presentation:play-full { boolean }?presentation-show-shape =  element presentation:show-shape {    common-presentation-effect-attlist, presentation-sound?  }common-presentation-effect-attlist &= attribute draw:shape-id { IDREF }common-presentation-effect-attlist &=  [ a:defaultValue = "none" ]  attribute presentation:effect { presentationEffects }?presentationEffects =  "none"  | "fade"  | "move"  | "stripes"  | "open"  | "close"  | "dissolve"  | "wavyline"  | "random"  | "lines"  | "laser"  | "appear"  | "hide"  | "move-short"  | "checkerboard"  | "rotate"  | "stretch"common-presentation-effect-attlist &=  [ a:defaultValue = "none" ]  attribute presentation:direction { presentationEffectDirections }?presentationEffectDirections =  "none"  | "from-left"  | "from-top"  | "from-right"  | "from-bottom"  | "from-center"  | "from-upper-left"  | "from-upper-right"  | "from-lower-left"  | "from-lower-right"  | "to-left"  | "to-top"  | "to-right"  | "to-bottom"  | "to-upper-left"  | "to-upper-right"  | "to-lower-right"  | "to-lower-left"  | "path"  | "spiral-inward-left"  | "spiral-inward-right"  | "spiral-outward-left"  | "spiral-outward-right"  | "vertical"  | "horizontal"  | "to-center"  | "clockwise"  | "counter-clockwise"common-presentation-effect-attlist &=  [ a:defaultValue = "medium" ]  attribute presentation:speed { presentationSpeeds }?presentationSpeeds = "slow" | "medium" | "fast"common-presentation-effect-attlist &=  attribute presentation:delay { duration }?common-presentation-effect-attlist &=  [ a:defaultValue = "100%" ]  attribute presentation:start-scale { percent }?common-presentation-effect-attlist &=  attribute presentation:path-id { text }?presentation-show-text =  element presentation:show-text {    common-presentation-effect-attlist, presentation-sound?  }presentation-hide-shape =  element presentation:hide-shape {    common-presentation-effect-attlist, presentation-sound?  }presentation-hide-text =  element presentation:hide-text {    common-presentation-effect-attlist, presentation-sound?  }presentation-dim =  element presentation:dim {    presentation-dim-attlist, presentation-sound?  }presentation-dim-attlist &= attribute draw:shape-id { IDREF }presentation-dim-attlist &= attribute draw:color { color }presentation-play =  element presentation:play { presentation-play-attlist, empty }presentation-play-attlist &=  attribute draw:shape-id { IDREF },  [ a:defaultValue = "medium" ]  attribute presentation:speed { presentationSpeeds }?presentation-animation-group =  element presentation:animation-group {    presentation-animation-elements*  }common-anim-attlist &=  [ a:defaultValue = "default" ]  attribute presentation:node-type {    "default"    | "on-click"    | "with-previous"    | "after-previous"    | "timing-root"    | "main-sequence"    | "interactive-sequence"  }?common-anim-attlist &= attribute presentation:preset-id { \string }?common-anim-attlist &=  attribute presentation:preset-sub-type { \string }?common-anim-attlist &=  [ a:defaultValue = "custom" ]  attribute presentation:preset-class {    "custom"    | "entrance"    | "exit"    | "emphasis"    | "motion-path"    | "ole-action"    | "media-call"  }?common-anim-attlist &= attribute presentation:master-element { IDREF }?common-anim-attlist &= attribute presentation:group-id { \string }?presentation-event-listener =  element presentation:event-listener {    presentation-event-listener-attlist, presentation-sound?  }presentation-event-listener-attlist &=  attribute script:event-name { \string }presentation-event-listener-attlist &=  attribute presentation:action {    "none"    | "previous-page"    | "next-page"    | "first-page"    | "last-page"    | "hide"    | "stop"    | "execute"    | "show"    | "verb"    | "fade-out"    | "sound"  }presentation-event-listener-attlist &=  [ a:defaultValue = "none" ]  attribute presentation:effect { presentationEffects }?presentation-event-listener-attlist &=  [ a:defaultValue = "none" ]  attribute presentation:direction { presentationEffectDirections }?presentation-event-listener-attlist &=  [ a:defaultValue = "medium" ]  attribute presentation:speed { presentationSpeeds }?presentation-event-listener-attlist &=  [ a:defaultValue = "100%" ]  attribute presentation:start-scale { percent }?presentation-event-listener-attlist &=  attribute xlink:href { anyURI }?,  [ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,  [ a:defaultValue = "embed" ] attribute xlink:show { "embed" }?,  [ a:defaultValue = "onRequest" ]  attribute xlink:actuate { "onRequest" }?presentation-event-listener-attlist &=  attribute presentation:verb { nonNegativeInteger }?paragraph-content |= element presentation:header { empty }paragraph-content |= element presentation:footer { empty }paragraph-content |= element presentation:date-time { empty }presentation-decls = presentation-decl*presentation-decl |=  element presentation:header-decl {    presentation-header-decl-attlist, text  }presentation-header-decl-attlist &=  attribute presentation:name { \string }presentation-decl |=  element presentation:footer-decl {    presentation-footer-decl-attlist, text  }presentation-footer-decl-attlist &=  attribute presentation:name { \string }presentation-decl |=  element presentation:date-time-decl {    presentation-date-time-decl-attlist, text  }presentation-date-time-decl-attlist &=  attribute presentation:name { \string }presentation-date-time-decl-attlist &=  attribute presentation:source { "fixed" | "current-date" }presentation-date-time-decl-attlist &=  attribute style:data-style-name { styleNameRef }?presentation-settings =  element presentation:settings {    presentation-settings-attlist, presentation-show*  }?presentation-settings-attlist &=  attribute presentation:start-page { \string }?presentation-settings-attlist &=  attribute presentation:show { \string }?presentation-settings-attlist &=  [ a:defaultValue = "true" ]  attribute presentation:full-screen { boolean }?presentation-settings-attlist &=  [ a:defaultValue = "false" ]  attribute presentation:endless { boolean }?presentation-settings-attlist &=  attribute presentation:pause { duration }?presentation-settings-attlist &=  [ a:defaultValue = "false" ]  attribute presentation:show-logo { boolean }?presentation-settings-attlist &=  [ a:defaultValue = "false" ]  attribute presentation:force-manual { boolean }?presentation-settings-attlist &=  [ a:defaultValue = "true" ]  attribute presentation:mouse-visible { boolean }?presentation-settings-attlist &=  [ a:defaultValue = "false" ]  attribute presentation:mouse-as-pen { boolean }?presentation-settings-attlist &=  [ a:defaultValue = "false" ]  attribute presentation:start-with-navigator { boolean }?presentation-settings-attlist &=  [ a:defaultValue = "enabled" ]  attribute presentation:animations { "enabled" | "disabled" }?presentation-settings-attlist &=  [ a:defaultValue = "enabled" ]  attribute presentation:transition-on-click { "enabled" | "disabled" }?presentation-settings-attlist &=  [ a:defaultValue = "false" ]  attribute presentation:stay-on-top { boolean }?presentation-settings-attlist &=  [ a:defaultValue = "true" ]  attribute presentation:show-end-of-presentation-slide { boolean }?presentation-show =  element presentation:show { presentation-show-attlist, empty }presentation-show-attlist &= attribute presentation:name { \string }presentation-show-attlist &= attribute presentation:pages { text }chart-chart =  element chart:chart {    chart-chart-attlist,    chart-title?,    chart-subtitle?,    chart-footer?,    chart-legend?,    chart-plot-area,    table-table?  }chart-chart-attlist &= attribute chart:class { namespacedToken }chart-chart-attlist &= common-draw-size-attlistchart-chart-attlist &= attribute chart:column-mapping { \string }?chart-chart-attlist &= attribute chart:row-mapping { \string }?chart-chart-attlist &= attribute chart:style-name { styleNameRef }?chart-title = element chart:title { chart-title-attlist, text-p? }chart-title-attlist &= attribute table:cell-range { cellAddress }?chart-title-attlist &= common-draw-position-attlistchart-title-attlist &= attribute chart:style-name { styleNameRef }?chart-subtitle = element chart:subtitle { chart-title-attlist, text-p? }chart-footer = element chart:footer { chart-title-attlist, text-p? }chart-legend = element chart:legend { chart-legend-attlist, empty }chart-legend-attlist &=  (attribute chart:legend-position {     "start" | "end" | "top" | "bottom"   },   attribute chart:legend-align { "start" | "center" | "end" }?)  | attribute chart:legend-position {      "top-start" | "bottom-start" | "top-end" | "bottom-end"    }  | emptychart-legend-attlist &= common-draw-position-attlistchart-legend-attlist &=  attribute style:legend-expansion { "wide" | "high" | "balanced" }  | (attribute style:legend-expansion { "custom" },     attribute style:legend-expansion-aspect-ratio { double })  | emptychart-legend-attlist &= attribute chart:style-name { styleNameRef }?chart-plot-area =  element chart:plot-area {    chart-plot-area-attlist,    dr3d-light*,    chart-axis*,    chart-series*,    chart-stock-gain-marker?,    chart-stock-loss-marker?,    chart-stock-range-line?,    chart-wall?,    chart-floor?  }chart-plot-area-attlist &=  common-draw-position-attlist, common-draw-size-attlistchart-plot-area-attlist &= attribute chart:style-name { styleNameRef }?chart-plot-area-attlist &=  attribute table:cell-range-address { cellRangeAddress }?chart-plot-area-attlist &=  [ a:defaultValue = "none" ]  attribute chart:data-source-has-labels {    "none" | "row" | "column" | "both"  }?chart-plot-area-attlist &=  dr3d-scene-attlist, common-dr3d-transform-attlistchart-wall = element chart:wall { chart-wall-attlist, empty }chart-wall-attlist &= attribute svg:width { length }?chart-wall-attlist &= attribute chart:style-name { styleNameRef }?chart-floor = element chart:floor { chart-floor-attlist, empty }chart-floor-attlist &= attribute svg:width { length }?chart-floor-attlist &= attribute chart:style-name { styleNameRef }?chart-axis =  element chart:axis {    chart-axis-attlist, chart-title?, chart-categories?, chart-grid*  }chart-axis-attlist &= attribute chart:dimension { "x" | "y" | "z" }chart-axis-attlist &= attribute chart:name { \string }?chart-axis-attlist &= attribute chart:style-name { styleNameRef }?chart-grid = element chart:grid { chart-grid-attlist }chart-grid-attlist &=  [ a:defaultValue = "major" ]  attribute chart:class { "major" | "minor" }?chart-grid-attlist &= attribute chart:style-name { styleNameRef }?chart-series =  element chart:series {    chart-series-attlist,    chart-domain*,    chart-mean-value?,    chart-regression-curve?,    chart-error-indicator?,    chart-data-point*  }chart-series-attlist &=  attribute chart:values-cell-range-address { cellRangeAddress }?chart-series-attlist &=  attribute chart:label-cell-address { cellAddress }?chart-series-attlist &= attribute chart:class { namespacedToken }?chart-series-attlist &= attribute chart:attached-axis { \string }?chart-series-attlist &= attribute chart:style-name { styleNameRef }?chart-domain =  element chart:domain {    attribute table:cell-range-address { cellRangeAddress }?  }chart-categories =  element chart:categories {    attribute table:cell-range-address { cellRangeAddress }?  }chart-data-point =  element chart:data-point { chart-data-point-attlist, empty }chart-data-point-attlist &=  attribute chart:repeated { nonNegativeInteger }?chart-data-point-attlist &= attribute chart:style-name { styleNameRef }?chart-mean-value =  element chart:mean-value { chart-mean-value-attlist, empty }chart-mean-value-attlist &= attribute chart:style-name { styleNameRef }?chart-error-indicator =  element chart:error-indicator { chart-error-indicator-attlist, empty }chart-error-indicator-attlist &=  attribute chart:style-name { styleNameRef }?chart-regression-curve =  element chart:regression-curve {    chart-regression-curve-attlist, empty  }chart-regression-curve-attlist &=  attribute chart:style-name { styleNameRef }?chart-stock-gain-marker =  element chart:stock-gain-marker { common-stock-marker-attlist }chart-stock-loss-marker =  element chart:stock-loss-marker { common-stock-marker-attlist }chart-stock-range-line =  element chart:stock-range-line { common-stock-marker-attlist }common-stock-marker-attlist =  attribute chart:style-name { styleNameRef }?office-forms =  element office:forms {    office-forms-attlist, (form-form | xforms-model)*  }?office-forms-attlist &=  [ a:defaultValue = "false" ]  attribute form:automatic-focus { boolean }?office-forms-attlist &=  [ a:defaultValue = "true" ]  attribute form:apply-design-mode { boolean }?form-form =  element form:form {    common-form-control-attlist,    form-form-attlist,    form-properties?,    office-event-listeners?,    (controls | form-form)*,    form-connection-resource?  }form-form-attlist &=  (attribute xlink:href { anyURI },   [ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,   [ a:defaultValue = "onRequest" ]   attribute xlink:actuate { "onRequest" }?)?form-form-attlist &=  [ a:defaultValue = "_blank" ]  attribute office:target-frame { targetFrameName }?form-form-attlist &=  [ a:defaultValue = "get" ]  attribute form:method { "get" | "post" | \string }?form-form-attlist &=  [ a:defaultValue = "application/x-www-form-urlencoded" ]  attribute form:enctype { \string }?form-form-attlist &=  [ a:defaultValue = "true" ] attribute form:allow-deletes { boolean }?form-form-attlist &=  [ a:defaultValue = "true" ] attribute form:allow-inserts { boolean }?form-form-attlist &=  [ a:defaultValue = "true" ] attribute form:allow-updates { boolean }?form-form-attlist &=  [ a:defaultValue = "false" ] attribute form:apply-filter { boolean }?form-form-attlist &=  [ a:defaultValue = "command" ]  attribute form:command-type { "table" | "query" | "command" }?form-form-attlist &= attribute form:command { text }?form-form-attlist &= attribute form:datasource { anyURI | \string }?form-form-attlist &= attribute form:master-fields { \string }?form-form-attlist &= attribute form:detail-fields { \string }?form-form-attlist &=  [ a:defaultValue = "true" ]  attribute form:escape-processing { boolean }?form-form-attlist &= attribute form:filter { \string }?form-form-attlist &=  [ a:defaultValue = "false" ] attribute form:ignore-result { boolean }?form-form-attlist &= attribute form:navigation-mode { navigation }?navigation = "none" | "current" | "parent"form-form-attlist &= attribute form:order { \string }?form-form-attlist &= attribute form:tab-cycle { tab-cycles }?tab-cycles = "records" | "current" | "page"form-connection-resource =  element form:connection-resource {    attribute xlink:href { anyURI },    empty  }xforms-model = element xforms:model { anyAttListOrElements }column-controls |=  element form:text { form-text-attlist, common-form-control-content }controls |= column-controlsform-text-attlist =  form-control-attlist,  common-current-value-attlist,  common-disabled-attlist,  common-maxlength-attlist,  common-printable-attlist,  common-readonly-attlist,  common-tab-attlist,  common-title-attlist,  common-value-attlist,  common-convert-empty-attlist,  common-data-field-attlistform-control-attlist =  common-form-control-attlist,  common-control-id-attlist,  xforms-bind-attlistcommon-form-control-content = form-properties?, office-event-listeners?column-controls |=  element form:textarea {    form-textarea-attlist, common-form-control-content, text-p*  }form-textarea-attlist =  form-control-attlist,  common-current-value-attlist,  common-disabled-attlist,  common-maxlength-attlist,  common-printable-attlist,  common-readonly-attlist,  common-tab-attlist,  common-title-attlist,  common-value-attlist,  common-convert-empty-attlist,  common-data-field-attlistcontrols |=  element form:password {    form-password-attlist, common-form-control-content  }form-password-attlist &=  form-control-attlist,  common-disabled-attlist,  common-maxlength-attlist,  common-printable-attlist,  common-tab-attlist,  common-title-attlist,  common-value-attlist,  common-convert-empty-attlistform-password-attlist &=  [ a:defaultValue = "*" ] attribute form:echo-char { character }?controls |=  element form:file { form-file-attlist, common-form-control-content }form-file-attlist &=  form-control-attlist,  common-current-value-attlist,  common-disabled-attlist,  common-maxlength-attlist,  common-printable-attlist,  common-readonly-attlist,  common-tab-attlist,  common-title-attlist,  common-value-attlistcolumn-controls |=  element form:formatted-text {    form-formatted-text-attlist, common-form-control-content  }form-formatted-text-attlist &=  form-control-attlist,  common-current-value-attlist,  common-disabled-attlist,  common-maxlength-attlist,  common-printable-attlist,  common-readonly-attlist,  common-tab-attlist,  common-title-attlist,  common-value-attlist,  common-convert-empty-attlist,  common-data-field-attlistform-formatted-text-attlist &= attribute form:max-value { \string }?form-formatted-text-attlist &= attribute form:min-value { \string }?form-formatted-text-attlist &=  [ a:defaultValue = "false" ] attribute form:validation { boolean }?column-controls |=  element form:number {    form-number-attlist,    common-numeric-control-attlist,    common-form-control-content  }common-numeric-control-attlist =  form-control-attlist,  common-disabled-attlist,  common-maxlength-attlist,  common-printable-attlist,  common-readonly-attlist,  common-tab-attlist,  common-title-attlist,  common-convert-empty-attlist,  common-data-field-attlistform-number-attlist &= attribute form:value { double }?form-number-attlist &= attribute form:current-value { double }?form-number-attlist &= attribute form:min-value { double }?form-number-attlist &= attribute form:max-value { double }?column-controls |=  element form:date {    form-date-attlist,    common-numeric-control-attlist,    common-form-control-content  }controls |=  element form:time {    form-time-attlist,    common-numeric-control-attlist,    common-form-control-content  }form-date-attlist &= attribute form:value { date }?form-time-attlist &= attribute form:value { time }?form-date-attlist &= attribute form:current-value { date }?form-time-attlist &= attribute form:current-value { time }?form-date-attlist &= attribute form:min-value { date }?form-time-attlist &= attribute form:min-value { time }?form-date-attlist &= attribute form:max-value { date }?form-time-attlist &= attribute form:max-value { time }?controls |=  element form:fixed-text {    form-fixed-text-attlist, common-form-control-content  }form-fixed-text-attlist &=  form-control-attlist,  for,  common-disabled-attlist,  label,  common-printable-attlist,  common-title-attlistform-fixed-text-attlist &=  [ a:defaultValue = "false" ] attribute form:multi-line { boolean }?column-controls |=  element form:combobox {    form-combobox-attlist, common-form-control-content, form-item*  }form-combobox-attlist &=  form-control-attlist,  common-current-value-attlist,  common-disabled-attlist,  dropdown,  common-maxlength-attlist,  common-printable-attlist,  common-readonly-attlist,  size,  common-tab-attlist,  common-title-attlist,  common-value-attlist,  common-convert-empty-attlist,  common-data-field-attlist,  list-source,  list-source-typeform-combobox-attlist &= attribute form:auto-complete { boolean }?form-item = element form:item { form-item-attlist, text }form-item-attlist &= labelcolumn-controls |=  element form:listbox {    form-listbox-attlist, common-form-control-content, form-option*  }form-listbox-attlist &=  form-control-attlist,  common-disabled-attlist,  dropdown,  common-printable-attlist,  size,  common-tab-attlist,  common-title-attlist,  bound-column,  common-data-field-attlist,  list-source,  list-source-typeform-listbox-attlist &=  [ a:defaultValue = "false" ] attribute form:multiple { boolean }?form-listbox-attlist &= attribute form:xforms-list-source { \string }?form-option = element form:option { form-option-attlist, text }form-option-attlist &=  current-selected, selected, label, common-value-attlistcontrols |=  element form:button {    form-button-attlist, common-form-control-content  }form-button-attlist &=  form-control-attlist,  button-type,  common-disabled-attlist,  label,  image-data,  common-printable-attlist,  common-tab-attlist,  target-frame,  target-location,  common-title-attlist,  common-value-attlist,  common-form-relative-image-position-attlistform-button-attlist &=  [ a:defaultValue = "false" ]  attribute form:default-button { boolean }?form-button-attlist &=  [ a:default-value = "false" ] attribute form:toggle { boolean }?form-button-attlist &= attribute form:focus-on-click { boolean }?form-button-attlist &= attribute form:xforms-submission { \string }?controls |=  element form:image { form-image-attlist, common-form-control-content }form-image-attlist &=  form-control-attlist,  button-type,  common-disabled-attlist,  image-data,  common-printable-attlist,  common-tab-attlist,  target-frame,  target-location,  common-title-attlist,  common-value-attlistcolumn-controls |=  element form:checkbox {    form-checkbox-attlist, common-form-control-content  }form-checkbox-attlist &=  form-control-attlist,  common-disabled-attlist,  label,  common-printable-attlist,  common-tab-attlist,  common-title-attlist,  common-value-attlist,  common-data-field-attlist,  common-form-visual-effect-attlist,  common-form-relative-image-position-attliststates = "unchecked" | "checked" | "unknown"form-checkbox-attlist &= attribute form:current-state { states }?form-checkbox-attlist &=  [ a:defaultValue = "false" ] attribute form:is-tristate { boolean }?form-checkbox-attlist &=  [ a:defaultValue = "unchecked" ] attribute form:state { states }?controls |=  element form:radio { form-radio-attlist, common-form-control-content }form-radio-attlist &=  form-control-attlist,  current-selected,  common-disabled-attlist,  label,  common-printable-attlist,  selected,  common-tab-attlist,  common-title-attlist,  common-value-attlist,  common-data-field-attlist,  common-form-visual-effect-attlist,  common-form-relative-image-position-attlistcontrols |=  element form:frame { form-frame-attlist, common-form-control-content }form-frame-attlist &=  form-control-attlist,  common-disabled-attlist,  for,  label,  common-printable-attlist,  common-title-attlistcontrols |=  element form:image-frame {    form-image-frame-attlist, common-form-control-content  }form-image-frame-attlist &=  form-control-attlist,  common-disabled-attlist,  image-data,  common-printable-attlist,  common-readonly-attlist,  common-title-attlist,  common-data-field-attlistcontrols |=  element form:hidden {    form-hidden-attlist, common-form-control-content  }form-hidden-attlist &= form-control-attlist, common-value-attlistcontrols |=  element form:grid {    form-grid-attlist, common-form-control-content, form-column*  }form-grid-attlist &=  form-control-attlist,  common-disabled-attlist,  common-printable-attlist,  common-tab-attlist,  common-title-attlistform-column =  element form:column { form-column-attlist, column-controls+ }form-column-attlist &=  common-form-control-attlist, label, text-style-nametext-style-name = attribute form:text-style-name { styleNameRef }?controls |=  element form:value-range {    form-value-range-attlist, common-form-control-content  }form-value-range-attlist &=  form-control-attlist,  common-disabled-attlist,  common-printable-attlist,  common-tab-attlist,  common-title-attlist,  common-value-attlistform-value-range-attlist &= attribute form:max-value { \string }?form-value-range-attlist &= attribute form:min-value { \string }?form-value-range-attlist &=  [ a:defaultName = "1" ] attribute form:step-size { positiveInteger }?form-value-range-attlist &=  attribute form:page-step-size { positiveInteger }?form-value-range-attlist &=  attribute form:delay-for-repeat { duration }?form-value-range-attlist &=  attribute form:orientation { "horizontal" | "vertical" }?controls |=  element form:generic-control {    form-generic-control-attlist, common-form-control-content  }form-generic-control-attlist &= form-control-attlistcommon-form-control-attlist &= attribute form:name { \string }?common-form-control-attlist &=  attribute form:control-implementation { namespacedToken }?xforms-bind-attlist = attribute xforms:bind { \string }?types = "submit" | "reset" | "push" | "url"button-type =  [ a:defaultValue = "push" ] attribute form:button-type { types }?common-control-id-attlist = attribute form:id { ID }current-selected =  [ a:defaultValue = "false" ]  attribute form:current-selected { boolean }?common-value-attlist = attribute form:value { \string }?common-current-value-attlist = attribute form:current-value { \string }?common-disabled-attlist =  [ a:defaultValue = "false" ] attribute form:disabled { boolean }?dropdown =  [ a:defaultValue = "false" ] attribute form:dropdown { boolean }?for = attribute form:for { \string }?image-data = attribute form:image-data { anyURI }?label = attribute form:label { \string }?common-maxlength-attlist =  attribute form:max-length { nonNegativeInteger }?common-printable-attlist =  [ a:defaultValue = "true" ] attribute form:printable { boolean }?common-readonly-attlist =  [ a:defaultValue = "false" ] attribute form:readonly { boolean }?selected =  [ a:defaultValue = "false" ] attribute form:selected { boolean }?size = attribute form:size { nonNegativeInteger }?common-tab-attlist &=  [ a:defaultValue = "0" ]  attribute form:tab-index { nonNegativeInteger }?common-tab-attlist &=  [ a:defaultValue = "true" ] attribute form:tab-stop { boolean }?target-frame =  [ a:defaultValue = "_blank" ]  attribute office:target-frame { targetFrameName }?target-location = attribute xlink:href { anyURI }?common-title-attlist = attribute form:title { text }?common-form-visual-effect-attlist &=  attribute form:visual-effect { "flat" | "3d" }?common-form-relative-image-position-attlist &=  [ a:defaultValue = "center" ]  attribute form:image-position { "center" }?  | (attribute form:image-position {       "start" | "end" | "top" | "bottom"     },     [ a:defaultValue = "center" ]     attribute form:image-align { "start" | "center" | "end" }?)bound-column = attribute form:bound-column { \string }?common-convert-empty-attlist =  [ a:defaultValue = "false" ]  attribute form:convert-empty-to-null { boolean }?common-data-field-attlist = attribute form:data-field { \string }?list-source = attribute form:list-source { \string }?list-source-type =  attribute form:list-source-type {    "table"    | "query"    | "sql"    | "sql-pass-through"    | "value-list"    | "table-fields"  }?form-properties = element form:properties { form-property+ }form-property |=  element form:property {    form-property-name, form-property-value-and-type-attlist  }form-property-name &= attribute form:property-name { \string }form-property-value-and-type-attlist &=  common-value-and-type-attlist  | attribute office:value-type { "void" }form-property |=  element form:list-property {    form-property-name, form-property-type-and-value-list  }form-property-type-and-value-list =  (attribute office:value-type { "float" },   element form:list-value {     attribute office:value { double }   }*)  | (attribute office:value-type { "percentage" },     element form:list-value {       attribute office:value { double }     }*)  | (attribute office:value-type { "currency" },     element form:list-value {       attribute office:value { double },       attribute office:currency { \string }?     }*)  | (attribute office:value-type { "date" },     element form:list-value {       attribute office:date-value { dateOrDateTime }     }*)  | (attribute office:value-type { "time" },     element form:list-value {       attribute office:time-value { duration }     }*)  | (attribute office:value-type { "boolean" },     element form:list-value {       attribute office:boolean-value { boolean }     }*)  | (attribute office:value-type { "string" },     element form:list-value {       attribute office:string-value { \string }     }*)  | attribute office:value-type { "void" }office-annotation =  element office:annotation {    office-annotation-attlist,    draw-caption-attlist,    common-draw-position-attlist,    common-draw-size-attlist,    common-draw-shape-with-text-and-styles-attlist,    dc-creator?,    dc-date?,    meta-date-string?,    (text-p | text-list)*  }office-annotation-attlist &= attribute office:display { boolean }?meta-date-string = element meta:date-string { \string }common-num-format-prefix-suffix-attlist &=  attribute style:num-prefix { \string }?,  attribute style:num-suffix { \string }?common-num-format-attlist &=  attribute style:num-format { "1" | "i" | "I" | \string | empty }  | (attribute style:num-format { "a" | "A" },     style-num-letter-sync-attlist)  | emptystyle-num-letter-sync-attlist &=  attribute style:num-letter-sync { boolean }?office-change-info =  element office:change-info { dc-creator, dc-date, text-p* }office-event-listeners =  element office:event-listeners {    (script-event-listener | presentation-event-listener)*  }script-event-listener &=  element script:event-listener { script-event-listener-attlist, empty }script-event-listener-attlist &= attribute script:event-name { \string }script-event-listener-attlist &= attribute script:language { \string }script-event-listener-attlist &=  attribute script:macro-name { \string }  | (attribute xlink:href { anyURI },     [ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,     [ a:defaultValue = "onRequest" ]     attribute xlink:actuate { "onRequest" }?)math-math = element math:math { mathMarkup }# To avoid inclusion of the complete MathML schema, anything# is allowed within a math:math top-level elementmathMarkup =  (attribute * { text }   | text   | element * { mathMarkup })*text-dde-connection-decl =  element text:dde-connection-decl {    text-dde-connection-decl-attlist, common-dde-connection-decl-attlist  }text-dde-connection-decl-attlist &= attribute office:name { \string }common-dde-connection-decl-attlist &=  attribute office:dde-application { \string }common-dde-connection-decl-attlist &=  attribute office:dde-topic { \string }common-dde-connection-decl-attlist &=  attribute office:dde-item { \string }common-dde-connection-decl-attlist &=  [ a:defaultValue = "true" ]  attribute office:automatic-update { boolean }?table-dde-link =  element table:dde-link { office-dde-source, table-table }office-dde-source =  element office:dde-source {    office-dde-source-attlist, common-dde-connection-decl-attlist  }office-dde-source-attlist &= attribute office:name { \string }?office-dde-source-attlist &=  [ a:defaultValue = "into-default-style-data-style" ]  attribute office:conversion-mode {    "into-default-style-data-style"    | "into-english-number"    | "keep-text"  }?animation-element |=  element anim:animate {    common-anim-target-attlist,    common-anim-named-target-attlist,    common-anim-values-attlist,    common-anim-spline-mode-attlist,    common-spline-anim-value-attlist,    common-timing-attlist,    common-anim-add-accum-attlist  }animation-element |=  element anim:set {    common-anim-target-attlist,    common-anim-named-target-attlist,    common-anim-set-values-attlist,    common-timing-attlist,    common-anim-add-accum-attlist  }animation-element |=  element anim:animateMotion {    anim-animate-motion-attlist,    common-anim-target-attlist,    common-anim-named-target-attlist,    common-anim-add-accum-attlist,    common-anim-values-attlist,    common-timing-attlist,    common-spline-anim-value-attlist  }anim-animate-motion-attlist &= attribute svg:path { pathData }?anim-animate-motion-attlist &= attribute svg:origin { \string }?anim-animate-motion-attlist &=  [ a:defaultValue = "paced" ]  attribute smil:calcMode {    "discrete" | "linear" | "paced" | "spline"  }?animation-element |=  element anim:animateColor {    common-anim-target-attlist,    common-anim-named-target-attlist,    common-anim-add-accum-attlist,    common-anim-values-attlist,    common-anim-spline-mode-attlist,    common-spline-anim-value-attlist,    anim-animate-color-attlist,    common-timing-attlist  }anim-animate-color-attlist &=  [ a:defaultValue = "rgb" ]  attribute anim:color-interpolation { "rgb" | "hsl" }?anim-animate-color-attlist &=  [ a:defaultValue = "clockwise" ]  attribute anim:color-interpolation-direction {    "clockwise" | "counter-clockwise"  }?animation-element |=  element anim:animateTransform {    common-anim-target-attlist,    common-anim-named-target-attlist,    common-anim-add-accum-attlist,    common-anim-values-attlist,    anim-animate-transform-attlist,    common-timing-attlist  }anim-animate-transform-attlist &=  attribute svg:type {    "translate" | "scale" | "rotate" | "skewX" | "skewY"  }animation-element |=  element anim:transitionFilter {    common-anim-target-attlist,    common-anim-add-accum-attlist,    common-anim-values-attlist,    common-anim-spline-mode-attlist,    anim-transition-filter-attlist,    common-timing-attlist  }anim-transition-filter-attlist &= attribute smil:type { \string }anim-transition-filter-attlist &= attribute smil:subtype { \string }?anim-transition-filter-attlist &=  [ a:defaultValue = "forward" ]  attribute smil:direction { "forward" | "reverse" }?anim-transition-filter-attlist &=  attribute smil:fadeColor { "forward" | "reverse" }?anim-transition-filter-attlist &=  [ a:defaultValue = "in" ] attribute smil:mode { "in" | "out" }?common-anim-attlist &= attribute anim:id { ID }?common-anim-target-attlist &= attribute smil:targetElement { IDREF }?common-anim-named-target-attlist &=  attribute smil:attributeName { \string }common-anim-target-attlist &= attribute anim:sub-item { \string }?common-anim-values-attlist &= attribute smil:values { \string }?common-anim-spline-mode-attlist &=  [ a:defaultValue = "discrete" ]  attribute smil:calcMode {    "discrete" | "linear" | "paced" | "spline"  }?common-spline-anim-value-attlist &= attribute smil:keyTimes { \string }?common-spline-anim-value-attlist &=  attribute smil:keySplines { \string }?common-anim-add-accum-attlist &=  attribute smil:accumulate { "none" | "sum" }?common-anim-add-accum-attlist &=  attribute smil:additive { "replace" | "sum" }?common-anim-values-attlist &= attribute anim:formula { \string }?common-anim-set-values-attlist &= attribute smil:to { \string }?common-anim-values-attlist &=  common-anim-set-values-attlist,  attribute smil:from { \string }?,  attribute smil:by { \string }?common-begin-end-timing-attlist &= attribute smil:begin { \string }?common-begin-end-timing-attlist &= attribute smil:end { \string }?common-dur-timing-attlist &= attribute smil:dur { \string }?common-endsync-timing-attlist &=  attribute smil:endsync { "first" | "last" | "all" | "media" }?common-repeat-timing-attlist &=  attribute smil:repeatDur { \string }?,  attribute smil:repeatCount { nonNegativeInteger | "indefinite" }?common-fill-timing-attlist &=  attribute smil:fill {    "remove" | "freeze" | "hold" | "auto" | "default" | "transition"  }?common-fill-default-attlist &=  attribute smil:fillDefault {    "remove" | "freeze" | "hold" | "transition" | "auto" | "inherit"  }?common-restart-timing-attlist &=  [ a:defaultValue = "default" ]  attribute smil:restart {    "never" | "always" | "whenNotActive" | "default"  }?common-restart-default-attlist &=  [ a:defaultValue = "inherit" ]  attribute smil:restartDefault {    "never" | "always" | "whenNotActive" | "inherit"  }?common-time-manip-attlist &=  [ a:defaultValue = "0.0" ] attribute smil:accelerate { double }?common-time-manip-attlist &=  [ a:defaultValue = "0.0" ] attribute smil:decelerate { double }?common-time-manip-attlist &=  [ a:defaultValue = "false" ] attribute smil:autoReverse { boolean }?animation-element |=  element anim:par {    common-anim-attlist,    common-timing-attlist,    common-endsync-timing-attlist,    animation-element*  }common-basic-timing-attlist &=  common-begin-end-timing-attlist,  common-dur-timing-attlist,  common-repeat-timing-attlistcommon-timing-attlist &=  common-basic-timing-attlist,  common-restart-timing-attlist,  common-restart-default-attlist,  common-fill-timing-attlist,  common-fill-default-attlist,  common-time-manip-attlistanimation-element |=  element anim:seq {    common-anim-attlist,    common-endsync-timing-attlist,    common-timing-attlist,    animation-element*  }animation-element |=  element anim:iterate {    common-anim-attlist,    anim-iterate-attlist,    common-timing-attlist,    common-endsync-timing-attlist,    animation-element*  }anim-iterate-attlist &= common-anim-target-attlistanim-iterate-attlist &= attribute anim:iterate-type { \string }?anim-iterate-attlist &= attribute anim:iterate-interval { duration }?animation-element |=  element anim:audio {    common-anim-attlist, anim-audio-attlist, common-basic-timing-attlist  }anim-audio-attlist &= attribute xlink:href { anyURI }?anim-audio-attlist &= attribute anim:audio-level { double }?animation-element |=  element anim:command {    common-anim-attlist,    anim-command-attlist,    common-begin-end-timing-attlist,    common-anim-target-attlist,    element anim:param {      attribute anim:name { text },      attribute anim:value { text }    }*  }anim-command-attlist &= attribute anim:command { \string }style-style =  element style:style {    style-style-attlist, style-style-content, style-map*  }style-style-attlist &= attribute style:name { styleName }style-style-attlist &= attribute style:display-name { \string }?style-style-attlist &=  attribute style:parent-style-name { styleNameRef }?style-style-attlist &= attribute style:next-style-name { styleNameRef }?style-style-attlist &=  attribute style:list-style-name { styleName | empty }?style-style-attlist &=  attribute style:master-page-name { styleNameRef }?style-style-attlist &=  [ a:defaultValue = "false" ] attribute style:auto-update { boolean }?style-style-attlist &= attribute style:data-style-name { styleNameRef }?style-style-attlist &= attribute style:class { \string }?style-style-attlist &=  attribute style:default-outline-level { positiveInteger }?style-map = element style:map { style-map-attlist, empty }style-map-attlist &= attribute style:condition { \string }style-map-attlist &= attribute style:apply-style-name { styleNameRef }style-map-attlist &= attribute style:base-cell-address { cellAddress }?style-default-style =  element style:default-style { style-style-content }style-page-layout =  element style:page-layout {    style-page-layout-attlist,    style-page-layout-properties?,    style-header-style?,    style-footer-style?  }style-page-layout-attlist &= attribute style:name { styleName }style-page-layout-attlist &=  [ a:defaultValue = "all" ]  attribute style:page-usage { "all" | "left" | "right" | "mirrored" }?style-header-style =  element style:header-style { style-header-footer-properties? }style-footer-style =  element style:footer-style { style-header-footer-properties? }style-master-page =  element style:master-page {    style-master-page-attlist,    (style-header, style-header-left?)?,    (style-footer, style-footer-left?)?,    office-forms?,    style-style*,    shape*,    presentation-notes?  }style-master-page-attlist &= attribute style:name { styleName }style-master-page-attlist &= attribute style:display-name { \string }?style-master-page-attlist &=  attribute style:page-layout-name { styleNameRef }style-master-page-attlist &= attribute draw:style-name { styleNameRef }?style-master-page-attlist &=  attribute style:next-style-name { styleNameRef }?style-header =  element style:header {    common-style-header-footer-attlist, header-footer-content  }style-footer =  element style:footer {    common-style-header-footer-attlist, header-footer-content  }style-header-left =  element style:header-left {    common-style-header-footer-attlist, header-footer-content  }style-footer-left =  element style:footer-left {    common-style-header-footer-attlist, header-footer-content  }header-footer-content =  (text-tracked-changes,   text-decls,   (text-h    | text-p    | text-list    | table-table    | text-section    | text-table-of-content    | text-illustration-index    | text-table-index    | text-object-index    | text-user-index    | text-alphabetical-index    | text-bibliography    | text-index-title    | change-marks)*)  | (style-region-left?, style-region-center?, style-region-right?)common-style-header-footer-attlist &=  [ a:defaultValue = "true" ] attribute style:display { boolean }?style-region-left = element style:region-left { region-content }style-region-center = element style:region-center { region-content }style-region-right = element style:region-right { region-content }region-content = text-p*presentation-notes =  element presentation:notes {    common-presentation-header-footer-attlist,    presentation-notes-attlist,    office-forms,    shape*  }presentation-notes-attlist &=  attribute style:page-layout-name { styleNameRef }?presentation-notes-attlist &=  attribute draw:style-name { styleNameRef }?table-table-template =  element table:table-template {    table-table-template-attlist,    table-first-row?,    table-last-row?,    table-first-column?,    table-last-column?,    (table-body     | (table-even-rows, table-odd-rows)     | (table-even-columns, table-odd-columns))  }table-table-template-attlist &= attribute text:name { \string }table-table-template-attlist &=  attribute text:first-row-start-column { rowOrCol }table-table-template-attlist &=  attribute text:first-row-end-column { rowOrCol }table-table-template-attlist &=  attribute text:last-row-start-column { rowOrCol }table-table-template-attlist &=  attribute text:last-row-end-column { rowOrCol }rowOrCol = "row" | "column"table-first-row =  element table:first-row { common-table-template-attlist, empty }table-last-row =  element table:last-row { common-table-template-attlist, empty }table-first-column =  element table:first-column { common-table-template-attlist, empty }table-last-column =  element table:last-column { common-table-template-attlist, empty }table-body = element table:body { common-table-template-attlist, empty }table-even-rows =  element table:even-rows { common-table-template-attlist, empty }table-odd-rows =  element table:odd-rows { common-table-template-attlist, empty }table-even-columns =  element table:even-columns { common-table-template-attlist, empty }table-odd-columns =  element table:odd-columns { common-table-template-attlist, empty }common-table-template-attlist &=  attribute text:style-name { styleNameRef },  attribute text:paragraph-style-name { styleNameRef? }style-font-face =  element style:font-face {    style-font-face-attlist, svg-font-face-src?, svg-definition-src?  }style-font-face-attlist &=  attribute svg:font-family { \string }?,  attribute svg:font-style { fontStyle }?,  attribute svg:font-variant { fontVariant }?,  attribute svg:font-weight { fontWeight }?,  attribute svg:font-stretch {    "normal"    | "ultra-condensed"    | "extra-condensed"    | "condensed"    | "semi-condensed"    | "semi-expanded"    | "expanded"    | "extra-expanded"    | "ultra-expanded"  }?,  attribute svg:font-size { positiveLength }?,  attribute svg:unicode-range { text }?,  attribute svg:units-per-em { integer }?,  attribute svg:panose-1 { text }?,  attribute svg:stemv { integer }?,  attribute svg:stemh { integer }?,  attribute svg:slope { integer }?,  attribute svg:cap-height { integer }?,  attribute svg:x-height { integer }?,  attribute svg:accent-height { integer }?,  attribute svg:ascent { integer }?,  attribute svg:descent { integer }?,  attribute svg:widths { text }?,  attribute svg:bbox { text }?,  attribute svg:ideographic { integer }?,  attribute svg:alphabetic { integer }?,  attribute svg:mathematical { integer }?,  attribute svg:hanging { integer }?,  attribute svg:v-ideographic { integer }?,  attribute svg:v-alphabetic { integer }?,  attribute svg:v-mathematical { integer }?,  attribute svg:v-hanging { integer }?,  attribute svg:underline-position { integer }?,  attribute svg:underline-thickness { integer }?,  attribute svg:strikethrough-position { integer }?,  attribute svg:strikethrough-thickness { integer }?,  attribute svg:overline-position { integer }?,  attribute svg:overline-thickness { integer }?svg-font-face-src =  element svg:font-face-src {    (svg-font-face-uri | svg-font-face-name)+  }svg-font-face-uri =  element svg:font-face-uri {    common-svg-font-face-xlink-attlist, svg-font-face-format*  }svg-font-face-format =  element svg:font-face-format {    attribute svg:string { text }?,    empty  }svg-font-face-name =  element svg:font-face-name {    attribute svg:name { text }?,    empty  }svg-definition-src =  element svg:definition-src {    common-svg-font-face-xlink-attlist, empty  }common-svg-font-face-xlink-attlist &=  attribute xlink:href { anyURI },  [ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,  [ a:defaultValue = "onRequest" ]  attribute xlink:actuate { "onRequest" }?style-font-face-attlist &= attribute style:name { \string }style-font-face-attlist &= attribute style:font-adornments { \string }?style-font-face-attlist &=  attribute style:font-family-generic { fontFamilyGeneric }?style-font-face-attlist &= attribute style:font-pitch { fontPitch }?style-font-face-attlist &=  attribute style:font-charset { textEncoding }?number-number-style =  element number:number-style {    common-data-style-attlist,    style-text-properties?,    number-text?,    (any-number, number-text?)?,    style-map*  }any-number = number-number | number-scientific-number | number-fractionnumber-number =  element number:number {    number-number-attlist,    common-decimal-places-attlist,    common-number-attlist,    number-embedded-text*  }number-number-attlist &= attribute number:decimal-replacement { text }?number-number-attlist &=  [ a:defaultValue = "1" ] attribute number:display-factor { double }?number-embedded-text =  element number:embedded-text { number-embedded-text-attlist, text }number-embedded-text-attlist &= attribute number:position { integer }number-scientific-number =  element number:scientific-number {    number-scientific-number-attlist,    common-decimal-places-attlist,    common-number-attlist,    empty  }number-scientific-number-attlist &=  attribute number:min-exponent-digits { integer }?number-fraction =  element number:fraction {    number-fraction-attlist, common-number-attlist, empty  }number-fraction-attlist &=  attribute number:min-numerator-digits { integer }?number-fraction-attlist &=  attribute number:min-denominator-digits { integer }?number-fraction-attlist &=  attribute number:denominator-value { integer }?number-currency-style =  element number:currency-style {    common-data-style-attlist,    common-auto-reorder-attlist,    style-text-properties?,    number-text?,    ((number-and-text, currency-symbol-and-text?)     | (currency-symbol-and-text, number-and-text?))?,    style-map*  }currency-symbol-and-text = number-currency-symbol, number-text?number-and-text = number-number, number-text?number-currency-symbol =  element number:currency-symbol {    number-currency-symbol-attlist, text  }number-currency-symbol-attlist &=  attribute number:language { languageCode }?,  attribute number:country { countryCode }?number-percentage-style =  element number:percentage-style {    common-data-style-attlist,    style-text-properties?,    number-text?,    number-and-text?,    style-map*  }number-date-style =  element number:date-style {    common-data-style-attlist,    common-auto-reorder-attlist,    common-format-source-attlist,    style-text-properties?,    # This DTD does not reflect the fact that some elements must not        # occur more than once.    number-text?,    (any-date, number-text?)+,    style-map*  }any-date =  number-day  | number-month  | number-year  | number-era  | number-day-of-week  | number-week-of-year  | number-quarter  | number-hours  | number-am-pm  | number-minutes  | number-secondsnumber-day =  element number:day {    number-day-attlist, common-calendar-attlist, empty  }number-day-attlist &=  [ a:defaultValue = "short" ]  attribute number:style { "short" | "long" }?number-month =  element number:month {    number-month-attlist, common-calendar-attlist, empty  }number-month-attlist &=  [ a:defaultValue = "false" ] attribute number:textual { boolean }?number-month-attlist &=  [ a:defaultValue = "false" ]  attribute number:possessive-form { boolean }?number-month-attlist &=  [ a:defaultValue = "short" ]  attribute number:style { "short" | "long" }?number-year =  element number:year {    number-year-attlist, common-calendar-attlist, empty  }number-year-attlist &=  [ a:defaultValue = "short" ]  attribute number:style { "short" | "long" }?number-era =  element number:era {    number-era-attlist, common-calendar-attlist, empty  }number-era-attlist &=  [ a:defaultValue = "short" ]  attribute number:style { "short" | "long" }?number-day-of-week =  element number:day-of-week {    number-day-of-week-attlist, common-calendar-attlist, empty  }number-day-of-week-attlist &=  [ a:defaultValue = "short" ]  attribute number:style { "short" | "long" }?number-week-of-year =  element number:week-of-year { common-calendar-attlist, empty }number-quarter =  element number:quarter {    number-quarter-attlist, common-calendar-attlist, empty  }number-quarter-attlist &=  [ a:defaultValue = "short" ]  attribute number:style { "short" | "long" }?number-time-style =  element number:time-style {    number-time-style-attlist,    common-data-style-attlist,    common-format-source-attlist,    style-text-properties?,    # This DTD does not reflect the fact that some elements must not        # occur more than once.    number-text?,    (any-time, number-text?)+,    style-map*  }any-time = number-hours | number-am-pm | number-minutes | number-secondsnumber-time-style-attlist &=  [ a:defaultValue = "true" ]  attribute number:truncate-on-overflow { boolean }?number-hours = element number:hours { number-hours-attlist, empty }number-hours-attlist &=  [ a:defaultValue = "short" ]  attribute number:style { "short" | "long" }?number-minutes =  element number:minutes { number-minutes-attlist, empty }number-minutes-attlist &=  [ a:defaultValue = "short" ]  attribute number:style { "short" | "long" }?number-seconds =  element number:seconds { number-seconds-attlist, empty }number-seconds-attlist &=  [ a:defaultValue = "short" ]  attribute number:style { "short" | "long" }?number-seconds-attlist &=  [ a:defaultValue = "0" ] attribute number:decimal-places { integer }?number-am-pm = element number:am-pm { empty }number-boolean-style =  element number:boolean-style {    common-data-style-attlist,    style-text-properties?,    number-text?,    (number-boolean, number-text?)?,    style-map*  }number-boolean = element number:boolean { empty }number-text-style =  element number:text-style {    common-data-style-attlist,    style-text-properties?,    number-text?,    (number-text-content, number-text?)*,    style-map*  }number-text = element number:text { text }number-text-content = element number:text-content { empty }common-data-style-attlist &= attribute style:name { styleName }style-data-style-attlist &= attribute style:display-name { \string }?common-data-style-attlist &= attribute number:language { languageCode }?common-data-style-attlist &= attribute number:country { countryCode }?common-data-style-attlist &= attribute number:title { text }?common-data-style-attlist &= attribute style:volatile { boolean }?common-auto-reorder-attlist &=  [ a:defaultValue = "false" ]  attribute number:automatic-order { boolean }?common-format-source-attlist =  [ a:defaultValue = "fixed" ]  attribute number:format-source { "fixed" | "language" }?common-data-style-attlist &=  [ a:defaultValue = "1" ]  attribute number:transliteration-format { \string }?common-data-style-attlist &=  attribute number:transliteration-language { countryCode }?common-data-style-attlist &=  attribute number:transliteration-country { countryCode }?common-data-style-attlist &=  [ a:defaultValue = "short" ]  attribute number:transliteration-style {    "short" | "medium" | "long"  }?common-decimal-places-attlist =  attribute number:decimal-places { integer }?common-number-attlist &=  attribute number:min-integer-digits { integer }?common-number-attlist &=  [ a:defaultValue = "false" ] attribute number:grouping { boolean }?common-calendar-attlist &=  attribute number:calendar {    "gregorian"    | "gengou"    | "ROC"    | "hanja_yoil"    | "hanja"    | "hijri"    | "jewish"    | "buddhist"    | \string  }?style-style-content |=  attribute style:family { "text" },  style-text-properties?style-style-content |=  attribute style:family { "paragraph" },  style-paragraph-properties?,  style-text-properties?style-style-content |=  attribute style:family { "section" },  style-section-properties?style-style-content |=  attribute style:family { "ruby" },  style-ruby-properties?text-linenumbering-configuration =  element text:linenumbering-configuration {    text-linenumbering-configuration-attlist,    text-linenumbering-separator?  }text-linenumbering-configuration-attlist &=  [ a:defaultValue = "true" ] attribute text:number-lines { boolean }?text-linenumbering-configuration-attlist &= common-num-format-attlist?text-linenumbering-configuration-attlist &=  attribute text:style-name { styleNameRef }?text-linenumbering-configuration-attlist &=  attribute text:increment { nonNegativeInteger }?text-linenumbering-configuration-attlist &=  [ a:defaultValue = "left" ]  attribute text:number-position {    "left" | "right" | "inner" | "outer"  }?text-linenumbering-configuration-attlist &=  attribute text:offset { nonNegativeLength }?text-linenumbering-configuration-attlist &=  [ a:defaultValue = "true" ]  attribute text:count-empty-lines { boolean }?text-linenumbering-configuration-attlist &=  [ a:defaultValue = "false" ]  attribute text:count-in-text-boxes { boolean }?text-linenumbering-configuration-attlist &=  [ a:defaultValue = "false" ]  attribute text:restart-on-page { boolean }?text-linenumbering-separator =  element text:linenumbering-separator {    attribute text:increment { nonNegativeInteger }?,    text  }text-notes-configuration =  element text:notes-configuration { text-notes-configuration-content }text-notes-configuration-content &= text-note-classtext-notes-configuration-content &=  attribute text:citation-style-name { styleNameRef }?text-notes-configuration-content &=  attribute text:citation-body-style-name { styleNameRef }?text-notes-configuration-content &=  attribute text:default-style-name { styleNameRef }?text-notes-configuration-content &=  attribute text:master-page-name { styleNameRef }?text-notes-configuration-content &=  attribute text:start-value { nonNegativeInteger }?text-notes-configuration-content &=  common-num-format-prefix-suffix-attlist, common-num-format-attlist?text-notes-configuration-content &=  attribute text:start-numbering-at { "document" | "chapter" | "page" }?text-notes-configuration-content &=  attribute text:footnotes-position {    "text" | "page" | "section" | "document"  }?text-notes-configuration-content &=  element text:note-continuation-notice-forward { text }?text-notes-configuration-content &=  element text:note-continuation-notice-backward { text }?text-bibliography-configuration =  element text:bibliography-configuration {    text-bibliography-configuration-attlist, text-sort-key*  }text-bibliography-configuration-attlist &=  attribute text:prefix { \string }?,  attribute text:suffix { \string }?text-bibliography-configuration-attlist &=  [ a:defaultValue = "false" ]  attribute text:numbered-entries { boolean }?text-bibliography-configuration-attlist &=  [ a:defaultValue = "true" ]  attribute text:sort-by-position { boolean }?,  attribute fo:language { languageCode }?,  attribute fo:country { countryCode }?,  attribute text:sort-algorithm { \string }?text-sort-key = element text:sort-key { text-sort-key-attlist, empty }text-sort-key-attlist &=  attribute text:key {    "address"    | "annote"    | "author"    | "bibliography-type"    | "booktitle"    | "chapter"    | "custom1"    | "custom2"    | "custom3"    | "custom4"    | "custom5"    | "edition"    | "editor"    | "howpublished"    | "identifier"    | "institution"    | "isbn"    | "issn"    | "journal"    | "month"    | "note"    | "number"    | "organizations"    | "pages"    | "publisher"    | "report-type"    | "school"    | "series"    | "title"    | "url"    | "volume"    | "year"  },  [ a:defaultValue = "true" ] attribute text:sort-ascending { boolean }?text-list-style =  element text:list-style {    text-list-style-attr, text-list-style-content*  }text-list-style-attr &= attribute style:name { styleName }text-list-style-attr &= attribute style:display-name { \string }?text-list-style-attr &=  [ a:defaultValue = "false" ]  attribute text:consecutive-numbering { boolean }?text-list-level-style-attr = attribute text:level { positiveInteger }text-list-style-content |=  element text:list-level-style-number {    text-list-level-style-attr,    text-list-level-style-number-attr,    style-list-level-properties?,    style-text-properties?  }text-list-level-style-number-attr &=  attribute text:style-name { styleNameRef }?text-list-level-style-number-attr &=  common-num-format-attlist, common-num-format-prefix-suffix-attlisttext-list-level-style-number-attr &=  [ a:defaultValue = "1" ]  attribute text:display-levels { positiveInteger }?text-list-level-style-number-attr &=  [ a:defaultValue = "1" ]  attribute text:start-value { positiveInteger }?text-list-style-content |=  element text:list-level-style-bullet {    text-list-level-style-attr,    text-list-level-style-bullet-attr,    style-list-level-properties?,    style-text-properties?  }text-list-level-style-bullet-attr &=  attribute text:style-name { styleNameRef }?text-list-level-style-bullet-attr &=  attribute text:bullet-char { character }text-list-level-style-bullet-attr &=  common-num-format-prefix-suffix-attlisttext-list-level-style-bullet-attr &=  attribute text:bullet-relative-size { percent }?text-list-style-content |=  element text:list-level-style-image {    text-list-level-style-attr,    text-list-level-style-image-attr,    style-list-level-properties?  }text-list-level-style-image-attr &=  common-draw-data-attlist | office-binary-datatext-outline-style =  element text:outline-style { text-outline-level-style+ }text-outline-level-style =  element text:outline-level-style {    text-outline-level-style-attlist,    style-list-level-properties?,    style-text-properties?  }text-outline-level-style-attlist &=  attribute text:level { positiveInteger }text-outline-level-style-attlist &=  attribute text:style-name { styleNameRef }?text-outline-level-style-attlist &=  common-num-format-attlist, common-num-format-prefix-suffix-attlisttext-outline-level-style-attlist &=  [ a:defaultValue = "1" ]  attribute text:display-levels { positiveInteger }?text-outline-level-style-attlist &=  [ a:defaultValue = "1" ]  attribute text:start-value { positiveInteger }?style-style-content |=  attribute style:family { "table" },  style-table-properties?style-style-content |=  attribute style:family { "table-column" },  style-table-column-properties?style-style-content |=  attribute style:family { "table-row" },  style-table-row-properties?style-style-content |=  attribute style:family { "table-cell" },  style-table-cell-properties?,  style-paragraph-properties?,  style-text-properties?style-style-content |=  attribute style:family { "graphic" | "presentation" },  style-graphic-properties?,  style-paragraph-properties?,  style-text-properties?style-graphic-properties =  element style:graphic-properties { style-graphic-properties-content }style-graphic-properties-content = style-properties-contentstyle-graphic-properties-content-strict =  style-graphic-properties-attlist,  style-graphic-fill-properties-attlist,  style-graphic-properties-elementsstyle-graphic-properties-elements = emptystyle-style-content |=  attribute style:family { "drawing-page" },  style-drawing-page-properties?style-drawing-page-properties =  element style:drawing-page-properties {    style-drawing-page-properties-content  }style-drawing-page-properties-content = style-properties-contentstyle-drawing-page-properties-content-strict =  style-graphic-fill-properties-attlist,  style-drawing-page-properties-attlist,  style-drawing-page-properties-elementsdraw-gradient =  element draw:gradient {    common-draw-gradient-attlist, draw-gradient-attlist, empty  }common-draw-gradient-attlist &= attribute draw:name { styleName }?common-draw-gradient-attlist &= attribute draw:display-name { \string }?common-draw-gradient-attlist &= attribute draw:style { gradient-style }gradient-style =  "linear" | "axial" | "radial" | "ellipsoid" | "square" | "rectangular"common-draw-gradient-attlist &=  attribute draw:cx { percent }?,  attribute draw:cy { percent }?draw-gradient-attlist &=  attribute draw:start-color { color }?,  attribute draw:end-color { color }?draw-gradient-attlist &=  attribute draw:start-intensity { percent }?,  attribute draw:end-intensity { percent }?common-draw-gradient-attlist &= attribute draw:angle { integer }?common-draw-gradient-attlist &= attribute draw:border { percent }?svg-linearGradient =  element svg:linearGradient {    common-svg-gradient-attlist,    [ a:defaultValue = "0%" ]    attribute svg:x1 { coordinate | percent }?,    [ a:defaultValue = "0%" ]    attribute svg:y1 { coordinate | percent }?,    [ a:defaultValue = "100%" ]    attribute svg:x2 { coordinate | percent }?,    [ a:defaultValue = "100%" ]    attribute svg:y2 { coordinate | percent }?,    svg-stop*  }svg-radialGradient =  element svg:radialGradient {    common-svg-gradient-attlist,    [ a:defaultValue = "50%" ]    attribute svg:cx { coordinate | percent }?,    [ a:defaultValue = "50%" ]    attribute svg:cy { coordinate | percent }?,    [ a:defaultValue = "50%" ]    attribute svg:r { coordinate | percent }?,    attribute svg:fx { coordinate | percent }?,    attribute svg:fy { coordinate | percent }?,    svg-stop*  }svg-stop =  element svg:stop {    attribute svg:offset { double | percent },    attribute svg:stop-color { color }?,    attribute svg:stop-opacity { double }?  }common-svg-gradient-attlist &=  [ a:defaultValue = "objectBoundingBox" ]  attribute svg:gradientUnits { "objectBoundingBox" }?,  attribute svg:gradientTransform { \string }?,  [ a:defaultValue = "pad" ]  attribute svg:spreadMethod { "pad" | "reflect" | "repeat" }?common-svg-gradient-attlist &= attribute draw:name { styleName }common-svg-gradient-attlist &= attribute draw:display-name { \string }?draw-hatch = element draw:hatch { draw-hatch-attlist, empty }draw-hatch-attlist &= attribute draw:name { styleName }draw-hatch-attlist &= attribute draw:display-name { \string }?draw-hatch-attlist &=  attribute draw:style { "single" | "double" | "triple" }draw-hatch-attlist &= attribute draw:color { color }?draw-hatch-attlist &= attribute draw:distance { length }?draw-hatch-attlist &= attribute draw:rotation { integer }?draw-fill-image =  element draw:fill-image {    draw-fill-image-attlist,    attribute xlink:href { anyURI },    [ a:defaultValue = "simple" ] attribute xlink:type { "simple" }?,    [ a:defaultValue = "embed" ] attribute xlink:show { "embed" }?,    [ a:defaultValue = "onLoad" ] attribute xlink:actuate { "onLoad" }?,    empty  }draw-fill-image-attlist &= attribute draw:name { styleName }draw-fill-image-attlist &= attribute draw:display-name { \string }?draw-fill-image-attlist &=  attribute svg:width { length }?,  attribute svg:height { length }?draw-opacity =  element draw:opacity {    common-draw-gradient-attlist, draw-opacity-attlist, empty  }draw-opacity-attlist &=  attribute draw:start { percent }?,  attribute draw:end { percent }?draw-marker =  element draw:marker {    draw-marker-attlist,    common-draw-viewbox-attlist,    common-draw-path-data-attlist,    empty  }draw-marker-attlist &= attribute draw:name { styleName }draw-marker-attlist &= attribute draw:display-name { \string }?draw-stroke-dash =  element draw:stroke-dash { draw-stroke-dash-attlist, empty }draw-stroke-dash-attlist &= attribute draw:name { styleName }draw-stroke-dash-attlist &= attribute draw:display-name { \string }?draw-stroke-dash-attlist &= attribute draw:style { "rect" | "round" }?draw-stroke-dash-attlist &=  attribute draw:dots1 { integer }?,  attribute draw:dots1-length { length }?,  attribute draw:dots2 { integer }?,  attribute draw:dots2-length { length }?draw-stroke-dash-attlist &= attribute draw:distance { length }?style-presentation-page-layout =  element style:presentation-page-layout {    attribute style:name { styleName },    attribute style:display-name { \string }?,    presentation-placeholder*  }presentation-placeholder =  element presentation:placeholder {    attribute presentation:object { presentation-classes },    attribute svg:x { coordinate | percent },    attribute svg:y { coordinate | percent },    attribute svg:width { length | percent },    attribute svg:height { length | percent },    empty  }style-style-content |=  attribute style:family { "chart" },  style-chart-properties?,  style-graphic-properties?,  style-paragraph-properties?,  style-text-properties?style-properties-content = anyAttListOrElementsstyle-page-layout-properties =  element style:page-layout-properties {    style-page-layout-properties-content  }style-page-layout-properties-content = style-properties-contentstyle-page-layout-properties-content-strict =  style-page-layout-properties-attlist,  style-page-layout-properties-elementsstyle-page-layout-properties-attlist &=  attribute fo:page-width { length }?,  attribute fo:page-height { length }?style-page-layout-properties-attlist &=  common-num-format-attlist?, common-num-format-prefix-suffix-attliststyle-page-layout-properties-attlist &=  attribute style:paper-tray-name { "default" | \string }?style-page-layout-properties-attlist &=  attribute style:print-orientation { "portrait" | "landscape" }?style-page-layout-properties-attlist &=  common-horizontal-margin-attlist,  common-vertical-margin-attlist,  common-margin-attliststyle-page-layout-properties-attlist &= common-border-attliststyle-page-layout-properties-attlist &= common-border-line-width-attliststyle-page-layout-properties-attlist &= common-padding-attliststyle-page-layout-properties-attlist &= common-shadow-attliststyle-page-layout-properties-attlist &= common-background-color-attliststyle-page-layout-properties-elements &= style-background-imagestyle-page-layout-properties-elements &= style-columnsstyle-page-layout-properties-attlist &=  attribute style:register-truth-ref-style-name { styleNameRef }?style-page-layout-properties-attlist &=  attribute style:print {    list {      ("headers"       | "grid"       | "annotations"       | "objects"       | "charts"       | "drawings"       | "formulas"       | "zero-values")*    }  }?style-page-layout-properties-attlist &=  attribute style:print-page-order { "ttb" | "ltr" }?style-page-layout-properties-attlist &=  attribute style:first-page-number { positiveInteger | "continue" }?style-page-layout-properties-attlist &=  attribute style:scale-to { percent }?,  attribute style:scale-to-pages { positiveInteger }?style-page-layout-properties-attlist &=  attribute style:table-centering {    "horizontal" | "vertical" | "both" | "none"  }?style-page-layout-properties-attlist &=  attribute style:footnote-max-height { length }?style-page-layout-properties-attlist &= common-writing-mode-attliststyle-page-layout-properties-elements &= style-footnote-sepstyle-footnote-sep =  element style:footnote-sep { style-footnote-sep-attlist, empty }?style-footnote-sep-attlist &=  attribute style:width { length }?,  attribute style:rel-width { percent }?,  attribute style:color { color }?,  attribute style:line-style { lineStyle }?,  [ a:defaultValue = "left" ]  attribute style:adjustment { "left" | "center" | "right" }?,  attribute style:distance-before-sep { length }?,  attribute style:distance-after-sep { length }?style-page-layout-properties-attlist &=  attribute style:layout-grid-mode { "none" | "line" | "both" }?style-page-layout-properties-attlist &=  attribute style:layout-grid-base-height { length }?style-page-layout-properties-attlist &=  attribute style:layout-grid-ruby-height { length }?style-page-layout-properties-attlist &=  attribute style:layout-grid-lines { positiveInteger }?style-page-layout-properties-attlist &=  attribute style:layout-grid-color { color }?style-page-layout-properties-attlist &=  attribute style:layout-grid-ruby-below { boolean }?style-page-layout-properties-attlist &=  attribute style:layout-grid-print { boolean }?style-page-layout-properties-attlist &=  attribute style:layout-grid-display { boolean }?style-header-footer-properties =  element style:header-footer-properties {    style-header-footer-properties-content  }style-header-footer-properties-content = style-properties-contentstyle-header-footer-properties-content-strict =  style-header-footer-properties-attlist,  style-header-footer-properties-elementsstyle-header-footer-properties-attlist &=  attribute svg:height { length }?,  attribute fo:min-height { length }?style-header-footer-properties-attlist &=  common-horizontal-margin-attlist,  common-vertical-margin-attlist,  common-margin-attliststyle-header-footer-properties-attlist &= common-border-attliststyle-header-footer-properties-attlist &=  common-border-line-width-attliststyle-header-footer-properties-attlist &= common-padding-attliststyle-header-footer-properties-attlist &=  common-background-color-attliststyle-header-footer-properties-elements &= style-background-imagestyle-header-footer-properties-attlist &= common-shadow-attliststyle-header-footer-properties-attlist &=  attribute style:dynamic-spacing { boolean }?style-text-properties =  element style:text-properties { style-text-properties-content }style-text-properties-content = style-properties-contentstyle-text-properties-content-strict =  style-text-properties-attlist, style-text-properties-elementsstyle-text-properties-elements = emptystyle-text-properties-attlist &=  attribute fo:font-variant { fontVariant }?fontVariant = "normal" | "small-caps"style-text-properties-attlist &=  attribute fo:text-transform {    "none" | "lowercase" | "uppercase" | "capitalize"  }?style-text-properties-attlist &= attribute fo:color { color }?style-text-properties-attlist &=  attribute style:use-window-font-color { boolean }?style-text-properties-attlist &=  attribute style:text-outline { boolean }?style-text-properties-attlist &=  attribute style:text-line-through-type { lineType }?style-text-properties-attlist &=  attribute style:text-line-through-style { lineStyle }?style-text-properties-attlist &=  attribute style:text-line-through-width { lineWidth }?style-text-properties-attlist &=  attribute style:text-line-through-color { "font-color" | color }?style-text-properties-attlist &=  attribute style:text-line-through-text { \string }?style-text-properties-attlist &=  attribute style:text-line-through-text-style { styleNameRef }?style-text-properties-attlist &=  attribute style:text-position {    list { (percent | "super" | "sub"), percent? }  }?style-text-properties-attlist &=  attribute style:font-name { \string }?,  attribute style:font-name-asian { \string }?,  attribute style:font-name-complex { \string }?style-text-properties-attlist &=  attribute fo:font-family { \string }?,  attribute style:font-family-asian { \string }?,  attribute style:font-family-complex { \string }?style-text-properties-attlist &=  attribute style:font-family-generic { fontFamilyGeneric }?,  attribute style:font-family-generic-asian { fontFamilyGeneric }?,  attribute style:font-family-generic-complex { fontFamilyGeneric }?fontFamilyGeneric =  "roman" | "swiss" | "modern" | "decorative" | "script" | "system"style-text-properties-attlist &=  attribute style:font-style-name { \string }?,  attribute style:font-style-name-asian { \string }?,  attribute style:font-style-name-complex { \string }?style-text-properties-attlist &=  attribute style:font-pitch { fontPitch }?,  attribute style:font-pitch-asian { fontPitch }?,  attribute style:font-pitch-complex { fontPitch }?fontPitch = "fixed" | "variable"style-text-properties-attlist &=  attribute style:font-charset { textEncoding }?,  attribute style:font-charset-asian { textEncoding }?,  attribute style:font-charset-complex { textEncoding }?textEncoding = xsd:string { pattern = "[A-Za-z][A-Za-z0-9._\-]*" }style-text-properties-attlist &=  attribute fo:font-size { positiveLength | percent }?,  attribute style:font-size-asian { positiveLength | percent }?,  attribute style:font-size-complex { positiveLength | percent }?style-text-properties-attlist &=  attribute style:font-size-rel { length }?,  attribute style:font-size-rel-asian { length }?,  attribute style:font-size-rel-complex { length }?style-text-properties-attlist &=  attribute style:script-type {    "latin" | "asian" | "complex" | "ignore"  }?style-text-properties-attlist &=  attribute fo:letter-spacing { length | "normal" }?style-text-properties-attlist &=  attribute fo:language { languageCode }?,  attribute style:language-asian { languageCode }?,  attribute style:language-complex { languageCode }?style-text-properties-attlist &=  attribute fo:country { countryCode }?,  attribute style:country-asian { countryCode }?,  attribute style:country-complex { countryCode }?style-text-properties-attlist &=  attribute fo:font-style { fontStyle }?,  attribute style:font-style-asian { fontStyle }?,  attribute style:font-style-complex { fontStyle }?fontStyle = "normal" | "italic" | "oblique"style-text-properties-attlist &=  attribute style:font-relief { "none" | "embossed" | "engraved" }?style-text-properties-attlist &=  attribute fo:text-shadow { shadowType }?shadowType =  "none"  | # The following string must match an XSL shadow decl    \stringstyle-text-properties-attlist &=  attribute style:text-underline-type { lineType }?lineType = "none" | "single" | "double"style-text-properties-attlist &=  attribute style:text-underline-style { lineStyle }?lineStyle =  "none"  | "solid"  | "dotted"  | "dash"  | "long-dash"  | "dot-dash"  | "dot-dot-dash"  | "wave"style-text-properties-attlist &=  attribute style:text-underline-width { lineWidth }?lineWidth =  "auto"  | "normal"  | "bold"  | "thin"  | "dash"  | "medium"  | "thick"  | positiveInteger  | percent  | positiveLengthstyle-text-properties-attlist &=  attribute style:text-underline-color { "font-color" | color }?style-text-properties-attlist &=  attribute fo:font-weight { fontWeight }?,  attribute style:font-weight-asian { fontWeight }?,  attribute style:font-weight-complex { fontWeight }?fontWeight =  "normal"  | "bold"  | "100"  | "200"  | "300"  | "400"  | "500"  | "600"  | "700"  | "800"  | "900"style-text-properties-attlist &=  attribute style:text-underline-mode { lineMode }?lineMode = "continuous" | "skip-white-space"style-text-properties-attlist &=  attribute style:text-line-through-mode { lineMode }?style-text-properties-attlist &=  attribute style:letter-kerning { boolean }?style-text-properties-attlist &=  attribute style:text-blinking { boolean }?style-text-properties-attlist &= common-background-color-attliststyle-text-properties-attlist &=  attribute style:text-combine { "none" | "letters" | "lines" }?style-text-properties-attlist &=  attribute style:text-combine-start-char { character }?,  attribute style:text-combine-end-char { character }?style-text-properties-attlist &=  attribute style:text-emphasize {    "none"    | list {        ("none" | "accent" | "dot" | "circle" | "disc"),        ("above" | "below")      }  }?style-text-properties-attlist &= attribute style:text-scale { percent }?style-text-properties-attlist &=  attribute style:text-rotation-angle { integer }?style-text-properties-attlist &=  attribute style:text-rotation-scale { "fixed" | "line-height" }?style-text-properties-attlist &= attribute fo:hyphenate { boolean }?style-text-properties-attlist &=  attribute fo:hyphenation-remain-char-count { positiveInteger }?style-text-properties-attlist &=  attribute fo:hyphenation-push-char-count { positiveInteger }?style-text-properties-attlist &=  attribute text:display { "true" }  | attribute text:display { "none" }  | (attribute text:display { "condition" },     attribute text:condition { "none" })  | emptystyle-paragraph-properties =  element style:paragraph-properties {    style-paragraph-properties-content  }style-paragraph-properties-content = style-properties-contentstyle-paragraph-properties-content-strict =  style-paragraph-properties-attlist,  style-paragraph-properties-elementsstyle-paragraph-properties-attlist &=  attribute fo:line-height { "normal" | nonNegativeLength | percent }?style-paragraph-properties-attlist &=  attribute style:line-height-at-least { nonNegativeLength }?style-paragraph-properties-attlist &=  attribute style:line-spacing { length }?style-paragraph-properties-attlist &=  attribute style:font-independent-line-spacing { boolean }?style-paragraph-properties-attlist &= common-text-aligncommon-text-align =  attribute fo:text-align {    "start" | "end" | "left" | "right" | "center" | "justify"  }?style-paragraph-properties-attlist &=  attribute fo:text-align-last { "start" | "center" | "justify" }?style-paragraph-properties-attlist &=  attribute style:justify-single-word { boolean }?style-paragraph-properties-attlist &=  attribute fo:keep-together { "auto" | "always" }?style-paragraph-properties-attlist &=  attribute fo:widows { nonNegativeInteger }?style-paragraph-properties-attlist &=  attribute fo:orphans { nonNegativeInteger }?style-paragraph-properties-elements &= style-tab-stopsstyle-tab-stops = element style:tab-stops { style-tab-stop* }?style-tab-stop =  element style:tab-stop { style-tab-stop-attlist, empty }style-tab-stop-attlist &= attribute style:position { nonNegativeLength }style-tab-stop-attlist &=  [ a:defaultValue = "left" ]  attribute style:type { "left" | "center" | "right" }?  | (attribute style:type { "char" },     style-tab-stop-char-attlist)style-tab-stop-char-attlist &= attribute style:char { character }style-tab-stop-attlist &= attribute style:leader-type { lineType }?style-tab-stop-attlist &= attribute style:leader-style { lineStyle }?style-tab-stop-attlist &= attribute style:leader-width { lineWidth }?style-tab-stop-attlist &=  attribute style:leader-color { "font-color" | color }?style-tab-stop-attlist &=  [ a:defaultValue = " " ] attribute style:leader-text { \string }?style-tab-stop-attlist &=  attribute style:leader-text-style { styleNameRef }?style-paragraph-properties-attlist &=  attribute style:tab-stop-distance { nonNegativeLength }?style-paragraph-properties-attlist &=  attribute fo:hyphenation-keep { "auto" | "page" }?style-paragraph-properties-attlist &=  attribute fo:hyphenation-ladder-count {    "no-limit" | positiveInteger  }?style-paragraph-properties-elements &= style-drop-capstyle-drop-cap =  element style:drop-cap { style-drop-cap-attlist, empty }?style-drop-cap-attlist &=  [ a:defaultValue = "1" ]  attribute style:length { "word" | positiveInteger }?style-drop-cap-attlist &=  [ a:defaultValue = "1" ] attribute style:lines { positiveInteger }?style-drop-cap-attlist &=  [ a:defaultValue = "0cm" ] attribute style:distance { length }?style-drop-cap-attlist &= attribute style:style-name { styleNameRef }?style-paragraph-properties-attlist &=  attribute style:register-true { boolean }?style-paragraph-properties-attlist &= common-horizontal-margin-attlistcommon-horizontal-margin-attlist =  attribute fo:margin-left { length | percent }?,  attribute fo:margin-right { length | percent }?style-paragraph-properties-attlist &=  attribute fo:text-indent { length | percent }?style-paragraph-properties-attlist &=  attribute style:auto-text-indent { boolean }?style-paragraph-properties-attlist &= common-vertical-margin-attlistcommon-vertical-margin-attlist =  attribute fo:margin-top { nonNegativeLength | percent }?,  attribute fo:margin-bottom { nonNegativeLength | percent }?style-paragraph-properties-attlist &= common-margin-attlistcommon-margin-attlist =  attribute fo:margin { nonNegativeLength | percent }?style-paragraph-properties-attlist &= common-break-attlistcommon-break-attlist =  attribute fo:break-before { "auto" | "column" | "page" }?,  attribute fo:break-after { "auto" | "column" | "page" }?style-paragraph-properties-attlist &= common-background-color-attlistcommon-background-color-attlist =  attribute fo:background-color { "transparent" | color }?style-paragraph-properties-elements &= style-background-imagestyle-background-image =  element style:background-image {    style-background-image-attlist,    (common-draw-data-attlist | office-binary-data | empty)  }?style-background-image-attlist &=  [ a:defaultValue = "repeat" ]  attribute style:repeat { "no-repeat" | "repeat" | "stretch" }?style-background-image-attlist &=  [ a:defaultValue = "center" ]  attribute style:position {    "left"    | "center"    | "right"    | "top"    | "bottom"    | list { horiBackPos, vertBackPos }    | list { vertBackPos, horiBackPos }  }?horiBackPos = "left" | "center" | "right"vertBackPos = "top" | "center" | "bottom"style-background-image-attlist &=  attribute style:filter-name { \string }?style-background-image-attlist &= attribute draw:opacity { percent }?style-paragraph-properties-attlist &= common-border-attlistcommon-border-attlist =  attribute fo:border { \string }?,  attribute fo:border-top { \string }?,  attribute fo:border-bottom { \string }?,  attribute fo:border-left { \string }?,  attribute fo:border-right { \string }?style-paragraph-properties-attlist &= common-border-line-width-attlistcommon-border-line-width-attlist =  attribute style:border-line-width { borderWidths }?,  attribute style:border-line-width-top { borderWidths }?,  attribute style:border-line-width-bottom { borderWidths }?,  attribute style:border-line-width-left { borderWidths }?,  attribute style:border-line-width-right { borderWidths }?borderWidths = list { positiveLength, positiveLength, positiveLength }style-paragraph-properties-attlist &= common-padding-attlistcommon-padding-attlist =  attribute fo:padding { nonNegativeLength }?,  attribute fo:padding-top { nonNegativeLength }?,  attribute fo:padding-bottom { nonNegativeLength }?,  attribute fo:padding-left { nonNegativeLength }?,  attribute fo:padding-right { nonNegativeLength }?style-paragraph-properties-attlist &= common-shadow-attlistcommon-shadow-attlist = attribute style:shadow { shadowType }?style-paragraph-properties-attlist &= common-keep-with-next-attlistcommon-keep-with-next-attlist =  attribute fo:keep-with-next { "auto" | "always" }?style-paragraph-properties-attlist &=  [ a:defaultValue = "false" ] attribute text:number-lines { boolean }?style-paragraph-properties-attlist &=  attribute text:line-number { nonNegativeInteger }?style-paragraph-properties-attlist &=  attribute style:text-autospace { "none" | "ideograph-alpha" }?style-paragraph-properties-attlist &=  attribute style:punctuation-wrap { "simple" | "hanging" }?style-paragraph-properties-attlist &=  attribute style:line-break { "normal" | "strict" }?style-paragraph-properties-attlist &=  [ a:defaultValue = "auto" ]  attribute style:vertical-align {    "top" | "middle" | "bottom" | "auto" | "baseline"  }?style-paragraph-properties-attlist &= common-writing-mode-attlistcommon-writing-mode-attlist =  attribute style:writing-mode {    "lr-tb" | "rl-tb" | "tb-rl" | "tb-lr" | "lr" | "rl" | "tb" | "page"  }?style-paragraph-properties-attlist &=  attribute style:writing-mode-automatic { boolean }?style-paragraph-properties-attlist &=  attribute style:snap-to-layout-grid { boolean }?style-paragraph-properties-attlist &= common-page-number-attlistcommon-page-number-attlist =  attribute style:page-number { positiveInteger | "auto" }?style-paragraph-properties-attlist &=  attribute style:background-transparency { percent }?style-ruby-properties =  element style:ruby-properties { style-ruby-properties-content }style-ruby-properties-content = style-properties-contentstyle-ruby-properties-content-strict =  style-ruby-properties-attlist, style-ruby-properties-elementsstyle-ruby-properties-elements = emptystyle-ruby-properties-attlist &=  attribute style:ruby-position { "above" | "below" }?style-ruby-properties-attlist &=  attribute style:ruby-align {    "left"    | "center"    | "right"    | "distribute-letter"    | "distribute-space"  }?style-section-properties =  element style:section-properties { style-section-properties-content }style-section-properties-content = style-properties-contentstyle-section-properties-content-strict =  style-section-properties-attlist, style-section-properties-elementsstyle-section-properties-attlist &= common-background-color-attliststyle-section-properties-elements &= style-background-imagestyle-section-properties-attlist &= common-horizontal-margin-attliststyle-section-properties-elements &= style-columnsstyle-columns =  element style:columns {    style-columns-attlist, style-column-sep?, style-column*  }?style-columns-attlist &= attribute fo:column-count { positiveInteger }style-columns-attlist &= attribute fo:column-gap { length }?style-column = element style:column { style-column-attlist }style-column-attlist &= attribute style:rel-width { relativeLength }style-column-attlist &=  [ a:defaultValue = "0cm" ] attribute fo:start-indent { length }?style-column-attlist &=  [ a:defaultValue = "0cm" ] attribute fo:end-indent { length }?style-column-attlist &=  [ a:defaultValue = "0cm" ] attribute fo:space-before { length }?style-column-attlist &=  [ a:defaultValue = "0cm" ] attribute fo:space-after { length }?style-column-sep = element style:column-sep { style-column-sep-attlist }style-column-sep-attlist &=  [ a:defaultValue = "solid" ]  attribute style:style {    "none" | "solid" | "dotted" | "dashed" | "dot-dashed"  }?style-column-sep-attlist &= attribute style:width { length }style-column-sep-attlist &=  [ a:defaultValue = "100%" ] attribute style:height { percent }?style-column-sep-attlist &=  [ a:defaultValue = "top" ]  attribute style:vertical-align { "top" | "middle" | "bottom" }?style-column-sep-attlist &=  [ a:defaultValue = "#000000" ] attribute style:color { color }?style-section-properties-attlist &=  [ a:defaultValue = "false" ] attribute style:protect { boolean }?style-section-properties-attlist &=  attribute text:dont-balance-text-columns { boolean }?style-section-properties-attlist &= common-writing-mode-attliststyle-section-properties-elements &= text-notes-configuration*style-table-properties =  element style:table-properties { style-table-properties-content }style-table-properties-content = style-properties-contentstyle-table-properties-content-strict =  style-table-properties-attlist, style-table-properties-elementsstyle-table-properties-attlist &=  attribute style:width { positiveLength }?,  attribute style:rel-width { percent }?style-table-properties-attlist &=  attribute table:align { "left" | "center" | "right" | "margins" }?style-table-properties-attlist &= common-horizontal-margin-attliststyle-table-properties-attlist &= common-vertical-margin-attliststyle-table-properties-attlist &= common-margin-attliststyle-table-properties-attlist &= common-page-number-attliststyle-table-properties-attlist &= common-break-attliststyle-table-properties-attlist &= common-background-color-attliststyle-table-properties-elements &= style-background-imagestyle-table-properties-attlist &= common-shadow-attliststyle-table-properties-attlist &= common-keep-with-next-attliststyle-table-properties-attlist &=  attribute style:may-break-between-rows { boolean }?style-table-properties-attlist &=  attribute table:border-model { "collapsing" | "separating" }?style-table-properties-attlist &= common-writing-mode-attliststyle-table-properties-attlist &= attribute table:display { boolean }?style-table-column-properties =  element style:table-column-properties {    style-table-column-properties-content  }style-table-column-properties-content = style-properties-contentstyle-table-column-properties-content-strict =  style-table-column-properties-attlist,  style-table-column-properties-elementsstyle-table-column-properties-elements = emptystyle-table-column-properties-attlist &=  attribute style:column-width { positiveLength }?,  attribute style:rel-column-width { relativeLength }?style-table-column-properties-attlist &=  attribute style:use-optimal-column-width { boolean }?style-table-column-properties-attlist &= common-break-attliststyle-table-row-properties =  element style:table-row-properties {    style-table-row-properties-content  }style-table-row-properties-content = style-properties-contentstyle-table-row-properties-content-strict =  style-table-row-properties-attlist,  style-table-row-properties-elementsstyle-table-row-properties-attlist &=  attribute style:row-height { positiveLength }?,  attribute style:min-row-height { nonNegativeLength }?style-table-row-properties-attlist &=  attribute style:use-optimal-row-height { boolean }?style-table-row-properties-attlist &= common-background-color-attliststyle-table-row-properties-elements &= style-background-imagestyle-table-row-properties-attlist &= common-break-attliststyle-table-row-properties-attlist &=  attribute fo:keep-together { "auto" | "always" }?style-table-cell-properties =  element style:table-cell-properties {    style-table-cell-properties-content  }style-table-cell-properties-content = style-properties-contentstyle-table-cell-properties-content-strict =  style-table-cell-properties-attlist,  style-table-cell-properties-elementsstyle-table-cell-properties-attlist &=  attribute style:vertical-align {    "top" | "middle" | "bottom" | "automatic"  }?style-table-cell-properties-attlist &=  attribute style:text-align-source { "fix" | "value-type" }?style-table-cell-properties-attlist &= common-style-direction-attlistcommon-style-direction-attlist =  attribute style:direction { "ltr" | "ttb" }?style-table-cell-properties-attlist &=  attribute style:glyph-orientation-vertical { "auto" | "0" }?style-table-cell-properties-attlist &= common-shadow-attliststyle-table-cell-properties-attlist &= common-background-color-attliststyle-table-cell-properties-elements &= style-background-imagestyle-table-cell-properties-attlist &= common-border-attliststyle-table-cell-properties-attlist &=  attribute style:diagonal-tl-br { \string }?,  attribute style:diagonal-tl-br-widths { borderWidths }?,  attribute style:diagonal-bl-tr { \string }?,  attribute style:diagonal-bl-tr-widths { borderWidths }?style-table-cell-properties-attlist &= common-border-line-width-attliststyle-table-cell-properties-attlist &= common-padding-attliststyle-table-cell-properties-attlist &=  attribute fo:wrap-option { "no-wrap" | "wrap" }?style-table-cell-properties-attlist &= common-rotation-angle-attlistcommon-rotation-angle-attlist =  attribute style:rotation-angle { nonNegativeInteger }?style-table-cell-properties-attlist &=  attribute style:rotation-align {    "none" | "bottom" | "top" | "center"  }?style-table-cell-properties-attlist &=  attribute style:cell-protect {    "none"    | "hidden-and-protected"    | list { ("protected" | "formula-hidden")+ }  }?style-table-cell-properties-attlist &=  attribute style:print-content { boolean }?style-table-cell-properties-attlist &=  attribute style:decimal-places { nonNegativeInteger }?style-table-cell-properties-attlist &=  attribute style:repeat-content { boolean }?style-table-cell-properties-attlist &=  attribute style:shrink-to-fit { boolean }?style-list-level-properties =  element style:list-level-properties {    style-list-level-properties-content  }style-list-level-properties-content = style-properties-contentstyle-list-level-properties-content-strict =  style-list-level-properties-attlist,  style-list-level-properties-elementsstyle-list-level-properties-elements = emptystyle-list-level-properties-attlist &= common-text-alignstyle-list-level-properties-attlist &=  attribute text:space-before { nonNegativeLength }?style-list-level-properties-attlist &=  attribute text:min-label-width { nonNegativeLength }?style-list-level-properties-attlist &=  attribute text:min-label-distance { nonNegativeLength }?style-list-level-properties-attlist &=  attribute style:font-name { \string }?style-list-level-properties-attlist &=  attribute fo:width { positiveLength }?,  attribute fo:height { positiveLength }?style-list-level-properties-attlist &=  common-vertical-rel-attlist, common-vertical-pos-attliststyle-graphic-properties-attlist &=  attribute draw:stroke { "none" | "dash" | "solid" }?style-graphic-properties-attlist &=  attribute draw:stroke-dash { styleNameRef }?style-graphic-properties-attlist &=  attribute draw:stroke-dash-names { styleNameRefs }?style-graphic-properties-attlist &=  attribute svg:stroke-width { length }?style-graphic-properties-attlist &=  attribute svg:stroke-color { color }?style-graphic-properties-attlist &=  attribute draw:marker-start { styleNameRef }?style-graphic-properties-attlist &=  attribute draw:marker-end { styleNameRef }?style-graphic-properties-attlist &=  attribute draw:marker-start-width { length }?style-graphic-properties-attlist &=  attribute draw:marker-end-width { length }?style-graphic-properties-attlist &=  attribute draw:marker-start-center { boolean }?style-graphic-properties-attlist &=  attribute draw:marker-end-center { boolean }?style-graphic-properties-attlist &=  attribute svg:stroke-opacity {    xsd:double { minInclusive = "0" maxInclusive = "1" }    | percent  }?style-graphic-properties-attlist &=  attribute draw:stroke-linejoin {    "miter" | "round" | "bevel" | "middle" | "none" | "inherit"  }?style-graphic-fill-properties-attlist &=  attribute draw:fill {    "none" | "solid" | "bitmap" | "gradient" | "hatch"  }?style-graphic-fill-properties-attlist &=  attribute draw:fill-color { color }?style-graphic-fill-properties-attlist &=  attribute draw:secondary-fill-color { color }?style-graphic-fill-properties-attlist &=  attribute draw:fill-gradient-name { styleNameRef }?style-graphic-fill-properties-attlist &=  attribute draw:gradient-step-count { nonNegativeInteger }?style-graphic-fill-properties-attlist &=  attribute draw:fill-hatch-name { styleNameRef }?style-graphic-fill-properties-attlist &=  attribute draw:fill-hatch-solid { boolean }?style-graphic-fill-properties-attlist &=  attribute draw:fill-image-name { styleNameRef }?style-graphic-fill-properties-attlist &=  attribute style:repeat { "no-repeat" | "repeat" | "stretch" }?style-graphic-fill-properties-attlist &=  attribute draw:fill-image-width { length | percent }?,  attribute draw:fill-image-height { length | percent }?style-graphic-fill-properties-attlist &=  attribute draw:fill-image-ref-point-x { percent }?,  attribute draw:fill-image-ref-point-y { percent }?,  attribute draw:fill-image-ref-point {    "top-left"    | "top"    | "top-right"    | "left"    | "center"    | "right"    | "bottom-left"    | "bottom"    | "bottom-right"  }?style-graphic-fill-properties-attlist &=  attribute draw:tile-repeat-offset { text }?style-graphic-fill-properties-attlist &=  attribute draw:opacity { percent }?style-graphic-fill-properties-attlist &=  attribute draw:opacity-name { styleNameRef }?style-graphic-fill-properties-attlist &=  attribute svg:fill-rule { "nonzero" | "evenodd" }?style-graphic-properties-attlist &=  attribute draw:symbol-color { color }?style-graphic-properties-attlist &=  attribute text:animation {    "none" | "scroll" | "alternate" | "slide"  }?style-graphic-properties-attlist &=  attribute text:animation-direction {    "left" | "right" | "up" | "down"  }?style-graphic-properties-attlist &=  attribute text:animation-start-inside { boolean }?style-graphic-properties-attlist &=  attribute text:animation-stop-inside { boolean }?style-graphic-properties-attlist &=  attribute text:animation-repeat { nonNegativeInteger }?style-graphic-properties-attlist &=  attribute text:animation-delay { duration }?style-graphic-properties-attlist &=  attribute text:animation-steps { length }?style-graphic-properties-attlist &=  attribute draw:auto-grow-width { boolean }?,  attribute draw:auto-grow-height { boolean }?style-graphic-properties-attlist &=  attribute draw:fit-to-size { boolean }?style-graphic-properties-attlist &=  attribute draw:fit-to-contour { boolean }?style-graphic-properties-attlist &=  attribute draw:textarea-vertical-align {    "top" | "middle" | "bottom" | "justify"  }?style-graphic-properties-attlist &=  attribute draw:textarea-horizontal-align {    "left" | "center" | "right" | "justify"  }?style-graphic-properties-attlist &=  attribute fo:wrap-option { "no-wrap" | "wrap" }?style-graphic-properties-elements &= text-list-style?style-graphic-properties-attlist &=  attribute draw:color-mode {    "greyscale" | "mono" | "watermark" | "standard"  }?style-graphic-properties-attlist &=  attribute draw:color-inversion { boolean }?style-graphic-properties-attlist &=  attribute draw:luminance { percent }?style-graphic-properties-attlist &= attribute draw:contrast { percent }?style-graphic-properties-attlist &= attribute draw:gamma { percent }?style-graphic-properties-attlist &= attribute draw:red { percent }?style-graphic-properties-attlist &= attribute draw:green { percent }?style-graphic-properties-attlist &= attribute draw:blue { percent }?style-graphic-properties-attlist &=  attribute draw:image-opacity { percent }?style-graphic-properties-attlist &=  attribute draw:shadow { "visible" | "hidden" }?style-graphic-properties-attlist &=  attribute draw:shadow-offset-x { length }?,  attribute draw:shadow-offset-y { length }?style-graphic-properties-attlist &=  attribute draw:shadow-color { color }?style-graphic-properties-attlist &=  attribute draw:shadow-opacity { percent }?style-graphic-properties-attlist &=  attribute draw:start-line-spacing-horizontal { distance }?,  attribute draw:start-line-spacing-vertical { distance }?style-graphic-properties-attlist &=  attribute draw:end-line-spacing-horizontal { distance }?,  attribute draw:end-line-spacing-vertical { distance }?style-graphic-properties-attlist &=  attribute draw:line-distance { distance }?style-graphic-properties-attlist &=  attribute draw:guide-overhang { length }?style-graphic-properties-attlist &=  attribute draw:guide-distance { distance }?style-graphic-properties-attlist &=  attribute draw:start-guide { length }?style-graphic-properties-attlist &= attribute draw:end-guide { length }?style-graphic-properties-attlist &=  attribute draw:placing { "below" | "above" }?style-graphic-properties-attlist &= attribute draw:parallel { boolean }?style-graphic-properties-attlist &=  attribute draw:measure-align {    "automatic" | "left-outside" | "inside" | "right-outside"  }?,  attribute draw:measure-vertical-align {    "automatic" | "above" | "below" | "center"  }?style-graphic-properties-attlist &=  attribute draw:unit {    "automatic"    | "mm"    | "cm"    | "m"    | "km"    | "pt"    | "pc"    | "inch"    | "ft"    | "mi"  }?style-graphic-properties-attlist &=  attribute draw:show-unit { boolean }?style-graphic-properties-attlist &=  attribute draw:decimal-places { nonNegativeInteger }?style-graphic-properties-attlist &=  attribute draw:caption-type {    "straight-line" | "angled-line" | "angled-connector-line"  }?style-graphic-properties-attlist &=  attribute draw:caption-angle-type { "fixed" | "free" }?style-graphic-properties-attlist &=  attribute draw:caption-angle { nonNegativeInteger }?style-graphic-properties-attlist &=  attribute draw:caption-gap { distance }?style-graphic-properties-attlist &=  attribute draw:caption-escape-direction {    "horizontal" | "vertical" | "auto"  }?style-graphic-properties-attlist &=  attribute draw:caption-escape { length | percent }?style-graphic-properties-attlist &=  attribute draw:caption-line-length { length }?style-graphic-properties-attlist &=  attribute draw:caption-fit-line-length { boolean }?style-graphic-properties-attlist &=  attribute dr3d:horizontal-segments { nonNegativeInteger }?style-graphic-properties-attlist &=  attribute dr3d:vertical-segments { nonNegativeInteger }?style-graphic-properties-attlist &=  attribute dr3d:edge-rounding { percent }?style-graphic-properties-attlist &=  attribute dr3d:edge-rounding-mode { "correct" | "attractive" }?style-graphic-properties-attlist &=  attribute dr3d:back-scale { percent }?style-graphic-properties-attlist &= attribute dr3d:depth { length }?style-graphic-properties-attlist &=  attribute dr3d:backface-culling { "enabled" | "disabled" }?style-graphic-properties-attlist &=  attribute dr3d:end-angle { nonNegativeInteger }?style-graphic-properties-attlist &=  attribute dr3d:close-front { boolean }?style-graphic-properties-attlist &=  attribute dr3d:close-back { boolean }?style-graphic-properties-attlist &=  attribute dr3d:lighting-mode { "standard" | "double-sided" }?style-graphic-properties-attlist &=  attribute dr3d:normals-kind { "object" | "flat" | "sphere" }?style-graphic-properties-attlist &=  attribute dr3d:normals-direction { "normal" | "inverse" }?style-graphic-properties-attlist &=  attribute dr3d:texture-generation-mode-x {    "object" | "parallel" | "sphere"  }?,  attribute dr3d:texture-generation-mode-y {    "object" | "parallel" | "sphere"  }?style-graphic-properties-attlist &=  attribute dr3d:texture-kind { "luminance" | "intensity" | "color" }?style-graphic-properties-attlist &=  attribute dr3d:texture-filter { "enabled" | "disabled" }?style-graphic-properties-attlist &=  attribute dr3d:texture-mode { "replace" | "modulate" | "blend" }?style-graphic-properties-attlist &=  attribute dr3d:ambient-color { color }?,  attribute dr3d:emissive-color { color }?,  attribute dr3d:specular-color { color }?,  attribute dr3d:diffuse-color { color }?style-graphic-properties-attlist &=  attribute dr3d:shininess { percent }?style-graphic-properties-attlist &=  attribute dr3d:shadow { "visible" | "hidden" }?style-graphic-properties-attlist &=  common-draw-rel-size-attlist,  attribute fo:min-width { length | percent }?style-graphic-properties-attlist &=  attribute fo:min-height { length | percent }?style-graphic-properties-attlist &=  attribute fo:max-height { length | percent }?,  attribute fo:max-width { length | percent }?style-graphic-properties-attlist &= common-horizontal-margin-attliststyle-graphic-properties-attlist &= common-vertical-margin-attliststyle-graphic-properties-attlist &= common-margin-attliststyle-graphic-properties-attlist &=  attribute style:print-content { boolean }?style-graphic-properties-attlist &=  attribute style:protect {    "none"    | list { ("content" | "position" | "size")+ }  }?style-graphic-properties-attlist &=  attribute style:horizontal-pos {    "left"    | "center"    | "right"    | "from-left"    | "inside"    | "outside"    | "from-inside"  }?,  attribute svg:x { coordinate }?style-graphic-properties-attlist &=  attribute style:horizontal-rel {    "page"    | "page-content"    | "page-start-margin"    | "page-end-margin"    | "frame"    | "frame-content"    | "frame-start-margin"    | "frame-end-margin"    | "paragraph"    | "paragraph-content"    | "paragraph-start-margin"    | "paragraph-end-margin"    | "char"  }?style-graphic-properties-attlist &= common-vertical-pos-attlistcommon-vertical-pos-attlist =  attribute style:vertical-pos {    "top" | "middle" | "bottom" | "from-top" | "below"  }?,  attribute svg:y { coordinate }?style-graphic-properties-attlist &= common-vertical-rel-attlistcommon-vertical-rel-attlist =  attribute style:vertical-rel {    "page"    | "page-content"    | "frame"    | "frame-content"    | "paragraph"    | "paragraph-content"    | "char"    | "line"    | "baseline"    | "text"  }?style-graphic-properties-attlist &= common-text-anchor-attliststyle-graphic-properties-attlist &= common-border-attliststyle-graphic-properties-attlist &= common-border-line-width-attliststyle-graphic-properties-attlist &= common-padding-attliststyle-graphic-properties-attlist &= common-shadow-attliststyle-graphic-properties-attlist &= common-background-color-attliststyle-graphic-properties-elements &= style-background-imagestyle-graphic-properties-elements &= style-columnsstyle-graphic-properties-attlist &=  attribute style:editable { boolean }?style-graphic-properties-attlist &=  attribute style:wrap {    "none"    | "left"    | "right"    | "parallel"    | "dynamic"    | "run-through"    | "biggest"  }?style-graphic-properties-attlist &=  attribute style:wrap-dynamic-threshold { nonNegativeLength }?style-graphic-properties-attlist &=  attribute style:number-wrapped-paragraphs {    "no-limit" | positiveInteger  }?style-graphic-properties-attlist &=  attribute style:wrap-contour { boolean }?style-graphic-properties-attlist &=  attribute style:wrap-contour-mode { "full" | "outside" }?style-graphic-properties-attlist &=  attribute style:run-through { "foreground" | "background" }?style-graphic-properties-attlist &=  attribute style:flow-with-text { boolean }?style-graphic-properties-attlist &=  attribute style:overflow-behavior {    "clip" | "auto-create-new-frame"  }?style-graphic-properties-attlist &=  attribute style:mirror {    "none"    | "vertical"    | horizontal-mirror    | list { "vertical", horizontal-mirror }    | list { horizontal-mirror, "vertical" }  }?horizontal-mirror =  "horizontal" | "horizontal-on-odd" | "horizontal-on-even"style-graphic-properties-attlist &=  attribute fo:clip {    # The attribute value must match the one XSL's clip    \string  }?style-graphic-properties-attlist &=  [ a:defaultValue = "iterative" ]  attribute draw:wrap-influence-on-position {    "iterative" | "once-concurrent" | "once-successive"  }?style-graphic-properties-attlist &= common-writing-mode-attliststyle-graphic-properties-attlist &=  attribute draw:frame-display-scrollbar { boolean }?style-graphic-properties-attlist &=  attribute draw:frame-display-border { boolean }?style-graphic-properties-attlist &=  attribute draw:frame-margin-horizontal { nonNegativePixelLength }?,  attribute draw:frame-margin-vertical { nonNegativePixelLength }?nonNegativePixelLength =  xsd:string { pattern = "([0-9]+(\.[0-9]*)?|\.[0-9]+)(px)" }style-graphic-properties-attlist &=  attribute draw:visible-area-left { nonNegativeLength }?,  attribute draw:visible-area-top { nonNegativeLength }?,  attribute draw:visible-area-width { positiveLength }?,  attribute draw:visible-area-height { positiveLength }?style-graphic-properties-attlist &=  attribute draw:ole-draw-aspect { nonNegativeInteger }?style-chart-properties =  element style:chart-properties { style-chart-properties-content }style-chart-properties-content = style-properties-contentstyle-chart-properties-content-strict =  style-chart-properties-attlist, style-chart-properties-elementsstyle-chart-properties-elements = emptystyle-chart-properties-attlist &=  [ a:defaultValue = "true" ] attribute chart:scale-text { boolean }?style-chart-properties-attlist &=  attribute chart:three-dimensional { boolean }?style-chart-properties-attlist &= attribute chart:deep { boolean }?style-chart-properties-attlist &=  attribute chart:symbol-type { "none" }  | attribute chart:symbol-type { "automatic" }  | (attribute chart:symbol-type { "named-symbol" },     attribute chart:symbol-name {       "square"       | "diamond"       | "arrow-down"       | "arrow-up"       | "arrow-right"       | "arrow-left"       | "bow-tie"       | "hourglass"       | "circle"       | "star"       | "x"       | "plus"       | "asterisk"       | "horizontal-bar"       | "vertical-bar"     })  | (attribute chart:symbol-type { "image" },     element chart:symbol-image {       attribute xlink:href { anyURI }     })  | emptystyle-chart-properties-attlist &=  attribute chart:symbol-width { nonNegativeLength }?,  attribute chart:symbol-height { nonNegativeLength }?style-chart-properties-attlist &=  [ a:defaultValue = "false" ] attribute chart:vertical { boolean }?style-chart-properties-attlist &=  [ a:defaultValue = "false" ] attribute chart:connect-bars { boolean }?style-chart-properties-attlist &=  attribute chart:gap-width { integer }?,  attribute chart:overlap { integer }?style-chart-properties-attlist &=  [ a:defaultValue = "false" ]  attribute chart:japanese-candle-stick { boolean }?style-chart-properties-attlist &=  [ a:defaultValue = "none" ]  attribute chart:interpolation {    "none" | "cubic-spline" | "b-spline"  }?,  [ a:defaultValue = "2" ]  attribute chart:spline-order { positiveInteger }?,  [ a:defaultValue = "20" ]  attribute chart:spline-resolution { positiveInteger }?style-chart-properties-attlist &=  [ a:defaultValue = "0" ]  attribute chart:pie-offset { nonNegativeInteger }?style-chart-properties-attlist &=  [ a:defaultValue = "false" ] attribute chart:lines { boolean }?style-chart-properties-attlist &=  [ a:defaultValue = "cuboid" ]  attribute chart:solid-type {    "cuboid" | "cylinder" | "cone" | "pyramid"  }?style-chart-properties-attlist &=  [ a:defaultValue = "false" ] attribute chart:stacked { boolean }?,  [ a:defaultValue = "false" ] attribute chart:percentage { boolean }?style-chart-properties-attlist &=  attribute chart:link-data-style-to-source { boolean }?style-chart-properties-attlist &= attribute chart:visible { boolean }?style-chart-properties-attlist &=  attribute chart:logarithmic { boolean }?style-chart-properties-attlist &=  attribute chart:maximum { double }?,  attribute chart:minimum { double }?,  attribute chart:origin { double }?,  attribute chart:interval-major { double }?,  attribute chart:interval-minor-divisor { positiveInteger }?style-chart-properties-attlist &=  attribute chart:tick-marks-major-inner { boolean }?,  attribute chart:tick-marks-major-outer { boolean }?,  attribute chart:tick-marks-minor-inner { boolean }?,  attribute chart:tick-marks-minor-outer { boolean }?style-chart-properties-attlist &=  attribute chart:display-label { boolean }?,  attribute chart:text-overlap { boolean }?,  attribute text:line-break { boolean }?,  [ a:defaultValue = "side-by-side" ]  attribute chart:label-arrangement {    "side-by-side" | "stagger-even" | "stagger-odd"  }?style-chart-properties-attlist &= common-style-direction-attliststyle-chart-properties-attlist &= common-rotation-angle-attliststyle-chart-properties-attlist &=  attribute chart:data-label-number { "none" | "value" | "percentage" }?style-chart-properties-attlist &=  attribute chart:data-label-text { boolean }?style-chart-properties-attlist &=  attribute chart:data-label-symbol { boolean }?style-chart-properties-attlist &=  attribute chart:mean-value { boolean }?style-chart-properties-attlist &=  [ a:defaultValue = "none" ]  attribute chart:error-category {    "none"    | "variance"    | "standard-deviation"    | "percentage"    | "error-margin"    | "constant"  }?style-chart-properties-attlist &=  attribute chart:error-percentage { double }?style-chart-properties-attlist &=  attribute chart:error-margin { double }?style-chart-properties-attlist &=  attribute chart:error-lower-limit { double }?,  attribute chart:error-upper-limit { double }?style-chart-properties-attlist &=  attribute chart:error-upper-indicator { boolean }?,  attribute chart:error-lower-indicator { boolean }?style-chart-properties-attlist &=  [ a:defaultValue = "columns" ]  attribute chart:series-source { "columns" | "rows" }?style-chart-properties-attlist &=  [ a:defaultValue = "none" ]  attribute chart:regression-type {    "none" | "linear" | "logarithmic" | "exponential" | "power"  }?style-drawing-page-properties-attlist &=  attribute presentation:transition-type {    "manual" | "automatic" | "semi-automatic"  }?style-drawing-page-properties-attlist &=  attribute presentation:transition-style {    "none"    | "fade-from-left"    | "fade-from-top"    | "fade-from-right"    | "fade-from-bottom"    | "fade-from-upperleft"    | "fade-from-upperright"    | "fade-from-lowerleft"    | "fade-from-lowerright"    | "move-from-left"    | "move-from-top"    | "move-from-right"    | "move-from-bottom"    | "move-from-upperleft"    | "move-from-upperright"    | "move-from-lowerleft"    | "move-from-lowerright"    | "uncover-to-left"    | "uncover-to-top"    | "uncover-to-right"    | "uncover-to-bottom"    | "uncover-to-upperleft"    | "uncover-to-upperright"    | "uncover-to-lowerleft"    | "uncover-to-lowerright"    | "fade-to-center"    | "fade-from-center"    | "vertical-stripes"    | "horizontal-stripes"    | "clockwise"    | "counterclockwise"    | "open-vertical"    | "open-horizontal"    | "close-vertical"    | "close-horizontal"    | "wavyline-from-left"    | "wavyline-from-top"    | "wavyline-from-right"    | "wavyline-from-bottom"    | "spiralin-left"    | "spiralin-right"    | "spiralout-left"    | "spiralout-right"    | "roll-from-top"    | "roll-from-left"    | "roll-from-right"    | "roll-from-bottom"    | "stretch-from-left"    | "stretch-from-top"    | "stretch-from-right"    | "stretch-from-bottom"    | "vertical-lines"    | "horizontal-lines"    | "dissolve"    | "random"    | "vertical-checkerboard"    | "horizontal-checkerboard"    | "interlocking-horizontal-left"    | "interlocking-horizontal-right"    | "interlocking-vertical-top"    | "interlocking-vertical-bottom"    | "fly-away"    | "open"    | "close"    | "melt"  }?style-drawing-page-properties-attlist &=  attribute presentation:transition-speed { presentationSpeeds }?style-drawing-page-properties-attlist &=  attribute smil:type { \string }?style-drawing-page-properties-attlist &=  attribute smil:subtype { \string }?style-drawing-page-properties-attlist &=  [ a:defaultValue = "forward" ]  attribute smil:direction { "forward" | "reverse" }?style-drawing-page-properties-attlist &=  attribute smil:fadeColor { color }?style-drawing-page-properties-attlist &=  attribute presentation:duration { duration }?style-drawing-page-properties-attlist &=  attribute presentation:visibility { "visible" | "hidden" }?style-drawing-page-properties-elements &= presentation-sound?style-drawing-page-properties-attlist &=  attribute draw:background-size { "full" | "border" }?style-drawing-page-properties-attlist &=  attribute presentation:background-objects-visible { boolean }?style-drawing-page-properties-attlist &=  attribute presentation:background-visible { boolean }?style-drawing-page-properties-attlist &=  attribute presentation:display-header { boolean }?style-drawing-page-properties-attlist &=  attribute presentation:display-footer { boolean }?style-drawing-page-properties-attlist &=  attribute presentation:display-page-number { boolean }?style-drawing-page-properties-attlist &=  attribute presentation:display-date-time { boolean }?\string = xsd:stringdate = xsd:datetime = xsd:timedateTime = xsd:dateTimeduration = xsd:durationinteger = xsd:integernonNegativeInteger = xsd:nonNegativeIntegerpositiveInteger = xsd:positiveIntegerdouble = xsd:doubleanyURI = xsd:anyURIbase64Binary = xsd:base64BinaryID = xsd:IDIDREF = xsd:IDREFIDREFS = xsd:IDREFSboolean = "true" | "false"dateOrDateTime = xsd:date | xsd:dateTimetimeOrDateTime = xsd:time | xsd:dateTimelanguage = xsd:languagecountryCode = xsd:token { pattern = "[A-Za-z0-9]{1,8}" }languageCode = xsd:token { pattern = "[A-Za-z]{1,8}" }character = xsd:string { length = "1" }length =  xsd:string {    pattern =      "-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))"  }nonNegativeLength =  xsd:string {    pattern =      "([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))"  }positiveLength =  xsd:string {    pattern =      "([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))"  }percent = xsd:string { pattern = "-?([0-9]+(\.[0-9]*)?|\.[0-9]+)%" }relativeLength = xsd:string { pattern = "[0-9]+\*" }coordinate = lengthdistance = lengthcolor = xsd:string { pattern = "#[0-9a-fA-F]{6}" }styleName = xsd:NCNamestyleNameRef = xsd:NCName | emptystyleNameRefs = list { xsd:NCName* }variableName = xsd:stringformula =  # A formula should start with a namespace prefix,    #  but has no restrictions  xsd:stringtargetFrameName = "_self" | "_blank" | "_parent" | "_top" | \stringvalueType =  "float"  | "time"  | "date"  | "percentage"  | "currency"  | "boolean"  | "string"points =  xsd:string { pattern = "-?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)*" }pathData = xsd:stringvector3D =  xsd:string {    pattern =      "\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\)"  }namespacedToken =  xsd:string { pattern = "[0-9a-zA-Z_]+:[0-9a-zA-Z._\-]+" }anyAttListOrElements =  attribute * { text }*,  anyElementsanyElements =  element * {    mixed { anyAttListOrElements }  }*
 |