od-schema-v1.2-os.rnc 209 KB

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