<<

Open Office Specification 1.0

Committee Draft 1, 22 Mar 2004

Document identifier: office-spec-1.0-cd-1.sxw

Location: http://www.oasis-open.org/committees/office/

Editors: Michael Brauer, Sun Microsystems Gary Edwards Daniel Vogelheim, Sun Microsystems Contributors: Doug Alberg, Boeing Simon Davis, National Archive of Australia Patrick Durusau, Society of Biblical Literature David Faure, Paul Grosso, Arbortext Tom Magliery, Blast Radius

Phil Boutros, Stellent John Chelsom, CSW Informatics Jason Harrop, SpeedLegal Mark Heller, New York State Office of the Attorney General Paul Langille, Corel Monica Martin, Drake Certivo Uche Ogbuji Lauren Wood Abstract: This is the specification of Open Office XML, an open, XML-based file format for office applications, based on OpenOffice.org XML [OOo].

Status: This document is a draft, and will be updated periodically on no particular schedule. Send comments to the editors. Committee members should send comments on this specification to the [email protected] list. Others should subscribe to and send comments to the [email protected] list. To subscribe, send an email message to office- [email protected] with the word "subscribe" as the body of the message.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 1 of 607 Table of Contents

1 Introduction...... 26 1.1 Introduction...... 26 1.2 Notation...... 26 1.3 Namespaces...... 26 1.4 Relax-NG Schema...... 28 1.5 Document Processing and Conformance...... 28 1.6 White-Space Processing and EOL Handling...... 29 1.7 MIME Types...... 30 2 Document Structure...... 31 2.1 Document Roots...... 31 2.1.1 Document Root Element Content Models...... 32 2.1.2 Document Root Attributes...... 33 2.2 Document Metadata...... 33 2.2.1 Pre-Defined vs. Custom Metadata...... 34 2.2.2 Sample Metadata...... 34 2.3 Body Element and Document Types...... 35 2.3.1 Text Documents...... 35 2.3.2 Drawing Documents...... 37 2.3.3 Presentation Documents...... 37 2.3.4 Documents...... 38 2.3.5 Chart Documents...... 39 2.3.6 Image Documents...... 40 2.4 Application Settings...... 40 2.4.1 Sequence of Settings...... 41 2.4.2 Base Settings...... 42 2.4.3 Index Access of Sequences...... 42 2.4.4 Map Entry...... 43 2.4.5 Name Access of Sequences...... 43 2.4.6 Cursor Position Setting...... 43 2.5 Scripts...... 44 2.5.1 Script...... 44 2.6 Font Face Declarations...... 45 2.7 Styles...... 45 2.7.1 Location of Styles ...... 46

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 2 of 607 2.8 Page Styles and Layout...... 48 3 Meta Data Elements...... 49 3.1 Pre-Defined Metadata Elements...... 49 3.1.1 Generator...... 49 3.1.2 Title...... 49 3.1.3 Description...... 49 3.1.4 Subject...... 50 3.1.5 Keywords...... 50 3.1.6 Initial Creator ...... 50 3.1.7 Creator...... 50 3.1.8 Printed By...... 50 3.1.9 Creation Date and Time...... 51 3.1.10 Modification Date and Time...... 51 3.1.11 Print Date and Time...... 51 3.1.12 Document Template...... 51 3.1.13 Automatic Reload...... 52 3.1.14 Hyperlink Behavior...... 53 3.1.15 Language...... 54 3.1.16 Editing Cycles...... 54 3.1.17 Editing Duration...... 54 3.1.18 Document Statistics...... 55 3.2 User-defined Metadata...... 56 3.3 Custom Metadata...... 57 4 Text Content...... 58 4.1 Headings, Paragraphs and Basic Text Structure...... 58 4.1.1 Headings...... 58 4.1.2 Paragraphs...... 59 4.1.3 Common Paragraph Elements Attributes...... 59 4.2 Page Sequences...... 60 4.2.1 Page...... 61 4.3 Lists...... 61 4.3.1 List Block...... 62 4.3.2 List Item...... 63 4.3.3 List Header...... 64 4.3.4 Numbered Paragraphs...... 65 4.4 Text Sections...... 65 4.4.1 Section Attributes...... 66 4.4.2 Section Source...... 68

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 3 of 607 4.4.3 DDE Source...... 69 4.5 Page-bound graphical content...... 69 4.6 Change Tracking...... 69 4.6.1 Tracked Changes...... 69 4.6.2 Changed Regions...... 70 4.6.3 Insertion...... 70 4.6.4 Deletion...... 71 4.6.5 Format Change...... 73 4.6.6 Change Info...... 73 4.6.7 Change Marks...... 73 4.7 Text Declarations...... 73 5 Paragraph Elements Content...... 75 5.1 Basic Text Content...... 75 5.1.1 White-space Characters...... 75 5.1.2 Soft Hyphens, Hyphens, and Non-breaking Blanks...... 77 5.1.3 Attributed Text...... 77 5.1.4 Hyperlinks...... 78 5.2 Bookmarks and References...... 80 5.2.1 Bookmarks...... 80 5.2.2 References...... 81 5.3 Notes...... 82 5.3.1 Note Element...... 82 5.4 Ruby...... 84 5.5 Text Annotation...... 85 5.6 Index Marks...... 85 5.7 Change Tracking and Change Marks...... 85 5.8 Inline graphics and text-boxes...... 85 6 Text Fields...... 86 6.1 Common Characteristics of Field Elements...... 86 6.2 Document Fields...... 87 6.2.1 Date Fields...... 87 6.2.2 Time Fields...... 88 6.2.3 Page Number Fields...... 90 6.2.4 Page Continuation Text...... 91 6.2.5 Sender Fields...... 92 6.2.6 Author Fields...... 95 6.2.7 Chapter Fields...... 95 6.2.8 File Name Fields...... 96

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 4 of 607 6.2.9 Document Template Name Fields...... 97 6.3 Variable Fields...... 98 6.3.1 Declaring Simple Variables...... 99 6.3.2 Setting Simple Variables...... 99 6.3.3 Displaying Simple Variables...... 100 6.3.4 Simple Variable Input Fields...... 101 6.3.5 Declaring User Variables...... 101 6.3.6 Displaying User Variables...... 102 6.3.7 User Variable Input Fields...... 103 6.3.8 Declaring Sequence Variables...... 103 6.3.9 Using Sequence Fields...... 105 6.3.10 Expression Fields...... 106 6.3.11 Text Input Fields...... 107 6.4 Metadata Fields...... 107 6.4.1 Initial Creator...... 107 6.4.2 Document Creation Date...... 107 6.4.3 Document Creation Time...... 108 6.4.4 Document Description...... 108 6.4.5 User-Defined Document Information...... 108 6.4.6 Print Time...... 109 6.4.7 Print Date...... 109 6.4.8 Printed By...... 109 6.4.9 Document Title...... 110 6.4.10 Document Subject...... 110 6.4.11 Document Keywords...... 110 6.4.12 Document Revision Number...... 110 6.4.13 Document Edit Duration...... 110 6.4.14 Document Modification Time...... 111 6.4.15 Document Modification Date...... 111 6.4.16 Document Modified By...... 111 6.4.17 Document Statistics Fields...... 112 6.5 Database Fields...... 112 6.5.1 Displaying Database Content...... 113 6.5.2 Selecting the Next Database Row...... 114 6.5.3 Selecting a Row Number...... 115 6.5.4 Displaying the Row Number...... 116 6.5.5 Display Current Database and Table...... 116 6.6 More Fields...... 117

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 5 of 607 6.6.1 Page Variable Fields...... 117 6.6.2 Placeholders...... 118 6.6.3 Conditional Text Fields...... 119 6.6.4 Hidden Text Field...... 120 6.6.5 Reference Fields...... 121 6.6.6 Script Fields...... 123 6.6.7 Macro Fields...... 124 6.6.8 Hidden Paragraph Fields...... 125 6.6.9 DDE Connection Fields...... 126 6.6.10 Measure Fields...... 126 6.6.11 Table Formula Field...... 126 6.7 Common Field Attributes...... 127 6.7.1 Variable Value Types and Values...... 127 6.7.2 Fixed...... 129 6.7.3 Variable Name...... 129 6.7.4 Description ...... 130 6.7.5 Display...... 130 6.7.6 Formula...... 131 6.7.7 Formatting Style...... 131 6.7.8 Number Formatting Style...... 132 7 Text Indices...... 133 7.1 Index Marks...... 133 7.1.1 Table of Content Index Marks...... 133 7.1.2 User-Defined Index Marks...... 134 7.1.3 Alphabetical Index Mark...... 135 7.1.4 Bibliography Index Mark...... 137 7.2 Index Structure...... 138 7.2.1 Index Source...... 138 7.2.2 Index Body Section...... 139 7.2.3 Index Title Section...... 139 7.3 Table Of Content...... 139 7.3.1 Table of Content Source...... 140 7.3.2 Table of Content Entry Template...... 142 7.4 Index of Illustrations...... 143 7.4.1 Index of Illustration Source...... 143 7.4.2 Illustration Index Entry Template...... 145 7.5 Index of Tables...... 145 7.5.1 Table Index Source...... 145

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 6 of 607 7.5.2 Table Index Entry Template...... 146 7.6 Index of Objects...... 146 7.6.1 Object Index Source...... 146 7.6.2 Object Index Entry Template...... 148 7.7 User-Defined Index...... 148 7.7.1 User-Defined Index Source...... 148 7.7.2 User-Defined Index Entry Template...... 150 7.8 Alphabetical Index...... 151 7.8.1 Alphabetical Index Source...... 151 7.8.2 Auto Mark File...... 155 7.8.3 Alphabetical Index Entry Template...... 155 7.9 Bibliography...... 156 7.9.1 Bibliography Index Source...... 156 7.9.2 Bibliography Entry Template...... 156 7.10 index source styles...... 157 7.10.1 Index source style...... 158 7.11 Index title template...... 158 7.12 Index Template Entries...... 158 7.12.1 Chapter Information...... 158 7.12.2 Entry Text...... 159 7.12.3 Page Number...... 159 7.12.4 Fixed String...... 159 7.12.5 Bibliography Information...... 160 7.12.6 Tab Stop...... 161 7.12.7 Hyperlink Start and End...... 162 7.12.8 Example of an Index Entry Configuration...... 162 8 Tables...... 164 8.1 Basic Table Model...... 164 8.1.1 Table Element...... 164 8.1.2 Table Row ...... 167 8.1.3 Table Cell ...... 169 8.2 Advanced Table Model...... 174 8.2.1 Column Description ...... 174 8.2.2 Header Columns...... 175 8.2.3 Column Groups...... 176 8.2.4 Header Rows...... 177 8.2.5 Row Groups...... 177 8.2.6 Subtables ...... 178

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 7 of 607 8.3 Advanced Tables...... 181 8.3.1 Referencing Table Cells...... 181 8.3.2 Linked Tables...... 182 8.3.3 Scenario Tables...... 184 8.3.4 Shapes...... 186 8.4 Advanced Table Cells ...... 187 8.4.1 Linked Table Cells...... 187 8.4.2 Cell Annotation ...... 188 8.4.3 Detective...... 188 8.4.4 Detective Operation...... 188 8.5 Spreadsheet Document Content...... 190 8.5.1 Document Protection...... 190 8.5.2 Calculation Settings...... 191 8.5.3 Table Cell Content Validations...... 194 8.5.4 Label Ranges...... 197 8.5.5 Named Expressions...... 198 8.6 Database Ranges...... 200 8.6.1 Database Range ...... 201 8.6.2 Database Source SQL ...... 204 8.6.3 Database Source Table ...... 204 8.6.4 Database Source Query...... 205 8.6.5 Sort ...... 205 8.6.6 Sort By ...... 207 8.6.7 Subtotal Rules ...... 208 8.6.8 Subtotal Sort Groups ...... 209 8.6.9 Subtotal Rule ...... 210 8.6.10 Subtotal Field ...... 210 8.7 Filters...... 211 8.7.1 Table Filter...... 211 8.7.2 Filter And...... 213 8.7.3 Filter Or ...... 213 8.7.4 Filter Condition ...... 214 8.8 Data Pilot Tables...... 216 8.8.1 Data Pilot Table...... 216 8.8.2 Source Cell Range...... 220 8.8.3 Source Service...... 221 8.8.4 Data Pilot Field...... 222 8.8.5 Data Pilot Level...... 224

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 8 of 607 8.8.6 Data Pilot Subtotals...... 225 8.8.7 Data Pilot Subtotal...... 225 8.8.8 Data Pilot Members...... 226 8.8.9 Data Pilot Member...... 226 8.9 Consolidation...... 227 8.10 DDE Links...... 229 8.11 Change Tracking in ...... 229 8.11.1 Tracked Changes...... 229 8.11.2 Insertion...... 229 8.11.3 Dependencies...... 231 8.11.4 Dependence...... 231 8.11.5 Deletions...... 231 8.11.6 Cell Content Deletion...... 232 8.11.7 Change Deletion...... 232 8.11.8 Deletion...... 232 8.11.9 Cut Offs...... 234 8.11.10 Insertion Cut Off...... 234 8.11.11 Movement Cut Off...... 235 8.11.12 Movement...... 236 8.11.13 Target Range Address, Source Range Address...... 236 8.11.14 Change Track Cell...... 238 8.11.15 Cell Content Change...... 239 8.11.16 Cell Address...... 239 8.11.17 Previous...... 240 8.11.18 Common Change Tracking Attributes...... 240 9 Graphic Content...... 242 9.1 Enhanced Page Features for Graphical Applications...... 242 9.1.1 Handout Master...... 242 9.1.2 Layer Sets...... 242 9.1.3 Layer...... 243 9.1.4 Drawing Pages...... 244 9.1.5 Presentation Notes...... 245 9.2 Drawing Shapes...... 246 9.2.1 Rectangle...... 246 9.2.2 Line...... 247 9.2.3 Polyline...... 248 9.2.4 Polygon...... 249 9.2.5 Path...... 249

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 9 of 607 9.2.6 Circle...... 250 9.2.7 Ellipse...... 252 9.2.8 Connector...... 253 9.2.9 Caption...... 256 9.2.10 Measure...... 257 9.2.11 Control...... 258 9.2.12 Page Thumbnail...... 258 9.2.13 Grouping...... 259 9.2.14 Common Drawing Shape Attributes...... 260 9.2.15 Common Shape Attributes for Text and Spreadsheet Documents...... 263 9.2.16 Common Drawing Shape Content...... 265 9.2.17 Common Shape Attribute Groups...... 266 9.2.18 Glue Points...... 266 9.2.19 Events...... 267 9.3 Frames...... 268 9.3.1 Text Box...... 270 9.3.2 Image...... 272 9.3.3 Objects...... 273 9.3.4 Applet...... 275 9.3.5 Plugins...... 276 9.3.6 Applet and Plugin Parameters...... 277 9.3.7 Floating Frame...... 278 9.3.8 Contour...... 278 9.3.9 Alternative Text...... 279 9.3.10 Hyperlinks...... 279 9.3.11 Client Side Image Maps...... 281 9.4 3D Shapes...... 285 9.4.1 Scene...... 285 9.4.2 Light...... 289 9.4.3 Cube...... 290 9.4.4 Sphere...... 290 9.4.5 Extrude...... 291 9.4.6 Rotate...... 292 9.5 Presentation Shapes...... 292 9.5.1 Common Presentation Shape Attributes...... 292 9.6 Presentation Animations...... 294 9.6.1 Sound...... 294 9.6.2 Show Shape...... 295

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 10 of 607 9.6.3 Show Text...... 298 9.6.4 Hide Shape...... 298 9.6.5 Hide Text...... 299 9.6.6 Dim...... 299 9.6.7 Play...... 299 9.7 Presentation Events...... 300 9.8 Presentation Document Content...... 303 9.8.1 Presentation Settings...... 303 9.8.2 Show Definitions...... 306 10 Chart Content...... 308 10.1 Introduction to Chart Documents...... 308 10.2 Chart...... 308 10.3 Title, Subtitle and Footer...... 312 10.3.1 Title...... 312 10.3.2 Subtitle...... 313 10.3.3 Footer...... 313 10.4 Legend...... 313 10.5 Plot Area...... 315 10.5.1 3D Plot Area...... 317 10.6 Wall...... 317 10.7 Floor...... 317 10.8 Axis...... 318 10.8.1 Grid...... 320 10.9 Series...... 321 10.9.1 Domain...... 322 10.10 Categories...... 323 10.11 Data Point...... 323 10.12 Mean Value...... 324 10.13 Error Indicator...... 324 10.14 Regression Curves...... 325 10.14.1 Stock Chart Markers...... 325 11 Form Content...... 327 11.1 Form...... 328 11.1.1 Action...... 329 11.1.2 Method...... 330 11.1.3 Encoding Type...... 330 11.1.4 Allow Deletes...... 330 11.1.5 Allow Inserts...... 330

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 11 of 607 11.1.6 Allow Updates...... 331 11.1.7 Apply Filter...... 331 11.1.8 Command Type...... 331 11.1.9 Command...... 331 11.1.10 Data Source...... 332 11.1.11 Master Fields...... 332 11.1.12 Detail Fields...... 332 11.1.13 Escape Processing...... 332 11.1.14 Filter...... 333 11.1.15 Ignore Result...... 333 11.1.16 Navigation Mode...... 333 11.1.17 Order...... 334 11.1.18 Tabbing Cycle...... 334 11.2 Controls...... 335 11.2.1 Text...... 335 11.2.2 Text Area...... 336 11.2.3 Password...... 337 11.2.4 File...... 337 11.2.5 Formatted Text...... 338 11.2.6 Number...... 339 11.2.7 Date And Time...... 340 11.2.8 Fixed Text...... 342 11.2.9 Combo Box...... 343 11.2.10 List Box...... 344 11.2.11 Button...... 345 11.2.12 Image...... 346 11.2.13 Check Box...... 346 11.2.14 Radio Button...... 348 11.2.15 Frame...... 348 11.2.16 Image Frame...... 349 11.2.17 Hidden...... 349 11.2.18 Grid...... 350 11.2.19 Generic Control...... 351 11.3 Common Form and Control Attributes...... 351 11.3.1 Name...... 351 11.3.2 Control Implementation...... 352 11.4 Common Control Attributes...... 352 11.4.1 Button Type...... 352

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 12 of 607 11.4.2 Control ID...... 352 11.4.3 Current Selected...... 353 11.4.4 Value and Current Value...... 353 11.4.5 Disabled...... 355 11.4.6 Dropdown...... 355 11.4.7 For...... 356 11.4.8 Image Data...... 356 11.4.9 Label...... 356 11.4.10 Maximum Length...... 357 11.4.11 Printable...... 357 11.4.12 Read only...... 358 11.4.13 Selected...... 358 11.4.14 Size...... 359 11.4.15 Tab Index...... 359 11.4.16 Tab Stop...... 360 11.4.17 Target Frame...... 361 11.4.18 Target Location...... 361 11.4.19 Title...... 361 11.4.20 Database Binding Attributes...... 362 11.5 Events...... 364 11.5.1 Events with an Equivalent HTML Event Type...... 364 11.5.2 Event Types...... 365 11.6 Properties...... 366 11.6.1 Property Set...... 367 11.6.2 Property...... 367 11.6.3 List Property...... 368 12 Common Content...... 371 12.1 Annotation...... 371 12.2 Number Format...... 372 12.2.1 Prefix and Suffix...... 372 12.2.2 Format Specification...... 372 12.2.3 Letter Synchronization in Number Formats...... 373 12.3 Change Tracking Metadata...... 373 12.4 Event Listener Tables...... 374 12.4.1 Event Listener...... 374 12.5 Mathematical Content...... 375 12.6 DDE Connections...... 376 12.6.1 Container for DDE Connection Declarations...... 376

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 13 of 607 12.6.2 Declaring DDE Connections for text fields...... 376 12.6.3 Declaring DDE Connections for Tables ...... 378 13 Styles...... 380 13.1 Style Element...... 380 13.1.1 Style Mappings...... 384 13.2 Default Styles...... 386 13.3 Page Layout...... 386 13.3.1 Header and Footer Styles...... 387 13.4 Master Pages...... 387 13.4.1 Headers and Footers...... 390 13.4.2 Presentation Notes...... 392 13.5 Table Templates...... 392 13.5.1 Row and Column Styles...... 394 13.6 Font Face Declaration...... 395 13.6.1 CSS2/SVG Font Descriptors...... 396 13.6.2 Name...... 399 13.6.3 Adornments...... 399 13.6.4 Font Family Generic...... 400 13.6.5 Font Pitch...... 400 13.6.6 Font Character Set...... 400 13.7 Data Styles...... 400 13.7.1 Number Style...... 401 13.7.2 Currency Style...... 404 13.7.3 Percentage Style...... 406 13.7.4 Date Style...... 406 13.7.5 Time Style...... 412 13.7.6 Boolean Style...... 415 13.7.7 Text Style...... 416 13.7.8 Common Data Style Elements...... 417 13.7.9 Common Data Style Attributes...... 417 13.7.10 Transliteration...... 420 13.7.11 Common Data Style Child Element Attributes...... 421 13.8 Text Styles...... 423 13.8.1 Text Styles...... 423 13.8.2 Paragraph Styles...... 423 13.8.3 Section Styles...... 424 13.8.4 Ruby Style...... 424 13.9 Enhanced Text Styles...... 424

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 14 of 607 13.9.1 Line Numbering Configuration...... 424 13.9.2 Notes Configuration Element...... 428 13.9.3 Bibliography Configuration...... 431 13.10 List Style...... 433 13.10.1 Common List-Level Style Attributes...... 434 13.10.2 Number Level Style...... 434 13.10.3 Bullet Level Style...... 436 13.10.4 Image Level Style...... 437 13.10.5 List Level Style Example...... 438 13.11 Outline Style...... 439 13.11.1 Outline Level Style...... 439 13.12 Table Styles...... 440 13.12.1 Table Styles...... 440 13.12.2 Table Column Styles...... 441 13.12.3 Table Row Styles...... 441 13.12.4 Table Cell Styles...... 441 13.13 Graphic Styles...... 442 13.13.1 Graphic and Presentation Styles...... 442 13.13.2 Drawing Page Style...... 442 13.14 Enhanced Graphic Style Elements...... 443 13.14.1 Gradient...... 443 13.14.2 SVG Gradients...... 446 13.14.3 Hatch...... 449 13.14.4 Fill Image...... 451 13.14.5 Opacity Gradient...... 452 13.14.6 Marker...... 453 13.14.7 Stroke Dash...... 453 13.15 Presentation Page Layouts...... 455 13.15.1 Presentation Placeholder...... 455 13.16 Chart Styles...... 456 14 Formatting Properties...... 457 14.1 Simple and Complex Formatting Properties...... 457 14.1.1 Simple Formatting Properties...... 457 14.1.2 Complex Formatting Properties...... 458 14.1.3 Processing Rules for Formatting Properties...... 458 14.2 Page Layout Formatting Properties...... 458 14.2.1 Page Size...... 459 14.2.2 Page Number Format...... 459

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 15 of 607 14.2.3 Paper Tray...... 460 14.2.4 Print Orientation...... 460 14.2.5 Margins...... 460 14.2.6 Border...... 460 14.2.7 Border Line Width...... 461 14.2.8 Padding...... 461 14.2.9 Shadow...... 461 14.2.10 Background...... 461 14.2.11 Columns...... 462 14.2.12 Register-truth...... 462 14.2.13 Print...... 462 14.2.14 Print Page Order...... 463 14.2.15 First Page Number...... 463 14.2.16 Scale...... 463 14.2.17 Table Centering...... 464 14.2.18 Maximum Footnote Height...... 464 14.2.19 Writing Mode...... 464 14.2.20 Footnote Separator...... 465 14.2.21 Layout Grid...... 466 14.2.22 Layout Grid Base Height...... 466 14.2.23 Layout Grid Ruby Height...... 466 14.2.24 Layout Grid Lines...... 467 14.2.25 Layout Grid Color...... 467 14.2.26 Layout Grid Ruby Below...... 467 14.2.27 Layout Grid Print...... 467 14.2.28 Layout Grid Display...... 468 14.3 Header Footer Formatting Properties...... 468 14.3.1 Fixed and Minimum heights...... 468 14.3.2 Margins...... 469 14.3.3 Border...... 469 14.3.4 Border Line Width...... 469 14.3.5 Padding...... 469 14.3.6 Background...... 470 14.3.7 Shadow...... 470 14.3.8 Dynamic Spacing...... 470 14.3.9 Background...... 470 14.4 Text Formatting Properties...... 470 14.4.1 Font Variant...... 471

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 16 of 607 14.4.2 Text Transformations...... 471 14.4.3 Color...... 472 14.4.4 Window Font Color...... 472 14.4.5 Text Outline...... 472 14.4.6 Line Through Type...... 472 14.4.7 Line Through Style...... 473 14.4.8 Line Through Width...... 473 14.4.9 Line Through Color...... 473 14.4.10 Line Through Text...... 473 14.4.11 Line Through Text Style...... 474 14.4.12 Text Position...... 474 14.4.13 Font Name...... 475 14.4.14 Font Family...... 475 14.4.15 Font Family Generic...... 476 14.4.16 Font Style...... 476 14.4.17 Font Pitch...... 477 14.4.18 Font Character Set...... 477 14.4.19 Font Size...... 478 14.4.20 Relative Font Size...... 479 14.4.21 Script Type...... 479 14.4.22 Letter Spacing...... 480 14.4.23 Language...... 480 14.4.24 Country...... 480 14.4.25 Font Style...... 481 14.4.26 Font Relief...... 481 14.4.27 Text Shadow...... 482 14.4.28 Underlining Type...... 482 14.4.29 Underlining Style...... 482 14.4.30 Underling Width...... 483 14.4.31 Underline Color...... 483 14.4.32 Font Weight...... 484 14.4.33 Text Underline Word Mode...... 484 14.4.34 Text Line Through Word Mode...... 485 14.4.35 Letter Kerning...... 485 14.4.36 Text Blinking...... 485 14.4.37 Text Background Color...... 485 14.4.38 Text Combine...... 485 14.4.39 Text Combine Start and End Characters...... 486

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 17 of 607 14.4.40 Text Emphasis...... 486 14.4.41 Text Scale...... 487 14.4.42 Text Rotation Angle...... 487 14.4.43 Text Rotation Scale...... 487 14.5 Paragraph Formatting Properties...... 488 14.5.1 Fixed Line Height...... 488 14.5.2 Minimum Line Height...... 488 14.5.3 Line Distance...... 488 14.5.4 Text Align...... 489 14.5.5 Text Align of Last Line...... 489 14.5.6 Justify Single Word...... 490 14.5.7 Break Inside...... 490 14.5.8 Widows...... 490 14.5.9 Orphans...... 490 14.5.10 Tab Stops...... 491 14.5.11 Tab Stop Distance...... 494 14.5.12 Hyphenation...... 494 14.5.13 Hyphenation Keep...... 494 14.5.14 Hyphenation Remain Char Count...... 495 14.5.15 Hyphenation Push Char Count...... 495 14.5.16 Maximum Hyphens...... 495 14.5.17 Drop Caps...... 496 14.5.18 Register True ...... 497 14.5.19 Left and Right Margins...... 497 14.5.20 Text Indent...... 498 14.5.21 Automatic Text Indent...... 498 14.5.22 Top and Bottom Margins...... 498 14.5.23 Break Before and Break After...... 499 14.5.24 Paragraph Background Color...... 500 14.5.25 Paragraph Background Image...... 500 14.5.26 Border...... 502 14.5.27 Border Line Width...... 503 14.5.28 Padding...... 504 14.5.29 Shadow...... 504 14.5.30 Keep with Next...... 505 14.5.31 Line Numbering...... 505 14.5.32 Line Number Start Value...... 505 14.5.33 Text Autospace...... 506

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 18 of 607 14.5.34 Punctuation Wrap...... 506 14.5.35 Line Break...... 506 14.5.36 Vertical Alignment...... 507 14.5.37 Writing Mode...... 507 14.5.38 Automatic Writing Mode...... 508 14.5.39 Snap To Layout...... 508 14.5.40 Page Number...... 508 14.5.41 Background Transparency...... 508 14.6 Ruby Text Formatting Properties...... 509 14.6.1 Ruby Position...... 509 14.6.2 Ruby Alignment...... 509 14.7 Section Formatting Properties...... 510 14.7.1 Section Background...... 510 14.7.2 Margins...... 510 14.7.3 Columns...... 510 14.7.4 Column Specification...... 511 14.7.5 Column Separator...... 513 14.7.6 Protect...... 514 14.7.7 Notes Configuration...... 514 14.8 Table Formatting Properties...... 515 14.8.1 Table Width...... 515 14.8.2 Table Alignment...... 515 14.8.3 Table Left and Right Margin...... 516 14.8.4 Table Top and Bottom Margin...... 516 14.8.5 Page Number...... 516 14.8.6 Break Before and Break After...... 516 14.8.7 Table Background and Background Image...... 517 14.8.8 Table Shadow...... 517 14.8.9 Keep with Next...... 517 14.8.10 May Break Between Rows...... 517 14.8.11 Border Model Property...... 517 14.8.12 Display...... 518 14.9 Column Formatting Properties...... 518 14.9.1 Column Width...... 518 14.9.2 Optimal Table Column Width...... 519 14.9.3 Break Before and Break After...... 519 14.10 Table Row Formatting Properties...... 519 14.10.1 Row Height...... 520

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 19 of 607 14.10.2 Optimal Table Row Height...... 520 14.10.3 Row Background...... 520 14.10.4 Break Before and Break After...... 520 14.11 Table Cell Formatting Properties...... 521 14.11.1 Vertical Alignment...... 521 14.11.2 Text Align Source...... 521 14.11.3 Direction...... 522 14.11.4 Vertical Glyph Orientation...... 522 14.11.5 Cell Shadow...... 522 14.11.6 Cell Background...... 522 14.11.7 Cell Border...... 523 14.11.8 Border Line Width...... 523 14.11.9 Padding...... 523 14.11.10 Wrap Option...... 523 14.11.11 Rotation Angle...... 523 14.11.12 Rotation Align...... 524 14.11.13 Cell Protect...... 524 14.11.14 Print Content...... 525 14.11.15 Decimal places...... 525 14.12 List-Level Style Properties...... 525 14.13 Stroke Properties...... 527 14.13.1 Stroke Style...... 528 14.13.2 Dash...... 528 14.13.3 Width...... 528 14.13.4 Color...... 528 14.13.5 Start Marker...... 529 14.13.6 End Marker...... 529 14.13.7 Start Marker Width...... 529 14.13.8 End Marker Width...... 529 14.13.9 Start Marker Center...... 530 14.13.10 End Marker Center...... 530 14.13.11 Opacity...... 530 14.13.12 Line Join...... 530 14.14 Fill Properties...... 531 14.14.1 Fill Style...... 531 14.14.2 Color...... 532 14.14.3 Gradient...... 532 14.14.4 Gradient Step Count...... 532

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 20 of 607 14.14.5 Hatch...... 532 14.14.6 Solid Hatch...... 533 14.14.7 Fill Image...... 533 14.14.8 Fill Image Rendering Style...... 533 14.14.9 Fill Image Size...... 533 14.14.10 Fill Image Tile Reference Point...... 534 14.14.11 Fill Image Tile Translation...... 534 14.14.12 None and Linear Opacity...... 535 14.14.13 Gradient Opacity...... 535 14.15 Text Animation Properties...... 535 14.15.1 Animation...... 536 14.15.2 Animation Direction...... 536 14.15.3 Animation Start Inside...... 536 14.15.4 Animation Stop Inside...... 536 14.15.5 Animation Repeat...... 537 14.15.6 Animation Delay...... 537 14.16 Text Alignment Properties...... 537 14.16.1 Auto Grow Width and Height...... 537 14.16.2 Fit To Size...... 538 14.16.3 Text Area Vertical Align...... 538 14.16.4 Text Area Horizontal Align...... 538 14.17 Color Properties...... 538 14.17.1 Color Mode ...... 538 14.17.2 Color Inversion...... 539 14.17.3 Adjust Luminance...... 539 14.17.4 Adjust Contrast...... 539 14.17.5 Adjust Gamma...... 539 14.17.6 Adjust Red...... 540 14.17.7 Adjust Green...... 540 14.17.8 Adjust Blue...... 540 14.17.9 Adjust Opacity...... 540 14.18 Shadow Properties...... 540 14.18.1 Shadow...... 540 14.18.2 Offset...... 541 14.18.3 Color...... 541 14.18.4 Opacity...... 541 14.19 Connector Properties...... 541 14.19.1 Start Line Spacing...... 542

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 21 of 607 14.19.2 End Line Spacing...... 542 14.20 Measure Properties...... 542 14.20.1 Line Distance...... 542 14.20.2 Guide Overhang...... 543 14.20.3 Guide Distance...... 543 14.20.4 Start Guide...... 543 14.20.5 End Guide...... 543 14.20.6 Placing...... 544 14.20.7 Parallel...... 544 14.20.8 Text Alignment...... 544 14.20.9 Unit...... 544 14.20.10 Show Unit...... 545 14.20.11 Decimal Places...... 545 14.21 Caption Properties...... 545 14.21.1 Type...... 546 14.21.2 Angle Type...... 546 14.21.3 Angle...... 546 14.21.4 Gap...... 546 14.21.5 Escape Direction...... 547 14.21.6 Escape...... 547 14.21.7 Line Length...... 547 14.21.8 Fit Line Length...... 547 14.22 3D Geometry Properties...... 548 14.22.1 Horizontal Segments...... 548 14.22.2 Vertical Segments...... 548 14.22.3 Edge Rounding...... 548 14.22.4 Edge Rounding Mode...... 548 14.22.5 Back Scale...... 549 14.22.6 Depth...... 549 14.22.7 Backface Culling...... 549 14.23 3D Lighting Properties...... 550 14.23.1 Mode...... 550 14.23.2 Normals Kind...... 550 14.23.3 Normals Direction...... 550 14.24 3D Texture Properties...... 551 14.24.1 Generation Mode...... 551 14.24.2 Kind...... 551 14.24.3 Filter...... 551

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 22 of 607 14.24.4 Mode...... 552 14.25 3D Material Properties...... 552 14.25.1 Colors...... 552 14.25.2 Shininess...... 552 14.26 3D Shadow Properties...... 553 14.26.1 Shadow...... 553 14.27 Frame Formatting Properties...... 553 14.27.1 Frame Widths...... 553 14.27.2 Frame Heights...... 553 14.27.3 Maximum Width and Height...... 554 14.27.4 Left and Right Margins...... 554 14.27.5 Top and Bottom Margins...... 554 14.27.6 Print Content...... 554 14.27.7 Protect...... 555 14.27.8 Horizontal Position...... 555 14.27.9 Horizontal Relation...... 556 14.27.10 Vertical Position...... 557 14.27.11 Vertical Relation...... 558 14.27.12 Frame Anchor...... 559 14.27.13 Border...... 559 14.27.14 Border Line Width...... 559 14.27.15 Padding...... 559 14.27.16 Shadow...... 560 14.27.17 Background...... 560 14.27.18 Columns...... 560 14.27.19 Editable...... 560 14.27.20 Wrapping...... 560 14.27.21 Dynamic Wrap Threshold...... 561 14.27.22 Paragraph-only Wrapping...... 561 14.27.23 Contour Wrapping...... 562 14.27.24 Contour Wrapping Mode...... 562 14.27.25 Run Through...... 562 14.27.26 Flow with Text...... 563 14.27.27 Overflow behavior...... 563 14.27.28 Mirroring...... 563 14.27.29 Clipping...... 564 14.28 Floating Frame Formatting Properties...... 564 14.28.1 Display Scrollbar...... 564

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 23 of 607 14.28.2 Display Border...... 565 14.28.3 Margins...... 565 14.28.4 Object Formatting Properties...... 565 14.28.5 Visible Area...... 565 14.29 Chart Formatting Properties...... 566 14.29.1 Scale Text...... 566 14.30 Chart Subtype Properties...... 567 14.30.1 Three-dimensional Charts...... 567 14.30.2 Chart Depth...... 567 14.30.3 Chart Symbol...... 567 14.30.4 Chart Symbol Size...... 568 14.30.5 Bar Chart Properties...... 568 14.30.6 Stock Chart Properties...... 569 14.30.7 Line Chart Properties...... 569 14.30.8 Pie Chart Properties...... 570 14.30.9 Lines...... 570 14.30.10 Solid Charts Bars...... 570 14.30.11 Stacked Chart Bars...... 571 14.31 Chart Axes Properties...... 571 14.31.1 Linked Data Formats...... 571 14.31.2 Visibility...... 571 14.31.3 Scaling...... 572 14.31.4 Tickmarks...... 573 14.31.5 Labels...... 573 14.32 Common Chart Properties...... 574 14.32.1 Stacked Text...... 574 14.32.2 Rotation Angle...... 574 14.32.3 Data Labels...... 574 14.33 Statistical Properties...... 575 14.33.1 Mean Value...... 575 14.33.2 Error Category...... 576 14.34 Plot Area Properties...... 577 14.34.1 Series Source...... 577 14.35 Regression Curve Properties...... 578 14.35.1 Regression Type...... 578 14.36 Presentation Page Attributes...... 578 14.36.1 Transition Type...... 579 14.36.2 Transition Style...... 579

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 24 of 607 14.36.3 Transition Speed...... 581 14.36.4 Page Duration...... 581 14.36.5 Page Visibility...... 581 14.36.6 Sound...... 582 14.36.7 Background Size...... 582 14.36.8 Background Objects Visible...... 582 14.36.9 Background Visible...... 582 15 Data Types and Schema Definitions...... 584 15.1 Data Types...... 584 15.2 Other Definitions...... 589 15.3 Relax-NG Schema Suffix...... 589 16 Packages...... 590 16.1 Introduction...... 590 16.2 Zip File Structure...... 590 16.3 Encryption...... 591 16.4 MIME Type Stream...... 591 16.5 Usage of URIs Within Packages...... 592 16.6 Manifest File...... 592 16.6.1 Relax-NG Schema...... 592 16.6.2 Manifest Root Element...... 593 16.6.3 File Entry...... 593 16.6.4 Encryption Data...... 594 16.6.5 Algorithm...... 595 16.6.6 Key Derivation...... 595 16.6.7 Relax-NG Schema Suffix...... 597 Appendix A. Strict Relax NG Schema...... 598 Appendix B. References...... 600 Appendix C. Core Features Sets (Non Normative)...... 602 Appendix D. Notices...... 607

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 25 of 607 1 Introduction

1.1 Introduction

This document defines an XML schema for office applications and its semantics. The schema is suitable for office documents, including text documents, spreadsheets, charts and graphical documents like drawings or presentations, but is not restricted to these kind of documents. The schema retains high-level information suitable for editing document and is friendly to transformations using XSLT or similar XML-based languages or tools. Chapter 1 contains an introduction to Open Office XML. The document structure of Open Office XML is explained in chapter 2. Chapter 3 described the meta information that can be contained in Open Office XML documents. Chapters 4 and 5 describe the text and paragraph content of an Open Office XML document. Text Fields are described in chapter 6, text indices in chapter 7. Chapter 8 describes the table content of an Open Office XML document, chapter 9 its graphical content, chapter 10 its chart content, and chapter 11 its form content. Content that is common to all kind of documents is described in chapter 12. Chapter 13 explains the style information content of Open Office XML, chapter 14 describes the formatting properties that are defined in Open Office XML. The data types used by Open Office XML are described in chapter 15. Open Office XML makes use of a package concept. These packages are described in chapter 16

1.2 Notation

Within this specification, the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in [RFC2119] if they appear in uppercase bold letters.

1.3 Namespaces

Table 1 lists the namespaces that are defined by the Open Office format and their default prefixes. For more information about XML namespaces, please refer to the Namespaces in XML specification [xml-names].

Table 1: XML Namespaces defined by the Open Office schema

Prefix Description Namespace

office For all common pieces of information that urn:oasis:names:tc:openoffice:xmlns: are not contained in another, more office:1.0 specific namespace.

meta For elements and attributes that describe urn:oasis:names:tc:openoffice:xmlns: meta information. meta:1.0

Config For elements and attributes that describe urn:oasis:names:tc:openoffice:xmlns: application specific settings. config:1.0

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 26 of 607 Prefix Description Namespace

text For elements and attributes that may urn:oasis:names:tc:openoffice:xmlns: occur within text documents and text parts text:1.0 of other document types, such as the contents of a spreadsheet cell.

table For elements and attributes that may urn:oasis:names:tc:openoffice:xmlns: occur within spreadsheets or within table table:1.0 definitions of a text document.

draw For elements and attributes that describe urn:oasis:names:tc:openoffice:xmlns: graphic content. drawing:1.0

presentation For elements and attributes that describe urn:oasis:names:tc:openoffice:xmlns: presentation content. presentation:1.0

dr3d For elements and attributes that describe urn:oasis:names:tc:openoffice:xmlns: 3D graphic content. dr3d:1.0

chart For elements and attributes that describe urn:oasis:names:tc:openoffice:xmlns: chart content. chart:1.0

form For elements and attributes that describe urn:oasis:names:tc:openoffice:xmlns: forms and controls. form:1.0

script For elements and attributes that represent urn:oasis:names:tc:openoffice:xmlns: scripts or events. script:1.0

style For elements and attributes that describe urn:oasis:names:tc:openoffice:xmlns: the style and inheritance model used by style:1.0 Open Office XML as well as some common formatting attributes.

number For elements and attributes that describe urn:oasis:names:tc:openoffice:xmlns: data style information. data style:1.0

manifest For elements and attribute contained in urn:oasis:names:tc:openoffice:xmlns: the package manifest. manifest:1.0 Table 2 lists the namespaces that imported into the Open Office format and their default prefixes.

Table 2: XML Namespaces used by the Open Office schema

dc The Dublin Core Namespace (see http://purl.org/dc/elements/1.1/ [DCMI])

xlink The XLink namespace. (see [XLink]) http://www.w3.org/1999/xlink

math MathML Namespace (see [MathML]) http://www.w3.org/1998/Math/MathML

fo The XSL formatting objects and http://www.w3.org/1999/XSL/Format properties namespace. (see [XSL])

svg The SVG namespace. (see [SVG]) http://www.w3.org/2000/svg

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 27 of 607 1.4 Relax-NG Schema

The normative XML Schema for Open Office XML is embedded within this specification. It can be obtained from the specification document by concatenating all schema fragments contained in chapters 1 to 15. All schema fragments have a gray background color and line numbers. The schema language used within this specification is Relax-NG (see [RNG]). The schema provided in this specification permits arbitrary content within meta information elements and formatting properties elements as described in section 1.5. Appendix A contains a schema that restricts the content within these elements to the attributes and elements defined in this specification. Prefix for the normative Relax-NG schema: 1 2 12 13

1.5 Document Processing and Conformance

Open Office documents MAY contain elements and attributes not specified within the Open Office schema. Such elements and attributes must not be part of a namespace that is defined within this specification and are called foreign elements and attributes. Conforming applications either MUST read documents that are valid against the OpenOffice schema if all foreign elements and attributes are removed before validation takes place, or MUST

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 28 of 607 write documents that are valid against the Open Office schema if all foreign elements and attributes are removed before validation takes place. Conforming applications that read and write documents MAY preserve foreign elements and attributes, but don't have to. There are two exceptions from the above rules:

– The various elements (see section 14) MAY have arbitrary attributes attached and MAY have arbitrary element content. All attributes attached to these elements and elements contained within these elements SHOULD be preserved (see section 14.1.3);

– elements contained within the element MAY have arbitrary element content and SHOULD be preserved (see section 2.2.1).

Foreign elements MAY have an office:process-content attribute attached that has the value true or false. If the attribute's value is true, or if the attribute does not exist, the element's content SHOULD be processed by conforming applications. Otherwise conforming applications SHOULD NOT process the element's content, but MAY only preserve its content. If the element's content should be processed, the document itself MUST be valid against the Open Office schema if the unknown element is replaced with its content only. Conforming applications MUST read documents containing processing instructions and SHOULD preserve them. There are no rules regarding the elements and attributes that actually have to be supported by conforming applications, except that applications should not use foreign elements and attributes for features where a definition exists within the Open Office schema. 39 40 41 42 43 44 45

1.6 White-Space Processing and EOL Handling

The W3C XML specification [XML1.0]requires that white-space characters are ignored for elements that have element content, in other words that contain elements but not text. This condition applies to the following white-space and end-of-line (EOL) Unicode characters:

● HORIZONTAL TABULATION (0x0009)

● LINE FEED (0x000A)

● CARRIAGE RETURN (0x000D)

● SPACE (0x0020)) For any other element, white-spaces are preserved by default. Unless otherwise stated, there is no special processing for any of the four white-space characters. For some elements, different white-space processing may take place, for example the paragraph element. The XML specification also requires that any of the four white-space characters that is contained in an attribute value is normalized to a SPACE character. One of the following characters may be used to represent line ends:

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 29 of 607 ● LINE FEED

● CARRIAGE RETURN

● The sequence of the characters CARRIAGE RETURN and LINE FEED Conforming to the XML specification, all the possible line ends are normalized to a single LINE FEED character. As a consequence of the white-space and EOL processing rules, any CARRIAGE RETURN characters that are contained either in the text content of an element or in an attribute value must be encoded by the character entity . The same applies to the HORIZONTAL TABULATION and LINE FEED characters if they are contained in an attribute value.

1.7 MIME Types

The following MIME types SHOULD be used for office documents that conform to this specification, provided that they are contained in a package (see also section 2.1). • application/vnd.oasis.openoffice.text for text documents • application/vnd.oasis.openoffice.drawing for drawing documents • application/vnd.oasis.openoffice.presentation for presentation documents • application/vnd.oasis.openoffice.spreadsheet for spreadsheet documents • application/vnd.oasis.openoffice.chart for chart documents • application/vnd.oasis.openoffice.image for image documents There are no specific MIME types for office documents that conform to this specification but are not contained in a package. It is recommended to use text/xml for such documents. Note: At the date this specification was published, the registration of the above MIME types according to [RFC2048] did not take place. Unless above MIME types have been registered, it is RECOMMENDED to use MIME types that follow the schema application/x- vnd.oasis.openoffice..

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 30 of 607 2 Document Structure

This chapter introduces the structure of the Open Office XML format. The chapter contains the following sections: • Document Roots • Document Meta Data • Body Element and Document Types • Application Settings • Scripts • Font Face Declarations • Styles • Page Styles and Layout Each structural component in an Open Office XML document is represented by an element, with associated attributes. The structure of XML documents applies to all Open Office document types. There is no difference between a text document, a spreadsheet or a drawing, apart from the content. Also, all document types may contain different styles. You can exchange document content that is common to all document types from one type of document to another.

2.1 Document Roots

A document root element is the primary element of an Open Office XML document. It contains the entire document. All types of Open Office documents, for example, text documents, spreadsheets, and drawing documents use the same types of document root elements. An Open Office document can be represented in the following two ways:

● As a single XML document.

● As a collection of several subdocuments within a package (see section 16), each of which stores part of the complete document. Each subdocument has a different document root and stores a particular aspect of the XML document. For example, one subdocument contains the style information and another subdocument contains the content of the document. All types of documents, for example, text and spreadsheet documents, use the same document and subdocuments definitions. There are four types of subdocuments, each with different root elements. Additionally, the single XML document has its own root element, for a total of five different supported root elements. The root elements are summarized in the following table:

Root Element XML Document

Complete office document in a single XML document.

Document content and automatic styles used in the content.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 31 of 607 Root Element XML Document

Styles used in the document content and automatic styles used in the styles themselves.

Document meta information, such as the author or the time of the last save action.

Application-specific settings, such as the window size or printer information. The definitions of the root elements described in the table above are analogous to the definition of , except that the child element specification is suitably restricted. 46 47 48 49 50 51 52 53 54

2.1.1 Document Root Element Content Models

The content models of the five root elements is summarized in the following table. Note that may contain all supported top-level elements. None of the four subdocument root elements contain the complete data, but four combined do.

Root Element meta app. script font style auto mast body data sett. decls style style

       

   

   

 The root contains a complete document: 55 56 57 58 59 60 61 62 63 64 65 66 67 The root contains only the document content, along with the automatic styles needed for the document content:

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 32 of 607 68 69 70 71 72 73 74 75 76 The root contains all named styles of a document, along with the automatic styles needed for the named styles: 77 78 79 80 81 82 83 84 85 The root contains the meta information about a document. 86 87 88 89 90 91 The root contains application specific settings to be applied when processing this document. 92 93 94 95 96 97

2.1.2 Document Root Attributes

All root elements take an office:version attribute, which indicates which version of this specification it complies with. The version number is in the format revision.version. If the file has a version known to an XML processor, it may validate the document. Otherwise, it's optional to validate the document, but the document must be well formed. 98 99 100 101 102 103 104

2.2 Document Metadata

Metadata is general information about a document. In an Open Office XML document, all of the metadata elements are contained in an element, usually located at start of the document. Metadata elements may be omitted or occur multiple times. It is application-specific how to update multiple instances of the same elements.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 33 of 607 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121

2.2.1 Pre-Defined vs. Custom Metadata

In Open Office XML the metadata is comprised of pre-defined metadata elements, user defined metadata, as well as custom metadata elements. The pre-defined metadata elements have defined semantics. They SHOULD be processed and updated by editing applications. They can be referenced from within the document through the use of suitable text fields. User-defined metadata is a more generic mechanism which specifies a triplet of name, type, and value. Supporting applications can present these value to the user, making use of the supplied data type. The user-defined metadata can be referenced from within the document through the use of suitable text fields. Custom metadata are arbitrary elements inside . Since their semantics is not defined in this specification, conforming applications in general cannot process or display this data. Applications SHOULD preserve this data when editing the document.

2.2.2 Sample Metadata

Example: Sample metadata in an Open Office XML document Title of the document Description/Comment for the document User Name 1999-10-18T12:34:56 User Name 1999-10-19T15:16:17 User Name 1999-10-20T16:17:18 Description of the document PT5H10M10S First keyword Second keyword Third keyword de-DE

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 34 of 607 meta:type="string">Value 1 1.234

2.3 Body Element and Document Types

The document body contains an element to indicate which type of content this document contains. Currently supported document types are:

• text documents

• drawing documents

• presentation documents

• spreadsheet documents

• chart documents

• image documents All document types share the same content elements, but different document types place different restrictions on which elements may occur, and in which numbers. The document content is typically framed by a prelude and epilogue, which contains content elements which may only occur once inside a document of the specific type. 122 123 124 125 126

2.3.1 Text Documents

The content of text documents mainly consists of a sequence containing any number of paragraphs, tables, indices, text frames, text sections, and graphical elements. Additionally, a text document may contain forms, change tracking information and variable declarations. Each of these are contained in a container element in the document prelude, and may be referenced from the document content. 127 128 129 130 131 132 133 134 135 136

Text Document Content Model

The text document prelude contains the document's form data, change tracking information, and variable declarations. To allow office applications to implement functionality that usually is available in spreadsheets also for text documents, it may also contain some elements that implement enhanced table features. See also section 2.3.4. 137 138

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 35 of 607 139 140 141 142 The main document content contains any sequence of text content elements, which includes paragraphs (and headings), text sections (and indices), tables, and graphical shapes. As an alternative, a text document may contain of a single page sequence. It is not required that a text document contains a paragraph. A text document may consist of a sequence frames only. 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 There are no text documents specific epilogue elements, but the epilogue may contain some elements that implement enhanced table features. See also section 2.3.4. 178 179 180

Global Text Documents

There is a common use case for large documents to be edited in separate entities, such that there is a 'global' document, containing several linked constituent subdocuments. This can be implemented by using linked text sections (see chapter 4.4) To facilitate an editing application adopting the user interface to better support the notion of 'global' document with constituent parts (as opposed to a document with arbitrary linked content), the text:global flag can be used. If set to true, it informs applications that linked sections in this document have part-of semantics. The actual XML representation of the sections does not change.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 36 of 607 181 182 183 184 185 186 187

2.3.2 Drawing Documents

The content of drawing document consists of a sequence of draw pages. 188 189 190 191 192 193 194 195 196 197 198 199

Drawing Document Content Model

The drawing document prelude may contain text declarations only. To allow office applications to implement functionality that usually is available in spreadsheets also for drawing documents, it may also contain some elements that implement enhanced table features. See also section 2.3.4. 200 201 202 203 The main document content contains a sequence of draw pages. 204 205 206 207 208 There are no drawing documents specific epilogue elements, but the epilogue may contain some elements that implement enhanced table features. See also section 2.3.4. 209 210 211

2.3.3 Presentation Documents

The content of presentation document consists of a sequence of draw pages. 212 213 214 215 216 217 218 219 220

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 37 of 607 221 222 223

Presentation Document Content Model

The presentation document prelude equals the one of a drawing document. See section 2.3.2. 224 225 226 227 The main document content contains a sequence of draw pages. 228 229 230 231 232 The epilogue of presentation documents may contain presentation settings. Additionally, it may contain some elements that implement enhanced table features. See also section 2.3.4. 233 234 235 236

2.3.4 Spreadsheet Documents

The content of spreadsheet documents mainly consists of a sequence of tables. Additionally, a spreadsheet document may contain forms, change tracking information and various kinds of declarations that simplify the usage of spreadsheet tables and their analysis. Each of these are contained in either the document prelude, or the document epilogue. 237 238 239 240 241 242 243 244

Spreadsheet Document Content Model

The spreadsheet document prelude contains the document's form data, change tracking information, calculation setting for formulas, validation rules for cell content and declarations for label ranges. 245 246 247 248 249 250 251 252 253 254 255 256

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 38 of 607 257 258 259 260 261 262 263 The main document is a list of tables. 264 265 266 267 268 The epilogue of spreadsheet documents contains declarations for named expressions, database ranges, data pilot tables, consolidation operations and DDE links. 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289

2.3.5 Chart Documents

The content of chart documents mainly consists of a chart element. 290 291 292 293 294 295 296 297 298 299 300 301

Chart Document Content Model

To allow office applications to implement functionality that usually is available in spreadsheets also for the table the may be contained in a chart, the chart document prelude may contain some elements that implement enhanced table features. See also section 2.3.4. 302

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 39 of 607 303 304 305 The main document is a chart element only. 306 307 308 There are no chart documents specific epilogue elements, but the epilogue may contain some elements that implement enhanced table features. See also section 2.3.4. 309 310 311

2.3.6 Image Documents

The content of an image document is a frame element only. The frame element must contain a single image element. 312 313 314 315 316 317 318 319 320 321 322 323

Image Document Content Model

The image document prelude is empty. 324 325 326 The main document content contains a frame only. 327 328 329 There are no image documents specific epilogue elements. 330 331 332

2.4 Application Settings

Application settings are contained in a element. 333 334 335 336 337

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 40 of 607 338 339 340 341 The settings for office applications may be divided into several categories each represented by a element. For instance the following two categories may exist:

● Document settings, for example default printer.

● View settings, for example zoom level. Settings that are shared by different applications have the same name and are of the same type.

2.4.1 Sequence of Settings

The element is a container element for all types of setting elements. The settings can be contained in the element is any order. 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358

Config Name

The config:name attribute identifies the name of the setting container. For top level elements, that are elements that are direct children of the element, the name should be preceded by a namespace prefix that identifies the application the settings belong to. 359 360 361 362 363 Example: 0

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 41 of 607 2.4.2 Base Settings

The element contains all base settings. The value of the setting is stored in the element. 364 365 366 367 368 369

Config Name

The config:name attribute identifies the name of the setting. 370 371 372 373 374

Config Type

The config:type attribute identifies the data type of setting. 375 376 377 378 boolean 379 short 380 int 381 long 382 double 383 string 384 datetime 385 base64Binary 386 387 388

2.4.3 Index Access of Sequences

The element is a container element for sequences. The order specifies the index of the elements 389 390 391 392 393 394 395 396

Config Name

The config:name attribute identifies the name of the setting sequence. 397 398 399

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 42 of 607 400 401

2.4.4 Map Entry

The element represents an entry in an indexed or named settings sequence. It is a container element for all types of setting elements. 402 403 404 405 406 407

Config Name

The config:name attribute identifies the name of the setting sequence. 408 409 410 411 412 413 414

2.4.5 Name Access of Sequences

The element is a container element for sequences, where each setting in the sequence is identified by its name. 415 416 417 418 419 420 421 422

Config Name

The config:name attribute identifies the name of the setting sequence. 423 424 425 426 427

2.4.6 Cursor Position Setting

A common view setting for editing applications is the position where the text cursor was while saving the document. For WYSIWYG application, this usually will be a position within a paragraph only. For application that provide an XML based view of the document, the cursor position could be also between arbitrary elements, or even within tags. To represent a text cursor position within Open Office XML, a processing instruction with PITarget openoffice (see §2.6 of [XML1.0]) SHOULD be used. The character content of the

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 43 of 607 processing instruction MUST follow the XML start tag content, that is, it MUST have a name and an arbitrary number of attributes. The name of the cursor position processing instruction is cursor-position. It may have arbitrary application specific attributes, for instance to connect the cursor position with a certain view of the document, where the views themselves are specified as application specific settings. Where a text cursor position is not sufficient to recreate a document view, applications may use arbitrary document specific settings in addition to the cursor position processing instruction. They may also use arbitrary document specific settings if the cursor position is not a text cursor position, but for instance a selection of drawing objects. Example: cursor position processing instruction This is an example.

2.5 Scripts

A document may contain several scripts in different scripting languages. Each script is represented by a element. All these script elements are contained in a single element. Scripts do not imply a scripting language or an object model. For this reason, a script can operate on the Document Object Model (DOM) of an Open Office XML document or on an application specific API. Scripts cannot modify a document while the document is loading. However, some events are called immediately after the document is loaded. 428 429 430 431 432 433 434 435 436

2.5.1 Script

The element contains script language specific content. In most situations, the element contains the source code of the script, but it may also contain a compiled version of the script or a link to some external script code. 437 438 439 440 441 442 443 444

Script Language

The attribute script:language specifies the language of the script by its name. Since script language names are application specific, the name should be preceded by a namespace prefix. 445 446

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 44 of 607 447 448 449

2.6 Font Face Declarations

An Open Office XML may contain font face declarations. A font face declaration provides information about the fonts used by the author of a document, so that these fonts or fonts that are very close to these fonts can be located on other systems. See section 13.6 for details. 450 451 452 453 454 455 456 457 458

2.7 Styles

An Open Office XML document contains the following types of styles:

● Common styles Most office applications support styles within their user interface. The XML representations of such styles that are available in the user interface are referred to as styles, or, where a differentiation from the other types of styles is required, they are referred to as common styles. The term common indicates that this is the type of style that an office application user, who is not interested in the Open Office XML file format, considers to be a style.

● Automatic styles An automatic style contains formatting properties that, in the user interface view of a document, are assigned to an object such as a paragraph. The term automatic indicates that the style is generated automatically at export time. In other words, formatting properties that are immediately assigned to a specific object are represented by an automatic style within an Open Office XML document. This way, a separation of content and layout is achieved.

● Master styles A master style is a common style that contains formatting information and additional content that is displayed with the document content when the style is applied. An example of a master style are master pages. Master pages can be used in graphical applications. In this case, the additional content is any drawing shapes that are displayed as the background of the draw page. Master pages can also be used in text documents. In this case, the additional content is the headers and footers. Please note that the content that is contained within master styles is additional content that influences the representation of a document but does not change the content of a document. As far as the office application user is concerned, all types of styles are part of the document. They represent the output device-independent layout and formatting information that the author of a document has used to create or edit the document. The assumption is that the author of the document wants this formatting and layout information to be preserved when the document is reloaded or displayed on a certain device, because this is common practice for documents created by word processors. This type of style information differs from [CSS2] or [XSLT] style sheets that are used to display a document. An additional style sheet for CSS, XSLT, and so on, is required to display an Open Office XML document on a certain device. This style sheet must take into account the styles in the

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 45 of 607 document as well as the requirements and capabilities of the output device. The ideal case is that this style sheet depends on the output device only. See section 13 for more information on styles.

2.7.1 Location of Styles

Common and automatic styles have the same XML representation, but they are contained within two distinct container elements, as follows:

for common styles

for automatic styles Master styles are contained within a container element of its own:

459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 46 of 607 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 The following examples illustrate the different types of Open Office XML styles.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 47 of 607 Example: Open Office XML styles ... ...

2.8 Page Styles and Layout

The style and layout of the pages in a document is determined by:

● Page Layouts

● Master Pages A page layout describes the physical properties or geometry of a page, for example, page size, margins, header height, and footer height. A master page is a template for pages in a document. It contains a reference to a page layout which specifies the physical properties of the page and can also contain static content that is displayed on all pages in the document that use the master page. Examples of static content are headers, footers, or background graphics. If a text or spreadsheet document is displayed in a paged layout, the master pages are instantiated to generate a sequence of pages containing the document content. When a master page is instantiated, an empty page is generated with the properties of the page master and the static content of the master page. The body of the page is then filled with content. If multiple pages in a document use the same master page, the master page can be instantiated several times within the document. In text and spreadsheet documents, you can assign a master page to paragraph and table styles using a style:master-page-name attribute. Each time the paragraph or table style is applied to text, a page break is inserted before the paragraph or table. The page that starts at the page break position uses the specified master page. In drawings and presentations, you can assign master pages to drawing pages using a style:parent-style-name attribute. Note: The Open Office XML paging methodology differs significantly from the methodology used in [XSL]. In XSL, headers and footers are contained within page sequences that also contain the document content. The content of headers and footers can be changed or omitted without affecting the document content. In Open Office XML, headers and footers are contained in page styles. Page layouts are described in section 13.3. Master pages are described in section 13.4.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 48 of 607 3 Meta Data Elements

The metadata elements borrow heavily upon the metadata standards developed by the Dublin Core Metadata Initiative (http://www.dublincore.org). Metadata elements drawn directly from the Dublin Core work use its namespace prefix (see section 1.3).

3.1 Pre-Defined Metadata Elements

There is a set of pre-defined metadata elements which should be processed and updated by the applications. Metadata elements may be omitted or occur multiple times. It is application-specific how to update multiple instances of the same elements.

3.1.1 Generator

The element contains a string that identifies the application or tool that was used to create or last modify the XML document. This string SHOULD match the definition for user-agents in the HTTP protocol a specified in section 14.34 of [RFC2616]. In addition to this, the product versions contained in the string SHOULD allow to differ between all versions that get released of a user agent, for instance by including build ids (that are existing for many open source projects) or patch level information. Conforming applications MAY use the generator string to work around bugs that exist or existed in certain applications, but MUST NOT deliberately implement a different behavior depending on a certain generator string. If the application that created the document could not provide an identifier string, the application does not export this element. If another application modifies the document and it cannot provide a unique identifier, it MUST NOT export the original identifier belonging to the application that created the document. 569 570 571 572 573

3.1.2 Title

The element specifies the title of the document. 574 575 576 577 578

3.1.3 Description

The element contains a brief description of the document. 579 580 581 582 583

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 49 of 607 3.1.4 Subject

The element specifies the subject of the document. 584 585 586 587 588

3.1.5 Keywords

The element contains a keyword pertaining to the document. The metadata can contain any number of elements, each element specifying one keyword. 589 590 591 592 593

3.1.6 Initial Creator

The element specifies the name of the person who created the document initially. 594 595 596 597 598

3.1.7 Creator

The element specifies the name of the person who last modified the document. The name of this element was chosen for compatibility with the Dublin Core. 599 600 601 602 603 604 605 606

3.1.8 Printed By

The element specifies the name of the last person who printed the document. 607 608 609 610 611

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 50 of 607 3.1.9 Creation Date and Time

The element specifies the date and time when the document was created initially. To conform with ISO 8601, the date and time format is YYYY-MM-DDThh:mm:ss. See [ISO8601]. 612 613 614 615 616

3.1.10 Modification Date and Time

The element specifies the date and time when the document was last modified. To conform with ISO 8601, the date and time format is YYYY-MM-DDThh:mm:ss. See [ISO8601]. The name of this element was chosen for compatibility with the Dublin Core. 617 618 619 620 621 622 623 624

3.1.11 Print Date and Time

The element specifies the date and time when the document was last printed. To conform with ISO 8601, the date and time format is YYYY-MM-DDThh:mm:ss. See . 625 626 627 628 629

3.1.12 Document Template

The element contains a URL for the document template that was used to create the document. The URL is specified as an XLink. This element conforms to the XLink Specification. See [XLink]. The attributes that you can associate with the element are:

● Template location

● Template title

● Template modification date and time

Template Location

An xlink:href attribute specifies the location of the document template.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 51 of 607 Template Title

The xlink:title attribute specifies the name of the document template.

Template Modification Date and Time

The meta:date attribute specifies the date and time when the template was last modified, prior to being used to create the current document. To conform with ISO 8601, the date and time format is YYYY-MM-DDThh:mm:ss. See [ISO8601]. 630 631 632 633 634 635 636 637 simple 638 639 640 641 642 onRequest 643 644 645 646 647 648 649 650 651 652 653 654 655 656

3.1.13 Automatic Reload

The element specifies whether a document is reloaded or replaced by another document after a certain period of time has elapsed. The attributes that you can associate with the element are:

● Reload URL

● Reload delay

Reload URL

If a loaded document should be replaced by another document after a certain period of time, the element is presented as an XLink. An xlink:href attribute identifies the URL of the replacement document.

Reload Delay

The meta:delay attribute specifies the reload delay.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 52 of 607 To conform with ISO 8601, the format of the value of this attribute is PnYnMnDTnHnMnS. See §5.5.3.2 of ISO 8601 for more detailed information on this time format. See [ISO8601]. 657 658 659 660 661 simple 662 663 664 665 666 replace 667 668 669 670 671 onLoad 672 673 674 675 676 677 678 679 680 681 682 683 684 685

3.1.14 Hyperlink Behavior

The element specifies the default behavior for hyperlinks in the document. The attribute that you can associate with the element is:

● Target frame

Target Frame

The meta:target-frame-name attribute specifies the name of the default target frame in which to display a document referenced by a hyperlink. This attribute can have one of the following values:

● _self : The referenced document replaces the content of the current frame.

● _blank : The referenced document is displayed in a new frame.

● _parent : The referenced document is displayed in the parent frame of the current frame.

● _top : The referenced document is displayed in the topmost frame, that is the frame that contains the current frame as a child or descendent but is not contained within another frame.

● A frame name : The referenced document is displayed in the named frame. If the named frame does not exist, a new frame with that name is created. To conform with the XLink Specification, an additional xlink:show attribute is attached to the element. If the value of the meta:target-frame-name

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 53 of 607 attribute is _blank, the xlink:show attribute value is new. If the value of the meta:target- frame-name attribute is any of the other value options, the value of the xlink:show attribute is replace. 686 687 688 689 690 691 692 693 694 695 696 new 697 replace 698 699 700 701 702

3.1.15 Language

The element specifies the default language of the document. The manner in which the language is represented is similar to the language tag described in [RFC3066]. It consists of a two or three letter Language Code taken from the ISO 639 standard optionally followed by a hyphen (-) and a two-letter Country Code taken from the ISO 3166 standard. 703 704 705 706 707

3.1.16 Editing Cycles

The element specifies the number of editing cycles the document has been through. The value of this element is incremented every time the document is saved. The element contains the number of editing cycles as text. 708 709 710 711 712

3.1.17 Editing Duration

The element specifies the total time spent editing the document. The duration is represented in the manner described in §5.5.3.2 of ISO 8601. See [ISO8601]. 713 714 715 716 717

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 54 of 607 3.1.18 Document Statistics

The element specifies the statistics of the document, for example, the page count, word count, and so on. The statistics are specified as attributes of the element and the statistics that are exported with the document depend on the document type and the application used to create the document.

Document Document Statistics Type Attributes

Text meta:page-count meta:table-count meta:draw-count meta:image-count meta:ole-object-count meta:paragraph-count meta:word-count meta:character-count meta:row-count

Spreadsheet meta:page-count meta:table-count meta:cell-count meta:object-count

Graphic meta:page-count meta:object-count

718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 55 of 607 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776

3.2 User-defined Metadata

The element specifies any additional user-defined metadata for the document. Each instance of this element can contain one piece of user-defined metadata. The element contains:

● A meta:name attribute, which identifies the name of the metadata element.

● An optional meta:type attribute, which identifies the type of the metadata element. The allowed meta types equal the one for fields, except that percentages and currencies aren't supported (see section 6.7.1).

● The value of the element, which is the metadata in the format described in section 6.7.1 as value of the office:value attributes for the various data types. The default type for meta-data elements is string. 777 778 779 780 781 782 783 784 785 float 786 787 788 789 790 791 date 792 793 794 795

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 56 of 607 796 797 time 798 799 800 801 802 803 boolean 804 805 806 807 808 809 string 810 811 812 813 814 815 816

3.3 Custom Metadata

In addition to the pre-defined metadata elements, applications should also preserve any additional content found inside the element. As there is no semantics specified for such foreign content, applications need not process this information other than to preserve it when editing the document.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 57 of 607 4 Text Content

4.1 Headings, Paragraphs and Basic Text Structure

This section describes the XML elements and attributes that you use to represent heading and paragraph components in a text document. The elements and represent headings and paragraphs, respectively, and are collectively referred to as paragraph elements. All text content in an Open Office XML file must be contained in either of these elements.

4.1.1 Headings

Headings define the chapter structure for an Open Office XML document. A (sub-)chapter begins with a heading and extends to the next heading at the same or higher level. 817 818 819 820 821 822 823 824 825 826 827 828

Heading Level

The text:outline-level attribute associated with the heading element determines the level of the heading, starting with 1. Headings without a level attribute are assumed to be at level 1. 829 830 831 832 833

Heading Numbering

Header numbering can be changed by additional attributes, similar to those on list items (see section 4.3.2, below). The numbering of headers can be restarted by setting the text:restart- numbering attribute to true. 834 835 836 837 838 839 840 The attribute text:start-value may be used to restart the numbering of headers of the current header's level, by setting a new value for the numbering.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 58 of 607 841 842 843 844 845 846 847

Formatted Heading Number

If a heading has a numbering applied, the text of the formatted number can be included in a element. This text can be used by applications that do not support numbering of headings, but it will be ignored by applications that support numbering. 848 849 850 851 852

4.1.2 Paragraphs

Paragraphs are the unit of text. 853 854 855 856 857 858 859 860

4.1.3 Common Paragraph Elements Attributes

The paragraph elements can be associated with style name, class names or conditional style name attributes. These attributes must reference a paragraph style. A text:style-name attribute references a single paragraph style, while a text:cond-style- name attribute references a conditional-style (see section 13.1.1). If a conditional style is applied to a paragraph, the text:style-name attribute contains the name of the style that is applied under that condition. The text:style-name attribute does not contain the name of the conditional style that contains the conditions and maps to other styles. The conditional style name is the value of the text:cond-style-name attribute. A text:class-names attribute takes a whitespace separated list of paragraph style names. The referenced styles are applied in the order they are contained in the list. If both, text:style- name and text:class-names are present, the style referenced by the text:style-name attribute is treated like being the first style in the list. If a conditional style is specified together with style:class-names attribute, but without the text:style-name attribute, then first style in style list should meet the requirements that would apply to the text:style-name attribute if it exists. Conforming application should support the text:class-names attribute and also should preserve it while editing. This XML structure simplifies [XSLT] transformations because XSLT only has to acknowledge the conditional style if the formatting attributes are relevant. The referenced style can be a common style or an automatic style.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 59 of 607 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 Example: Styles and conditional styles in Open Office XML "Heading 1" is not a conditional style. "Text body" is a conditional style. If it is contained in a numbered paragraph, it maps to "Numbering 1". This is assumed in this example.

4.2 Page Sequences

A page sequence element specifies a sequence of master pages that are instantiated in exactly the same order as they are referenced in the page sequence. If a text document contains a page sequence, it will consist of exactly as many page as specified. The only content that is allowed in this case are drawing objects, namely text boxes. There is no main text flow consisting of headings and paragraphs as this is the case for document that do not contain a page sequence. That means that all text content has to be included within text boxes. Example: Page Sequence ... ... Example text.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 60 of 607 ...

878 879 880 881 882 883 884

4.2.1 Page

The element specifies a single page within a page sequence. 885 886 887 888 889 890

Master Page Name

The text:master-page-name attribute specifies the master page that is instantiated. 891 892 893 894 895

4.3 Lists

The Open Office format supports list structures, similar to those found in [HTML4]. A list is a paragraph-level element, which contains a sequence of list items, optionally preceded by a special list item called the list header. Each list item contains a sequence of paragraph or list elements. Lists can be nested. Lists may be numbered. The numbering may be (re-)started with a specific numbering at each list item. Lists may also continue numbering from other lists, allowing the user to merge several lists into a single, discontinuous list. Note that whether the list numbering is displayed depends on a suitable list style being used. In addition to this structural information, lists can have list styles associated with them, which contain the relevant layout information, such as

• the type of list item label, such as bullet or number,

• list item label width and distance,

• bullet character or image (if any),

• number format for the bullet numbering (if any),

• paragraph indent for list items.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 61 of 607 4.3.1 List Block

A list is represented by the element. It contains an optional list header, followed by any number of list items.

Every list has a list level, which is determined by the nesting of the elements. If a list is not contained within another list, the list level is 1. If the list in contained within another list, the list level is the list level of the list in which is it contained incremented by one. If a list is contained in a table cell or text box, the list level returns to 1, even though the table or textbox itself may be nested within another list. The attributes that you can associate with the list element is:

• Style name

• Continue numbering 896 897 898 899 900 901 902 903 904 905 906

Style Name

The optional text:style-name attribute specifies the name of the list style that is applied to the list. If this attribute is not included and therefore no list style is specified, one of the following actions is taken:

• If the list is contained within another list, the list style defaults to the style of the surrounding list.

• If there is no list style specified for the surrounding list, but the list contains paragraphs that have paragraph styles attached specifying a list style, this list style is used for any of these paragraphs.

• A default list style is applied to any other paragraphs. To determine which formatting properties are applied to a list, the list level and list style name are taken into account. See section 13.10 for more information on list formatting properties. 907 908 909 910 911 912 913

Continue Numbering

By default, the first list item in a list starts with the number specified in the list style. If the list follows another ordered list and you want to continue the numbering from the preceding list, you can use the continue numbering attribute.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 62 of 607 This attribute can be used with the element and can have a value of true or false. If the value of the attribute is true and the numbering style of the preceding list is the same as the current list, the number of the first list item in the current list is the number of the last item in the preceding list incremented by one. 914 915 916 917 918 919 920

4.3.2 List Item

List items contain the textual content of a list. A element can contain paragraphs or lists. A list item cannot contain headings or tables. 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 The first line in a list item is preceded by a bullet or number, depending on the list style assigned to the list. If a list item starts another list immediately and does not contain any text, no bullet or number is displayed. The attributes that you can associate with the element are:

• Restart numbering

• Restart numbering value

Restart Numbering

You can restart the numbering of a list and the numbering of the surrounding lists by attaching the text:restart-numbering attribute to the element. This attribute can have a value of true or false. It can be used for list items in ordered or unordered lists. If the attribute is applied to a list item in an unordered list, it affects the numbering of all surrounding ordered lists and ordered lists that are contained within the item. 939 940 941 942 943

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 63 of 607 944 945

Restart Numbering Value

You can restart the numbering of the current list at a certain number. Use the text:start- value attribute to specify the number with which to restart the list. This attribute can only be applied to paragraphs with a numbering list style. Unlike the text:restart-numbering attribute, it restarts the numbering of the current list only. 946 947 948 949 950 951 952

Formatted Number

If a list item has a numbering applied, the text of the formatted number can be included in a element. This text can be used by applications that do not support numbering, but it will be ignored by applications that support numbering. See also section 4.1.1. Example: Lists and sublists This is the first list item This is a continuation of the first list item. This is the second list item. It contains a sub list. This is a sub list item. This is a sub list item. This is a sub list item. This is the third list item

4.3.3 List Header

A list header is a special kind of list item. It contains one or more paragraphs that are displayed before a list. The paragraphs are formatted like list items but they do not have a preceding number or bullet. The list header is represented by the list header element. 953 954 955 956 957

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 64 of 607 4.3.4 Numbered Paragraphs

In some instances, it is desirable to specify a list not as a structural element comprising of several list items, but to determine on a per-paragraph level whether the paragraph is numbered, and at which level. To facilitate this, the element allows to number an individual paragraph, as if it was part of a list at a specified level. Numbered paragraphs may use the same continuos numbering properties that list items use, and thus form an equivalent, alternate way of specifying lists. A list in representation could be converted into a list in representation and vice versa. 958 959 960 961 962 963 964 965 966 967 968 969 A numbered paragraph can be assigned a list level. A numbered paragraph is equivalent to a list nested to the given level, containing one list item with one paragraph. If no level is given, the numbered paragraph is interpreted as being on level 1. 970 971 972 973 974 As a numbered paragraph combines the functionality of a (possibly nested) list with a single list item, it can also use the attributes of those elements. 975 976 977 978 979 980 The text of the formatted number can be included in a element. This text can be used by applications that do not support numbering, but it will be ignored by applications that support numbering. See also section 4.1.1.

4.4 Text Sections

A text section is a named region of paragraph-level text content. Sections start and end on paragraph boundaries and can contain any number of paragraphs. Sections have two uses in the Open Office format: They can be used to assign certain formatting properties to a region of text. They can also be used to group text that is automatically acquired from some external data source. In addition to Sections can contain regular text content or the text can be contained in another file and linked to the section. Sections can also be write-protected or hidden. Sections can have settings for text columns, background color or pattern, and notes configuration. These settings form the section style, which is represented in a element. See section 13.8.3 for details.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 65 of 607 The formatting properties for sections are explained in section 14.7. Sections support two ways of linking to external content. The linking information is contained in the section element's first child contains in formation about the source of this element. Additionally, the section contains the full representation of the data source, so that processors need to understand the section source element only if they wish to update the contents. If a section is linked to another document, the link can be through one of the following:

● A resource identified by an XLink, represented by a text:section-source element

● Dynamic Data Exchange (DDE), represented by a office:dde-source element 981 982 983 984 985 986 987 988 989 990 991 992 993 Note: List items may not contain sections. Thus, lists may only be wholly contained within section elements. If it is desired to achieve the effect of overlapping lists and sections, or of sections contained within lists, the lists must be split into several lists, each of which would then be wholly contained within a section. When splitting the list, suitable attributes for continuos numbering should be set such that display and behavior are the same as with the original list not interrupted by sections.

4.4.1 Section Attributes

Text indices, described in chapter 7, may be considered a special kind of text section, as they share the same general structure as well as certain attributes. These are combined in the following definition: 994 995 996 The remaining attributes in this section are specific to the element.

Section Style

The text:style-name attribute refers to a section style. 997 998 999 1000 1001 1002 1003

Section Name

Every section must have a name that uniquely identifies the section. The text:name attribute contains the name of the section.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 66 of 607 1004 1005 1006 1007 1008

Protected Sections

You can protect a section, which means that a user can not edit the section. The text:protected attribute indicates whether or not a section is protected. The user interface must enforce the protection attribute if it is enabled. 1009 1010 1011 1012 1013 1014 1015 A user can use the user interface to reset the protection flag, unless the section is further protected by a password. In this case, the user must know the password in order to reset the protection flag. The text:protection-key attribute specifies the password that protects the section. To avoid saving the password directly into the XML file, only a hash value of the password is stored. 1016 1017 1018 1019 1020 1021 1022

Hidden Sections and Conditional Sections

Sections can be hidden based on a condition or they can be hidden unconditionally. The text:display attribute specifies whether or not the section is hidden. The value of this attribute can be: • true, the section is displayed. This is the default setting. • none, the section is hidden unconditionally. • condition, the section is hidden under the condition specified in the text:condition attribute. The text:condition attribute specifies the condition under which the section is hidden. The condition is encoded as a string. If the value of text:display is condition, the text:condition attribute must be present. 1023 1024 1025 1026 1027 true 1028 none 1029 1030 1031 1032 1033 condition

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 67 of 607 1034 1035 1036 1037 1038 1039 1040 1041

4.4.2 Section Source

The element indicates that the enclosed section is a linked section. If this element is used, it must be the first element in the element. 1042 1043 1044 1045 1046 The attributes that you can associate with the attribute are:

● Section source URL

● Name of linked section

● Filter name

Section Source URL

These attributes identify the document or section to which the section is linked. The name of the target section is identified by the local part of the URL, following the hash mark. The xlink:href attribute is implied because elements may also link to internal sections. 1047 1048 1049 1050 1051 1052 1053 1054 simple 1055 1056 1057 1058 1059 embed 1060 1061 1062 1063

Name of Linked Section

If the link targets a section of a document, the attribute text:section name contains the name of the target section. If the attribute is not present, the link targets the entire document. 1064 1065 1066 1067

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 68 of 607 1068 1069 1070

Filter Name

The text:filter-name attribute specifies which filter type was used to import the link target. The value of this attribute is implementation dependent. 1071 1072 1073 1074 1075 1076 1077

4.4.3 DDE Source

If sections are linked via DDE, their linking information is represented by elements. It contains attributes that specify the application, topic and item of the DDE connection. Note that because the section contains the XML rendition of the DDE link's content, this information only needs to be processed if updated data from the DDE link are desired. 1078 1079 1080

4.5 Page-bound graphical content

Within text documents, images, embedded objects and other drawing objects appear at the level of a paragraph if they are anchored to a page rather than to a paragraph or a character position within a paragraph. See section 9.2 for details on drawing objects, and section 9.2.15 for their anchoring.

4.6 Change Tracking

This section describes how changes in text documents can be represented.

4.6.1 Tracked Changes

All tracked changes to text documents are stored in a list. The list contains an element for each change made to the document. If the element is absent, change tracking is not enabled. 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 69 of 607 Track Changes

This attribute determines whether or not user agents should track and record changes for this document. 1091 1092 1093 1094 1095 1096 1097

4.6.2 Changed Regions

For every changed region of a document, there is one entry in the list of tracked changes. This entry contains a list of all changes that were applied to the region. The start and end of this region are marked by the start and end elements that are described in the next section. 1098 1099 1100 1101 1102 1103

Change ID

Every element has an ID. The elements that mark the start and end of a region use this ID to identify the region to which they belong. 1104 1105 1106 1107 1108

4.6.3 Insertion

The element contains the information that is required to identify any insertion of content. This content can be a piece of text within a paragraph, a whole paragraph, or a whole table. The inserted content is part of the text document itself and is marked by a change start and a change end element. 1109 1110 1111 1112 1113 Example: Insertion of text Michael Brauer 1999-05-18T12:56:04

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 70 of 607 This is the original text, but this has been added.

4.6.4 Deletion

A element contains content that was deleted while change tracking was enabled. The position where the text was deleted is marked by the change position element. If part of a paragraph was deleted, the text that was deleted is contained in this element as a paragraph element. If the deleted text is reinserted into the document, the paragraph is joined with the paragraph where the deletion took place. 1114 1115 1116 1117 1118 1119 1120 1121 Example: Deletion of text Michael Brauer 1999-05-18T12:56:04 , but this has been deleted

This is the original text. This example shows:

● Deleted text = , but this has been deleted This text is contained in the element within the element.

● Current text = This is the original text. This text is contained in the element at the end of the example.

● Original text before deletion took place = This is the original text, but this has been deleted. Note that the deleted text, like all text in the Open Office format, is contained in a paragraph element. To reconstruct the original text, this paragraph is merged with its surrounding. In other words, a deletion consisting of only a single word would be represented as a paragraph containing the word. To reconstruct the text before the deletion took place, do:

• If the change mark is inside a paragraph, insert the text content of the element as if the beginning and final tags were missing.

• If the change mark is inside a header, proceed as above, except adapt the inserted tags to math their new counterparts.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 71 of 607 • Otherwise, simply copy the text content of the element in place of the change mark. Example: Given the following change: ... Hello World! The first (and most common) case occurs if a change mark is inside a regular paragraph: abcdef becomes: abcHello World!def The third case occurs when a change occurs outside of a paragraph. In this case, the deleted text is simply copied verbatim. abcdef def would be represented as: ... Hello World!

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 72 of 607 4.6.5 Format Change

A format change element represents any change in formatting attributes. The region where the change took place is marked by a change start and a change end element. 1122 1123 1124 1125 1126 Note: A format change element does not contain the actual changes that took place.

4.6.6 Change Info

The change info element contains meta information who made the change and when. It is also used for spreadsheet documents, and thus described in a chapter 12.3 (Change Tracking Metadata).

4.6.7 Change Marks

There are three elements that mark the start and the end of a changed region, as follows:

● Change start element – This element marks the start of a region with content where text has been inserted or the format has been changed.

● Change end element – This element marks the end of a region with content where text has been inserted or the format has been changed.

● Change position element – This element marks a position in an empty region where text has been deleted. All three elements have an attribute that specifies the ID of the region to which they belong. 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144

4.7 Text Declarations

Several text elements need per-document declarations before they can be used. For example, variable fields require that the variables used are being declared at the beginning of the document. These declarations are collected at the beginning of a text document. All such

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 73 of 607 declarations are optional. The detailed description for each declaration can be found in the appropriate chapter. The supported text declarations are:

• variable declarations – These declarations are used for variable fields. (cf. section 6.3.1).

• user field declarations – These declarations are used for user-defined fields (cf. section 6.3.5).

• sequence declarations – These declarations are used for sequence fields (cf. section 6.3.8).

• DDE connections – These declarations are used for DDE fields and DDE sections (cf. sections 6.6.9 and 4.4.3, respectively).

• auto mark file – This declaration is used for generation of alphabetical indices (cf. section 7.8.2). 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 74 of 607 5 Paragraph Elements Content

5.1 Basic Text Content

Paragraph element's children make up the text content of any Open Office document. All text contained in a paragraph element or their children is text content, with few exceptions detailed later. This should significantly ease transformations into other formats, since transformations may ignore any child elements of paragraph elements and only process their text content, and still obtain a faithful representation of text content. Text content elements that do not contain in-line text children are: • (foot- and end-)notes (see section 5.3) Foot- and endnotes contain text content, but are typically displayed outside the main text content, e.g. at the end of a page or document. • rubies (see section 5.4) Ruby texts are usually displayed above or below the main text. • annotations (see section 5.5) Annotations are typically not displayed. 1178 1179 1180

5.1.1 White-space Characters

If the paragraph element or any of its child elements contains white-space characters, they are collapsed, in other words they are processed in the same way that [HTML4] processes them. The following Unicode characters are normalized to a SPACE character: • HORIZONTAL TABULATION (0x0009) • CARRIAGE RETURN (0x000D) • LINE FEED (0x000A) • SPACE (0x0020) In addition, these characters are ignored if the preceding character is a white-space character. The preceding character can be contained in the same element, in the parent element, or in the preceding sibling element, as long as it is contained within the same paragraph element and the element in which it is contained processes white-space characters as described above. White-space processing takes place within the following elements: •

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 75 of 607 • Note: In [XSL], you can enable white-space processing of a paragraph of text by attaching an fo:white-space="collapse" attribute to the element that corresponds to the paragraph element.

Space Character

In general, consecutive white-space characters in a paragraph are collapsed. For this reason, there is a special XML element used to represent the Unicode character SPACE (0x0020). This element uses an optional attribute called text:c to specify the number of SPACE characters that the element represents. A missing text:c attribute is interpreted as meaning a single SPACE character. This element is required to represent the second and all following SPACE characters in a sequence of SPACE characters. You do not get an error if the character preceding the element is not a white-space character, but it is good practice to use this element for the second and all following SPACE characters in a sequence. This way, an application recognizes a single space character without recognizing this element. 1181 1182 1183 1184 1185 1186 1187 1188 1189

Tab Character

The element represents the Unicode tab character HORIZONTAL TABULATION (0x0009) in a heading or paragraph. A element reserves space from the current position up to the next tab-stop, as defined in the paragraph's style information. 1190 1191 1192 1193 1194 To determine which tab-stop a tab character will advance to requires layout information. To make it easier for non-layout oriented processors to determine this information, applications may generate a text:tab-ref attribute as a hint that associates a tab character with a tab-stop in the current paragraph style. It contains the number of the tab-stop that the tab character refers to. The position 0 has a special meaning and signifies the start margin of the paragraph. 1195 1196 1197 1198

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 76 of 607 1199 1200 1201 Note: The text:tab-ref attribute is only a hint to help non-layouting processors to determine the tab/tab-stop association. Layouters should determine the tab positions solely based on the style information.

Line Breaks

The element represents a line break in a heading or paragraph. 1202 1203 1204 1205 1206

5.1.2 Soft Hyphens, Hyphens, and Non-breaking Blanks

Soft hyphens, hyphens, and non-breaking blanks are represented by UNICODE characters.

The UNICODE character... Represents...

SOFT HYPHEN (00AD) soft hyphens

NON-BREAKING HYPHEN (2011) non-breaking hyphens

NO-BREAK SPACE (00A0) non-breaking blanks

5.1.3 Attributed Text

The element represents portions of text that are attributed using a certain text style or class. The content of this element is the text that uses the text style. The name of the a text style or text class is the value of a text:style-name or text:class- names attributes, respectively, attached to the element. These attributes must refer to text styles or classes. A text:style-name attribute references a single text style. A text:class-names attribute takes a whitespace separated list of text style names. The referenced text styles are applied in the order they are contained in the list. If both, text:style-name and text:class-names are present, the style referenced by the text:style-name attribute is treated like being the first style in the list. Conforming application should support the text:class-names attribute and also should preserve it while editing. You can nest elements. White-space characters contained in this element are collapsed. 1207 1208 1209 1210 1211 1212 1213 1214

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 77 of 607 1215 1216 1217 1218 1219 1220 1221 1222 1223 Example: Text style in Open Office XML: The last word of this sentence is emphasized.

5.1.4 Hyperlinks

Hyperlinks in text documents are represented by a element. This element also contains an event table element, , which contains the events assigned to the hyperlink. See Chapter for more information on the event table element. 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 The attributes that you can associate with the element are: • Name • Link location • Target frame • Text styles

Name

A hyperlink can have a name, but it is not essential. The text:name attribute specifies the name of the hyperlink if one exists. This name can serve as a target for some other hyperlinks. 1235 1236 1237 1238 1239 1240 1241

Link Location

The xlink:href attribute specifies the URL for the target location of the link.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 78 of 607 1242 1243 1244 1245 1246 1247 1248 simple 1249 1250 1251 1252 1253 onRequest 1254 1255 1256

Target Frame

The office:target-frame-name attribute specifies the target frame of the link. This attribute can have one of the following values: • _self – The referenced document replaces the content of the current frame. • _blank – The referenced document is displayed in a new frame. • _parent – The referenced document is displayed in the parent frame of the current frame. • _top – The referenced document is displayed in the uppermost frame, that is the frame that contains the current frame as a child or descendent but is not contained within another frame. • A frame name – The referenced document is displayed in the named frame. If the named frame does not exist, a new frame with that name is created. To conform with the XLink Specification, an additional xlink:show attribute is attached to the element. If the value of the attribute is _blank, the xlink:show attribute value is new. If the value of the attribute is any of the other value options, the value of the xlink:show attribute is replace. See [XLink]. 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 new 1267 replace 1268 1269 1270 1271

Text Styles

Every hyperlink has two text styles as follows:

● If the link location of the hyperlink was not visited, the text style specifies by the text:style- name attribute is applied to the text of the hyperlink.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 79 of 607 ● If the link location of the hyperlink was already visited, the text style specified by the text:visited-style-name attribute is applied to the text of the hyperlink 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283

5.2 Bookmarks and References

5.2.1 Bookmarks

Bookmarks can either mark a text position or a text range. A text range can start at any text position and end at another text position. In particular, a bookmark can start in the middle of one paragraph and end in the middle of another paragraph. The XML element used to represent a bookmark varies depending on the type of bookmark, as follows: • – to mark one text position • – to mark the start position in a text range • – to mark the end position in a text range For every element, there must be a element in the same text flow using the same text:name attribute, and vice versa. The element must precede the element. 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 Example: Bookmarks in Open Office XML There is a text mark in front of this paragraph. In front of this paragraph there is the start of a bookmark.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 80 of 607 This bookmark ends amid this sentence.

5.2.2 References

The Open Office XML representation of references is modeled on the XML representation of bookmarks. There are two types of reference marks, as follows:

● A point reference A point reference marks a particular position in text and is represented by a single element.

● A range reference A range reference marks a range of characters in text and is represented by two elements; to mark the start of the range and to mark the end of the range. Every reference is identified by its name, which must be unique. In a range reference, the start and end elements must use the same reference name.

Point References

The element represents a point reference in XML. 1303 1304 1305 1306 1307 1308 1309

Range References

The and elements represent a range reference in XML. 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 In Open Office XML, three elements are used to represent references instead of one element because references represented as a single XML element:

● Cannot support overlapping references

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 81 of 607 ● Do not interact well with other elements Take the following example: Example: Overlapping range references This is an example of a sentence with overlapping references. The example paragraph shows two references that cover the following text: reference “first” “This is an example of a sentence” reference “second”“example of a sentence with overlapping references.” This overlapping structure cannot be represented using a single reference element to contain the referenced text. Similarly, a reference spanning multiple paragraphs creates the same situation as two overlapping XML elements, as does character formatting either starts or ends, but not both, within the referenced text.

5.3 Notes

Notes consist of a element which occurs in the text stream at the position to which the note is anchored. How notes are numbered and rendered is determined by element, which occurs inside the section.

5.3.1 Note Element

The note element represents text notes which are attached to a certain text position. A common implementation of this concept are the footnotes and endnotes found in most word processors. A note contains a note citation element and a note body elements, which contains the note's content. Open Office XML represents notes in a similar fashion to footnotes in [XSL]. In XSL, the first child of the note element contains the citation in the form of an element. Open Office XML uses the same structure but introduces a element. The second child contains the note body, just as in XSL. Additionally, Open Office features elements. To achieve a similar effect to the note configuration in XSL, every note citation element must be formatted appropriately. 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 82 of 607 1338 1339 1340 1341 1342 1343 1344 1345 1346

Note Class

Each note belongs to a class which determines how the note is expected to be rendered. Currently, two note classes are supported: Footnotes and endnotes. 1347 1348 1349 1350 footnote 1351 endnote 1352 1353 1354

Footnote Reference ID

The footnote reference ID is used by references to footnotes to identify the footnote that is referenced.

Note Citation Element

The element contains the formatted note citation element, either as a formatted number or a string.

Note Label

Note citation elements can be labeled or numbered. If they are numbered, the number is chosen and formatted automatically according to the notes configuration element. If they are labeled, the user must supply a label for every note he/she inserts into the document. This label is stored in the text:label attribute of the element.

Note Body

The element contains the actual content of the footnote. It does not have any attributes. The schema allows for the inclusion of notes into the note body. While this may be reasonable for some future note types, it is not reasonable for footnotes and endnotes. Conforming applications may or may not support such nested notes.

Footnote example This paragraph contains a footnote 1

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 83 of 607 This footnote has a generated sequence number . This paragraph contains a footnote * This footnote has a fixed citation , too

5.4 Ruby

A ruby is additional text that is displayed above or below some base text. The purpose of ruby is to annotate the base text or provide information about its pronunciation. There are two elements that can be contained in the element:

• Ruby base

• Ruby text The element contains the text that is to be annotated. It contains any paragraph element content, like text spans. The element's text:style-name attribute references a ruby style that specifies further formatting attributes of the ruby. See section 13.8.4 for details. The element contains the annotation text. It may contain only plain text. The element's text:style-name attribute references a text style that specifies further formatting attributes used for the text. 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 84 of 607 5.5 Text Annotation

The Open Office XML format allows annotation to appear within a paragraph element. See section 12.1 for details on annotations. 1375 1376 1377

5.6 Index Marks

Index marks are used to mark text areas for inclusion into text indices. They are similar in structure to bookmarks and references. They are discussed in detail chapter 7.1, together with text indices.

5.7 Change Tracking and Change Marks

Paragraphs may also contain change tracking marks. These have already been explained in the chapter on change tracking (chapter 4.6), and are referenced here for completeness. 1378 1379 1380

5.8 Inline graphics and text-boxes

Within text documents, images, embedded objects and other drawing objects may be anchored to a paragraph, to a character, or as an character. If they are anchored to a paragraph, they appear within a paragraph at an arbitrary position. If they are anchored to or as a character, they appear within a paragraph at exactly the character position they are anchored to or as. See section 9.2 for details on drawing objects, and section 9.2.15 for their anchoring. 1381 1382 1383

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 85 of 607 6 Text Fields

Open Office text documents or Open Office text content embedded in other types of documents can contain variable text elements called fields. There are several different types of field, each of which implements a different type of variable text element. Fields are most commonly used for:

• Page numbers A page number field displays the number of the page it appears on. This field is useful for footers. For every page on which the footer appears, the field assumes the current page number so that all pages are numbered correctly.

• Creation dates A creation date field displays the date on which the current document was created. This field is useful for document templates. Every document created using the template contains the date when it was created.

• Number ranges A number range field allows the user to number certain elements, for example, images or tables. A number range field displays its own position in relation to the other number range fields for the same range. Therefore, if you move an image and its associated number range field within a document, the fields are automatically updated to reflect the new order. This section describes how fields are represented in the Open Office XML file format.

6.1 Common Characteristics of Field Elements

Each field type is represented by a corresponding element type. A field in a document is encoded as a single element of the appropriate type. The content of the element is the textual representation of the current field value as it would be displayed or printed. Therefore, ignoring all field elements and displaying only the textual content of the elements provides an approximate text-only version of the document. The value of a field is usually stored in an attribute. It is necessary to store the value so that the presentation of the field can be recomputed if necessary, for example, if the user decides to change the formatting style of the field. It is also necessary to store the presentation style of the element content, to facilitate easy processing of the XML document. For example, if complete processing of a field is impossible or undesirable, the application can ignore the field and use only the content in this situation. For string values, if the value is identical to the presentation, the value attribute is omitted to avoid duplicate storage of information. For fields that can store different types of content, for example, numbers, strings, or dates, a value type is stored in addition to the actual value. The value and value type attributes are explained later in section 6.7.1. If more information is needed to restore a field, it is stored in additional attributes. The most common attributes of field elements are:

• Fixed fields Many fields have a variant where the content does not change after the initial value is assigned. These fields are generally marked by the attribute text:fixed. See section 6.7.2 for more information on this attribute.

• Formatting style Several field types, particularly those representing number, date, or time data, contain a formatting style. In Open Office XML, this formatting style is represented by a office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 86 of 607 style:data-style-name attribute. Since the user can change the presentation style for fields, applications must be able to recompute a new representation of the field content at any time. See section 6.7.7 for more information on this attribute.

6.2 Document Fields

Open Office fields can display information about the current document or about a specific part of the current document, such as the author, the current page number, or the document creation date. These fields are collectively referred to as document fields. Document fields are often fixed. A field can be marked fixed to indicate that its content is preserved, rather than re-evaluated, when the document is edited. For example, a date field shows the current date. If the date field is marked fixed, the value of the field is preserved during subsequent edits and always reflects the original date on which the field was inserted into the document. If the field is not marked fixed, its value changes whenever the document is edited. In the same way, the author field can show the original author or the last author of a document, depending on whether the field is marked fixed or not. The group of document fields includes:

• Date and time fields

• Page number fields

• Sender and author fields

• Chapter fields

• File name fields

• Document template fields

6.2.1 Date Fields

Date fields display the current date. You can adjust the date to display a date other than the current date. For example, you can change the date on a document that was edited late at night so that it displays the date of the following day or several days later. This element contains the presentation of the date field value, depending on the data style specified. The default date is the current date. You can preserve the value of this element using the text:fixed attribute described in section 6.7.2. 1384 1385 1386 1387 1388 1389 The attributes that you can associate with the element are:

• Date value

• Date adjustment

• Fixed (see section 6.7.2))

• Formatting style (see section 6.7.7). The formatting style must be a date data style, see section 13.7 for more information. 1390

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 87 of 607 1391 1392 1393 1394 1395

Date Value

The text:date-value attribute specifies a particular date value. For example, if the date field is marked fixed, you can use this attribute to specify the date on which the field was marked as fixed. You can also use this attribute to specify a future date. Some applications support date and time in addition to date-only values, in accordance with [ISO8601]. The date value should conform with the extended date formats described in §5.4 or §5.2.1 of [ISO8601]. If no value is specified, the current date is assumed, even if the field is marked fixed. 1396 1397 1398 1399 1400 1401 1402

Date Adjustment

You can adjust the value of a date field by a certain time period, which you specify using the text:date-adjust attribute. If the time period is negative, it gets subtracted from the value of the date field, yielding a date before the current date. The value of this attribute must conform to the time period format described in §5.5.3.2 of [ISO8601]. The value can be preceded by an optional minus sign to indicate a negative time duration. 1403 1404 1405 1406 1407 1408 1409

6.2.2 Time Fields

Time fields display the current time. They are very similar to the date fields described in the previous section, supporting the same attributes except that for time fields, they are called text:time-value and text:time-adjust attributes. This element contains the presentation of the time field value, depending on the data style specified. The default time is the current time. You can preserve the value of this element using the text:fixed attribute described in section 6.7.2. 1410 1411 1412 1413 1414 1415 The attributes that you can associate with the element are:

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 88 of 607 • Time value

• Time adjustment

• Fixed (see section 6.7.2)

• Formatting style (see section 6.7.7). The formatting style must be a time data style, see section 13.7 for more information. 1416 1417 1418 1419 1420 1421

Time Value

The text:time-value attribute records the time at which the document was last edited. Some applications support date and time in addition to date-only values, in accordance with [ISO8601]. The value of this attribute must conform with the extended time formats described in §5.3 or §5.4 of [ISO8601]. If no value is specified, the current time is assumed, even if the field is marked fixed. 1422 1423 1424 1425 1426 1427 1428

Time Adjustment

You can adjust the value of a time field by a certain time period, which you specify using the text:time-adjust attribute. The value of this attribute must conform to the time period format described in §5.5.3.2 of [ISO8601]. The value can be preceded by an optional minus sign to indicate a negative time duration. Positive values adjust the time to a time in the future, while negative values adjust the time to a time in the past. The duration is truncated to full minutes. 1429 1430 1431 1432 1433 1434 1435 Example: Time adjust attributes and their effects

If the attribute text:time-adjust="PTM15", the time field displays a time which is 15 minutes later than the actual time specified by the time field value. If the attribute text:time-adjust="-PTH1", the time field displays a time which is one hour before the actual time specified by the time field value.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 89 of 607 6.2.3 Page Number Fields

Page number fields display the current page number. These fields are particularly useful in headers and footers. E.g. if you insert a page number field into a footer, the current page number is displayed on every page on which the footer appears. The attributes that you can associate with the element are:

• Page adjustment

• Display previous or following page numbers

• Fixed (see section 6.7.2)

• Formatting style (see section 6.7.8) Page numbers can be formatted according to the number format described in section 2.9. If a number style is not specified, the page numbers are formatted according to the number style defined in the current page style. 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447

Note: To display the total number of pages in a document, use the field described in chapter 6.4.17.

Page Adjustment

You can adjust the value of a page number field by a specified number, allowing you to display the page numbers of following or preceding pages. You specify the adjustment number using the text:page-adjust attribute. When you use this attribute, the application: 1. Adds the value of the attribute to the current page number. 2. Checks to see if the resulting page exists. 3. If the page exists, the number of that page is displayed. 4. If the page does not exist, the value of the page number field remains empty and no number is displayed. 1448 1449 1450 1451 1452 1453 1454

Display Previous or Following Page Numbers

The text:select-page attribute allows you to display the number of the previous or the following page rather than the number of the current page.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 90 of 607 1455 1456 1457 1458 1459 previous 1460 current 1461 next 1462 1463 1464 1465

Note: To display the current page number on all pages except the first or last page, you should use a combination of the text:select page and text:page adjust attributes.

Example: Displaying the current page number on all pages except the first page

6.2.4 Page Continuation Text

In some publications, a continuation reminder is printed at the bottom of the page in addition to the page number. To include a continuation reminder, use the element. 1466 1467 1468 1469 1470 1471 The attributes associated with the element are:

• Previous or following page

• String value

Previous or Following Page

This attribute specifies whether to check for a previous or next page and if the page exists, the continuation text is printed. 1472 1473 1474 1475 previous 1476 next 1477 1478 1479

String Value

This attribute specifies the continuation text to display. If this attribute is omitted, the element content is used. 1480 1481

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 91 of 607 1482 1483 1484 1485 1486

6.2.5 Sender Fields

There are several fields which contain information about the sender of the current document, for example, name and email address. The information about the sender is taken from the Open Office user information dialog. If a sender field is marked fixed using the text:fixed attribute, the original sender information in the sender fields is preserved. (cf. chapter 6.7.2) Otherwise, the information is updated each time the file is edited, causing the fields to change value when the document is edited by a different user.

First Name

This element represents the first name of the sender. 1487 1488 1489 1490 1491 1492

Last Name

This element represents the last name of the sender. 1493 1494 1495 1496 1497 1498

Initials

This element represents the initials of the sender. 1499 1500 1501 1502 1503 1504

Title

This element represents the title of the sender. 1505 1506 1507 1508 1509 1510

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 92 of 607 Position

This element represents the position of the sender. 1511 1512 1513 1514 1515 1516

Email Address

This element represents the email address of the sender. 1517 1518 1519 1520 1521 1522

Private Telephone Number

This element represents the private telephone number of the sender. 1523 1524 1525 1526 1527 1528

Fax Number

This element represents the facsimile number of the sender. 1529 1530 1531 1532 1533 1534

Company Name

This element represents the name of the company that employs the sender. 1535 1536 1537 1538 1539 1540

Office Telephone Number

This element represents the office telephone number of the sender. 1541 1542 1543

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 93 of 607 1544 1545 1546

Street

This element represents the street name of the address of the sender. 1547 1548 1549 1550 1551 1552

City

This element represents the city name of the address of the sender. 1553 1554 1555 1556 1557 1558

Postal Code

This element represents the postal code of the address of the sender. 1559 1560 1561 1562 1563 1564

Country

This element represents the country of the address of the sender. 1565 1566 1567 1568 1569 1570

State or Province

This element represents the state or province of the address of the sender, if applicable. 1571 1572 1573 1574 1575 1576

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 94 of 607 6.2.6 Author Fields

There are two Open Office XML elements available to represent the author of a document. One element displays the full name of the author and the other element displays the initials of the author. You can fix the value of author fields using the text:fixed attribute. Marking an author field as fixed preserves the original field content. Otherwise, the field content changes each time the document is updated, to reflect the last author of the document.

Name of the Author

This element represents the full name of the author. 1577 1578 1579 1580 1581 1582

Initials of the Author

This element represents the initials of the author. 1583 1584 1585 1586 1587 1588

6.2.7 Chapter Fields

Chapter fields display one of the following:

• The name of the current chapter

• The number of the current chapter

• Both the name and number of the current chapter If the chapter field is placed inside a header or footer, it displays the current chapter name or number on every page. 1589 1590 1591 1592 1593 1594 The attributes that you can associate with the element are:

• Display

• Outline level

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 95 of 607 Display

The text:display attribute specifies the information that the chapter field should display. 1595 1596 1597 1598 name 1599 number 1600 number-and-name 1601 plain-number-and-name 1602 plain-number 1603 1604 1605 Example: If the current chapter number is 2.4, the chapter title is Working with Tables, the prefix is [, and suffix is ], the possible display options and results are as follows:

Value of text:display attribute Field content displayed

number [2.4]

name Working with Tables

number-and-name [2.4] Working with Tables

plain-number 2.4

plain-number-and-name 2.4 Working with Tables

Outline Level

This attribute allows you to specify the outline level to use. The chapter field displays the chapter number or title up to the specified outline level. 1606 1607 1608 1609 1610

6.2.8 File Name Fields

File name fields display the name of the file that is currently being edited. The attributes that you can associate with the element are:

• Display

• Fixed 1611 1612 1613 1614 1615 1616

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 96 of 607 Display

The text:display attribute specifies how much of the file name to display. You can choose whether to display:

• The full file name including the path and the extension

• The file path only

• The file name only

• The file name and the extension The filename might be an URI, either because an URI has been used to retrieve the file, or the application internally uses URIs and therefor converts even system specific paths into an URI. If this is the case, and if the the path, the name or the extension cannot be evaluated from the URI, then the URI should be displayed unmodified. 1617 1618 1619 1620 1621 full 1622 path 1623 name 1624 name-and-extension 1625 1626 1627 1628

Fixed File Name Fields

If a file name field is fixed, its value does not change when the file is edited. 1629 1630 1631

6.2.9 Document Template Name Fields

The document template name field displays information about the document template in use, such as the template title or the file name. The attribute that you can associate with the element is:

• Display 1632 1633 1634 1635 1636 1637

Display

This attribute specifies which information about the document template to display. You can choose to display:

• The full file name including the path and the extension

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 97 of 607 • The file path only

• The file name only

• The file name and the extension

• The title

• The area of the document template The latter two values can be used for template dialogs. The values are a superset of the display values available for the element. 1638 1639 1640 1641 1642 full 1643 path 1644 name 1645 name-and-extension 1646 area 1647 title 1648 1649 1650 1651

6.3 Variable Fields

Open Office Writer documents can contain variables, which are processed or displayed using variable fields. A variable is a name/value pair. The variable name is used throughout the document to identify a particular variable, and therefore variable names cannot be reused for different types of variables. Most variable fields support different value types, such as numbers, dates, strings, and so on. In the Open Office XML file format, a variable must be declared at the beginning of a document. There are three types of variables in Open Office XML:

• Simple variables Simple variables, usually called variables, can take different values at different positions throughout a document. You set simple variables using either setter or input fields. Setter fields contain an expression, which is used to compute the new value of the variable. Input fields prompt the user for the new value. You can use simple variables to display different text in recurring elements, such as headers or footers.

• User variables User variables have the same value throughout a document. If a user variable is set anywhere within the document, all fields in the document that display the user variable have the same value. In the office application user interface, you can set a user variable at any occurrence of a user field, or using user variable input fields. In the Open Office XML file format, you can only set the value of the user variable after the variable is declared.

• Sequence variables Sequence variables are used to number certain items in an Open Office Writer document, for example, images or tables.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 98 of 607 Expression and text input fields are also variable fields, but they are not associated with any particular variables. Since their functionality is closely related to that of the variable fields, they are also described in this section of the manual. You must declare variables before you can use them. The variable declarations are collected in container elements for the particular variable type. The Open Office XML code for declaring variables is described in the following table.

6.3.1 Declaring Simple Variables

You declare simple variables using elements. The declaration specifies the name and the value type of the variable. To specify the name and value type of the simple variable, you attach the following attributes to the element:

• text:name The name of the variable must be unique. The name cannot already be used for any other type of variable. See section 6.7.3 for information on using this attribute.

• office:value-type See section 6.7.1 for information on using this attribute. 1652 1653 1654 1655 1656 1657

6.3.2 Setting Simple Variables

You can set simple variables using variable setter elements. This element contains the presentation of the value of the variable, which can be empty if the text:display attribute is set to none. The attributes that you can attach to the element are:

• text:name This attribute specifies the name of the variable to set. It must match the name of a variable that has already been declared. See section 6.7.3 for information on using this attribute.

• text:formula This attribute contains the formula to compute the value of the variable field. If the formula equals the content of the field element, you can omit this attribute. See section 6.7.6 for information on using this attribute.

• office:value-type and the appropriate value attribute See section 6.7.1 for information on using these attributes. Note: A simple variable should not contain different value types at different places in a document. However, an implementation may allow the use of different value types for different instances of the same variable. In the case of the numeric value types float, percentage, and currency, the value is automatically converted to the different value type. For value types that are stored internally as numbers, such as date, time, and

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 99 of 607 boolean types, the values are reinterpreted as numbers of the respective types. If a variable is used for both string and non-string types, the behavior is undefined, therefore this practice is not recommended.

• text:display You can use this attribute to specify whether or not to display the value of the element. If the text:display attribute is set to value, the value of the variable is displayed. If the attribute is set to none, the value is not displayed. See section 6.7.5 for information on using this attribute.

• style:data-style-name This attribute specifies the data style to use to format a numeric, Boolean, or date/time variable. If a data style is not specified, a standard data style is used. See section 6.7.7 for information on using this attribute. 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669

6.3.3 Displaying Simple Variables

The element reads and displays the value of a simple variable. The value of this element is the value of the last preceding element with an identical text:name attribute. The element determines how the value of the variable is presented, in accordance with the chosen formatting style. The attributes that you can attach to the element are:

• text:name This attribute specifies the name of the variable to display. The name must match the name of a preceding element. See section 6.7.3 for information on using this attribute.

• text:display You can use this attribute to specify whether to display the formula for a simple variable or the computed value of the variable. See section 6.7.5 for information on using this attribute.

• style:data-style-name This attribute specifies the data style to use to format a numeric, Boolean, or date/time variable. If a data style is not specified, a standard data style is used. See section 6.7.7 for information on using this attribute. 1670 1671 1672 1673 1674 1675

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 100 of 607 1676 1677 1678 1679

6.3.4 Simple Variable Input Fields

As an alternative to setting simple variables using formulas in variable setter fields, the user can be prompted for variable values. To do this, you use the element. This element contains the presentation of the variable's value according to the chosen formatting style. The presentation can be empty if the text:display attribute is set to none. The attributes that you can attach to the element are:

• text:name This attribute specifies the name of the variable to display. It must match the name of a variable that was already declared. See section 6.7.3 for information on using this attribute.

• text:description This optional attribute contains a brief message that is presented to users when they are prompted for input. The message should give users enough information about the variable or the use of the value within the document to enable them to choose an appropriate value. See section 6.7.4 for information on using this attribute.

• office:value-type and the appropriate value attribute See section 6.7.1 for information on using these attributes.

• text:display You can use this attribute to specify whether to display or hide the value of the variable through the variable input field. See section 6.7.5 for information on using this attribute.

• style:data-style-name This attribute specifies the data style to use to format a numeric, Boolean, or date/time variable. If a data style is not specified, a standard data style is used. See section 6.7.7 for information on using this attribute. 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691

6.3.5 Declaring User Variables

User variables contain values that are displayed using appropriate fields. Unlike simple variables, user variables have the same value throughout a document. For this reason, the value of user variables is stored in the variable declaration itself. The attributes that you can associate with the element are:

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 101 of 607 • text:name This attribute specifies the name of the variable that you want to declare. The name must be unique. It cannot already be used for any other type of variable including simple and sequence variables. See section 6.7.3 for information on using this attribute.

• text:formula This attribute contains the formula to compute the value of the user variable field. If the formula is the same as the content of the field element, you can omit this attribute. See section 6.7.6 for information on using this attribute.

• office:value-type and the appropriate value attribute See section 6.7.1 for information on using these attributes. 1692 1693 1694 1695 1696 1697 1698 1699 1700

6.3.6 Displaying User Variables

You can display the content of user variables using elements. The attributes that you can attach to the element are:

• text:name This attribute specifies the name of the variable to display. The name must match the name of a preceding element. See section 6.7.3 for information on using this attribute.

• text:display You can use this attribute to specify whether to:

• Display the formula used to compute the value of the user variable.

• Display the value of the user variable.

• Hide the user variable fields. See section 6.7.5 for information on using this attribute. Note: Since the office application user interfaces usually allow users to edit a user field variable by clicking on any user field, a hidden element can be used as an anchor to allow easy access to a particular user field variable.

• style:data-style-name This attribute specifies the data style to use to format a numeric, Boolean, or date/time variable. If a data style is not specified, a standard data style is used. See section 6.7.7 for information on using this attribute. 1701 1702 1703

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 102 of 607 1704 1705 1706 1707 1708 1709 1710

6.3.7 User Variable Input Fields

An alternative method of setting user variables is to use input fields, similar to the input fields for simple variables. You can set a user variable in this way using the element. Since the value of a user field variable is stored in the element, the element does not contain the value and value type attributes from the field. The presentation can be empty if the text:display attribute is set to none. The attributes that you can attach to the element are:

• text:name This attribute specifies the name of the variable to set. It must match the name of a variable that has already been declared. See section 6.7.3 for information on using this attribute.

• text:description This optional attribute contains a brief message that is presented to users when they are prompted for input. The message should give users enough information about the variable or the use of the value within the document, to enable them to choose an appropriate value. See section 6.7.4 for information on using this attribute.

• style:data-style-name This attribute specifies the data style to use to format a numeric, Boolean, or date/time variable. If a data style is not specified, a standard data style is used. See section 6.7.7 for information on using this attribute. 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720

6.3.8 Declaring Sequence Variables

Sequence variables are used to number items within an Open Office Writer document. Sequence variables are most commonly used for sequential numbering. However, you can include expression formulas in sequence fields to support more advanced sequences. See section 6.3.9 for more information on Using Sequence Fields and their uses. You declare sequence variables using the element.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 103 of 607 To facilitate chapter-specific numbering, you can attach attributes for the chapter level and a separation character to a sequence variable. The attributes that you can attach to the element are:

• text:name This attribute specifies the name of the variable that you want to declare. The name must be unique. It cannot already be used for any other type of variable including simple and user variables. See section 6.7.3 for information on using this attribute.

• text:display-outline-level See the section Outline Level for information about this attribute.

• text:separation-character See the section Separation Character for information about this attribute. 1721 1722 1723 1724 1725 1726 1727 1728

Outline Level

You can number sequences by chapter. To use this feature, use the text:display-outline- level attribute to specify an outline level that determines which chapters to reference for the chapter-specific numbering. All chapters that are at or below the specified outline level reset the value of the sequence to zero, the default value. Also, the chapter number of the last chapter at or below the specified outline level is prepended to the sequence number. Choosing an outline level of zero results in a straight sequence of all sequence elements for that sequence variable. 1729 1730 1731 1732 1733

Separation Character

If you number sequences by chapter, use this attribute to choose a character to separate the chapter number from the sequence number. If the value of the text:display-outline-level attribute is a non-zero value, you may specify a separation character. The default separation character is ".".Otherwise, if the value of text:display-outline-level is zero, you must omit this attribute. 1734 1735 1736 1737 1738 1739 1740 Example: Sequence variable The sequence variable 3.7.36#5 with a value of 5 is declared using:

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 104 of 607 Attribute Value

text:display-outline-level 3

text:separation-character #

6.3.9 Using Sequence Fields

Once a sequence variable is declared, you can use it in sequence fields throughout the document. Most sequence fields simply increment and display the sequence variable. However, sequence fields can also assume a new start value at any given position in a document. This start value is computed using a formula which is contained in the sequence field. If a sequence field without a start value is added, the office application software automatically inserts an expression of the type variable+1. Sequence fields are most commonly used for simple counting sequences. However, the ability to provide arbitrary expressions supports more complex sequences. To form a sequence of even numbers, all sequence elements for that particular variable need to contain a formula incrementing the value by two, for example, variable+2. A sequence with a starting value of 1 and all subsequent elements using the formula variable*2 yields all powers of two. Since different sequence elements for the same sequence variable may contain different formulas, complex sequences may be constructed. The attributes that you can attach to the element are:

• text:name This attribute specifies the name of the variable that the field is to display. It must match the name of a sequence variable that was already declared. See section 6.7.3 for information on using this attribute.

• text:formula This optional attribute contains a formula to compute the value of the sequence field. If this attribute is omitted, an expression containing the content of the element is used. See section 6.7.6 for information on using this attribute.

• style:num-format and style:num-letter-sync These attributes specify the numbering style to use. If a numbering style is not specified, the numbering style is inherited from the page style. See section 6.7.8 for information on these attributes.

• text:ref-name See the following section Reference Name for more information about this attribute. 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 105 of 607 Reference Name

Sequence fields can be the target of references, as implemented using reference fields. See section 6.6.5 for more information about reference fields. To enable a reference field to identify a particular sequence field, the sequence field must contain an additional attribute containing a name. No two sequence fields can have the same reference name. If the sequence field is not the target of a reference, this attribute can be omitted. 1752 1753 1754 1755 1756 1757 1758

6.3.10 Expression Fields

Expression fields contain expressions that are evaluated and the resulting value is displayed. The value of the expression is formatted according to the chosen formatting style. The attributes that you can attach to the element are:

• text:formula This attribute contains the actual expression used to compute the value of the expression field. See section 6.7.6 for information on using this attribute.

• office:value-type and the appropriate value attribute See section 6.7.1 for information on using these attributes.

• text:display Use this attribute to specify one of the following:

• To display the value of the field.

• To display the formula used to compute the value. See section 6.7.5 for information on using this attribute.

• style:data-style-name This attribute specifies the data style to use to format a numeric, Boolean, or date/time variable. If a data style is not specified, a standard data style is used. See section 6.7.7 for information on using this attribute. 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 106 of 607 6.3.11 Text Input Fields

A text input field is a variable field. From the point of view of the user interface, a text input field is similar to the and fields. However, the text input field does not change the value of any variables. The attribute that you can attach to the element is:

• text:description This attribute contains a brief message that is presented to users when they are prompted for input. The message should give users enough information about the purpose of the field and how it is used within the document, to enable them to choose an appropriate value. See section 3.7.43 for information on using this attribute. 1772 1773 1774 1775 1776 1777

6.4 Metadata Fields

Metadata fields display meta information about the document, such as, the document creation date or the time at which the document was last printed. The names of the metadata field elements correspond to the metadata elements described in Chapter 3. All metadata field elements can be marked as fixed using the text:fixed attribute. (Cf. section 6.7.2) Several metadata fields display a date or a time. The elements for these fields require an associated text:date-value or a text:time-value attribute, and optionally, they can also have a style:data-style-name attribute. See section 6.7.1 for more information on these attributes.

6.4.1 Initial Creator

This element represents the name of the author who created the original document. 1778 1779 1780 1781 1782 1783

6.4.2 Document Creation Date

This element represents the date on which the document was created. 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 107 of 607 1794 1795 1796 1797

6.4.3 Document Creation Time

This element represents the time at which the document was created. 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811

6.4.4 Document Description

This element contains a brief description of the document. 1812 1813 1814 1815 1816 1817

6.4.5 User-Defined Document Information

This element contains user-defined information about the document. It displays the information provided within a element that has the same name. 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 108 of 607 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854

6.4.6 Print Time

This element represents the time at which the document was last printed. 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868

6.4.7 Print Date

This element represents the date on which the document was last printed. 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882

6.4.8 Printed By

This element represents name of the last person who printed the document. 1883 1884 1885 1886 1887 1888

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 109 of 607 6.4.9 Document Title

This element represents the title of the document. 1889 1890 1891 1892 1893 1894

6.4.10 Document Subject

This element represents the subject of the document. 1895 1896 1897 1898 1899 1900

6.4.11 Document Keywords

This element contains a list of keywords used to describe the document. 1901 1902 1903 1904 1905 1906

6.4.12 Document Revision Number

This element contains the document revision number. When the document is created, the revision number is set to 1. Each time the document is saved, the document revision number is incremented. 1907 1908 1909 1910 1911 1912

Note: Since the field can not be formatted, the revision number can be read from the element content. Therefore, no extra attribute is needed.

6.4.13 Document Edit Duration

Every time a document is edited, the office application records the duration between the time the document is opened and the time the document is closed. It then adds the duration to an internal counter, thereby keeping track of the total time that has been spent editing the document. 1913 1914 1915 1916 1917

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 110 of 607 1918 1919 1920 1921 1922 1923 1924 1925 1926

6.4.14 Document Modification Time

This element represents the time at which the document was last modified. This element displays the information from the element. The name was chosen to avoid confusion with fields. 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940

6.4.15 Document Modification Date

This element represents the date on which the document was last modified. This element displays the information from the element. The name was chosen to avoid confusion with fields. 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954

6.4.16 Document Modified By

This element represents the name of the person who last modified the document. 1955 1956 1957 1958 1959

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 111 of 607 1960

6.4.17 Document Statistics Fields

These fields display how many objects of a certain type a document contains. You can use them to display the number of

• pages,

• paragraphs,

• words,

• characters,

• tables,

• images, or

• embedded objects. 1961 1962 1963 1964 text:page-count 1965 text:paragraph-count 1966 text:word-count 1967 text:character-count 1968 text:table-count 1969 text:image-count 1970 text:object-count 1971 1972 1973 1974 1975

6.5 Database Fields

Open Office XML documents can reference databases and display database information as text content. To display database information, Open Office XML uses a group of text fields, collectively called database fields. Office applications may use database tables from SQL servers, therefore you can use database fields to access any SQL database, provided that the appropriate drivers are available. In Open Office XML, a database contains the following components:

• Tables, which store the actual data.

• Queries, which extract a subset of data from one or more tables.

• Forms, which present the data.

• Reports, which summarize the database content. Database forms and reports are not relevant to XML text content, therefore they are not discussed in this chapter. From the point of view of embedding database information in Open Office text documents, queries and tables are considered the same. Therefore for the remainder of this section, the phrase database table refers to both database tables and database queries. Every database in Open Office XML has a name and this name is used by all of the office application components to identify a database. All database fields contain a database name and

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 112 of 607 most database fields also contain the name of a database table, which must be stored in the named database. An additional attribute determines whether the database table refers to an SQL table, an Open Office XML query, or the result of an SQL command. 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 table 1988 query 1989 command 1990 1991 1992 1993 1994 Database fields alone do not retrieve information from a database. In addition to the database fields, a set of database rows is also added to the document. When new data is added to the document, all database fields belonging to the added database table are updated. Using the office application user interface, you can add database rows in one of the following ways:

• Manually, using the Beamer and the Data to Fields function.

• Using the Form Letter menu item on the File menu. This menu item adds each row in the chosen data set into a newly created copy of the form letter. To display data from a database table use the element. Using the and elements, you can determine which row within the current selection to display. You can display the current row number for a particular table using the element. Finally, the field displays the name of the most recently used database, which is the address book file database by default.

6.5.1 Displaying Database Content

The element displays data from a database. When a new data set is added to a document, all fields that display data from that database table update their content. The attributes that you can associate with the element are:

• text:database-name, text:table-name and text:table-type These attributes specify the database and database table that this field uses.

• text:database-column-name See the section Column Name for information about this attribute.

• style:data-style-name If the column specifies a numeric, Boolean, date, or time value, the data is formatted according to the appropriate data style. If no data style is specified, the data style assigned to this column in is used. See section 6.7.7 for more information about using this attribute.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 113 of 607 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006

Column Name

The text:column-name attribute specifies the column from which to display the data. The value of this attribute must be a column contained in the specified database. 2007 2008 2009 2010 2011

6.5.2 Selecting the Next Database Row

The element changes the row in the current selection which is used for display in all following fields. The next row from the current selection is chosen if it satisfies a given condition. If the next row is wanted regardless of any condition, the condition may be omitted or set to true. The attributes that you can attach to the are:

• text:database-name, text:table-name and text:table-type These attributes specify the database and the database table that this field uses.

• text:condition See the section Condition for information about this attribute. 2012 2013 2014 2015 2016 2017 2018 2019

Condition

The text:condition attribute specifies the condition expression. The expression is evaluated and if the result interpreted as a Boolean value is true, the next row is used as the new current row. Please note that you can use database field values in the expression by enclosing in square brackets, the database name, the table name, and the column name, separated by dots. If the text:condition attribute is not present, it is assumes that the formula true, meaning that the next row is selected unconditionally. 2020 2021

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 114 of 607 2022 2023 2024 2025 2026 Example: text:formula='ooo-w:[address book file.address.FIRSTNAME] == "Julie"' This example specifies a condition that is true if the current row from an address book database table is the address for a person named Julie. If the condition shown in this example is used in a element, the following happens:

• The elements display the data from the first row of the current selection.

• If the FIRSTNAME column of the current row reads Julie, the current row is changed. Otherwise, nothing happens.

• If the first row is Julie, the following elements display data from the second row. Otherwise, they display data from the first row. See section 6.7.6 for more information on the formula syntax of a text:condition attribute, which is the same as that of the text:formula attribute.

6.5.3 Selecting a Row Number

The element selects a specific row from the current selection. As with the element, you can specify a condition so that the given row is only selected if the condition is true. The attributes that you can associate with the are:

• text:database-name, text:table-name and text:table-type These attributes determine the database and the database table that this field uses.

• text:condition This attribute specifies the condition expression. See section 6.5.2 for a full explanation of how to use this attribute.

• text:row-number See the following section about this attribute. 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 115 of 607 Selecting the Row Number

This attribute specifies the row number to select when a condition is true. 2042 2043 2044 2045 2046 2047 2048

6.5.4 Displaying the Row Number

The element displays the current row number for a given table. Note that the element displays the actual row number from the database and not the row number of the current selection that is used as an attribute value in the element. The attributes that you can associate with the are:

• text:database-name, text:table-name and text:table-type These attributes determine the database and the database table that this field uses.

• text:num-format and text:num-letter-sync These attributes determine how the number should be formatted. See section 6.7.8 for more information on how to use this attribute.

• text:value This attribute specifies the current row number. The number changes when new data is added to the current document. 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062

6.5.5 Display Current Database and Table

Office applications may keeps track of the last database and table that was used in the document. In other words, the table that is used by the last field that was inserted into the document. The element displays the database and table name of the most recently used table. The attributes that you can associate with the element are:

• text:database-name, text:table-name and text:table-type These attributes determine the database and the database table that this field uses.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 116 of 607 2063 2064 2065 2066 2067 2068

6.6 More Fields

6.6.1 Page Variable Fields

Page variables allow you to define an alternative page numbering scheme. There is only one page variable, and it is set by any set page variable field in the document. The value of the page variable is increased on each page, in the same way as regular page numbers.

Setting Page Variable Fields

To set a page variable field, you use the element. 2069 2070 2071 2072 2073 2074

Turning Page Variables On or Off

At the beginning of a document, the page variable is inactive. You can use the text:active attribute to disable a page variable after it was used in the document. 2075 2076 2077 2078 2079 2080 2081

Page Variable Adjustment

The text:page-adjust attribute determines the page adjustment. The value of the active page variable is the current page number plus the closest page adjustment value that was previously set. 2082 2083 2084 2085 2086 2087 2088

Displaying Page Variable Fields

The element displays the value of the page variable. The field can be formatted in the same way as regular page number fields.

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 117 of 607 2089 2090 2091 2092 2093 2094 The attributes that you can associate with the element are:

• text:num-format and text:num-letter-sync These attributes determine how the number should be formatted. See section 6.7.8 for more information on how to use these attributes. 2095 2096 2097

6.6.2 Placeholders

Open Office XML uses placeholder fields to indicate locations in a document where the user must fill in some information. For example in a letter template, you can have a section of the document reserved for the address of the recipient. A placeholder field displays text informing the user about the purpose of the placeholder and sometimes includes a description. Placeholder fields can represent different text elements, such as text or tables. This element contains some brief text which is displayed with the placeholder. 2098 2099 2100 2101 2102 2103 The attributes that you can associate with the element are:

• Placeholder type

• Placeholder description

Placeholder Type

There are five different types of placeholder, representing the five possible types of content: text, tables, text boxes, images, or objects. The text:placeholder-type attribute represents the content type. This attribute is mandatory and it indicates which type of text content the placeholder represents. The value of the attribute can be text, text-box, image, table, or object. 2104 2105 2106 2107 text 2108 table 2109 text-box 2110 image 2111 object 2112 2113 2114

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 118 of 607 Placeholder Description

In addition to the brief text stored in the element content, you can associate a text:description attribute with the placeholder element. This attribute is optional. The purpose of the attribute is to contain a more elaborate description of the purpose of the placeholder than the description stored in the element content. See section 6.7.4 for information on using the text:description attribute. 2115 2116 2117

6.6.3 Conditional Text Fields

Text fields can be used to display one text or another, depending on a condition. Conditional text fields are given a condition and two text strings. If the condition is true, one of the text strings is displayed. If the condition is false, the other text string is displayed. 2118 2119 2120 2121 2122 2123 The attributes that you can associate with the element are:

• Condition

• Text to display if the condition is true

• Text to display if the condition is false

• Current condition The text:condition attribute contains a Boolean expression. Depending on the result, the value of the text:display-if-true or text:display-if-false attribute is displayed. 2124 2125 2126 2127 2128

Text to Display if the Condition is True

The text:string-value-if-true attribute contains the text string to display if the condition is true. 2129 2130 2131 2132 2133

Text to Display if the Condition is False

The text:string-value-if-false attribute contains the text string to display if the condition is false. 2134 2135

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 119 of 607 2136 2137 2138

Current Value and Condition

The text:current-value attribute contains the evaluation result of the condition given by the expression in the text:condition attribute. Explicitly giving the result allows applications to delay evaluating the result until necessary. This attribute is valuable for the following reasons:

• If the expression is costly to evaluate, for example, the expression contains references to several databases.

• To allow transformations to correctly display the state of the document without having to parse and evaluate the condition. 2139 2140 2141 2142 2143 2144 2145

Note: The value of this attribute is overwritten with a new value as soon as the application evaluates the expression. This attribute has no function other than to ease transformation or initially display the document.

6.6.4 Hidden Text Field

The hidden text field is closely related to the conditional text field. It displays fixed text, except when the condition is true when it does not display anything. 2146 2147 2148 2149 2150 2151 The attributes that you can associate with the element are:

• Condition

• Text

• Is hidden

Condition

The text:condition attribute contains a Boolean expression. If the expression evaluates to true, the text is hidden. 2152 2153 2154 2155 2156

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 120 of 607 Text

The text:string-value attribute specifies the text to display if the condition is false. 2157 2158 2159 2160 2161

Is Hidden

The text:is-hidden attribute specifies whether or not the field is currently visible. The purpose of this attribute is similar to that of the text:current-value attribute in the text:condition field. Recording the result allows transformations to correctly represent the document without having to parse the condition expression or evaluate the condition when loading the document. 2162 2163 2164 2165 2166 2167 2168

Note: The value of this attribute is overwritten with a new value as soon as the application evaluates the expression. This attribute has no function other than to ease transformation or initially display the document.

6.6.5 Reference Fields

Open Office XML uses four types of reference field and each type is represented by its own element. The reference field types are based on the type of element they refer to; notes, bookmarks, references, and sequences. Every reference contains a reference format which determines what information about the referenced target is displayed. For example, references can display:

• The page number of the referenced target

• The chapter number of the referenced target

• Wording indicating whether the referenced target is above or below the reference field In addition, each reference field must identify its target which is usually done using a name attribute. Bookmarks and references are identified by the name of the respective bookmark or reference. Footnotes, endnotes, and sequences are identified by a name that is usually generated automatically when a document is exported. 2169 2170 2171 2172 text:reference-ref 2173 text:bookmark-ref 2174 text:note-ref 2175 2176 2177 2178 2179 2180 2181 2182

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 121 of 607 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 The attributes that you can associate with the reference field elements are:

• Reference name

• Reference format

Reference Name

The text:ref-name attribute identifies the referenced element. Since bookmarks and references have a name, this name is used by the respective reference fields. Footnotes, endnotes, and sequences are assigned names by the application used to create the Open Office XML file format when the document is exported. 2193 2194 2195 2196 2197 2198 2199

Reference Format

The text:reference-format attribute determines what information about the reference is displayed. If the reference format is not specified, the page format is used as the default. All types of reference fields support the following values for this attribute formats:

• page, which displays the number of the page on which the referenced item appears.

• chapter, which displays the number of the chapter in which the referenced item appears.

• direction, which displays whether the referenced item is above or below the reference field.

• text, which displays the text of the referenced item. References to sequence fields support the following three additional values:

• category-and-value, which displays the name and value of the sequence.

• caption, which displays the caption in which the sequence is used.

• value, which displays the value of the sequence. 2200 2201 2202 2203 2204 page 2205 chapter

office-spec-1.0-cd-1.sxw 22 March 2004 Copyright © OASIS Open 2002 - 2004. All Rights Reserved. Page 122 of 607 2206 direction 2207 text 2208 2209 2210 2211 2212 2213 2214 2215 2216 page 2217 chapter 2218 direction 2219 text 2220 category-and-value 2221 caption 2222 value 2223 2224 2225 2226 Example: Different reference formats and displays The following table shows all possible reference formats and the resulting reference display that can be used to refer to the table itself. The left column lists the value of the text:reference- format attribute and the right column

Reference format Reference display

page 123

chapter 3.7.27

text Table 2: Examples of reference formats

direction above

category-and-value Table 1

caption Examples of reference formats

value 1

6.6.6 Script Fields

A script field stores scripts or sections of scripts. You can use the field to store and edit scripts that are attached to the document. The primary purpose of this field is to provide an equivalent to the

Web Analytics