| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280 | # Open Document Format for Office Applications (OpenDocument) Version 1.2# OASIS Standard, 29 September 2011# Relax-NG Schema# Source: http://docs.oasis-open.org/office/v1.2/os/# Copyright (c) OASIS Open 2002-2011, 2013. All Rights Reserved.# # All capitalized terms in the following text have the meanings assigned to them# in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The# full Policy may be found at the OASIS website.# # This document and translations of it may be copied and furnished to others, and# derivative works that comment on or otherwise explain it or assist in its# implementation may be prepared, copied, published, and distributed, in whole or# in part, without restriction of any kind, provided that the above copyright# notice and this section are included on all such copies and derivative works.# However, this document itself may not be modified in any way, including by# removing the copyright notice or references to OASIS, except as needed for the# purpose of developing any document or deliverable produced by an OASIS# Technical Committee (in which case the rules applicable to copyrights, as set# forth in the OASIS IPR Policy, must be followed) or as required to translate it# into languages other than English.# # The limited permissions granted above are perpetual and will not be revoked by# OASIS or its successors or assigns.# # This document and the information contained herein is provided on an "AS IS"# basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT# LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT# INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR# FITNESS FOR A PARTICULAR PURPOSE. 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 db = "urn:oasis:names:tc:opendocument:xmlns:database: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 grddl = "http://www.w3.org/2003/g/data-view#"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 xhtml = "http://www.w3.org/1999/xhtml"namespace xlink = "http://www.w3.org/1999/xlink"office-process-content = 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 { "1.2" }  & attribute grddl:transformation {      list { anyIRI* }    }?office-document-attrs = attribute office:mimetype { \string }office-meta = element office:meta { office-meta-content-strict }?office-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  }  | element office:drawing {      office-drawing-attlist,      office-drawing-content-prelude,      office-drawing-content-main,      office-drawing-content-epilogue    }  | element office:presentation {      office-presentation-attlist,      office-presentation-content-prelude,      office-presentation-content-main,      office-presentation-content-epilogue    }  | element office:spreadsheet {      office-spreadsheet-attlist,      office-spreadsheet-content-prelude,      office-spreadsheet-content-main,      office-spreadsheet-content-epilogue    }  | element office:chart {      office-chart-attlist,      office-chart-content-prelude,      office-chart-content-main,      office-chart-content-epilogue    }  | element office:image {      office-image-attlist,      office-image-content-prelude,      office-image-content-main,      office-image-content-epilogue    }  | office-databaseoffice-text-content-prelude =  office-forms, text-tracked-changes, text-decls, table-declsoffice-text-content-main =  text-content*  | (text-page-sequence, (shape)*)text-content =  text-h  | text-p  | text-list  | text-numbered-paragraph  | table-table  | 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 =  attribute text:global { boolean }?  & attribute text:use-soft-page-breaks { boolean }?office-drawing-attlist = emptyoffice-drawing-content-prelude = text-decls, table-declsoffice-drawing-content-main = draw-page*office-drawing-content-epilogue = table-functionsoffice-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-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-chart-attlist = emptyoffice-chart-content-prelude = text-decls, table-declsoffice-chart-content-main = chart-chartoffice-chart-content-epilogue = table-functionsoffice-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 }  & 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*    & style-default-page-layout?    & 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*    & table-table-template*  }?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 }  | element dc:title { \string }  | element dc:description { \string }  | element dc:subject { \string }  | element meta:keyword { \string }  | element meta:initial-creator { \string }  | dc-creator  | element meta:printed-by { \string }  | element meta:creation-date { dateTime }  | dc-date  | element meta:print-date { dateTime }  | element meta:template {      attribute xlink:type { "simple" },      attribute xlink:href { anyIRI },      attribute xlink:actuate { "onRequest" }?,      attribute xlink:title { \string }?,      attribute meta:date { dateTime }?    }  | element meta:auto-reload {      (attribute xlink:type { "simple" },       attribute xlink:href { anyIRI },       attribute xlink:show { "replace" }?,       attribute xlink:actuate { "onLoad" }?)?,      attribute meta:delay { duration }?    }  | element meta:hyperlink-behaviour {      attribute office:target-frame-name { targetFrameName }?,      attribute xlink:show { "new" | "replace" }?    }  | element dc:language { language }  | element meta:editing-cycles { nonNegativeInteger }  | element meta:editing-duration { duration }  | 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 meta:frame-count { nonNegativeInteger }?,      attribute meta:sentence-count { nonNegativeInteger }?,      attribute meta:syllable-count { nonNegativeInteger }?,      attribute meta:non-whitespace-character-count {        nonNegativeInteger      }?,      attribute meta:row-count { nonNegativeInteger }?,      attribute meta:cell-count { nonNegativeInteger }?    }  | 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)    }dc-creator = element dc:creator { \string }dc-date = element dc:date { dateTime }text-h =  element text:h {    heading-attrs,    paragraph-attrs,    text-number?,    paragraph-content-or-hyperlink*  }heading-attrs =  attribute text:outline-level { positiveInteger }  & attribute text:restart-numbering { boolean }?  & attribute text:start-value { nonNegativeInteger }?  & attribute text:is-list-header { boolean }?text-number = element text:number { \string }text-p =  element text:p { paragraph-attrs, paragraph-content-or-hyperlink* }paragraph-attrs =  attribute text:style-name { styleNameRef }?  & attribute text:class-names { styleNameRefs }?  & attribute text:cond-style-name { styleNameRef }?  & (xml-id,     attribute text:id { NCName }?)?  & common-in-content-meta-attlist?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 }?  & attribute text:continue-numbering { boolean }?  & attribute text:continue-list { IDREF }?  & xml-id?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 }?  & attribute text:style-override { styleNameRef }?  & xml-id?text-list-header =  element text:list-header {    text-list-header-attr, text-list-item-content  }text-list-header-attr = xml-id?text-numbered-paragraph =  element text:numbered-paragraph {    text-numbered-paragraph-attr, text-number?, (text-p | text-h)  }text-numbered-paragraph-attr =  attribute text:list-id { NCName }  & attribute text:level { positiveInteger }?  & (attribute text:style-name { styleNameRef },     attribute text:continue-numbering { boolean },     attribute text:start-value { nonNegativeInteger })?  & xml-id?text-section =  element text:section {    text-section-attlist,    (text-section-source | text-section-source-dde | empty),    text-content*  }text-section-attlist =  common-section-attlist  & (attribute text:display { "true" | "none" }     | (attribute text:display { "condition" },        attribute text:condition { \string })     | empty)common-section-attlist =  attribute text:style-name { styleNameRef }?  & attribute text:name { \string }  & attribute text:protected { boolean }?  & attribute text:protection-key { \string }?  & attribute text:protection-key-digest-algorithm { anyIRI }?  & xml-id?text-section-source =  element text:section-source { text-section-source-attr }text-section-source-attr =  (attribute xlink:type { "simple" },   attribute xlink:href { anyIRI },   attribute xlink:show { "embed" }?)?  & attribute text:section-name { \string }?  & 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 = attribute text:track-changes { boolean }?text-changed-region =  element text:changed-region {    text-changed-region-attr, text-changed-region-content  }text-changed-region-attr =  xml-id,  attribute text:id { NCName }?text-changed-region-content =  element text:insertion { office-change-info }  | element text:deletion { office-change-info, text-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-or-hyperlink = paragraph-content | text-aparagraph-content =  text  | element text:s {      attribute text:c { nonNegativeInteger }?    }  | element text:tab { text-tab-attr }  | element text:line-break { empty }  | text-soft-page-break  | element text:span {      attribute text:style-name { styleNameRef }?,      attribute text:class-names { styleNameRefs }?,      paragraph-content-or-hyperlink*    }  | element text:meta {      text-meta-attlist, paragraph-content-or-hyperlink*    }  | (text-bookmark | text-bookmark-start | text-bookmark-end)  | element text:reference-mark {      attribute text:name { \string }    }  | (element text:reference-mark-start {       attribute text:name { \string }     }     | element text:reference-mark-end {         attribute text:name { \string }       })  | 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* }    }  | element text:ruby {      attribute text:style-name { styleNameRef }?,      element text:ruby-base { paragraph-content-or-hyperlink* },      element text:ruby-text {        attribute text:style-name { styleNameRef }?,        text      }    }  | (office-annotation | office-annotation-end)  | change-marks  | shape  | element text:date { text-date-attlist, text }  | element text:time { text-time-attlist, text }  | element text:page-number { text-page-number-attlist, text }  | element text:page-continuation {      text-page-continuation-attlist, text    }  | element text:sender-firstname { common-field-fixed-attlist, text }  | element text:sender-lastname { common-field-fixed-attlist, text }  | element text:sender-initials { common-field-fixed-attlist, text }  | element text:sender-title { common-field-fixed-attlist, text }  | element text:sender-position { common-field-fixed-attlist, text }  | element text:sender-email { common-field-fixed-attlist, text }  | element text:sender-phone-private {      common-field-fixed-attlist, text    }  | element text:sender-fax { common-field-fixed-attlist, text }  | element text:sender-company { common-field-fixed-attlist, text }  | element text:sender-phone-work { common-field-fixed-attlist, text }  | element text:sender-street { common-field-fixed-attlist, text }  | element text:sender-city { common-field-fixed-attlist, text }  | element text:sender-postal-code { common-field-fixed-attlist, text }  | element text:sender-country { common-field-fixed-attlist, text }  | element text:sender-state-or-province {      common-field-fixed-attlist, text    }  | element text:author-name { common-field-fixed-attlist, text }  | element text:author-initials { common-field-fixed-attlist, text }  | element text:chapter { text-chapter-attlist, text }  | element text:file-name { text-file-name-attlist, text }  | element text:template-name { text-template-name-attlist, text }  | element text:sheet-name { text }  | 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    }  | element text:variable-get {      (common-field-name-attlist       & common-field-display-value-formula-attlist       & common-field-data-style-name-attlist),      text    }  | 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    }  | element text:user-field-get {      (common-field-name-attlist       & common-field-display-value-formula-none-attlist       & common-field-data-style-name-attlist),      text    }  | element text:user-field-input {      (common-field-name-attlist       & common-field-description-attlist       & common-field-data-style-name-attlist),      text    }  | element text:sequence {      (common-field-name-attlist       & common-field-formula-attlist       & common-field-num-format-attlist       & text-sequence-ref-name),      text    }  | 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    }  | element text:text-input { common-field-description-attlist, text }  | element text:initial-creator { common-field-fixed-attlist, text }  | element text:creation-date {      (common-field-fixed-attlist       & common-field-data-style-name-attlist       & attribute text:date-value { dateOrDateTime }?),      text    }  | element text:creation-time {      (common-field-fixed-attlist       & common-field-data-style-name-attlist       & attribute text:time-value { timeOrDateTime }?),      text    }  | element text:description { common-field-fixed-attlist, text }  | 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    }  | element text:print-time {      (common-field-fixed-attlist       & common-field-data-style-name-attlist       & attribute text:time-value { time }?),      text    }  | element text:print-date {      (common-field-fixed-attlist       & common-field-data-style-name-attlist       & attribute text:date-value { date }?),      text    }  | element text:printed-by { common-field-fixed-attlist, text }  | element text:title { common-field-fixed-attlist, text }  | element text:subject { common-field-fixed-attlist, text }  | element text:keywords { common-field-fixed-attlist, text }  | element text:editing-cycles { common-field-fixed-attlist, text }  | element text:editing-duration {      (common-field-fixed-attlist       & common-field-data-style-name-attlist       & attribute text:duration { duration }?),      text    }  | element text:modification-time {      (common-field-fixed-attlist       & common-field-data-style-name-attlist       & attribute text:time-value { time }?),      text    }  | element text:modification-date {      (common-field-fixed-attlist       & common-field-data-style-name-attlist       & attribute text:date-value { date }?),      text    }  | element text:creator { common-field-fixed-attlist, text }  | 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    }  | element text:database-display {      text-database-display-attlist, text    }  | element text:database-next { text-database-next-attlist }  | element text:database-row-select {      text-database-row-select-attlist    }  | element text:database-row-number {      (common-field-database-table       & common-field-num-format-attlist       & attribute text:value { nonNegativeInteger }?),      text    }  | element text:database-name { common-field-database-table, text }  | element text:page-variable-set {      text-set-page-variable-attlist, text    }  | element text:page-variable-get {      text-get-page-variable-attlist, text    }  | element text:placeholder { text-placeholder-attlist, text }  | element text:conditional-text {      text-conditional-text-attlist, text    }  | element text:hidden-text { text-hidden-text-attlist, text }  | element text:reference-ref | text:bookmark-ref {      text-common-ref-content & text-bookmark-ref-content    }  | element text:note-ref {      text-common-ref-content & text-note-ref-content    }  | element text:sequence-ref {      text-common-ref-content & text-sequence-ref-content    }  | element text:script {      ((attribute xlink:type { "simple" },        attribute xlink:href { anyIRI })       | text)      & attribute script:language { \string }?    }  | element text:execute-macro {      attribute text:name { \string }?,      office-event-listeners?,      text    }  | element text:hidden-paragraph {      text-hidden-paragraph-attlist, text    }  | element text:dde-connection {      attribute text:connection-name { \string },      text    }  | element text:measure {      attribute text:kind { "value" | "unit" | "gap" },      text    }  | element text:table-formula {      (common-field-formula-attlist       & common-field-display-value-formula-attlist       & common-field-data-style-name-attlist),      text    }  | element text:meta-field {      text-meta-field-attlist, paragraph-content-or-hyperlink*    }  | element text:toc-mark-start { text-toc-mark-start-attrs }  | element text:toc-mark-end { text-id }  | element text:toc-mark {      attribute text:string-value { \string },      text-outline-level    }  | element text:user-index-mark-start {      text-id, text-outline-level, text-index-name    }  | element text:user-index-mark-end { text-id }  | element text:user-index-mark {      attribute text:string-value { \string },      text-outline-level,      text-index-name    }  | element text:alphabetical-index-mark-start {      text-id, text-alphabetical-index-mark-attrs    }  | element text:alphabetical-index-mark-end { text-id }  | element text:alphabetical-index-mark {      attribute text:string-value { \string },      text-alphabetical-index-mark-attrs    }  | 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    }  | element presentation:header { empty }  | element presentation:footer { empty }  | element presentation:date-time { empty }text-tab-attr = attribute text:tab-ref { nonNegativeInteger }?text-a =  element text:a {    text-a-attlist, office-event-listeners?, paragraph-content*  }text-a-attlist =  attribute office:name { \string }?  & attribute office:title { \string }?  & attribute xlink:type { "simple" }  & attribute xlink:href { anyIRI }  & attribute xlink:actuate { "onRequest" }?  & attribute office:target-frame-name { targetFrameName }?  & attribute xlink:show { "new" | "replace" }?  & attribute text:style-name { styleNameRef }?  & attribute text:visited-style-name { styleNameRef }?text-meta-attlist = common-in-content-meta-attlist? & xml-id?text-bookmark = element text:bookmark { text-bookmark-attlist, empty }text-bookmark-start =  element text:bookmark-start { text-bookmark-start-attlist, empty }text-bookmark-end =  element text:bookmark-end { text-bookmark-end-attlist, empty }text-bookmark-attlist =  attribute text:name { \string }  & xml-id?text-bookmark-start-attlist =  attribute text:name { \string }  & xml-id?  & common-in-content-meta-attlist?text-bookmark-end-attlist = attribute text:name { \string }text-note-class = attribute text:note-class { "footnote" | "endnote" }text-date-attlist =  (common-field-fixed-attlist & common-field-data-style-name-attlist)  & attribute text:date-value { dateOrDateTime }?  & attribute text:date-adjust { duration }?text-time-attlist =  (common-field-fixed-attlist & common-field-data-style-name-attlist)  & attribute text:time-value { timeOrDateTime }?  & attribute text:time-adjust { duration }?text-page-number-attlist =  (common-field-num-format-attlist & common-field-fixed-attlist)  & attribute text:page-adjust { integer }?  & attribute text:select-page { "previous" | "current" | "next" }?text-page-continuation-attlist =  attribute text:select-page { "previous" | "next" }  & attribute text:string-value { \string }?text-chapter-attlist =  attribute text:display {    "name"    | "number"    | "number-and-name"    | "plain-number-and-name"    | "plain-number"  }  & attribute text:outline-level { nonNegativeInteger }text-file-name-attlist =  attribute text:display {    "full" | "path" | "name" | "name-and-extension"  }?  & common-field-fixed-attlisttext-template-name-attlist =  attribute text:display {    "full" | "path" | "name" | "name-and-extension" | "area" | "title"  }?text-variable-decl =  element text:variable-decl {    common-field-name-attlist, common-value-type-attlist  }text-user-field-decl =  element text:user-field-decl {    common-field-name-attlist,    common-field-formula-attlist?,    common-value-and-type-attlist  }text-sequence-decl =  element text:sequence-decl { text-sequence-decl-attlist }text-sequence-decl-attlist =  common-field-name-attlist  & attribute text:display-outline-level { nonNegativeInteger }  & attribute text:separation-character { character }?text-sequence-ref-name = attribute text:ref-name { \string }?common-field-database-table =  common-field-database-table-attlist, common-field-database-namecommon-field-database-name =  attribute text:database-name { \string }?  | form-connection-resourcecommon-field-database-table-attlist =  attribute text:table-name { \string }  & attribute text:table-type { "table" | "query" | "command" }?text-database-display-attlist =  common-field-database-table  & common-field-data-style-name-attlist  & attribute text:column-name { \string }text-database-next-attlist =  common-field-database-table  & attribute text:condition { \string }?text-database-row-select-attlist =  common-field-database-table  & attribute text:condition { \string }?  & attribute text:row-number { nonNegativeInteger }?text-set-page-variable-attlist =  attribute text:active { boolean }?  & attribute text:page-adjust { integer }?text-get-page-variable-attlist = common-field-num-format-attlisttext-placeholder-attlist =  attribute text:placeholder-type {    "text" | "table" | "text-box" | "image" | "object"  }  & common-field-description-attlisttext-conditional-text-attlist =  attribute text:condition { \string }  & attribute text:string-value-if-true { \string }  & attribute text:string-value-if-false { \string }  & attribute text:current-value { boolean }?text-hidden-text-attlist =  attribute text:condition { \string }  & attribute text:string-value { \string }  & attribute text:is-hidden { boolean }?text-common-ref-content =  text  & attribute text:ref-name { \string }?text-bookmark-ref-content =  attribute text:reference-format {    common-ref-format-values    | "number-no-superior"    | "number-all-superior"    | "number"  }?text-note-ref-content =  attribute text:reference-format { common-ref-format-values }?  & text-note-classtext-sequence-ref-content =  attribute text:reference-format {    common-ref-format-values    | "category-and-value"    | "caption"    | "value"  }?common-ref-format-values = "page" | "chapter" | "direction" | "text"text-hidden-paragraph-attlist =  attribute text:condition { \string }  & attribute text:is-hidden { boolean }?text-meta-field-attlist = xml-id & common-field-data-style-name-attlistcommon-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 { \string }?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 { \string }?common-field-data-style-name-attlist =  attribute style:data-style-name { styleNameRef }?common-field-num-format-attlist = common-num-format-attlist?text-toc-mark-start-attrs = text-id, text-outline-leveltext-outline-level = attribute text:outline-level { positiveInteger }?text-id = attribute text:id { \string }text-index-name = attribute text:index-name { \string }text-alphabetical-index-mark-attrs =  attribute text:key1 { \string }?  & attribute text:key2 { \string }?  & attribute text:string-value-phonetic { \string }?  & attribute text:key1-phonetic { \string }?  & attribute text:key2-phonetic { \string }?  & attribute text:main-entry { boolean }?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 {    common-section-attlist, index-content-main*  }text-table-of-content =  element text:table-of-content {    common-section-attlist,    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 }?  & attribute text:use-outline-level { boolean }?  & attribute text:use-index-marks { boolean }?  & attribute text:use-index-source-styles { boolean }?  & attribute text:index-scope { "document" | "chapter" }?  & 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 }  & attribute text:style-name { styleNameRef }text-illustration-index =  element text:illustration-index {    common-section-attlist,    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-attr  & text-relative-tab-stop-position-attr  & attribute text:use-caption { boolean }?  & attribute text:caption-sequence-name { \string }?  & attribute text:caption-sequence-format {      "text" | "category-and-value" | "caption"    }?text-index-scope-attr =  attribute text:index-scope { "document" | "chapter" }?text-relative-tab-stop-position-attr =  attribute text:relative-tab-stop-position { boolean }?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-chapter   | 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 {    common-section-attlist, 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 {    common-section-attlist, 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-attr  & text-relative-tab-stop-position-attr  & attribute text:use-spreadsheet-objects { boolean }?  & attribute text:use-math-objects { boolean }?  & attribute text:use-draw-objects { boolean }?  & attribute text:use-chart-objects { boolean }?  & 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 {    common-section-attlist, 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:use-index-marks { boolean }?  & attribute text:use-index-source-styles { boolean }?  & attribute text:use-graphics { boolean }?  & attribute text:use-tables { boolean }?  & attribute text:use-floating-frames { boolean }?  & attribute text:use-objects { boolean }?  & attribute text:copy-outline-levels { boolean }?  & attribute text:index-name { \string }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 }  & attribute text:style-name { styleNameRef }text-alphabetical-index =  element text:alphabetical-index {    common-section-attlist,    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-attr  & attribute text:ignore-case { boolean }?  & attribute text:main-entry-style-name { styleNameRef }?  & attribute text:alphabetical-separators { boolean }?  & attribute text:combine-entries { boolean }?  & attribute text:combine-entries-with-dash { boolean }?  & attribute text:combine-entries-with-pp { boolean }?  & attribute text:use-keys-as-entries { boolean }?  & attribute text:capitalize-entries { boolean }?  & attribute text:comma-separated { boolean }?  & attribute fo:language { languageCode }?  & attribute fo:country { countryCode }?  & attribute fo:script { scriptCode }?  & attribute style:rfc-language-tag { language }?  & attribute text:sort-algorithm { \string }?text-alphabetical-index-auto-mark-file =  element text:alphabetical-index-auto-mark-file {    attribute xlink:type { "simple" },    attribute xlink:href { anyIRI }  }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" }  & attribute text:style-name { styleNameRef }text-bibliography =  element text:bibliography {    common-section-attlist, 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 }  & 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 =  attribute text:display {    "name"    | "number"    | "number-and-name"    | "plain-number"    | "plain-number-and-name"  }?  & attribute text:outline-level { positiveInteger }?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 }?  & 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 }?  & (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-title?,    table-desc?,    table-table-source?,    office-dde-source?,    table-scenario?,    office-forms?,    table-shapes?,    table-columns-and-groups,    table-rows-and-groups,    table-named-expressions?  }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 }?  & attribute table:style-name { styleNameRef }?  & attribute table:template-name { \string }?  & attribute table:use-first-row-styles { boolean }?  & attribute table:use-last-row-styles { boolean }?  & attribute table:use-first-column-styles { boolean }?  & attribute table:use-last-column-styles { boolean }?  & attribute table:use-banding-rows-styles { boolean }?  & attribute table:use-banding-columns-styles { boolean }?  & attribute table:protected { boolean }?  & attribute table:protection-key { \string }?  & attribute table:protection-key-digest-algorithm { anyIRI }?  & attribute table:print { boolean }?  & attribute table:print-ranges { cellRangeAddressList }?  & xml-id?  & attribute table:is-sub-table { boolean }?table-title = element table:title { text }table-desc = element table:desc { text }table-table-row =  element table:table-row {    table-table-row-attlist,    (table-table-cell | table-covered-table-cell)+  }table-table-row-attlist =  attribute table:number-rows-repeated { positiveInteger }?  & attribute table:style-name { styleNameRef }?  & attribute table:default-cell-style-name { styleNameRef }?  & attribute table:visibility { table-visibility-value }?  & xml-id?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 =  attribute table:number-columns-repeated { positiveInteger }?  & attribute table:style-name { styleNameRef }?  & attribute table:content-validation-name { \string }?  & attribute table:formula { \string }?  & common-value-and-type-attlist?  & attribute table:protect { boolean }?  & attribute table:protected { boolean }?  & xml-id?  & common-in-content-meta-attlist?table-table-cell-attlist-extra =  attribute table:number-columns-spanned { positiveInteger }?  & attribute table:number-rows-spanned { positiveInteger }?  & attribute table:number-matrix-columns-spanned { positiveInteger }?  & attribute table:number-matrix-rows-spanned { positiveInteger }?table-table-column =  element table:table-column { table-table-column-attlist, empty }table-table-column-attlist =  attribute table:number-columns-repeated { positiveInteger }?  & attribute table:style-name { styleNameRef }?  & attribute table:visibility { table-visibility-value }?  & attribute table:default-cell-style-name { styleNameRef }?  & xml-id?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 = 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 = attribute table:display { boolean }?cellAddress =  xsd:string {    pattern = "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+"  }cellRangeAddress =  xsd:string {    pattern =      "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+)?"  }  | xsd:string {      pattern =        "($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+:($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+"    }  | xsd:string {      pattern =        "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+"    }cellRangeAddressList =  xsd:string  >> dc:description [       'Value is a space separated list of "cellRangeAddress" patterns'     ]table-table-source =  element table:table-source {    table-table-source-attlist, table-linked-source-attlist, empty  }table-table-source-attlist =  attribute table:mode { "copy-all" | "copy-results-only" }?  & attribute table:table-name { \string }?table-linked-source-attlist =  attribute xlink:type { "simple" }  & attribute xlink:href { anyIRI }  & attribute xlink:actuate { "onRequest" }?  & attribute table:filter-name { \string }?  & attribute table:filter-options { \string }?  & attribute table:refresh-delay { duration }?table-scenario =  element table:scenario { table-scenario-attlist, empty }table-scenario-attlist =  attribute table:scenario-ranges { cellRangeAddressList }  & attribute table:is-active { boolean }  & attribute table:display-border { boolean }?  & attribute table:border-color { color }?  & attribute table:copy-back { boolean }?  & attribute table:copy-styles { boolean }?  & attribute table:copy-formulas { boolean }?  & attribute table:comment { \string }?  & 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 }  & 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"  }  & 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 }?  & attribute table:direction {      "from-another-table" | "to-another-table" | "from-same-table"    }  & attribute table:contains-error { boolean }?table-highlighted-range-attlist-invalid =  attribute table:marked-invalid { boolean }office-spreadsheet-attlist =  attribute table:structure-protected { boolean }?,  attribute table:protection-key { \string }?,  attribute table:protection-key-digest-algorithm { anyIRI }?table-calculation-settings =  element table:calculation-settings {    table-calculation-setting-attlist,    table-null-date?,    table-iteration?  }table-calculation-setting-attlist =  attribute table:case-sensitive { boolean }?  & attribute table:precision-as-shown { boolean }?  & attribute table:search-criteria-must-apply-to-whole-cell {      boolean    }?  & attribute table:automatic-find-labels { boolean }?  & attribute table:use-regular-expressions { boolean }?  & attribute table:use-wildcards { boolean }?  & attribute table:null-year { positiveInteger }?table-null-date =  element table:null-date {    attribute table:value-type { "date" }?,    attribute table:date-value { date }?,    empty  }table-iteration =  element table:iteration {    attribute table:status { "enable" | "disable" }?,    attribute table:steps { positiveInteger }?,    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 }  & attribute table:condition { \string }?  & attribute table:base-cell-address { cellAddress }?  & attribute table:allow-empty-cell { boolean }?  & attribute table:display-list {      "none" | "unsorted" | "sort-ascending"    }?table-help-message =  element table:help-message {    attribute table:title { \string }?,    attribute table:display { boolean }?,    text-p*  }table-error-message =  element table:error-message {    attribute table:title { \string }?,    attribute table:display { boolean }?,    attribute table:message-type {      "stop" | "warning" | "information"    }?,    text-p*  }table-error-macro =  element table:error-macro {    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 }  & attribute table:data-cell-range-address { cellRangeAddress }  & 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 }?,  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 }?  & attribute table:is-selection { boolean }?  & attribute table:on-update-keep-styles { boolean }?  & attribute table:on-update-keep-size { boolean }?  & attribute table:has-persistent-data { boolean }?  & attribute table:orientation { "column" | "row" }?  & attribute table:contains-header { boolean }?  & attribute table:display-filter-buttons { boolean }?  & attribute table:target-range-address { cellRangeAddress }  & 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 }  & attribute table:sql-statement { \string }  & 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 }  & 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 }  & attribute table:query-name { \string }table-sort = element table:sort { table-sort-attlist, table-sort-by+ }table-sort-attlist =  attribute table:bind-styles-to-content { boolean }?  & attribute table:target-range-address { cellRangeAddress }?  & attribute table:case-sensitive { boolean }?  & attribute table:language { languageCode }?  & attribute table:country { countryCode }?  & attribute table:script { scriptCode }?  & attribute table:rfc-language-tag { language }?  & attribute table:algorithm { \string }?  & attribute table:embedded-number-behavior {      "alpha-numeric" | "integer" | "double"    }?table-sort-by = element table:sort-by { table-sort-by-attlist, empty }table-sort-by-attlist =  attribute table:field-number { nonNegativeInteger }  & attribute table:data-type {      "text" | "number" | "automatic" | \string    }?  & 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 =  attribute table:bind-styles-to-content { boolean }?  & attribute table:case-sensitive { boolean }?  & attribute table:page-breaks-on-group-change { boolean }?table-sort-groups =  element table:sort-groups { table-sort-groups-attlist, empty }table-sort-groups-attlist =  attribute table:data-type {    "text" | "number" | "automatic" | \string  }?  & 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 }  & attribute table:function {      "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 }?  & attribute table:condition-source { "self" | "cell-range" }?  & attribute table:condition-source-range-address { cellRangeAddress }?  & 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, table-filter-set-item*  }table-filter-condition-attlist =  attribute table:field-number { nonNegativeInteger }  & attribute table:value { \string | double }  & attribute table:operator { \string }  & attribute table:case-sensitive { \string }?  & attribute table:data-type { "text" | "number" }?table-filter-set-item =  element table:filter-set-item {    attribute table:value { \string },    empty  }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 }  & attribute table:application-data { \string }?  & attribute table:grand-total { "none" | "row" | "column" | "both" }?  & attribute table:ignore-empty-rows { boolean }?  & attribute table:identify-categories { boolean }?  & attribute table:target-range-address { cellRangeAddress }  & attribute table:buttons { cellRangeAddressList }?  & attribute table:show-filter-button { boolean }?  & 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 }  & attribute table:source-name { \string }  & attribute table:object-name { \string }  & attribute table:user-name { \string }?  & 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 }  & (attribute table:orientation {       "row" | "column" | "data" | "hidden"     }     | (attribute table:orientation { "page" },        attribute table:selected-page { \string }))  & attribute table:is-data-layout-field { \string }?  & attribute table:function {      "auto"      | "average"      | "count"      | "countnums"      | "max"      | "min"      | "product"      | "stdev"      | "stdevp"      | "sum"      | "var"      | "varp"      | \string    }?  & 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 }  & attribute table:display { boolean }?  & 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 }  & attribute table:data-field { \string }  & attribute table:member-count { nonNegativeInteger }  & 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" })  & 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"  }  & 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 }  & ((attribute table:member-type { "named" },      attribute table:member-name { \string })     | attribute table:member-type { "previous" | "next" })  & 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 }  & (attribute table:date-start { dateOrDateTime | "auto" }     | attribute table:start { double | "auto" })  & (attribute table:date-end { dateOrDateTime | "auto" }     | attribute table:end { double | "auto" })  & attribute table:step { double }  & 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 {    "average"    | "count"    | "countnums"    | "max"    | "min"    | "product"    | "stdev"    | "stdevp"    | "sum"    | "var"    | "varp"    | \string  }  & attribute table:source-cell-range-addresses { cellRangeAddressList }  & attribute table:target-cell-address { cellAddress }  & attribute table:use-labels { "none" | "row" | "column" | "both" }?  & 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 =  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" }  & attribute table:position { integer }  & attribute table:count { positiveInteger }?  & 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" }  & attribute table:position { integer }  & attribute table:table { integer }?  & 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 }  & 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 }?  & attribute table:matrix-covered { boolean }?  & 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 }  & attribute table:acceptance-state {      "accepted" | "rejected" | "pending"    }?  & 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 }?  & attribute style:page-layout-name { styleNameRef }  & 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 }  & attribute draw:protected { boolean }?  & attribute draw:display { "always" | "screen" | "printer" | "none" }?draw-page =  element draw:page {    common-presentation-header-footer-attlist,    draw-page-attlist,    svg-title?,    svg-desc?,    draw-layer-set?,    office-forms?,    shape*,    (presentation-animations | animation-element)?,    presentation-notes?  }draw-page-attlist =  attribute draw:name { \string }?  & attribute draw:style-name { styleNameRef }?  & attribute draw:master-page-name { styleNameRef }  & attribute presentation:presentation-page-layout-name {      styleNameRef    }?  & (xml-id,     attribute draw:id { NCName }?)?  & attribute draw:nav-order { IDREFS }?common-presentation-header-footer-attlist =  attribute presentation:use-header-name { \string }?  & attribute presentation:use-footer-name { \string }?  & attribute presentation:use-date-time-name { \string }?shape = shape-instance | draw-ashape-instance =  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 }?  | (attribute svg:rx { nonNegativeLength }?,     attribute svg:ry { 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 }  & 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))  & 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-pos-attlist)     | (common-draw-position-attlist, common-draw-size-attlist)),    common-draw-circle-ellipse-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-pos-attlist =  attribute svg:cx { coordinate },  attribute svg:cy { coordinate }draw-circle-attlist = attribute svg:r { length }common-draw-circle-ellipse-attlist =  attribute draw:kind { "full" | "section" | "cut" | "arc" }?  & attribute draw:start-angle { angle }?  & attribute draw:end-angle { angle }?draw-ellipse =  element draw:ellipse {    ((draw-ellipse-attlist, common-draw-circle-ellipse-pos-attlist)     | (common-draw-position-attlist, common-draw-size-attlist)),    common-draw-circle-ellipse-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,    common-draw-viewbox-attlist,    svg-title?,    svg-desc?,    office-event-listeners?,    draw-glue-point*,    draw-text  }draw-connector-attlist =  attribute draw:type { "standard" | "lines" | "line" | "curve" }?  & (attribute svg:x1 { coordinate },     attribute svg:y1 { coordinate })?  & attribute draw:start-shape { IDREF }?  & attribute draw:start-glue-point { nonNegativeInteger }?  & (attribute svg:x2 { coordinate },     attribute svg:y2 { coordinate })?  & attribute draw:end-shape { IDREF }?  & attribute draw:end-glue-point { nonNegativeInteger }?  & attribute draw:line-skew {      list { length, (length, length?)? }    }?  & attribute svg:d { pathData }?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 })?  & 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 }  & 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 { \string }?common-draw-id-attlist =  (xml-id,   attribute draw:id { NCName }?)?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 }?  & attribute table:table-background { boolean }?  & common-text-anchor-attlistcommon-text-anchor-attlist =  attribute text:anchor-type {    "page" | "frame" | "paragraph" | "char" | "as-char"  }?  & 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 }  & attribute svg:x { distance | percent }  & attribute svg:y { distance | percent }  & attribute draw:align {      "top-left"      | "top"      | "top-right"      | "left"      | "center"      | "right"      | "bottom-left"      | "bottom-right"    }?  & 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     | table-table)*,    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 }?  & attribute draw:corner-radius { nonNegativeLength }?  & attribute fo:min-height { length | percent }?  & attribute fo:min-width { length | percent }?  & attribute fo:max-height { length | percent }?  & attribute fo:max-width { length | percent }?  & (xml-id,     attribute text:id { NCName }?)?draw-image =  element draw:image {    draw-image-attlist,    (common-draw-data-attlist | office-binary-data),    draw-text  }common-draw-data-attlist =  attribute xlink:type { "simple" },  attribute xlink:href { anyIRI },  attribute xlink:show { "embed" }?,  attribute xlink:actuate { "onLoad" }?office-binary-data = element office:binary-data { base64Binary }draw-image-attlist =  attribute draw:filter-name { \string }?  & xml-id?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 {    cellRangeAddressList | \string  }?  & xml-id?draw-object-ole-attlist =  attribute draw:class-id { \string }?  & xml-id?draw-applet =  element draw:applet {    draw-applet-attlist, common-draw-data-attlist?, draw-param*  }draw-applet-attlist =  attribute draw:code { \string }?  & attribute draw:object { \string }?  & attribute draw:archive { \string }?  & attribute draw:may-script { boolean }?  & xml-id?draw-plugin =  element draw:plugin {    draw-plugin-attlist, common-draw-data-attlist, draw-param*  }draw-plugin-attlist =  attribute draw:mime-type { \string }?  & xml-id?draw-param = element draw:param { draw-param-attlist, empty }draw-param-attlist =  attribute draw:name { \string }?  & attribute draw:value { \string }?draw-floating-frame =  element draw:floating-frame {    draw-floating-frame-attlist, common-draw-data-attlist  }draw-floating-frame-attlist =  attribute draw:frame-name { \string }?  & xml-id?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, shape-instance }draw-a-attlist =  attribute xlink:type { "simple" }  & attribute xlink:href { anyIRI }  & attribute xlink:actuate { "onRequest" }?  & attribute office:target-frame-name { targetFrameName }?  & attribute xlink:show { "new" | "replace" }?  & attribute office:name { \string }?  & attribute office:title { \string }?  & attribute office:server-map { boolean }?  & xml-id?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:type { "simple" },   attribute xlink:href { anyIRI },   attribute office:target-frame-name { targetFrameName }?,   attribute xlink:show { "new" | "replace" }?)?  & attribute office:name { \string }?  & 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*,    draw-glue-point*  }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 }?  & attribute dr3d:projection { "parallel" | "perspective" }?  & attribute dr3d:distance { length }?  & attribute dr3d:focal-length { length }?  & attribute dr3d:shadow-slant { angle }?  & attribute dr3d:shade-mode {      "flat" | "phong" | "gouraud" | "draft"    }?  & attribute dr3d:ambient-color { color }?  & attribute dr3d:lighting-mode { boolean }?common-dr3d-transform-attlist = attribute dr3d:transform { \string }?dr3d-light = element dr3d:light { dr3d-light-attlist, empty }dr3d-light-attlist =  attribute dr3d:diffuse-color { color }?  & attribute dr3d:direction { vector3D }  & attribute dr3d:enabled { boolean }?  & 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 }?  & 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 }?  & attribute draw:data { \string }?draw-enhanced-geometry =  element draw:enhanced-geometry {    draw-enhanced-geometry-attlist, draw-equation*, draw-handle*  }draw-enhanced-geometry-attlist =  attribute draw:type { custom-shape-type }?  & attribute svg:viewBox {      list { integer, integer, integer, integer }    }?  & attribute draw:mirror-vertical { boolean }?  & attribute draw:mirror-horizontal { boolean }?  & attribute draw:text-rotate-angle { angle }?  & attribute draw:extrusion-allowed { boolean }?  & attribute draw:text-path-allowed { boolean }?  & attribute draw:concentric-gradient-fill-allowed { boolean }?  & attribute draw:extrusion { boolean }?  & attribute draw:extrusion-brightness { zeroToHundredPercent }?  & attribute draw:extrusion-depth {      list { length, double }    }?  & attribute draw:extrusion-diffusion { percent }?  & attribute draw:extrusion-number-of-line-segments { integer }?  & attribute draw:extrusion-light-face { boolean }?  & attribute draw:extrusion-first-light-harsh { boolean }?  & attribute draw:extrusion-second-light-harsh { boolean }?  & attribute draw:extrusion-first-light-level { zeroToHundredPercent }?  & attribute draw:extrusion-second-light-level {      zeroToHundredPercent    }?  & attribute draw:extrusion-first-light-direction { vector3D }?  & attribute draw:extrusion-second-light-direction { vector3D }?  & attribute draw:extrusion-metal { boolean }?  & attribute dr3d:shade-mode {      "flat" | "phong" | "gouraud" | "draft"    }?  & attribute draw:extrusion-rotation-angle {      list { angle, angle }    }?  & attribute draw:extrusion-rotation-center { vector3D }?  & attribute draw:extrusion-shininess { zeroToHundredPercent }?  & attribute draw:extrusion-skew {      list { double, angle }    }?  & attribute draw:extrusion-specularity { zeroToHundredPercent }?  & attribute dr3d:projection { "parallel" | "perspective" }?  & attribute draw:extrusion-viewpoint { point3D }?  & attribute draw:extrusion-origin {      list { extrusionOrigin, extrusionOrigin }    }?  & attribute draw:extrusion-color { boolean }?  & attribute draw:enhanced-path { \string }?  & attribute draw:path-stretchpoint-x { double }?  & attribute draw:path-stretchpoint-y { double }?  & attribute draw:text-areas { \string }?  & attribute draw:glue-points { \string }?  & attribute draw:glue-point-type {      "none" | "segments" | "rectangle"    }?  & attribute draw:glue-point-leaving-directions { \string }?  & attribute draw:text-path { boolean }?  & attribute draw:text-path-mode { "normal" | "path" | "shape" }?  & attribute draw:text-path-scale { "path" | "shape" }?  & attribute draw:text-path-same-letter-heights { boolean }?  & attribute draw:modifiers { \string }?custom-shape-type = "non-primitive" | \stringpoint3D =  xsd:string {    pattern =      "\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))){2}[ ]*\)"  }extrusionOrigin =  xsd:double { minInclusive = "-0.5" maxInclusive = "0.5" }draw-equation = element draw:equation { draw-equation-attlist, empty }draw-equation-attlist =  attribute draw:name { \string }?  & attribute draw:formula { \string }?draw-handle = element draw:handle { draw-handle-attlist, empty }draw-handle-attlist =  attribute draw:handle-mirror-vertical { boolean }?  & attribute draw:handle-mirror-horizontal { boolean }?  & attribute draw:handle-switched { boolean }?  & attribute draw:handle-position { \string }  & attribute draw:handle-range-x-minimum { \string }?  & attribute draw:handle-range-x-maximum { \string }?  & attribute draw:handle-range-y-minimum { \string }?  & attribute draw:handle-range-y-maximum { \string }?  & attribute draw:handle-polar { \string }?  & attribute draw:handle-radius-range-minimum { \string }?  & attribute draw:handle-radius-range-maximum { \string }?presentation-shape-attlist =  attribute presentation:class { presentation-classes }?  & attribute presentation:placeholder { boolean }?  & attribute presentation:user-transformed { boolean }?presentation-classes =  "title"  | "outline"  | "subtitle"  | "text"  | "graphic"  | "object"  | "chart"  | "table"  | "orgchart"  | "page"  | "notes"  | "handout"  | "header"  | "footer"  | "date-time"  | "page-number"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:type { "simple" },    attribute xlink:href { anyIRI },    attribute xlink:actuate { "onRequest" }?,    attribute xlink:show { "new" | "replace" }?,    empty  }presentation-sound-attlist =  attribute presentation:play-full { boolean }?  & xml-id?presentation-show-shape =  element presentation:show-shape {    common-presentation-effect-attlist, presentation-sound?  }common-presentation-effect-attlist =  attribute draw:shape-id { IDREF }  & attribute presentation:effect { presentationEffects }?  & attribute presentation:direction { presentationEffectDirections }?  & attribute presentation:speed { presentationSpeeds }?  & attribute presentation:delay { duration }?  & attribute presentation:start-scale { percent }?  & attribute presentation:path-id { \string }?presentationEffects =  "none"  | "fade"  | "move"  | "stripes"  | "open"  | "close"  | "dissolve"  | "wavyline"  | "random"  | "lines"  | "laser"  | "appear"  | "hide"  | "move-short"  | "checkerboard"  | "rotate"  | "stretch"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"presentationSpeeds = "slow" | "medium" | "fast"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 }  & attribute draw:color { color }presentation-play =  element presentation:play { presentation-play-attlist, empty }presentation-play-attlist =  attribute draw:shape-id { IDREF },  attribute presentation:speed { presentationSpeeds }?presentation-animation-group =  element presentation:animation-group {    presentation-animation-elements*  }common-anim-attlist =  attribute presentation:node-type {    "default"    | "on-click"    | "with-previous"    | "after-previous"    | "timing-root"    | "main-sequence"    | "interactive-sequence"  }?  & attribute presentation:preset-id { \string }?  & attribute presentation:preset-sub-type { \string }?  & attribute presentation:preset-class {      "custom"      | "entrance"      | "exit"      | "emphasis"      | "motion-path"      | "ole-action"      | "media-call"    }?  & attribute presentation:master-element { IDREF }?  & attribute presentation:group-id { \string }?  & (xml-id,     attribute anim:id { NCName }?)?presentation-event-listener =  element presentation:event-listener {    presentation-event-listener-attlist, presentation-sound?  }presentation-event-listener-attlist =  attribute script:event-name { \string }  & attribute presentation:action {      "none"      | "previous-page"      | "next-page"      | "first-page"      | "last-page"      | "hide"      | "stop"      | "execute"      | "show"      | "verb"      | "fade-out"      | "sound"      | "last-visited-page"    }  & attribute presentation:effect { presentationEffects }?  & attribute presentation:direction { presentationEffectDirections }?  & attribute presentation:speed { presentationSpeeds }?  & attribute presentation:start-scale { percent }?  & (attribute xlink:type { "simple" },     attribute xlink:href { anyIRI },     attribute xlink:show { "embed" }?,     attribute xlink:actuate { "onRequest" }?)?  & attribute presentation:verb { nonNegativeInteger }?presentation-decls = presentation-decl*presentation-decl =  element presentation:header-decl {    presentation-header-decl-attlist, text  }  | element presentation:footer-decl {      presentation-footer-decl-attlist, text    }  | element presentation:date-time-decl {      presentation-date-time-decl-attlist, text    }presentation-header-decl-attlist =  attribute presentation:name { \string }presentation-footer-decl-attlist =  attribute presentation:name { \string }presentation-date-time-decl-attlist =  attribute presentation:name { \string }  & attribute presentation:source { "fixed" | "current-date" }  & attribute style:data-style-name { styleNameRef }?presentation-settings =  element presentation:settings {    presentation-settings-attlist, presentation-show*  }?presentation-settings-attlist =  attribute presentation:start-page { \string }?  & attribute presentation:show { \string }?  & attribute presentation:full-screen { boolean }?  & attribute presentation:endless { boolean }?  & attribute presentation:pause { duration }?  & attribute presentation:show-logo { boolean }?  & attribute presentation:force-manual { boolean }?  & attribute presentation:mouse-visible { boolean }?  & attribute presentation:mouse-as-pen { boolean }?  & attribute presentation:start-with-navigator { boolean }?  & attribute presentation:animations { "enabled" | "disabled" }?  & attribute presentation:transition-on-click {      "enabled" | "disabled"    }?  & attribute presentation:stay-on-top { boolean }?  & attribute presentation:show-end-of-presentation-slide { boolean }?presentation-show =  element presentation:show { presentation-show-attlist, empty }presentation-show-attlist =  attribute presentation:name { \string }  & attribute presentation:pages { \string }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 }  & common-draw-size-attlist  & attribute chart:column-mapping { \string }?  & attribute chart:row-mapping { \string }?  & attribute chart:style-name { styleNameRef }?  & (attribute xlink:type { "simple" },     attribute xlink:href { anyIRI })?  & xml-id?chart-title = element chart:title { chart-title-attlist, text-p? }chart-title-attlist =  attribute table:cell-range { cellRangeAddressList }?  & common-draw-position-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, text-p? }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"     }   | empty)  & common-draw-position-attlist  & (attribute style:legend-expansion { "wide" | "high" | "balanced" }     | (attribute style:legend-expansion { "custom" },        attribute style:legend-expansion-aspect-ratio { double })     | empty)  & 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-attlist  & attribute chart:style-name { styleNameRef }?  & attribute table:cell-range-address { cellRangeAddressList }?  & attribute chart:data-source-has-labels {      "none" | "row" | "column" | "both"    }?  & dr3d-scene-attlist  & common-dr3d-transform-attlist  & xml-id?chart-wall = element chart:wall { chart-wall-attlist, empty }chart-wall-attlist =  attribute svg:width { length }?  & attribute chart:style-name { styleNameRef }?chart-floor = element chart:floor { chart-floor-attlist, empty }chart-floor-attlist =  attribute svg:width { length }?  & 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 { chart-dimension }  & attribute chart:name { \string }?  & attribute chart:style-name { styleNameRef }?chart-dimension = "x" | "y" | "z"chart-categories =  element chart:categories {    attribute table:cell-range-address { cellRangeAddressList }?  }chart-grid = element chart:grid { chart-grid-attlist }chart-grid-attlist =  attribute chart:class { "major" | "minor" }?  & 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-data-label?  }chart-series-attlist =  attribute chart:values-cell-range-address { cellRangeAddressList }?  & attribute chart:label-cell-address { cellRangeAddressList }?  & attribute chart:class { namespacedToken }?  & attribute chart:attached-axis { \string }?  & attribute chart:style-name { styleNameRef }?  & xml-id?chart-domain =  element chart:domain {    attribute table:cell-range-address { cellRangeAddressList }?  }chart-data-point =  element chart:data-point {    chart-data-point-attlist, chart-data-label?  }chart-data-point-attlist =  attribute chart:repeated { positiveInteger }?  & attribute chart:style-name { styleNameRef }?  & xml-id?chart-data-label =  element chart:data-label { chart-data-label-attlist, text-p? }chart-data-label-attlist =  common-draw-position-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 }?  & attribute chart:dimension { chart-dimension }chart-regression-curve =  element chart:regression-curve {    chart-regression-curve-attlist, chart-equation?  }chart-regression-curve-attlist =  attribute chart:style-name { styleNameRef }?chart-equation =  element chart:equation { chart-equation-attlist, text-p? }chart-equation-attlist =  attribute chart:automatic-content { boolean }?  & attribute chart:display-r-square { boolean }?  & attribute chart:display-equation { boolean }?  & common-draw-position-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-database =  element office:database {    db-data-source,    db-forms?,    db-reports?,    db-queries?,    db-table-presentations?,    db-schema-definition?  }db-data-source =  element db:data-source {    db-data-source-attlist,    db-connection-data,    db-driver-settings?,    db-application-connection-settings?  }db-data-source-attlist = emptydb-connection-data =  element db:connection-data {    db-connection-data-attlist,    (db-database-description | db-connection-resource),    db-login?  }db-connection-data-attlist = emptydb-database-description =  element db:database-description {    db-database-description-attlist,    (db-file-based-database | db-server-database)  }db-database-description-attlist = emptydb-file-based-database =  element db:file-based-database { db-file-based-database-attlist }db-file-based-database-attlist =  attribute xlink:type { "simple" }  & attribute xlink:href { anyIRI }  & attribute db:media-type { \string }  & attribute db:extension { \string }?db-server-database =  element db:server-database { db-server-database-attlist, empty }db-server-database-attlist =  attribute db:type { namespacedToken }  & (db-host-and-port | db-local-socket-name)  & attribute db:database-name { \string }?db-host-and-port =  attribute db:hostname { \string },  attribute db:port { positiveInteger }?db-local-socket-name = attribute db:local-socket { \string }?db-connection-resource =  element db:connection-resource {    db-connection-resource-attlist, empty  }db-connection-resource-attlist =  attribute xlink:type { "simple" },  attribute xlink:href { anyIRI },  attribute xlink:show { "none" }?,  attribute xlink:actuate { "onRequest" }?db-login = element db:login { db-login-attlist, empty }db-login-attlist =  (attribute db:user-name { \string }   | attribute db:use-system-user { boolean })?  & attribute db:is-password-required { boolean }?  & attribute db:login-timeout { positiveInteger }?db-driver-settings =  element db:driver-settings {    db-driver-settings-attlist,    db-auto-increment?,    db-delimiter?,    db-character-set?,    db-table-settings?  }db-driver-settings-attlist =  db-show-deleted  & attribute db:system-driver-settings { \string }?  & attribute db:base-dn { \string }?  & db-is-first-row-header-line  & attribute db:parameter-name-substitution { boolean }?db-show-deleted = attribute db:show-deleted { boolean }?db-is-first-row-header-line =  attribute db:is-first-row-header-line { boolean }?db-auto-increment =  element db:auto-increment { db-auto-increment-attlist, empty }db-auto-increment-attlist =  attribute db:additional-column-statement { \string }?  & attribute db:row-retrieving-statement { \string }?db-delimiter = element db:delimiter { db-delimiter-attlist, empty }db-delimiter-attlist =  attribute db:field { \string }?  & attribute db:string { \string }?  & attribute db:decimal { \string }?  & attribute db:thousand { \string }?db-character-set =  element db:character-set { db-character-set-attlist, empty }db-character-set-attlist = attribute db:encoding { textEncoding }?db-table-settings = element db:table-settings { db-table-setting* }db-table-setting =  element db:table-setting {    db-table-setting-attlist, db-delimiter?, db-character-set?, empty  }db-table-setting-attlist = db-is-first-row-header-line, db-show-deleteddb-application-connection-settings =  element db:application-connection-settings {    db-application-connection-settings-attlist,    db-table-filter?,    db-table-type-filter?,    db-data-source-settings?  }db-application-connection-settings-attlist =  attribute db:is-table-name-length-limited { boolean }?  & attribute db:enable-sql92-check { boolean }?  & attribute db:append-table-alias-name { boolean }?  & attribute db:ignore-driver-privileges { boolean }?  & attribute db:boolean-comparison-mode {      "equal-integer"      | "is-boolean"      | "equal-boolean"      | "equal-use-only-zero"    }?  & attribute db:use-catalog { boolean }?  & attribute db:max-row-count { integer }?  & attribute db:suppress-version-columns { boolean }?db-table-filter =  element db:table-filter {    db-table-filter-attlist,    db-table-include-filter?,    db-table-exclude-filter?  }db-table-filter-attlist = emptydb-table-include-filter =  element db:table-include-filter {    db-table-include-filter-attlist, db-table-filter-pattern+  }db-table-include-filter-attlist = emptydb-table-exclude-filter =  element db:table-exclude-filter {    db-table-exclude-filter-attlist, db-table-filter-pattern+  }db-table-exclude-filter-attlist = emptydb-table-filter-pattern =  element db:table-filter-pattern {    db-table-filter-pattern-attlist, \string  }db-table-filter-pattern-attlist = emptydb-table-type-filter =  element db:table-type-filter {    db-table-type-filter-attlist, db-table-type*  }db-table-type-filter-attlist = emptydb-table-type = element db:table-type { db-table-type-attlist, \string }db-table-type-attlist = emptydb-data-source-settings =  element db:data-source-settings {    db-data-source-settings-attlist, db-data-source-setting+  }db-data-source-settings-attlist = emptydb-data-source-setting =  element db:data-source-setting {    db-data-source-setting-attlist, db-data-source-setting-value+  }db-data-source-setting-attlist =  attribute db:data-source-setting-is-list { boolean }?  & attribute db:data-source-setting-name { \string }  & attribute db:data-source-setting-type {      db-data-source-setting-types    }db-data-source-setting-types =  "boolean" | "short" | "int" | "long" | "double" | "string"db-data-source-setting-value =  element db:data-source-setting-value {    db-data-source-setting-value-attlist, \string  }db-data-source-setting-value-attlist = emptydb-forms =  element db:forms {    db-forms-attlist, (db-component | db-component-collection)*  }db-forms-attlist = emptydb-reports =  element db:reports {    db-reports-attlist, (db-component | db-component-collection)*  }db-reports-attlist = emptydb-component-collection =  element db:component-collection {    db-component-collection-attlist,    common-db-object-name,    common-db-object-title,    common-db-object-description,    (db-component | db-component-collection)*  }db-component-collection-attlist = emptydb-component =  element db:component {    db-component-attlist,    common-db-object-name,    common-db-object-title,    common-db-object-description,    (office-document | math-math)?  }db-component-attlist =  (attribute xlink:type { "simple" },   attribute xlink:href { anyIRI },   attribute xlink:show { "none" }?,   attribute xlink:actuate { "onRequest" }?)?  & attribute db:as-template { boolean }?db-queries =  element db:queries {    db-queries-attlist, (db-query | db-query-collection)*  }db-queries-attlist = emptydb-query-collection =  element db:query-collection {    db-query-collection-attlist,    common-db-object-name,    common-db-object-title,    common-db-object-description,    (db-query | db-query-collection)*  }db-query-collection-attlist = emptydb-query =  element db:query {    db-query-attlist,    common-db-object-name,    common-db-object-title,    common-db-object-description,    common-db-table-style-name,    db-order-statement?,    db-filter-statement?,    db-columns?,    db-update-table?  }db-query-attlist =  attribute db:command { \string }  & attribute db:escape-processing { boolean }?db-order-statement =  element db:order-statement { db-command, db-apply-command, empty }db-filter-statement =  element db:filter-statement { db-command, db-apply-command, empty }db-update-table =  element db:update-table { common-db-table-name-attlist }db-table-presentations =  element db:table-representations {    db-table-presentations-attlist, db-table-presentation*  }db-table-presentations-attlist = emptydb-table-presentation =  element db:table-representation {    db-table-presentation-attlist,    common-db-table-name-attlist,    common-db-object-title,    common-db-object-description,    common-db-table-style-name,    db-order-statement?,    db-filter-statement?,    db-columns?  }db-table-presentation-attlist = emptydb-columns = element db:columns { db-columns-attlist, db-column+ }db-columns-attlist = emptydb-column =  element db:column {    db-column-attlist,    common-db-object-name,    common-db-object-title,    common-db-object-description,    common-db-default-value  }db-column-attlist =  attribute db:visible { boolean }?  & attribute db:style-name { styleNameRef }?  & attribute db:default-cell-style-name { styleNameRef }?db-command = attribute db:command { \string }db-apply-command = attribute db:apply-command { boolean }?common-db-table-name-attlist =  attribute db:name { \string }  & attribute db:catalog-name { \string }?  & attribute db:schema-name { \string }?common-db-object-name = attribute db:name { \string }common-db-object-title = attribute db:title { \string }?common-db-object-description = attribute db:description { \string }?common-db-table-style-name =  attribute db:style-name { styleNameRef }?  & attribute db:default-row-style-name { styleNameRef }?common-db-default-value = common-value-and-type-attlist?db-schema-definition =  element db:schema-definition {    db-schema-definition-attlist, db-table-definitions  }db-schema-definition-attlist = emptydb-table-definitions =  element db:table-definitions {    db-table-definitions-attlist, db-table-definition*  }db-table-definitions-attlist = emptydb-table-definition =  element db:table-definition {    common-db-table-name-attlist,    db-table-definition-attlist,    db-column-definitions,    db-keys?,    db-indices?  }db-table-definition-attlist = attribute db:type { \string }?db-column-definitions =  element db:column-definitions {    db-column-definitions-attlist, db-column-definition+  }db-column-definitions-attlist = emptydb-column-definition =  element db:column-definition {    db-column-definition-attlist, common-db-default-value  }db-column-definition-attlist =  attribute db:name { \string }  & attribute db:data-type { db-data-types }?  & attribute db:type-name { \string }?  & attribute db:precision { positiveInteger }?  & attribute db:scale { positiveInteger }?  & attribute db:is-nullable { "no-nulls" | "nullable" }?  & attribute db:is-empty-allowed { boolean }?  & attribute db:is-autoincrement { boolean }?db-data-types =  "bit"  | "boolean"  | "tinyint"  | "smallint"  | "integer"  | "bigint"  | "float"  | "real"  | "double"  | "numeric"  | "decimal"  | "char"  | "varchar"  | "longvarchar"  | "date"  | "time"  | "timestmp"  | "binary"  | "varbinary"  | "longvarbinary"  | "sqlnull"  | "other"  | "object"  | "distinct"  | "struct"  | "array"  | "blob"  | "clob"  | "ref"db-keys = element db:keys { db-keys-attlist, db-key+ }db-keys-attlist = emptydb-key = element db:key { db-key-attlist, db-key-columns+ }db-key-attlist =  attribute db:name { \string }?  & attribute db:type { "primary" | "unique" | "foreign" }  & attribute db:referenced-table-name { \string }?  & attribute db:update-rule {      "cascade" | "restrict" | "set-null" | "no-action" | "set-default"    }?  & attribute db:delete-rule {      "cascade" | "restrict" | "set-null" | "no-action" | "set-default"    }?db-key-columns =  element db:key-columns { db-key-columns-attlist, db-key-column+ }db-key-columns-attlist = emptydb-key-column = element db:key-column { db-key-column-attlist, empty }db-key-column-attlist =  attribute db:name { \string }?  & attribute db:related-column-name { \string }?db-indices = element db:indices { db-indices-attlist, db-index+ }db-indices-attlist = emptydb-index = element db:index { db-index-attlist, db-index-columns+ }db-index-attlist =  attribute db:name { \string }  & attribute db:catalog-name { \string }?  & attribute db:is-unique { boolean }?  & attribute db:is-clustered { boolean }?db-index-columns = element db:index-columns { db-index-column+ }db-index-column =  element db:index-column { db-index-column-attlist, empty }db-index-column-attlist =  attribute db:name { \string }  & attribute db:is-ascending { boolean }?office-forms =  element office:forms {    office-forms-attlist, (form-form | xforms-model)*  }?office-forms-attlist =  attribute form:automatic-focus { boolean }?  & 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:type { "simple" },   attribute xlink:href { anyIRI },   attribute xlink:actuate { "onRequest" }?)?  & attribute office:target-frame { targetFrameName }?  & attribute form:method { "get" | "post" | \string }?  & attribute form:enctype { \string }?  & attribute form:allow-deletes { boolean }?  & attribute form:allow-inserts { boolean }?  & attribute form:allow-updates { boolean }?  & attribute form:apply-filter { boolean }?  & attribute form:command-type { "table" | "query" | "command" }?  & attribute form:command { \string }?  & attribute form:datasource { anyIRI | \string }?  & attribute form:master-fields { \string }?  & attribute form:detail-fields { \string }?  & attribute form:escape-processing { boolean }?  & attribute form:filter { \string }?  & attribute form:ignore-result { boolean }?  & attribute form:navigation-mode { navigation }?  & attribute form:order { \string }?  & attribute form:tab-cycle { tab-cycles }?navigation = "none" | "current" | "parent"tab-cycles = "records" | "current" | "page"form-connection-resource =  element form:connection-resource {    attribute xlink:href { anyIRI },    empty  }xforms-model = element xforms:model { anyAttListOrElements }column-controls =  element form:text { form-text-attlist, common-form-control-content }  | element form:textarea {      form-textarea-attlist, common-form-control-content, text-p*    }  | element form:formatted-text {      form-formatted-text-attlist, common-form-control-content    }  | element form:number {      form-number-attlist,      common-numeric-control-attlist,      common-form-control-content,      common-linked-cell,      common-spin-button,      common-repeat,      common-delay-for-repeat    }  | element form:date {      form-date-attlist,      common-numeric-control-attlist,      common-form-control-content,      common-linked-cell,      common-spin-button,      common-repeat,      common-delay-for-repeat    }  | element form:time {      form-time-attlist,      common-numeric-control-attlist,      common-form-control-content,      common-linked-cell,      common-spin-button,      common-repeat,      common-delay-for-repeat    }  | element form:combobox {      form-combobox-attlist, common-form-control-content, form-item*    }  | element form:listbox {      form-listbox-attlist, common-form-control-content, form-option*    }  | element form:checkbox {      form-checkbox-attlist, common-form-control-content    }controls =  column-controls  | element form:password {      form-password-attlist, common-form-control-content    }  | element form:file { form-file-attlist, common-form-control-content }  | element form:fixed-text {      form-fixed-text-attlist, common-form-control-content    }  | element form:button {      form-button-attlist, common-form-control-content    }  | element form:image {      form-image-attlist, common-form-control-content    }  | element form:radio {      form-radio-attlist, common-form-control-content    }  | element form:frame {      form-frame-attlist, common-form-control-content    }  | element form:image-frame {      form-image-frame-attlist, common-form-control-content    }  | element form:hidden {      form-hidden-attlist, common-form-control-content    }  | element form:grid {      form-grid-attlist, common-form-control-content, form-column*    }  | element form:value-range {      form-value-range-attlist, common-form-control-content    }  | element form:generic-control {      form-generic-control-attlist, common-form-control-content    }form-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-attlist,  common-linked-cellform-control-attlist =  common-form-control-attlist,  common-control-id-attlist,  xforms-bind-attlistcommon-form-control-content = form-properties?, office-event-listeners?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-attlist,  common-linked-cellform-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-attlist  & common-linked-cell  & attribute form:echo-char { character }?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-attlist,  common-linked-cellform-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-attlist  & common-linked-cell  & common-spin-button  & common-repeat  & common-delay-for-repeat  & attribute form:max-value { \string }?  & attribute form:min-value { \string }?  & attribute form:validation { boolean }?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 }?  & attribute form:current-value { double }?  & attribute form:min-value { double }?  & attribute form:max-value { double }?form-date-attlist =  attribute form:value { date }?  & attribute form:current-value { date }?  & attribute form:min-value { date }?  & attribute form:max-value { date }?form-time-attlist =  attribute form:value { time }?  & attribute form:current-value { time }?  & attribute form:min-value { time }?  & attribute form:max-value { time }?form-fixed-text-attlist =  form-control-attlist  & for  & common-disabled-attlist  & label  & common-printable-attlist  & common-title-attlist  & attribute form:multi-line { boolean }?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-type  & common-linked-cell  & common-source-cell-range  & attribute form:auto-complete { boolean }?form-item = element form:item { form-item-attlist, text }form-item-attlist = labelform-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-type  & common-linked-cell  & list-linkage-type  & common-source-cell-range  & attribute form:multiple { boolean }?  & attribute form:xforms-list-source { \string }?list-linkage-type =  attribute form:list-linkage-type {    "selection" | "selection-indices"  }?form-option = element form:option { form-option-attlist, text }form-option-attlist =  current-selected, selected, label, common-value-attlistform-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-attlist  & common-repeat  & common-delay-for-repeat  & attribute form:default-button { boolean }?  & attribute form:toggle { boolean }?  & attribute form:focus-on-click { boolean }?  & attribute form:xforms-submission { \string }?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-attlistform-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-attlist  & common-linked-cell  & attribute form:current-state { states }?  & attribute form:is-tristate { boolean }?  & attribute form:state { states }?states = "unchecked" | "checked" | "unknown"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-attlist,  common-linked-cellform-frame-attlist =  form-control-attlist,  common-disabled-attlist,  for,  label,  common-printable-attlist,  common-title-attlistform-image-frame-attlist =  form-control-attlist,  common-disabled-attlist,  image-data,  common-printable-attlist,  common-readonly-attlist,  common-title-attlist,  common-data-field-attlistform-hidden-attlist = form-control-attlist, common-value-attlistform-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 }?form-value-range-attlist =  form-control-attlist  & common-disabled-attlist  & common-printable-attlist  & common-tab-attlist  & common-title-attlist  & common-value-attlist  & common-linked-cell  & common-repeat  & common-delay-for-repeat  & attribute form:max-value { integer }?  & attribute form:min-value { integer }?  & attribute form:step-size { positiveInteger }?  & attribute form:page-step-size { positiveInteger }?  & attribute form:orientation { "horizontal" | "vertical" }?form-generic-control-attlist = form-control-attlistcommon-form-control-attlist =  attribute form:name { \string }?  & attribute form:control-implementation { namespacedToken }?xforms-bind-attlist = attribute xforms:bind { \string }?types = "submit" | "reset" | "push" | "url"button-type = attribute form:button-type { types }?common-control-id-attlist =  xml-id,  attribute form:id { NCName }?current-selected = attribute form:current-selected { boolean }?common-value-attlist = attribute form:value { \string }?common-current-value-attlist = attribute form:current-value { \string }?common-disabled-attlist = attribute form:disabled { boolean }?dropdown = attribute form:dropdown { boolean }?for = attribute form:for { \string }?image-data = attribute form:image-data { anyIRI }?label = attribute form:label { \string }?common-maxlength-attlist =  attribute form:max-length { nonNegativeInteger }?common-printable-attlist = attribute form:printable { boolean }?common-readonly-attlist = attribute form:readonly { boolean }?selected = attribute form:selected { boolean }?size = attribute form:size { nonNegativeInteger }?common-tab-attlist =  attribute form:tab-index { nonNegativeInteger }?  & attribute form:tab-stop { boolean }?target-frame = attribute office:target-frame { targetFrameName }?target-location = attribute xlink:href { anyIRI }?common-title-attlist = attribute form:title { \string }?common-form-visual-effect-attlist =  attribute form:visual-effect { "flat" | "3d" }?common-form-relative-image-position-attlist =  attribute form:image-position { "center" }?  | (attribute form:image-position {       "start" | "end" | "top" | "bottom"     },     attribute form:image-align { "start" | "center" | "end" }?)bound-column = attribute form:bound-column { \string }?common-convert-empty-attlist =  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"  }?common-linked-cell =  attribute form:linked-cell { cellAddress | \string }?common-source-cell-range =  attribute form:source-cell-range { cellRangeAddress | \string }?common-spin-button = attribute form:spin-button { boolean }?common-repeat = attribute form:repeat { boolean }?common-delay-for-repeat = attribute form:delay-for-repeat { duration }?form-properties = element form:properties { form-property+ }form-property =  element form:property {    form-property-name, form-property-value-and-type-attlist  }  | element form:list-property {      form-property-name, form-property-type-and-value-list    }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-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-end =  element office:annotation-end { office-annotation-end-attlist }office-annotation-attlist =  attribute office:display { boolean }?  & common-office-annotation-name-attlist?office-annotation-end-attlist = common-office-annotation-name-attlistcommon-office-annotation-name-attlist =  attribute office:name { \string }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 }  & attribute script:language { \string }  & (attribute script:macro-name { \string }     | (attribute xlink:type { "simple" },        attribute xlink:href { anyIRI },        attribute xlink:actuate { "onRequest" }?))math-math = element math:math { mathMarkup }[  dc:description [    "To avoid inclusion of the complete MathML schema, anything is allowed within a math:math top-level element"  ]]mathMarkup =  (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 }  & attribute office:dde-topic { \string }  & attribute office:dde-item { \string }  & 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 }?  & 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  }  | 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    }  | 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    }  | 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    }  | 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    }  | 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    }  | element anim:par {      common-anim-attlist,      common-timing-attlist,      common-endsync-timing-attlist,      animation-element*    }  | element anim:seq {      common-anim-attlist,      common-endsync-timing-attlist,      common-timing-attlist,      animation-element*    }  | element anim:iterate {      common-anim-attlist,      anim-iterate-attlist,      common-timing-attlist,      common-endsync-timing-attlist,      animation-element*    }  | element anim:audio {      common-anim-attlist,      anim-audio-attlist,      common-basic-timing-attlist    }  | element anim:command {      common-anim-attlist,      anim-command-attlist,      common-begin-end-timing-attlist,      common-anim-target-attlist,      element anim:param {        attribute anim:name { \string },        attribute anim:value { \string }      }*    }anim-animate-motion-attlist =  attribute svg:path { pathData }?  & attribute svg:origin { \string }?  & attribute smil:calcMode {      "discrete" | "linear" | "paced" | "spline"    }?anim-animate-color-attlist =  attribute anim:color-interpolation { "rgb" | "hsl" }?  & attribute anim:color-interpolation-direction {      "clockwise" | "counter-clockwise"    }?anim-animate-transform-attlist =  attribute svg:type {    "translate" | "scale" | "rotate" | "skewX" | "skewY"  }anim-transition-filter-attlist =  attribute smil:type { \string }  & attribute smil:subtype { \string }?  & attribute smil:direction { "forward" | "reverse" }?  & attribute smil:fadeColor { color }?  & attribute smil:mode { "in" | "out" }?common-anim-target-attlist =  attribute smil:targetElement { IDREF }?  & attribute anim:sub-item { \string }?common-anim-named-target-attlist =  attribute smil:attributeName { \string }common-anim-values-attlist =  attribute smil:values { \string }?  & attribute anim:formula { \string }?  & common-anim-set-values-attlist  & attribute smil:from { \string }?  & attribute smil:by { \string }?common-anim-spline-mode-attlist =  attribute smil:calcMode {    "discrete" | "linear" | "paced" | "spline"  }?common-spline-anim-value-attlist =  attribute smil:keyTimes { \string }?  & attribute smil:keySplines { \string }?common-anim-add-accum-attlist =  attribute smil:accumulate { "none" | "sum" }?  & attribute smil:additive { "replace" | "sum" }?common-anim-set-values-attlist = attribute smil:to { \string }?common-begin-end-timing-attlist =  attribute smil:begin { \string }?  & attribute smil:end { \string }?common-dur-timing-attlist = attribute smil:dur { \string }?common-endsync-timing-attlist =  attribute smil:endsync { "first" | "last" | "all" | "media" | IDREF }?common-repeat-timing-attlist =  attribute smil:repeatDur { \string }?,  attribute smil:repeatCount { nonNegativeDecimal | "indefinite" }?nonNegativeDecimal = xsd:decimal { minInclusive = "0.0" }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 =  attribute smil:restart {    "never" | "always" | "whenNotActive" | "default"  }?common-restart-default-attlist =  attribute smil:restartDefault {    "never" | "always" | "whenNotActive" | "inherit"  }?common-time-manip-attlist =  attribute smil:accelerate { zeroToOneDecimal }?  & attribute smil:decelerate { zeroToOneDecimal }?  & attribute smil:autoReverse { boolean }?zeroToOneDecimal = xsd:decimal { minInclusive = "0" maxInclusive = "1" }common-basic-timing-attlist =  common-begin-end-timing-attlist,  common-dur-timing-attlist,  common-repeat-timing-attlist,  common-restart-timing-attlist,  common-restart-default-attlist,  common-fill-timing-attlist,  common-fill-default-attlistcommon-timing-attlist =  common-basic-timing-attlist, common-time-manip-attlistanim-iterate-attlist =  common-anim-target-attlist  & attribute anim:iterate-type { \string }?  & attribute anim:iterate-interval { duration }?anim-audio-attlist =  attribute xlink:href { anyIRI }?  & attribute anim:audio-level { double }?anim-command-attlist = attribute anim:command { \string }style-style =  element style:style {    style-style-attlist, style-style-content, style-map*  }common-in-content-meta-attlist =  attribute xhtml:about { URIorSafeCURIE },  attribute xhtml:property { CURIEs },  common-meta-literal-attlistcommon-meta-literal-attlist =  attribute xhtml:datatype { CURIE }?,  attribute xhtml:content { \string }?xml-id = attribute xml:id { ID }style-style-attlist =  attribute style:name { styleName }  & attribute style:display-name { \string }?  & attribute style:parent-style-name { styleNameRef }?  & attribute style:next-style-name { styleNameRef }?  & attribute style:list-level { positiveInteger | empty }?  & attribute style:list-style-name { styleName | empty }?  & attribute style:master-page-name { styleNameRef }?  & attribute style:auto-update { boolean }?  & attribute style:data-style-name { styleNameRef }?  & attribute style:percentage-data-style-name { styleNameRef }?  & attribute style:class { \string }?  & attribute style:default-outline-level { positiveInteger | empty }?style-map = element style:map { style-map-attlist, empty }style-map-attlist =  attribute style:condition { \string }  & attribute style:apply-style-name { styleNameRef }  & 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-content  }style-page-layout-content =  style-page-layout-properties?,  style-header-style?,  style-footer-style?style-page-layout-attlist =  attribute style:name { styleName }  & 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-default-page-layout =  element style:default-page-layout { style-page-layout-content }style-master-page =  element style:master-page {    style-master-page-attlist,    (style-header, style-header-left?)?,    (style-footer, style-footer-left?)?,    draw-layer-set?,    office-forms?,    shape*,    animation-element?,    presentation-notes?  }style-master-page-attlist =  attribute style:name { styleName }  & attribute style:display-name { \string }?  & attribute style:page-layout-name { styleNameRef }  & attribute draw:style-name { styleNameRef }?  & 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 =  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 }?  & 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-background?  }table-table-template-attlist =  attribute table:name { \string }  & attribute table:first-row-start-column { rowOrCol }  & attribute table:first-row-end-column { rowOrCol }  & attribute table:last-row-start-column { rowOrCol }  & attribute table: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 table:style-name { styleNameRef },  attribute table:paragraph-style-name { styleNameRef }?table-background =  element table:background { table-background-attlist, empty }table-background-attlist = attribute table: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 { \string }?  & attribute svg:units-per-em { integer }?  & attribute svg:panose-1 { \string }?  & 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 { \string }?  & attribute svg:bbox { \string }?  & 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 }?  & attribute style:name { \string }  & attribute style:font-adornments { \string }?  & attribute style:font-family-generic { fontFamilyGeneric }?  & attribute style:font-pitch { fontPitch }?  & attribute style:font-charset { textEncoding }?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 { \string }?,    empty  }svg-font-face-name =  element svg:font-face-name {    attribute svg:name { \string }?,    empty  }svg-definition-src =  element svg:definition-src {    common-svg-font-face-xlink-attlist, empty  }common-svg-font-face-xlink-attlist =  attribute xlink:type { "simple" },  attribute xlink:href { anyIRI },  attribute xlink:actuate { "onRequest" }?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 { \string }?  & 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 }?  & attribute number:min-denominator-digits { integer }?  & 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 }?,  attribute number:script { scriptCode }?,  attribute number:rfc-language-tag { language }?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?,    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 = attribute number:style { "short" | "long" }?number-month =  element number:month {    number-month-attlist, common-calendar-attlist, empty  }number-month-attlist =  attribute number:textual { boolean }?  & attribute number:possessive-form { boolean }?  & attribute number:style { "short" | "long" }?number-year =  element number:year {    number-year-attlist, common-calendar-attlist, empty  }number-year-attlist = attribute number:style { "short" | "long" }?number-era =  element number:era {    number-era-attlist, common-calendar-attlist, empty  }number-era-attlist = 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 =  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 = 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?,    number-text?,    (any-time, number-text?)+,    style-map*  }any-time = number-hours | number-am-pm | number-minutes | number-secondsnumber-time-style-attlist =  attribute number:truncate-on-overflow { boolean }?number-hours = element number:hours { number-hours-attlist, empty }number-hours-attlist = attribute number:style { "short" | "long" }?number-minutes =  element number:minutes { number-minutes-attlist, empty }number-minutes-attlist = attribute number:style { "short" | "long" }?number-seconds =  element number:seconds { number-seconds-attlist, empty }number-seconds-attlist =  attribute number:style { "short" | "long" }?  & 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 }  & attribute style:display-name { \string }?  & attribute number:language { languageCode }?  & attribute number:country { countryCode }?  & attribute number:script { scriptCode }?  & attribute number:rfc-language-tag { language }?  & attribute number:title { \string }?  & attribute style:volatile { boolean }?  & attribute number:transliteration-format { \string }?  & attribute number:transliteration-language { countryCode }?  & attribute number:transliteration-country { countryCode }?  & attribute number:transliteration-style {      "short" | "medium" | "long"    }?common-auto-reorder-attlist =  attribute number:automatic-order { boolean }?common-format-source-attlist =  attribute number:format-source { "fixed" | "language" }?common-decimal-places-attlist =  attribute number:decimal-places { integer }?common-number-attlist =  attribute number:min-integer-digits { integer }?  & 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?)  | (attribute style:family { "paragraph" },     style-paragraph-properties?,     style-text-properties?)  | (attribute style:family { "section" },     style-section-properties?)  | (attribute style:family { "ruby" },     style-ruby-properties?)  | (attribute style:family { "table" },     style-table-properties?)  | (attribute style:family { "table-column" },     style-table-column-properties?)  | (attribute style:family { "table-row" },     style-table-row-properties?)  | (attribute style:family { "table-cell" },     style-table-cell-properties?,     style-paragraph-properties?,     style-text-properties?)  | (attribute style:family { "graphic" | "presentation" },     style-graphic-properties?,     style-paragraph-properties?,     style-text-properties?)  | (attribute style:family { "drawing-page" },     style-drawing-page-properties?)  | (attribute style:family { "chart" },     style-chart-properties?,     style-graphic-properties?,     style-paragraph-properties?,     style-text-properties?)text-linenumbering-configuration =  element text:linenumbering-configuration {    text-linenumbering-configuration-attlist,    text-linenumbering-separator?  }text-linenumbering-configuration-attlist =  attribute text:number-lines { boolean }?  & common-num-format-attlist?  & attribute text:style-name { styleNameRef }?  & attribute text:increment { nonNegativeInteger }?  & attribute text:number-position {      "left" | "right" | "inner" | "outer"    }?  & attribute text:offset { nonNegativeLength }?  & attribute text:count-empty-lines { boolean }?  & attribute text:count-in-text-boxes { boolean }?  & 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-class  & attribute text:citation-style-name { styleNameRef }?  & attribute text:citation-body-style-name { styleNameRef }?  & attribute text:default-style-name { styleNameRef }?  & attribute text:master-page-name { styleNameRef }?  & attribute text:start-value { nonNegativeInteger }?  & common-num-format-prefix-suffix-attlist  & common-num-format-attlist?  & attribute text:start-numbering-at {      "document" | "chapter" | "page"    }?  & attribute text:footnotes-position {      "text" | "page" | "section" | "document"    }?  & element text:note-continuation-notice-forward { text }?  & 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 }?  & attribute text:numbered-entries { boolean }?  & attribute text:sort-by-position { boolean }?  & attribute fo:language { languageCode }?  & attribute fo:country { countryCode }?  & attribute fo:script { scriptCode }?  & attribute style:rfc-language-tag { language }?  & 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"  },  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 }  & attribute style:display-name { \string }?  & attribute text:consecutive-numbering { boolean }?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?  }  | element text:list-level-style-bullet {      text-list-level-style-attr,      text-list-level-style-bullet-attr,      style-list-level-properties?,      style-text-properties?    }  | 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-number-attr =  attribute text:style-name { styleNameRef }?  & common-num-format-attlist  & common-num-format-prefix-suffix-attlist  & attribute text:display-levels { positiveInteger }?  & attribute text:start-value { positiveInteger }?text-list-level-style-bullet-attr =  attribute text:style-name { styleNameRef }?  & attribute text:bullet-char { character }  & common-num-format-prefix-suffix-attlist  & attribute text:bullet-relative-size { percent }?text-list-level-style-image-attr =  common-draw-data-attlist | office-binary-datatext-list-level-style-attr = attribute text:level { positiveInteger }text-outline-style =  element text:outline-style {    text-outline-style-attr, text-outline-level-style+  }text-outline-style-attr = attribute style:name { styleName }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 }  & attribute text:style-name { styleNameRef }?  & common-num-format-attlist  & common-num-format-prefix-suffix-attlist  & attribute text:display-levels { positiveInteger }?  & attribute text:start-value { positiveInteger }?style-graphic-properties =  element style:graphic-properties {    style-graphic-properties-content-strict  }style-graphic-properties-content-strict =  style-graphic-properties-attlist,  style-graphic-fill-properties-attlist,  style-graphic-properties-elementsstyle-drawing-page-properties =  element style:drawing-page-properties {    style-drawing-page-properties-content-strict  }style-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 }?  & attribute draw:display-name { \string }?  & attribute draw:style { gradient-style }  & attribute draw:cx { percent }?  & attribute draw:cy { percent }?  & attribute draw:angle { angle }?  & attribute draw:border { percent }?gradient-style =  "linear" | "axial" | "radial" | "ellipsoid" | "square" | "rectangular"draw-gradient-attlist =  attribute draw:start-color { color }?  & attribute draw:end-color { color }?  & attribute draw:start-intensity { zeroToHundredPercent }?  & attribute draw:end-intensity { zeroToHundredPercent }?svg-linearGradient =  element svg:linearGradient {    common-svg-gradient-attlist,    attribute svg:x1 { coordinate | percent }?,    attribute svg:y1 { coordinate | percent }?,    attribute svg:x2 { coordinate | percent }?,    attribute svg:y2 { coordinate | percent }?,    svg-stop*  }svg-radialGradient =  element svg:radialGradient {    common-svg-gradient-attlist,    attribute svg:cx { coordinate | percent }?,    attribute svg:cy { coordinate | percent }?,    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 =  attribute svg:gradientUnits { "objectBoundingBox" }?  & attribute svg:gradientTransform { \string }?  & attribute svg:spreadMethod { "pad" | "reflect" | "repeat" }?  & attribute draw:name { styleName }  & attribute draw:display-name { \string }?draw-hatch = element draw:hatch { draw-hatch-attlist, empty }draw-hatch-attlist =  attribute draw:name { styleName }  & attribute draw:display-name { \string }?  & attribute draw:style { "single" | "double" | "triple" }  & attribute draw:color { color }?  & attribute draw:distance { length }?  & attribute draw:rotation { angle }?draw-fill-image =  element draw:fill-image {    draw-fill-image-attlist,    attribute xlink:type { "simple" },    attribute xlink:href { anyIRI },    attribute xlink:show { "embed" }?,    attribute xlink:actuate { "onLoad" }?,    empty  }draw-fill-image-attlist =  attribute draw:name { styleName }  & attribute draw:display-name { \string }?  & 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 { zeroToHundredPercent }?,  attribute draw:end { zeroToHundredPercent }?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 }  & 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 }  & attribute draw:display-name { \string }?  & attribute draw:style { "rect" | "round" }?  & attribute draw:dots1 { integer }?  & attribute draw:dots1-length { length | percent }?  & attribute draw:dots2 { integer }?  & attribute draw:dots2-length { length | percent }?  & attribute draw:distance { length | percent }?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-page-layout-properties =  element style:page-layout-properties {    style-page-layout-properties-content-strict  }style-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 }?  & common-num-format-attlist?  & common-num-format-prefix-suffix-attlist  & attribute style:paper-tray-name { "default" | \string }?  & attribute style:print-orientation { "portrait" | "landscape" }?  & common-horizontal-margin-attlist  & common-vertical-margin-attlist  & common-margin-attlist  & common-border-attlist  & common-border-line-width-attlist  & common-padding-attlist  & common-shadow-attlist  & common-background-color-attlist  & attribute style:register-truth-ref-style-name { styleNameRef }?  & attribute style:print {      list {        ("headers"         | "grid"         | "annotations"         | "objects"         | "charts"         | "drawings"         | "formulas"         | "zero-values")*      }    }?  & attribute style:print-page-order { "ttb" | "ltr" }?  & attribute style:first-page-number { positiveInteger | "continue" }?  & attribute style:scale-to { percent }?  & attribute style:scale-to-pages { positiveInteger }?  & attribute style:table-centering {      "horizontal" | "vertical" | "both" | "none"    }?  & attribute style:footnote-max-height { length }?  & common-writing-mode-attlist  & attribute style:layout-grid-mode { "none" | "line" | "both" }?  & attribute style:layout-grid-standard-mode { boolean }?  & attribute style:layout-grid-base-height { length }?  & attribute style:layout-grid-ruby-height { length }?  & attribute style:layout-grid-lines { positiveInteger }?  & attribute style:layout-grid-base-width { length }?  & attribute style:layout-grid-color { color }?  & attribute style:layout-grid-ruby-below { boolean }?  & attribute style:layout-grid-print { boolean }?  & attribute style:layout-grid-display { boolean }?  & attribute style:layout-grid-snap-to { boolean }?style-page-layout-properties-elements =  style-background-image & style-columns & 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 }?,  attribute style:adjustment { "left" | "center" | "right" }?,  attribute style:distance-before-sep { length }?,  attribute style:distance-after-sep { length }?style-header-footer-properties =  element style:header-footer-properties {    style-header-footer-properties-content-strict  }style-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 }?  & common-horizontal-margin-attlist  & common-vertical-margin-attlist  & common-margin-attlist  & common-border-attlist  & common-border-line-width-attlist  & common-padding-attlist  & common-background-color-attlist  & common-shadow-attlist  & attribute style:dynamic-spacing { boolean }?style-header-footer-properties-elements = style-background-imagestyle-text-properties =  element style:text-properties { style-text-properties-content-strict }style-text-properties-content-strict =  style-text-properties-attlist, style-text-properties-elementsstyle-text-properties-elements = emptystyle-text-properties-attlist =  attribute fo:font-variant { fontVariant }?  & attribute fo:text-transform {      "none" | "lowercase" | "uppercase" | "capitalize"    }?  & attribute fo:color { color }?  & attribute style:use-window-font-color { boolean }?  & attribute style:text-outline { boolean }?  & attribute style:text-line-through-type { lineType }?  & attribute style:text-line-through-style { lineStyle }?  & attribute style:text-line-through-width { lineWidth }?  & attribute style:text-line-through-color { "font-color" | color }?  & attribute style:text-line-through-text { \string }?  & attribute style:text-line-through-text-style { styleNameRef }?  & attribute style:text-position {      list { (percent | "super" | "sub"), percent? }    }?  & attribute style:font-name { \string }?  & attribute style:font-name-asian { \string }?  & attribute style:font-name-complex { \string }?  & attribute fo:font-family { \string }?  & attribute style:font-family-asian { \string }?  & attribute style:font-family-complex { \string }?  & attribute style:font-family-generic { fontFamilyGeneric }?  & attribute style:font-family-generic-asian { fontFamilyGeneric }?  & attribute style:font-family-generic-complex { fontFamilyGeneric }?  & attribute style:font-style-name { \string }?  & attribute style:font-style-name-asian { \string }?  & attribute style:font-style-name-complex { \string }?  & attribute style:font-pitch { fontPitch }?  & attribute style:font-pitch-asian { fontPitch }?  & attribute style:font-pitch-complex { fontPitch }?  & attribute style:font-charset { textEncoding }?  & attribute style:font-charset-asian { textEncoding }?  & attribute style:font-charset-complex { textEncoding }?  & attribute fo:font-size { positiveLength | percent }?  & attribute style:font-size-asian { positiveLength | percent }?  & attribute style:font-size-complex { positiveLength | percent }?  & attribute style:font-size-rel { length }?  & attribute style:font-size-rel-asian { length }?  & attribute style:font-size-rel-complex { length }?  & attribute style:script-type {      "latin" | "asian" | "complex" | "ignore"    }?  & attribute fo:letter-spacing { length | "normal" }?  & attribute fo:language { languageCode }?  & attribute style:language-asian { languageCode }?  & attribute style:language-complex { languageCode }?  & attribute fo:country { countryCode }?  & attribute style:country-asian { countryCode }?  & attribute style:country-complex { countryCode }?  & attribute fo:script { scriptCode }?  & attribute style:script-asian { scriptCode }?  & attribute style:script-complex { scriptCode }?  & attribute style:rfc-language-tag { language }?  & attribute style:rfc-language-tag-asian { language }?  & attribute style:rfc-language-tag-complex { language }?  & attribute fo:font-style { fontStyle }?  & attribute style:font-style-asian { fontStyle }?  & attribute style:font-style-complex { fontStyle }?  & attribute style:font-relief { "none" | "embossed" | "engraved" }?  & attribute fo:text-shadow { shadowType }?  & attribute style:text-underline-type { lineType }?  & attribute style:text-underline-style { lineStyle }?  & attribute style:text-underline-width { lineWidth }?  & attribute style:text-underline-color { "font-color" | color }?  & attribute style:text-overline-type { lineType }?  & attribute style:text-overline-style { lineStyle }?  & attribute style:text-overline-width { lineWidth }?  & attribute style:text-overline-color { "font-color" | color }?  & attribute style:text-overline-mode { lineMode }?  & attribute fo:font-weight { fontWeight }?  & attribute style:font-weight-asian { fontWeight }?  & attribute style:font-weight-complex { fontWeight }?  & attribute style:text-underline-mode { lineMode }?  & attribute style:text-line-through-mode { lineMode }?  & attribute style:letter-kerning { boolean }?  & attribute style:text-blinking { boolean }?  & common-background-color-attlist  & attribute style:text-combine { "none" | "letters" | "lines" }?  & attribute style:text-combine-start-char { character }?  & attribute style:text-combine-end-char { character }?  & attribute style:text-emphasize {      "none"      | list {          ("none" | "accent" | "dot" | "circle" | "disc"),          ("above" | "below")        }    }?  & attribute style:text-scale { percent }?  & attribute style:text-rotation-angle { angle }?  & attribute style:text-rotation-scale { "fixed" | "line-height" }?  & attribute fo:hyphenate { boolean }?  & attribute fo:hyphenation-remain-char-count { positiveInteger }?  & attribute fo:hyphenation-push-char-count { positiveInteger }?  & (attribute text:display { "true" }     | attribute text:display { "none" }     | (attribute text:display { "condition" },        attribute text:condition { "none" })     | empty)fontVariant = "normal" | "small-caps"fontFamilyGeneric =  "roman" | "swiss" | "modern" | "decorative" | "script" | "system"fontPitch = "fixed" | "variable"textEncoding = xsd:string { pattern = "[A-Za-z][A-Za-z0-9._\-]*" }fontStyle = "normal" | "italic" | "oblique"shadowType = "none" | \stringlineType = "none" | "single" | "double"lineStyle =  "none"  | "solid"  | "dotted"  | "dash"  | "long-dash"  | "dot-dash"  | "dot-dot-dash"  | "wave"lineWidth =  "auto"  | "normal"  | "bold"  | "thin"  | "medium"  | "thick"  | positiveInteger  | percent  | positiveLengthfontWeight =  "normal"  | "bold"  | "100"  | "200"  | "300"  | "400"  | "500"  | "600"  | "700"  | "800"  | "900"lineMode = "continuous" | "skip-white-space"style-paragraph-properties =  element style:paragraph-properties {    style-paragraph-properties-content-strict  }style-paragraph-properties-content-strict =  style-paragraph-properties-attlist,  style-paragraph-properties-elementsstyle-paragraph-properties-attlist =  attribute fo:line-height { "normal" | nonNegativeLength | percent }?  & attribute style:line-height-at-least { nonNegativeLength }?  & attribute style:line-spacing { length }?  & attribute style:font-independent-line-spacing { boolean }?  & common-text-align  & attribute fo:text-align-last { "start" | "center" | "justify" }?  & attribute style:justify-single-word { boolean }?  & attribute fo:keep-together { "auto" | "always" }?  & attribute fo:widows { nonNegativeInteger }?  & attribute fo:orphans { nonNegativeInteger }?  & attribute style:tab-stop-distance { nonNegativeLength }?  & attribute fo:hyphenation-keep { "auto" | "page" }?  & attribute fo:hyphenation-ladder-count {      "no-limit" | positiveInteger    }?  & attribute style:register-true { boolean }?  & common-horizontal-margin-attlist  & attribute fo:text-indent { length | percent }?  & attribute style:auto-text-indent { boolean }?  & common-vertical-margin-attlist  & common-margin-attlist  & common-break-attlist  & common-background-color-attlist  & common-border-attlist  & common-border-line-width-attlist  & attribute style:join-border { boolean }?  & common-padding-attlist  & common-shadow-attlist  & common-keep-with-next-attlist  & attribute text:number-lines { boolean }?  & attribute text:line-number { nonNegativeInteger }?  & attribute style:text-autospace { "none" | "ideograph-alpha" }?  & attribute style:punctuation-wrap { "simple" | "hanging" }?  & attribute style:line-break { "normal" | "strict" }?  & attribute style:vertical-align {      "top" | "middle" | "bottom" | "auto" | "baseline"    }?  & common-writing-mode-attlist  & attribute style:writing-mode-automatic { boolean }?  & attribute style:snap-to-layout-grid { boolean }?  & common-page-number-attlist  & common-background-transparency-attlistcommon-text-align =  attribute fo:text-align {    "start" | "end" | "left" | "right" | "center" | "justify"  }?style-paragraph-properties-elements =  style-tab-stops & style-drop-cap & style-background-imagestyle-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 { length }  & (attribute style:type { "left" | "center" | "right" }?     | (attribute style:type { "char" },        style-tab-stop-char-attlist))  & attribute style:leader-type { lineType }?  & attribute style:leader-style { lineStyle }?  & attribute style:leader-width { lineWidth }?  & attribute style:leader-color { "font-color" | color }?  & attribute style:leader-text { character }?  & attribute style:leader-text-style { styleNameRef }?style-tab-stop-char-attlist = attribute style:char { character }style-drop-cap =  element style:drop-cap { style-drop-cap-attlist, empty }?style-drop-cap-attlist =  attribute style:length { "word" | positiveInteger }?  & attribute style:lines { positiveInteger }?  & attribute style:distance { length }?  & attribute style:style-name { styleNameRef }?common-horizontal-margin-attlist =  attribute fo:margin-left { length | percent }?,  attribute fo:margin-right { length | percent }?common-vertical-margin-attlist =  attribute fo:margin-top { nonNegativeLength | percent }?,  attribute fo:margin-bottom { nonNegativeLength | percent }?common-margin-attlist =  attribute fo:margin { nonNegativeLength | percent }?common-break-attlist =  attribute fo:break-before { "auto" | "column" | "page" }?,  attribute fo:break-after { "auto" | "column" | "page" }?common-background-color-attlist =  attribute fo:background-color { "transparent" | color }?style-background-image =  element style:background-image {    style-background-image-attlist,    (common-draw-data-attlist | office-binary-data | empty)  }?style-background-image-attlist =  attribute style:repeat { "no-repeat" | "repeat" | "stretch" }?  & attribute style:position {      "left"      | "center"      | "right"      | "top"      | "bottom"      | list { horiBackPos, vertBackPos }      | list { vertBackPos, horiBackPos }    }?  & attribute style:filter-name { \string }?  & attribute draw:opacity { zeroToHundredPercent }?horiBackPos = "left" | "center" | "right"vertBackPos = "top" | "center" | "bottom"common-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 }?common-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 }common-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 }?common-shadow-attlist = attribute style:shadow { shadowType }?common-keep-with-next-attlist =  attribute fo:keep-with-next { "auto" | "always" }?common-writing-mode-attlist =  attribute style:writing-mode {    "lr-tb" | "rl-tb" | "tb-rl" | "tb-lr" | "lr" | "rl" | "tb" | "page"  }?common-page-number-attlist =  attribute style:page-number { positiveInteger | "auto" }?common-background-transparency-attlist =  attribute style:background-transparency { zeroToHundredPercent }?style-ruby-properties =  element style:ruby-properties { style-ruby-properties-content-strict }style-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" }?  & attribute style:ruby-align {      "left"      | "center"      | "right"      | "distribute-letter"      | "distribute-space"    }?style-section-properties =  element style:section-properties {    style-section-properties-content-strict  }style-section-properties-content-strict =  style-section-properties-attlist, style-section-properties-elementsstyle-section-properties-attlist =  common-background-color-attlist  & common-horizontal-margin-attlist  & attribute style:protect { boolean }?  & common-editable-attlist  & attribute text:dont-balance-text-columns { boolean }?  & common-writing-mode-attliststyle-section-properties-elements =  style-background-image & style-columns & text-notes-configuration*style-columns =  element style:columns {    style-columns-attlist, style-column-sep?, style-column*  }?style-columns-attlist =  attribute fo:column-count { positiveInteger }  & attribute fo:column-gap { length }?style-column = element style:column { style-column-attlist }style-column-attlist =  attribute style:rel-width { relativeLength }  & attribute fo:start-indent { length }?  & attribute fo:end-indent { length }?  & attribute fo:space-before { length }?  & attribute fo:space-after { length }?style-column-sep = element style:column-sep { style-column-sep-attlist }style-column-sep-attlist =  attribute style:style {    "none" | "solid" | "dotted" | "dashed" | "dot-dashed"  }?  & attribute style:width { length }  & attribute style:height { zeroToHundredPercent }?  & attribute style:vertical-align { "top" | "middle" | "bottom" }?  & attribute style:color { color }?style-table-properties =  element style:table-properties {    style-table-properties-content-strict  }style-table-properties-content-strict =  style-table-properties-attlist, style-table-properties-elementsstyle-table-properties-attlist =  attribute style:width { positiveLength }?  & attribute style:rel-width { percent }?  & attribute table:align { "left" | "center" | "right" | "margins" }?  & common-horizontal-margin-attlist  & common-vertical-margin-attlist  & common-margin-attlist  & common-page-number-attlist  & common-break-attlist  & common-background-color-attlist  & common-shadow-attlist  & common-keep-with-next-attlist  & attribute style:may-break-between-rows { boolean }?  & attribute table:border-model { "collapsing" | "separating" }?  & common-writing-mode-attlist  & attribute table:display { boolean }?style-table-properties-elements = style-background-imagestyle-table-column-properties =  element style:table-column-properties {    style-table-column-properties-content-strict  }style-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 }?  & attribute style:use-optimal-column-width { boolean }?  & common-break-attliststyle-table-row-properties =  element style:table-row-properties {    style-table-row-properties-content-strict  }style-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 }?  & attribute style:use-optimal-row-height { boolean }?  & common-background-color-attlist  & common-break-attlist  & attribute fo:keep-together { "auto" | "always" }?style-table-row-properties-elements = style-background-imagestyle-table-cell-properties =  element style:table-cell-properties {    style-table-cell-properties-content-strict  }style-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"  }?  & attribute style:text-align-source { "fix" | "value-type" }?  & common-style-direction-attlist  & attribute style:glyph-orientation-vertical {      "auto" | "0" | "0deg" | "0rad" | "0grad"    }?  & common-writing-mode-attlist  & common-shadow-attlist  & common-background-color-attlist  & common-border-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 }?  & common-border-line-width-attlist  & common-padding-attlist  & attribute fo:wrap-option { "no-wrap" | "wrap" }?  & common-rotation-angle-attlist  & attribute style:rotation-align {      "none" | "bottom" | "top" | "center"    }?  & attribute style:cell-protect {      "none"      | "hidden-and-protected"      | list { ("protected" | "formula-hidden")+ }    }?  & attribute style:print-content { boolean }?  & attribute style:decimal-places { nonNegativeInteger }?  & attribute style:repeat-content { boolean }?  & attribute style:shrink-to-fit { boolean }?common-style-direction-attlist =  attribute style:direction { "ltr" | "ttb" }?style-table-cell-properties-elements = style-background-imagecommon-rotation-angle-attlist =  attribute style:rotation-angle { angle }?style-list-level-properties =  element style:list-level-properties {    style-list-level-properties-content-strict  }style-list-level-properties-content-strict =  style-list-level-properties-attlist,  style-list-level-properties-elementsstyle-list-level-properties-attlist =  common-text-align  & attribute text:space-before { length }?  & attribute text:min-label-width { nonNegativeLength }?  & attribute text:min-label-distance { nonNegativeLength }?  & attribute style:font-name { \string }?  & attribute fo:width { positiveLength }?  & attribute fo:height { positiveLength }?  & common-vertical-rel-attlist  & common-vertical-pos-attlist  & attribute text:list-level-position-and-space-mode {      "label-width-and-position" | "label-alignment"    }?style-list-level-properties-elements = style-list-level-label-alignmentstyle-list-level-label-alignment =  element style:list-level-label-alignment {    style-list-level-label-alignment-attlist, empty  }?style-list-level-label-alignment-attlist =  attribute text:label-followed-by { "listtab" | "space" | "nothing" }  & attribute text:list-tab-stop-position { length }?  & attribute fo:text-indent { length }?  & attribute fo:margin-left { length }?style-graphic-properties-attlist =  attribute draw:stroke { "none" | "dash" | "solid" }?  & attribute draw:stroke-dash { styleNameRef }?  & attribute draw:stroke-dash-names { styleNameRefs }?  & attribute svg:stroke-width { length }?  & attribute svg:stroke-color { color }?  & attribute draw:marker-start { styleNameRef }?  & attribute draw:marker-end { styleNameRef }?  & attribute draw:marker-start-width { length }?  & attribute draw:marker-end-width { length }?  & attribute draw:marker-start-center { boolean }?  & attribute draw:marker-end-center { boolean }?  & attribute svg:stroke-opacity {      xsd:double { minInclusive = "0" maxInclusive = "1" }      | zeroToHundredPercent    }?  & attribute draw:stroke-linejoin {      "miter" | "round" | "bevel" | "middle" | "none"    }?  & attribute svg:stroke-linecap { "butt" | "square" | "round" }?  & attribute draw:symbol-color { color }?  & attribute text:animation {      "none" | "scroll" | "alternate" | "slide"    }?  & attribute text:animation-direction {      "left" | "right" | "up" | "down"    }?  & attribute text:animation-start-inside { boolean }?  & attribute text:animation-stop-inside { boolean }?  & attribute text:animation-repeat { nonNegativeInteger }?  & attribute text:animation-delay { duration }?  & attribute text:animation-steps { length }?  & attribute draw:auto-grow-width { boolean }?  & attribute draw:auto-grow-height { boolean }?  & attribute draw:fit-to-size { boolean }?  & attribute draw:fit-to-contour { boolean }?  & attribute draw:textarea-vertical-align {      "top" | "middle" | "bottom" | "justify"    }?  & attribute draw:textarea-horizontal-align {      "left" | "center" | "right" | "justify"    }?  & attribute fo:wrap-option { "no-wrap" | "wrap" }?  & attribute style:shrink-to-fit { boolean }?  & attribute draw:color-mode {      "greyscale" | "mono" | "watermark" | "standard"    }?  & attribute draw:color-inversion { boolean }?  & attribute draw:luminance { zeroToHundredPercent }?  & attribute draw:contrast { percent }?  & attribute draw:gamma { percent }?  & attribute draw:red { signedZeroToHundredPercent }?  & attribute draw:green { signedZeroToHundredPercent }?  & attribute draw:blue { signedZeroToHundredPercent }?  & attribute draw:image-opacity { zeroToHundredPercent }?  & attribute draw:shadow { "visible" | "hidden" }?  & attribute draw:shadow-offset-x { length }?  & attribute draw:shadow-offset-y { length }?  & attribute draw:shadow-color { color }?  & attribute draw:shadow-opacity { zeroToHundredPercent }?  & attribute draw:start-line-spacing-horizontal { distance }?  & attribute draw:start-line-spacing-vertical { distance }?  & attribute draw:end-line-spacing-horizontal { distance }?  & attribute draw:end-line-spacing-vertical { distance }?  & attribute draw:line-distance { distance }?  & attribute draw:guide-overhang { length }?  & attribute draw:guide-distance { distance }?  & attribute draw:start-guide { length }?  & attribute draw:end-guide { length }?  & attribute draw:placing { "below" | "above" }?  & attribute draw:parallel { boolean }?  & attribute draw:measure-align {      "automatic" | "left-outside" | "inside" | "right-outside"    }?  & attribute draw:measure-vertical-align {      "automatic" | "above" | "below" | "center"    }?  & attribute draw:unit {      "automatic"      | "mm"      | "cm"      | "m"      | "km"      | "pt"      | "pc"      | "inch"      | "ft"      | "mi"    }?  & attribute draw:show-unit { boolean }?  & attribute draw:decimal-places { nonNegativeInteger }?  & attribute draw:caption-type {      "straight-line" | "angled-line" | "angled-connector-line"    }?  & attribute draw:caption-angle-type { "fixed" | "free" }?  & attribute draw:caption-angle { angle }?  & attribute draw:caption-gap { distance }?  & attribute draw:caption-escape-direction {      "horizontal" | "vertical" | "auto"    }?  & attribute draw:caption-escape { length | percent }?  & attribute draw:caption-line-length { length }?  & attribute draw:caption-fit-line-length { boolean }?  & attribute dr3d:horizontal-segments { nonNegativeInteger }?  & attribute dr3d:vertical-segments { nonNegativeInteger }?  & attribute dr3d:edge-rounding { percent }?  & attribute dr3d:edge-rounding-mode { "correct" | "attractive" }?  & attribute dr3d:back-scale { percent }?  & attribute dr3d:depth { length }?  & attribute dr3d:backface-culling { "enabled" | "disabled" }?  & attribute dr3d:end-angle { angle }?  & attribute dr3d:close-front { boolean }?  & attribute dr3d:close-back { boolean }?  & attribute dr3d:lighting-mode { "standard" | "double-sided" }?  & attribute dr3d:normals-kind { "object" | "flat" | "sphere" }?  & attribute dr3d:normals-direction { "normal" | "inverse" }?  & attribute dr3d:texture-generation-mode-x {      "object" | "parallel" | "sphere"    }?  & attribute dr3d:texture-generation-mode-y {      "object" | "parallel" | "sphere"    }?  & attribute dr3d:texture-kind { "luminance" | "intensity" | "color" }?  & attribute dr3d:texture-filter { "enabled" | "disabled" }?  & attribute dr3d:texture-mode { "replace" | "modulate" | "blend" }?  & attribute dr3d:ambient-color { color }?  & attribute dr3d:emissive-color { color }?  & attribute dr3d:specular-color { color }?  & attribute dr3d:diffuse-color { color }?  & attribute dr3d:shininess { percent }?  & attribute dr3d:shadow { "visible" | "hidden" }?  & common-draw-rel-size-attlist  & attribute fo:min-width { length | percent }?  & attribute fo:min-height { length | percent }?  & attribute fo:max-height { length | percent }?  & attribute fo:max-width { length | percent }?  & common-horizontal-margin-attlist  & common-vertical-margin-attlist  & common-margin-attlist  & attribute style:print-content { boolean }?  & attribute style:protect {      "none"      | list { ("content" | "position" | "size")+ }    }?  & attribute style:horizontal-pos {      "left"      | "center"      | "right"      | "from-left"      | "inside"      | "outside"      | "from-inside"    }?  & attribute svg:x { coordinate }?  & 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"    }?  & common-vertical-pos-attlist  & common-vertical-rel-attlist  & common-text-anchor-attlist  & common-border-attlist  & common-border-line-width-attlist  & common-padding-attlist  & common-shadow-attlist  & common-background-color-attlist  & common-background-transparency-attlist  & common-editable-attlist  & attribute style:wrap {      "none"      | "left"      | "right"      | "parallel"      | "dynamic"      | "run-through"      | "biggest"    }?  & attribute style:wrap-dynamic-threshold { nonNegativeLength }?  & attribute style:number-wrapped-paragraphs {      "no-limit" | positiveInteger    }?  & attribute style:wrap-contour { boolean }?  & attribute style:wrap-contour-mode { "full" | "outside" }?  & attribute style:run-through { "foreground" | "background" }?  & attribute style:flow-with-text { boolean }?  & attribute style:overflow-behavior {      "clip" | "auto-create-new-frame"    }?  & attribute style:mirror {      "none"      | "vertical"      | horizontal-mirror      | list { "vertical", horizontal-mirror }      | list { horizontal-mirror, "vertical" }    }?  & attribute fo:clip { "auto" | clipShape }?  & attribute draw:wrap-influence-on-position {      "iterative" | "once-concurrent" | "once-successive"    }?  & common-writing-mode-attlist  & attribute draw:frame-display-scrollbar { boolean }?  & attribute draw:frame-display-border { boolean }?  & attribute draw:frame-margin-horizontal { nonNegativePixelLength }?  & attribute draw:frame-margin-vertical { nonNegativePixelLength }?  & attribute draw:visible-area-left { nonNegativeLength }?  & attribute draw:visible-area-top { nonNegativeLength }?  & attribute draw:visible-area-width { positiveLength }?  & attribute draw:visible-area-height { positiveLength }?  & attribute draw:draw-aspect {      "content" | "thumbnail" | "icon" | "print-view"    }?  & attribute draw:ole-draw-aspect { nonNegativeInteger }?style-graphic-fill-properties-attlist =  attribute draw:fill {    "none" | "solid" | "bitmap" | "gradient" | "hatch"  }?  & attribute draw:fill-color { color }?  & attribute draw:secondary-fill-color { color }?  & attribute draw:fill-gradient-name { styleNameRef }?  & attribute draw:gradient-step-count { nonNegativeInteger }?  & attribute draw:fill-hatch-name { styleNameRef }?  & attribute draw:fill-hatch-solid { boolean }?  & attribute draw:fill-image-name { styleNameRef }?  & attribute style:repeat { "no-repeat" | "repeat" | "stretch" }?  & attribute draw:fill-image-width { length | percent }?  & attribute draw:fill-image-height { length | percent }?  & 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"    }?  & attribute draw:tile-repeat-offset {      list { zeroToHundredPercent, ("horizontal" | "vertical") }    }?  & attribute draw:opacity { zeroToHundredPercent }?  & attribute draw:opacity-name { styleNameRef }?  & attribute svg:fill-rule { "nonzero" | "evenodd" }?style-graphic-properties-elements =  text-list-style? & style-background-image & style-columnscommon-vertical-pos-attlist =  attribute style:vertical-pos {    "top" | "middle" | "bottom" | "from-top" | "below"  }?,  attribute svg:y { coordinate }?common-vertical-rel-attlist =  attribute style:vertical-rel {    "page"    | "page-content"    | "frame"    | "frame-content"    | "paragraph"    | "paragraph-content"    | "char"    | "line"    | "baseline"    | "text"  }?common-editable-attlist = attribute style:editable { boolean }?horizontal-mirror =  "horizontal" | "horizontal-on-odd" | "horizontal-on-even"clipShape =  xsd:string {    pattern =      "rect\([ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)))|(auto))([ ]*,[ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))))|(auto)){3}[ ]*\)"  }nonNegativePixelLength =  xsd:string { pattern = "([0-9]+(\.[0-9]*)?|\.[0-9]+)(px)" }style-chart-properties =  element style:chart-properties {    style-chart-properties-content-strict  }style-chart-properties-content-strict =  style-chart-properties-attlist, style-chart-properties-elementsstyle-chart-properties-elements = emptystyle-chart-properties-attlist =  attribute chart:scale-text { boolean }?  & attribute chart:three-dimensional { boolean }?  & attribute chart:deep { boolean }?  & attribute chart:right-angled-axes { boolean }?  & (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 { anyIRI }        })     | empty)  & attribute chart:symbol-width { nonNegativeLength }?  & attribute chart:symbol-height { nonNegativeLength }?  & attribute chart:sort-by-x-values { boolean }?  & attribute chart:vertical { boolean }?  & attribute chart:connect-bars { boolean }?  & attribute chart:gap-width { integer }?  & attribute chart:overlap { integer }?  & attribute chart:group-bars-per-axis { boolean }?  & attribute chart:japanese-candle-stick { boolean }?  & attribute chart:interpolation {      "none" | "cubic-spline" | "b-spline"    }?  & attribute chart:spline-order { positiveInteger }?  & attribute chart:spline-resolution { positiveInteger }?  & attribute chart:pie-offset { nonNegativeInteger }?  & attribute chart:angle-offset { angle }?  & attribute chart:hole-size { percent }?  & attribute chart:lines { boolean }?  & attribute chart:solid-type {      "cuboid" | "cylinder" | "cone" | "pyramid"    }?  & attribute chart:stacked { boolean }?  & attribute chart:percentage { boolean }?  & attribute chart:treat-empty-cells {      "use-zero" | "leave-gap" | "ignore"    }?  & attribute chart:link-data-style-to-source { boolean }?  & attribute chart:logarithmic { boolean }?  & attribute chart:maximum { double }?  & attribute chart:minimum { double }?  & attribute chart:origin { double }?  & attribute chart:interval-major { double }?  & attribute chart:interval-minor-divisor { positiveInteger }?  & 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 }?  & attribute chart:reverse-direction { boolean }?  & attribute chart:display-label { boolean }?  & attribute chart:text-overlap { boolean }?  & attribute text:line-break { boolean }?  & attribute chart:label-arrangement {      "side-by-side" | "stagger-even" | "stagger-odd"    }?  & common-style-direction-attlist  & common-rotation-angle-attlist  & attribute chart:data-label-number {      "none" | "value" | "percentage" | "value-and-percentage"    }?  & attribute chart:data-label-text { boolean }?  & attribute chart:data-label-symbol { boolean }?  & element chart:label-separator { text-p }?  & attribute chart:label-position { labelPositions }?  & attribute chart:label-position-negative { labelPositions }?  & attribute chart:visible { boolean }?  & attribute chart:auto-position { boolean }?  & attribute chart:auto-size { boolean }?  & attribute chart:mean-value { boolean }?  & attribute chart:error-category {      "none"      | "variance"      | "standard-deviation"      | "percentage"      | "error-margin"      | "constant"      | "standard-error"      | "cell-range"    }?  & attribute chart:error-percentage { double }?  & attribute chart:error-margin { double }?  & attribute chart:error-lower-limit { double }?  & attribute chart:error-upper-limit { double }?  & attribute chart:error-upper-indicator { boolean }?  & attribute chart:error-lower-indicator { boolean }?  & attribute chart:error-lower-range { cellRangeAddressList }?  & attribute chart:error-upper-range { cellRangeAddressList }?  & attribute chart:series-source { "columns" | "rows" }?  & attribute chart:regression-type {      "none" | "linear" | "logarithmic" | "exponential" | "power"    }?  & attribute chart:axis-position { "start" | "end" | double }?  & attribute chart:axis-label-position {      "near-axis"      | "near-axis-other-side"      | "outside-start"      | "outside-end"    }?  & attribute chart:tick-mark-position {      "at-labels" | "at-axis" | "at-labels-and-axis"    }?  & attribute chart:include-hidden-cells { boolean }?labelPositions =  "avoid-overlap"  | "center"  | "top"  | "top-right"  | "right"  | "bottom-right"  | "bottom"  | "bottom-left"  | "left"  | "top-left"  | "inside"  | "outside"  | "near-origin"style-drawing-page-properties-attlist =  attribute presentation:transition-type {    "manual" | "automatic" | "semi-automatic"  }?  & 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"    }?  & attribute presentation:transition-speed { presentationSpeeds }?  & attribute smil:type { \string }?  & attribute smil:subtype { \string }?  & attribute smil:direction { "forward" | "reverse" }?  & attribute smil:fadeColor { color }?  & attribute presentation:duration { duration }?  & attribute presentation:visibility { "visible" | "hidden" }?  & attribute draw:background-size { "full" | "border" }?  & attribute presentation:background-objects-visible { boolean }?  & attribute presentation:background-visible { boolean }?  & attribute presentation:display-header { boolean }?  & attribute presentation:display-footer { boolean }?  & attribute presentation:display-page-number { boolean }?  & attribute presentation:display-date-time { boolean }?style-drawing-page-properties-elements = presentation-sound?\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:IDREFSNCName = xsd:NCNameboolean = "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}" }scriptCode = xsd:token { pattern = "[A-Za-z0-9]{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]+)%" }zeroToHundredPercent =  xsd:string {    pattern = "([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)%"  }signedZeroToHundredPercent =  xsd:string {    pattern = "-?([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)%"  }relativeLength = xsd:string { pattern = "[0-9]+\*" }coordinate = lengthdistance = lengthcolor = xsd:string { pattern = "#[0-9a-fA-F]{6}" }angle = xsd:stringCURIE =  xsd:string { pattern = "(([\i-[:]][\c-[:]]*)?:)?.+" minLength = "1" }CURIEs = list { CURIE+ }SafeCURIE =  xsd:string {    pattern = "\[(([\i-[:]][\c-[:]]*)?:)?.+\]"    minLength = "3"  }URIorSafeCURIE = anyURI | SafeCURIEstyleName = xsd:NCNamestyleNameRef = xsd:NCName | emptystyleNameRefs = list { xsd:NCName* }variableName = 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:QName { pattern = "[^:]+:[^:]+" }anyIRI =  xsd:anyURI  >> dc:description [       "An IRI-reference as defined in [RFC3987]. See ODF 1.2 Part 1 section 18.3."     ]anyAttListOrElements =  attribute * { text }*,  anyElementsanyElements =  element * {    mixed { anyAttListOrElements }  }*
 |