diff options
| author | Rasmus | 2017-06-21 13:20:20 +0200 |
|---|---|---|
| committer | Rasmus | 2017-06-22 11:54:18 +0200 |
| commit | 5cecd275820df825c51bf9a27fcc7e35f30ff273 (patch) | |
| tree | b3f72e63953613d565e6d5a35bec97f158eb603c /etc | |
| parent | 386a3da920482b8cb3e962fb944d135c8a770e26 (diff) | |
| download | emacs-5cecd275820df825c51bf9a27fcc7e35f30ff273.tar.gz emacs-5cecd275820df825c51bf9a27fcc7e35f30ff273.zip | |
Update Org to v9.0.9
Please see etc/ORG-NEWS for details.
Diffstat (limited to 'etc')
| -rw-r--r-- | etc/ORG-NEWS | 1406 | ||||
| -rw-r--r-- | etc/org/OrgOdtStyles.xml | 20 | ||||
| -rw-r--r-- | etc/org/README | 2 | ||||
| -rw-r--r-- | etc/org/library-of-babel.org | 584 | ||||
| -rw-r--r-- | etc/refcards/orgcard.tex | 27 | ||||
| -rw-r--r-- | etc/schema/od-manifest-schema-v1.2-os.rnc | 88 | ||||
| -rw-r--r-- | etc/schema/od-schema-v1.2-os.rnc | 6280 |
7 files changed, 8373 insertions, 34 deletions
diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 38df7b2bd87..fb50175316e 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS | |||
| @@ -1,17 +1,1368 @@ | |||
| 1 | ORG NEWS -- history of user-visible changes. -*- mode: org; coding: utf-8 -*- | 1 | ORG NEWS -- history of user-visible changes. -*- org -*- |
| 2 | 2 | ||
| 3 | #+LINK: doc http://orgmode.org/worg/doc.html#%s | 3 | #+LINK: doc http://orgmode.org/worg/doc.html#%s |
| 4 | #+LINK: git http://orgmode.org/w/?p=org-mode.git;a=commit;h=%s | 4 | #+LINK: git http://orgmode.org/cgit.cgi/org-mode.git/commit/?id=%s |
| 5 | 5 | ||
| 6 | Copyright (C) 2012-2017 Free Software Foundation, Inc. | 6 | Copyright (C) 2012-2017 Free Software Foundation, Inc. |
| 7 | See the end of the file for license conditions. | 7 | See the end of the file for license conditions. |
| 8 | 8 | ||
| 9 | Please send Org bug reports to emacs-orgmode@gnu.org. | 9 | Please send Org bug reports to mailto:emacs-orgmode@gnu.org. |
| 10 | 10 | ||
| 11 | * Version 8.2.3 | 11 | * Version 9.0 |
| 12 | 12 | ||
| 13 | ** Incompatible changes | 13 | ** Incompatible changes |
| 14 | 14 | ||
| 15 | *** Emacs 23 support has been dropped | ||
| 16 | |||
| 17 | From now on, Org expects at least Emacs 24.3, although Emacs 24.4 or | ||
| 18 | above is suggested. | ||
| 19 | |||
| 20 | *** XEmacs support has been dropped | ||
| 21 | |||
| 22 | Incomplete compatibility layer with XEmacs has been removed. If you | ||
| 23 | want to take over maintainance of this compatibility, please contact | ||
| 24 | our mailing list. | ||
| 25 | |||
| 26 | *** New syntax for export blocks | ||
| 27 | |||
| 28 | Export blocks are explicitly marked as such at the syntax level to | ||
| 29 | disambiguate their parsing from special blocks. The new syntax is | ||
| 30 | |||
| 31 | #+BEGIN_SRC org | ||
| 32 | ,#+BEGIN_EXPORT backend | ||
| 33 | ... | ||
| 34 | ,#+END_EXPORT | ||
| 35 | #+END_SRC | ||
| 36 | |||
| 37 | instead of | ||
| 38 | |||
| 39 | #+BEGIN_SRC org | ||
| 40 | ,#+BEGIN_backend | ||
| 41 | ... | ||
| 42 | ,#+END_backend | ||
| 43 | #+END_SRC | ||
| 44 | |||
| 45 | As a consequence, =INCLUDE= keywords syntax is modified, e.g., | ||
| 46 | |||
| 47 | #+BEGIN_SRC org | ||
| 48 | ,#+INCLUDE: "file.org" HTML | ||
| 49 | #+END_SRC | ||
| 50 | |||
| 51 | becomes | ||
| 52 | |||
| 53 | #+BEGIN_SRC org | ||
| 54 | ,#+INCLUDE: "file.org" export html | ||
| 55 | #+END_SRC | ||
| 56 | |||
| 57 | The following function repairs export blocks and =INCLUDE= keywords | ||
| 58 | using previous syntax: | ||
| 59 | |||
| 60 | #+BEGIN_SRC emacs-lisp | ||
| 61 | (defun org-repair-export-blocks () | ||
| 62 | "Repair export blocks and INCLUDE keywords in current buffer." | ||
| 63 | (interactive) | ||
| 64 | (when (eq major-mode 'org-mode) | ||
| 65 | (let ((case-fold-search t) | ||
| 66 | (back-end-re (regexp-opt | ||
| 67 | '("HTML" "ASCII" "LATEX" "ODT" "MARKDOWN" "MD" "ORG" | ||
| 68 | "MAN" "BEAMER" "TEXINFO" "GROFF" "KOMA-LETTER") | ||
| 69 | t))) | ||
| 70 | (org-with-wide-buffer | ||
| 71 | (goto-char (point-min)) | ||
| 72 | (let ((block-re (concat "^[ \t]*#\\+BEGIN_" back-end-re))) | ||
| 73 | (save-excursion | ||
| 74 | (while (re-search-forward block-re nil t) | ||
| 75 | (let ((element (save-match-data (org-element-at-point)))) | ||
| 76 | (when (eq (org-element-type element) 'special-block) | ||
| 77 | (save-excursion | ||
| 78 | (goto-char (org-element-property :end element)) | ||
| 79 | (save-match-data (search-backward "_")) | ||
| 80 | (forward-char) | ||
| 81 | (insert "EXPORT") | ||
| 82 | (delete-region (point) (line-end-position))) | ||
| 83 | (replace-match "EXPORT \\1" nil nil nil 1)))))) | ||
| 84 | (let ((include-re | ||
| 85 | (format "^[ \t]*#\\+INCLUDE: .*?%s[ \t]*$" back-end-re))) | ||
| 86 | (while (re-search-forward include-re nil t) | ||
| 87 | (let ((element (save-match-data (org-element-at-point)))) | ||
| 88 | (when (and (eq (org-element-type element) 'keyword) | ||
| 89 | (string= (org-element-property :key element) "INCLUDE")) | ||
| 90 | (replace-match "EXPORT \\1" nil nil nil 1))))))))) | ||
| 91 | #+END_SRC | ||
| 92 | |||
| 93 | Moreover, ~:export-block~ keyword used in ~org-export-define-backend~ and | ||
| 94 | ~org-export-define-derived-backend~ is no longer used and needs to be | ||
| 95 | removed. | ||
| 96 | |||
| 97 | *** Footnotes | ||
| 98 | |||
| 99 | **** [1]-like constructs are not valid footnotes | ||
| 100 | |||
| 101 | Using =[1]= as a footnote was already discouraged in the manual, since | ||
| 102 | it introduced too many false-positives in many Org documents. These | ||
| 103 | constructs are now unsupported. | ||
| 104 | |||
| 105 | If you used =[N]= in some of your documents, consider turning them into | ||
| 106 | =[fn:N]=. | ||
| 107 | |||
| 108 | **** /Org Footnote/ library doesn't handle non-Org buffers | ||
| 109 | |||
| 110 | Commands for footnotes in an Org document no longer try to do | ||
| 111 | something in non-Org ones. If you need to have footnotes there, | ||
| 112 | consider using the =footnote.el= library, shipped with Emacs. | ||
| 113 | |||
| 114 | In particular, ~org-footnote-tag-for-non-org-mode-files~ no longer | ||
| 115 | exists. | ||
| 116 | |||
| 117 | *** ~org-file-apps~ no longer accepts S-expressions as commands | ||
| 118 | |||
| 119 | The variable now accepts functions of two arguments instead of plain | ||
| 120 | S-expressions. Replacing a S-expresion with an appropriate function | ||
| 121 | is straightforward. For example | ||
| 122 | |||
| 123 | : ("pdf" . (foo)) | ||
| 124 | |||
| 125 | becomes | ||
| 126 | |||
| 127 | : ("pdf" . (lambda (file link) (foo))) | ||
| 128 | |||
| 129 | *** The ~{{{modification-time}}}~ macro can get time via =vc= | ||
| 130 | |||
| 131 | The modification time will be determined via =vc.el= if the second | ||
| 132 | argument is non-nil. See the manual for details. | ||
| 133 | |||
| 134 | *** Preparation and completion functions in publishing projects change signature | ||
| 135 | |||
| 136 | Preparation and completion functions are now called with an argument, | ||
| 137 | which is the project property list. It used to be dynamically scoped | ||
| 138 | through the ~project-plist~ variable. | ||
| 139 | |||
| 140 | *** Old Babel header properties are no longer supported | ||
| 141 | |||
| 142 | Using header arguments as property names is no longer possible. As | ||
| 143 | such, the following | ||
| 144 | |||
| 145 | #+BEGIN_EXAMPLE | ||
| 146 | ,* Headline | ||
| 147 | :PROPERTIES: | ||
| 148 | :exports: code | ||
| 149 | :var: a=1 b=2 | ||
| 150 | :var+: c=3 | ||
| 151 | :END: | ||
| 152 | #+END_EXAMPLE | ||
| 153 | |||
| 154 | should be written instead | ||
| 155 | |||
| 156 | #+BEGIN_EXAMPLE | ||
| 157 | ,* Headline | ||
| 158 | :PROPERTIES: | ||
| 159 | :header-args: :exports code | ||
| 160 | :header-args: :var a=1 b=2 | ||
| 161 | :header-args+: :var c=3 | ||
| 162 | :END: | ||
| 163 | #+END_EXAMPLE | ||
| 164 | |||
| 165 | Please note that, however, old properties were defined at the source | ||
| 166 | block definition. Current ones are defined where the block is called. | ||
| 167 | |||
| 168 | ** New features | ||
| 169 | |||
| 170 | *** ~org-eww~ has been moved into core | ||
| 171 | *** New org-protocol key=value syntax | ||
| 172 | |||
| 173 | Org-protocol can now handle query-style parameters such as: | ||
| 174 | |||
| 175 | #+begin_example | ||
| 176 | org-protocol://store-link?url=http:%2F%2Flocalhost%2Findex.html&title=The%20title | ||
| 177 | org-protocol://capture?template=x&title=Hello&body=World&url=http:%2F%2Fexample.com | ||
| 178 | #+end_example | ||
| 179 | |||
| 180 | Old-style links such as | ||
| 181 | : org-protocol://store-link:/http:%2F%2Flocalhost%2Findex.html/The%20title | ||
| 182 | continue to be supported. | ||
| 183 | |||
| 184 | If you have defined your own handler functions for | ||
| 185 | ~org-protocol-protocol-alist~, change them to accept either a property | ||
| 186 | list (for new-style links) or a string (for old-style links). Use | ||
| 187 | ~org-protocol-parse-parameters~ to convert old-style links into property | ||
| 188 | lists. | ||
| 189 | |||
| 190 | *** New Org linter library | ||
| 191 | |||
| 192 | ~org-lint~ can check syntax and report common issues in Org documents. | ||
| 193 | |||
| 194 | *** New option ~date-tree-last~ for ~org-agenda-insert-diary-strategy~ | ||
| 195 | |||
| 196 | When ~org-agenda-insert-diary-strategy~ is set to ~date-tree-last~, diary | ||
| 197 | entries are added to last in the date tree. | ||
| 198 | |||
| 199 | *** New ~vbar~ entity | ||
| 200 | |||
| 201 | ~\vbar~ or ~\vbar{}~ will be exported unconditionnally as a =|=, | ||
| 202 | unlike to existing ~\vert~, which is expanded as ~|~ when using | ||
| 203 | a HTML derived export back-end. | ||
| 204 | |||
| 205 | *** Export | ||
| 206 | |||
| 207 | **** New =#+latex_compiler= keyword to set LaTeX compiler. | ||
| 208 | |||
| 209 | PDFLaTeX, XeLaTeX, and LuaLaTeX are supported. See the manual for | ||
| 210 | details. | ||
| 211 | |||
| 212 | **** New option ~org-export-with-broken-links~ | ||
| 213 | |||
| 214 | This option tells the export process how to behave when encountering | ||
| 215 | a broken internal link. See its docstring for more information. | ||
| 216 | |||
| 217 | **** Attributes support in custom language environments for LaTeX export | ||
| 218 | |||
| 219 | Custom language environments for LaTeX export can now define the | ||
| 220 | string to be inserted during export, using attributes to indicate the | ||
| 221 | position of the elements. See variable ~org-latex-custom-lang-environments~ | ||
| 222 | for more details. | ||
| 223 | |||
| 224 | **** New Texinfo ~options~ attribute on special blocks | ||
| 225 | |||
| 226 | Using ~:options~ as a Texinfo attribute, it is possible to add | ||
| 227 | information to custom environments. See manual for details. | ||
| 228 | |||
| 229 | **** New HTML ~id~ attributes on special, example and quote blocks | ||
| 230 | |||
| 231 | If the block has a =#+NAME:= attribute assigned, then the HTML element | ||
| 232 | will have an ~id~ attribute with that name in the HTML export. This | ||
| 233 | enables one to create links to these elements in other places, e.g., | ||
| 234 | ~<a href="#name">text</a>~. | ||
| 235 | |||
| 236 | **** Listings with captions are now numbered in HTML export | ||
| 237 | |||
| 238 | The class associated to the numbering is "listing-number". If you | ||
| 239 | don't want these blocks to be numbered, as it was the case until now, | ||
| 240 | You may want to add ~.listing-number { display: none; }~ to the CSS | ||
| 241 | used. | ||
| 242 | |||
| 243 | **** Line Numbering in SRC/EXAMPLE blocks support arbitrary start number | ||
| 244 | |||
| 245 | The ~-n~ option to ~SRC~ and ~EXAMPLE~ blocks can now take a numeric | ||
| 246 | argument to specify the staring line number for the source or example | ||
| 247 | block. The ~+n~ option can now take a numeric argument that will be | ||
| 248 | added to the last line number from the previous block as the starting | ||
| 249 | point for the SRC/EXAMPLE block. | ||
| 250 | |||
| 251 | #+BEGIN_SRC org | ||
| 252 | ,#+BEGIN_SRC emacs-lisp -n 20 | ||
| 253 | ;; this will export with line number 20 | ||
| 254 | (message "This is line 21") | ||
| 255 | ,#+END_SRC | ||
| 256 | ,#+BEGIN_SRC emacs-lisp +n 10 | ||
| 257 | ;; This will be listed as line 31 | ||
| 258 | (message "This is line 32") | ||
| 259 | ,#+END_SRC | ||
| 260 | #+END_SRC | ||
| 261 | |||
| 262 | **** Allow toggling center for images in LaTeX export | ||
| 263 | |||
| 264 | With the global variable ~org-latex-images-centered~ or the local | ||
| 265 | attribute ~:center~ it is now possible to center an image in LaTeX | ||
| 266 | export. | ||
| 267 | |||
| 268 | **** Default CSS class ~org-svg~ for SVG images in HTML export | ||
| 269 | |||
| 270 | SVG images exported in HTML are now by default assigned a CSS class | ||
| 271 | ~org-svg~ if no CSS class is specified with the ~:class~ attribute. By | ||
| 272 | default, the CSS styling of class ~org-svg~ specifies an image width of | ||
| 273 | 90\thinsp{}% of the container the image. | ||
| 274 | |||
| 275 | **** Markdown footnote export customization | ||
| 276 | |||
| 277 | Variables ~org-md-footnotes-section~ and ~org-md-footnote-format~ | ||
| 278 | introduced for =ox-md.el=. Both new variables define template strings | ||
| 279 | which can be used to customize the format of the exported footnotes | ||
| 280 | section and individual footnotes, respectively. | ||
| 281 | |||
| 282 | *** Babel | ||
| 283 | |||
| 284 | **** Blocks with coderefs labels can now be evaluated | ||
| 285 | |||
| 286 | The labels are removed prior to evaluating the block. | ||
| 287 | |||
| 288 | **** Support for Lua language | ||
| 289 | **** Support for SLY in Lisp blocks | ||
| 290 | |||
| 291 | See ~org-babel-lisp-eval-fn~ to activate it. | ||
| 292 | |||
| 293 | **** Support for Stan language | ||
| 294 | |||
| 295 | New ob-stan.el library. | ||
| 296 | |||
| 297 | Evaluating a Stan block can produce two different results. | ||
| 298 | |||
| 299 | 1. Dump the source code contents to a file. | ||
| 300 | |||
| 301 | This file can then be used as a variable in other blocks, which | ||
| 302 | allows interfaces like RStan to use the model. | ||
| 303 | |||
| 304 | 2. Compile the contents to a model file. | ||
| 305 | |||
| 306 | This provides access to the CmdStan interface. To use this, set | ||
| 307 | ~org-babel-stan-cmdstan-directory~ and provide a ~:file~ argument | ||
| 308 | that does not end in ".stan". | ||
| 309 | |||
| 310 | For more information and usage examples, visit | ||
| 311 | http://orgmode.org/worg/org-contrib/babel/languages/ob-doc-stan.html | ||
| 312 | |||
| 313 | **** Support for Oracle databases via ~sqlplus~ | ||
| 314 | |||
| 315 | =ob-sql= library supports running SQL blocks against an Oracle | ||
| 316 | database using ~sqlplus~. Use with properties like this (all | ||
| 317 | mandatory): | ||
| 318 | |||
| 319 | #+BEGIN_EXAMPLE | ||
| 320 | :engine oracle | ||
| 321 | :dbhost <host.com> | ||
| 322 | :dbport <1521> | ||
| 323 | :dbuser <username> | ||
| 324 | :database <database> | ||
| 325 | :dbpassword <secret> | ||
| 326 | #+END_EXAMPLE | ||
| 327 | |||
| 328 | **** Improved support to Microsoft SQL Server via ~sqlcmd~ | ||
| 329 | |||
| 330 | =ob-sql= library removes support to the ~msosql~ engine which uses the | ||
| 331 | deprecated ~osql~ command line tool, and replaces it with ~mssql~ | ||
| 332 | engine which uses the ~sqlcmd~ command line tool. Use with properties | ||
| 333 | like this: | ||
| 334 | |||
| 335 | #+BEGIN_EXAMPLE | ||
| 336 | :engine mssql | ||
| 337 | :dbhost <host.com> | ||
| 338 | :dbuser <username> | ||
| 339 | :dbpassword <secret> | ||
| 340 | :database <database> | ||
| 341 | #+END_EXAMPLE | ||
| 342 | |||
| 343 | If you want to use the *trusted connection* feature, omit *both* the | ||
| 344 | =dbuser= and =dbpassword= properties and add =cmdline -E= to the properties. | ||
| 345 | |||
| 346 | If your Emacs is running in a Cygwin environment, the =ob-sql= library | ||
| 347 | can pass the converted path to the =sqlcmd= tool. | ||
| 348 | |||
| 349 | **** Improved support of header arguments for postgresql | ||
| 350 | |||
| 351 | The postgresql engine in a sql code block supports now ~:dbport~ nd | ||
| 352 | ~:dbpassword~ as header arguments. | ||
| 353 | |||
| 354 | **** Support for additional plantuml output formats | ||
| 355 | |||
| 356 | The support for output formats of [[http://plantuml.com/][plantuml]] has been extended to now | ||
| 357 | include: | ||
| 358 | |||
| 359 | All Diagrams: | ||
| 360 | - png :: | ||
| 361 | - svg :: | ||
| 362 | - eps :: | ||
| 363 | - pdf :: | ||
| 364 | - vdx :: | ||
| 365 | - txt :: ASCII art | ||
| 366 | - utxt :: ASCII art using unicode characters | ||
| 367 | |||
| 368 | Class Diagrams: | ||
| 369 | - xmi :: | ||
| 370 | - html :: | ||
| 371 | |||
| 372 | State Diagrams: | ||
| 373 | - scxml :: | ||
| 374 | |||
| 375 | The output formats are determined by the file extension specified | ||
| 376 | using the :file property, e.g.: | ||
| 377 | |||
| 378 | #+begin_src plantuml :file diagram.png | ||
| 379 | @startuml | ||
| 380 | Alice -> Bob: Authentication Request | ||
| 381 | Bob --> Alice: Authentication Response | ||
| 382 | |||
| 383 | Alice -> Bob: Another authentication Request | ||
| 384 | Alice <-- Bob: another authentication Response | ||
| 385 | @enduml | ||
| 386 | #+end_src | ||
| 387 | |||
| 388 | Please note that *pdf* *does not work out of the box* and needs additional | ||
| 389 | setup in addition to plantuml. See [[http://plantuml.com/pdf.html]] for | ||
| 390 | details and setup information. | ||
| 391 | |||
| 392 | *** Rewrite of radio lists | ||
| 393 | |||
| 394 | Radio lists, i.e, Org plain lists in foreign buffers, have been | ||
| 395 | rewritten to be on par with Radio tables. You can use a large set of | ||
| 396 | parameters to control how a given list should be rendered. See manual | ||
| 397 | for details. | ||
| 398 | |||
| 399 | *** org-bbdb-anniversaries-future | ||
| 400 | |||
| 401 | Used like ~org-bbdb-anniversaries~, it provides a few days warning for | ||
| 402 | upcoming anniversaries (default: 7 days). | ||
| 403 | |||
| 404 | *** Clear non-repeated SCHEDULED upon repeating a task | ||
| 405 | |||
| 406 | If the task is repeated, and therefore done at least one, scheduling | ||
| 407 | information is no longer relevant. It is therefore removed. | ||
| 408 | |||
| 409 | See [[git:481719fbd5751aaa9c672b762cb43aea8ee986b0][commit message]] for more information. | ||
| 410 | |||
| 411 | *** Support for ISO week trees | ||
| 412 | |||
| 413 | ISO week trees are an alternative date tree format that orders entries | ||
| 414 | by ISO week and not by month. | ||
| 415 | |||
| 416 | For example: | ||
| 417 | |||
| 418 | : * 2015 | ||
| 419 | : ** 2015-W35 | ||
| 420 | : ** 2015-W36 | ||
| 421 | : *** 2015-08-31 Monday | ||
| 422 | |||
| 423 | They are supported in org-capture via ~file+weektree~ and | ||
| 424 | ~file+weektree+prompt~ target specifications. | ||
| 425 | |||
| 426 | *** Accept ~:indent~ parameter when capturing column view | ||
| 427 | |||
| 428 | When defining a "columnview" dynamic block, it is now possible to add | ||
| 429 | an :indent parameter, much like the one in the clock table. | ||
| 430 | |||
| 431 | On the other hand, stars no longer appear in an ITEM field. | ||
| 432 | |||
| 433 | *** Columns view | ||
| 434 | |||
| 435 | **** ~org-columns~ accepts a prefix argument | ||
| 436 | |||
| 437 | When called with a prefix argument, ~org-columns~ apply to the whole | ||
| 438 | buffer unconditionally. | ||
| 439 | |||
| 440 | **** New variable : ~org-agenda-view-columns-initially~ | ||
| 441 | |||
| 442 | The variable used to be a ~defvar~, it is now a ~defcustom~. | ||
| 443 | |||
| 444 | **** Allow custom summaries | ||
| 445 | |||
| 446 | It is now possible to add new summary types, or override those | ||
| 447 | provided by Org by customizing ~org-columns-summary-types~, which see. | ||
| 448 | |||
| 449 | **** Allow multiple summaries for any property | ||
| 450 | |||
| 451 | Columns can now summarize the same property using different summary | ||
| 452 | types. | ||
| 453 | |||
| 454 | *** Preview LaTeX snippets in buffers not visiting files | ||
| 455 | *** New option ~org-attach-commit~ | ||
| 456 | |||
| 457 | When non-nil, commit attachments with git, assuming the document is in | ||
| 458 | a git repository. | ||
| 459 | |||
| 460 | *** Allow conditional case-fold searches in ~org-occur~ | ||
| 461 | |||
| 462 | When set to ~smart~, the new variable ~org-occur-case-fold-search~ allows | ||
| 463 | to mimic =isearch.el=: if the regexp searched contains any upper case | ||
| 464 | character (or character class), the search is case sensitive. | ||
| 465 | Otherwise, it is case insensitive. | ||
| 466 | |||
| 467 | *** More robust repeated =ox-latex= footnote handling | ||
| 468 | |||
| 469 | Repeated footnotes are now numbered by referring to a label in the | ||
| 470 | first footnote. | ||
| 471 | |||
| 472 | *** The ~org-block~ face is inherited by ~src-blocks~ | ||
| 473 | |||
| 474 | This works also when =org-src-fontify-natively= is non-nil. It is also | ||
| 475 | possible to specify per-languages faces. See =org-src-block-faces= and | ||
| 476 | the manual for details. | ||
| 477 | |||
| 478 | *** Links are now customizable | ||
| 479 | |||
| 480 | Links can now have custom colors, tooltips, keymaps, display behavior, | ||
| 481 | etc. Links are now centralized in ~org-link-parameters~. | ||
| 482 | |||
| 483 | ** New functions | ||
| 484 | |||
| 485 | *** ~org-next-line-empty-p~ | ||
| 486 | |||
| 487 | It replaces the deprecated ~next~ argument to ~org-previous-line-empty-p~. | ||
| 488 | |||
| 489 | *** ~org-show-children~ | ||
| 490 | |||
| 491 | It is a faster implementation of ~outline-show-children~. | ||
| 492 | |||
| 493 | ** Removed functions | ||
| 494 | |||
| 495 | *** ~org-agenda-filter-by-tag-refine~ has been removed. | ||
| 496 | |||
| 497 | Use ~org-agenda-filter-by-tag~ instead. | ||
| 498 | |||
| 499 | *** ~org-agenda-todayp~ is deprecated. | ||
| 500 | |||
| 501 | Use ~org-agenda-today-p~ instead. | ||
| 502 | |||
| 503 | *** ~org-babel-get-header~ is removed. | ||
| 504 | |||
| 505 | Use ~org-babel--get-vars~ or ~assq~ instead, as applicable. | ||
| 506 | |||
| 507 | *** ~org-babel-trim~ is deprecated. | ||
| 508 | |||
| 509 | Use ~org-trim~ instead. | ||
| 510 | |||
| 511 | *** ~org-element-remove-indentation~ is deprecated. | ||
| 512 | |||
| 513 | Use ~org-remove-indentation~ instead. | ||
| 514 | |||
| 515 | *** ~org-image-file-name-regexp~ is deprecated | ||
| 516 | |||
| 517 | Use ~image-file-name-regexp~ instead. | ||
| 518 | The never-used-in-core ~extensions~ argument has been dropped. | ||
| 519 | |||
| 520 | *** ~org-list-parse-list~ is deprecated | ||
| 521 | |||
| 522 | Use ~org-list-to-lisp~ instead. | ||
| 523 | |||
| 524 | *** ~org-on-heading-p~ is deprecated | ||
| 525 | |||
| 526 | A comment to this effect was in the source code since 7.8.03, but | ||
| 527 | now a byte-compiler warning will be generated as well. | ||
| 528 | |||
| 529 | *** ~org-table-p~ is deprecated | ||
| 530 | |||
| 531 | Use ~org-at-table-p~ instead. | ||
| 532 | |||
| 533 | *** ~org-table-recognize-table.el~ is deprecated | ||
| 534 | |||
| 535 | It was not called by any org code since 2010. | ||
| 536 | |||
| 537 | *** Various reimplementations of cl-lib functions are deprecated | ||
| 538 | |||
| 539 | The affected functions are: | ||
| 540 | - ~org-count~ | ||
| 541 | - ~org-remove-if~ | ||
| 542 | - ~org-remove-if-not~ | ||
| 543 | - ~org-reduce~ | ||
| 544 | - ~org-every~ | ||
| 545 | - ~org-some~ | ||
| 546 | |||
| 547 | Additionally, ~org-sublist~ is deprecated in favor of ~cl-subseq~. Note | ||
| 548 | the differences in indexing conventions: ~org-sublist~ is 1-based and | ||
| 549 | end-inclusive; ~cl-subseq~ is 0-based and end-exclusive. | ||
| 550 | |||
| 551 | ** Removed options | ||
| 552 | |||
| 553 | *** Remove all options related to ~ido~ or ~iswitchb~ | ||
| 554 | |||
| 555 | This includes ~org-completion-use-iswitchb~ and ~org-completion-use-ido~. | ||
| 556 | Instead Org uses regular functions, e.g., ~completion-read~ so as to | ||
| 557 | let those libraries operate. | ||
| 558 | |||
| 559 | *** Remove ~org-list-empty-line-terminates-plain-lists~ | ||
| 560 | |||
| 561 | Two consecutive blank lines always terminate all levels of current | ||
| 562 | plain list. | ||
| 563 | |||
| 564 | *** ~fixltx2e~ is removed from ~org-latex-default-packages-alist~ | ||
| 565 | |||
| 566 | fixltx2e is obsolete, see LaTeX News 22. | ||
| 567 | |||
| 568 | ** Miscellaneous | ||
| 569 | *** Add Icelandic smart quotes | ||
| 570 | *** Allow multiple receiver locations in radio tables and lists | ||
| 571 | *** Allow angular links within link descriptions | ||
| 572 | |||
| 573 | It is now allowed to write, e.g., | ||
| 574 | ~[[http:orgmode.org][<file:unicorn.png>]]~ as an equivalent to | ||
| 575 | ~[[http:orgmode.org][file:unicorn.png]]~. The advantage of the former | ||
| 576 | is that spaces are allowed within the path. | ||
| 577 | |||
| 578 | *** Beamer export back-ends uses ~org-latex-prefer-user-labels~ | ||
| 579 | *** ~:preparation-function~ called earlier during publishing | ||
| 580 | |||
| 581 | Functions in this list are called before any file is associated to the | ||
| 582 | current projet. Thus, they can be used to generate to be published | ||
| 583 | Org files. | ||
| 584 | |||
| 585 | *** Function ~org-remove-indentation~ changes. | ||
| 586 | |||
| 587 | The new algorithm doesn't remove TAB characters not used for | ||
| 588 | indentation. | ||
| 589 | |||
| 590 | *** Secure placeholders in capture templates | ||
| 591 | |||
| 592 | Placeholders in capture templates are no longer expanded recursively. | ||
| 593 | However, ~%(...)~ constructs are expanded very late, so you can fill | ||
| 594 | the contents of the S-exp with the replacement text of non-interactive | ||
| 595 | placeholders. As before, interactive ones are still expanded as the | ||
| 596 | very last step, so the previous statement doesn't apply to them. | ||
| 597 | |||
| 598 | Note that only ~%(...)~ placeholders initially present in the | ||
| 599 | template, or introduced using a file placeholder, i.e., ~%[...]~ are | ||
| 600 | expanded. This prevents evaluating potentially malicious code when | ||
| 601 | another placeholder, e.g., ~%i~ expands to a S-exp. | ||
| 602 | |||
| 603 | *** Links stored by ~org-gnus-store-link~ in nnir groups | ||
| 604 | |||
| 605 | Since gnus nnir groups are temporary, ~org-gnus-store-link~ now refers | ||
| 606 | to the article's original group. | ||
| 607 | |||
| 608 | *** ~org-babel-check-confirm-evaluate~ is now a function instead of a macro | ||
| 609 | |||
| 610 | The calling convention has changed. | ||
| 611 | |||
| 612 | *** HTML export table row customization changes | ||
| 613 | |||
| 614 | Variable ~org-html-table-row-tags~ has been split into | ||
| 615 | ~org-html-table-row-open-tag~ and ~org-html-table-row-close-tag~. | ||
| 616 | Both new variables can be either a string or a function which will be | ||
| 617 | called with 6 parameters. | ||
| 618 | |||
| 619 | *** =ITEM= special property returns headline without stars | ||
| 620 | *** Rename ~org-insert-columns-dblock~ into ~org-columns-insert-dblock~ | ||
| 621 | |||
| 622 | The previous name is, for the time being, kept as an obsolete alias. | ||
| 623 | |||
| 624 | *** ~org-trim~ can preserve leading indentation. | ||
| 625 | |||
| 626 | When setting a new optional argument to a non-nil value, ~org-trim~ | ||
| 627 | preserves leading indentation while removing blank lines at the | ||
| 628 | beginning of the string. The behavior is identical for white space at | ||
| 629 | the end of the string. | ||
| 630 | |||
| 631 | *** Function ~org-info-export~ changes. | ||
| 632 | |||
| 633 | HTML links created from certain info links now point to =gnu.org= URL's rather | ||
| 634 | than just to local files. For example info links such as =info:emacs#List | ||
| 635 | Buffers= used to be converted to HTML links like this: | ||
| 636 | |||
| 637 | : <a href="emacs.html#List-Buffers">emacs#List Buffers</a> | ||
| 638 | |||
| 639 | where local file =emacs.html= is referenced. | ||
| 640 | For most folks this file does not exist. | ||
| 641 | Thus the new behavior is to generate this HTML link instead: | ||
| 642 | |||
| 643 | : <a href="http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#List-Buffers">emacs#List Buffers</a> | ||
| 644 | |||
| 645 | All emacs related info links are similarly translated plus few other | ||
| 646 | =gnu.org= manuals. | ||
| 647 | |||
| 648 | *** Repeaters with a ~++~ interval and a time can be shifted to later today | ||
| 649 | |||
| 650 | Previously, if a recurring task had a timestamp of | ||
| 651 | ~<2016-01-01 Fri 20:00 ++1d>~ and was completed on =2016-01-02= at | ||
| 652 | =08:00=, the task would skip =2016-01-02= and would be rescheduled for | ||
| 653 | =2016-01-03=. Timestamps with ~++~ cookies and a specific time will | ||
| 654 | now shift to the first possible future occurrence, even if the | ||
| 655 | occurrence is later the same day the task is completed. (Timestamps | ||
| 656 | already in the future are still shifted one time further into the | ||
| 657 | future.) | ||
| 658 | |||
| 659 | *** ~org-mobile-action-alist~ is now a defconst | ||
| 660 | |||
| 661 | It used to be a defcustom, with a warning that it shouldn't be | ||
| 662 | modified anyway. | ||
| 663 | |||
| 664 | *** ~file+emacs~ and ~file+sys~ link types are deprecated | ||
| 665 | |||
| 666 | They are still supported in Org 9.0 but will eventually be removed in | ||
| 667 | a later release. Use ~file~ link type along with universal arguments | ||
| 668 | to force opening it in either Emacs or with system application. | ||
| 669 | |||
| 670 | *** New defcustom ~org-babel-J-command~ stores the j command | ||
| 671 | *** New defalias ~org-babel-execute:j~ | ||
| 672 | |||
| 673 | Allows J source blocks be indicated by letter j. Previously the | ||
| 674 | indication letter was solely J. | ||
| 675 | |||
| 676 | *** ~org-open-line~ ignores tables at the very beginning of the buffer | ||
| 677 | |||
| 678 | When ~org-special-ctrl-o~ is non-nil, it is impractical to create | ||
| 679 | a blank line above a table at the beginning of the document. Now, as | ||
| 680 | a special case, ~org-open-line~ behaves normally in this situation. | ||
| 681 | |||
| 682 | *** ~org-babel-hash-show-time~ is now customizable | ||
| 683 | |||
| 684 | The experimental variable used to be more or less confidential, as | ||
| 685 | a ~defvar~. | ||
| 686 | |||
| 687 | *** New ~:format~ property to parsed links | ||
| 688 | |||
| 689 | It defines the format of the original link. Possible values are: | ||
| 690 | ~plain~, ~bracket~ and ~angle~. | ||
| 691 | |||
| 692 | * Version 8.3 | ||
| 693 | |||
| 694 | ** Incompatible changes | ||
| 695 | |||
| 696 | *** Properties drawers syntax changes | ||
| 697 | |||
| 698 | Properties drawers are now required to be located right after a | ||
| 699 | headline and its planning line, when applicable. | ||
| 700 | |||
| 701 | It will break some documents as TODO states changes were sometimes | ||
| 702 | logged before the property drawer. | ||
| 703 | |||
| 704 | The following function will repair them: | ||
| 705 | |||
| 706 | #+BEGIN_SRC emacs-lisp | ||
| 707 | (defun org-repair-property-drawers () | ||
| 708 | "Fix properties drawers in current buffer. | ||
| 709 | Ignore non Org buffers." | ||
| 710 | (when (eq major-mode 'org-mode) | ||
| 711 | (org-with-wide-buffer | ||
| 712 | (goto-char (point-min)) | ||
| 713 | (let ((case-fold-search t) | ||
| 714 | (inline-re (and (featurep 'org-inlinetask) | ||
| 715 | (concat (org-inlinetask-outline-regexp) | ||
| 716 | "END[ \t]*$")))) | ||
| 717 | (org-map-entries | ||
| 718 | (lambda () | ||
| 719 | (unless (and inline-re (org-looking-at-p inline-re)) | ||
| 720 | (save-excursion | ||
| 721 | (let ((end (save-excursion (outline-next-heading) (point)))) | ||
| 722 | (forward-line) | ||
| 723 | (when (org-looking-at-p org-planning-line-re) (forward-line)) | ||
| 724 | (when (and (< (point) end) | ||
| 725 | (not (org-looking-at-p org-property-drawer-re)) | ||
| 726 | (save-excursion | ||
| 727 | (and (re-search-forward org-property-drawer-re end t) | ||
| 728 | (eq (org-element-type | ||
| 729 | (save-match-data (org-element-at-point))) | ||
| 730 | 'drawer)))) | ||
| 731 | (insert (delete-and-extract-region | ||
| 732 | (match-beginning 0) | ||
| 733 | (min (1+ (match-end 0)) end))) | ||
| 734 | (unless (bolp) (insert "\n")))))))))))) | ||
| 735 | #+END_SRC | ||
| 736 | |||
| 737 | *** Using "COMMENT" is now equivalent to commenting with "#" | ||
| 738 | |||
| 739 | If you used "COMMENT" in headlines to prevent a subtree from being | ||
| 740 | exported, you can still do it but all information within the subtree | ||
| 741 | is now commented out, i.e. no #+OPTIONS line will be parsed or taken | ||
| 742 | into account when exporting. | ||
| 743 | |||
| 744 | If you want to exclude a headline from export while using its contents | ||
| 745 | for setting options, use =:noexport:= (see =org-export-exclude-tags=.) | ||
| 746 | |||
| 747 | *** =#+CATEGORY= keywords no longer apply partially to document | ||
| 748 | |||
| 749 | It was possible to use several such keywords and have them apply to | ||
| 750 | the text below until the next one, but strongly deprecated since Org | ||
| 751 | 5.14 (2008). | ||
| 752 | |||
| 753 | =#+CATEGORY= keywords are now global to the document. You can use node | ||
| 754 | properties to set category for a subtree, e.g., | ||
| 755 | |||
| 756 | #+BEGIN_SRC org | ||
| 757 | ,* Headline | ||
| 758 | :PROPERTIES: | ||
| 759 | :CATEGORY: some category | ||
| 760 | :END: | ||
| 761 | #+END_SRC | ||
| 762 | |||
| 763 | *** New variable to control visibility when revealing a location | ||
| 764 | |||
| 765 | ~org-show-following-heading~, ~org-show-siblings~, ~org-show-entry-below~ | ||
| 766 | and ~org-show-hierarchy-above~ no longer exist. Instead, visibility is | ||
| 767 | controlled through a single variable: ~org-show-context-detail~, which | ||
| 768 | see. | ||
| 769 | |||
| 770 | *** Replace disputed keys again when reading a date | ||
| 771 | |||
| 772 | ~org-replace-disputed-keys~ has been ignored when reading date since | ||
| 773 | version 8.1, but the former behavior is restored again. | ||
| 774 | |||
| 775 | Keybinding for reading date can be customized with a new variable | ||
| 776 | ~org-read-date-minibuffer-local-map~. | ||
| 777 | |||
| 778 | *** No default title is provided when =TITLE= keyword is missing | ||
| 779 | |||
| 780 | Skipping =TITLE= keyword no longer provides the current file name, or | ||
| 781 | buffer name, as the title. Instead, simply ignore the title. | ||
| 782 | |||
| 783 | *** Default bindings of =C-c C-n= and =C-c C-p= changed | ||
| 784 | |||
| 785 | The key sequences =C-c C-n= and =C-c C-p= are now bound to | ||
| 786 | ~org-next-visible-heading~ and ~org-previous-visible-heading~ | ||
| 787 | respectively, rather than the =outline-mode= versions of these | ||
| 788 | functions. The Org version of these functions skips over inline tasks | ||
| 789 | (and even-level headlines when ~org-odd-levels-only~ is set). | ||
| 790 | |||
| 791 | *** ~org-element-context~ no longer return objects in keywords | ||
| 792 | |||
| 793 | ~org-element-context~ used to return objects on some keywords, i.e., | ||
| 794 | =TITLE=, =DATE= and =AUTHOR=. It now returns only the keyword. | ||
| 795 | |||
| 796 | *** ~org-timer-default-timer~ type changed from number to string | ||
| 797 | |||
| 798 | If you have, in your configuration, something like =(setq | ||
| 799 | org-timer-default-timer 10)= replace it with =(setq | ||
| 800 | org-timer-default-timer "10")=. | ||
| 801 | |||
| 802 | *** Functions signature changes | ||
| 803 | |||
| 804 | The following functions require an additional argument. See their | ||
| 805 | docstring for more information. | ||
| 806 | |||
| 807 | - ~org-export-collect-footnote-definitions~ | ||
| 808 | - ~org-html-format-headline-function~ | ||
| 809 | - ~org-html-format-inlinetask-function~ | ||
| 810 | - ~org-latex-format-headline-function~ | ||
| 811 | - ~org-latex-format-inlinetask-function~ | ||
| 812 | - ~org-link-search~ | ||
| 813 | |||
| 814 | ** New features | ||
| 815 | |||
| 816 | *** Default lexical evaluation of emacs-lisp src blocks | ||
| 817 | |||
| 818 | Emacs-lisp src blocks in babel are now evaluated using lexical | ||
| 819 | scoping. There is a new header to control this behavior. | ||
| 820 | |||
| 821 | The default results in an eval with lexical scoping. | ||
| 822 | :lexical yes | ||
| 823 | |||
| 824 | This turns lexical scoping off in the eval (the former behavior). | ||
| 825 | :lexical no | ||
| 826 | |||
| 827 | This uses the lexical environment with x=42 in the eval. | ||
| 828 | :lexical '((x . 42)) | ||
| 829 | |||
| 830 | *** Behavior of ~org-return~ changed | ||
| 831 | |||
| 832 | If point is before or after the headline title, insert a new line | ||
| 833 | without changing the headline. | ||
| 834 | |||
| 835 | *** Hierarchies of tags | ||
| 836 | |||
| 837 | The functionality of nesting tags in hierarchies is added to org-mode. | ||
| 838 | This is the generalization of what was previously called "Tag groups" | ||
| 839 | in the manual. That term is now changed to "Tag hierarchy". | ||
| 840 | |||
| 841 | The following in-buffer definition: | ||
| 842 | |||
| 843 | #+BEGIN_SRC org | ||
| 844 | ,#+TAGS: [ Group : SubOne SubTwo ] | ||
| 845 | ,#+TAGS: [ SubOne : SubOne1 SubOne2 ] | ||
| 846 | ,#+TAGS: [ SubTwo : SubTwo1 SubTwo2 ] | ||
| 847 | #+END_SRC | ||
| 848 | |||
| 849 | Should be seen as the following tree of tags: | ||
| 850 | |||
| 851 | - Group | ||
| 852 | - SubOne | ||
| 853 | - SubOne1 | ||
| 854 | - SubOne2 | ||
| 855 | - SubTwo | ||
| 856 | - SubTwo1 | ||
| 857 | - SubTwo2 | ||
| 858 | |||
| 859 | Searching for "Group" should return all tags defined above. Filtering | ||
| 860 | on SubOne filters also it's sub-tags. Etc. | ||
| 861 | |||
| 862 | There is no limit on the depth for the tag hierarchy. | ||
| 863 | |||
| 864 | *** Additional syntax for non-unique grouptags | ||
| 865 | |||
| 866 | Additional syntax is defined for grouptags if the tags in the group | ||
| 867 | don't have to be distinct on a heading. | ||
| 868 | |||
| 869 | Grouptags had to previously be defined with { }. This syntax is | ||
| 870 | already used for exclusive tags and Grouptags need their own, | ||
| 871 | non-exclusive syntax. This behaviour is achieved with [ ]. Note: { } | ||
| 872 | can still be used also for Grouptags but then only one of the given | ||
| 873 | tags can be used on the headline at the same time. Example: | ||
| 874 | |||
| 875 | [ group : sub1 sub2 ] | ||
| 876 | |||
| 877 | #+BEGIN_SRC org | ||
| 878 | ,* Test :sub1:sub2: | ||
| 879 | #+END_SRC | ||
| 880 | |||
| 881 | This is a more general case than the already existing syntax for | ||
| 882 | grouptags; { }. | ||
| 883 | |||
| 884 | *** Define regular expression patterns as tags | ||
| 885 | |||
| 886 | Tags can be defined as grouptags with regular expressions as | ||
| 887 | "sub-tags". | ||
| 888 | |||
| 889 | The regular expressions in the group must be marked up within { }. | ||
| 890 | Example use: | ||
| 891 | |||
| 892 | : #+TAGS: [ Project : {P@.+} ] | ||
| 893 | |||
| 894 | Searching for the tag Project will now list all tags also including | ||
| 895 | regular expression matches for P@.+. This is good for example for | ||
| 896 | projects tagged with a common identifier, i.e. P@2014_OrgTags. | ||
| 897 | |||
| 898 | *** Filtering in the agenda on grouptags (Tag hierarchies) | ||
| 899 | |||
| 900 | Filtering in the agenda on grouptags filters all of the related tags. | ||
| 901 | Except if a filter is applied with a (double) prefix-argument. | ||
| 902 | |||
| 903 | Filtering in the agenda on subcategories does not filter the "above" | ||
| 904 | levels anymore. | ||
| 905 | |||
| 906 | If a grouptag contains a regular expression the regular expression | ||
| 907 | is also used as a filter. | ||
| 908 | |||
| 909 | *** Minor refactoring of ~org-agenda-filter-by-tag~ | ||
| 910 | |||
| 911 | Now uses the argument ARG and optional argument exclude instead of | ||
| 912 | strip and narrow. ARG because the argument has multiple purposes and | ||
| 913 | makes more sense than strip now. The term "narrowing" is changed to | ||
| 914 | exclude. | ||
| 915 | |||
| 916 | The main purpose is for the function to make more logical sense when | ||
| 917 | filtering on tags now when tags can be structured in hierarchies. | ||
| 918 | |||
| 919 | *** Babel: support for sed scripts | ||
| 920 | |||
| 921 | Thanks to Bjarte Johansen for this feature. | ||
| 922 | |||
| 923 | *** Babel: support for Processing language | ||
| 924 | |||
| 925 | New ob-processing.el library. | ||
| 926 | |||
| 927 | This library implements necessary functions for implementing editing | ||
| 928 | of Processing code blocks, viewing the resulting sketches in an | ||
| 929 | external viewer, and HTML export of the sketches. | ||
| 930 | |||
| 931 | Check the documentation for more details. | ||
| 932 | |||
| 933 | Thanks to Jarmo Hurri for this feature. | ||
| 934 | |||
| 935 | *** New behaviour for ~org-toggle-latex-fragment~ | ||
| 936 | |||
| 937 | The new behaviour is the following: | ||
| 938 | |||
| 939 | - With a double prefix argument or with a single prefix argument when | ||
| 940 | point is before the first headline, toggle overlays in the whole | ||
| 941 | buffer; | ||
| 942 | |||
| 943 | - With a single prefix argument, toggle overlays in the current | ||
| 944 | subtree; | ||
| 945 | |||
| 946 | - On latex code, toggle overlay at point; | ||
| 947 | |||
| 948 | - Otherwise, toggle overlays in the current section. | ||
| 949 | |||
| 950 | *** Additional markup with =#+INCLUDE= keyword | ||
| 951 | |||
| 952 | The content of the included file can now be optionally marked up, for | ||
| 953 | instance as HTML. See the documentation for details. | ||
| 954 | |||
| 955 | *** File links with =#+INCLUDE= keyword | ||
| 956 | |||
| 957 | Objects can be extracted via =#+INCLUDE= using file links. It is | ||
| 958 | possible to include only the contents of the object. See manual for | ||
| 959 | more information. | ||
| 960 | |||
| 961 | *** Drawers do not need anymore to be referenced in =#+DRAWERS= | ||
| 962 | |||
| 963 | One can use a drawer without listing it in the =#+DRAWERS= keyword, | ||
| 964 | which is now obsolete. As a consequence, this change also deprecates | ||
| 965 | ~org-drawers~ variable. | ||
| 966 | |||
| 967 | *** ~org-edit-special~ can edit export blocks | ||
| 968 | |||
| 969 | Using C-c ' on an export block now opens a sub-editing buffer. Major | ||
| 970 | mode in that buffer is determined by export backend name (e.g., | ||
| 971 | "latex" \to "latex-mode"). You can define exceptions to this rule by | ||
| 972 | configuring ~org-src-lang-modes~, which see. | ||
| 973 | |||
| 974 | *** Additional =:hline= processing to ob-shell | ||
| 975 | |||
| 976 | If the argument =:hlines yes= is present in a babel call, an optional | ||
| 977 | argument =:hlines-string= can be used to define a string to use as a | ||
| 978 | representation for the lisp symbol ='hline= in the shell program. The | ||
| 979 | default is =hline=. | ||
| 980 | |||
| 981 | *** Markdown export supports switches in source blocks | ||
| 982 | |||
| 983 | For example, it is now possible to number lines using the =-n= switch in | ||
| 984 | a source block. | ||
| 985 | |||
| 986 | *** New option in ASCII export | ||
| 987 | |||
| 988 | Plain lists can have an extra margin by setting ~org-ascii-list-margin~ | ||
| 989 | variable to an appopriate integer. | ||
| 990 | |||
| 991 | *** New blocks in ASCII export | ||
| 992 | |||
| 993 | ASCII export now supports =#+BEGIN_JUSTIFYRIGHT= and =#+BEGIN_JUSTIFYLEFT= | ||
| 994 | blocks. See documentation for details. | ||
| 995 | |||
| 996 | *** More back-end specific publishing options | ||
| 997 | |||
| 998 | The number of publishing options specific to each back-end has been | ||
| 999 | increased. See manual for details. | ||
| 1000 | |||
| 1001 | *** Export inline source blocks | ||
| 1002 | |||
| 1003 | Inline source code was used to be removed upon exporting. They are | ||
| 1004 | now handled as standard code blocks, i.e., the source code can appear | ||
| 1005 | in the output, depending on the parameters. | ||
| 1006 | |||
| 1007 | *** Extend ~org-export-first-sibling-p~ and ~org-export-last-sibling-p~ | ||
| 1008 | |||
| 1009 | These functions now support any element or object, not only headlines. | ||
| 1010 | |||
| 1011 | *** New function: ~org-export-table-row-in-header-p~ | ||
| 1012 | |||
| 1013 | *** New function: ~org-export-get-reference~ | ||
| 1014 | |||
| 1015 | *** New function: ~org-element-lineage~ | ||
| 1016 | |||
| 1017 | This function deprecates ~org-export-get-genealogy~. It also provides | ||
| 1018 | more features. See docstring for details. | ||
| 1019 | |||
| 1020 | *** New function: ~org-element-copy~ | ||
| 1021 | |||
| 1022 | *** New filter: ~org-export-filter-body-functions~ | ||
| 1023 | |||
| 1024 | Functions in this filter are applied on the body of the exported | ||
| 1025 | document, befor wrapping it within the template. | ||
| 1026 | |||
| 1027 | *** New :environment parameter when exporting example blocks to LaTeX | ||
| 1028 | |||
| 1029 | : #+ATTR_LATEX: :environment myverbatim | ||
| 1030 | : #+BEGIN_EXAMPLE | ||
| 1031 | : This sentence is false. | ||
| 1032 | : #+END_EXAMPLE | ||
| 1033 | |||
| 1034 | will be exported using =@samp(myverbatim)= instead of =@samp(verbatim)=. | ||
| 1035 | |||
| 1036 | *** Various improvements on radio tables | ||
| 1037 | |||
| 1038 | Radio tables feature now relies on Org's export framework ("ox.el"). | ||
| 1039 | ~:no-escape~ parameter no longer exists, but additional global | ||
| 1040 | parameters are now supported: ~:raw~, ~:backend~. Moreover, there are new | ||
| 1041 | parameters specific to some pre-defined translators, e.g., | ||
| 1042 | ~:environment~ and ~:booktabs~ for ~orgtbl-to-latex~. See translators | ||
| 1043 | docstrings (including ~orgtbl-to-generic~) for details. | ||
| 1044 | |||
| 1045 | *** Non-floating minted listings in Latex export | ||
| 1046 | |||
| 1047 | It is not possible to specify =#+attr_latex: :float nil= in conjunction | ||
| 1048 | with source blocks exported by the minted package. | ||
| 1049 | |||
| 1050 | *** Field formulas can now create columns as needed | ||
| 1051 | |||
| 1052 | Previously, evaluating formulas that referenced out-of-bounds columns | ||
| 1053 | would throw an error. A new variable ~org-table-formula-create-columns~ | ||
| 1054 | was added to adjust this behavior. It is now possible to silently add | ||
| 1055 | new columns, to do so with a warning or to explicitly ask the user | ||
| 1056 | each time. | ||
| 1057 | |||
| 1058 | *** ASCII plot | ||
| 1059 | |||
| 1060 | Ability to plot values in a column through ASCII-art bars. See manual | ||
| 1061 | for details. | ||
| 1062 | |||
| 1063 | *** New hook: ~org-archive-hook~ | ||
| 1064 | |||
| 1065 | This hook is called after successfully archiving a subtree, with point | ||
| 1066 | on the original subtree, not yet deleted. | ||
| 1067 | |||
| 1068 | *** New option: ~org-attach-archive-delete~ | ||
| 1069 | |||
| 1070 | When non-nil, attachments from archived subtrees are removed. | ||
| 1071 | |||
| 1072 | *** New option: ~org-latex-caption-above~ | ||
| 1073 | |||
| 1074 | This variable generalizes ~org-latex-table-caption-above~, which is now | ||
| 1075 | deprecated. In addition to tables, it applies to source blocks, | ||
| 1076 | special blocks and images. See docstring for more information. | ||
| 1077 | |||
| 1078 | *** New option: ~org-latex-prefer-user-labels~ | ||
| 1079 | |||
| 1080 | See the docstring for more information. | ||
| 1081 | |||
| 1082 | *** Export unnumbered headlines | ||
| 1083 | |||
| 1084 | Headlines, for which the property ~UNNUMBERED~ is non-nil, are now | ||
| 1085 | exported without section numbers irrespective of their levels. The | ||
| 1086 | property is inherited by children. | ||
| 1087 | |||
| 1088 | *** Tables can be sorted with an arbitrary function | ||
| 1089 | |||
| 1090 | It is now possible to specify a function, both programatically, | ||
| 1091 | through a new optional argument, and interactively with ~f~ or ~F~ keys, | ||
| 1092 | to sort a table. | ||
| 1093 | |||
| 1094 | *** Table of contents can be local to a section | ||
| 1095 | |||
| 1096 | The ~TOC~ keywords now accepts an optional ~local~ parameter. See manual | ||
| 1097 | for details. | ||
| 1098 | |||
| 1099 | *** Countdown timers can now be paused | ||
| 1100 | |||
| 1101 | ~org-timer-pause-time~ now pauses and restarts both relative and | ||
| 1102 | countdown timers. | ||
| 1103 | |||
| 1104 | *** New option ~only-window~ for ~org-agenda-window-setup~ | ||
| 1105 | |||
| 1106 | When ~org-agenda-window-setup~ is set to ~only-window~, the agenda is | ||
| 1107 | displayed as the sole window of the current frame. | ||
| 1108 | |||
| 1109 | *** ~{{{date}}}~ macro supports optional formatting argument | ||
| 1110 | |||
| 1111 | It is now possible to supply and optional formatting argument to | ||
| 1112 | ~{{{date}}}~. See manual for details. | ||
| 1113 | |||
| 1114 | *** ~{{{property}}}~ macro supports optional search argument | ||
| 1115 | |||
| 1116 | It is now possible to supply an optional search option to | ||
| 1117 | ~{{{property}}}~ in order to retrieve remote properties optional. See | ||
| 1118 | manual for details. | ||
| 1119 | |||
| 1120 | *** New option ~org-export-with-title~ | ||
| 1121 | |||
| 1122 | It is possible to suppress the title insertion with ~#+OPTIONS: | ||
| 1123 | title:nil~ or globally using the variable ~org-export-with-title~. | ||
| 1124 | |||
| 1125 | *** New entities family: "\_ " | ||
| 1126 | |||
| 1127 | "\_ " are used to insert up to 20 contiguous spaces in various | ||
| 1128 | back-ends. In particular, this family can be used to introduce | ||
| 1129 | leading spaces within table cells. | ||
| 1130 | |||
| 1131 | *** New MathJax configuration options | ||
| 1132 | |||
| 1133 | Org uses the MathJax CDN by default. See the manual and the docstring | ||
| 1134 | of ~org-html-mathjax-options~ for details. | ||
| 1135 | |||
| 1136 | *** New behaviour in `org-export-options-alist' | ||
| 1137 | |||
| 1138 | When defining a back-end, it is now possible to specify to give | ||
| 1139 | `parse' behaviour on a keyword. It is equivalent to call | ||
| 1140 | `org-element-parse-secondary-string' on the value. | ||
| 1141 | |||
| 1142 | However, parsed =KEYWORD= is automatically associated to an | ||
| 1143 | =:EXPORT_KEYWORD:= property, which can be used to override the keyword | ||
| 1144 | value during a subtree export. Moreover, macros are expanded in such | ||
| 1145 | keywords and properties. | ||
| 1146 | |||
| 1147 | *** Viewport support in html export | ||
| 1148 | |||
| 1149 | Viewport for mobile-optimized website is now automatically inserted | ||
| 1150 | when exporting to html. See ~org-html-viewport~ for details. | ||
| 1151 | |||
| 1152 | *** New ~#+SUBTITLE~ export keyword | ||
| 1153 | |||
| 1154 | Org can typeset a subtitle in some export backends. See the manual | ||
| 1155 | for details. | ||
| 1156 | |||
| 1157 | *** Remotely edit a footnote definition | ||
| 1158 | |||
| 1159 | Calling ~org-edit-footnote-reference~ (C-c ') on a footnote reference | ||
| 1160 | allows to edit its definition, as long as it is not anonymous, in a | ||
| 1161 | dedicated buffer. It works even if buffer is currently narrowed. | ||
| 1162 | |||
| 1163 | *** New function ~org-delete-indentation~ bound to ~M-^~ | ||
| 1164 | |||
| 1165 | Work as ~delete-indentation~ unless at heading, in which case text is | ||
| 1166 | added to headline text. | ||
| 1167 | |||
| 1168 | *** Support for images in Texinfo export | ||
| 1169 | |||
| 1170 | ~Texinfo~ back-end now handles images. See the manual for details. | ||
| 1171 | |||
| 1172 | *** Support for captions in Texinfo export | ||
| 1173 | |||
| 1174 | Tables and source blocks can now have captions. Additionally, lists | ||
| 1175 | of tables and lists of listings can be inserted in the document with | ||
| 1176 | =#+TOC= keyword. | ||
| 1177 | |||
| 1178 | *** Countdown timer support hh:mm:ss format | ||
| 1179 | |||
| 1180 | In addition to setting countdown timers in minutes, they can also be | ||
| 1181 | set using the hh:mm:ss format. | ||
| 1182 | |||
| 1183 | *** Extend ~org-clone-subtree-with-time-shift~ | ||
| 1184 | |||
| 1185 | ~org-clone-subtree-with-time-shift~ now accepts 0 as an argument for the | ||
| 1186 | number of clones, which removes the repeater from the original subtree | ||
| 1187 | and creates one shifted, repeating clone. | ||
| 1188 | |||
| 1189 | *** New time block for clock tables: ~untilnow~ | ||
| 1190 | |||
| 1191 | It encompasses all past closed clocks. | ||
| 1192 | |||
| 1193 | *** Support for the ~polyglossia~ LaTeX package | ||
| 1194 | |||
| 1195 | See the docstring of ~org-latex-classes~ and | ||
| 1196 | ~org-latex-guess-polyglossia-language~ for details. | ||
| 1197 | |||
| 1198 | *** None-floating tables, graphics and blocks can have captions | ||
| 1199 | |||
| 1200 | *** `org-insert-heading' can be forced to insert top-level headline | ||
| 1201 | |||
| 1202 | ** Removed functions | ||
| 1203 | |||
| 1204 | *** Removed function ~org-translate-time~ | ||
| 1205 | |||
| 1206 | Use ~org-timestamp-translate~ instead. | ||
| 1207 | |||
| 1208 | *** Removed function ~org-beamer-insert-options-template~ | ||
| 1209 | |||
| 1210 | This function inserted a Beamer specific template at point or in | ||
| 1211 | current subtree. Use ~org-export-insert-default-template~ instead, as | ||
| 1212 | it provides more features and covers all export back-ends. It is also | ||
| 1213 | accessible from the export dispatcher. | ||
| 1214 | |||
| 1215 | *** Removed function ~org-timer-cancel-timer~ | ||
| 1216 | |||
| 1217 | ~org-timer-stop~ now stops both relative and countdown timers. | ||
| 1218 | |||
| 1219 | *** Removed function ~org-export-solidify-link-text~ | ||
| 1220 | |||
| 1221 | This function, being non-bijective, introduced bug in internal | ||
| 1222 | references. Use ~org-export-get-reference~ instead. | ||
| 1223 | |||
| 1224 | *** Removed function ~org-end-of-meta-data-and-drawers~ | ||
| 1225 | |||
| 1226 | The function is superseded by ~org-end-of-meta-data~, called with an | ||
| 1227 | optional argument. | ||
| 1228 | |||
| 1229 | *** Removed functions ~org-table-colgroup-line-p~, ~org-table-cookie-line-p~ | ||
| 1230 | |||
| 1231 | These functions were left-over from pre 8.0 era. They are not correct | ||
| 1232 | anymore. Since they are not needed, they have no replacement. | ||
| 1233 | |||
| 1234 | ** Removed options | ||
| 1235 | |||
| 1236 | *** ~org-list-empty-line-terminates-plain-lists~ is deprecated | ||
| 1237 | |||
| 1238 | It will be kept in code base until next release, for backward | ||
| 1239 | compatibility. | ||
| 1240 | |||
| 1241 | If you need to separate consecutive lists with blank lines, always use | ||
| 1242 | two of them, as if this option was nil (default value). | ||
| 1243 | |||
| 1244 | *** ~org-export-with-creator~ is a boolean | ||
| 1245 | |||
| 1246 | Special ~comment~ value is no longer allowed. It is possible to use a | ||
| 1247 | body filter to add comments about the creator at the end of the | ||
| 1248 | document instead. | ||
| 1249 | |||
| 1250 | *** Removed option =org-html-use-unicode-chars= | ||
| 1251 | |||
| 1252 | Setting this to non-nil was problematic as it converted characters | ||
| 1253 | everywhere in the buffer, possibly corrupting URLs. | ||
| 1254 | |||
| 1255 | *** Removed option =org-babel-sh-command= | ||
| 1256 | |||
| 1257 | This undocumented option defaulted to the value of =shell-file-name= at | ||
| 1258 | the time of loading =ob-shell=. The new behaviour is to use the value | ||
| 1259 | of =shell-file-name= directly when the shell langage is =shell=. To chose | ||
| 1260 | a different shell, either customize =shell-file-name= or bind this | ||
| 1261 | variable locally. | ||
| 1262 | |||
| 1263 | *** Removed option =org-babel-sh-var-quote-fmt= | ||
| 1264 | |||
| 1265 | This undocumented option was supposed to provide different quoting | ||
| 1266 | styles when changing the shell type. Changing the shell type can now | ||
| 1267 | be done directly from the source block and the quoting style has to be | ||
| 1268 | compatible across all shells, so a customization doesn't make sense | ||
| 1269 | anymore. The chosen hard coded quoting style conforms to POSIX. | ||
| 1270 | |||
| 1271 | *** Removed option ~org-insert-labeled-timestamps-at-point~ | ||
| 1272 | |||
| 1273 | Setting this option to anything else that the default value (nil) | ||
| 1274 | would create invalid planning info. This dangerous option is now | ||
| 1275 | removed. | ||
| 1276 | |||
| 1277 | *** Removed option ~org-koma-letter-use-title~ | ||
| 1278 | |||
| 1279 | Use org-export-with-title instead. See also below. | ||
| 1280 | |||
| 1281 | *** Removed option ~org-entities-ascii-explanatory~ | ||
| 1282 | |||
| 1283 | This variable has no effect since Org 8.0. | ||
| 1284 | |||
| 1285 | *** Removed option ~org-table-error-on-row-ref-crossing-hline~ | ||
| 1286 | |||
| 1287 | This variable has no effect since August 2009. | ||
| 1288 | |||
| 1289 | *** Removed MathML-related options from ~org-html-mathjax-options~ | ||
| 1290 | |||
| 1291 | MathJax automatically chooses the best display technology based on the | ||
| 1292 | end-users browser. You may force initial usage of MathML via | ||
| 1293 | ~org-html-mathjax-template~ or by setting the ~path~ property of | ||
| 1294 | ~org-html-mathjax-options~. | ||
| 1295 | |||
| 1296 | *** Removed comment-related filters | ||
| 1297 | |||
| 1298 | ~org-export-filter-comment-functions~ and | ||
| 1299 | ~org-export-filter-comment-block-functions~ variables do not exist | ||
| 1300 | anymore. | ||
| 1301 | |||
| 1302 | ** Miscellaneous | ||
| 1303 | |||
| 1304 | *** Strip all meta data from ITEM special property | ||
| 1305 | |||
| 1306 | ITEM special property does not contain TODO, priority or tags anymore. | ||
| 1307 | |||
| 1308 | *** File names in links accept are now compatible with URI syntax | ||
| 1309 | |||
| 1310 | Absolute file names can now start with =///= in addition to =/=. E.g., | ||
| 1311 | =[[file:///home/me/unicorn.jpg]]=. | ||
| 1312 | |||
| 1313 | *** Footnotes in included files are now local to the file | ||
| 1314 | |||
| 1315 | As a consequence, it is possible to include multiple Org files with | ||
| 1316 | footnotes in a master document without being concerned about footnote | ||
| 1317 | labels colliding. | ||
| 1318 | |||
| 1319 | *** Mailto links now use regular URI syntax | ||
| 1320 | |||
| 1321 | This change deprecates old Org syntax for mailto links: | ||
| 1322 | =mailto:user@domain::Subject=. | ||
| 1323 | |||
| 1324 | *** =QUOTE= keywords do not exist anymore | ||
| 1325 | |||
| 1326 | =QUOTE= keywords have been deprecated since Org 8.2. | ||
| 1327 | |||
| 1328 | *** Select tests to perform with the build system | ||
| 1329 | |||
| 1330 | The build system has been enhanced to allow test selection with a | ||
| 1331 | regular expression by defining =BTEST_RE= during the test invocation. | ||
| 1332 | This is especially useful during bisection to find just when a | ||
| 1333 | particular test failure was introduced. | ||
| 1334 | |||
| 1335 | *** Exact heading search for external links ignore spaces and cookies | ||
| 1336 | |||
| 1337 | Exact heading search for links now ignore spaces and cookies. This is | ||
| 1338 | the case for links of the form ~file:projects.org::*task title~, as well | ||
| 1339 | as links of the form ~file:projects.org::some words~ when | ||
| 1340 | ~org-link-search-must-match-exact-headline~ is not nil. | ||
| 1341 | |||
| 1342 | *** ~org-latex-hyperref-template~, ~org-latex-title-command~ formatting | ||
| 1343 | |||
| 1344 | New formatting keys are supported. See the respective docstrings. | ||
| 1345 | Note, ~org-latex-hyperref-template~ has a new default value. | ||
| 1346 | |||
| 1347 | *** ~float, wasysym, marvosym~ are removed from ~org-latex-default-packages-alist~ | ||
| 1348 | |||
| 1349 | If you require any of these package add them to your preamble via | ||
| 1350 | ~org-latex-packages-alist~. Org also uses default LaTeX ~\tolerance~ now. | ||
| 1351 | |||
| 1352 | *** When exporting, throw an error on unresolved id/fuzzy links and code refs | ||
| 1353 | |||
| 1354 | This helps spotting wrong links. | ||
| 1355 | |||
| 1356 | * Version 8.2 | ||
| 1357 | |||
| 1358 | ** Incompatible changes | ||
| 1359 | *** =ob-sh.el= renamed to =ob-shell= | ||
| 1360 | This may require two changes in user config. | ||
| 1361 | |||
| 1362 | 1. In =org-babel-do-load-languages=, change =(sh . t)= to =(shell . t)=. | ||
| 1363 | 2. Edit =local.mk= files to change the value of =BTEST_OB_LANGUAGES= | ||
| 1364 | to remove "sh" and include "shell". | ||
| 1365 | |||
| 15 | *** Combine org-mac-message.el and org-mac-link-grabber into org-mac-link.el | 1366 | *** Combine org-mac-message.el and org-mac-link-grabber into org-mac-link.el |
| 16 | 1367 | ||
| 17 | Please remove calls to =(require 'org-mac-message)= and =(require | 1368 | Please remove calls to =(require 'org-mac-message)= and =(require |
| @@ -171,6 +1522,18 @@ then inline code snippets will be wrapped into the formatting string. | |||
| 171 | - =org-screenshot.el= by Max Mikhanosha :: an utility to handle | 1522 | - =org-screenshot.el= by Max Mikhanosha :: an utility to handle |
| 172 | screenshots easily from Org, using the external tool [[http://freecode.com/projects/scrot][scrot]]. | 1523 | screenshots easily from Org, using the external tool [[http://freecode.com/projects/scrot][scrot]]. |
| 173 | 1524 | ||
| 1525 | ** Miscellaneous | ||
| 1526 | |||
| 1527 | *** "QUOTE" keywords in headlines are deprecated | ||
| 1528 | |||
| 1529 | "QUOTE" keywords are an undocumented feature in Org. When a headline | ||
| 1530 | starts with the keyword "QUOTE", its contents are parsed as | ||
| 1531 | a ~quote-section~ and treated as an example block. You can achieve | ||
| 1532 | the same with example blocks. | ||
| 1533 | |||
| 1534 | This feature is deprecated and will be removed in the next Org | ||
| 1535 | release. | ||
| 1536 | |||
| 174 | * Version 8.0.1 | 1537 | * Version 8.0.1 |
| 175 | 1538 | ||
| 176 | ** Installation | 1539 | ** Installation |
| @@ -835,14 +2198,14 @@ See [[http://orgmode.org/org.html#Lookup-functions][the manual]] for details. | |||
| 835 | 2198 | ||
| 836 | These new startup keywords are now available: | 2199 | These new startup keywords are now available: |
| 837 | 2200 | ||
| 838 | | Startup keyword | Option | | 2201 | | Startup keyword | Option | |
| 839 | |----------------------------------+---------------------------------------------| | 2202 | |--------------------------------+-------------------------------------------| |
| 840 | | =#+STARTUP: logdrawer= | =(setq org-log-into-drawer t)= | | 2203 | | =#+STARTUP: logdrawer= | =(setq org-log-into-drawer t)= | |
| 841 | | =#+STARTUP: nologdrawer= | =(setq org-log-into-drawer nil)= | | 2204 | | =#+STARTUP: nologdrawer= | =(setq org-log-into-drawer nil)= | |
| 842 | |----------------------------------+---------------------------------------------| | 2205 | |--------------------------------+-------------------------------------------| |
| 843 | | =#+STARTUP: logstatesreversed= | =(setq org-log-states-order-reversed t)= | | 2206 | | =#+STARTUP: logstatesreversed= | =(setq org-log-states-order-reversed t)= | |
| 844 | | =#+STARTUP: nologstatesreversed= | =(setq org-log-states-order-reversed nil)= | | 2207 | | =#+STARTUP: nologstatesreversed= | =(setq org-log-states-order-reversed nil)= | |
| 845 | |----------------------------------+---------------------------------------------| | 2208 | |--------------------------------+-------------------------------------------| |
| 846 | | =#+STARTUP: latexpreview= | =(setq org-startup-with-latex-preview t)= | | 2209 | | =#+STARTUP: latexpreview= | =(setq org-startup-with-latex-preview t)= | |
| 847 | | =#+STARTUP: nolatexpreview= | =(setq org-startup-with-latex-preview nil)= | | 2210 | | =#+STARTUP: nolatexpreview= | =(setq org-startup-with-latex-preview nil)= | |
| 848 | 2211 | ||
| @@ -952,7 +2315,7 @@ instead of requiring each Babel library one by one. | |||
| 952 | - New option [[doc:org-gnus-no-server][org-gnus-no-server]] to start Gnus with =gnus-no-server= | 2315 | - New option [[doc:org-gnus-no-server][org-gnus-no-server]] to start Gnus with =gnus-no-server= |
| 953 | - Org is now distributed with =htmlize.el= version 1.43 | 2316 | - Org is now distributed with =htmlize.el= version 1.43 |
| 954 | - ~org-drill.el~ has been updated to version 2.3.7 | 2317 | - ~org-drill.el~ has been updated to version 2.3.7 |
| 955 | - ~org-mac-iCal.el~ now supports OS X versions up to 10.8 | 2318 | - ~org-mac-iCal.el~ now supports MacOSX version up to 10.8 |
| 956 | - Various improvements to ~org-contacts.el~ and =orgpan.el= | 2319 | - Various improvements to ~org-contacts.el~ and =orgpan.el= |
| 957 | 2320 | ||
| 958 | ** Outside Org | 2321 | ** Outside Org |
| @@ -1021,6 +2384,13 @@ consistent with using the `:' key in agenda view. | |||
| 1021 | You can now use `=' for [[doc::org-columns][org-columns]]. | 2384 | You can now use `=' for [[doc::org-columns][org-columns]]. |
| 1022 | 2385 | ||
| 1023 | ** =org-float= is now obsolete, use =diary-float= instead | 2386 | ** =org-float= is now obsolete, use =diary-float= instead |
| 2387 | ** No GPL manual anymore | ||
| 2388 | |||
| 2389 | There used to be a GPL version of the Org manual, but this is not the | ||
| 2390 | case anymore, the Free Software Foundation does not permit this. | ||
| 2391 | |||
| 2392 | The GNU FDL license is now included in the manual directly. | ||
| 2393 | |||
| 1024 | ** Enhanced compatibility with Emacs 22 and XEmacs | 2394 | ** Enhanced compatibility with Emacs 22 and XEmacs |
| 1025 | 2395 | ||
| 1026 | Thanks to Achim for his work on enhancing Org's compatibility with | 2396 | Thanks to Achim for his work on enhancing Org's compatibility with |
| @@ -1046,8 +2416,8 @@ See http://orgmode.org/elpa/ | |||
| 1046 | 2416 | ||
| 1047 | ** Overview of the new keybindings | 2417 | ** Overview of the new keybindings |
| 1048 | 2418 | ||
| 1049 | | Keybinding | Speedy | Command | | 2419 | | Keybinding | Speedy | Command | |
| 1050 | |-----------------+--------+-----------------------------| | 2420 | |---------------+--------+-----------------------------| |
| 1051 | | =C-c C-x C-z= | | [[doc::org-clock-resolve][org-clock-resolve]] | | 2421 | | =C-c C-x C-z= | | [[doc::org-clock-resolve][org-clock-resolve]] | |
| 1052 | | =C-c C-x C-q= | | [[doc::org-clock-cancel][org-clock-cancel]] | | 2422 | | =C-c C-x C-q= | | [[doc::org-clock-cancel][org-clock-cancel]] | |
| 1053 | | =C-c C-x C-x= | | [[doc::org-clock-in-last][org-clock-in-last]] | | 2423 | | =C-c C-x C-x= | | [[doc::org-clock-in-last][org-clock-in-last]] | |
| @@ -1055,12 +2425,12 @@ See http://orgmode.org/elpa/ | |||
| 1055 | | =*= | | [[doc::org-agenda-bulk-mark-all][org-agenda-bulk-mark-all]] | | 2425 | | =*= | | [[doc::org-agenda-bulk-mark-all][org-agenda-bulk-mark-all]] | |
| 1056 | | =C-c C-M-l= | | [[doc::org-insert-all-links][org-insert-all-links]] | | 2426 | | =C-c C-M-l= | | [[doc::org-insert-all-links][org-insert-all-links]] | |
| 1057 | | =C-c C-x C-M-v= | | [[doc::org-redisplay-inline-images][org-redisplay-inline-images]] | | 2427 | | =C-c C-x C-M-v= | | [[doc::org-redisplay-inline-images][org-redisplay-inline-images]] | |
| 1058 | | =C-c C-x E= | =E= | [[doc::org-inc-effort][org-inc-effort]] | | 2428 | | =C-c C-x E= | =E= | [[doc::org-inc-effort][org-inc-effort]] | |
| 1059 | | | =#= | [[doc::org-toggle-comment][org-toggle-comment]] | | 2429 | | | =#= | [[doc::org-toggle-comment][org-toggle-comment]] | |
| 1060 | | | =:= | [[doc::org-columns][org-columns]] | | 2430 | | | =:= | [[doc::org-columns][org-columns]] | |
| 1061 | | | =W= | Set =APPT_WARNTIME= | | 2431 | | | =W= | Set =APPT_WARNTIME= | |
| 1062 | | =k= | | [[doc::org-agenda-capture][org-agenda-capture]] | | 2432 | | =k= | | [[doc::org-agenda-capture][org-agenda-capture]] | |
| 1063 | | C-c , | , | [[doc::org-priority][org-priority]] | | 2433 | | C-c , | , | [[doc::org-priority][org-priority]] | |
| 1064 | 2434 | ||
| 1065 | ** New package and Babel language | 2435 | ** New package and Babel language |
| 1066 | 2436 | ||
| @@ -1225,7 +2595,7 @@ See http://orgmode.org/elpa/ | |||
| 1225 | 2595 | ||
| 1226 | **** New =todo-unblocked= and =nottodo-unblocked= skip conditions | 2596 | **** New =todo-unblocked= and =nottodo-unblocked= skip conditions |
| 1227 | 2597 | ||
| 1228 | See the [[http://orgmode.org/w/?p%3Dorg-mode.git%3Ba%3Dcommit%3Bh%3Df426da][git commit]] for more explanations. | 2598 | See the [[http://orgmode.org/cgit.cgi/org-mode.git/commit/?id=f426da][git commit]] for more explanations. |
| 1229 | 2599 | ||
| 1230 | **** Allow category filtering in the agenda | 2600 | **** Allow category filtering in the agenda |
| 1231 | 2601 | ||
| @@ -1542,7 +2912,7 @@ See http://orgmode.org/elpa/ | |||
| 1542 | Thanks to Carsten for implementing this. | 2912 | Thanks to Carsten for implementing this. |
| 1543 | 2913 | ||
| 1544 | **** ODT: Add support for ODT export in org-bbdb.el | 2914 | **** ODT: Add support for ODT export in org-bbdb.el |
| 1545 | **** ODT: Add support for indented tables (see [[http://orgmode.org/w/?p%3Dorg-mode.git%3Ba%3Dcommit%3Bh%3De9fd33][this commit]] for details) | 2915 | **** ODT: Add support for indented tables (see [[http://orgmode.org/cgit.cgi/org-mode.git/commit/?id=e9fd33][this commit]] for details) |
| 1546 | **** ODT: Improve the conversion from ODT to other formats | 2916 | **** ODT: Improve the conversion from ODT to other formats |
| 1547 | **** ASCII: Swap the level-1/level-2 characters to underline the headlines | 2917 | **** ASCII: Swap the level-1/level-2 characters to underline the headlines |
| 1548 | **** Support for Chinese, simplified Chinese, Russian, Ukrainian and Japanese | 2918 | **** Support for Chinese, simplified Chinese, Russian, Ukrainian and Japanese |
diff --git a/etc/org/OrgOdtStyles.xml b/etc/org/OrgOdtStyles.xml index f41d9840cbe..1a8edee99b4 100644 --- a/etc/org/OrgOdtStyles.xml +++ b/etc/org/OrgOdtStyles.xml | |||
| @@ -110,33 +110,53 @@ | |||
| 110 | <style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="1" style:class="text"> | 110 | <style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="1" style:class="text"> |
| 111 | <style:text-properties fo:font-size="115%" fo:font-weight="bold" style:font-size-asian="115%" style:font-weight-asian="bold" style:font-size-complex="115%" style:font-weight-complex="bold"/> | 111 | <style:text-properties fo:font-size="115%" fo:font-weight="bold" style:font-size-asian="115%" style:font-weight-asian="bold" style:font-size-complex="115%" style:font-weight-complex="bold"/> |
| 112 | </style:style> | 112 | </style:style> |
| 113 | <style:style style:name="Heading_20_1_unnumbered" style:family="paragraph" style:parent-style-name="Heading_20_1" style:list-style-name=""> | ||
| 114 | </style:style> | ||
| 113 | <style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="2" style:class="text"> | 115 | <style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="2" style:class="text"> |
| 114 | <style:text-properties fo:font-size="14pt" fo:font-style="italic" fo:font-weight="bold" style:font-size-asian="14pt" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-style-complex="italic" style:font-weight-complex="bold"/> | 116 | <style:text-properties fo:font-size="14pt" fo:font-style="italic" fo:font-weight="bold" style:font-size-asian="14pt" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-style-complex="italic" style:font-weight-complex="bold"/> |
| 115 | </style:style> | 117 | </style:style> |
| 118 | <style:style style:name="Heading_20_2_unnumbered" style:family="paragraph" style:parent-style-name="Heading_20_2" style:list-style-name=""> | ||
| 119 | </style:style> | ||
| 116 | <style:style style:name="Heading_20_3" style:display-name="Heading 3" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="3" style:class="text"> | 120 | <style:style style:name="Heading_20_3" style:display-name="Heading 3" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="3" style:class="text"> |
| 117 | <style:text-properties fo:font-size="14pt" fo:font-weight="bold" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-weight-complex="bold"/> | 121 | <style:text-properties fo:font-size="14pt" fo:font-weight="bold" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-weight-complex="bold"/> |
| 118 | </style:style> | 122 | </style:style> |
| 123 | <style:style style:name="Heading_20_3_unnumbered" style:family="paragraph" style:parent-style-name="Heading_20_3" style:list-style-name=""> | ||
| 124 | </style:style> | ||
| 119 | <style:style style:name="Heading_20_4" style:display-name="Heading 4" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="4" style:class="text"> | 125 | <style:style style:name="Heading_20_4" style:display-name="Heading 4" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="4" style:class="text"> |
| 120 | <style:text-properties fo:font-size="85%" fo:font-style="italic" fo:font-weight="bold" style:font-size-asian="85%" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-size-complex="85%" style:font-style-complex="italic" style:font-weight-complex="bold"/> | 126 | <style:text-properties fo:font-size="85%" fo:font-style="italic" fo:font-weight="bold" style:font-size-asian="85%" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-size-complex="85%" style:font-style-complex="italic" style:font-weight-complex="bold"/> |
| 121 | </style:style> | 127 | </style:style> |
| 128 | <style:style style:name="Heading_20_4_unnumbered" style:family="paragraph" style:parent-style-name="Heading_20_4" style:list-style-name=""> | ||
| 129 | </style:style> | ||
| 122 | <style:style style:name="Heading_20_5" style:display-name="Heading 5" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="5" style:class="text"> | 130 | <style:style style:name="Heading_20_5" style:display-name="Heading 5" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="5" style:class="text"> |
| 123 | <style:text-properties fo:font-size="85%" fo:font-weight="bold" style:font-size-asian="85%" style:font-weight-asian="bold" style:font-size-complex="85%" style:font-weight-complex="bold"/> | 131 | <style:text-properties fo:font-size="85%" fo:font-weight="bold" style:font-size-asian="85%" style:font-weight-asian="bold" style:font-size-complex="85%" style:font-weight-complex="bold"/> |
| 124 | </style:style> | 132 | </style:style> |
| 133 | <style:style style:name="Heading_20_5_unnumbered" style:family="paragraph" style:parent-style-name="Heading_20_5" style:list-style-name=""> | ||
| 134 | </style:style> | ||
| 125 | <style:style style:name="Heading_20_6" style:display-name="Heading 6" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="6" style:class="text"> | 135 | <style:style style:name="Heading_20_6" style:display-name="Heading 6" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="6" style:class="text"> |
| 126 | <style:text-properties fo:font-size="75%" fo:font-weight="bold" style:font-size-asian="75%" style:font-weight-asian="bold" style:font-size-complex="75%" style:font-weight-complex="bold"/> | 136 | <style:text-properties fo:font-size="75%" fo:font-weight="bold" style:font-size-asian="75%" style:font-weight-asian="bold" style:font-size-complex="75%" style:font-weight-complex="bold"/> |
| 127 | </style:style> | 137 | </style:style> |
| 138 | <style:style style:name="Heading_20_6_unnumbered" style:family="paragraph" style:parent-style-name="Heading_20_6" style:list-style-name=""> | ||
| 139 | </style:style> | ||
| 128 | <style:style style:name="Heading_20_7" style:display-name="Heading 7" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="7" style:class="text"> | 140 | <style:style style:name="Heading_20_7" style:display-name="Heading 7" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="7" style:class="text"> |
| 129 | <style:text-properties fo:font-size="75%" fo:font-weight="bold" style:font-size-asian="75%" style:font-weight-asian="bold" style:font-size-complex="75%" style:font-weight-complex="bold"/> | 141 | <style:text-properties fo:font-size="75%" fo:font-weight="bold" style:font-size-asian="75%" style:font-weight-asian="bold" style:font-size-complex="75%" style:font-weight-complex="bold"/> |
| 130 | </style:style> | 142 | </style:style> |
| 143 | <style:style style:name="Heading_20_7_unnumbered" style:family="paragraph" style:parent-style-name="Heading_20_7" style:list-style-name=""> | ||
| 144 | </style:style> | ||
| 131 | <style:style style:name="Heading_20_8" style:display-name="Heading 8" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="8" style:class="text"> | 145 | <style:style style:name="Heading_20_8" style:display-name="Heading 8" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="8" style:class="text"> |
| 132 | <style:text-properties fo:font-size="75%" fo:font-weight="bold" style:font-size-asian="75%" style:font-weight-asian="bold" style:font-size-complex="75%" style:font-weight-complex="bold"/> | 146 | <style:text-properties fo:font-size="75%" fo:font-weight="bold" style:font-size-asian="75%" style:font-weight-asian="bold" style:font-size-complex="75%" style:font-weight-complex="bold"/> |
| 133 | </style:style> | 147 | </style:style> |
| 148 | <style:style style:name="Heading_20_8_unnumbered" style:family="paragraph" style:parent-style-name="Heading_20_8" style:list-style-name=""> | ||
| 149 | </style:style> | ||
| 134 | <style:style style:name="Heading_20_9" style:display-name="Heading 9" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="9" style:class="text"> | 150 | <style:style style:name="Heading_20_9" style:display-name="Heading 9" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="9" style:class="text"> |
| 135 | <style:text-properties fo:font-size="75%" fo:font-weight="bold" style:font-size-asian="75%" style:font-weight-asian="bold" style:font-size-complex="75%" style:font-weight-complex="bold"/> | 151 | <style:text-properties fo:font-size="75%" fo:font-weight="bold" style:font-size-asian="75%" style:font-weight-asian="bold" style:font-size-complex="75%" style:font-weight-complex="bold"/> |
| 136 | </style:style> | 152 | </style:style> |
| 153 | <style:style style:name="Heading_20_9_unnumbered" style:family="paragraph" style:parent-style-name="Heading_20_9" style:list-style-name=""> | ||
| 154 | </style:style> | ||
| 137 | <style:style style:name="Heading_20_10" style:display-name="Heading 10" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="10" style:class="text"> | 155 | <style:style style:name="Heading_20_10" style:display-name="Heading 10" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text_20_body" style:default-outline-level="10" style:class="text"> |
| 138 | <style:text-properties fo:font-size="75%" fo:font-weight="bold" style:font-size-asian="75%" style:font-weight-asian="bold" style:font-size-complex="75%" style:font-weight-complex="bold"/> | 156 | <style:text-properties fo:font-size="75%" fo:font-weight="bold" style:font-size-asian="75%" style:font-weight-asian="bold" style:font-size-complex="75%" style:font-weight-complex="bold"/> |
| 139 | </style:style> | 157 | </style:style> |
| 158 | <style:style style:name="Heading_20_10_unnumbered" style:family="paragraph" style:parent-style-name="Heading_20_10" style:list-style-name=""> | ||
| 159 | </style:style> | ||
| 140 | <style:style style:name="Heading_20_1.title" style:display-name="Heading 1.title" style:family="paragraph" style:parent-style-name="Heading_20_1"> | 160 | <style:style style:name="Heading_20_1.title" style:display-name="Heading 1.title" style:family="paragraph" style:parent-style-name="Heading_20_1"> |
| 141 | <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> | 161 | <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/> |
| 142 | </style:style> | 162 | </style:style> |
diff --git a/etc/org/README b/etc/org/README index 68905add814..d04f4349629 100644 --- a/etc/org/README +++ b/etc/org/README | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | The files OrgOdtContentTemplate.xml and OrgOdtStyles.xml have the | 1 | The files OrgOdtContentTemplate.xml and OrgOdtStyles.xml have the |
| 2 | following copyright information: | 2 | following copyright information: |
| 3 | 3 | ||
| 4 | Copyright (C) 2010-2017 Free Software Foundation, Inc. | 4 | Copyright (C) 2010-2014 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | These files are part of GNU Emacs. | 6 | These files are part of GNU Emacs. |
| 7 | 7 | ||
diff --git a/etc/org/library-of-babel.org b/etc/org/library-of-babel.org new file mode 100644 index 00000000000..0098e726397 --- /dev/null +++ b/etc/org/library-of-babel.org | |||
| @@ -0,0 +1,584 @@ | |||
| 1 | #+title: The Library of Babel | ||
| 2 | #+author: Org-mode People | ||
| 3 | #+STARTUP: hideblocks | ||
| 4 | |||
| 5 | * Introduction | ||
| 6 | |||
| 7 | The Library of Babel is an extensible collection of ready-made and | ||
| 8 | easily-shortcut-callable source-code blocks for handling common tasks. | ||
| 9 | Org-babel comes pre-populated with the source-code blocks located in | ||
| 10 | this file. It is possible to add source-code blocks from any org-mode | ||
| 11 | file to the library by calling =(org-babel-lob-ingest | ||
| 12 | "path/to/file.org")=. | ||
| 13 | |||
| 14 | This file is included in worg mainly less for viewing through the web | ||
| 15 | interface, and more for contribution through the worg git repository. | ||
| 16 | If you have code snippets that you think others may find useful please | ||
| 17 | add them to this file and [[file:~/src/worg/worg-git.org::contribute-to-worg][contribute them]] to worg. | ||
| 18 | |||
| 19 | The raw Org-mode text of this file can be downloaded at | ||
| 20 | [[repofile:contrib/babel/library-of-babel.org][library-of-babel.org]] | ||
| 21 | |||
| 22 | * Simple | ||
| 23 | |||
| 24 | A collection of simple utility functions: | ||
| 25 | |||
| 26 | #+name: echo | ||
| 27 | #+begin_src emacs-lisp :var input="echo'd" | ||
| 28 | input | ||
| 29 | #+end_src | ||
| 30 | |||
| 31 | * File I/O | ||
| 32 | |||
| 33 | ** Reading and writing files | ||
| 34 | |||
| 35 | Read the contents of the file at =file=. The =:results vector= and | ||
| 36 | =:results scalar= header arguments can be used to read the contents of | ||
| 37 | file as either a table or a string. | ||
| 38 | |||
| 39 | #+name: read | ||
| 40 | #+begin_src emacs-lisp :var file="" :var format="" | ||
| 41 | (if (string= format "csv") | ||
| 42 | (with-temp-buffer | ||
| 43 | (org-table-import (expand-file-name file) nil) | ||
| 44 | (org-table-to-lisp)) | ||
| 45 | (with-temp-buffer | ||
| 46 | (insert-file-contents (expand-file-name file)) | ||
| 47 | (buffer-string))) | ||
| 48 | #+end_src | ||
| 49 | |||
| 50 | Write =data= to a file at =file=. If =data= is a list, then write it | ||
| 51 | as a table in traditional Org-mode table syntax. | ||
| 52 | |||
| 53 | #+name: write | ||
| 54 | #+begin_src emacs-lisp :var data="" :var file="" :var ext='() | ||
| 55 | (flet ((echo (r) (if (stringp r) r (format "%S" r)))) | ||
| 56 | (with-temp-file file | ||
| 57 | (case (and (listp data) | ||
| 58 | (or ext (intern (file-name-extension file)))) | ||
| 59 | ('tsv (insert (orgtbl-to-tsv data '(:fmt echo)))) | ||
| 60 | ('csv (insert (orgtbl-to-csv data '(:fmt echo)))) | ||
| 61 | (t (org-babel-insert-result data))))) | ||
| 62 | nil | ||
| 63 | #+end_src | ||
| 64 | |||
| 65 | ** Remote files | ||
| 66 | |||
| 67 | *** json | ||
| 68 | |||
| 69 | Read local or remote file in [[http://www.json.org/][json]] format into emacs-lisp objects. | ||
| 70 | |||
| 71 | #+name: json | ||
| 72 | #+begin_src emacs-lisp :var file='() :var url='() | ||
| 73 | (require 'json) | ||
| 74 | (cond | ||
| 75 | (file | ||
| 76 | (with-temp-filebuffer file | ||
| 77 | (goto-char (point-min)) | ||
| 78 | (json-read))) | ||
| 79 | (url | ||
| 80 | (require 'w3m) | ||
| 81 | (with-temp-buffer | ||
| 82 | (w3m-retrieve url) | ||
| 83 | (goto-char (point-min)) | ||
| 84 | (json-read)))) | ||
| 85 | #+end_src | ||
| 86 | |||
| 87 | *** Google docs | ||
| 88 | |||
| 89 | The following code blocks make use of the [[http://code.google.com/p/googlecl/][googlecl]] Google command line | ||
| 90 | tool. This tool provides functionality for accessing Google services | ||
| 91 | from the command line, and the following code blocks use /googlecl/ | ||
| 92 | for reading from and writing to Google docs with Org-mode code blocks. | ||
| 93 | |||
| 94 | **** Read a document from Google docs | ||
| 95 | |||
| 96 | The =google= command seems to be throwing "Moved Temporarily" errors | ||
| 97 | when trying to download textual documents, but this is working fine | ||
| 98 | for spreadsheets. | ||
| 99 | |||
| 100 | #+name: gdoc-read | ||
| 101 | #+begin_src emacs-lisp :var title="example" :var format="csv" | ||
| 102 | (let* ((file (concat title "." format)) | ||
| 103 | (cmd (format "google docs get --format %S --title %S" format title))) | ||
| 104 | (message cmd) (message (shell-command-to-string cmd)) | ||
| 105 | (prog1 (if (string= format "csv") | ||
| 106 | (with-temp-buffer | ||
| 107 | (org-table-import (shell-quote-argument file) '(4)) | ||
| 108 | (org-table-to-lisp)) | ||
| 109 | (with-temp-buffer | ||
| 110 | (insert-file-contents (shell-quote-argument file)) | ||
| 111 | (buffer-string))) | ||
| 112 | (delete-file file))) | ||
| 113 | #+end_src | ||
| 114 | |||
| 115 | For example, a line like the following can be used to read the | ||
| 116 | contents of a spreadsheet named =num-cells= into a table. | ||
| 117 | : #+call: gdoc-read(title="num-cells"") | ||
| 118 | |||
| 119 | A line like the following can be used to read the contents of a | ||
| 120 | document as a string. | ||
| 121 | |||
| 122 | : #+call: gdoc-read(title="loremi", :format "txt") | ||
| 123 | |||
| 124 | **** Write a document to a Google docs | ||
| 125 | |||
| 126 | Write =data= to a google document named =title=. If =data= is tabular | ||
| 127 | it will be saved to a spreadsheet, otherwise it will be saved as a | ||
| 128 | normal document. | ||
| 129 | |||
| 130 | #+name: gdoc-write | ||
| 131 | #+begin_src emacs-lisp :var title="babel-upload" :var data=fibs(n=10) :results silent | ||
| 132 | (let* ((format (if (listp data) "csv" "txt")) | ||
| 133 | (tmp-file (make-temp-file "org-babel-google-doc" nil (concat "." format))) | ||
| 134 | (cmd (format "google docs upload --title %S %S" title tmp-file))) | ||
| 135 | (with-temp-file tmp-file | ||
| 136 | (insert | ||
| 137 | (if (listp data) | ||
| 138 | (orgtbl-to-csv | ||
| 139 | data '(:fmt (lambda (el) (if (stringp el) el (format "%S" el))))) | ||
| 140 | (if (stringp data) data (format "%S" data))))) | ||
| 141 | (message cmd) | ||
| 142 | (prog1 (shell-command-to-string cmd) (delete-file tmp-file))) | ||
| 143 | #+end_src | ||
| 144 | |||
| 145 | example usage | ||
| 146 | : #+name: fibs | ||
| 147 | : #+begin_src emacs-lisp :var n=8 | ||
| 148 | : (flet ((fib (m) (if (< m 2) 1 (+ (fib (- m 1)) (fib (- m 2)))))) | ||
| 149 | : (mapcar (lambda (el) (list el (fib el))) (number-sequence 0 (- n 1)))) | ||
| 150 | : #+end_src | ||
| 151 | : | ||
| 152 | : #+call: gdoc-write(title="fibs", data=fibs(n=10)) | ||
| 153 | |||
| 154 | * Plotting code | ||
| 155 | |||
| 156 | ** R | ||
| 157 | |||
| 158 | Plot column 2 (y axis) against column 1 (x axis). Columns 3 and | ||
| 159 | beyond, if present, are ignored. | ||
| 160 | |||
| 161 | #+name: R-plot | ||
| 162 | #+begin_src R :var data=R-plot-example-data | ||
| 163 | plot(data) | ||
| 164 | #+end_src | ||
| 165 | |||
| 166 | #+tblname: R-plot-example-data | ||
| 167 | | 1 | 2 | | ||
| 168 | | 2 | 4 | | ||
| 169 | | 3 | 9 | | ||
| 170 | | 4 | 16 | | ||
| 171 | | 5 | 25 | | ||
| 172 | |||
| 173 | #+call: R-plot(data=R-plot-example-data) | ||
| 174 | |||
| 175 | #+resname: R-plot(data=R-plot-example-data) | ||
| 176 | : nil | ||
| 177 | |||
| 178 | ** Gnuplot | ||
| 179 | |||
| 180 | * Org reference | ||
| 181 | |||
| 182 | ** Headline references | ||
| 183 | |||
| 184 | #+name: headline | ||
| 185 | #+begin_src emacs-lisp :var headline=top :var file='() | ||
| 186 | (save-excursion | ||
| 187 | (when file (get-file-buffer file)) | ||
| 188 | (org-open-link-from-string (org-make-link-string headline)) | ||
| 189 | (save-restriction | ||
| 190 | (org-narrow-to-subtree) | ||
| 191 | (buffer-string))) | ||
| 192 | #+end_src | ||
| 193 | |||
| 194 | #+call: headline(headline="headline references") | ||
| 195 | |||
| 196 | * Tables | ||
| 197 | |||
| 198 | ** LaTeX Table Export | ||
| 199 | |||
| 200 | *** booktabs | ||
| 201 | |||
| 202 | This source block can be used to wrap a table in the latex =booktabs= | ||
| 203 | environment. The source block adds a =toprule= and =bottomrule= (so | ||
| 204 | don't use =hline= at the top or bottom of the table). The =hline= | ||
| 205 | after the header is replaced with a =midrule=. | ||
| 206 | |||
| 207 | Note that this function bypasses the Org-mode LaTeX exporter and calls | ||
| 208 | =orgtbl-to-generic= to create the output table. This means that the | ||
| 209 | entries in the table are not translated from Org-mode to LaTeX. | ||
| 210 | |||
| 211 | It takes the following arguments -- all but the first two are | ||
| 212 | optional. | ||
| 213 | |||
| 214 | | arg | description | | ||
| 215 | |-------+--------------------------------------------| | ||
| 216 | | table | a reference to the table | | ||
| 217 | | align | alignment string | | ||
| 218 | | env | optional environment, default to "tabular" | | ||
| 219 | | width | optional width specification string | | ||
| 220 | |||
| 221 | #+name: booktabs | ||
| 222 | #+begin_src emacs-lisp :var table='((:head) hline (:body)) :var align='() :var env="tabular" :var width='() :noweb yes :results latex | ||
| 223 | (flet ((to-tab (tab) | ||
| 224 | (orgtbl-to-generic | ||
| 225 | (mapcar (lambda (lis) | ||
| 226 | (if (listp lis) | ||
| 227 | (mapcar (lambda (el) | ||
| 228 | (if (stringp el) | ||
| 229 | el | ||
| 230 | (format "%S" el))) lis) | ||
| 231 | lis)) tab) | ||
| 232 | (list :lend " \\\\" :sep " & " :hline "\\hline")))) | ||
| 233 | (org-fill-template | ||
| 234 | " | ||
| 235 | \\begin{%env}%width%align | ||
| 236 | \\toprule | ||
| 237 | %table | ||
| 238 | \\bottomrule | ||
| 239 | \\end{%env}\n" | ||
| 240 | (list | ||
| 241 | (cons "env" (or env "table")) | ||
| 242 | (cons "width" (if width (format "{%s}" width) "")) | ||
| 243 | (cons "align" (if align (format "{%s}" align) "")) | ||
| 244 | (cons "table" | ||
| 245 | ;; only use \midrule if it looks like there are column headers | ||
| 246 | (if (equal 'hline (second table)) | ||
| 247 | (concat (to-tab (list (first table))) | ||
| 248 | "\n\\midrule\n" | ||
| 249 | (to-tab (cddr table))) | ||
| 250 | (to-tab table)))))) | ||
| 251 | #+end_src | ||
| 252 | |||
| 253 | *** longtable | ||
| 254 | |||
| 255 | This block can be used to wrap a table in the latex =longtable= | ||
| 256 | environment, it takes the following arguments -- all but the first two | ||
| 257 | are optional. | ||
| 258 | |||
| 259 | | arg | description | | ||
| 260 | |-----------+-------------------------------------------------------------| | ||
| 261 | | table | a reference to the table | | ||
| 262 | | align | optional alignment string | | ||
| 263 | | width | optional width specification string | | ||
| 264 | | hline | the string to use as hline separator, defaults to "\\hline" | | ||
| 265 | | head | optional "head" string | | ||
| 266 | | firsthead | optional "firsthead" string | | ||
| 267 | | foot | optional "foot" string | | ||
| 268 | | lastfoot | optional "lastfoot" string | | ||
| 269 | |||
| 270 | #+name: longtable | ||
| 271 | #+begin_src emacs-lisp :var table='((:table)) :var align='() :var width='() :var hline="\\hline" :var firsthead='() :var head='() :var foot='() :var lastfoot='() :noweb yes :results latex | ||
| 272 | (org-fill-template | ||
| 273 | " | ||
| 274 | \\begin{longtable}%width%align | ||
| 275 | %firsthead | ||
| 276 | %head | ||
| 277 | %foot | ||
| 278 | %lastfoot | ||
| 279 | |||
| 280 | %table | ||
| 281 | \\end{longtable}\n" | ||
| 282 | (list | ||
| 283 | (cons "width" (if width (format "{%s}" width) "")) | ||
| 284 | (cons "align" (if align (format "{%s}" align) "")) | ||
| 285 | (cons "firsthead" (if firsthead (concat firsthead "\n\\endfirsthead\n") "")) | ||
| 286 | (cons "head" (if head (concat head "\n\\endhead\n") "")) | ||
| 287 | (cons "foot" (if foot (concat foot "\n\\endfoot\n") "")) | ||
| 288 | (cons "lastfoot" (if lastfoot (concat lastfoot "\n\\endlastfoot\n") "")) | ||
| 289 | (cons "table" (orgtbl-to-generic | ||
| 290 | (mapcar (lambda (lis) | ||
| 291 | (if (listp lis) | ||
| 292 | (mapcar (lambda (el) | ||
| 293 | (if (stringp el) | ||
| 294 | el | ||
| 295 | (format "%S" el))) lis) | ||
| 296 | lis)) table) | ||
| 297 | (list :lend " \\\\" :sep " & " :hline hline))))) | ||
| 298 | #+end_src | ||
| 299 | |||
| 300 | *** booktabs-notes | ||
| 301 | |||
| 302 | This source block builds on [[booktabs]]. It accepts two additional | ||
| 303 | arguments, both of which are optional. | ||
| 304 | |||
| 305 | #+tblname: arguments | ||
| 306 | | arg | description | | ||
| 307 | |--------+------------------------------------------------------| | ||
| 308 | | notes | an org-mode table with footnotes | | ||
| 309 | | lspace | if non-nil, insert =addlinespace= after =bottomrule= | | ||
| 310 | |||
| 311 | An example footnote to the =arguments= table specifies the column | ||
| 312 | span. Note the use of LaTeX, rather than Org-mode, markup. | ||
| 313 | |||
| 314 | #+tblname: arguments-notes | ||
| 315 | | \multicolumn{2}{l}{This is a footnote to the \emph{arguments} table.} | | ||
| 316 | |||
| 317 | #+name: booktabs-notes | ||
| 318 | #+begin_src emacs-lisp :var table='((:head) hline (:body)) :var notes='() :var align='() :var env="tabular" :var width='() :var lspace='() :noweb yes :results latex | ||
| 319 | (flet ((to-tab (tab) | ||
| 320 | (orgtbl-to-generic | ||
| 321 | (mapcar (lambda (lis) | ||
| 322 | (if (listp lis) | ||
| 323 | (mapcar (lambda (el) | ||
| 324 | (if (stringp el) | ||
| 325 | el | ||
| 326 | (format "%S" el))) lis) | ||
| 327 | lis)) tab) | ||
| 328 | (list :lend " \\\\" :sep " & " :hline "\\hline")))) | ||
| 329 | (org-fill-template | ||
| 330 | " | ||
| 331 | \\begin{%env}%width%align | ||
| 332 | \\toprule | ||
| 333 | %table | ||
| 334 | \\bottomrule%spacer | ||
| 335 | %notes | ||
| 336 | \\end{%env}\n" | ||
| 337 | (list | ||
| 338 | (cons "env" (or env "table")) | ||
| 339 | (cons "width" (if width (format "{%s}" width) "")) | ||
| 340 | (cons "align" (if align (format "{%s}" align) "")) | ||
| 341 | (cons "spacer" (if lspace "\\addlinespace" "")) | ||
| 342 | (cons "table" | ||
| 343 | ;; only use \midrule if it looks like there are column headers | ||
| 344 | (if (equal 'hline (second table)) | ||
| 345 | (concat (to-tab (list (first table))) | ||
| 346 | "\n\\midrule\n" | ||
| 347 | (to-tab (cddr table))) | ||
| 348 | (to-tab table))) | ||
| 349 | (cons "notes" (if notes (to-tab notes) "")) | ||
| 350 | ))) | ||
| 351 | #+end_src | ||
| 352 | |||
| 353 | ** Elegant lisp for transposing a matrix | ||
| 354 | |||
| 355 | #+tblname: transpose-example | ||
| 356 | | 1 | 2 | 3 | | ||
| 357 | | 4 | 5 | 6 | | ||
| 358 | |||
| 359 | #+name: transpose | ||
| 360 | #+begin_src emacs-lisp :var table=transpose-example | ||
| 361 | (apply #'mapcar* #'list table) | ||
| 362 | #+end_src | ||
| 363 | |||
| 364 | #+resname: | ||
| 365 | | 1 | 4 | | ||
| 366 | | 2 | 5 | | ||
| 367 | | 3 | 6 | | ||
| 368 | |||
| 369 | ** Convert every element of a table to a string | ||
| 370 | |||
| 371 | #+tblname: hetero-table | ||
| 372 | | 1 | 2 | 3 | | ||
| 373 | | a | b | c | | ||
| 374 | |||
| 375 | #+name: all-to-string | ||
| 376 | #+begin_src emacs-lisp :var tbl='() | ||
| 377 | (defun all-to-string (tbl) | ||
| 378 | (if (listp tbl) | ||
| 379 | (mapcar #'all-to-string tbl) | ||
| 380 | (if (stringp tbl) | ||
| 381 | tbl | ||
| 382 | (format "%s" tbl)))) | ||
| 383 | (all-to-string tbl) | ||
| 384 | #+end_src | ||
| 385 | |||
| 386 | #+begin_src emacs-lisp :var tbl=hetero-table | ||
| 387 | (mapcar (lambda (row) (mapcar (lambda (cell) (stringp cell)) row)) tbl) | ||
| 388 | #+end_src | ||
| 389 | |||
| 390 | #+name: | ||
| 391 | | nil | nil | nil | | ||
| 392 | | t | t | t | | ||
| 393 | |||
| 394 | #+begin_src emacs-lisp :var tbl=all-to-string(hetero-table) | ||
| 395 | (mapcar (lambda (row) (mapcar (lambda (cell) (stringp cell)) row)) tbl) | ||
| 396 | #+end_src | ||
| 397 | |||
| 398 | #+name: | ||
| 399 | | t | t | t | | ||
| 400 | | t | t | t | | ||
| 401 | |||
| 402 | * Misc | ||
| 403 | |||
| 404 | ** File-specific Version Control logging | ||
| 405 | :PROPERTIES: | ||
| 406 | :AUTHOR: Luke Crook | ||
| 407 | :END: | ||
| 408 | |||
| 409 | This function will attempt to retrieve the entire commit log for the | ||
| 410 | file associated with the current buffer and insert this log into the | ||
| 411 | export. The function uses the Emacs VC commands to interface to the | ||
| 412 | local version control system, but has only been tested to work with | ||
| 413 | Git. 'limit' is currently unsupported. | ||
| 414 | |||
| 415 | #+name: vc-log | ||
| 416 | #+headers: :var limit=-1 | ||
| 417 | #+headers: :var buf=(buffer-name (current-buffer)) | ||
| 418 | #+begin_src emacs-lisp | ||
| 419 | ;; Most of this code is copied from vc.el vc-print-log | ||
| 420 | (require 'vc) | ||
| 421 | (when (vc-find-backend-function | ||
| 422 | (vc-backend (buffer-file-name (get-buffer buf))) 'print-log) | ||
| 423 | (let ((limit -1) | ||
| 424 | (vc-fileset nil) | ||
| 425 | (backend nil) | ||
| 426 | (files nil)) | ||
| 427 | (with-current-buffer (get-buffer buf) | ||
| 428 | (setq vc-fileset (vc-deduce-fileset t)) ; FIXME: Why t? --Stef | ||
| 429 | (setq backend (car vc-fileset)) | ||
| 430 | (setq files (cadr vc-fileset))) | ||
| 431 | (with-temp-buffer | ||
| 432 | (let ((status (vc-call-backend | ||
| 433 | backend 'print-log files (current-buffer)))) | ||
| 434 | (when (and (processp status) ; Make sure status is a process | ||
| 435 | (= 0 (process-exit-status status))) ; which has not terminated | ||
| 436 | (while (not (eq 'exit (process-status status))) | ||
| 437 | (sit-for 1 t))) | ||
| 438 | (buffer-string))))) | ||
| 439 | #+end_src | ||
| 440 | |||
| 441 | ** Trivial python code blocks | ||
| 442 | |||
| 443 | #+name: python-identity | ||
| 444 | #+begin_src python :var a=1 | ||
| 445 | a | ||
| 446 | #+end_src | ||
| 447 | |||
| 448 | #+name: python-add | ||
| 449 | #+begin_src python :var a=1 :var b=2 | ||
| 450 | a + b | ||
| 451 | #+end_src | ||
| 452 | |||
| 453 | ** Arithmetic | ||
| 454 | |||
| 455 | #+name: lob-add | ||
| 456 | #+begin_src emacs-lisp :var a=0 :var b=0 | ||
| 457 | (+ a b) | ||
| 458 | #+end_src | ||
| 459 | |||
| 460 | #+name: lob-minus | ||
| 461 | #+begin_src emacs-lisp :var a=0 :var b=0 | ||
| 462 | (- a b) | ||
| 463 | #+end_src | ||
| 464 | |||
| 465 | #+name: lob-times | ||
| 466 | #+begin_src emacs-lisp :var a=0 :var b=0 | ||
| 467 | (* a b) | ||
| 468 | #+end_src | ||
| 469 | |||
| 470 | #+name: lob-div | ||
| 471 | #+begin_src emacs-lisp :var a=0 :var b=0 | ||
| 472 | (/ a b) | ||
| 473 | #+end_src | ||
| 474 | |||
| 475 | * GANTT Charts | ||
| 476 | |||
| 477 | The =elispgantt= source block was sent to the mailing list by Eric | ||
| 478 | Fraga. It was modified slightly by Tom Dye. | ||
| 479 | |||
| 480 | #+name: elispgantt | ||
| 481 | #+begin_src emacs-lisp :var table=gantttest | ||
| 482 | (let ((dates "") | ||
| 483 | (entries (nthcdr 2 table)) | ||
| 484 | (milestones "") | ||
| 485 | (nmilestones 0) | ||
| 486 | (ntasks 0) | ||
| 487 | (projecttime 0) | ||
| 488 | (tasks "") | ||
| 489 | (xlength 1)) | ||
| 490 | (message "Initial: %s\n" table) | ||
| 491 | (message "Entries: %s\n" entries) | ||
| 492 | (while entries | ||
| 493 | (let ((entry (first entries))) | ||
| 494 | (if (listp entry) | ||
| 495 | (let ((id (first entry)) | ||
| 496 | (type (nth 1 entry)) | ||
| 497 | (label (nth 2 entry)) | ||
| 498 | (task (nth 3 entry)) | ||
| 499 | (dependencies (nth 4 entry)) | ||
| 500 | (start (nth 5 entry)) | ||
| 501 | (duration (nth 6 entry)) | ||
| 502 | (end (nth 7 entry)) | ||
| 503 | (alignment (nth 8 entry))) | ||
| 504 | (if (> start projecttime) (setq projecttime start)) | ||
| 505 | (if (string= type "task") | ||
| 506 | (let ((end (+ start duration)) | ||
| 507 | (textposition (+ start (/ duration 2))) | ||
| 508 | (flush "")) | ||
| 509 | (if (string= alignment "left") | ||
| 510 | (progn | ||
| 511 | (setq textposition start) | ||
| 512 | (setq flush "[left]")) | ||
| 513 | (if (string= alignment "right") | ||
| 514 | (progn | ||
| 515 | (setq textposition end) | ||
| 516 | (setq flush "[right]")))) | ||
| 517 | (setq tasks | ||
| 518 | (format "%s \\gantttask{%s}{%s}{%d}{%d}{%d}{%s}\n" | ||
| 519 | tasks label task start end textposition flush)) | ||
| 520 | (setq ntasks (+ 1 ntasks)) | ||
| 521 | (if (> end projecttime) | ||
| 522 | (setq projecttime end))) | ||
| 523 | (if (string= type "milestone") | ||
| 524 | (progn | ||
| 525 | (setq milestones | ||
| 526 | (format | ||
| 527 | "%s \\ganttmilestone{$\\begin{array}{c}\\mbox{%s}\\\\ \\mbox{%s}\\end{array}$}{%d}\n" | ||
| 528 | milestones label task start)) | ||
| 529 | (setq nmilestones (+ 1 nmilestones))) | ||
| 530 | (if (string= type "date") | ||
| 531 | (setq dates (format "%s \\ganttdateline{%s}{%d}\n" | ||
| 532 | dates label start)) | ||
| 533 | (message "Ignoring entry with type %s\n" type))))) | ||
| 534 | (message "Ignoring non-list entry %s\n" entry)) ; end if list entry | ||
| 535 | (setq entries (cdr entries)))) ; end while entries left | ||
| 536 | (format "\\pgfdeclarelayer{background} | ||
| 537 | \\pgfdeclarelayer{foreground} | ||
| 538 | \\pgfsetlayers{background,foreground} | ||
| 539 | \\renewcommand{\\ganttprojecttime}{%d} | ||
| 540 | \\renewcommand{\\ganttntasks}{%d} | ||
| 541 | \\noindent | ||
| 542 | \\begin{tikzpicture}[y=-0.75cm,x=0.75\\textwidth] | ||
| 543 | \\begin{pgfonlayer}{background} | ||
| 544 | \\draw[very thin, red!10!white] (0,1+\\ganttntasks) grid [ystep=0.75cm,xstep=1/\\ganttprojecttime] (1,0); | ||
| 545 | \\draw[\\ganttdatelinecolour] (0,0) -- (1,0); | ||
| 546 | \\draw[\\ganttdatelinecolour] (0,1+\\ganttntasks) -- (1,1+\\ganttntasks); | ||
| 547 | \\end{pgfonlayer} | ||
| 548 | %s | ||
| 549 | %s | ||
| 550 | %s | ||
| 551 | \\end{tikzpicture}" projecttime ntasks tasks milestones dates)) | ||
| 552 | #+end_src | ||
| 553 | |||
| 554 | * Available languages | ||
| 555 | :PROPERTIES: | ||
| 556 | :AUTHOR: Bastien | ||
| 557 | :END: | ||
| 558 | |||
| 559 | ** From Org's core | ||
| 560 | |||
| 561 | | Language | Identifier | Language | Identifier | | ||
| 562 | |------------+------------+----------------+------------| | ||
| 563 | | Asymptote | asymptote | Awk | awk | | ||
| 564 | | Emacs Calc | calc | C | C | | ||
| 565 | | C++ | C++ | Clojure | clojure | | ||
| 566 | | CSS | css | ditaa | ditaa | | ||
| 567 | | Graphviz | dot | Emacs Lisp | emacs-lisp | | ||
| 568 | | gnuplot | gnuplot | Haskell | haskell | | ||
| 569 | | Javascript | js | LaTeX | latex | | ||
| 570 | | Ledger | ledger | Lisp | lisp | | ||
| 571 | | Lilypond | lilypond | MATLAB | matlab | | ||
| 572 | | Mscgen | mscgen | Objective Caml | ocaml | | ||
| 573 | | Octave | octave | Org-mode | org | | ||
| 574 | | | | Perl | perl | | ||
| 575 | | Plantuml | plantuml | Python | python | | ||
| 576 | | R | R | Ruby | ruby | | ||
| 577 | | Sass | sass | Scheme | scheme | | ||
| 578 | | GNU Screen | screen | shell | sh | | ||
| 579 | | SQL | sql | SQLite | sqlite | | ||
| 580 | |||
| 581 | ** From Org's contrib/babel/langs | ||
| 582 | |||
| 583 | - ob-oz.el, by Torsten Anders and Eric Schulte | ||
| 584 | - ob-fomus.el, by Torsten Anders | ||
diff --git a/etc/refcards/orgcard.tex b/etc/refcards/orgcard.tex index b12ae7be592..9ab6b4aef1d 100644 --- a/etc/refcards/orgcard.tex +++ b/etc/refcards/orgcard.tex | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | % Reference Card for Org Mode | 1 | % Reference Card for Org Mode |
| 2 | \def\orgversionnumber{8.2} | 2 | \def\orgversionnumber{9.0.9} |
| 3 | \def\versionyear{2014} % latest update | 3 | \def\versionyear{2017} % latest update |
| 4 | \input emacsver.tex | 4 | \def\year{2017} % latest copyright year |
| 5 | 5 | ||
| 6 | %**start of header | 6 | %**start of header |
| 7 | \newcount\columnsperpage | 7 | \newcount\columnsperpage |
| @@ -80,9 +80,6 @@ | |||
| 80 | \centerline{Released under the terms of the GNU General Public License} | 80 | \centerline{Released under the terms of the GNU General Public License} |
| 81 | \centerline{version 3 or later.} | 81 | \centerline{version 3 or later.} |
| 82 | 82 | ||
| 83 | \centerline{For more Emacs documentation, and the \TeX{} source for this card, see} | ||
| 84 | \centerline{the Emacs distribution, or {\tt http://www.gnu.org/software/emacs}} | ||
| 85 | |||
| 86 | \endgroup} | 83 | \endgroup} |
| 87 | 84 | ||
| 88 | % make \bye not \outer so that the \def\bye in the \else clause below | 85 | % make \bye not \outer so that the \def\bye in the \else clause below |
| @@ -312,10 +309,11 @@ | |||
| 312 | \key{turn item/line into headline}{C-c *} | 309 | \key{turn item/line into headline}{C-c *} |
| 313 | \key{promote/demote heading}{M-LEFT/RIGHT} | 310 | \key{promote/demote heading}{M-LEFT/RIGHT} |
| 314 | \metax{promote/demote current subtree}{M-S-LEFT/RIGHT} | 311 | \metax{promote/demote current subtree}{M-S-LEFT/RIGHT} |
| 315 | \metax{move subtree/list item up/down}{M-S-UP/DOWN} | 312 | \metax{move subtree/list item up/down}{M-UP/DOWN} |
| 313 | \metax{move the line at point up/down}{M-S-UP/DOWN} | ||
| 316 | \metax{sort subtree/region/plain-list}{C-c \^{}} | 314 | \metax{sort subtree/region/plain-list}{C-c \^{}} |
| 317 | \metax{clone a subtree}{C-c C-x c} | 315 | \metax{clone a subtree}{C-c C-x c} |
| 318 | \metax{copy visible text}{C-c C-x v} | 316 | \metax{copy visible parts of the region}{C-c C-x v} |
| 319 | \metax{kill/copy subtree}{C-c C-x C-w/M-w} | 317 | \metax{kill/copy subtree}{C-c C-x C-w/M-w} |
| 320 | \metax{yank subtree}{C-c C-x C-y or C-y} | 318 | \metax{yank subtree}{C-c C-x C-y or C-y} |
| 321 | \metax{narrow buffer to subtree / widen}{C-x n s/w} | 319 | \metax{narrow buffer to subtree / widen}{C-x n s/w} |
| @@ -333,7 +331,6 @@ | |||
| 333 | \key{construct a sparse tree by various criteria}{C-c /} | 331 | \key{construct a sparse tree by various criteria}{C-c /} |
| 334 | \key{view TODO's in sparse tree}{C-c / t/T} | 332 | \key{view TODO's in sparse tree}{C-c / t/T} |
| 335 | \key{global TODO list in agenda mode}{C-c a t \noteone} | 333 | \key{global TODO list in agenda mode}{C-c a t \noteone} |
| 336 | \key{time sorted view of current org file}{C-c a L} | ||
| 337 | 334 | ||
| 338 | \section{Tables} | 335 | \section{Tables} |
| 339 | 336 | ||
| @@ -375,7 +372,6 @@ Outside of tables, the same keys may have other functionality. | |||
| 375 | \metax{cut/copy/paste rectangular region}{C-c C-x C-w/M-w/C-y} | 372 | \metax{cut/copy/paste rectangular region}{C-c C-x C-w/M-w/C-y} |
| 376 | %\key{copy rectangular region}{C-c C-x M-w} | 373 | %\key{copy rectangular region}{C-c C-x M-w} |
| 377 | %\key{paste rectangular region}{C-c C-x C-y} | 374 | %\key{paste rectangular region}{C-c C-x C-y} |
| 378 | \key{fill paragraph across selected cells}{C-c C-q} | ||
| 379 | 375 | ||
| 380 | {\bf Miscellaneous} | 376 | {\bf Miscellaneous} |
| 381 | 377 | ||
| @@ -574,7 +570,6 @@ after ``{\tt :}'', and dictionary words elsewhere. | |||
| 574 | \key{match tags, TODO kwds, properties}{C-c a m \noteone} | 570 | \key{match tags, TODO kwds, properties}{C-c a m \noteone} |
| 575 | \key{match only in TODO entries}{C-c a M \noteone} | 571 | \key{match only in TODO entries}{C-c a M \noteone} |
| 576 | \key{find stuck projects}{C-c a \# \noteone} | 572 | \key{find stuck projects}{C-c a \# \noteone} |
| 577 | \key{show timeline of current org file}{C-c a L \noteone} | ||
| 578 | \key{configure custom commands}{C-c a C \noteone} | 573 | \key{configure custom commands}{C-c a C \noteone} |
| 579 | %\key{configure stuck projects}{C-c a ! \noteone} | 574 | %\key{configure stuck projects}{C-c a ! \noteone} |
| 580 | \key{agenda for date at cursor}{C-c C-o} | 575 | \key{agenda for date at cursor}{C-c C-o} |
| @@ -661,8 +656,11 @@ some other place. | |||
| 661 | 656 | ||
| 662 | \key{export/publish dispatcher}{C-c C-e} | 657 | \key{export/publish dispatcher}{C-c C-e} |
| 663 | 658 | ||
| 664 | \key{export visible part only}{C-c C-e v} | 659 | \key{toggle asynchronous export}{C-c C-e C-a} |
| 665 | \key{insert template of export options}{C-c C-e t} | 660 | \key{toggle body/visible only export}{C-c C-e C-b/v} |
| 661 | \key{toggle subtree export}{C-c C-e C-s} | ||
| 662 | \key{insert template of export options}{C-c C-e \#} | ||
| 663 | |||
| 666 | \key{toggle fixed width for entry or region}{C-c :} | 664 | \key{toggle fixed width for entry or region}{C-c :} |
| 667 | \key{toggle pretty display of scripts, entities}{C-c C-x {\tt\char`\\}} | 665 | \key{toggle pretty display of scripts, entities}{C-c C-x {\tt\char`\\}} |
| 668 | 666 | ||
| @@ -690,6 +688,5 @@ your own key as shown under ACTIVATION. | |||
| 690 | \bye | 688 | \bye |
| 691 | 689 | ||
| 692 | % Local variables: | 690 | % Local variables: |
| 693 | % compile-command: "tex refcard" | 691 | % compile-command: "pdftex orgcard" |
| 694 | % End: | 692 | % End: |
| 695 | |||
diff --git a/etc/schema/od-manifest-schema-v1.2-os.rnc b/etc/schema/od-manifest-schema-v1.2-os.rnc new file mode 100644 index 00000000000..87f84d1ea87 --- /dev/null +++ b/etc/schema/od-manifest-schema-v1.2-os.rnc | |||
| @@ -0,0 +1,88 @@ | |||
| 1 | # Open Document Format for Office Applications (OpenDocument) Version 1.2 | ||
| 2 | # OASIS Standard, 29 September 2011 | ||
| 3 | # Manifest Relax-NG Schema | ||
| 4 | # Source: http://docs.oasis-open.org/office/v1.2/os/ | ||
| 5 | # Copyright (c) OASIS Open 2002-2011, 2013. All Rights Reserved. | ||
| 6 | # | ||
| 7 | # All capitalized terms in the following text have the meanings assigned to them | ||
| 8 | # in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The | ||
| 9 | # full Policy may be found at the OASIS website. | ||
| 10 | # | ||
| 11 | # This document and translations of it may be copied and furnished to others, and | ||
| 12 | # derivative works that comment on or otherwise explain it or assist in its | ||
| 13 | # implementation may be prepared, copied, published, and distributed, in whole or | ||
| 14 | # in part, without restriction of any kind, provided that the above copyright | ||
| 15 | # notice and this section are included on all such copies and derivative works. | ||
| 16 | # However, this document itself may not be modified in any way, including by | ||
| 17 | # removing the copyright notice or references to OASIS, except as needed for the | ||
| 18 | # purpose of developing any document or deliverable produced by an OASIS | ||
| 19 | # Technical Committee (in which case the rules applicable to copyrights, as set | ||
| 20 | # forth in the OASIS IPR Policy, must be followed) or as required to translate it | ||
| 21 | # into languages other than English. | ||
| 22 | # | ||
| 23 | # The limited permissions granted above are perpetual and will not be revoked by | ||
| 24 | # OASIS or its successors or assigns. | ||
| 25 | # | ||
| 26 | # This document and the information contained herein is provided on an "AS IS" | ||
| 27 | # basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT | ||
| 28 | # LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT | ||
| 29 | # INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR | ||
| 30 | # FITNESS FOR A PARTICULAR PURPOSE. | ||
| 31 | |||
| 32 | namespace manifest = | ||
| 33 | "urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" | ||
| 34 | |||
| 35 | start = manifest | ||
| 36 | manifest = element manifest:manifest { manifest-attlist, file-entry+ } | ||
| 37 | manifest-attlist = attribute manifest:version { "1.2" } | ||
| 38 | file-entry = | ||
| 39 | element manifest:file-entry { file-entry-attlist, encryption-data? } | ||
| 40 | file-entry-attlist = | ||
| 41 | attribute manifest:full-path { \string } | ||
| 42 | & attribute manifest:size { nonNegativeInteger }? | ||
| 43 | & attribute manifest:media-type { \string } | ||
| 44 | & attribute manifest:preferred-view-mode { | ||
| 45 | "edit" | "presentation-slide-show" | "read-only" | namespacedToken | ||
| 46 | }? | ||
| 47 | & attribute manifest:version { \string }? | ||
| 48 | encryption-data = | ||
| 49 | element manifest:encryption-data { | ||
| 50 | encryption-data-attlist, | ||
| 51 | algorithm, | ||
| 52 | start-key-generation?, | ||
| 53 | key-derivation | ||
| 54 | } | ||
| 55 | encryption-data-attlist = | ||
| 56 | attribute manifest:checksum-type { "SHA1/1K" | anyURI } | ||
| 57 | & attribute manifest:checksum { base64Binary } | ||
| 58 | algorithm = | ||
| 59 | element manifest:algorithm { algorithm-attlist, anyElements } | ||
| 60 | algorithm-attlist = | ||
| 61 | attribute manifest:algorithm-name { "Blowfish CFB" | anyURI } | ||
| 62 | & attribute manifest:initialisation-vector { base64Binary } | ||
| 63 | anyAttListOrElements = | ||
| 64 | attribute * { text }*, | ||
| 65 | anyElements | ||
| 66 | anyElements = | ||
| 67 | element * { | ||
| 68 | mixed { anyAttListOrElements } | ||
| 69 | }* | ||
| 70 | key-derivation = | ||
| 71 | element manifest:key-derivation { key-derivation-attlist, empty } | ||
| 72 | key-derivation-attlist = | ||
| 73 | attribute manifest:key-derivation-name { "PBKDF2" | anyURI } | ||
| 74 | & attribute manifest:salt { base64Binary } | ||
| 75 | & attribute manifest:iteration-count { nonNegativeInteger } | ||
| 76 | & attribute manifest:key-size { nonNegativeInteger }? | ||
| 77 | start-key-generation = | ||
| 78 | element manifest:start-key-generation { | ||
| 79 | start-key-generation-attlist, empty | ||
| 80 | } | ||
| 81 | start-key-generation-attlist = | ||
| 82 | attribute manifest:start-key-generation-name { "SHA1" | anyURI } | ||
| 83 | & attribute manifest:key-size { nonNegativeInteger }? | ||
| 84 | base64Binary = xsd:base64Binary | ||
| 85 | namespacedToken = xsd:QName { pattern = "[^:]+:[^:]+" } | ||
| 86 | nonNegativeInteger = xsd:nonNegativeInteger | ||
| 87 | \string = xsd:string | ||
| 88 | anyURI = xsd:anyURI | ||
diff --git a/etc/schema/od-schema-v1.2-os.rnc b/etc/schema/od-schema-v1.2-os.rnc new file mode 100644 index 00000000000..8d679d62e4e --- /dev/null +++ b/etc/schema/od-schema-v1.2-os.rnc | |||
| @@ -0,0 +1,6280 @@ | |||
| 1 | # Open Document Format for Office Applications (OpenDocument) Version 1.2 | ||
| 2 | # OASIS Standard, 29 September 2011 | ||
| 3 | # Relax-NG Schema | ||
| 4 | # Source: http://docs.oasis-open.org/office/v1.2/os/ | ||
| 5 | # Copyright (c) OASIS Open 2002-2011, 2013. All Rights Reserved. | ||
| 6 | # | ||
| 7 | # All capitalized terms in the following text have the meanings assigned to them | ||
| 8 | # in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The | ||
| 9 | # full Policy may be found at the OASIS website. | ||
| 10 | # | ||
| 11 | # This document and translations of it may be copied and furnished to others, and | ||
| 12 | # derivative works that comment on or otherwise explain it or assist in its | ||
| 13 | # implementation may be prepared, copied, published, and distributed, in whole or | ||
| 14 | # in part, without restriction of any kind, provided that the above copyright | ||
| 15 | # notice and this section are included on all such copies and derivative works. | ||
| 16 | # However, this document itself may not be modified in any way, including by | ||
| 17 | # removing the copyright notice or references to OASIS, except as needed for the | ||
| 18 | # purpose of developing any document or deliverable produced by an OASIS | ||
| 19 | # Technical Committee (in which case the rules applicable to copyrights, as set | ||
| 20 | # forth in the OASIS IPR Policy, must be followed) or as required to translate it | ||
| 21 | # into languages other than English. | ||
| 22 | # | ||
| 23 | # The limited permissions granted above are perpetual and will not be revoked by | ||
| 24 | # OASIS or its successors or assigns. | ||
| 25 | # | ||
| 26 | # This document and the information contained herein is provided on an "AS IS" | ||
| 27 | # basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT | ||
| 28 | # LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT | ||
| 29 | # INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR | ||
| 30 | # FITNESS FOR A PARTICULAR PURPOSE. | ||
| 31 | |||
| 32 | namespace anim = "urn:oasis:names:tc:opendocument:xmlns:animation:1.0" | ||
| 33 | namespace chart = "urn:oasis:names:tc:opendocument:xmlns:chart:1.0" | ||
| 34 | namespace config = "urn:oasis:names:tc:opendocument:xmlns:config:1.0" | ||
| 35 | namespace db = "urn:oasis:names:tc:opendocument:xmlns:database:1.0" | ||
| 36 | namespace dc = "http://purl.org/dc/elements/1.1/" | ||
| 37 | namespace dr3d = "urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" | ||
| 38 | namespace draw = "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" | ||
| 39 | namespace fo = | ||
| 40 | "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" | ||
| 41 | namespace form = "urn:oasis:names:tc:opendocument:xmlns:form:1.0" | ||
| 42 | namespace grddl = "http://www.w3.org/2003/g/data-view#" | ||
| 43 | namespace math = "http://www.w3.org/1998/Math/MathML" | ||
| 44 | namespace meta = "urn:oasis:names:tc:opendocument:xmlns:meta:1.0" | ||
| 45 | namespace number = "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" | ||
| 46 | namespace office = "urn:oasis:names:tc:opendocument:xmlns:office:1.0" | ||
| 47 | namespace presentation = | ||
| 48 | "urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" | ||
| 49 | namespace script = "urn:oasis:names:tc:opendocument:xmlns:script:1.0" | ||
| 50 | namespace smil = | ||
| 51 | "urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" | ||
| 52 | namespace style = "urn:oasis:names:tc:opendocument:xmlns:style:1.0" | ||
| 53 | namespace svg = | ||
| 54 | "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" | ||
| 55 | namespace table = "urn:oasis:names:tc:opendocument:xmlns:table:1.0" | ||
| 56 | namespace text = "urn:oasis:names:tc:opendocument:xmlns:text:1.0" | ||
| 57 | namespace xforms = "http://www.w3.org/2002/xforms" | ||
| 58 | namespace xhtml = "http://www.w3.org/1999/xhtml" | ||
| 59 | namespace xlink = "http://www.w3.org/1999/xlink" | ||
| 60 | |||
| 61 | office-process-content = attribute office:process-content { boolean }? | ||
| 62 | start = | ||
| 63 | office-document | ||
| 64 | | office-document-content | ||
| 65 | | office-document-styles | ||
| 66 | | office-document-meta | ||
| 67 | | office-document-settings | ||
| 68 | office-document = | ||
| 69 | element office:document { | ||
| 70 | office-document-attrs, | ||
| 71 | office-document-common-attrs, | ||
| 72 | office-meta, | ||
| 73 | office-settings, | ||
| 74 | office-scripts, | ||
| 75 | office-font-face-decls, | ||
| 76 | office-styles, | ||
| 77 | office-automatic-styles, | ||
| 78 | office-master-styles, | ||
| 79 | office-body | ||
| 80 | } | ||
| 81 | office-document-content = | ||
| 82 | element office:document-content { | ||
| 83 | office-document-common-attrs, | ||
| 84 | office-scripts, | ||
| 85 | office-font-face-decls, | ||
| 86 | office-automatic-styles, | ||
| 87 | office-body | ||
| 88 | } | ||
| 89 | office-document-styles = | ||
| 90 | element office:document-styles { | ||
| 91 | office-document-common-attrs, | ||
| 92 | office-font-face-decls, | ||
| 93 | office-styles, | ||
| 94 | office-automatic-styles, | ||
| 95 | office-master-styles | ||
| 96 | } | ||
| 97 | office-document-meta = | ||
| 98 | element office:document-meta { | ||
| 99 | office-document-common-attrs, office-meta | ||
| 100 | } | ||
| 101 | office-document-settings = | ||
| 102 | element office:document-settings { | ||
| 103 | office-document-common-attrs, office-settings | ||
| 104 | } | ||
| 105 | office-document-common-attrs = | ||
| 106 | attribute office:version { "1.2" } | ||
| 107 | & attribute grddl:transformation { | ||
| 108 | list { anyIRI* } | ||
| 109 | }? | ||
| 110 | office-document-attrs = attribute office:mimetype { \string } | ||
| 111 | office-meta = element office:meta { office-meta-content-strict }? | ||
| 112 | office-meta-content-strict = office-meta-data* | ||
| 113 | office-body = element office:body { office-body-content } | ||
| 114 | office-body-content = | ||
| 115 | element office:text { | ||
| 116 | office-text-attlist, | ||
| 117 | office-text-content-prelude, | ||
| 118 | office-text-content-main, | ||
| 119 | office-text-content-epilogue | ||
| 120 | } | ||
| 121 | | element office:drawing { | ||
| 122 | office-drawing-attlist, | ||
| 123 | office-drawing-content-prelude, | ||
| 124 | office-drawing-content-main, | ||
| 125 | office-drawing-content-epilogue | ||
| 126 | } | ||
| 127 | | element office:presentation { | ||
| 128 | office-presentation-attlist, | ||
| 129 | office-presentation-content-prelude, | ||
| 130 | office-presentation-content-main, | ||
| 131 | office-presentation-content-epilogue | ||
| 132 | } | ||
| 133 | | element office:spreadsheet { | ||
| 134 | office-spreadsheet-attlist, | ||
| 135 | office-spreadsheet-content-prelude, | ||
| 136 | office-spreadsheet-content-main, | ||
| 137 | office-spreadsheet-content-epilogue | ||
| 138 | } | ||
| 139 | | element office:chart { | ||
| 140 | office-chart-attlist, | ||
| 141 | office-chart-content-prelude, | ||
| 142 | office-chart-content-main, | ||
| 143 | office-chart-content-epilogue | ||
| 144 | } | ||
| 145 | | element office:image { | ||
| 146 | office-image-attlist, | ||
| 147 | office-image-content-prelude, | ||
| 148 | office-image-content-main, | ||
| 149 | office-image-content-epilogue | ||
| 150 | } | ||
| 151 | | office-database | ||
| 152 | office-text-content-prelude = | ||
| 153 | office-forms, text-tracked-changes, text-decls, table-decls | ||
| 154 | office-text-content-main = | ||
| 155 | text-content* | ||
| 156 | | (text-page-sequence, (shape)*) | ||
| 157 | text-content = | ||
| 158 | text-h | ||
| 159 | | text-p | ||
| 160 | | text-list | ||
| 161 | | text-numbered-paragraph | ||
| 162 | | table-table | ||
| 163 | | text-section | ||
| 164 | | text-soft-page-break | ||
| 165 | | text-table-of-content | ||
| 166 | | text-illustration-index | ||
| 167 | | text-table-index | ||
| 168 | | text-object-index | ||
| 169 | | text-user-index | ||
| 170 | | text-alphabetical-index | ||
| 171 | | text-bibliography | ||
| 172 | | shape | ||
| 173 | | change-marks | ||
| 174 | office-text-content-epilogue = table-functions | ||
| 175 | office-text-attlist = | ||
| 176 | attribute text:global { boolean }? | ||
| 177 | & attribute text:use-soft-page-breaks { boolean }? | ||
| 178 | office-drawing-attlist = empty | ||
| 179 | office-drawing-content-prelude = text-decls, table-decls | ||
| 180 | office-drawing-content-main = draw-page* | ||
| 181 | office-drawing-content-epilogue = table-functions | ||
| 182 | office-presentation-attlist = empty | ||
| 183 | office-presentation-content-prelude = | ||
| 184 | text-decls, table-decls, presentation-decls | ||
| 185 | office-presentation-content-main = draw-page* | ||
| 186 | office-presentation-content-epilogue = | ||
| 187 | presentation-settings, table-functions | ||
| 188 | office-spreadsheet-content-prelude = | ||
| 189 | table-tracked-changes?, text-decls, table-decls | ||
| 190 | table-decls = | ||
| 191 | table-calculation-settings?, | ||
| 192 | table-content-validations?, | ||
| 193 | table-label-ranges? | ||
| 194 | office-spreadsheet-content-main = table-table* | ||
| 195 | office-spreadsheet-content-epilogue = table-functions | ||
| 196 | table-functions = | ||
| 197 | table-named-expressions?, | ||
| 198 | table-database-ranges?, | ||
| 199 | table-data-pilot-tables?, | ||
| 200 | table-consolidation?, | ||
| 201 | table-dde-links? | ||
| 202 | office-chart-attlist = empty | ||
| 203 | office-chart-content-prelude = text-decls, table-decls | ||
| 204 | office-chart-content-main = chart-chart | ||
| 205 | office-chart-content-epilogue = table-functions | ||
| 206 | office-image-attlist = empty | ||
| 207 | office-image-content-prelude = empty | ||
| 208 | office-image-content-main = draw-frame | ||
| 209 | office-image-content-epilogue = empty | ||
| 210 | office-settings = element office:settings { config-config-item-set+ }? | ||
| 211 | config-config-item-set = | ||
| 212 | element config:config-item-set { | ||
| 213 | config-config-item-set-attlist, config-items | ||
| 214 | } | ||
| 215 | config-items = | ||
| 216 | (config-config-item | ||
| 217 | | config-config-item-set | ||
| 218 | | config-config-item-map-named | ||
| 219 | | config-config-item-map-indexed)+ | ||
| 220 | config-config-item-set-attlist = attribute config:name { \string } | ||
| 221 | config-config-item = | ||
| 222 | element config:config-item { config-config-item-attlist, text } | ||
| 223 | config-config-item-attlist = | ||
| 224 | attribute config:name { \string } | ||
| 225 | & attribute config:type { | ||
| 226 | "boolean" | ||
| 227 | | "short" | ||
| 228 | | "int" | ||
| 229 | | "long" | ||
| 230 | | "double" | ||
| 231 | | "string" | ||
| 232 | | "datetime" | ||
| 233 | | "base64Binary" | ||
| 234 | } | ||
| 235 | config-config-item-map-indexed = | ||
| 236 | element config:config-item-map-indexed { | ||
| 237 | config-config-item-map-indexed-attlist, | ||
| 238 | config-config-item-map-entry+ | ||
| 239 | } | ||
| 240 | config-config-item-map-indexed-attlist = | ||
| 241 | attribute config:name { \string } | ||
| 242 | config-config-item-map-entry = | ||
| 243 | element config:config-item-map-entry { | ||
| 244 | config-config-item-map-entry-attlist, config-items | ||
| 245 | } | ||
| 246 | config-config-item-map-entry-attlist = | ||
| 247 | attribute config:name { \string }? | ||
| 248 | config-config-item-map-named = | ||
| 249 | element config:config-item-map-named { | ||
| 250 | config-config-item-map-named-attlist, config-config-item-map-entry+ | ||
| 251 | } | ||
| 252 | config-config-item-map-named-attlist = attribute config:name { \string } | ||
| 253 | office-scripts = | ||
| 254 | element office:scripts { office-script*, office-event-listeners? }? | ||
| 255 | office-script = | ||
| 256 | element office:script { | ||
| 257 | office-script-attlist, | ||
| 258 | mixed { anyElements } | ||
| 259 | } | ||
| 260 | office-script-attlist = attribute script:language { \string } | ||
| 261 | office-font-face-decls = | ||
| 262 | element office:font-face-decls { style-font-face* }? | ||
| 263 | office-styles = | ||
| 264 | element office:styles { | ||
| 265 | styles | ||
| 266 | & style-default-style* | ||
| 267 | & style-default-page-layout? | ||
| 268 | & text-outline-style? | ||
| 269 | & text-notes-configuration* | ||
| 270 | & text-bibliography-configuration? | ||
| 271 | & text-linenumbering-configuration? | ||
| 272 | & draw-gradient* | ||
| 273 | & svg-linearGradient* | ||
| 274 | & svg-radialGradient* | ||
| 275 | & draw-hatch* | ||
| 276 | & draw-fill-image* | ||
| 277 | & draw-marker* | ||
| 278 | & draw-stroke-dash* | ||
| 279 | & draw-opacity* | ||
| 280 | & style-presentation-page-layout* | ||
| 281 | & table-table-template* | ||
| 282 | }? | ||
| 283 | office-automatic-styles = | ||
| 284 | element office:automatic-styles { styles & style-page-layout* }? | ||
| 285 | office-master-styles = | ||
| 286 | element office:master-styles { | ||
| 287 | style-master-page* & style-handout-master? & draw-layer-set? | ||
| 288 | }? | ||
| 289 | styles = | ||
| 290 | style-style* | ||
| 291 | & text-list-style* | ||
| 292 | & number-number-style* | ||
| 293 | & number-currency-style* | ||
| 294 | & number-percentage-style* | ||
| 295 | & number-date-style* | ||
| 296 | & number-time-style* | ||
| 297 | & number-boolean-style* | ||
| 298 | & number-text-style* | ||
| 299 | office-meta-data = | ||
| 300 | element meta:generator { \string } | ||
| 301 | | element dc:title { \string } | ||
| 302 | | element dc:description { \string } | ||
| 303 | | element dc:subject { \string } | ||
| 304 | | element meta:keyword { \string } | ||
| 305 | | element meta:initial-creator { \string } | ||
| 306 | | dc-creator | ||
| 307 | | element meta:printed-by { \string } | ||
| 308 | | element meta:creation-date { dateTime } | ||
| 309 | | dc-date | ||
| 310 | | element meta:print-date { dateTime } | ||
| 311 | | element meta:template { | ||
| 312 | attribute xlink:type { "simple" }, | ||
| 313 | attribute xlink:href { anyIRI }, | ||
| 314 | attribute xlink:actuate { "onRequest" }?, | ||
| 315 | attribute xlink:title { \string }?, | ||
| 316 | attribute meta:date { dateTime }? | ||
| 317 | } | ||
| 318 | | element meta:auto-reload { | ||
| 319 | (attribute xlink:type { "simple" }, | ||
| 320 | attribute xlink:href { anyIRI }, | ||
| 321 | attribute xlink:show { "replace" }?, | ||
| 322 | attribute xlink:actuate { "onLoad" }?)?, | ||
| 323 | attribute meta:delay { duration }? | ||
| 324 | } | ||
| 325 | | element meta:hyperlink-behaviour { | ||
| 326 | attribute office:target-frame-name { targetFrameName }?, | ||
| 327 | attribute xlink:show { "new" | "replace" }? | ||
| 328 | } | ||
| 329 | | element dc:language { language } | ||
| 330 | | element meta:editing-cycles { nonNegativeInteger } | ||
| 331 | | element meta:editing-duration { duration } | ||
| 332 | | element meta:document-statistic { | ||
| 333 | attribute meta:page-count { nonNegativeInteger }?, | ||
| 334 | attribute meta:table-count { nonNegativeInteger }?, | ||
| 335 | attribute meta:draw-count { nonNegativeInteger }?, | ||
| 336 | attribute meta:image-count { nonNegativeInteger }?, | ||
| 337 | attribute meta:ole-object-count { nonNegativeInteger }?, | ||
| 338 | attribute meta:object-count { nonNegativeInteger }?, | ||
| 339 | attribute meta:paragraph-count { nonNegativeInteger }?, | ||
| 340 | attribute meta:word-count { nonNegativeInteger }?, | ||
| 341 | attribute meta:character-count { nonNegativeInteger }?, | ||
| 342 | attribute meta:frame-count { nonNegativeInteger }?, | ||
| 343 | attribute meta:sentence-count { nonNegativeInteger }?, | ||
| 344 | attribute meta:syllable-count { nonNegativeInteger }?, | ||
| 345 | attribute meta:non-whitespace-character-count { | ||
| 346 | nonNegativeInteger | ||
| 347 | }?, | ||
| 348 | attribute meta:row-count { nonNegativeInteger }?, | ||
| 349 | attribute meta:cell-count { nonNegativeInteger }? | ||
| 350 | } | ||
| 351 | | element meta:user-defined { | ||
| 352 | attribute meta:name { \string }, | ||
| 353 | ((attribute meta:value-type { "float" }, | ||
| 354 | double) | ||
| 355 | | (attribute meta:value-type { "date" }, | ||
| 356 | dateOrDateTime) | ||
| 357 | | (attribute meta:value-type { "time" }, | ||
| 358 | duration) | ||
| 359 | | (attribute meta:value-type { "boolean" }, | ||
| 360 | boolean) | ||
| 361 | | (attribute meta:value-type { "string" }, | ||
| 362 | \string) | ||
| 363 | | text) | ||
| 364 | } | ||
| 365 | dc-creator = element dc:creator { \string } | ||
| 366 | dc-date = element dc:date { dateTime } | ||
| 367 | text-h = | ||
| 368 | element text:h { | ||
| 369 | heading-attrs, | ||
| 370 | paragraph-attrs, | ||
| 371 | text-number?, | ||
| 372 | paragraph-content-or-hyperlink* | ||
| 373 | } | ||
| 374 | heading-attrs = | ||
| 375 | attribute text:outline-level { positiveInteger } | ||
| 376 | & attribute text:restart-numbering { boolean }? | ||
| 377 | & attribute text:start-value { nonNegativeInteger }? | ||
| 378 | & attribute text:is-list-header { boolean }? | ||
| 379 | text-number = element text:number { \string } | ||
| 380 | text-p = | ||
| 381 | element text:p { paragraph-attrs, paragraph-content-or-hyperlink* } | ||
| 382 | paragraph-attrs = | ||
| 383 | attribute text:style-name { styleNameRef }? | ||
| 384 | & attribute text:class-names { styleNameRefs }? | ||
| 385 | & attribute text:cond-style-name { styleNameRef }? | ||
| 386 | & (xml-id, | ||
| 387 | attribute text:id { NCName }?)? | ||
| 388 | & common-in-content-meta-attlist? | ||
| 389 | text-page-sequence = element text:page-sequence { text-page+ } | ||
| 390 | text-page = element text:page { text-page-attlist, empty } | ||
| 391 | text-page-attlist = attribute text:master-page-name { styleNameRef } | ||
| 392 | text-list = | ||
| 393 | element text:list { | ||
| 394 | text-list-attr, text-list-header?, text-list-item* | ||
| 395 | } | ||
| 396 | text-list-attr = | ||
| 397 | attribute text:style-name { styleNameRef }? | ||
| 398 | & attribute text:continue-numbering { boolean }? | ||
| 399 | & attribute text:continue-list { IDREF }? | ||
| 400 | & xml-id? | ||
| 401 | text-list-item = | ||
| 402 | element text:list-item { text-list-item-attr, text-list-item-content } | ||
| 403 | text-list-item-content = | ||
| 404 | text-number?, (text-p | text-h | text-list | text-soft-page-break)* | ||
| 405 | text-list-item-attr = | ||
| 406 | attribute text:start-value { nonNegativeInteger }? | ||
| 407 | & attribute text:style-override { styleNameRef }? | ||
| 408 | & xml-id? | ||
| 409 | text-list-header = | ||
| 410 | element text:list-header { | ||
| 411 | text-list-header-attr, text-list-item-content | ||
| 412 | } | ||
| 413 | text-list-header-attr = xml-id? | ||
| 414 | text-numbered-paragraph = | ||
| 415 | element text:numbered-paragraph { | ||
| 416 | text-numbered-paragraph-attr, text-number?, (text-p | text-h) | ||
| 417 | } | ||
| 418 | text-numbered-paragraph-attr = | ||
| 419 | attribute text:list-id { NCName } | ||
| 420 | & attribute text:level { positiveInteger }? | ||
| 421 | & (attribute text:style-name { styleNameRef }, | ||
| 422 | attribute text:continue-numbering { boolean }, | ||
| 423 | attribute text:start-value { nonNegativeInteger })? | ||
| 424 | & xml-id? | ||
| 425 | text-section = | ||
| 426 | element text:section { | ||
| 427 | text-section-attlist, | ||
| 428 | (text-section-source | text-section-source-dde | empty), | ||
| 429 | text-content* | ||
| 430 | } | ||
| 431 | text-section-attlist = | ||
| 432 | common-section-attlist | ||
| 433 | & (attribute text:display { "true" | "none" } | ||
| 434 | | (attribute text:display { "condition" }, | ||
| 435 | attribute text:condition { \string }) | ||
| 436 | | empty) | ||
| 437 | common-section-attlist = | ||
| 438 | attribute text:style-name { styleNameRef }? | ||
| 439 | & attribute text:name { \string } | ||
| 440 | & attribute text:protected { boolean }? | ||
| 441 | & attribute text:protection-key { \string }? | ||
| 442 | & attribute text:protection-key-digest-algorithm { anyIRI }? | ||
| 443 | & xml-id? | ||
| 444 | text-section-source = | ||
| 445 | element text:section-source { text-section-source-attr } | ||
| 446 | text-section-source-attr = | ||
| 447 | (attribute xlink:type { "simple" }, | ||
| 448 | attribute xlink:href { anyIRI }, | ||
| 449 | attribute xlink:show { "embed" }?)? | ||
| 450 | & attribute text:section-name { \string }? | ||
| 451 | & attribute text:filter-name { \string }? | ||
| 452 | text-section-source-dde = office-dde-source | ||
| 453 | text-tracked-changes = | ||
| 454 | element text:tracked-changes { | ||
| 455 | text-tracked-changes-attr, text-changed-region* | ||
| 456 | }? | ||
| 457 | text-tracked-changes-attr = attribute text:track-changes { boolean }? | ||
| 458 | text-changed-region = | ||
| 459 | element text:changed-region { | ||
| 460 | text-changed-region-attr, text-changed-region-content | ||
| 461 | } | ||
| 462 | text-changed-region-attr = | ||
| 463 | xml-id, | ||
| 464 | attribute text:id { NCName }? | ||
| 465 | text-changed-region-content = | ||
| 466 | element text:insertion { office-change-info } | ||
| 467 | | element text:deletion { office-change-info, text-content* } | ||
| 468 | | element text:format-change { office-change-info } | ||
| 469 | change-marks = | ||
| 470 | element text:change { change-mark-attr } | ||
| 471 | | element text:change-start { change-mark-attr } | ||
| 472 | | element text:change-end { change-mark-attr } | ||
| 473 | change-mark-attr = attribute text:change-id { IDREF } | ||
| 474 | text-soft-page-break = element text:soft-page-break { empty } | ||
| 475 | text-decls = | ||
| 476 | element text:variable-decls { text-variable-decl* }?, | ||
| 477 | element text:sequence-decls { text-sequence-decl* }?, | ||
| 478 | element text:user-field-decls { text-user-field-decl* }?, | ||
| 479 | element text:dde-connection-decls { text-dde-connection-decl* }?, | ||
| 480 | text-alphabetical-index-auto-mark-file? | ||
| 481 | paragraph-content-or-hyperlink = paragraph-content | text-a | ||
| 482 | paragraph-content = | ||
| 483 | text | ||
| 484 | | element text:s { | ||
| 485 | attribute text:c { nonNegativeInteger }? | ||
| 486 | } | ||
| 487 | | element text:tab { text-tab-attr } | ||
| 488 | | element text:line-break { empty } | ||
| 489 | | text-soft-page-break | ||
| 490 | | element text:span { | ||
| 491 | attribute text:style-name { styleNameRef }?, | ||
| 492 | attribute text:class-names { styleNameRefs }?, | ||
| 493 | paragraph-content-or-hyperlink* | ||
| 494 | } | ||
| 495 | | element text:meta { | ||
| 496 | text-meta-attlist, paragraph-content-or-hyperlink* | ||
| 497 | } | ||
| 498 | | (text-bookmark | text-bookmark-start | text-bookmark-end) | ||
| 499 | | element text:reference-mark { | ||
| 500 | attribute text:name { \string } | ||
| 501 | } | ||
| 502 | | (element text:reference-mark-start { | ||
| 503 | attribute text:name { \string } | ||
| 504 | } | ||
| 505 | | element text:reference-mark-end { | ||
| 506 | attribute text:name { \string } | ||
| 507 | }) | ||
| 508 | | element text:note { | ||
| 509 | text-note-class, | ||
| 510 | attribute text:id { \string }?, | ||
| 511 | element text:note-citation { | ||
| 512 | attribute text:label { \string }?, | ||
| 513 | text | ||
| 514 | }, | ||
| 515 | element text:note-body { text-content* } | ||
| 516 | } | ||
| 517 | | element text:ruby { | ||
| 518 | attribute text:style-name { styleNameRef }?, | ||
| 519 | element text:ruby-base { paragraph-content-or-hyperlink* }, | ||
| 520 | element text:ruby-text { | ||
| 521 | attribute text:style-name { styleNameRef }?, | ||
| 522 | text | ||
| 523 | } | ||
| 524 | } | ||
| 525 | | (office-annotation | office-annotation-end) | ||
| 526 | | change-marks | ||
| 527 | | shape | ||
| 528 | | element text:date { text-date-attlist, text } | ||
| 529 | | element text:time { text-time-attlist, text } | ||
| 530 | | element text:page-number { text-page-number-attlist, text } | ||
| 531 | | element text:page-continuation { | ||
| 532 | text-page-continuation-attlist, text | ||
| 533 | } | ||
| 534 | | element text:sender-firstname { common-field-fixed-attlist, text } | ||
| 535 | | element text:sender-lastname { common-field-fixed-attlist, text } | ||
| 536 | | element text:sender-initials { common-field-fixed-attlist, text } | ||
| 537 | | element text:sender-title { common-field-fixed-attlist, text } | ||
| 538 | | element text:sender-position { common-field-fixed-attlist, text } | ||
| 539 | | element text:sender-email { common-field-fixed-attlist, text } | ||
| 540 | | element text:sender-phone-private { | ||
| 541 | common-field-fixed-attlist, text | ||
| 542 | } | ||
| 543 | | element text:sender-fax { common-field-fixed-attlist, text } | ||
| 544 | | element text:sender-company { common-field-fixed-attlist, text } | ||
| 545 | | element text:sender-phone-work { common-field-fixed-attlist, text } | ||
| 546 | | element text:sender-street { common-field-fixed-attlist, text } | ||
| 547 | | element text:sender-city { common-field-fixed-attlist, text } | ||
| 548 | | element text:sender-postal-code { common-field-fixed-attlist, text } | ||
| 549 | | element text:sender-country { common-field-fixed-attlist, text } | ||
| 550 | | element text:sender-state-or-province { | ||
| 551 | common-field-fixed-attlist, text | ||
| 552 | } | ||
| 553 | | element text:author-name { common-field-fixed-attlist, text } | ||
| 554 | | element text:author-initials { common-field-fixed-attlist, text } | ||
| 555 | | element text:chapter { text-chapter-attlist, text } | ||
| 556 | | element text:file-name { text-file-name-attlist, text } | ||
| 557 | | element text:template-name { text-template-name-attlist, text } | ||
| 558 | | element text:sheet-name { text } | ||
| 559 | | element text:variable-set { | ||
| 560 | (common-field-name-attlist | ||
| 561 | & common-field-formula-attlist | ||
| 562 | & common-value-and-type-attlist | ||
| 563 | & common-field-display-value-none-attlist | ||
| 564 | & common-field-data-style-name-attlist), | ||
| 565 | text | ||
| 566 | } | ||
| 567 | | element text:variable-get { | ||
| 568 | (common-field-name-attlist | ||
| 569 | & common-field-display-value-formula-attlist | ||
| 570 | & common-field-data-style-name-attlist), | ||
| 571 | text | ||
| 572 | } | ||
| 573 | | element text:variable-input { | ||
| 574 | (common-field-name-attlist | ||
| 575 | & common-field-description-attlist | ||
| 576 | & common-value-type-attlist | ||
| 577 | & common-field-display-value-none-attlist | ||
| 578 | & common-field-data-style-name-attlist), | ||
| 579 | text | ||
| 580 | } | ||
| 581 | | element text:user-field-get { | ||
| 582 | (common-field-name-attlist | ||
| 583 | & common-field-display-value-formula-none-attlist | ||
| 584 | & common-field-data-style-name-attlist), | ||
| 585 | text | ||
| 586 | } | ||
| 587 | | element text:user-field-input { | ||
| 588 | (common-field-name-attlist | ||
| 589 | & common-field-description-attlist | ||
| 590 | & common-field-data-style-name-attlist), | ||
| 591 | text | ||
| 592 | } | ||
| 593 | | element text:sequence { | ||
| 594 | (common-field-name-attlist | ||
| 595 | & common-field-formula-attlist | ||
| 596 | & common-field-num-format-attlist | ||
| 597 | & text-sequence-ref-name), | ||
| 598 | text | ||
| 599 | } | ||
| 600 | | element text:expression { | ||
| 601 | (common-field-formula-attlist | ||
| 602 | & common-value-and-type-attlist? | ||
| 603 | & common-field-display-value-formula-attlist | ||
| 604 | & common-field-data-style-name-attlist), | ||
| 605 | text | ||
| 606 | } | ||
| 607 | | element text:text-input { common-field-description-attlist, text } | ||
| 608 | | element text:initial-creator { common-field-fixed-attlist, text } | ||
| 609 | | element text:creation-date { | ||
| 610 | (common-field-fixed-attlist | ||
| 611 | & common-field-data-style-name-attlist | ||
| 612 | & attribute text:date-value { dateOrDateTime }?), | ||
| 613 | text | ||
| 614 | } | ||
| 615 | | element text:creation-time { | ||
| 616 | (common-field-fixed-attlist | ||
| 617 | & common-field-data-style-name-attlist | ||
| 618 | & attribute text:time-value { timeOrDateTime }?), | ||
| 619 | text | ||
| 620 | } | ||
| 621 | | element text:description { common-field-fixed-attlist, text } | ||
| 622 | | element text:user-defined { | ||
| 623 | (common-field-fixed-attlist | ||
| 624 | & attribute text:name { \string } | ||
| 625 | & common-field-data-style-name-attlist | ||
| 626 | & attribute office:value { double }? | ||
| 627 | & attribute office:date-value { dateOrDateTime }? | ||
| 628 | & attribute office:time-value { duration }? | ||
| 629 | & attribute office:boolean-value { boolean }? | ||
| 630 | & attribute office:string-value { \string }?), | ||
| 631 | text | ||
| 632 | } | ||
| 633 | | element text:print-time { | ||
| 634 | (common-field-fixed-attlist | ||
| 635 | & common-field-data-style-name-attlist | ||
| 636 | & attribute text:time-value { time }?), | ||
| 637 | text | ||
| 638 | } | ||
| 639 | | element text:print-date { | ||
| 640 | (common-field-fixed-attlist | ||
| 641 | & common-field-data-style-name-attlist | ||
| 642 | & attribute text:date-value { date }?), | ||
| 643 | text | ||
| 644 | } | ||
| 645 | | element text:printed-by { common-field-fixed-attlist, text } | ||
| 646 | | element text:title { common-field-fixed-attlist, text } | ||
| 647 | | element text:subject { common-field-fixed-attlist, text } | ||
| 648 | | element text:keywords { common-field-fixed-attlist, text } | ||
| 649 | | element text:editing-cycles { common-field-fixed-attlist, text } | ||
| 650 | | element text:editing-duration { | ||
| 651 | (common-field-fixed-attlist | ||
| 652 | & common-field-data-style-name-attlist | ||
| 653 | & attribute text:duration { duration }?), | ||
| 654 | text | ||
| 655 | } | ||
| 656 | | element text:modification-time { | ||
| 657 | (common-field-fixed-attlist | ||
| 658 | & common-field-data-style-name-attlist | ||
| 659 | & attribute text:time-value { time }?), | ||
| 660 | text | ||
| 661 | } | ||
| 662 | | element text:modification-date { | ||
| 663 | (common-field-fixed-attlist | ||
| 664 | & common-field-data-style-name-attlist | ||
| 665 | & attribute text:date-value { date }?), | ||
| 666 | text | ||
| 667 | } | ||
| 668 | | element text:creator { common-field-fixed-attlist, text } | ||
| 669 | | element text:page-count | ||
| 670 | | text:paragraph-count | ||
| 671 | | text:word-count | ||
| 672 | | text:character-count | ||
| 673 | | text:table-count | ||
| 674 | | text:image-count | ||
| 675 | | text:object-count { | ||
| 676 | common-field-num-format-attlist, text | ||
| 677 | } | ||
| 678 | | element text:database-display { | ||
| 679 | text-database-display-attlist, text | ||
| 680 | } | ||
| 681 | | element text:database-next { text-database-next-attlist } | ||
| 682 | | element text:database-row-select { | ||
| 683 | text-database-row-select-attlist | ||
| 684 | } | ||
| 685 | | element text:database-row-number { | ||
| 686 | (common-field-database-table | ||
| 687 | & common-field-num-format-attlist | ||
| 688 | & attribute text:value { nonNegativeInteger }?), | ||
| 689 | text | ||
| 690 | } | ||
| 691 | | element text:database-name { common-field-database-table, text } | ||
| 692 | | element text:page-variable-set { | ||
| 693 | text-set-page-variable-attlist, text | ||
| 694 | } | ||
| 695 | | element text:page-variable-get { | ||
| 696 | text-get-page-variable-attlist, text | ||
| 697 | } | ||
| 698 | | element text:placeholder { text-placeholder-attlist, text } | ||
| 699 | | element text:conditional-text { | ||
| 700 | text-conditional-text-attlist, text | ||
| 701 | } | ||
| 702 | | element text:hidden-text { text-hidden-text-attlist, text } | ||
| 703 | | element text:reference-ref | text:bookmark-ref { | ||
| 704 | text-common-ref-content & text-bookmark-ref-content | ||
| 705 | } | ||
| 706 | | element text:note-ref { | ||
| 707 | text-common-ref-content & text-note-ref-content | ||
| 708 | } | ||
| 709 | | element text:sequence-ref { | ||
| 710 | text-common-ref-content & text-sequence-ref-content | ||
| 711 | } | ||
| 712 | | element text:script { | ||
| 713 | ((attribute xlink:type { "simple" }, | ||
| 714 | attribute xlink:href { anyIRI }) | ||
| 715 | | text) | ||
| 716 | & attribute script:language { \string }? | ||
| 717 | } | ||
| 718 | | element text:execute-macro { | ||
| 719 | attribute text:name { \string }?, | ||
| 720 | office-event-listeners?, | ||
| 721 | text | ||
| 722 | } | ||
| 723 | | element text:hidden-paragraph { | ||
| 724 | text-hidden-paragraph-attlist, text | ||
| 725 | } | ||
| 726 | | element text:dde-connection { | ||
| 727 | attribute text:connection-name { \string }, | ||
| 728 | text | ||
| 729 | } | ||
| 730 | | element text:measure { | ||
| 731 | attribute text:kind { "value" | "unit" | "gap" }, | ||
| 732 | text | ||
| 733 | } | ||
| 734 | | element text:table-formula { | ||
| 735 | (common-field-formula-attlist | ||
| 736 | & common-field-display-value-formula-attlist | ||
| 737 | & common-field-data-style-name-attlist), | ||
| 738 | text | ||
| 739 | } | ||
| 740 | | element text:meta-field { | ||
| 741 | text-meta-field-attlist, paragraph-content-or-hyperlink* | ||
| 742 | } | ||
| 743 | | element text:toc-mark-start { text-toc-mark-start-attrs } | ||
| 744 | | element text:toc-mark-end { text-id } | ||
| 745 | | element text:toc-mark { | ||
| 746 | attribute text:string-value { \string }, | ||
| 747 | text-outline-level | ||
| 748 | } | ||
| 749 | | element text:user-index-mark-start { | ||
| 750 | text-id, text-outline-level, text-index-name | ||
| 751 | } | ||
| 752 | | element text:user-index-mark-end { text-id } | ||
| 753 | | element text:user-index-mark { | ||
| 754 | attribute text:string-value { \string }, | ||
| 755 | text-outline-level, | ||
| 756 | text-index-name | ||
| 757 | } | ||
| 758 | | element text:alphabetical-index-mark-start { | ||
| 759 | text-id, text-alphabetical-index-mark-attrs | ||
| 760 | } | ||
| 761 | | element text:alphabetical-index-mark-end { text-id } | ||
| 762 | | element text:alphabetical-index-mark { | ||
| 763 | attribute text:string-value { \string }, | ||
| 764 | text-alphabetical-index-mark-attrs | ||
| 765 | } | ||
| 766 | | element text:bibliography-mark { | ||
| 767 | attribute text:bibliography-type { text-bibliography-types }, | ||
| 768 | attribute text:identifier | ||
| 769 | | text:address | ||
| 770 | | text:annote | ||
| 771 | | text:author | ||
| 772 | | text:booktitle | ||
| 773 | | text:chapter | ||
| 774 | | text:edition | ||
| 775 | | text:editor | ||
| 776 | | text:howpublished | ||
| 777 | | text:institution | ||
| 778 | | text:journal | ||
| 779 | | text:month | ||
| 780 | | text:note | ||
| 781 | | text:number | ||
| 782 | | text:organizations | ||
| 783 | | text:pages | ||
| 784 | | text:publisher | ||
| 785 | | text:school | ||
| 786 | | text:series | ||
| 787 | | text:title | ||
| 788 | | text:report-type | ||
| 789 | | text:volume | ||
| 790 | | text:year | ||
| 791 | | text:url | ||
| 792 | | text:custom1 | ||
| 793 | | text:custom2 | ||
| 794 | | text:custom3 | ||
| 795 | | text:custom4 | ||
| 796 | | text:custom5 | ||
| 797 | | text:isbn | ||
| 798 | | text:issn { \string }*, | ||
| 799 | text | ||
| 800 | } | ||
| 801 | | element presentation:header { empty } | ||
| 802 | | element presentation:footer { empty } | ||
| 803 | | element presentation:date-time { empty } | ||
| 804 | text-tab-attr = attribute text:tab-ref { nonNegativeInteger }? | ||
| 805 | text-a = | ||
| 806 | element text:a { | ||
| 807 | text-a-attlist, office-event-listeners?, paragraph-content* | ||
| 808 | } | ||
| 809 | text-a-attlist = | ||
| 810 | attribute office:name { \string }? | ||
| 811 | & attribute office:title { \string }? | ||
| 812 | & attribute xlink:type { "simple" } | ||
| 813 | & attribute xlink:href { anyIRI } | ||
| 814 | & attribute xlink:actuate { "onRequest" }? | ||
| 815 | & attribute office:target-frame-name { targetFrameName }? | ||
| 816 | & attribute xlink:show { "new" | "replace" }? | ||
| 817 | & attribute text:style-name { styleNameRef }? | ||
| 818 | & attribute text:visited-style-name { styleNameRef }? | ||
| 819 | text-meta-attlist = common-in-content-meta-attlist? & xml-id? | ||
| 820 | text-bookmark = element text:bookmark { text-bookmark-attlist, empty } | ||
| 821 | text-bookmark-start = | ||
| 822 | element text:bookmark-start { text-bookmark-start-attlist, empty } | ||
| 823 | text-bookmark-end = | ||
| 824 | element text:bookmark-end { text-bookmark-end-attlist, empty } | ||
| 825 | text-bookmark-attlist = | ||
| 826 | attribute text:name { \string } | ||
| 827 | & xml-id? | ||
| 828 | text-bookmark-start-attlist = | ||
| 829 | attribute text:name { \string } | ||
| 830 | & xml-id? | ||
| 831 | & common-in-content-meta-attlist? | ||
| 832 | text-bookmark-end-attlist = attribute text:name { \string } | ||
| 833 | text-note-class = attribute text:note-class { "footnote" | "endnote" } | ||
| 834 | text-date-attlist = | ||
| 835 | (common-field-fixed-attlist & common-field-data-style-name-attlist) | ||
| 836 | & attribute text:date-value { dateOrDateTime }? | ||
| 837 | & attribute text:date-adjust { duration }? | ||
| 838 | text-time-attlist = | ||
| 839 | (common-field-fixed-attlist & common-field-data-style-name-attlist) | ||
| 840 | & attribute text:time-value { timeOrDateTime }? | ||
| 841 | & attribute text:time-adjust { duration }? | ||
| 842 | text-page-number-attlist = | ||
| 843 | (common-field-num-format-attlist & common-field-fixed-attlist) | ||
| 844 | & attribute text:page-adjust { integer }? | ||
| 845 | & attribute text:select-page { "previous" | "current" | "next" }? | ||
| 846 | text-page-continuation-attlist = | ||
| 847 | attribute text:select-page { "previous" | "next" } | ||
| 848 | & attribute text:string-value { \string }? | ||
| 849 | text-chapter-attlist = | ||
| 850 | attribute text:display { | ||
| 851 | "name" | ||
| 852 | | "number" | ||
| 853 | | "number-and-name" | ||
| 854 | | "plain-number-and-name" | ||
| 855 | | "plain-number" | ||
| 856 | } | ||
| 857 | & attribute text:outline-level { nonNegativeInteger } | ||
| 858 | text-file-name-attlist = | ||
| 859 | attribute text:display { | ||
| 860 | "full" | "path" | "name" | "name-and-extension" | ||
| 861 | }? | ||
| 862 | & common-field-fixed-attlist | ||
| 863 | text-template-name-attlist = | ||
| 864 | attribute text:display { | ||
| 865 | "full" | "path" | "name" | "name-and-extension" | "area" | "title" | ||
| 866 | }? | ||
| 867 | text-variable-decl = | ||
| 868 | element text:variable-decl { | ||
| 869 | common-field-name-attlist, common-value-type-attlist | ||
| 870 | } | ||
| 871 | text-user-field-decl = | ||
| 872 | element text:user-field-decl { | ||
| 873 | common-field-name-attlist, | ||
| 874 | common-field-formula-attlist?, | ||
| 875 | common-value-and-type-attlist | ||
| 876 | } | ||
| 877 | text-sequence-decl = | ||
| 878 | element text:sequence-decl { text-sequence-decl-attlist } | ||
| 879 | text-sequence-decl-attlist = | ||
| 880 | common-field-name-attlist | ||
| 881 | & attribute text:display-outline-level { nonNegativeInteger } | ||
| 882 | & attribute text:separation-character { character }? | ||
| 883 | text-sequence-ref-name = attribute text:ref-name { \string }? | ||
| 884 | common-field-database-table = | ||
| 885 | common-field-database-table-attlist, common-field-database-name | ||
| 886 | common-field-database-name = | ||
| 887 | attribute text:database-name { \string }? | ||
| 888 | | form-connection-resource | ||
| 889 | common-field-database-table-attlist = | ||
| 890 | attribute text:table-name { \string } | ||
| 891 | & attribute text:table-type { "table" | "query" | "command" }? | ||
| 892 | text-database-display-attlist = | ||
| 893 | common-field-database-table | ||
| 894 | & common-field-data-style-name-attlist | ||
| 895 | & attribute text:column-name { \string } | ||
| 896 | text-database-next-attlist = | ||
| 897 | common-field-database-table | ||
| 898 | & attribute text:condition { \string }? | ||
| 899 | text-database-row-select-attlist = | ||
| 900 | common-field-database-table | ||
| 901 | & attribute text:condition { \string }? | ||
| 902 | & attribute text:row-number { nonNegativeInteger }? | ||
| 903 | text-set-page-variable-attlist = | ||
| 904 | attribute text:active { boolean }? | ||
| 905 | & attribute text:page-adjust { integer }? | ||
| 906 | text-get-page-variable-attlist = common-field-num-format-attlist | ||
| 907 | text-placeholder-attlist = | ||
| 908 | attribute text:placeholder-type { | ||
| 909 | "text" | "table" | "text-box" | "image" | "object" | ||
| 910 | } | ||
| 911 | & common-field-description-attlist | ||
| 912 | text-conditional-text-attlist = | ||
| 913 | attribute text:condition { \string } | ||
| 914 | & attribute text:string-value-if-true { \string } | ||
| 915 | & attribute text:string-value-if-false { \string } | ||
| 916 | & attribute text:current-value { boolean }? | ||
| 917 | text-hidden-text-attlist = | ||
| 918 | attribute text:condition { \string } | ||
| 919 | & attribute text:string-value { \string } | ||
| 920 | & attribute text:is-hidden { boolean }? | ||
| 921 | text-common-ref-content = | ||
| 922 | text | ||
| 923 | & attribute text:ref-name { \string }? | ||
| 924 | text-bookmark-ref-content = | ||
| 925 | attribute text:reference-format { | ||
| 926 | common-ref-format-values | ||
| 927 | | "number-no-superior" | ||
| 928 | | "number-all-superior" | ||
| 929 | | "number" | ||
| 930 | }? | ||
| 931 | text-note-ref-content = | ||
| 932 | attribute text:reference-format { common-ref-format-values }? | ||
| 933 | & text-note-class | ||
| 934 | text-sequence-ref-content = | ||
| 935 | attribute text:reference-format { | ||
| 936 | common-ref-format-values | ||
| 937 | | "category-and-value" | ||
| 938 | | "caption" | ||
| 939 | | "value" | ||
| 940 | }? | ||
| 941 | common-ref-format-values = "page" | "chapter" | "direction" | "text" | ||
| 942 | text-hidden-paragraph-attlist = | ||
| 943 | attribute text:condition { \string } | ||
| 944 | & attribute text:is-hidden { boolean }? | ||
| 945 | text-meta-field-attlist = xml-id & common-field-data-style-name-attlist | ||
| 946 | common-value-type-attlist = attribute office:value-type { valueType } | ||
| 947 | common-value-and-type-attlist = | ||
| 948 | (attribute office:value-type { "float" }, | ||
| 949 | attribute office:value { double }) | ||
| 950 | | (attribute office:value-type { "percentage" }, | ||
| 951 | attribute office:value { double }) | ||
| 952 | | (attribute office:value-type { "currency" }, | ||
| 953 | attribute office:value { double }, | ||
| 954 | attribute office:currency { \string }?) | ||
| 955 | | (attribute office:value-type { "date" }, | ||
| 956 | attribute office:date-value { dateOrDateTime }) | ||
| 957 | | (attribute office:value-type { "time" }, | ||
| 958 | attribute office:time-value { duration }) | ||
| 959 | | (attribute office:value-type { "boolean" }, | ||
| 960 | attribute office:boolean-value { boolean }) | ||
| 961 | | (attribute office:value-type { "string" }, | ||
| 962 | attribute office:string-value { \string }?) | ||
| 963 | common-field-fixed-attlist = attribute text:fixed { boolean }? | ||
| 964 | common-field-name-attlist = attribute text:name { variableName } | ||
| 965 | common-field-description-attlist = | ||
| 966 | attribute text:description { \string }? | ||
| 967 | common-field-display-value-none-attlist = | ||
| 968 | attribute text:display { "value" | "none" }? | ||
| 969 | common-field-display-value-formula-none-attlist = | ||
| 970 | attribute text:display { "value" | "formula" | "none" }? | ||
| 971 | common-field-display-value-formula-attlist = | ||
| 972 | attribute text:display { "value" | "formula" }? | ||
| 973 | common-field-formula-attlist = attribute text:formula { \string }? | ||
| 974 | common-field-data-style-name-attlist = | ||
| 975 | attribute style:data-style-name { styleNameRef }? | ||
| 976 | common-field-num-format-attlist = common-num-format-attlist? | ||
| 977 | text-toc-mark-start-attrs = text-id, text-outline-level | ||
| 978 | text-outline-level = attribute text:outline-level { positiveInteger }? | ||
| 979 | text-id = attribute text:id { \string } | ||
| 980 | text-index-name = attribute text:index-name { \string } | ||
| 981 | text-alphabetical-index-mark-attrs = | ||
| 982 | attribute text:key1 { \string }? | ||
| 983 | & attribute text:key2 { \string }? | ||
| 984 | & attribute text:string-value-phonetic { \string }? | ||
| 985 | & attribute text:key1-phonetic { \string }? | ||
| 986 | & attribute text:key2-phonetic { \string }? | ||
| 987 | & attribute text:main-entry { boolean }? | ||
| 988 | text-bibliography-types = | ||
| 989 | "article" | ||
| 990 | | "book" | ||
| 991 | | "booklet" | ||
| 992 | | "conference" | ||
| 993 | | "custom1" | ||
| 994 | | "custom2" | ||
| 995 | | "custom3" | ||
| 996 | | "custom4" | ||
| 997 | | "custom5" | ||
| 998 | | "email" | ||
| 999 | | "inbook" | ||
| 1000 | | "incollection" | ||
| 1001 | | "inproceedings" | ||
| 1002 | | "journal" | ||
| 1003 | | "manual" | ||
| 1004 | | "mastersthesis" | ||
| 1005 | | "misc" | ||
| 1006 | | "phdthesis" | ||
| 1007 | | "proceedings" | ||
| 1008 | | "techreport" | ||
| 1009 | | "unpublished" | ||
| 1010 | | "www" | ||
| 1011 | text-index-body = element text:index-body { index-content-main* } | ||
| 1012 | index-content-main = text-content | text-index-title | ||
| 1013 | text-index-title = | ||
| 1014 | element text:index-title { | ||
| 1015 | common-section-attlist, index-content-main* | ||
| 1016 | } | ||
| 1017 | text-table-of-content = | ||
| 1018 | element text:table-of-content { | ||
| 1019 | common-section-attlist, | ||
| 1020 | text-table-of-content-source, | ||
| 1021 | text-index-body | ||
| 1022 | } | ||
| 1023 | text-table-of-content-source = | ||
| 1024 | element text:table-of-content-source { | ||
| 1025 | text-table-of-content-source-attlist, | ||
| 1026 | text-index-title-template?, | ||
| 1027 | text-table-of-content-entry-template*, | ||
| 1028 | text-index-source-styles* | ||
| 1029 | } | ||
| 1030 | text-table-of-content-source-attlist = | ||
| 1031 | attribute text:outline-level { positiveInteger }? | ||
| 1032 | & attribute text:use-outline-level { boolean }? | ||
| 1033 | & attribute text:use-index-marks { boolean }? | ||
| 1034 | & attribute text:use-index-source-styles { boolean }? | ||
| 1035 | & attribute text:index-scope { "document" | "chapter" }? | ||
| 1036 | & attribute text:relative-tab-stop-position { boolean }? | ||
| 1037 | text-table-of-content-entry-template = | ||
| 1038 | element text:table-of-content-entry-template { | ||
| 1039 | text-table-of-content-entry-template-attlist, | ||
| 1040 | text-table-of-content-children* | ||
| 1041 | } | ||
| 1042 | text-table-of-content-children = | ||
| 1043 | text-index-entry-chapter | ||
| 1044 | | text-index-entry-page-number | ||
| 1045 | | text-index-entry-text | ||
| 1046 | | text-index-entry-span | ||
| 1047 | | text-index-entry-tab-stop | ||
| 1048 | | text-index-entry-link-start | ||
| 1049 | | text-index-entry-link-end | ||
| 1050 | text-table-of-content-entry-template-attlist = | ||
| 1051 | attribute text:outline-level { positiveInteger } | ||
| 1052 | & attribute text:style-name { styleNameRef } | ||
| 1053 | text-illustration-index = | ||
| 1054 | element text:illustration-index { | ||
| 1055 | common-section-attlist, | ||
| 1056 | text-illustration-index-source, | ||
| 1057 | text-index-body | ||
| 1058 | } | ||
| 1059 | text-illustration-index-source = | ||
| 1060 | element text:illustration-index-source { | ||
| 1061 | text-illustration-index-source-attrs, | ||
| 1062 | text-index-title-template?, | ||
| 1063 | text-illustration-index-entry-template? | ||
| 1064 | } | ||
| 1065 | text-illustration-index-source-attrs = | ||
| 1066 | text-index-scope-attr | ||
| 1067 | & text-relative-tab-stop-position-attr | ||
| 1068 | & attribute text:use-caption { boolean }? | ||
| 1069 | & attribute text:caption-sequence-name { \string }? | ||
| 1070 | & attribute text:caption-sequence-format { | ||
| 1071 | "text" | "category-and-value" | "caption" | ||
| 1072 | }? | ||
| 1073 | text-index-scope-attr = | ||
| 1074 | attribute text:index-scope { "document" | "chapter" }? | ||
| 1075 | text-relative-tab-stop-position-attr = | ||
| 1076 | attribute text:relative-tab-stop-position { boolean }? | ||
| 1077 | text-illustration-index-entry-template = | ||
| 1078 | element text:illustration-index-entry-template { | ||
| 1079 | text-illustration-index-entry-content | ||
| 1080 | } | ||
| 1081 | text-illustration-index-entry-content = | ||
| 1082 | text-illustration-index-entry-template-attrs, | ||
| 1083 | (text-index-entry-chapter | ||
| 1084 | | text-index-entry-page-number | ||
| 1085 | | text-index-entry-text | ||
| 1086 | | text-index-entry-span | ||
| 1087 | | text-index-entry-tab-stop)* | ||
| 1088 | text-illustration-index-entry-template-attrs = | ||
| 1089 | attribute text:style-name { styleNameRef } | ||
| 1090 | text-table-index = | ||
| 1091 | element text:table-index { | ||
| 1092 | common-section-attlist, text-table-index-source, text-index-body | ||
| 1093 | } | ||
| 1094 | text-table-index-source = | ||
| 1095 | element text:table-index-source { | ||
| 1096 | text-illustration-index-source-attrs, | ||
| 1097 | text-index-title-template?, | ||
| 1098 | text-table-index-entry-template? | ||
| 1099 | } | ||
| 1100 | text-table-index-entry-template = | ||
| 1101 | element text:table-index-entry-template { | ||
| 1102 | text-illustration-index-entry-content | ||
| 1103 | } | ||
| 1104 | text-object-index = | ||
| 1105 | element text:object-index { | ||
| 1106 | common-section-attlist, text-object-index-source, text-index-body | ||
| 1107 | } | ||
| 1108 | text-object-index-source = | ||
| 1109 | element text:object-index-source { | ||
| 1110 | text-object-index-source-attrs, | ||
| 1111 | text-index-title-template?, | ||
| 1112 | text-object-index-entry-template? | ||
| 1113 | } | ||
| 1114 | text-object-index-source-attrs = | ||
| 1115 | text-index-scope-attr | ||
| 1116 | & text-relative-tab-stop-position-attr | ||
| 1117 | & attribute text:use-spreadsheet-objects { boolean }? | ||
| 1118 | & attribute text:use-math-objects { boolean }? | ||
| 1119 | & attribute text:use-draw-objects { boolean }? | ||
| 1120 | & attribute text:use-chart-objects { boolean }? | ||
| 1121 | & attribute text:use-other-objects { boolean }? | ||
| 1122 | text-object-index-entry-template = | ||
| 1123 | element text:object-index-entry-template { | ||
| 1124 | text-illustration-index-entry-content | ||
| 1125 | } | ||
| 1126 | text-user-index = | ||
| 1127 | element text:user-index { | ||
| 1128 | common-section-attlist, text-user-index-source, text-index-body | ||
| 1129 | } | ||
| 1130 | text-user-index-source = | ||
| 1131 | element text:user-index-source { | ||
| 1132 | text-user-index-source-attr, | ||
| 1133 | text-index-title-template?, | ||
| 1134 | text-user-index-entry-template*, | ||
| 1135 | text-index-source-styles* | ||
| 1136 | } | ||
| 1137 | text-user-index-source-attr = | ||
| 1138 | text-index-scope-attr | ||
| 1139 | & text-relative-tab-stop-position-attr | ||
| 1140 | & attribute text:use-index-marks { boolean }? | ||
| 1141 | & attribute text:use-index-source-styles { boolean }? | ||
| 1142 | & attribute text:use-graphics { boolean }? | ||
| 1143 | & attribute text:use-tables { boolean }? | ||
| 1144 | & attribute text:use-floating-frames { boolean }? | ||
| 1145 | & attribute text:use-objects { boolean }? | ||
| 1146 | & attribute text:copy-outline-levels { boolean }? | ||
| 1147 | & attribute text:index-name { \string } | ||
| 1148 | text-user-index-entry-template = | ||
| 1149 | element text:user-index-entry-template { | ||
| 1150 | text-user-index-entry-template-attrs, | ||
| 1151 | (text-index-entry-chapter | ||
| 1152 | | text-index-entry-page-number | ||
| 1153 | | text-index-entry-text | ||
| 1154 | | text-index-entry-span | ||
| 1155 | | text-index-entry-tab-stop)* | ||
| 1156 | } | ||
| 1157 | text-user-index-entry-template-attrs = | ||
| 1158 | attribute text:outline-level { positiveInteger } | ||
| 1159 | & attribute text:style-name { styleNameRef } | ||
| 1160 | text-alphabetical-index = | ||
| 1161 | element text:alphabetical-index { | ||
| 1162 | common-section-attlist, | ||
| 1163 | text-alphabetical-index-source, | ||
| 1164 | text-index-body | ||
| 1165 | } | ||
| 1166 | text-alphabetical-index-source = | ||
| 1167 | element text:alphabetical-index-source { | ||
| 1168 | text-alphabetical-index-source-attrs, | ||
| 1169 | text-index-title-template?, | ||
| 1170 | text-alphabetical-index-entry-template* | ||
| 1171 | } | ||
| 1172 | text-alphabetical-index-source-attrs = | ||
| 1173 | text-index-scope-attr | ||
| 1174 | & text-relative-tab-stop-position-attr | ||
| 1175 | & attribute text:ignore-case { boolean }? | ||
| 1176 | & attribute text:main-entry-style-name { styleNameRef }? | ||
| 1177 | & attribute text:alphabetical-separators { boolean }? | ||
| 1178 | & attribute text:combine-entries { boolean }? | ||
| 1179 | & attribute text:combine-entries-with-dash { boolean }? | ||
| 1180 | & attribute text:combine-entries-with-pp { boolean }? | ||
| 1181 | & attribute text:use-keys-as-entries { boolean }? | ||
| 1182 | & attribute text:capitalize-entries { boolean }? | ||
| 1183 | & attribute text:comma-separated { boolean }? | ||
| 1184 | & attribute fo:language { languageCode }? | ||
| 1185 | & attribute fo:country { countryCode }? | ||
| 1186 | & attribute fo:script { scriptCode }? | ||
| 1187 | & attribute style:rfc-language-tag { language }? | ||
| 1188 | & attribute text:sort-algorithm { \string }? | ||
| 1189 | text-alphabetical-index-auto-mark-file = | ||
| 1190 | element text:alphabetical-index-auto-mark-file { | ||
| 1191 | attribute xlink:type { "simple" }, | ||
| 1192 | attribute xlink:href { anyIRI } | ||
| 1193 | } | ||
| 1194 | text-alphabetical-index-entry-template = | ||
| 1195 | element text:alphabetical-index-entry-template { | ||
| 1196 | text-alphabetical-index-entry-template-attrs, | ||
| 1197 | (text-index-entry-chapter | ||
| 1198 | | text-index-entry-page-number | ||
| 1199 | | text-index-entry-text | ||
| 1200 | | text-index-entry-span | ||
| 1201 | | text-index-entry-tab-stop)* | ||
| 1202 | } | ||
| 1203 | text-alphabetical-index-entry-template-attrs = | ||
| 1204 | attribute text:outline-level { "1" | "2" | "3" | "separator" } | ||
| 1205 | & attribute text:style-name { styleNameRef } | ||
| 1206 | text-bibliography = | ||
| 1207 | element text:bibliography { | ||
| 1208 | common-section-attlist, text-bibliography-source, text-index-body | ||
| 1209 | } | ||
| 1210 | text-bibliography-source = | ||
| 1211 | element text:bibliography-source { | ||
| 1212 | text-index-title-template?, text-bibliography-entry-template* | ||
| 1213 | } | ||
| 1214 | text-bibliography-entry-template = | ||
| 1215 | element text:bibliography-entry-template { | ||
| 1216 | text-bibliography-entry-template-attrs, | ||
| 1217 | (text-index-entry-span | ||
| 1218 | | text-index-entry-tab-stop | ||
| 1219 | | text-index-entry-bibliography)* | ||
| 1220 | } | ||
| 1221 | text-bibliography-entry-template-attrs = | ||
| 1222 | attribute text:bibliography-type { text-bibliography-types } | ||
| 1223 | & attribute text:style-name { styleNameRef } | ||
| 1224 | text-index-source-styles = | ||
| 1225 | element text:index-source-styles { | ||
| 1226 | attribute text:outline-level { positiveInteger }, | ||
| 1227 | text-index-source-style* | ||
| 1228 | } | ||
| 1229 | text-index-source-style = | ||
| 1230 | element text:index-source-style { | ||
| 1231 | attribute text:style-name { styleName }, | ||
| 1232 | empty | ||
| 1233 | } | ||
| 1234 | text-index-title-template = | ||
| 1235 | element text:index-title-template { | ||
| 1236 | attribute text:style-name { styleNameRef }?, | ||
| 1237 | text | ||
| 1238 | } | ||
| 1239 | text-index-entry-chapter = | ||
| 1240 | element text:index-entry-chapter { | ||
| 1241 | attribute text:style-name { styleNameRef }?, | ||
| 1242 | text-index-entry-chapter-attrs | ||
| 1243 | } | ||
| 1244 | text-index-entry-chapter-attrs = | ||
| 1245 | attribute text:display { | ||
| 1246 | "name" | ||
| 1247 | | "number" | ||
| 1248 | | "number-and-name" | ||
| 1249 | | "plain-number" | ||
| 1250 | | "plain-number-and-name" | ||
| 1251 | }? | ||
| 1252 | & attribute text:outline-level { positiveInteger }? | ||
| 1253 | text-index-entry-text = | ||
| 1254 | element text:index-entry-text { | ||
| 1255 | attribute text:style-name { styleNameRef }? | ||
| 1256 | } | ||
| 1257 | text-index-entry-page-number = | ||
| 1258 | element text:index-entry-page-number { | ||
| 1259 | attribute text:style-name { styleNameRef }? | ||
| 1260 | } | ||
| 1261 | text-index-entry-span = | ||
| 1262 | element text:index-entry-span { | ||
| 1263 | attribute text:style-name { styleNameRef }?, | ||
| 1264 | text | ||
| 1265 | } | ||
| 1266 | text-index-entry-bibliography = | ||
| 1267 | element text:index-entry-bibliography { | ||
| 1268 | text-index-entry-bibliography-attrs | ||
| 1269 | } | ||
| 1270 | text-index-entry-bibliography-attrs = | ||
| 1271 | attribute text:style-name { styleNameRef }? | ||
| 1272 | & attribute text:bibliography-data-field { | ||
| 1273 | "address" | ||
| 1274 | | "annote" | ||
| 1275 | | "author" | ||
| 1276 | | "bibliography-type" | ||
| 1277 | | "booktitle" | ||
| 1278 | | "chapter" | ||
| 1279 | | "custom1" | ||
| 1280 | | "custom2" | ||
| 1281 | | "custom3" | ||
| 1282 | | "custom4" | ||
| 1283 | | "custom5" | ||
| 1284 | | "edition" | ||
| 1285 | | "editor" | ||
| 1286 | | "howpublished" | ||
| 1287 | | "identifier" | ||
| 1288 | | "institution" | ||
| 1289 | | "isbn" | ||
| 1290 | | "issn" | ||
| 1291 | | "journal" | ||
| 1292 | | "month" | ||
| 1293 | | "note" | ||
| 1294 | | "number" | ||
| 1295 | | "organizations" | ||
| 1296 | | "pages" | ||
| 1297 | | "publisher" | ||
| 1298 | | "report-type" | ||
| 1299 | | "school" | ||
| 1300 | | "series" | ||
| 1301 | | "title" | ||
| 1302 | | "url" | ||
| 1303 | | "volume" | ||
| 1304 | | "year" | ||
| 1305 | } | ||
| 1306 | text-index-entry-tab-stop = | ||
| 1307 | element text:index-entry-tab-stop { | ||
| 1308 | attribute text:style-name { styleNameRef }?, | ||
| 1309 | text-index-entry-tab-stop-attrs | ||
| 1310 | } | ||
| 1311 | text-index-entry-tab-stop-attrs = | ||
| 1312 | attribute style:leader-char { character }? | ||
| 1313 | & (attribute style:type { "right" } | ||
| 1314 | | (attribute style:type { "left" }, | ||
| 1315 | attribute style:position { length })) | ||
| 1316 | text-index-entry-link-start = | ||
| 1317 | element text:index-entry-link-start { | ||
| 1318 | attribute text:style-name { styleNameRef }? | ||
| 1319 | } | ||
| 1320 | text-index-entry-link-end = | ||
| 1321 | element text:index-entry-link-end { | ||
| 1322 | attribute text:style-name { styleNameRef }? | ||
| 1323 | } | ||
| 1324 | table-table = | ||
| 1325 | element table:table { | ||
| 1326 | table-table-attlist, | ||
| 1327 | table-title?, | ||
| 1328 | table-desc?, | ||
| 1329 | table-table-source?, | ||
| 1330 | office-dde-source?, | ||
| 1331 | table-scenario?, | ||
| 1332 | office-forms?, | ||
| 1333 | table-shapes?, | ||
| 1334 | table-columns-and-groups, | ||
| 1335 | table-rows-and-groups, | ||
| 1336 | table-named-expressions? | ||
| 1337 | } | ||
| 1338 | table-columns-and-groups = | ||
| 1339 | (table-table-column-group | table-columns-no-group)+ | ||
| 1340 | table-columns-no-group = | ||
| 1341 | (table-columns, (table-table-header-columns, table-columns?)?) | ||
| 1342 | | (table-table-header-columns, table-columns?) | ||
| 1343 | table-columns = table-table-columns | table-table-column+ | ||
| 1344 | table-rows-and-groups = (table-table-row-group | table-rows-no-group)+ | ||
| 1345 | table-rows-no-group = | ||
| 1346 | (table-rows, (table-table-header-rows, table-rows?)?) | ||
| 1347 | | (table-table-header-rows, table-rows?) | ||
| 1348 | table-rows = | ||
| 1349 | table-table-rows | (text-soft-page-break?, table-table-row)+ | ||
| 1350 | table-table-attlist = | ||
| 1351 | attribute table:name { \string }? | ||
| 1352 | & attribute table:style-name { styleNameRef }? | ||
| 1353 | & attribute table:template-name { \string }? | ||
| 1354 | & attribute table:use-first-row-styles { boolean }? | ||
| 1355 | & attribute table:use-last-row-styles { boolean }? | ||
| 1356 | & attribute table:use-first-column-styles { boolean }? | ||
| 1357 | & attribute table:use-last-column-styles { boolean }? | ||
| 1358 | & attribute table:use-banding-rows-styles { boolean }? | ||
| 1359 | & attribute table:use-banding-columns-styles { boolean }? | ||
| 1360 | & attribute table:protected { boolean }? | ||
| 1361 | & attribute table:protection-key { \string }? | ||
| 1362 | & attribute table:protection-key-digest-algorithm { anyIRI }? | ||
| 1363 | & attribute table:print { boolean }? | ||
| 1364 | & attribute table:print-ranges { cellRangeAddressList }? | ||
| 1365 | & xml-id? | ||
| 1366 | & attribute table:is-sub-table { boolean }? | ||
| 1367 | table-title = element table:title { text } | ||
| 1368 | table-desc = element table:desc { text } | ||
| 1369 | table-table-row = | ||
| 1370 | element table:table-row { | ||
| 1371 | table-table-row-attlist, | ||
| 1372 | (table-table-cell | table-covered-table-cell)+ | ||
| 1373 | } | ||
| 1374 | table-table-row-attlist = | ||
| 1375 | attribute table:number-rows-repeated { positiveInteger }? | ||
| 1376 | & attribute table:style-name { styleNameRef }? | ||
| 1377 | & attribute table:default-cell-style-name { styleNameRef }? | ||
| 1378 | & attribute table:visibility { table-visibility-value }? | ||
| 1379 | & xml-id? | ||
| 1380 | table-visibility-value = "visible" | "collapse" | "filter" | ||
| 1381 | table-table-cell = | ||
| 1382 | element table:table-cell { | ||
| 1383 | table-table-cell-attlist, | ||
| 1384 | table-table-cell-attlist-extra, | ||
| 1385 | table-table-cell-content | ||
| 1386 | } | ||
| 1387 | table-covered-table-cell = | ||
| 1388 | element table:covered-table-cell { | ||
| 1389 | table-table-cell-attlist, table-table-cell-content | ||
| 1390 | } | ||
| 1391 | table-table-cell-content = | ||
| 1392 | table-cell-range-source?, | ||
| 1393 | office-annotation?, | ||
| 1394 | table-detective?, | ||
| 1395 | text-content* | ||
| 1396 | table-table-cell-attlist = | ||
| 1397 | attribute table:number-columns-repeated { positiveInteger }? | ||
| 1398 | & attribute table:style-name { styleNameRef }? | ||
| 1399 | & attribute table:content-validation-name { \string }? | ||
| 1400 | & attribute table:formula { \string }? | ||
| 1401 | & common-value-and-type-attlist? | ||
| 1402 | & attribute table:protect { boolean }? | ||
| 1403 | & attribute table:protected { boolean }? | ||
| 1404 | & xml-id? | ||
| 1405 | & common-in-content-meta-attlist? | ||
| 1406 | table-table-cell-attlist-extra = | ||
| 1407 | attribute table:number-columns-spanned { positiveInteger }? | ||
| 1408 | & attribute table:number-rows-spanned { positiveInteger }? | ||
| 1409 | & attribute table:number-matrix-columns-spanned { positiveInteger }? | ||
| 1410 | & attribute table:number-matrix-rows-spanned { positiveInteger }? | ||
| 1411 | table-table-column = | ||
| 1412 | element table:table-column { table-table-column-attlist, empty } | ||
| 1413 | table-table-column-attlist = | ||
| 1414 | attribute table:number-columns-repeated { positiveInteger }? | ||
| 1415 | & attribute table:style-name { styleNameRef }? | ||
| 1416 | & attribute table:visibility { table-visibility-value }? | ||
| 1417 | & attribute table:default-cell-style-name { styleNameRef }? | ||
| 1418 | & xml-id? | ||
| 1419 | table-table-header-columns = | ||
| 1420 | element table:table-header-columns { table-table-column+ } | ||
| 1421 | table-table-columns = | ||
| 1422 | element table:table-columns { table-table-column+ } | ||
| 1423 | table-table-column-group = | ||
| 1424 | element table:table-column-group { | ||
| 1425 | table-table-column-group-attlist, table-columns-and-groups | ||
| 1426 | } | ||
| 1427 | table-table-column-group-attlist = attribute table:display { boolean }? | ||
| 1428 | table-table-header-rows = | ||
| 1429 | element table:table-header-rows { | ||
| 1430 | (text-soft-page-break?, table-table-row)+ | ||
| 1431 | } | ||
| 1432 | table-table-rows = | ||
| 1433 | element table:table-rows { (text-soft-page-break?, table-table-row)+ } | ||
| 1434 | table-table-row-group = | ||
| 1435 | element table:table-row-group { | ||
| 1436 | table-table-row-group-attlist, table-rows-and-groups | ||
| 1437 | } | ||
| 1438 | table-table-row-group-attlist = attribute table:display { boolean }? | ||
| 1439 | cellAddress = | ||
| 1440 | xsd:string { | ||
| 1441 | pattern = "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+" | ||
| 1442 | } | ||
| 1443 | cellRangeAddress = | ||
| 1444 | xsd:string { | ||
| 1445 | pattern = | ||
| 1446 | "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+)?" | ||
| 1447 | } | ||
| 1448 | | xsd:string { | ||
| 1449 | pattern = | ||
| 1450 | "($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+:($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+" | ||
| 1451 | } | ||
| 1452 | | xsd:string { | ||
| 1453 | pattern = | ||
| 1454 | "($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+" | ||
| 1455 | } | ||
| 1456 | cellRangeAddressList = | ||
| 1457 | xsd:string | ||
| 1458 | >> dc:description [ | ||
| 1459 | 'Value is a space separated list of "cellRangeAddress" patterns' | ||
| 1460 | ] | ||
| 1461 | table-table-source = | ||
| 1462 | element table:table-source { | ||
| 1463 | table-table-source-attlist, table-linked-source-attlist, empty | ||
| 1464 | } | ||
| 1465 | table-table-source-attlist = | ||
| 1466 | attribute table:mode { "copy-all" | "copy-results-only" }? | ||
| 1467 | & attribute table:table-name { \string }? | ||
| 1468 | table-linked-source-attlist = | ||
| 1469 | attribute xlink:type { "simple" } | ||
| 1470 | & attribute xlink:href { anyIRI } | ||
| 1471 | & attribute xlink:actuate { "onRequest" }? | ||
| 1472 | & attribute table:filter-name { \string }? | ||
| 1473 | & attribute table:filter-options { \string }? | ||
| 1474 | & attribute table:refresh-delay { duration }? | ||
| 1475 | table-scenario = | ||
| 1476 | element table:scenario { table-scenario-attlist, empty } | ||
| 1477 | table-scenario-attlist = | ||
| 1478 | attribute table:scenario-ranges { cellRangeAddressList } | ||
| 1479 | & attribute table:is-active { boolean } | ||
| 1480 | & attribute table:display-border { boolean }? | ||
| 1481 | & attribute table:border-color { color }? | ||
| 1482 | & attribute table:copy-back { boolean }? | ||
| 1483 | & attribute table:copy-styles { boolean }? | ||
| 1484 | & attribute table:copy-formulas { boolean }? | ||
| 1485 | & attribute table:comment { \string }? | ||
| 1486 | & attribute table:protected { boolean }? | ||
| 1487 | table-shapes = element table:shapes { shape+ } | ||
| 1488 | table-cell-range-source = | ||
| 1489 | element table:cell-range-source { | ||
| 1490 | table-table-cell-range-source-attlist, | ||
| 1491 | table-linked-source-attlist, | ||
| 1492 | empty | ||
| 1493 | } | ||
| 1494 | table-table-cell-range-source-attlist = | ||
| 1495 | attribute table:name { \string } | ||
| 1496 | & attribute table:last-column-spanned { positiveInteger } | ||
| 1497 | & attribute table:last-row-spanned { positiveInteger } | ||
| 1498 | table-detective = | ||
| 1499 | element table:detective { table-highlighted-range*, table-operation* } | ||
| 1500 | table-operation = | ||
| 1501 | element table:operation { table-operation-attlist, empty } | ||
| 1502 | table-operation-attlist = | ||
| 1503 | attribute table:name { | ||
| 1504 | "trace-dependents" | ||
| 1505 | | "remove-dependents" | ||
| 1506 | | "trace-precedents" | ||
| 1507 | | "remove-precedents" | ||
| 1508 | | "trace-errors" | ||
| 1509 | } | ||
| 1510 | & attribute table:index { nonNegativeInteger } | ||
| 1511 | table-highlighted-range = | ||
| 1512 | element table:highlighted-range { | ||
| 1513 | (table-highlighted-range-attlist | ||
| 1514 | | table-highlighted-range-attlist-invalid), | ||
| 1515 | empty | ||
| 1516 | } | ||
| 1517 | table-highlighted-range-attlist = | ||
| 1518 | attribute table:cell-range-address { cellRangeAddress }? | ||
| 1519 | & attribute table:direction { | ||
| 1520 | "from-another-table" | "to-another-table" | "from-same-table" | ||
| 1521 | } | ||
| 1522 | & attribute table:contains-error { boolean }? | ||
| 1523 | table-highlighted-range-attlist-invalid = | ||
| 1524 | attribute table:marked-invalid { boolean } | ||
| 1525 | office-spreadsheet-attlist = | ||
| 1526 | attribute table:structure-protected { boolean }?, | ||
| 1527 | attribute table:protection-key { \string }?, | ||
| 1528 | attribute table:protection-key-digest-algorithm { anyIRI }? | ||
| 1529 | table-calculation-settings = | ||
| 1530 | element table:calculation-settings { | ||
| 1531 | table-calculation-setting-attlist, | ||
| 1532 | table-null-date?, | ||
| 1533 | table-iteration? | ||
| 1534 | } | ||
| 1535 | table-calculation-setting-attlist = | ||
| 1536 | attribute table:case-sensitive { boolean }? | ||
| 1537 | & attribute table:precision-as-shown { boolean }? | ||
| 1538 | & attribute table:search-criteria-must-apply-to-whole-cell { | ||
| 1539 | boolean | ||
| 1540 | }? | ||
| 1541 | & attribute table:automatic-find-labels { boolean }? | ||
| 1542 | & attribute table:use-regular-expressions { boolean }? | ||
| 1543 | & attribute table:use-wildcards { boolean }? | ||
| 1544 | & attribute table:null-year { positiveInteger }? | ||
| 1545 | table-null-date = | ||
| 1546 | element table:null-date { | ||
| 1547 | attribute table:value-type { "date" }?, | ||
| 1548 | attribute table:date-value { date }?, | ||
| 1549 | empty | ||
| 1550 | } | ||
| 1551 | table-iteration = | ||
| 1552 | element table:iteration { | ||
| 1553 | attribute table:status { "enable" | "disable" }?, | ||
| 1554 | attribute table:steps { positiveInteger }?, | ||
| 1555 | attribute table:maximum-difference { double }?, | ||
| 1556 | empty | ||
| 1557 | } | ||
| 1558 | table-content-validations = | ||
| 1559 | element table:content-validations { table-content-validation+ } | ||
| 1560 | table-content-validation = | ||
| 1561 | element table:content-validation { | ||
| 1562 | table-validation-attlist, | ||
| 1563 | table-help-message?, | ||
| 1564 | (table-error-message | (table-error-macro, office-event-listeners))? | ||
| 1565 | } | ||
| 1566 | table-validation-attlist = | ||
| 1567 | attribute table:name { \string } | ||
| 1568 | & attribute table:condition { \string }? | ||
| 1569 | & attribute table:base-cell-address { cellAddress }? | ||
| 1570 | & attribute table:allow-empty-cell { boolean }? | ||
| 1571 | & attribute table:display-list { | ||
| 1572 | "none" | "unsorted" | "sort-ascending" | ||
| 1573 | }? | ||
| 1574 | table-help-message = | ||
| 1575 | element table:help-message { | ||
| 1576 | attribute table:title { \string }?, | ||
| 1577 | attribute table:display { boolean }?, | ||
| 1578 | text-p* | ||
| 1579 | } | ||
| 1580 | table-error-message = | ||
| 1581 | element table:error-message { | ||
| 1582 | attribute table:title { \string }?, | ||
| 1583 | attribute table:display { boolean }?, | ||
| 1584 | attribute table:message-type { | ||
| 1585 | "stop" | "warning" | "information" | ||
| 1586 | }?, | ||
| 1587 | text-p* | ||
| 1588 | } | ||
| 1589 | table-error-macro = | ||
| 1590 | element table:error-macro { | ||
| 1591 | attribute table:execute { boolean }? | ||
| 1592 | } | ||
| 1593 | table-label-ranges = element table:label-ranges { table-label-range* } | ||
| 1594 | table-label-range = | ||
| 1595 | element table:label-range { table-label-range-attlist, empty } | ||
| 1596 | table-label-range-attlist = | ||
| 1597 | attribute table:label-cell-range-address { cellRangeAddress } | ||
| 1598 | & attribute table:data-cell-range-address { cellRangeAddress } | ||
| 1599 | & attribute table:orientation { "column" | "row" } | ||
| 1600 | table-named-expressions = | ||
| 1601 | element table:named-expressions { | ||
| 1602 | (table-named-range | table-named-expression)* | ||
| 1603 | } | ||
| 1604 | table-named-range = | ||
| 1605 | element table:named-range { table-named-range-attlist, empty } | ||
| 1606 | table-named-range-attlist = | ||
| 1607 | attribute table:name { \string }, | ||
| 1608 | attribute table:cell-range-address { cellRangeAddress }, | ||
| 1609 | attribute table:base-cell-address { cellAddress }?, | ||
| 1610 | attribute table:range-usable-as { | ||
| 1611 | "none" | ||
| 1612 | | list { | ||
| 1613 | ("print-range" | "filter" | "repeat-row" | "repeat-column")+ | ||
| 1614 | } | ||
| 1615 | }? | ||
| 1616 | table-named-expression = | ||
| 1617 | element table:named-expression { | ||
| 1618 | table-named-expression-attlist, empty | ||
| 1619 | } | ||
| 1620 | table-named-expression-attlist = | ||
| 1621 | attribute table:name { \string }, | ||
| 1622 | attribute table:expression { \string }, | ||
| 1623 | attribute table:base-cell-address { cellAddress }? | ||
| 1624 | table-database-ranges = | ||
| 1625 | element table:database-ranges { table-database-range* } | ||
| 1626 | table-database-range = | ||
| 1627 | element table:database-range { | ||
| 1628 | table-database-range-attlist, | ||
| 1629 | (table-database-source-sql | ||
| 1630 | | table-database-source-table | ||
| 1631 | | table-database-source-query)?, | ||
| 1632 | table-filter?, | ||
| 1633 | table-sort?, | ||
| 1634 | table-subtotal-rules? | ||
| 1635 | } | ||
| 1636 | table-database-range-attlist = | ||
| 1637 | attribute table:name { \string }? | ||
| 1638 | & attribute table:is-selection { boolean }? | ||
| 1639 | & attribute table:on-update-keep-styles { boolean }? | ||
| 1640 | & attribute table:on-update-keep-size { boolean }? | ||
| 1641 | & attribute table:has-persistent-data { boolean }? | ||
| 1642 | & attribute table:orientation { "column" | "row" }? | ||
| 1643 | & attribute table:contains-header { boolean }? | ||
| 1644 | & attribute table:display-filter-buttons { boolean }? | ||
| 1645 | & attribute table:target-range-address { cellRangeAddress } | ||
| 1646 | & attribute table:refresh-delay { boolean }? | ||
| 1647 | table-database-source-sql = | ||
| 1648 | element table:database-source-sql { | ||
| 1649 | table-database-source-sql-attlist, empty | ||
| 1650 | } | ||
| 1651 | table-database-source-sql-attlist = | ||
| 1652 | attribute table:database-name { \string } | ||
| 1653 | & attribute table:sql-statement { \string } | ||
| 1654 | & attribute table:parse-sql-statement { boolean }? | ||
| 1655 | table-database-source-query = | ||
| 1656 | element table:database-source-table { | ||
| 1657 | table-database-source-table-attlist, empty | ||
| 1658 | } | ||
| 1659 | table-database-source-table-attlist = | ||
| 1660 | attribute table:database-name { \string } | ||
| 1661 | & attribute table:database-table-name { \string } | ||
| 1662 | table-database-source-table = | ||
| 1663 | element table:database-source-query { | ||
| 1664 | table-database-source-query-attlist, empty | ||
| 1665 | } | ||
| 1666 | table-database-source-query-attlist = | ||
| 1667 | attribute table:database-name { \string } | ||
| 1668 | & attribute table:query-name { \string } | ||
| 1669 | table-sort = element table:sort { table-sort-attlist, table-sort-by+ } | ||
| 1670 | table-sort-attlist = | ||
| 1671 | attribute table:bind-styles-to-content { boolean }? | ||
| 1672 | & attribute table:target-range-address { cellRangeAddress }? | ||
| 1673 | & attribute table:case-sensitive { boolean }? | ||
| 1674 | & attribute table:language { languageCode }? | ||
| 1675 | & attribute table:country { countryCode }? | ||
| 1676 | & attribute table:script { scriptCode }? | ||
| 1677 | & attribute table:rfc-language-tag { language }? | ||
| 1678 | & attribute table:algorithm { \string }? | ||
| 1679 | & attribute table:embedded-number-behavior { | ||
| 1680 | "alpha-numeric" | "integer" | "double" | ||
| 1681 | }? | ||
| 1682 | table-sort-by = element table:sort-by { table-sort-by-attlist, empty } | ||
| 1683 | table-sort-by-attlist = | ||
| 1684 | attribute table:field-number { nonNegativeInteger } | ||
| 1685 | & attribute table:data-type { | ||
| 1686 | "text" | "number" | "automatic" | \string | ||
| 1687 | }? | ||
| 1688 | & attribute table:order { "ascending" | "descending" }? | ||
| 1689 | table-subtotal-rules = | ||
| 1690 | element table:subtotal-rules { | ||
| 1691 | table-subtotal-rules-attlist, | ||
| 1692 | table-sort-groups?, | ||
| 1693 | table-subtotal-rule* | ||
| 1694 | } | ||
| 1695 | table-subtotal-rules-attlist = | ||
| 1696 | attribute table:bind-styles-to-content { boolean }? | ||
| 1697 | & attribute table:case-sensitive { boolean }? | ||
| 1698 | & attribute table:page-breaks-on-group-change { boolean }? | ||
| 1699 | table-sort-groups = | ||
| 1700 | element table:sort-groups { table-sort-groups-attlist, empty } | ||
| 1701 | table-sort-groups-attlist = | ||
| 1702 | attribute table:data-type { | ||
| 1703 | "text" | "number" | "automatic" | \string | ||
| 1704 | }? | ||
| 1705 | & attribute table:order { "ascending" | "descending" }? | ||
| 1706 | table-subtotal-rule = | ||
| 1707 | element table:subtotal-rule { | ||
| 1708 | table-subtotal-rule-attlist, table-subtotal-field* | ||
| 1709 | } | ||
| 1710 | table-subtotal-rule-attlist = | ||
| 1711 | attribute table:group-by-field-number { nonNegativeInteger } | ||
| 1712 | table-subtotal-field = | ||
| 1713 | element table:subtotal-field { table-subtotal-field-attlist, empty } | ||
| 1714 | table-subtotal-field-attlist = | ||
| 1715 | attribute table:field-number { nonNegativeInteger } | ||
| 1716 | & attribute table:function { | ||
| 1717 | "average" | ||
| 1718 | | "count" | ||
| 1719 | | "countnums" | ||
| 1720 | | "max" | ||
| 1721 | | "min" | ||
| 1722 | | "product" | ||
| 1723 | | "stdev" | ||
| 1724 | | "stdevp" | ||
| 1725 | | "sum" | ||
| 1726 | | "var" | ||
| 1727 | | "varp" | ||
| 1728 | | \string | ||
| 1729 | } | ||
| 1730 | table-filter = | ||
| 1731 | element table:filter { | ||
| 1732 | table-filter-attlist, | ||
| 1733 | (table-filter-condition | table-filter-and | table-filter-or) | ||
| 1734 | } | ||
| 1735 | table-filter-attlist = | ||
| 1736 | attribute table:target-range-address { cellRangeAddress }? | ||
| 1737 | & attribute table:condition-source { "self" | "cell-range" }? | ||
| 1738 | & attribute table:condition-source-range-address { cellRangeAddress }? | ||
| 1739 | & attribute table:display-duplicates { boolean }? | ||
| 1740 | table-filter-and = | ||
| 1741 | element table:filter-and { | ||
| 1742 | (table-filter-or | table-filter-condition)+ | ||
| 1743 | } | ||
| 1744 | table-filter-or = | ||
| 1745 | element table:filter-or { | ||
| 1746 | (table-filter-and | table-filter-condition)+ | ||
| 1747 | } | ||
| 1748 | table-filter-condition = | ||
| 1749 | element table:filter-condition { | ||
| 1750 | table-filter-condition-attlist, table-filter-set-item* | ||
| 1751 | } | ||
| 1752 | table-filter-condition-attlist = | ||
| 1753 | attribute table:field-number { nonNegativeInteger } | ||
| 1754 | & attribute table:value { \string | double } | ||
| 1755 | & attribute table:operator { \string } | ||
| 1756 | & attribute table:case-sensitive { \string }? | ||
| 1757 | & attribute table:data-type { "text" | "number" }? | ||
| 1758 | table-filter-set-item = | ||
| 1759 | element table:filter-set-item { | ||
| 1760 | attribute table:value { \string }, | ||
| 1761 | empty | ||
| 1762 | } | ||
| 1763 | table-data-pilot-tables = | ||
| 1764 | element table:data-pilot-tables { table-data-pilot-table* } | ||
| 1765 | table-data-pilot-table = | ||
| 1766 | element table:data-pilot-table { | ||
| 1767 | table-data-pilot-table-attlist, | ||
| 1768 | (table-database-source-sql | ||
| 1769 | | table-database-source-table | ||
| 1770 | | table-database-source-query | ||
| 1771 | | table-source-service | ||
| 1772 | | table-source-cell-range)?, | ||
| 1773 | table-data-pilot-field+ | ||
| 1774 | } | ||
| 1775 | table-data-pilot-table-attlist = | ||
| 1776 | attribute table:name { \string } | ||
| 1777 | & attribute table:application-data { \string }? | ||
| 1778 | & attribute table:grand-total { "none" | "row" | "column" | "both" }? | ||
| 1779 | & attribute table:ignore-empty-rows { boolean }? | ||
| 1780 | & attribute table:identify-categories { boolean }? | ||
| 1781 | & attribute table:target-range-address { cellRangeAddress } | ||
| 1782 | & attribute table:buttons { cellRangeAddressList }? | ||
| 1783 | & attribute table:show-filter-button { boolean }? | ||
| 1784 | & attribute table:drill-down-on-double-click { boolean }? | ||
| 1785 | table-source-cell-range = | ||
| 1786 | element table:source-cell-range { | ||
| 1787 | table-source-cell-range-attlist, table-filter? | ||
| 1788 | } | ||
| 1789 | table-source-cell-range-attlist = | ||
| 1790 | attribute table:cell-range-address { cellRangeAddress } | ||
| 1791 | table-source-service = | ||
| 1792 | element table:source-service { table-source-service-attlist, empty } | ||
| 1793 | table-source-service-attlist = | ||
| 1794 | attribute table:name { \string } | ||
| 1795 | & attribute table:source-name { \string } | ||
| 1796 | & attribute table:object-name { \string } | ||
| 1797 | & attribute table:user-name { \string }? | ||
| 1798 | & attribute table:password { \string }? | ||
| 1799 | table-data-pilot-field = | ||
| 1800 | element table:data-pilot-field { | ||
| 1801 | table-data-pilot-field-attlist, | ||
| 1802 | table-data-pilot-level?, | ||
| 1803 | table-data-pilot-field-reference?, | ||
| 1804 | table-data-pilot-groups? | ||
| 1805 | } | ||
| 1806 | table-data-pilot-field-attlist = | ||
| 1807 | attribute table:source-field-name { \string } | ||
| 1808 | & (attribute table:orientation { | ||
| 1809 | "row" | "column" | "data" | "hidden" | ||
| 1810 | } | ||
| 1811 | | (attribute table:orientation { "page" }, | ||
| 1812 | attribute table:selected-page { \string })) | ||
| 1813 | & attribute table:is-data-layout-field { \string }? | ||
| 1814 | & attribute table:function { | ||
| 1815 | "auto" | ||
| 1816 | | "average" | ||
| 1817 | | "count" | ||
| 1818 | | "countnums" | ||
| 1819 | | "max" | ||
| 1820 | | "min" | ||
| 1821 | | "product" | ||
| 1822 | | "stdev" | ||
| 1823 | | "stdevp" | ||
| 1824 | | "sum" | ||
| 1825 | | "var" | ||
| 1826 | | "varp" | ||
| 1827 | | \string | ||
| 1828 | }? | ||
| 1829 | & attribute table:used-hierarchy { integer }? | ||
| 1830 | table-data-pilot-level = | ||
| 1831 | element table:data-pilot-level { | ||
| 1832 | table-data-pilot-level-attlist, | ||
| 1833 | table-data-pilot-subtotals?, | ||
| 1834 | table-data-pilot-members?, | ||
| 1835 | table-data-pilot-display-info?, | ||
| 1836 | table-data-pilot-sort-info?, | ||
| 1837 | table-data-pilot-layout-info? | ||
| 1838 | } | ||
| 1839 | table-data-pilot-level-attlist = attribute table:show-empty { boolean }? | ||
| 1840 | table-data-pilot-subtotals = | ||
| 1841 | element table:data-pilot-subtotals { table-data-pilot-subtotal* } | ||
| 1842 | table-data-pilot-subtotal = | ||
| 1843 | element table:data-pilot-subtotal { | ||
| 1844 | table-data-pilot-subtotal-attlist, empty | ||
| 1845 | } | ||
| 1846 | table-data-pilot-subtotal-attlist = | ||
| 1847 | attribute table:function { | ||
| 1848 | "auto" | ||
| 1849 | | "average" | ||
| 1850 | | "count" | ||
| 1851 | | "countnums" | ||
| 1852 | | "max" | ||
| 1853 | | "min" | ||
| 1854 | | "product" | ||
| 1855 | | "stdev" | ||
| 1856 | | "stdevp" | ||
| 1857 | | "sum" | ||
| 1858 | | "var" | ||
| 1859 | | "varp" | ||
| 1860 | | \string | ||
| 1861 | } | ||
| 1862 | table-data-pilot-members = | ||
| 1863 | element table:data-pilot-members { table-data-pilot-member* } | ||
| 1864 | table-data-pilot-member = | ||
| 1865 | element table:data-pilot-member { | ||
| 1866 | table-data-pilot-member-attlist, empty | ||
| 1867 | } | ||
| 1868 | table-data-pilot-member-attlist = | ||
| 1869 | attribute table:name { \string } | ||
| 1870 | & attribute table:display { boolean }? | ||
| 1871 | & attribute table:show-details { boolean }? | ||
| 1872 | table-data-pilot-display-info = | ||
| 1873 | element table:data-pilot-display-info { | ||
| 1874 | table-data-pilot-display-info-attlist, empty | ||
| 1875 | } | ||
| 1876 | table-data-pilot-display-info-attlist = | ||
| 1877 | attribute table:enabled { boolean } | ||
| 1878 | & attribute table:data-field { \string } | ||
| 1879 | & attribute table:member-count { nonNegativeInteger } | ||
| 1880 | & attribute table:display-member-mode { "from-top" | "from-bottom" } | ||
| 1881 | table-data-pilot-sort-info = | ||
| 1882 | element table:data-pilot-sort-info { | ||
| 1883 | table-data-pilot-sort-info-attlist, empty | ||
| 1884 | } | ||
| 1885 | table-data-pilot-sort-info-attlist = | ||
| 1886 | ((attribute table:sort-mode { "data" }, | ||
| 1887 | attribute table:data-field { \string }) | ||
| 1888 | | attribute table:sort-mode { "none" | "manual" | "name" }) | ||
| 1889 | & attribute table:order { "ascending" | "descending" } | ||
| 1890 | table-data-pilot-layout-info = | ||
| 1891 | element table:data-pilot-layout-info { | ||
| 1892 | table-data-pilot-layout-info-attlist, empty | ||
| 1893 | } | ||
| 1894 | table-data-pilot-layout-info-attlist = | ||
| 1895 | attribute table:layout-mode { | ||
| 1896 | "tabular-layout" | ||
| 1897 | | "outline-subtotals-top" | ||
| 1898 | | "outline-subtotals-bottom" | ||
| 1899 | } | ||
| 1900 | & attribute table:add-empty-lines { boolean } | ||
| 1901 | table-data-pilot-field-reference = | ||
| 1902 | element table:data-pilot-field-reference { | ||
| 1903 | table-data-pilot-field-reference-attlist | ||
| 1904 | } | ||
| 1905 | table-data-pilot-field-reference-attlist = | ||
| 1906 | attribute table:field-name { \string } | ||
| 1907 | & ((attribute table:member-type { "named" }, | ||
| 1908 | attribute table:member-name { \string }) | ||
| 1909 | | attribute table:member-type { "previous" | "next" }) | ||
| 1910 | & attribute table:type { | ||
| 1911 | "none" | ||
| 1912 | | "member-difference" | ||
| 1913 | | "member-percentage" | ||
| 1914 | | "member-percentage-difference" | ||
| 1915 | | "running-total" | ||
| 1916 | | "row-percentage" | ||
| 1917 | | "column-percentage" | ||
| 1918 | | "total-percentage" | ||
| 1919 | | "index" | ||
| 1920 | } | ||
| 1921 | table-data-pilot-groups = | ||
| 1922 | element table:data-pilot-groups { | ||
| 1923 | table-data-pilot-groups-attlist, table-data-pilot-group+ | ||
| 1924 | } | ||
| 1925 | table-data-pilot-groups-attlist = | ||
| 1926 | attribute table:source-field-name { \string } | ||
| 1927 | & (attribute table:date-start { dateOrDateTime | "auto" } | ||
| 1928 | | attribute table:start { double | "auto" }) | ||
| 1929 | & (attribute table:date-end { dateOrDateTime | "auto" } | ||
| 1930 | | attribute table:end { double | "auto" }) | ||
| 1931 | & attribute table:step { double } | ||
| 1932 | & attribute table:grouped-by { | ||
| 1933 | "seconds" | ||
| 1934 | | "minutes" | ||
| 1935 | | "hours" | ||
| 1936 | | "days" | ||
| 1937 | | "months" | ||
| 1938 | | "quarters" | ||
| 1939 | | "years" | ||
| 1940 | } | ||
| 1941 | table-data-pilot-group = | ||
| 1942 | element table:data-pilot-group { | ||
| 1943 | table-data-pilot-group-attlist, table-data-pilot-group-member+ | ||
| 1944 | } | ||
| 1945 | table-data-pilot-group-attlist = attribute table:name { \string } | ||
| 1946 | table-data-pilot-group-member = | ||
| 1947 | element table:data-pilot-group-member { | ||
| 1948 | table-data-pilot-group-member-attlist | ||
| 1949 | } | ||
| 1950 | table-data-pilot-group-member-attlist = attribute table:name { \string } | ||
| 1951 | table-consolidation = | ||
| 1952 | element table:consolidation { table-consolidation-attlist, empty } | ||
| 1953 | table-consolidation-attlist = | ||
| 1954 | attribute table:function { | ||
| 1955 | "average" | ||
| 1956 | | "count" | ||
| 1957 | | "countnums" | ||
| 1958 | | "max" | ||
| 1959 | | "min" | ||
| 1960 | | "product" | ||
| 1961 | | "stdev" | ||
| 1962 | | "stdevp" | ||
| 1963 | | "sum" | ||
| 1964 | | "var" | ||
| 1965 | | "varp" | ||
| 1966 | | \string | ||
| 1967 | } | ||
| 1968 | & attribute table:source-cell-range-addresses { cellRangeAddressList } | ||
| 1969 | & attribute table:target-cell-address { cellAddress } | ||
| 1970 | & attribute table:use-labels { "none" | "row" | "column" | "both" }? | ||
| 1971 | & attribute table:link-to-source-data { boolean }? | ||
| 1972 | table-dde-links = element table:dde-links { table-dde-link+ } | ||
| 1973 | table-tracked-changes = | ||
| 1974 | element table:tracked-changes { | ||
| 1975 | table-tracked-changes-attlist, | ||
| 1976 | (table-cell-content-change | ||
| 1977 | | table-insertion | ||
| 1978 | | table-deletion | ||
| 1979 | | table-movement)* | ||
| 1980 | } | ||
| 1981 | table-tracked-changes-attlist = | ||
| 1982 | attribute table:track-changes { boolean }? | ||
| 1983 | table-insertion = | ||
| 1984 | element table:insertion { | ||
| 1985 | table-insertion-attlist, | ||
| 1986 | common-table-change-attlist, | ||
| 1987 | office-change-info, | ||
| 1988 | table-dependencies?, | ||
| 1989 | table-deletions? | ||
| 1990 | } | ||
| 1991 | table-insertion-attlist = | ||
| 1992 | attribute table:type { "row" | "column" | "table" } | ||
| 1993 | & attribute table:position { integer } | ||
| 1994 | & attribute table:count { positiveInteger }? | ||
| 1995 | & attribute table:table { integer }? | ||
| 1996 | table-dependencies = element table:dependencies { table-dependency+ } | ||
| 1997 | table-dependency = | ||
| 1998 | element table:dependency { | ||
| 1999 | attribute table:id { \string }, | ||
| 2000 | empty | ||
| 2001 | } | ||
| 2002 | table-deletions = | ||
| 2003 | element table:deletions { | ||
| 2004 | (table-cell-content-deletion | table-change-deletion)+ | ||
| 2005 | } | ||
| 2006 | table-cell-content-deletion = | ||
| 2007 | element table:cell-content-deletion { | ||
| 2008 | attribute table:id { \string }?, | ||
| 2009 | table-cell-address?, | ||
| 2010 | table-change-track-table-cell? | ||
| 2011 | } | ||
| 2012 | table-change-deletion = | ||
| 2013 | element table:change-deletion { | ||
| 2014 | attribute table:id { \string }?, | ||
| 2015 | empty | ||
| 2016 | } | ||
| 2017 | table-deletion = | ||
| 2018 | element table:deletion { | ||
| 2019 | table-deletion-attlist, | ||
| 2020 | common-table-change-attlist, | ||
| 2021 | office-change-info, | ||
| 2022 | table-dependencies?, | ||
| 2023 | table-deletions?, | ||
| 2024 | table-cut-offs? | ||
| 2025 | } | ||
| 2026 | table-deletion-attlist = | ||
| 2027 | attribute table:type { "row" | "column" | "table" } | ||
| 2028 | & attribute table:position { integer } | ||
| 2029 | & attribute table:table { integer }? | ||
| 2030 | & attribute table:multi-deletion-spanned { integer }? | ||
| 2031 | table-cut-offs = | ||
| 2032 | element table:cut-offs { | ||
| 2033 | table-movement-cut-off+ | ||
| 2034 | | (table-insertion-cut-off, table-movement-cut-off*) | ||
| 2035 | } | ||
| 2036 | table-insertion-cut-off = | ||
| 2037 | element table:insertion-cut-off { | ||
| 2038 | table-insertion-cut-off-attlist, empty | ||
| 2039 | } | ||
| 2040 | table-insertion-cut-off-attlist = | ||
| 2041 | attribute table:id { \string } | ||
| 2042 | & attribute table:position { integer } | ||
| 2043 | table-movement-cut-off = | ||
| 2044 | element table:movement-cut-off { | ||
| 2045 | table-movement-cut-off-attlist, empty | ||
| 2046 | } | ||
| 2047 | table-movement-cut-off-attlist = | ||
| 2048 | attribute table:position { integer } | ||
| 2049 | | (attribute table:start-position { integer }, | ||
| 2050 | attribute table:end-position { integer }) | ||
| 2051 | table-movement = | ||
| 2052 | element table:movement { | ||
| 2053 | common-table-change-attlist, | ||
| 2054 | table-source-range-address, | ||
| 2055 | table-target-range-address, | ||
| 2056 | office-change-info, | ||
| 2057 | table-dependencies?, | ||
| 2058 | table-deletions? | ||
| 2059 | } | ||
| 2060 | table-source-range-address = | ||
| 2061 | element table:source-range-address { | ||
| 2062 | common-table-range-attlist, empty | ||
| 2063 | } | ||
| 2064 | table-target-range-address = | ||
| 2065 | element table:target-range-address { | ||
| 2066 | common-table-range-attlist, empty | ||
| 2067 | } | ||
| 2068 | common-table-range-attlist = | ||
| 2069 | common-table-cell-address-attlist | ||
| 2070 | | common-table-cell-range-address-attlist | ||
| 2071 | common-table-cell-address-attlist = | ||
| 2072 | attribute table:column { integer }, | ||
| 2073 | attribute table:row { integer }, | ||
| 2074 | attribute table:table { integer } | ||
| 2075 | common-table-cell-range-address-attlist = | ||
| 2076 | attribute table:start-column { integer }, | ||
| 2077 | attribute table:start-row { integer }, | ||
| 2078 | attribute table:start-table { integer }, | ||
| 2079 | attribute table:end-column { integer }, | ||
| 2080 | attribute table:end-row { integer }, | ||
| 2081 | attribute table:end-table { integer } | ||
| 2082 | table-change-track-table-cell = | ||
| 2083 | element table:change-track-table-cell { | ||
| 2084 | table-change-track-table-cell-attlist, text-p* | ||
| 2085 | } | ||
| 2086 | table-change-track-table-cell-attlist = | ||
| 2087 | attribute table:cell-address { cellAddress }? | ||
| 2088 | & attribute table:matrix-covered { boolean }? | ||
| 2089 | & attribute table:formula { \string }? | ||
| 2090 | & attribute table:number-matrix-columns-spanned { positiveInteger }? | ||
| 2091 | & attribute table:number-matrix-rows-spanned { positiveInteger }? | ||
| 2092 | & common-value-and-type-attlist? | ||
| 2093 | table-cell-content-change = | ||
| 2094 | element table:cell-content-change { | ||
| 2095 | common-table-change-attlist, | ||
| 2096 | table-cell-address, | ||
| 2097 | office-change-info, | ||
| 2098 | table-dependencies?, | ||
| 2099 | table-deletions?, | ||
| 2100 | table-previous | ||
| 2101 | } | ||
| 2102 | table-cell-address = | ||
| 2103 | element table:cell-address { | ||
| 2104 | common-table-cell-address-attlist, empty | ||
| 2105 | } | ||
| 2106 | table-previous = | ||
| 2107 | element table:previous { | ||
| 2108 | attribute table:id { \string }?, | ||
| 2109 | table-change-track-table-cell | ||
| 2110 | } | ||
| 2111 | common-table-change-attlist = | ||
| 2112 | attribute table:id { \string } | ||
| 2113 | & attribute table:acceptance-state { | ||
| 2114 | "accepted" | "rejected" | "pending" | ||
| 2115 | }? | ||
| 2116 | & attribute table:rejecting-change-id { \string }? | ||
| 2117 | style-handout-master = | ||
| 2118 | element style:handout-master { | ||
| 2119 | common-presentation-header-footer-attlist, | ||
| 2120 | style-handout-master-attlist, | ||
| 2121 | shape* | ||
| 2122 | } | ||
| 2123 | style-handout-master-attlist = | ||
| 2124 | attribute presentation:presentation-page-layout-name { styleNameRef }? | ||
| 2125 | & attribute style:page-layout-name { styleNameRef } | ||
| 2126 | & attribute draw:style-name { styleNameRef }? | ||
| 2127 | draw-layer-set = element draw:layer-set { draw-layer* } | ||
| 2128 | draw-layer = | ||
| 2129 | element draw:layer { draw-layer-attlist, svg-title?, svg-desc? } | ||
| 2130 | draw-layer-attlist = | ||
| 2131 | attribute draw:name { \string } | ||
| 2132 | & attribute draw:protected { boolean }? | ||
| 2133 | & attribute draw:display { "always" | "screen" | "printer" | "none" }? | ||
| 2134 | draw-page = | ||
| 2135 | element draw:page { | ||
| 2136 | common-presentation-header-footer-attlist, | ||
| 2137 | draw-page-attlist, | ||
| 2138 | svg-title?, | ||
| 2139 | svg-desc?, | ||
| 2140 | draw-layer-set?, | ||
| 2141 | office-forms?, | ||
| 2142 | shape*, | ||
| 2143 | (presentation-animations | animation-element)?, | ||
| 2144 | presentation-notes? | ||
| 2145 | } | ||
| 2146 | draw-page-attlist = | ||
| 2147 | attribute draw:name { \string }? | ||
| 2148 | & attribute draw:style-name { styleNameRef }? | ||
| 2149 | & attribute draw:master-page-name { styleNameRef } | ||
| 2150 | & attribute presentation:presentation-page-layout-name { | ||
| 2151 | styleNameRef | ||
| 2152 | }? | ||
| 2153 | & (xml-id, | ||
| 2154 | attribute draw:id { NCName }?)? | ||
| 2155 | & attribute draw:nav-order { IDREFS }? | ||
| 2156 | common-presentation-header-footer-attlist = | ||
| 2157 | attribute presentation:use-header-name { \string }? | ||
| 2158 | & attribute presentation:use-footer-name { \string }? | ||
| 2159 | & attribute presentation:use-date-time-name { \string }? | ||
| 2160 | shape = shape-instance | draw-a | ||
| 2161 | shape-instance = | ||
| 2162 | draw-rect | ||
| 2163 | | draw-line | ||
| 2164 | | draw-polyline | ||
| 2165 | | draw-polygon | ||
| 2166 | | draw-regular-polygon | ||
| 2167 | | draw-path | ||
| 2168 | | draw-circle | ||
| 2169 | | draw-ellipse | ||
| 2170 | | draw-g | ||
| 2171 | | draw-page-thumbnail | ||
| 2172 | | draw-frame | ||
| 2173 | | draw-measure | ||
| 2174 | | draw-caption | ||
| 2175 | | draw-connector | ||
| 2176 | | draw-control | ||
| 2177 | | dr3d-scene | ||
| 2178 | | draw-custom-shape | ||
| 2179 | draw-rect = | ||
| 2180 | element draw:rect { | ||
| 2181 | draw-rect-attlist, | ||
| 2182 | common-draw-position-attlist, | ||
| 2183 | common-draw-size-attlist, | ||
| 2184 | common-draw-shape-with-text-and-styles-attlist, | ||
| 2185 | common-draw-caption-id-attlist, | ||
| 2186 | svg-title?, | ||
| 2187 | svg-desc?, | ||
| 2188 | office-event-listeners?, | ||
| 2189 | draw-glue-point*, | ||
| 2190 | draw-text | ||
| 2191 | } | ||
| 2192 | draw-rect-attlist = | ||
| 2193 | attribute draw:corner-radius { nonNegativeLength }? | ||
| 2194 | | (attribute svg:rx { nonNegativeLength }?, | ||
| 2195 | attribute svg:ry { nonNegativeLength }?) | ||
| 2196 | draw-line = | ||
| 2197 | element draw:line { | ||
| 2198 | draw-line-attlist, | ||
| 2199 | common-draw-shape-with-text-and-styles-attlist, | ||
| 2200 | common-draw-caption-id-attlist, | ||
| 2201 | svg-title?, | ||
| 2202 | svg-desc?, | ||
| 2203 | office-event-listeners?, | ||
| 2204 | draw-glue-point*, | ||
| 2205 | draw-text | ||
| 2206 | } | ||
| 2207 | draw-line-attlist = | ||
| 2208 | attribute svg:x1 { coordinate } | ||
| 2209 | & attribute svg:y1 { coordinate } | ||
| 2210 | & attribute svg:x2 { coordinate } | ||
| 2211 | & attribute svg:y2 { coordinate } | ||
| 2212 | draw-polyline = | ||
| 2213 | element draw:polyline { | ||
| 2214 | common-draw-points-attlist, | ||
| 2215 | common-draw-position-attlist, | ||
| 2216 | common-draw-size-attlist, | ||
| 2217 | common-draw-viewbox-attlist, | ||
| 2218 | common-draw-shape-with-text-and-styles-attlist, | ||
| 2219 | common-draw-caption-id-attlist, | ||
| 2220 | svg-title?, | ||
| 2221 | svg-desc?, | ||
| 2222 | office-event-listeners?, | ||
| 2223 | draw-glue-point*, | ||
| 2224 | draw-text | ||
| 2225 | } | ||
| 2226 | common-draw-points-attlist = attribute draw:points { points } | ||
| 2227 | draw-polygon = | ||
| 2228 | element draw:polygon { | ||
| 2229 | common-draw-points-attlist, | ||
| 2230 | common-draw-position-attlist, | ||
| 2231 | common-draw-size-attlist, | ||
| 2232 | common-draw-viewbox-attlist, | ||
| 2233 | common-draw-shape-with-text-and-styles-attlist, | ||
| 2234 | common-draw-caption-id-attlist, | ||
| 2235 | svg-title?, | ||
| 2236 | svg-desc?, | ||
| 2237 | office-event-listeners?, | ||
| 2238 | draw-glue-point*, | ||
| 2239 | draw-text | ||
| 2240 | } | ||
| 2241 | draw-regular-polygon = | ||
| 2242 | element draw:regular-polygon { | ||
| 2243 | draw-regular-polygon-attlist, | ||
| 2244 | common-draw-position-attlist, | ||
| 2245 | common-draw-size-attlist, | ||
| 2246 | common-draw-shape-with-text-and-styles-attlist, | ||
| 2247 | common-draw-caption-id-attlist, | ||
| 2248 | svg-title?, | ||
| 2249 | svg-desc?, | ||
| 2250 | office-event-listeners?, | ||
| 2251 | draw-glue-point*, | ||
| 2252 | draw-text | ||
| 2253 | } | ||
| 2254 | draw-regular-polygon-attlist = | ||
| 2255 | (attribute draw:concave { "false" } | ||
| 2256 | | (attribute draw:concave { "true" }, | ||
| 2257 | draw-regular-polygon-sharpness-attlist)) | ||
| 2258 | & attribute draw:corners { positiveInteger } | ||
| 2259 | draw-regular-polygon-sharpness-attlist = | ||
| 2260 | attribute draw:sharpness { percent } | ||
| 2261 | draw-path = | ||
| 2262 | element draw:path { | ||
| 2263 | common-draw-path-data-attlist, | ||
| 2264 | common-draw-position-attlist, | ||
| 2265 | common-draw-size-attlist, | ||
| 2266 | common-draw-viewbox-attlist, | ||
| 2267 | common-draw-shape-with-text-and-styles-attlist, | ||
| 2268 | common-draw-caption-id-attlist, | ||
| 2269 | svg-title?, | ||
| 2270 | svg-desc?, | ||
| 2271 | office-event-listeners?, | ||
| 2272 | draw-glue-point*, | ||
| 2273 | draw-text | ||
| 2274 | } | ||
| 2275 | common-draw-path-data-attlist = attribute svg:d { pathData } | ||
| 2276 | draw-circle = | ||
| 2277 | element draw:circle { | ||
| 2278 | ((draw-circle-attlist, common-draw-circle-ellipse-pos-attlist) | ||
| 2279 | | (common-draw-position-attlist, common-draw-size-attlist)), | ||
| 2280 | common-draw-circle-ellipse-attlist, | ||
| 2281 | common-draw-shape-with-text-and-styles-attlist, | ||
| 2282 | common-draw-caption-id-attlist, | ||
| 2283 | svg-title?, | ||
| 2284 | svg-desc?, | ||
| 2285 | office-event-listeners?, | ||
| 2286 | draw-glue-point*, | ||
| 2287 | draw-text | ||
| 2288 | } | ||
| 2289 | common-draw-circle-ellipse-pos-attlist = | ||
| 2290 | attribute svg:cx { coordinate }, | ||
| 2291 | attribute svg:cy { coordinate } | ||
| 2292 | draw-circle-attlist = attribute svg:r { length } | ||
| 2293 | common-draw-circle-ellipse-attlist = | ||
| 2294 | attribute draw:kind { "full" | "section" | "cut" | "arc" }? | ||
| 2295 | & attribute draw:start-angle { angle }? | ||
| 2296 | & attribute draw:end-angle { angle }? | ||
| 2297 | draw-ellipse = | ||
| 2298 | element draw:ellipse { | ||
| 2299 | ((draw-ellipse-attlist, common-draw-circle-ellipse-pos-attlist) | ||
| 2300 | | (common-draw-position-attlist, common-draw-size-attlist)), | ||
| 2301 | common-draw-circle-ellipse-attlist, | ||
| 2302 | common-draw-shape-with-text-and-styles-attlist, | ||
| 2303 | common-draw-caption-id-attlist, | ||
| 2304 | svg-title?, | ||
| 2305 | svg-desc?, | ||
| 2306 | office-event-listeners?, | ||
| 2307 | draw-glue-point*, | ||
| 2308 | draw-text | ||
| 2309 | } | ||
| 2310 | draw-ellipse-attlist = | ||
| 2311 | attribute svg:rx { length }, | ||
| 2312 | attribute svg:ry { length } | ||
| 2313 | draw-connector = | ||
| 2314 | element draw:connector { | ||
| 2315 | draw-connector-attlist, | ||
| 2316 | common-draw-shape-with-text-and-styles-attlist, | ||
| 2317 | common-draw-caption-id-attlist, | ||
| 2318 | common-draw-viewbox-attlist, | ||
| 2319 | svg-title?, | ||
| 2320 | svg-desc?, | ||
| 2321 | office-event-listeners?, | ||
| 2322 | draw-glue-point*, | ||
| 2323 | draw-text | ||
| 2324 | } | ||
| 2325 | draw-connector-attlist = | ||
| 2326 | attribute draw:type { "standard" | "lines" | "line" | "curve" }? | ||
| 2327 | & (attribute svg:x1 { coordinate }, | ||
| 2328 | attribute svg:y1 { coordinate })? | ||
| 2329 | & attribute draw:start-shape { IDREF }? | ||
| 2330 | & attribute draw:start-glue-point { nonNegativeInteger }? | ||
| 2331 | & (attribute svg:x2 { coordinate }, | ||
| 2332 | attribute svg:y2 { coordinate })? | ||
| 2333 | & attribute draw:end-shape { IDREF }? | ||
| 2334 | & attribute draw:end-glue-point { nonNegativeInteger }? | ||
| 2335 | & attribute draw:line-skew { | ||
| 2336 | list { length, (length, length?)? } | ||
| 2337 | }? | ||
| 2338 | & attribute svg:d { pathData }? | ||
| 2339 | draw-caption = | ||
| 2340 | element draw:caption { | ||
| 2341 | draw-caption-attlist, | ||
| 2342 | common-draw-position-attlist, | ||
| 2343 | common-draw-size-attlist, | ||
| 2344 | common-draw-shape-with-text-and-styles-attlist, | ||
| 2345 | common-draw-caption-id-attlist, | ||
| 2346 | svg-title?, | ||
| 2347 | svg-desc?, | ||
| 2348 | office-event-listeners?, | ||
| 2349 | draw-glue-point*, | ||
| 2350 | draw-text | ||
| 2351 | } | ||
| 2352 | draw-caption-attlist = | ||
| 2353 | (attribute draw:caption-point-x { coordinate }, | ||
| 2354 | attribute draw:caption-point-y { coordinate })? | ||
| 2355 | & attribute draw:corner-radius { nonNegativeLength }? | ||
| 2356 | draw-measure = | ||
| 2357 | element draw:measure { | ||
| 2358 | draw-measure-attlist, | ||
| 2359 | common-draw-shape-with-text-and-styles-attlist, | ||
| 2360 | common-draw-caption-id-attlist, | ||
| 2361 | svg-title?, | ||
| 2362 | svg-desc?, | ||
| 2363 | office-event-listeners?, | ||
| 2364 | draw-glue-point*, | ||
| 2365 | draw-text | ||
| 2366 | } | ||
| 2367 | draw-measure-attlist = | ||
| 2368 | attribute svg:x1 { coordinate } | ||
| 2369 | & attribute svg:y1 { coordinate } | ||
| 2370 | & attribute svg:x2 { coordinate } | ||
| 2371 | & attribute svg:y2 { coordinate } | ||
| 2372 | draw-control = | ||
| 2373 | element draw:control { | ||
| 2374 | draw-control-attlist, | ||
| 2375 | common-draw-position-attlist, | ||
| 2376 | common-draw-size-attlist, | ||
| 2377 | common-draw-shape-with-text-and-styles-attlist, | ||
| 2378 | common-draw-caption-id-attlist, | ||
| 2379 | svg-title?, | ||
| 2380 | svg-desc?, | ||
| 2381 | draw-glue-point* | ||
| 2382 | } | ||
| 2383 | draw-control-attlist = attribute draw:control { IDREF } | ||
| 2384 | draw-page-thumbnail = | ||
| 2385 | element draw:page-thumbnail { | ||
| 2386 | draw-page-thumbnail-attlist, | ||
| 2387 | common-draw-position-attlist, | ||
| 2388 | common-draw-size-attlist, | ||
| 2389 | presentation-shape-attlist, | ||
| 2390 | common-draw-shape-with-styles-attlist, | ||
| 2391 | common-draw-caption-id-attlist, | ||
| 2392 | svg-title?, | ||
| 2393 | svg-desc? | ||
| 2394 | } | ||
| 2395 | draw-page-thumbnail-attlist = | ||
| 2396 | attribute draw:page-number { positiveInteger }? | ||
| 2397 | draw-g = | ||
| 2398 | element draw:g { | ||
| 2399 | draw-g-attlist, | ||
| 2400 | common-draw-z-index-attlist, | ||
| 2401 | common-draw-name-attlist, | ||
| 2402 | common-draw-id-attlist, | ||
| 2403 | common-draw-style-name-attlist, | ||
| 2404 | common-text-spreadsheet-shape-attlist, | ||
| 2405 | common-draw-caption-id-attlist, | ||
| 2406 | svg-title?, | ||
| 2407 | svg-desc?, | ||
| 2408 | office-event-listeners?, | ||
| 2409 | draw-glue-point*, | ||
| 2410 | shape* | ||
| 2411 | } | ||
| 2412 | draw-g-attlist = attribute svg:y { coordinate }? | ||
| 2413 | common-draw-name-attlist = attribute draw:name { \string }? | ||
| 2414 | common-draw-caption-id-attlist = attribute draw:caption-id { IDREF }? | ||
| 2415 | common-draw-position-attlist = | ||
| 2416 | attribute svg:x { coordinate }?, | ||
| 2417 | attribute svg:y { coordinate }? | ||
| 2418 | common-draw-size-attlist = | ||
| 2419 | attribute svg:width { length }?, | ||
| 2420 | attribute svg:height { length }? | ||
| 2421 | common-draw-transform-attlist = attribute draw:transform { \string }? | ||
| 2422 | common-draw-viewbox-attlist = | ||
| 2423 | attribute svg:viewBox { | ||
| 2424 | list { integer, integer, integer, integer } | ||
| 2425 | } | ||
| 2426 | common-draw-style-name-attlist = | ||
| 2427 | (attribute draw:style-name { styleNameRef }?, | ||
| 2428 | attribute draw:class-names { styleNameRefs }?) | ||
| 2429 | | (attribute presentation:style-name { styleNameRef }?, | ||
| 2430 | attribute presentation:class-names { styleNameRefs }?) | ||
| 2431 | common-draw-text-style-name-attlist = | ||
| 2432 | attribute draw:text-style-name { styleNameRef }? | ||
| 2433 | common-draw-layer-name-attlist = attribute draw:layer { \string }? | ||
| 2434 | common-draw-id-attlist = | ||
| 2435 | (xml-id, | ||
| 2436 | attribute draw:id { NCName }?)? | ||
| 2437 | common-draw-z-index-attlist = | ||
| 2438 | attribute draw:z-index { nonNegativeInteger }? | ||
| 2439 | common-text-spreadsheet-shape-attlist = | ||
| 2440 | attribute table:end-cell-address { cellAddress }? | ||
| 2441 | & attribute table:end-x { coordinate }? | ||
| 2442 | & attribute table:end-y { coordinate }? | ||
| 2443 | & attribute table:table-background { boolean }? | ||
| 2444 | & common-text-anchor-attlist | ||
| 2445 | common-text-anchor-attlist = | ||
| 2446 | attribute text:anchor-type { | ||
| 2447 | "page" | "frame" | "paragraph" | "char" | "as-char" | ||
| 2448 | }? | ||
| 2449 | & attribute text:anchor-page-number { positiveInteger }? | ||
| 2450 | draw-text = (text-p | text-list)* | ||
| 2451 | common-draw-shape-with-styles-attlist = | ||
| 2452 | common-draw-z-index-attlist, | ||
| 2453 | common-draw-id-attlist, | ||
| 2454 | common-draw-layer-name-attlist, | ||
| 2455 | common-draw-style-name-attlist, | ||
| 2456 | common-draw-transform-attlist, | ||
| 2457 | common-draw-name-attlist, | ||
| 2458 | common-text-spreadsheet-shape-attlist | ||
| 2459 | common-draw-shape-with-text-and-styles-attlist = | ||
| 2460 | common-draw-shape-with-styles-attlist, | ||
| 2461 | common-draw-text-style-name-attlist | ||
| 2462 | draw-glue-point = | ||
| 2463 | element draw:glue-point { draw-glue-point-attlist, empty } | ||
| 2464 | draw-glue-point-attlist = | ||
| 2465 | attribute draw:id { nonNegativeInteger } | ||
| 2466 | & attribute svg:x { distance | percent } | ||
| 2467 | & attribute svg:y { distance | percent } | ||
| 2468 | & attribute draw:align { | ||
| 2469 | "top-left" | ||
| 2470 | | "top" | ||
| 2471 | | "top-right" | ||
| 2472 | | "left" | ||
| 2473 | | "center" | ||
| 2474 | | "right" | ||
| 2475 | | "bottom-left" | ||
| 2476 | | "bottom-right" | ||
| 2477 | }? | ||
| 2478 | & attribute draw:escape-direction { | ||
| 2479 | "auto" | ||
| 2480 | | "left" | ||
| 2481 | | "right" | ||
| 2482 | | "up" | ||
| 2483 | | "down" | ||
| 2484 | | "horizontal" | ||
| 2485 | | "vertical" | ||
| 2486 | } | ||
| 2487 | svg-title = element svg:title { text } | ||
| 2488 | svg-desc = element svg:desc { text } | ||
| 2489 | draw-frame = | ||
| 2490 | element draw:frame { | ||
| 2491 | common-draw-shape-with-text-and-styles-attlist, | ||
| 2492 | common-draw-position-attlist, | ||
| 2493 | common-draw-rel-size-attlist, | ||
| 2494 | common-draw-caption-id-attlist, | ||
| 2495 | presentation-shape-attlist, | ||
| 2496 | draw-frame-attlist, | ||
| 2497 | (draw-text-box | ||
| 2498 | | draw-image | ||
| 2499 | | draw-object | ||
| 2500 | | draw-object-ole | ||
| 2501 | | draw-applet | ||
| 2502 | | draw-floating-frame | ||
| 2503 | | draw-plugin | ||
| 2504 | | table-table)*, | ||
| 2505 | office-event-listeners?, | ||
| 2506 | draw-glue-point*, | ||
| 2507 | draw-image-map?, | ||
| 2508 | svg-title?, | ||
| 2509 | svg-desc?, | ||
| 2510 | (draw-contour-polygon | draw-contour-path)? | ||
| 2511 | } | ||
| 2512 | common-draw-rel-size-attlist = | ||
| 2513 | common-draw-size-attlist, | ||
| 2514 | attribute style:rel-width { percent | "scale" | "scale-min" }?, | ||
| 2515 | attribute style:rel-height { percent | "scale" | "scale-min" }? | ||
| 2516 | draw-frame-attlist = attribute draw:copy-of { \string }? | ||
| 2517 | draw-text-box = | ||
| 2518 | element draw:text-box { draw-text-box-attlist, text-content* } | ||
| 2519 | draw-text-box-attlist = | ||
| 2520 | attribute draw:chain-next-name { \string }? | ||
| 2521 | & attribute draw:corner-radius { nonNegativeLength }? | ||
| 2522 | & attribute fo:min-height { length | percent }? | ||
| 2523 | & attribute fo:min-width { length | percent }? | ||
| 2524 | & attribute fo:max-height { length | percent }? | ||
| 2525 | & attribute fo:max-width { length | percent }? | ||
| 2526 | & (xml-id, | ||
| 2527 | attribute text:id { NCName }?)? | ||
| 2528 | draw-image = | ||
| 2529 | element draw:image { | ||
| 2530 | draw-image-attlist, | ||
| 2531 | (common-draw-data-attlist | office-binary-data), | ||
| 2532 | draw-text | ||
| 2533 | } | ||
| 2534 | common-draw-data-attlist = | ||
| 2535 | attribute xlink:type { "simple" }, | ||
| 2536 | attribute xlink:href { anyIRI }, | ||
| 2537 | attribute xlink:show { "embed" }?, | ||
| 2538 | attribute xlink:actuate { "onLoad" }? | ||
| 2539 | office-binary-data = element office:binary-data { base64Binary } | ||
| 2540 | draw-image-attlist = | ||
| 2541 | attribute draw:filter-name { \string }? | ||
| 2542 | & xml-id? | ||
| 2543 | draw-object = | ||
| 2544 | element draw:object { | ||
| 2545 | draw-object-attlist, | ||
| 2546 | (common-draw-data-attlist | office-document | math-math) | ||
| 2547 | } | ||
| 2548 | draw-object-ole = | ||
| 2549 | element draw:object-ole { | ||
| 2550 | draw-object-ole-attlist, | ||
| 2551 | (common-draw-data-attlist | office-binary-data) | ||
| 2552 | } | ||
| 2553 | draw-object-attlist = | ||
| 2554 | attribute draw:notify-on-update-of-ranges { | ||
| 2555 | cellRangeAddressList | \string | ||
| 2556 | }? | ||
| 2557 | & xml-id? | ||
| 2558 | draw-object-ole-attlist = | ||
| 2559 | attribute draw:class-id { \string }? | ||
| 2560 | & xml-id? | ||
| 2561 | draw-applet = | ||
| 2562 | element draw:applet { | ||
| 2563 | draw-applet-attlist, common-draw-data-attlist?, draw-param* | ||
| 2564 | } | ||
| 2565 | draw-applet-attlist = | ||
| 2566 | attribute draw:code { \string }? | ||
| 2567 | & attribute draw:object { \string }? | ||
| 2568 | & attribute draw:archive { \string }? | ||
| 2569 | & attribute draw:may-script { boolean }? | ||
| 2570 | & xml-id? | ||
| 2571 | draw-plugin = | ||
| 2572 | element draw:plugin { | ||
| 2573 | draw-plugin-attlist, common-draw-data-attlist, draw-param* | ||
| 2574 | } | ||
| 2575 | draw-plugin-attlist = | ||
| 2576 | attribute draw:mime-type { \string }? | ||
| 2577 | & xml-id? | ||
| 2578 | draw-param = element draw:param { draw-param-attlist, empty } | ||
| 2579 | draw-param-attlist = | ||
| 2580 | attribute draw:name { \string }? | ||
| 2581 | & attribute draw:value { \string }? | ||
| 2582 | draw-floating-frame = | ||
| 2583 | element draw:floating-frame { | ||
| 2584 | draw-floating-frame-attlist, common-draw-data-attlist | ||
| 2585 | } | ||
| 2586 | draw-floating-frame-attlist = | ||
| 2587 | attribute draw:frame-name { \string }? | ||
| 2588 | & xml-id? | ||
| 2589 | draw-contour-polygon = | ||
| 2590 | element draw:contour-polygon { | ||
| 2591 | common-contour-attlist, | ||
| 2592 | common-draw-size-attlist, | ||
| 2593 | common-draw-viewbox-attlist, | ||
| 2594 | common-draw-points-attlist, | ||
| 2595 | empty | ||
| 2596 | } | ||
| 2597 | draw-contour-path = | ||
| 2598 | element draw:contour-path { | ||
| 2599 | common-contour-attlist, | ||
| 2600 | common-draw-size-attlist, | ||
| 2601 | common-draw-viewbox-attlist, | ||
| 2602 | common-draw-path-data-attlist, | ||
| 2603 | empty | ||
| 2604 | } | ||
| 2605 | common-contour-attlist = attribute draw:recreate-on-edit { boolean } | ||
| 2606 | draw-a = element draw:a { draw-a-attlist, shape-instance } | ||
| 2607 | draw-a-attlist = | ||
| 2608 | attribute xlink:type { "simple" } | ||
| 2609 | & attribute xlink:href { anyIRI } | ||
| 2610 | & attribute xlink:actuate { "onRequest" }? | ||
| 2611 | & attribute office:target-frame-name { targetFrameName }? | ||
| 2612 | & attribute xlink:show { "new" | "replace" }? | ||
| 2613 | & attribute office:name { \string }? | ||
| 2614 | & attribute office:title { \string }? | ||
| 2615 | & attribute office:server-map { boolean }? | ||
| 2616 | & xml-id? | ||
| 2617 | draw-image-map = | ||
| 2618 | element draw:image-map { | ||
| 2619 | (draw-area-rectangle | draw-area-circle | draw-area-polygon)* | ||
| 2620 | } | ||
| 2621 | draw-area-rectangle = | ||
| 2622 | element draw:area-rectangle { | ||
| 2623 | common-draw-area-attlist, | ||
| 2624 | attribute svg:x { coordinate }, | ||
| 2625 | attribute svg:y { coordinate }, | ||
| 2626 | attribute svg:width { length }, | ||
| 2627 | attribute svg:height { length }, | ||
| 2628 | svg-title?, | ||
| 2629 | svg-desc?, | ||
| 2630 | office-event-listeners? | ||
| 2631 | } | ||
| 2632 | draw-area-circle = | ||
| 2633 | element draw:area-circle { | ||
| 2634 | common-draw-area-attlist, | ||
| 2635 | attribute svg:cx { coordinate }, | ||
| 2636 | attribute svg:cy { coordinate }, | ||
| 2637 | attribute svg:r { length }, | ||
| 2638 | svg-title?, | ||
| 2639 | svg-desc?, | ||
| 2640 | office-event-listeners? | ||
| 2641 | } | ||
| 2642 | draw-area-polygon = | ||
| 2643 | element draw:area-polygon { | ||
| 2644 | common-draw-area-attlist, | ||
| 2645 | attribute svg:x { coordinate }, | ||
| 2646 | attribute svg:y { coordinate }, | ||
| 2647 | attribute svg:width { length }, | ||
| 2648 | attribute svg:height { length }, | ||
| 2649 | common-draw-viewbox-attlist, | ||
| 2650 | common-draw-points-attlist, | ||
| 2651 | svg-title?, | ||
| 2652 | svg-desc?, | ||
| 2653 | office-event-listeners? | ||
| 2654 | } | ||
| 2655 | common-draw-area-attlist = | ||
| 2656 | (attribute xlink:type { "simple" }, | ||
| 2657 | attribute xlink:href { anyIRI }, | ||
| 2658 | attribute office:target-frame-name { targetFrameName }?, | ||
| 2659 | attribute xlink:show { "new" | "replace" }?)? | ||
| 2660 | & attribute office:name { \string }? | ||
| 2661 | & attribute draw:nohref { "nohref" }? | ||
| 2662 | dr3d-scene = | ||
| 2663 | element dr3d:scene { | ||
| 2664 | dr3d-scene-attlist, | ||
| 2665 | common-draw-position-attlist, | ||
| 2666 | common-draw-size-attlist, | ||
| 2667 | common-draw-style-name-attlist, | ||
| 2668 | common-draw-z-index-attlist, | ||
| 2669 | common-draw-id-attlist, | ||
| 2670 | common-draw-layer-name-attlist, | ||
| 2671 | common-text-spreadsheet-shape-attlist, | ||
| 2672 | common-dr3d-transform-attlist, | ||
| 2673 | common-draw-caption-id-attlist, | ||
| 2674 | svg-title?, | ||
| 2675 | svg-desc?, | ||
| 2676 | dr3d-light*, | ||
| 2677 | shapes3d*, | ||
| 2678 | draw-glue-point* | ||
| 2679 | } | ||
| 2680 | shapes3d = | ||
| 2681 | dr3d-scene | dr3d-extrude | dr3d-sphere | dr3d-rotate | dr3d-cube | ||
| 2682 | dr3d-scene-attlist = | ||
| 2683 | attribute dr3d:vrp { vector3D }? | ||
| 2684 | & attribute dr3d:vpn { vector3D }? | ||
| 2685 | & attribute dr3d:vup { vector3D }? | ||
| 2686 | & attribute dr3d:projection { "parallel" | "perspective" }? | ||
| 2687 | & attribute dr3d:distance { length }? | ||
| 2688 | & attribute dr3d:focal-length { length }? | ||
| 2689 | & attribute dr3d:shadow-slant { angle }? | ||
| 2690 | & attribute dr3d:shade-mode { | ||
| 2691 | "flat" | "phong" | "gouraud" | "draft" | ||
| 2692 | }? | ||
| 2693 | & attribute dr3d:ambient-color { color }? | ||
| 2694 | & attribute dr3d:lighting-mode { boolean }? | ||
| 2695 | common-dr3d-transform-attlist = attribute dr3d:transform { \string }? | ||
| 2696 | dr3d-light = element dr3d:light { dr3d-light-attlist, empty } | ||
| 2697 | dr3d-light-attlist = | ||
| 2698 | attribute dr3d:diffuse-color { color }? | ||
| 2699 | & attribute dr3d:direction { vector3D } | ||
| 2700 | & attribute dr3d:enabled { boolean }? | ||
| 2701 | & attribute dr3d:specular { boolean }? | ||
| 2702 | dr3d-cube = | ||
| 2703 | element dr3d:cube { | ||
| 2704 | dr3d-cube-attlist, | ||
| 2705 | common-draw-z-index-attlist, | ||
| 2706 | common-draw-id-attlist, | ||
| 2707 | common-draw-layer-name-attlist, | ||
| 2708 | common-draw-style-name-attlist, | ||
| 2709 | common-dr3d-transform-attlist, | ||
| 2710 | empty | ||
| 2711 | } | ||
| 2712 | dr3d-cube-attlist = | ||
| 2713 | attribute dr3d:min-edge { vector3D }?, | ||
| 2714 | attribute dr3d:max-edge { vector3D }? | ||
| 2715 | dr3d-sphere = | ||
| 2716 | element dr3d:sphere { | ||
| 2717 | dr3d-sphere-attlist, | ||
| 2718 | common-draw-z-index-attlist, | ||
| 2719 | common-draw-id-attlist, | ||
| 2720 | common-draw-layer-name-attlist, | ||
| 2721 | common-draw-style-name-attlist, | ||
| 2722 | common-dr3d-transform-attlist, | ||
| 2723 | empty | ||
| 2724 | } | ||
| 2725 | dr3d-sphere-attlist = | ||
| 2726 | attribute dr3d:center { vector3D }? | ||
| 2727 | & attribute dr3d:size { vector3D }? | ||
| 2728 | dr3d-extrude = | ||
| 2729 | element dr3d:extrude { | ||
| 2730 | common-draw-path-data-attlist, | ||
| 2731 | common-draw-viewbox-attlist, | ||
| 2732 | common-draw-id-attlist, | ||
| 2733 | common-draw-z-index-attlist, | ||
| 2734 | common-draw-layer-name-attlist, | ||
| 2735 | common-draw-style-name-attlist, | ||
| 2736 | common-dr3d-transform-attlist, | ||
| 2737 | empty | ||
| 2738 | } | ||
| 2739 | dr3d-rotate = | ||
| 2740 | element dr3d:rotate { | ||
| 2741 | common-draw-viewbox-attlist, | ||
| 2742 | common-draw-path-data-attlist, | ||
| 2743 | common-draw-z-index-attlist, | ||
| 2744 | common-draw-id-attlist, | ||
| 2745 | common-draw-layer-name-attlist, | ||
| 2746 | common-draw-style-name-attlist, | ||
| 2747 | common-dr3d-transform-attlist, | ||
| 2748 | empty | ||
| 2749 | } | ||
| 2750 | draw-custom-shape = | ||
| 2751 | element draw:custom-shape { | ||
| 2752 | draw-custom-shape-attlist, | ||
| 2753 | common-draw-position-attlist, | ||
| 2754 | common-draw-size-attlist, | ||
| 2755 | common-draw-shape-with-text-and-styles-attlist, | ||
| 2756 | common-draw-caption-id-attlist, | ||
| 2757 | svg-title?, | ||
| 2758 | svg-desc?, | ||
| 2759 | office-event-listeners?, | ||
| 2760 | draw-glue-point*, | ||
| 2761 | draw-text, | ||
| 2762 | draw-enhanced-geometry? | ||
| 2763 | } | ||
| 2764 | draw-custom-shape-attlist = | ||
| 2765 | attribute draw:engine { namespacedToken }? | ||
| 2766 | & attribute draw:data { \string }? | ||
| 2767 | draw-enhanced-geometry = | ||
| 2768 | element draw:enhanced-geometry { | ||
| 2769 | draw-enhanced-geometry-attlist, draw-equation*, draw-handle* | ||
| 2770 | } | ||
| 2771 | draw-enhanced-geometry-attlist = | ||
| 2772 | attribute draw:type { custom-shape-type }? | ||
| 2773 | & attribute svg:viewBox { | ||
| 2774 | list { integer, integer, integer, integer } | ||
| 2775 | }? | ||
| 2776 | & attribute draw:mirror-vertical { boolean }? | ||
| 2777 | & attribute draw:mirror-horizontal { boolean }? | ||
| 2778 | & attribute draw:text-rotate-angle { angle }? | ||
| 2779 | & attribute draw:extrusion-allowed { boolean }? | ||
| 2780 | & attribute draw:text-path-allowed { boolean }? | ||
| 2781 | & attribute draw:concentric-gradient-fill-allowed { boolean }? | ||
| 2782 | & attribute draw:extrusion { boolean }? | ||
| 2783 | & attribute draw:extrusion-brightness { zeroToHundredPercent }? | ||
| 2784 | & attribute draw:extrusion-depth { | ||
| 2785 | list { length, double } | ||
| 2786 | }? | ||
| 2787 | & attribute draw:extrusion-diffusion { percent }? | ||
| 2788 | & attribute draw:extrusion-number-of-line-segments { integer }? | ||
| 2789 | & attribute draw:extrusion-light-face { boolean }? | ||
| 2790 | & attribute draw:extrusion-first-light-harsh { boolean }? | ||
| 2791 | & attribute draw:extrusion-second-light-harsh { boolean }? | ||
| 2792 | & attribute draw:extrusion-first-light-level { zeroToHundredPercent }? | ||
| 2793 | & attribute draw:extrusion-second-light-level { | ||
| 2794 | zeroToHundredPercent | ||
| 2795 | }? | ||
| 2796 | & attribute draw:extrusion-first-light-direction { vector3D }? | ||
| 2797 | & attribute draw:extrusion-second-light-direction { vector3D }? | ||
| 2798 | & attribute draw:extrusion-metal { boolean }? | ||
| 2799 | & attribute dr3d:shade-mode { | ||
| 2800 | "flat" | "phong" | "gouraud" | "draft" | ||
| 2801 | }? | ||
| 2802 | & attribute draw:extrusion-rotation-angle { | ||
| 2803 | list { angle, angle } | ||
| 2804 | }? | ||
| 2805 | & attribute draw:extrusion-rotation-center { vector3D }? | ||
| 2806 | & attribute draw:extrusion-shininess { zeroToHundredPercent }? | ||
| 2807 | & attribute draw:extrusion-skew { | ||
| 2808 | list { double, angle } | ||
| 2809 | }? | ||
| 2810 | & attribute draw:extrusion-specularity { zeroToHundredPercent }? | ||
| 2811 | & attribute dr3d:projection { "parallel" | "perspective" }? | ||
| 2812 | & attribute draw:extrusion-viewpoint { point3D }? | ||
| 2813 | & attribute draw:extrusion-origin { | ||
| 2814 | list { extrusionOrigin, extrusionOrigin } | ||
| 2815 | }? | ||
| 2816 | & attribute draw:extrusion-color { boolean }? | ||
| 2817 | & attribute draw:enhanced-path { \string }? | ||
| 2818 | & attribute draw:path-stretchpoint-x { double }? | ||
| 2819 | & attribute draw:path-stretchpoint-y { double }? | ||
| 2820 | & attribute draw:text-areas { \string }? | ||
| 2821 | & attribute draw:glue-points { \string }? | ||
| 2822 | & attribute draw:glue-point-type { | ||
| 2823 | "none" | "segments" | "rectangle" | ||
| 2824 | }? | ||
| 2825 | & attribute draw:glue-point-leaving-directions { \string }? | ||
| 2826 | & attribute draw:text-path { boolean }? | ||
| 2827 | & attribute draw:text-path-mode { "normal" | "path" | "shape" }? | ||
| 2828 | & attribute draw:text-path-scale { "path" | "shape" }? | ||
| 2829 | & attribute draw:text-path-same-letter-heights { boolean }? | ||
| 2830 | & attribute draw:modifiers { \string }? | ||
| 2831 | custom-shape-type = "non-primitive" | \string | ||
| 2832 | point3D = | ||
| 2833 | xsd:string { | ||
| 2834 | pattern = | ||
| 2835 | "\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))){2}[ ]*\)" | ||
| 2836 | } | ||
| 2837 | extrusionOrigin = | ||
| 2838 | xsd:double { minInclusive = "-0.5" maxInclusive = "0.5" } | ||
| 2839 | draw-equation = element draw:equation { draw-equation-attlist, empty } | ||
| 2840 | draw-equation-attlist = | ||
| 2841 | attribute draw:name { \string }? | ||
| 2842 | & attribute draw:formula { \string }? | ||
| 2843 | draw-handle = element draw:handle { draw-handle-attlist, empty } | ||
| 2844 | draw-handle-attlist = | ||
| 2845 | attribute draw:handle-mirror-vertical { boolean }? | ||
| 2846 | & attribute draw:handle-mirror-horizontal { boolean }? | ||
| 2847 | & attribute draw:handle-switched { boolean }? | ||
| 2848 | & attribute draw:handle-position { \string } | ||
| 2849 | & attribute draw:handle-range-x-minimum { \string }? | ||
| 2850 | & attribute draw:handle-range-x-maximum { \string }? | ||
| 2851 | & attribute draw:handle-range-y-minimum { \string }? | ||
| 2852 | & attribute draw:handle-range-y-maximum { \string }? | ||
| 2853 | & attribute draw:handle-polar { \string }? | ||
| 2854 | & attribute draw:handle-radius-range-minimum { \string }? | ||
| 2855 | & attribute draw:handle-radius-range-maximum { \string }? | ||
| 2856 | presentation-shape-attlist = | ||
| 2857 | attribute presentation:class { presentation-classes }? | ||
| 2858 | & attribute presentation:placeholder { boolean }? | ||
| 2859 | & attribute presentation:user-transformed { boolean }? | ||
| 2860 | presentation-classes = | ||
| 2861 | "title" | ||
| 2862 | | "outline" | ||
| 2863 | | "subtitle" | ||
| 2864 | | "text" | ||
| 2865 | | "graphic" | ||
| 2866 | | "object" | ||
| 2867 | | "chart" | ||
| 2868 | | "table" | ||
| 2869 | | "orgchart" | ||
| 2870 | | "page" | ||
| 2871 | | "notes" | ||
| 2872 | | "handout" | ||
| 2873 | | "header" | ||
| 2874 | | "footer" | ||
| 2875 | | "date-time" | ||
| 2876 | | "page-number" | ||
| 2877 | presentation-animations = | ||
| 2878 | element presentation:animations { | ||
| 2879 | (presentation-animation-elements | presentation-animation-group)* | ||
| 2880 | } | ||
| 2881 | presentation-animation-elements = | ||
| 2882 | presentation-show-shape | ||
| 2883 | | presentation-show-text | ||
| 2884 | | presentation-hide-shape | ||
| 2885 | | presentation-hide-text | ||
| 2886 | | presentation-dim | ||
| 2887 | | presentation-play | ||
| 2888 | presentation-sound = | ||
| 2889 | element presentation:sound { | ||
| 2890 | presentation-sound-attlist, | ||
| 2891 | attribute xlink:type { "simple" }, | ||
| 2892 | attribute xlink:href { anyIRI }, | ||
| 2893 | attribute xlink:actuate { "onRequest" }?, | ||
| 2894 | attribute xlink:show { "new" | "replace" }?, | ||
| 2895 | empty | ||
| 2896 | } | ||
| 2897 | presentation-sound-attlist = | ||
| 2898 | attribute presentation:play-full { boolean }? | ||
| 2899 | & xml-id? | ||
| 2900 | presentation-show-shape = | ||
| 2901 | element presentation:show-shape { | ||
| 2902 | common-presentation-effect-attlist, presentation-sound? | ||
| 2903 | } | ||
| 2904 | common-presentation-effect-attlist = | ||
| 2905 | attribute draw:shape-id { IDREF } | ||
| 2906 | & attribute presentation:effect { presentationEffects }? | ||
| 2907 | & attribute presentation:direction { presentationEffectDirections }? | ||
| 2908 | & attribute presentation:speed { presentationSpeeds }? | ||
| 2909 | & attribute presentation:delay { duration }? | ||
| 2910 | & attribute presentation:start-scale { percent }? | ||
| 2911 | & attribute presentation:path-id { \string }? | ||
| 2912 | presentationEffects = | ||
| 2913 | "none" | ||
| 2914 | | "fade" | ||
| 2915 | | "move" | ||
| 2916 | | "stripes" | ||
| 2917 | | "open" | ||
| 2918 | | "close" | ||
| 2919 | | "dissolve" | ||
| 2920 | | "wavyline" | ||
| 2921 | | "random" | ||
| 2922 | | "lines" | ||
| 2923 | | "laser" | ||
| 2924 | | "appear" | ||
| 2925 | | "hide" | ||
| 2926 | | "move-short" | ||
| 2927 | | "checkerboard" | ||
| 2928 | | "rotate" | ||
| 2929 | | "stretch" | ||
| 2930 | presentationEffectDirections = | ||
| 2931 | "none" | ||
| 2932 | | "from-left" | ||
| 2933 | | "from-top" | ||
| 2934 | | "from-right" | ||
| 2935 | | "from-bottom" | ||
| 2936 | | "from-center" | ||
| 2937 | | "from-upper-left" | ||
| 2938 | | "from-upper-right" | ||
| 2939 | | "from-lower-left" | ||
| 2940 | | "from-lower-right" | ||
| 2941 | | "to-left" | ||
| 2942 | | "to-top" | ||
| 2943 | | "to-right" | ||
| 2944 | | "to-bottom" | ||
| 2945 | | "to-upper-left" | ||
| 2946 | | "to-upper-right" | ||
| 2947 | | "to-lower-right" | ||
| 2948 | | "to-lower-left" | ||
| 2949 | | "path" | ||
| 2950 | | "spiral-inward-left" | ||
| 2951 | | "spiral-inward-right" | ||
| 2952 | | "spiral-outward-left" | ||
| 2953 | | "spiral-outward-right" | ||
| 2954 | | "vertical" | ||
| 2955 | | "horizontal" | ||
| 2956 | | "to-center" | ||
| 2957 | | "clockwise" | ||
| 2958 | | "counter-clockwise" | ||
| 2959 | presentationSpeeds = "slow" | "medium" | "fast" | ||
| 2960 | presentation-show-text = | ||
| 2961 | element presentation:show-text { | ||
| 2962 | common-presentation-effect-attlist, presentation-sound? | ||
| 2963 | } | ||
| 2964 | presentation-hide-shape = | ||
| 2965 | element presentation:hide-shape { | ||
| 2966 | common-presentation-effect-attlist, presentation-sound? | ||
| 2967 | } | ||
| 2968 | presentation-hide-text = | ||
| 2969 | element presentation:hide-text { | ||
| 2970 | common-presentation-effect-attlist, presentation-sound? | ||
| 2971 | } | ||
| 2972 | presentation-dim = | ||
| 2973 | element presentation:dim { | ||
| 2974 | presentation-dim-attlist, presentation-sound? | ||
| 2975 | } | ||
| 2976 | presentation-dim-attlist = | ||
| 2977 | attribute draw:shape-id { IDREF } | ||
| 2978 | & attribute draw:color { color } | ||
| 2979 | presentation-play = | ||
| 2980 | element presentation:play { presentation-play-attlist, empty } | ||
| 2981 | presentation-play-attlist = | ||
| 2982 | attribute draw:shape-id { IDREF }, | ||
| 2983 | attribute presentation:speed { presentationSpeeds }? | ||
| 2984 | presentation-animation-group = | ||
| 2985 | element presentation:animation-group { | ||
| 2986 | presentation-animation-elements* | ||
| 2987 | } | ||
| 2988 | common-anim-attlist = | ||
| 2989 | attribute presentation:node-type { | ||
| 2990 | "default" | ||
| 2991 | | "on-click" | ||
| 2992 | | "with-previous" | ||
| 2993 | | "after-previous" | ||
| 2994 | | "timing-root" | ||
| 2995 | | "main-sequence" | ||
| 2996 | | "interactive-sequence" | ||
| 2997 | }? | ||
| 2998 | & attribute presentation:preset-id { \string }? | ||
| 2999 | & attribute presentation:preset-sub-type { \string }? | ||
| 3000 | & attribute presentation:preset-class { | ||
| 3001 | "custom" | ||
| 3002 | | "entrance" | ||
| 3003 | | "exit" | ||
| 3004 | | "emphasis" | ||
| 3005 | | "motion-path" | ||
| 3006 | | "ole-action" | ||
| 3007 | | "media-call" | ||
| 3008 | }? | ||
| 3009 | & attribute presentation:master-element { IDREF }? | ||
| 3010 | & attribute presentation:group-id { \string }? | ||
| 3011 | & (xml-id, | ||
| 3012 | attribute anim:id { NCName }?)? | ||
| 3013 | presentation-event-listener = | ||
| 3014 | element presentation:event-listener { | ||
| 3015 | presentation-event-listener-attlist, presentation-sound? | ||
| 3016 | } | ||
| 3017 | presentation-event-listener-attlist = | ||
| 3018 | attribute script:event-name { \string } | ||
| 3019 | & attribute presentation:action { | ||
| 3020 | "none" | ||
| 3021 | | "previous-page" | ||
| 3022 | | "next-page" | ||
| 3023 | | "first-page" | ||
| 3024 | | "last-page" | ||
| 3025 | | "hide" | ||
| 3026 | | "stop" | ||
| 3027 | | "execute" | ||
| 3028 | | "show" | ||
| 3029 | | "verb" | ||
| 3030 | | "fade-out" | ||
| 3031 | | "sound" | ||
| 3032 | | "last-visited-page" | ||
| 3033 | } | ||
| 3034 | & attribute presentation:effect { presentationEffects }? | ||
| 3035 | & attribute presentation:direction { presentationEffectDirections }? | ||
| 3036 | & attribute presentation:speed { presentationSpeeds }? | ||
| 3037 | & attribute presentation:start-scale { percent }? | ||
| 3038 | & (attribute xlink:type { "simple" }, | ||
| 3039 | attribute xlink:href { anyIRI }, | ||
| 3040 | attribute xlink:show { "embed" }?, | ||
| 3041 | attribute xlink:actuate { "onRequest" }?)? | ||
| 3042 | & attribute presentation:verb { nonNegativeInteger }? | ||
| 3043 | presentation-decls = presentation-decl* | ||
| 3044 | presentation-decl = | ||
| 3045 | element presentation:header-decl { | ||
| 3046 | presentation-header-decl-attlist, text | ||
| 3047 | } | ||
| 3048 | | element presentation:footer-decl { | ||
| 3049 | presentation-footer-decl-attlist, text | ||
| 3050 | } | ||
| 3051 | | element presentation:date-time-decl { | ||
| 3052 | presentation-date-time-decl-attlist, text | ||
| 3053 | } | ||
| 3054 | presentation-header-decl-attlist = | ||
| 3055 | attribute presentation:name { \string } | ||
| 3056 | presentation-footer-decl-attlist = | ||
| 3057 | attribute presentation:name { \string } | ||
| 3058 | presentation-date-time-decl-attlist = | ||
| 3059 | attribute presentation:name { \string } | ||
| 3060 | & attribute presentation:source { "fixed" | "current-date" } | ||
| 3061 | & attribute style:data-style-name { styleNameRef }? | ||
| 3062 | presentation-settings = | ||
| 3063 | element presentation:settings { | ||
| 3064 | presentation-settings-attlist, presentation-show* | ||
| 3065 | }? | ||
| 3066 | presentation-settings-attlist = | ||
| 3067 | attribute presentation:start-page { \string }? | ||
| 3068 | & attribute presentation:show { \string }? | ||
| 3069 | & attribute presentation:full-screen { boolean }? | ||
| 3070 | & attribute presentation:endless { boolean }? | ||
| 3071 | & attribute presentation:pause { duration }? | ||
| 3072 | & attribute presentation:show-logo { boolean }? | ||
| 3073 | & attribute presentation:force-manual { boolean }? | ||
| 3074 | & attribute presentation:mouse-visible { boolean }? | ||
| 3075 | & attribute presentation:mouse-as-pen { boolean }? | ||
| 3076 | & attribute presentation:start-with-navigator { boolean }? | ||
| 3077 | & attribute presentation:animations { "enabled" | "disabled" }? | ||
| 3078 | & attribute presentation:transition-on-click { | ||
| 3079 | "enabled" | "disabled" | ||
| 3080 | }? | ||
| 3081 | & attribute presentation:stay-on-top { boolean }? | ||
| 3082 | & attribute presentation:show-end-of-presentation-slide { boolean }? | ||
| 3083 | presentation-show = | ||
| 3084 | element presentation:show { presentation-show-attlist, empty } | ||
| 3085 | presentation-show-attlist = | ||
| 3086 | attribute presentation:name { \string } | ||
| 3087 | & attribute presentation:pages { \string } | ||
| 3088 | chart-chart = | ||
| 3089 | element chart:chart { | ||
| 3090 | chart-chart-attlist, | ||
| 3091 | chart-title?, | ||
| 3092 | chart-subtitle?, | ||
| 3093 | chart-footer?, | ||
| 3094 | chart-legend?, | ||
| 3095 | chart-plot-area, | ||
| 3096 | table-table? | ||
| 3097 | } | ||
| 3098 | chart-chart-attlist = | ||
| 3099 | attribute chart:class { namespacedToken } | ||
| 3100 | & common-draw-size-attlist | ||
| 3101 | & attribute chart:column-mapping { \string }? | ||
| 3102 | & attribute chart:row-mapping { \string }? | ||
| 3103 | & attribute chart:style-name { styleNameRef }? | ||
| 3104 | & (attribute xlink:type { "simple" }, | ||
| 3105 | attribute xlink:href { anyIRI })? | ||
| 3106 | & xml-id? | ||
| 3107 | chart-title = element chart:title { chart-title-attlist, text-p? } | ||
| 3108 | chart-title-attlist = | ||
| 3109 | attribute table:cell-range { cellRangeAddressList }? | ||
| 3110 | & common-draw-position-attlist | ||
| 3111 | & attribute chart:style-name { styleNameRef }? | ||
| 3112 | chart-subtitle = element chart:subtitle { chart-title-attlist, text-p? } | ||
| 3113 | chart-footer = element chart:footer { chart-title-attlist, text-p? } | ||
| 3114 | chart-legend = element chart:legend { chart-legend-attlist, text-p? } | ||
| 3115 | chart-legend-attlist = | ||
| 3116 | ((attribute chart:legend-position { | ||
| 3117 | "start" | "end" | "top" | "bottom" | ||
| 3118 | }, | ||
| 3119 | attribute chart:legend-align { "start" | "center" | "end" }?) | ||
| 3120 | | attribute chart:legend-position { | ||
| 3121 | "top-start" | "bottom-start" | "top-end" | "bottom-end" | ||
| 3122 | } | ||
| 3123 | | empty) | ||
| 3124 | & common-draw-position-attlist | ||
| 3125 | & (attribute style:legend-expansion { "wide" | "high" | "balanced" } | ||
| 3126 | | (attribute style:legend-expansion { "custom" }, | ||
| 3127 | attribute style:legend-expansion-aspect-ratio { double }) | ||
| 3128 | | empty) | ||
| 3129 | & attribute chart:style-name { styleNameRef }? | ||
| 3130 | chart-plot-area = | ||
| 3131 | element chart:plot-area { | ||
| 3132 | chart-plot-area-attlist, | ||
| 3133 | dr3d-light*, | ||
| 3134 | chart-axis*, | ||
| 3135 | chart-series*, | ||
| 3136 | chart-stock-gain-marker?, | ||
| 3137 | chart-stock-loss-marker?, | ||
| 3138 | chart-stock-range-line?, | ||
| 3139 | chart-wall?, | ||
| 3140 | chart-floor? | ||
| 3141 | } | ||
| 3142 | chart-plot-area-attlist = | ||
| 3143 | common-draw-position-attlist | ||
| 3144 | & common-draw-size-attlist | ||
| 3145 | & attribute chart:style-name { styleNameRef }? | ||
| 3146 | & attribute table:cell-range-address { cellRangeAddressList }? | ||
| 3147 | & attribute chart:data-source-has-labels { | ||
| 3148 | "none" | "row" | "column" | "both" | ||
| 3149 | }? | ||
| 3150 | & dr3d-scene-attlist | ||
| 3151 | & common-dr3d-transform-attlist | ||
| 3152 | & xml-id? | ||
| 3153 | chart-wall = element chart:wall { chart-wall-attlist, empty } | ||
| 3154 | chart-wall-attlist = | ||
| 3155 | attribute svg:width { length }? | ||
| 3156 | & attribute chart:style-name { styleNameRef }? | ||
| 3157 | chart-floor = element chart:floor { chart-floor-attlist, empty } | ||
| 3158 | chart-floor-attlist = | ||
| 3159 | attribute svg:width { length }? | ||
| 3160 | & attribute chart:style-name { styleNameRef }? | ||
| 3161 | chart-axis = | ||
| 3162 | element chart:axis { | ||
| 3163 | chart-axis-attlist, chart-title?, chart-categories?, chart-grid* | ||
| 3164 | } | ||
| 3165 | chart-axis-attlist = | ||
| 3166 | attribute chart:dimension { chart-dimension } | ||
| 3167 | & attribute chart:name { \string }? | ||
| 3168 | & attribute chart:style-name { styleNameRef }? | ||
| 3169 | chart-dimension = "x" | "y" | "z" | ||
| 3170 | chart-categories = | ||
| 3171 | element chart:categories { | ||
| 3172 | attribute table:cell-range-address { cellRangeAddressList }? | ||
| 3173 | } | ||
| 3174 | chart-grid = element chart:grid { chart-grid-attlist } | ||
| 3175 | chart-grid-attlist = | ||
| 3176 | attribute chart:class { "major" | "minor" }? | ||
| 3177 | & attribute chart:style-name { styleNameRef }? | ||
| 3178 | chart-series = | ||
| 3179 | element chart:series { | ||
| 3180 | chart-series-attlist, | ||
| 3181 | chart-domain*, | ||
| 3182 | chart-mean-value?, | ||
| 3183 | chart-regression-curve*, | ||
| 3184 | chart-error-indicator*, | ||
| 3185 | chart-data-point*, | ||
| 3186 | chart-data-label? | ||
| 3187 | } | ||
| 3188 | chart-series-attlist = | ||
| 3189 | attribute chart:values-cell-range-address { cellRangeAddressList }? | ||
| 3190 | & attribute chart:label-cell-address { cellRangeAddressList }? | ||
| 3191 | & attribute chart:class { namespacedToken }? | ||
| 3192 | & attribute chart:attached-axis { \string }? | ||
| 3193 | & attribute chart:style-name { styleNameRef }? | ||
| 3194 | & xml-id? | ||
| 3195 | chart-domain = | ||
| 3196 | element chart:domain { | ||
| 3197 | attribute table:cell-range-address { cellRangeAddressList }? | ||
| 3198 | } | ||
| 3199 | chart-data-point = | ||
| 3200 | element chart:data-point { | ||
| 3201 | chart-data-point-attlist, chart-data-label? | ||
| 3202 | } | ||
| 3203 | chart-data-point-attlist = | ||
| 3204 | attribute chart:repeated { positiveInteger }? | ||
| 3205 | & attribute chart:style-name { styleNameRef }? | ||
| 3206 | & xml-id? | ||
| 3207 | chart-data-label = | ||
| 3208 | element chart:data-label { chart-data-label-attlist, text-p? } | ||
| 3209 | chart-data-label-attlist = | ||
| 3210 | common-draw-position-attlist | ||
| 3211 | & attribute chart:style-name { styleNameRef }? | ||
| 3212 | chart-mean-value = | ||
| 3213 | element chart:mean-value { chart-mean-value-attlist, empty } | ||
| 3214 | chart-mean-value-attlist = attribute chart:style-name { styleNameRef }? | ||
| 3215 | chart-error-indicator = | ||
| 3216 | element chart:error-indicator { chart-error-indicator-attlist, empty } | ||
| 3217 | chart-error-indicator-attlist = | ||
| 3218 | attribute chart:style-name { styleNameRef }? | ||
| 3219 | & attribute chart:dimension { chart-dimension } | ||
| 3220 | chart-regression-curve = | ||
| 3221 | element chart:regression-curve { | ||
| 3222 | chart-regression-curve-attlist, chart-equation? | ||
| 3223 | } | ||
| 3224 | chart-regression-curve-attlist = | ||
| 3225 | attribute chart:style-name { styleNameRef }? | ||
| 3226 | chart-equation = | ||
| 3227 | element chart:equation { chart-equation-attlist, text-p? } | ||
| 3228 | chart-equation-attlist = | ||
| 3229 | attribute chart:automatic-content { boolean }? | ||
| 3230 | & attribute chart:display-r-square { boolean }? | ||
| 3231 | & attribute chart:display-equation { boolean }? | ||
| 3232 | & common-draw-position-attlist | ||
| 3233 | & attribute chart:style-name { styleNameRef }? | ||
| 3234 | chart-stock-gain-marker = | ||
| 3235 | element chart:stock-gain-marker { common-stock-marker-attlist } | ||
| 3236 | chart-stock-loss-marker = | ||
| 3237 | element chart:stock-loss-marker { common-stock-marker-attlist } | ||
| 3238 | chart-stock-range-line = | ||
| 3239 | element chart:stock-range-line { common-stock-marker-attlist } | ||
| 3240 | common-stock-marker-attlist = | ||
| 3241 | attribute chart:style-name { styleNameRef }? | ||
| 3242 | office-database = | ||
| 3243 | element office:database { | ||
| 3244 | db-data-source, | ||
| 3245 | db-forms?, | ||
| 3246 | db-reports?, | ||
| 3247 | db-queries?, | ||
| 3248 | db-table-presentations?, | ||
| 3249 | db-schema-definition? | ||
| 3250 | } | ||
| 3251 | db-data-source = | ||
| 3252 | element db:data-source { | ||
| 3253 | db-data-source-attlist, | ||
| 3254 | db-connection-data, | ||
| 3255 | db-driver-settings?, | ||
| 3256 | db-application-connection-settings? | ||
| 3257 | } | ||
| 3258 | db-data-source-attlist = empty | ||
| 3259 | db-connection-data = | ||
| 3260 | element db:connection-data { | ||
| 3261 | db-connection-data-attlist, | ||
| 3262 | (db-database-description | db-connection-resource), | ||
| 3263 | db-login? | ||
| 3264 | } | ||
| 3265 | db-connection-data-attlist = empty | ||
| 3266 | db-database-description = | ||
| 3267 | element db:database-description { | ||
| 3268 | db-database-description-attlist, | ||
| 3269 | (db-file-based-database | db-server-database) | ||
| 3270 | } | ||
| 3271 | db-database-description-attlist = empty | ||
| 3272 | db-file-based-database = | ||
| 3273 | element db:file-based-database { db-file-based-database-attlist } | ||
| 3274 | db-file-based-database-attlist = | ||
| 3275 | attribute xlink:type { "simple" } | ||
| 3276 | & attribute xlink:href { anyIRI } | ||
| 3277 | & attribute db:media-type { \string } | ||
| 3278 | & attribute db:extension { \string }? | ||
| 3279 | db-server-database = | ||
| 3280 | element db:server-database { db-server-database-attlist, empty } | ||
| 3281 | db-server-database-attlist = | ||
| 3282 | attribute db:type { namespacedToken } | ||
| 3283 | & (db-host-and-port | db-local-socket-name) | ||
| 3284 | & attribute db:database-name { \string }? | ||
| 3285 | db-host-and-port = | ||
| 3286 | attribute db:hostname { \string }, | ||
| 3287 | attribute db:port { positiveInteger }? | ||
| 3288 | db-local-socket-name = attribute db:local-socket { \string }? | ||
| 3289 | db-connection-resource = | ||
| 3290 | element db:connection-resource { | ||
| 3291 | db-connection-resource-attlist, empty | ||
| 3292 | } | ||
| 3293 | db-connection-resource-attlist = | ||
| 3294 | attribute xlink:type { "simple" }, | ||
| 3295 | attribute xlink:href { anyIRI }, | ||
| 3296 | attribute xlink:show { "none" }?, | ||
| 3297 | attribute xlink:actuate { "onRequest" }? | ||
| 3298 | db-login = element db:login { db-login-attlist, empty } | ||
| 3299 | db-login-attlist = | ||
| 3300 | (attribute db:user-name { \string } | ||
| 3301 | | attribute db:use-system-user { boolean })? | ||
| 3302 | & attribute db:is-password-required { boolean }? | ||
| 3303 | & attribute db:login-timeout { positiveInteger }? | ||
| 3304 | db-driver-settings = | ||
| 3305 | element db:driver-settings { | ||
| 3306 | db-driver-settings-attlist, | ||
| 3307 | db-auto-increment?, | ||
| 3308 | db-delimiter?, | ||
| 3309 | db-character-set?, | ||
| 3310 | db-table-settings? | ||
| 3311 | } | ||
| 3312 | db-driver-settings-attlist = | ||
| 3313 | db-show-deleted | ||
| 3314 | & attribute db:system-driver-settings { \string }? | ||
| 3315 | & attribute db:base-dn { \string }? | ||
| 3316 | & db-is-first-row-header-line | ||
| 3317 | & attribute db:parameter-name-substitution { boolean }? | ||
| 3318 | db-show-deleted = attribute db:show-deleted { boolean }? | ||
| 3319 | db-is-first-row-header-line = | ||
| 3320 | attribute db:is-first-row-header-line { boolean }? | ||
| 3321 | db-auto-increment = | ||
| 3322 | element db:auto-increment { db-auto-increment-attlist, empty } | ||
| 3323 | db-auto-increment-attlist = | ||
| 3324 | attribute db:additional-column-statement { \string }? | ||
| 3325 | & attribute db:row-retrieving-statement { \string }? | ||
| 3326 | db-delimiter = element db:delimiter { db-delimiter-attlist, empty } | ||
| 3327 | db-delimiter-attlist = | ||
| 3328 | attribute db:field { \string }? | ||
| 3329 | & attribute db:string { \string }? | ||
| 3330 | & attribute db:decimal { \string }? | ||
| 3331 | & attribute db:thousand { \string }? | ||
| 3332 | db-character-set = | ||
| 3333 | element db:character-set { db-character-set-attlist, empty } | ||
| 3334 | db-character-set-attlist = attribute db:encoding { textEncoding }? | ||
| 3335 | db-table-settings = element db:table-settings { db-table-setting* } | ||
| 3336 | db-table-setting = | ||
| 3337 | element db:table-setting { | ||
| 3338 | db-table-setting-attlist, db-delimiter?, db-character-set?, empty | ||
| 3339 | } | ||
| 3340 | db-table-setting-attlist = db-is-first-row-header-line, db-show-deleted | ||
| 3341 | db-application-connection-settings = | ||
| 3342 | element db:application-connection-settings { | ||
| 3343 | db-application-connection-settings-attlist, | ||
| 3344 | db-table-filter?, | ||
| 3345 | db-table-type-filter?, | ||
| 3346 | db-data-source-settings? | ||
| 3347 | } | ||
| 3348 | db-application-connection-settings-attlist = | ||
| 3349 | attribute db:is-table-name-length-limited { boolean }? | ||
| 3350 | & attribute db:enable-sql92-check { boolean }? | ||
| 3351 | & attribute db:append-table-alias-name { boolean }? | ||
| 3352 | & attribute db:ignore-driver-privileges { boolean }? | ||
| 3353 | & attribute db:boolean-comparison-mode { | ||
| 3354 | "equal-integer" | ||
| 3355 | | "is-boolean" | ||
| 3356 | | "equal-boolean" | ||
| 3357 | | "equal-use-only-zero" | ||
| 3358 | }? | ||
| 3359 | & attribute db:use-catalog { boolean }? | ||
| 3360 | & attribute db:max-row-count { integer }? | ||
| 3361 | & attribute db:suppress-version-columns { boolean }? | ||
| 3362 | db-table-filter = | ||
| 3363 | element db:table-filter { | ||
| 3364 | db-table-filter-attlist, | ||
| 3365 | db-table-include-filter?, | ||
| 3366 | db-table-exclude-filter? | ||
| 3367 | } | ||
| 3368 | db-table-filter-attlist = empty | ||
| 3369 | db-table-include-filter = | ||
| 3370 | element db:table-include-filter { | ||
| 3371 | db-table-include-filter-attlist, db-table-filter-pattern+ | ||
| 3372 | } | ||
| 3373 | db-table-include-filter-attlist = empty | ||
| 3374 | db-table-exclude-filter = | ||
| 3375 | element db:table-exclude-filter { | ||
| 3376 | db-table-exclude-filter-attlist, db-table-filter-pattern+ | ||
| 3377 | } | ||
| 3378 | db-table-exclude-filter-attlist = empty | ||
| 3379 | db-table-filter-pattern = | ||
| 3380 | element db:table-filter-pattern { | ||
| 3381 | db-table-filter-pattern-attlist, \string | ||
| 3382 | } | ||
| 3383 | db-table-filter-pattern-attlist = empty | ||
| 3384 | db-table-type-filter = | ||
| 3385 | element db:table-type-filter { | ||
| 3386 | db-table-type-filter-attlist, db-table-type* | ||
| 3387 | } | ||
| 3388 | db-table-type-filter-attlist = empty | ||
| 3389 | db-table-type = element db:table-type { db-table-type-attlist, \string } | ||
| 3390 | db-table-type-attlist = empty | ||
| 3391 | db-data-source-settings = | ||
| 3392 | element db:data-source-settings { | ||
| 3393 | db-data-source-settings-attlist, db-data-source-setting+ | ||
| 3394 | } | ||
| 3395 | db-data-source-settings-attlist = empty | ||
| 3396 | db-data-source-setting = | ||
| 3397 | element db:data-source-setting { | ||
| 3398 | db-data-source-setting-attlist, db-data-source-setting-value+ | ||
| 3399 | } | ||
| 3400 | db-data-source-setting-attlist = | ||
| 3401 | attribute db:data-source-setting-is-list { boolean }? | ||
| 3402 | & attribute db:data-source-setting-name { \string } | ||
| 3403 | & attribute db:data-source-setting-type { | ||
| 3404 | db-data-source-setting-types | ||
| 3405 | } | ||
| 3406 | db-data-source-setting-types = | ||
| 3407 | "boolean" | "short" | "int" | "long" | "double" | "string" | ||
| 3408 | db-data-source-setting-value = | ||
| 3409 | element db:data-source-setting-value { | ||
| 3410 | db-data-source-setting-value-attlist, \string | ||
| 3411 | } | ||
| 3412 | db-data-source-setting-value-attlist = empty | ||
| 3413 | db-forms = | ||
| 3414 | element db:forms { | ||
| 3415 | db-forms-attlist, (db-component | db-component-collection)* | ||
| 3416 | } | ||
| 3417 | db-forms-attlist = empty | ||
| 3418 | db-reports = | ||
| 3419 | element db:reports { | ||
| 3420 | db-reports-attlist, (db-component | db-component-collection)* | ||
| 3421 | } | ||
| 3422 | db-reports-attlist = empty | ||
| 3423 | db-component-collection = | ||
| 3424 | element db:component-collection { | ||
| 3425 | db-component-collection-attlist, | ||
| 3426 | common-db-object-name, | ||
| 3427 | common-db-object-title, | ||
| 3428 | common-db-object-description, | ||
| 3429 | (db-component | db-component-collection)* | ||
| 3430 | } | ||
| 3431 | db-component-collection-attlist = empty | ||
| 3432 | db-component = | ||
| 3433 | element db:component { | ||
| 3434 | db-component-attlist, | ||
| 3435 | common-db-object-name, | ||
| 3436 | common-db-object-title, | ||
| 3437 | common-db-object-description, | ||
| 3438 | (office-document | math-math)? | ||
| 3439 | } | ||
| 3440 | db-component-attlist = | ||
| 3441 | (attribute xlink:type { "simple" }, | ||
| 3442 | attribute xlink:href { anyIRI }, | ||
| 3443 | attribute xlink:show { "none" }?, | ||
| 3444 | attribute xlink:actuate { "onRequest" }?)? | ||
| 3445 | & attribute db:as-template { boolean }? | ||
| 3446 | db-queries = | ||
| 3447 | element db:queries { | ||
| 3448 | db-queries-attlist, (db-query | db-query-collection)* | ||
| 3449 | } | ||
| 3450 | db-queries-attlist = empty | ||
| 3451 | db-query-collection = | ||
| 3452 | element db:query-collection { | ||
| 3453 | db-query-collection-attlist, | ||
| 3454 | common-db-object-name, | ||
| 3455 | common-db-object-title, | ||
| 3456 | common-db-object-description, | ||
| 3457 | (db-query | db-query-collection)* | ||
| 3458 | } | ||
| 3459 | db-query-collection-attlist = empty | ||
| 3460 | db-query = | ||
| 3461 | element db:query { | ||
| 3462 | db-query-attlist, | ||
| 3463 | common-db-object-name, | ||
| 3464 | common-db-object-title, | ||
| 3465 | common-db-object-description, | ||
| 3466 | common-db-table-style-name, | ||
| 3467 | db-order-statement?, | ||
| 3468 | db-filter-statement?, | ||
| 3469 | db-columns?, | ||
| 3470 | db-update-table? | ||
| 3471 | } | ||
| 3472 | db-query-attlist = | ||
| 3473 | attribute db:command { \string } | ||
| 3474 | & attribute db:escape-processing { boolean }? | ||
| 3475 | db-order-statement = | ||
| 3476 | element db:order-statement { db-command, db-apply-command, empty } | ||
| 3477 | db-filter-statement = | ||
| 3478 | element db:filter-statement { db-command, db-apply-command, empty } | ||
| 3479 | db-update-table = | ||
| 3480 | element db:update-table { common-db-table-name-attlist } | ||
| 3481 | db-table-presentations = | ||
| 3482 | element db:table-representations { | ||
| 3483 | db-table-presentations-attlist, db-table-presentation* | ||
| 3484 | } | ||
| 3485 | db-table-presentations-attlist = empty | ||
| 3486 | db-table-presentation = | ||
| 3487 | element db:table-representation { | ||
| 3488 | db-table-presentation-attlist, | ||
| 3489 | common-db-table-name-attlist, | ||
| 3490 | common-db-object-title, | ||
| 3491 | common-db-object-description, | ||
| 3492 | common-db-table-style-name, | ||
| 3493 | db-order-statement?, | ||
| 3494 | db-filter-statement?, | ||
| 3495 | db-columns? | ||
| 3496 | } | ||
| 3497 | db-table-presentation-attlist = empty | ||
| 3498 | db-columns = element db:columns { db-columns-attlist, db-column+ } | ||
| 3499 | db-columns-attlist = empty | ||
| 3500 | db-column = | ||
| 3501 | element db:column { | ||
| 3502 | db-column-attlist, | ||
| 3503 | common-db-object-name, | ||
| 3504 | common-db-object-title, | ||
| 3505 | common-db-object-description, | ||
| 3506 | common-db-default-value | ||
| 3507 | } | ||
| 3508 | db-column-attlist = | ||
| 3509 | attribute db:visible { boolean }? | ||
| 3510 | & attribute db:style-name { styleNameRef }? | ||
| 3511 | & attribute db:default-cell-style-name { styleNameRef }? | ||
| 3512 | db-command = attribute db:command { \string } | ||
| 3513 | db-apply-command = attribute db:apply-command { boolean }? | ||
| 3514 | common-db-table-name-attlist = | ||
| 3515 | attribute db:name { \string } | ||
| 3516 | & attribute db:catalog-name { \string }? | ||
| 3517 | & attribute db:schema-name { \string }? | ||
| 3518 | common-db-object-name = attribute db:name { \string } | ||
| 3519 | common-db-object-title = attribute db:title { \string }? | ||
| 3520 | common-db-object-description = attribute db:description { \string }? | ||
| 3521 | common-db-table-style-name = | ||
| 3522 | attribute db:style-name { styleNameRef }? | ||
| 3523 | & attribute db:default-row-style-name { styleNameRef }? | ||
| 3524 | common-db-default-value = common-value-and-type-attlist? | ||
| 3525 | db-schema-definition = | ||
| 3526 | element db:schema-definition { | ||
| 3527 | db-schema-definition-attlist, db-table-definitions | ||
| 3528 | } | ||
| 3529 | db-schema-definition-attlist = empty | ||
| 3530 | db-table-definitions = | ||
| 3531 | element db:table-definitions { | ||
| 3532 | db-table-definitions-attlist, db-table-definition* | ||
| 3533 | } | ||
| 3534 | db-table-definitions-attlist = empty | ||
| 3535 | db-table-definition = | ||
| 3536 | element db:table-definition { | ||
| 3537 | common-db-table-name-attlist, | ||
| 3538 | db-table-definition-attlist, | ||
| 3539 | db-column-definitions, | ||
| 3540 | db-keys?, | ||
| 3541 | db-indices? | ||
| 3542 | } | ||
| 3543 | db-table-definition-attlist = attribute db:type { \string }? | ||
| 3544 | db-column-definitions = | ||
| 3545 | element db:column-definitions { | ||
| 3546 | db-column-definitions-attlist, db-column-definition+ | ||
| 3547 | } | ||
| 3548 | db-column-definitions-attlist = empty | ||
| 3549 | db-column-definition = | ||
| 3550 | element db:column-definition { | ||
| 3551 | db-column-definition-attlist, common-db-default-value | ||
| 3552 | } | ||
| 3553 | db-column-definition-attlist = | ||
| 3554 | attribute db:name { \string } | ||
| 3555 | & attribute db:data-type { db-data-types }? | ||
| 3556 | & attribute db:type-name { \string }? | ||
| 3557 | & attribute db:precision { positiveInteger }? | ||
| 3558 | & attribute db:scale { positiveInteger }? | ||
| 3559 | & attribute db:is-nullable { "no-nulls" | "nullable" }? | ||
| 3560 | & attribute db:is-empty-allowed { boolean }? | ||
| 3561 | & attribute db:is-autoincrement { boolean }? | ||
| 3562 | db-data-types = | ||
| 3563 | "bit" | ||
| 3564 | | "boolean" | ||
| 3565 | | "tinyint" | ||
| 3566 | | "smallint" | ||
| 3567 | | "integer" | ||
| 3568 | | "bigint" | ||
| 3569 | | "float" | ||
| 3570 | | "real" | ||
| 3571 | | "double" | ||
| 3572 | | "numeric" | ||
| 3573 | | "decimal" | ||
| 3574 | | "char" | ||
| 3575 | | "varchar" | ||
| 3576 | | "longvarchar" | ||
| 3577 | | "date" | ||
| 3578 | | "time" | ||
| 3579 | | "timestmp" | ||
| 3580 | | "binary" | ||
| 3581 | | "varbinary" | ||
| 3582 | | "longvarbinary" | ||
| 3583 | | "sqlnull" | ||
| 3584 | | "other" | ||
| 3585 | | "object" | ||
| 3586 | | "distinct" | ||
| 3587 | | "struct" | ||
| 3588 | | "array" | ||
| 3589 | | "blob" | ||
| 3590 | | "clob" | ||
| 3591 | | "ref" | ||
| 3592 | db-keys = element db:keys { db-keys-attlist, db-key+ } | ||
| 3593 | db-keys-attlist = empty | ||
| 3594 | db-key = element db:key { db-key-attlist, db-key-columns+ } | ||
| 3595 | db-key-attlist = | ||
| 3596 | attribute db:name { \string }? | ||
| 3597 | & attribute db:type { "primary" | "unique" | "foreign" } | ||
| 3598 | & attribute db:referenced-table-name { \string }? | ||
| 3599 | & attribute db:update-rule { | ||
| 3600 | "cascade" | "restrict" | "set-null" | "no-action" | "set-default" | ||
| 3601 | }? | ||
| 3602 | & attribute db:delete-rule { | ||
| 3603 | "cascade" | "restrict" | "set-null" | "no-action" | "set-default" | ||
| 3604 | }? | ||
| 3605 | db-key-columns = | ||
| 3606 | element db:key-columns { db-key-columns-attlist, db-key-column+ } | ||
| 3607 | db-key-columns-attlist = empty | ||
| 3608 | db-key-column = element db:key-column { db-key-column-attlist, empty } | ||
| 3609 | db-key-column-attlist = | ||
| 3610 | attribute db:name { \string }? | ||
| 3611 | & attribute db:related-column-name { \string }? | ||
| 3612 | db-indices = element db:indices { db-indices-attlist, db-index+ } | ||
| 3613 | db-indices-attlist = empty | ||
| 3614 | db-index = element db:index { db-index-attlist, db-index-columns+ } | ||
| 3615 | db-index-attlist = | ||
| 3616 | attribute db:name { \string } | ||
| 3617 | & attribute db:catalog-name { \string }? | ||
| 3618 | & attribute db:is-unique { boolean }? | ||
| 3619 | & attribute db:is-clustered { boolean }? | ||
| 3620 | db-index-columns = element db:index-columns { db-index-column+ } | ||
| 3621 | db-index-column = | ||
| 3622 | element db:index-column { db-index-column-attlist, empty } | ||
| 3623 | db-index-column-attlist = | ||
| 3624 | attribute db:name { \string } | ||
| 3625 | & attribute db:is-ascending { boolean }? | ||
| 3626 | office-forms = | ||
| 3627 | element office:forms { | ||
| 3628 | office-forms-attlist, (form-form | xforms-model)* | ||
| 3629 | }? | ||
| 3630 | office-forms-attlist = | ||
| 3631 | attribute form:automatic-focus { boolean }? | ||
| 3632 | & attribute form:apply-design-mode { boolean }? | ||
| 3633 | form-form = | ||
| 3634 | element form:form { | ||
| 3635 | common-form-control-attlist, | ||
| 3636 | form-form-attlist, | ||
| 3637 | form-properties?, | ||
| 3638 | office-event-listeners?, | ||
| 3639 | (controls | form-form)*, | ||
| 3640 | form-connection-resource? | ||
| 3641 | } | ||
| 3642 | form-form-attlist = | ||
| 3643 | (attribute xlink:type { "simple" }, | ||
| 3644 | attribute xlink:href { anyIRI }, | ||
| 3645 | attribute xlink:actuate { "onRequest" }?)? | ||
| 3646 | & attribute office:target-frame { targetFrameName }? | ||
| 3647 | & attribute form:method { "get" | "post" | \string }? | ||
| 3648 | & attribute form:enctype { \string }? | ||
| 3649 | & attribute form:allow-deletes { boolean }? | ||
| 3650 | & attribute form:allow-inserts { boolean }? | ||
| 3651 | & attribute form:allow-updates { boolean }? | ||
| 3652 | & attribute form:apply-filter { boolean }? | ||
| 3653 | & attribute form:command-type { "table" | "query" | "command" }? | ||
| 3654 | & attribute form:command { \string }? | ||
| 3655 | & attribute form:datasource { anyIRI | \string }? | ||
| 3656 | & attribute form:master-fields { \string }? | ||
| 3657 | & attribute form:detail-fields { \string }? | ||
| 3658 | & attribute form:escape-processing { boolean }? | ||
| 3659 | & attribute form:filter { \string }? | ||
| 3660 | & attribute form:ignore-result { boolean }? | ||
| 3661 | & attribute form:navigation-mode { navigation }? | ||
| 3662 | & attribute form:order { \string }? | ||
| 3663 | & attribute form:tab-cycle { tab-cycles }? | ||
| 3664 | navigation = "none" | "current" | "parent" | ||
| 3665 | tab-cycles = "records" | "current" | "page" | ||
| 3666 | form-connection-resource = | ||
| 3667 | element form:connection-resource { | ||
| 3668 | attribute xlink:href { anyIRI }, | ||
| 3669 | empty | ||
| 3670 | } | ||
| 3671 | xforms-model = element xforms:model { anyAttListOrElements } | ||
| 3672 | column-controls = | ||
| 3673 | element form:text { form-text-attlist, common-form-control-content } | ||
| 3674 | | element form:textarea { | ||
| 3675 | form-textarea-attlist, common-form-control-content, text-p* | ||
| 3676 | } | ||
| 3677 | | element form:formatted-text { | ||
| 3678 | form-formatted-text-attlist, common-form-control-content | ||
| 3679 | } | ||
| 3680 | | element form:number { | ||
| 3681 | form-number-attlist, | ||
| 3682 | common-numeric-control-attlist, | ||
| 3683 | common-form-control-content, | ||
| 3684 | common-linked-cell, | ||
| 3685 | common-spin-button, | ||
| 3686 | common-repeat, | ||
| 3687 | common-delay-for-repeat | ||
| 3688 | } | ||
| 3689 | | element form:date { | ||
| 3690 | form-date-attlist, | ||
| 3691 | common-numeric-control-attlist, | ||
| 3692 | common-form-control-content, | ||
| 3693 | common-linked-cell, | ||
| 3694 | common-spin-button, | ||
| 3695 | common-repeat, | ||
| 3696 | common-delay-for-repeat | ||
| 3697 | } | ||
| 3698 | | element form:time { | ||
| 3699 | form-time-attlist, | ||
| 3700 | common-numeric-control-attlist, | ||
| 3701 | common-form-control-content, | ||
| 3702 | common-linked-cell, | ||
| 3703 | common-spin-button, | ||
| 3704 | common-repeat, | ||
| 3705 | common-delay-for-repeat | ||
| 3706 | } | ||
| 3707 | | element form:combobox { | ||
| 3708 | form-combobox-attlist, common-form-control-content, form-item* | ||
| 3709 | } | ||
| 3710 | | element form:listbox { | ||
| 3711 | form-listbox-attlist, common-form-control-content, form-option* | ||
| 3712 | } | ||
| 3713 | | element form:checkbox { | ||
| 3714 | form-checkbox-attlist, common-form-control-content | ||
| 3715 | } | ||
| 3716 | controls = | ||
| 3717 | column-controls | ||
| 3718 | | element form:password { | ||
| 3719 | form-password-attlist, common-form-control-content | ||
| 3720 | } | ||
| 3721 | | element form:file { form-file-attlist, common-form-control-content } | ||
| 3722 | | element form:fixed-text { | ||
| 3723 | form-fixed-text-attlist, common-form-control-content | ||
| 3724 | } | ||
| 3725 | | element form:button { | ||
| 3726 | form-button-attlist, common-form-control-content | ||
| 3727 | } | ||
| 3728 | | element form:image { | ||
| 3729 | form-image-attlist, common-form-control-content | ||
| 3730 | } | ||
| 3731 | | element form:radio { | ||
| 3732 | form-radio-attlist, common-form-control-content | ||
| 3733 | } | ||
| 3734 | | element form:frame { | ||
| 3735 | form-frame-attlist, common-form-control-content | ||
| 3736 | } | ||
| 3737 | | element form:image-frame { | ||
| 3738 | form-image-frame-attlist, common-form-control-content | ||
| 3739 | } | ||
| 3740 | | element form:hidden { | ||
| 3741 | form-hidden-attlist, common-form-control-content | ||
| 3742 | } | ||
| 3743 | | element form:grid { | ||
| 3744 | form-grid-attlist, common-form-control-content, form-column* | ||
| 3745 | } | ||
| 3746 | | element form:value-range { | ||
| 3747 | form-value-range-attlist, common-form-control-content | ||
| 3748 | } | ||
| 3749 | | element form:generic-control { | ||
| 3750 | form-generic-control-attlist, common-form-control-content | ||
| 3751 | } | ||
| 3752 | form-text-attlist = | ||
| 3753 | form-control-attlist, | ||
| 3754 | common-current-value-attlist, | ||
| 3755 | common-disabled-attlist, | ||
| 3756 | common-maxlength-attlist, | ||
| 3757 | common-printable-attlist, | ||
| 3758 | common-readonly-attlist, | ||
| 3759 | common-tab-attlist, | ||
| 3760 | common-title-attlist, | ||
| 3761 | common-value-attlist, | ||
| 3762 | common-convert-empty-attlist, | ||
| 3763 | common-data-field-attlist, | ||
| 3764 | common-linked-cell | ||
| 3765 | form-control-attlist = | ||
| 3766 | common-form-control-attlist, | ||
| 3767 | common-control-id-attlist, | ||
| 3768 | xforms-bind-attlist | ||
| 3769 | common-form-control-content = form-properties?, office-event-listeners? | ||
| 3770 | form-textarea-attlist = | ||
| 3771 | form-control-attlist, | ||
| 3772 | common-current-value-attlist, | ||
| 3773 | common-disabled-attlist, | ||
| 3774 | common-maxlength-attlist, | ||
| 3775 | common-printable-attlist, | ||
| 3776 | common-readonly-attlist, | ||
| 3777 | common-tab-attlist, | ||
| 3778 | common-title-attlist, | ||
| 3779 | common-value-attlist, | ||
| 3780 | common-convert-empty-attlist, | ||
| 3781 | common-data-field-attlist, | ||
| 3782 | common-linked-cell | ||
| 3783 | form-password-attlist = | ||
| 3784 | form-control-attlist | ||
| 3785 | & common-disabled-attlist | ||
| 3786 | & common-maxlength-attlist | ||
| 3787 | & common-printable-attlist | ||
| 3788 | & common-tab-attlist | ||
| 3789 | & common-title-attlist | ||
| 3790 | & common-value-attlist | ||
| 3791 | & common-convert-empty-attlist | ||
| 3792 | & common-linked-cell | ||
| 3793 | & attribute form:echo-char { character }? | ||
| 3794 | form-file-attlist = | ||
| 3795 | form-control-attlist, | ||
| 3796 | common-current-value-attlist, | ||
| 3797 | common-disabled-attlist, | ||
| 3798 | common-maxlength-attlist, | ||
| 3799 | common-printable-attlist, | ||
| 3800 | common-readonly-attlist, | ||
| 3801 | common-tab-attlist, | ||
| 3802 | common-title-attlist, | ||
| 3803 | common-value-attlist, | ||
| 3804 | common-linked-cell | ||
| 3805 | form-formatted-text-attlist = | ||
| 3806 | form-control-attlist | ||
| 3807 | & common-current-value-attlist | ||
| 3808 | & common-disabled-attlist | ||
| 3809 | & common-maxlength-attlist | ||
| 3810 | & common-printable-attlist | ||
| 3811 | & common-readonly-attlist | ||
| 3812 | & common-tab-attlist | ||
| 3813 | & common-title-attlist | ||
| 3814 | & common-value-attlist | ||
| 3815 | & common-convert-empty-attlist | ||
| 3816 | & common-data-field-attlist | ||
| 3817 | & common-linked-cell | ||
| 3818 | & common-spin-button | ||
| 3819 | & common-repeat | ||
| 3820 | & common-delay-for-repeat | ||
| 3821 | & attribute form:max-value { \string }? | ||
| 3822 | & attribute form:min-value { \string }? | ||
| 3823 | & attribute form:validation { boolean }? | ||
| 3824 | common-numeric-control-attlist = | ||
| 3825 | form-control-attlist, | ||
| 3826 | common-disabled-attlist, | ||
| 3827 | common-maxlength-attlist, | ||
| 3828 | common-printable-attlist, | ||
| 3829 | common-readonly-attlist, | ||
| 3830 | common-tab-attlist, | ||
| 3831 | common-title-attlist, | ||
| 3832 | common-convert-empty-attlist, | ||
| 3833 | common-data-field-attlist | ||
| 3834 | form-number-attlist = | ||
| 3835 | attribute form:value { double }? | ||
| 3836 | & attribute form:current-value { double }? | ||
| 3837 | & attribute form:min-value { double }? | ||
| 3838 | & attribute form:max-value { double }? | ||
| 3839 | form-date-attlist = | ||
| 3840 | attribute form:value { date }? | ||
| 3841 | & attribute form:current-value { date }? | ||
| 3842 | & attribute form:min-value { date }? | ||
| 3843 | & attribute form:max-value { date }? | ||
| 3844 | form-time-attlist = | ||
| 3845 | attribute form:value { time }? | ||
| 3846 | & attribute form:current-value { time }? | ||
| 3847 | & attribute form:min-value { time }? | ||
| 3848 | & attribute form:max-value { time }? | ||
| 3849 | form-fixed-text-attlist = | ||
| 3850 | form-control-attlist | ||
| 3851 | & for | ||
| 3852 | & common-disabled-attlist | ||
| 3853 | & label | ||
| 3854 | & common-printable-attlist | ||
| 3855 | & common-title-attlist | ||
| 3856 | & attribute form:multi-line { boolean }? | ||
| 3857 | form-combobox-attlist = | ||
| 3858 | form-control-attlist | ||
| 3859 | & common-current-value-attlist | ||
| 3860 | & common-disabled-attlist | ||
| 3861 | & dropdown | ||
| 3862 | & common-maxlength-attlist | ||
| 3863 | & common-printable-attlist | ||
| 3864 | & common-readonly-attlist | ||
| 3865 | & size | ||
| 3866 | & common-tab-attlist | ||
| 3867 | & common-title-attlist | ||
| 3868 | & common-value-attlist | ||
| 3869 | & common-convert-empty-attlist | ||
| 3870 | & common-data-field-attlist | ||
| 3871 | & list-source | ||
| 3872 | & list-source-type | ||
| 3873 | & common-linked-cell | ||
| 3874 | & common-source-cell-range | ||
| 3875 | & attribute form:auto-complete { boolean }? | ||
| 3876 | form-item = element form:item { form-item-attlist, text } | ||
| 3877 | form-item-attlist = label | ||
| 3878 | form-listbox-attlist = | ||
| 3879 | form-control-attlist | ||
| 3880 | & common-disabled-attlist | ||
| 3881 | & dropdown | ||
| 3882 | & common-printable-attlist | ||
| 3883 | & size | ||
| 3884 | & common-tab-attlist | ||
| 3885 | & common-title-attlist | ||
| 3886 | & bound-column | ||
| 3887 | & common-data-field-attlist | ||
| 3888 | & list-source | ||
| 3889 | & list-source-type | ||
| 3890 | & common-linked-cell | ||
| 3891 | & list-linkage-type | ||
| 3892 | & common-source-cell-range | ||
| 3893 | & attribute form:multiple { boolean }? | ||
| 3894 | & attribute form:xforms-list-source { \string }? | ||
| 3895 | list-linkage-type = | ||
| 3896 | attribute form:list-linkage-type { | ||
| 3897 | "selection" | "selection-indices" | ||
| 3898 | }? | ||
| 3899 | form-option = element form:option { form-option-attlist, text } | ||
| 3900 | form-option-attlist = | ||
| 3901 | current-selected, selected, label, common-value-attlist | ||
| 3902 | form-button-attlist = | ||
| 3903 | form-control-attlist | ||
| 3904 | & button-type | ||
| 3905 | & common-disabled-attlist | ||
| 3906 | & label | ||
| 3907 | & image-data | ||
| 3908 | & common-printable-attlist | ||
| 3909 | & common-tab-attlist | ||
| 3910 | & target-frame | ||
| 3911 | & target-location | ||
| 3912 | & common-title-attlist | ||
| 3913 | & common-value-attlist | ||
| 3914 | & common-form-relative-image-position-attlist | ||
| 3915 | & common-repeat | ||
| 3916 | & common-delay-for-repeat | ||
| 3917 | & attribute form:default-button { boolean }? | ||
| 3918 | & attribute form:toggle { boolean }? | ||
| 3919 | & attribute form:focus-on-click { boolean }? | ||
| 3920 | & attribute form:xforms-submission { \string }? | ||
| 3921 | form-image-attlist = | ||
| 3922 | form-control-attlist, | ||
| 3923 | button-type, | ||
| 3924 | common-disabled-attlist, | ||
| 3925 | image-data, | ||
| 3926 | common-printable-attlist, | ||
| 3927 | common-tab-attlist, | ||
| 3928 | target-frame, | ||
| 3929 | target-location, | ||
| 3930 | common-title-attlist, | ||
| 3931 | common-value-attlist | ||
| 3932 | form-checkbox-attlist = | ||
| 3933 | form-control-attlist | ||
| 3934 | & common-disabled-attlist | ||
| 3935 | & label | ||
| 3936 | & common-printable-attlist | ||
| 3937 | & common-tab-attlist | ||
| 3938 | & common-title-attlist | ||
| 3939 | & common-value-attlist | ||
| 3940 | & common-data-field-attlist | ||
| 3941 | & common-form-visual-effect-attlist | ||
| 3942 | & common-form-relative-image-position-attlist | ||
| 3943 | & common-linked-cell | ||
| 3944 | & attribute form:current-state { states }? | ||
| 3945 | & attribute form:is-tristate { boolean }? | ||
| 3946 | & attribute form:state { states }? | ||
| 3947 | states = "unchecked" | "checked" | "unknown" | ||
| 3948 | form-radio-attlist = | ||
| 3949 | form-control-attlist, | ||
| 3950 | current-selected, | ||
| 3951 | common-disabled-attlist, | ||
| 3952 | label, | ||
| 3953 | common-printable-attlist, | ||
| 3954 | selected, | ||
| 3955 | common-tab-attlist, | ||
| 3956 | common-title-attlist, | ||
| 3957 | common-value-attlist, | ||
| 3958 | common-data-field-attlist, | ||
| 3959 | common-form-visual-effect-attlist, | ||
| 3960 | common-form-relative-image-position-attlist, | ||
| 3961 | common-linked-cell | ||
| 3962 | form-frame-attlist = | ||
| 3963 | form-control-attlist, | ||
| 3964 | common-disabled-attlist, | ||
| 3965 | for, | ||
| 3966 | label, | ||
| 3967 | common-printable-attlist, | ||
| 3968 | common-title-attlist | ||
| 3969 | form-image-frame-attlist = | ||
| 3970 | form-control-attlist, | ||
| 3971 | common-disabled-attlist, | ||
| 3972 | image-data, | ||
| 3973 | common-printable-attlist, | ||
| 3974 | common-readonly-attlist, | ||
| 3975 | common-title-attlist, | ||
| 3976 | common-data-field-attlist | ||
| 3977 | form-hidden-attlist = form-control-attlist, common-value-attlist | ||
| 3978 | form-grid-attlist = | ||
| 3979 | form-control-attlist, | ||
| 3980 | common-disabled-attlist, | ||
| 3981 | common-printable-attlist, | ||
| 3982 | common-tab-attlist, | ||
| 3983 | common-title-attlist | ||
| 3984 | form-column = | ||
| 3985 | element form:column { form-column-attlist, column-controls+ } | ||
| 3986 | form-column-attlist = | ||
| 3987 | common-form-control-attlist, label, text-style-name | ||
| 3988 | text-style-name = attribute form:text-style-name { styleNameRef }? | ||
| 3989 | form-value-range-attlist = | ||
| 3990 | form-control-attlist | ||
| 3991 | & common-disabled-attlist | ||
| 3992 | & common-printable-attlist | ||
| 3993 | & common-tab-attlist | ||
| 3994 | & common-title-attlist | ||
| 3995 | & common-value-attlist | ||
| 3996 | & common-linked-cell | ||
| 3997 | & common-repeat | ||
| 3998 | & common-delay-for-repeat | ||
| 3999 | & attribute form:max-value { integer }? | ||
| 4000 | & attribute form:min-value { integer }? | ||
| 4001 | & attribute form:step-size { positiveInteger }? | ||
| 4002 | & attribute form:page-step-size { positiveInteger }? | ||
| 4003 | & attribute form:orientation { "horizontal" | "vertical" }? | ||
| 4004 | form-generic-control-attlist = form-control-attlist | ||
| 4005 | common-form-control-attlist = | ||
| 4006 | attribute form:name { \string }? | ||
| 4007 | & attribute form:control-implementation { namespacedToken }? | ||
| 4008 | xforms-bind-attlist = attribute xforms:bind { \string }? | ||
| 4009 | types = "submit" | "reset" | "push" | "url" | ||
| 4010 | button-type = attribute form:button-type { types }? | ||
| 4011 | common-control-id-attlist = | ||
| 4012 | xml-id, | ||
| 4013 | attribute form:id { NCName }? | ||
| 4014 | current-selected = attribute form:current-selected { boolean }? | ||
| 4015 | common-value-attlist = attribute form:value { \string }? | ||
| 4016 | common-current-value-attlist = attribute form:current-value { \string }? | ||
| 4017 | common-disabled-attlist = attribute form:disabled { boolean }? | ||
| 4018 | dropdown = attribute form:dropdown { boolean }? | ||
| 4019 | for = attribute form:for { \string }? | ||
| 4020 | image-data = attribute form:image-data { anyIRI }? | ||
| 4021 | label = attribute form:label { \string }? | ||
| 4022 | common-maxlength-attlist = | ||
| 4023 | attribute form:max-length { nonNegativeInteger }? | ||
| 4024 | common-printable-attlist = attribute form:printable { boolean }? | ||
| 4025 | common-readonly-attlist = attribute form:readonly { boolean }? | ||
| 4026 | selected = attribute form:selected { boolean }? | ||
| 4027 | size = attribute form:size { nonNegativeInteger }? | ||
| 4028 | common-tab-attlist = | ||
| 4029 | attribute form:tab-index { nonNegativeInteger }? | ||
| 4030 | & attribute form:tab-stop { boolean }? | ||
| 4031 | target-frame = attribute office:target-frame { targetFrameName }? | ||
| 4032 | target-location = attribute xlink:href { anyIRI }? | ||
| 4033 | common-title-attlist = attribute form:title { \string }? | ||
| 4034 | common-form-visual-effect-attlist = | ||
| 4035 | attribute form:visual-effect { "flat" | "3d" }? | ||
| 4036 | common-form-relative-image-position-attlist = | ||
| 4037 | attribute form:image-position { "center" }? | ||
| 4038 | | (attribute form:image-position { | ||
| 4039 | "start" | "end" | "top" | "bottom" | ||
| 4040 | }, | ||
| 4041 | attribute form:image-align { "start" | "center" | "end" }?) | ||
| 4042 | bound-column = attribute form:bound-column { \string }? | ||
| 4043 | common-convert-empty-attlist = | ||
| 4044 | attribute form:convert-empty-to-null { boolean }? | ||
| 4045 | common-data-field-attlist = attribute form:data-field { \string }? | ||
| 4046 | list-source = attribute form:list-source { \string }? | ||
| 4047 | list-source-type = | ||
| 4048 | attribute form:list-source-type { | ||
| 4049 | "table" | ||
| 4050 | | "query" | ||
| 4051 | | "sql" | ||
| 4052 | | "sql-pass-through" | ||
| 4053 | | "value-list" | ||
| 4054 | | "table-fields" | ||
| 4055 | }? | ||
| 4056 | common-linked-cell = | ||
| 4057 | attribute form:linked-cell { cellAddress | \string }? | ||
| 4058 | common-source-cell-range = | ||
| 4059 | attribute form:source-cell-range { cellRangeAddress | \string }? | ||
| 4060 | common-spin-button = attribute form:spin-button { boolean }? | ||
| 4061 | common-repeat = attribute form:repeat { boolean }? | ||
| 4062 | common-delay-for-repeat = attribute form:delay-for-repeat { duration }? | ||
| 4063 | form-properties = element form:properties { form-property+ } | ||
| 4064 | form-property = | ||
| 4065 | element form:property { | ||
| 4066 | form-property-name, form-property-value-and-type-attlist | ||
| 4067 | } | ||
| 4068 | | element form:list-property { | ||
| 4069 | form-property-name, form-property-type-and-value-list | ||
| 4070 | } | ||
| 4071 | form-property-name = attribute form:property-name { \string } | ||
| 4072 | form-property-value-and-type-attlist = | ||
| 4073 | common-value-and-type-attlist | ||
| 4074 | | attribute office:value-type { "void" } | ||
| 4075 | form-property-type-and-value-list = | ||
| 4076 | (attribute office:value-type { "float" }, | ||
| 4077 | element form:list-value { | ||
| 4078 | attribute office:value { double } | ||
| 4079 | }*) | ||
| 4080 | | (attribute office:value-type { "percentage" }, | ||
| 4081 | element form:list-value { | ||
| 4082 | attribute office:value { double } | ||
| 4083 | }*) | ||
| 4084 | | (attribute office:value-type { "currency" }, | ||
| 4085 | element form:list-value { | ||
| 4086 | attribute office:value { double }, | ||
| 4087 | attribute office:currency { \string }? | ||
| 4088 | }*) | ||
| 4089 | | (attribute office:value-type { "date" }, | ||
| 4090 | element form:list-value { | ||
| 4091 | attribute office:date-value { dateOrDateTime } | ||
| 4092 | }*) | ||
| 4093 | | (attribute office:value-type { "time" }, | ||
| 4094 | element form:list-value { | ||
| 4095 | attribute office:time-value { duration } | ||
| 4096 | }*) | ||
| 4097 | | (attribute office:value-type { "boolean" }, | ||
| 4098 | element form:list-value { | ||
| 4099 | attribute office:boolean-value { boolean } | ||
| 4100 | }*) | ||
| 4101 | | (attribute office:value-type { "string" }, | ||
| 4102 | element form:list-value { | ||
| 4103 | attribute office:string-value { \string } | ||
| 4104 | }*) | ||
| 4105 | | attribute office:value-type { "void" } | ||
| 4106 | office-annotation = | ||
| 4107 | element office:annotation { | ||
| 4108 | office-annotation-attlist, | ||
| 4109 | draw-caption-attlist, | ||
| 4110 | common-draw-position-attlist, | ||
| 4111 | common-draw-size-attlist, | ||
| 4112 | common-draw-shape-with-text-and-styles-attlist, | ||
| 4113 | dc-creator?, | ||
| 4114 | dc-date?, | ||
| 4115 | meta-date-string?, | ||
| 4116 | (text-p | text-list)* | ||
| 4117 | } | ||
| 4118 | office-annotation-end = | ||
| 4119 | element office:annotation-end { office-annotation-end-attlist } | ||
| 4120 | office-annotation-attlist = | ||
| 4121 | attribute office:display { boolean }? | ||
| 4122 | & common-office-annotation-name-attlist? | ||
| 4123 | office-annotation-end-attlist = common-office-annotation-name-attlist | ||
| 4124 | common-office-annotation-name-attlist = | ||
| 4125 | attribute office:name { \string } | ||
| 4126 | meta-date-string = element meta:date-string { \string } | ||
| 4127 | common-num-format-prefix-suffix-attlist = | ||
| 4128 | attribute style:num-prefix { \string }?, | ||
| 4129 | attribute style:num-suffix { \string }? | ||
| 4130 | common-num-format-attlist = | ||
| 4131 | attribute style:num-format { "1" | "i" | "I" | \string | empty } | ||
| 4132 | | (attribute style:num-format { "a" | "A" }, | ||
| 4133 | style-num-letter-sync-attlist) | ||
| 4134 | | empty | ||
| 4135 | style-num-letter-sync-attlist = | ||
| 4136 | attribute style:num-letter-sync { boolean }? | ||
| 4137 | office-change-info = | ||
| 4138 | element office:change-info { dc-creator, dc-date, text-p* } | ||
| 4139 | office-event-listeners = | ||
| 4140 | element office:event-listeners { | ||
| 4141 | (script-event-listener | presentation-event-listener)* | ||
| 4142 | } | ||
| 4143 | script-event-listener = | ||
| 4144 | element script:event-listener { script-event-listener-attlist, empty } | ||
| 4145 | script-event-listener-attlist = | ||
| 4146 | attribute script:event-name { \string } | ||
| 4147 | & attribute script:language { \string } | ||
| 4148 | & (attribute script:macro-name { \string } | ||
| 4149 | | (attribute xlink:type { "simple" }, | ||
| 4150 | attribute xlink:href { anyIRI }, | ||
| 4151 | attribute xlink:actuate { "onRequest" }?)) | ||
| 4152 | math-math = element math:math { mathMarkup } | ||
| 4153 | [ | ||
| 4154 | dc:description [ | ||
| 4155 | "To avoid inclusion of the complete MathML schema, anything is allowed within a math:math top-level element" | ||
| 4156 | ] | ||
| 4157 | ] | ||
| 4158 | mathMarkup = | ||
| 4159 | (attribute * { text } | ||
| 4160 | | text | ||
| 4161 | | element * { mathMarkup })* | ||
| 4162 | text-dde-connection-decl = | ||
| 4163 | element text:dde-connection-decl { | ||
| 4164 | text-dde-connection-decl-attlist, common-dde-connection-decl-attlist | ||
| 4165 | } | ||
| 4166 | text-dde-connection-decl-attlist = attribute office:name { \string } | ||
| 4167 | common-dde-connection-decl-attlist = | ||
| 4168 | attribute office:dde-application { \string } | ||
| 4169 | & attribute office:dde-topic { \string } | ||
| 4170 | & attribute office:dde-item { \string } | ||
| 4171 | & attribute office:automatic-update { boolean }? | ||
| 4172 | table-dde-link = | ||
| 4173 | element table:dde-link { office-dde-source, table-table } | ||
| 4174 | office-dde-source = | ||
| 4175 | element office:dde-source { | ||
| 4176 | office-dde-source-attlist, common-dde-connection-decl-attlist | ||
| 4177 | } | ||
| 4178 | office-dde-source-attlist = | ||
| 4179 | attribute office:name { \string }? | ||
| 4180 | & attribute office:conversion-mode { | ||
| 4181 | "into-default-style-data-style" | ||
| 4182 | | "into-english-number" | ||
| 4183 | | "keep-text" | ||
| 4184 | }? | ||
| 4185 | animation-element = | ||
| 4186 | element anim:animate { | ||
| 4187 | common-anim-target-attlist, | ||
| 4188 | common-anim-named-target-attlist, | ||
| 4189 | common-anim-values-attlist, | ||
| 4190 | common-anim-spline-mode-attlist, | ||
| 4191 | common-spline-anim-value-attlist, | ||
| 4192 | common-timing-attlist, | ||
| 4193 | common-anim-add-accum-attlist | ||
| 4194 | } | ||
| 4195 | | element anim:set { | ||
| 4196 | common-anim-target-attlist, | ||
| 4197 | common-anim-named-target-attlist, | ||
| 4198 | common-anim-set-values-attlist, | ||
| 4199 | common-timing-attlist, | ||
| 4200 | common-anim-add-accum-attlist | ||
| 4201 | } | ||
| 4202 | | element anim:animateMotion { | ||
| 4203 | anim-animate-motion-attlist, | ||
| 4204 | common-anim-target-attlist, | ||
| 4205 | common-anim-named-target-attlist, | ||
| 4206 | common-anim-add-accum-attlist, | ||
| 4207 | common-anim-values-attlist, | ||
| 4208 | common-timing-attlist, | ||
| 4209 | common-spline-anim-value-attlist | ||
| 4210 | } | ||
| 4211 | | element anim:animateColor { | ||
| 4212 | common-anim-target-attlist, | ||
| 4213 | common-anim-named-target-attlist, | ||
| 4214 | common-anim-add-accum-attlist, | ||
| 4215 | common-anim-values-attlist, | ||
| 4216 | common-anim-spline-mode-attlist, | ||
| 4217 | common-spline-anim-value-attlist, | ||
| 4218 | anim-animate-color-attlist, | ||
| 4219 | common-timing-attlist | ||
| 4220 | } | ||
| 4221 | | element anim:animateTransform { | ||
| 4222 | common-anim-target-attlist, | ||
| 4223 | common-anim-named-target-attlist, | ||
| 4224 | common-anim-add-accum-attlist, | ||
| 4225 | common-anim-values-attlist, | ||
| 4226 | anim-animate-transform-attlist, | ||
| 4227 | common-timing-attlist | ||
| 4228 | } | ||
| 4229 | | element anim:transitionFilter { | ||
| 4230 | common-anim-target-attlist, | ||
| 4231 | common-anim-add-accum-attlist, | ||
| 4232 | common-anim-values-attlist, | ||
| 4233 | common-anim-spline-mode-attlist, | ||
| 4234 | anim-transition-filter-attlist, | ||
| 4235 | common-timing-attlist | ||
| 4236 | } | ||
| 4237 | | element anim:par { | ||
| 4238 | common-anim-attlist, | ||
| 4239 | common-timing-attlist, | ||
| 4240 | common-endsync-timing-attlist, | ||
| 4241 | animation-element* | ||
| 4242 | } | ||
| 4243 | | element anim:seq { | ||
| 4244 | common-anim-attlist, | ||
| 4245 | common-endsync-timing-attlist, | ||
| 4246 | common-timing-attlist, | ||
| 4247 | animation-element* | ||
| 4248 | } | ||
| 4249 | | element anim:iterate { | ||
| 4250 | common-anim-attlist, | ||
| 4251 | anim-iterate-attlist, | ||
| 4252 | common-timing-attlist, | ||
| 4253 | common-endsync-timing-attlist, | ||
| 4254 | animation-element* | ||
| 4255 | } | ||
| 4256 | | element anim:audio { | ||
| 4257 | common-anim-attlist, | ||
| 4258 | anim-audio-attlist, | ||
| 4259 | common-basic-timing-attlist | ||
| 4260 | } | ||
| 4261 | | element anim:command { | ||
| 4262 | common-anim-attlist, | ||
| 4263 | anim-command-attlist, | ||
| 4264 | common-begin-end-timing-attlist, | ||
| 4265 | common-anim-target-attlist, | ||
| 4266 | element anim:param { | ||
| 4267 | attribute anim:name { \string }, | ||
| 4268 | attribute anim:value { \string } | ||
| 4269 | }* | ||
| 4270 | } | ||
| 4271 | anim-animate-motion-attlist = | ||
| 4272 | attribute svg:path { pathData }? | ||
| 4273 | & attribute svg:origin { \string }? | ||
| 4274 | & attribute smil:calcMode { | ||
| 4275 | "discrete" | "linear" | "paced" | "spline" | ||
| 4276 | }? | ||
| 4277 | anim-animate-color-attlist = | ||
| 4278 | attribute anim:color-interpolation { "rgb" | "hsl" }? | ||
| 4279 | & attribute anim:color-interpolation-direction { | ||
| 4280 | "clockwise" | "counter-clockwise" | ||
| 4281 | }? | ||
| 4282 | anim-animate-transform-attlist = | ||
| 4283 | attribute svg:type { | ||
| 4284 | "translate" | "scale" | "rotate" | "skewX" | "skewY" | ||
| 4285 | } | ||
| 4286 | anim-transition-filter-attlist = | ||
| 4287 | attribute smil:type { \string } | ||
| 4288 | & attribute smil:subtype { \string }? | ||
| 4289 | & attribute smil:direction { "forward" | "reverse" }? | ||
| 4290 | & attribute smil:fadeColor { color }? | ||
| 4291 | & attribute smil:mode { "in" | "out" }? | ||
| 4292 | common-anim-target-attlist = | ||
| 4293 | attribute smil:targetElement { IDREF }? | ||
| 4294 | & attribute anim:sub-item { \string }? | ||
| 4295 | common-anim-named-target-attlist = | ||
| 4296 | attribute smil:attributeName { \string } | ||
| 4297 | common-anim-values-attlist = | ||
| 4298 | attribute smil:values { \string }? | ||
| 4299 | & attribute anim:formula { \string }? | ||
| 4300 | & common-anim-set-values-attlist | ||
| 4301 | & attribute smil:from { \string }? | ||
| 4302 | & attribute smil:by { \string }? | ||
| 4303 | common-anim-spline-mode-attlist = | ||
| 4304 | attribute smil:calcMode { | ||
| 4305 | "discrete" | "linear" | "paced" | "spline" | ||
| 4306 | }? | ||
| 4307 | common-spline-anim-value-attlist = | ||
| 4308 | attribute smil:keyTimes { \string }? | ||
| 4309 | & attribute smil:keySplines { \string }? | ||
| 4310 | common-anim-add-accum-attlist = | ||
| 4311 | attribute smil:accumulate { "none" | "sum" }? | ||
| 4312 | & attribute smil:additive { "replace" | "sum" }? | ||
| 4313 | common-anim-set-values-attlist = attribute smil:to { \string }? | ||
| 4314 | common-begin-end-timing-attlist = | ||
| 4315 | attribute smil:begin { \string }? | ||
| 4316 | & attribute smil:end { \string }? | ||
| 4317 | common-dur-timing-attlist = attribute smil:dur { \string }? | ||
| 4318 | common-endsync-timing-attlist = | ||
| 4319 | attribute smil:endsync { "first" | "last" | "all" | "media" | IDREF }? | ||
| 4320 | common-repeat-timing-attlist = | ||
| 4321 | attribute smil:repeatDur { \string }?, | ||
| 4322 | attribute smil:repeatCount { nonNegativeDecimal | "indefinite" }? | ||
| 4323 | nonNegativeDecimal = xsd:decimal { minInclusive = "0.0" } | ||
| 4324 | common-fill-timing-attlist = | ||
| 4325 | attribute smil:fill { | ||
| 4326 | "remove" | "freeze" | "hold" | "auto" | "default" | "transition" | ||
| 4327 | }? | ||
| 4328 | common-fill-default-attlist = | ||
| 4329 | attribute smil:fillDefault { | ||
| 4330 | "remove" | "freeze" | "hold" | "transition" | "auto" | "inherit" | ||
| 4331 | }? | ||
| 4332 | common-restart-timing-attlist = | ||
| 4333 | attribute smil:restart { | ||
| 4334 | "never" | "always" | "whenNotActive" | "default" | ||
| 4335 | }? | ||
| 4336 | common-restart-default-attlist = | ||
| 4337 | attribute smil:restartDefault { | ||
| 4338 | "never" | "always" | "whenNotActive" | "inherit" | ||
| 4339 | }? | ||
| 4340 | common-time-manip-attlist = | ||
| 4341 | attribute smil:accelerate { zeroToOneDecimal }? | ||
| 4342 | & attribute smil:decelerate { zeroToOneDecimal }? | ||
| 4343 | & attribute smil:autoReverse { boolean }? | ||
| 4344 | zeroToOneDecimal = xsd:decimal { minInclusive = "0" maxInclusive = "1" } | ||
| 4345 | common-basic-timing-attlist = | ||
| 4346 | common-begin-end-timing-attlist, | ||
| 4347 | common-dur-timing-attlist, | ||
| 4348 | common-repeat-timing-attlist, | ||
| 4349 | common-restart-timing-attlist, | ||
| 4350 | common-restart-default-attlist, | ||
| 4351 | common-fill-timing-attlist, | ||
| 4352 | common-fill-default-attlist | ||
| 4353 | common-timing-attlist = | ||
| 4354 | common-basic-timing-attlist, common-time-manip-attlist | ||
| 4355 | anim-iterate-attlist = | ||
| 4356 | common-anim-target-attlist | ||
| 4357 | & attribute anim:iterate-type { \string }? | ||
| 4358 | & attribute anim:iterate-interval { duration }? | ||
| 4359 | anim-audio-attlist = | ||
| 4360 | attribute xlink:href { anyIRI }? | ||
| 4361 | & attribute anim:audio-level { double }? | ||
| 4362 | anim-command-attlist = attribute anim:command { \string } | ||
| 4363 | style-style = | ||
| 4364 | element style:style { | ||
| 4365 | style-style-attlist, style-style-content, style-map* | ||
| 4366 | } | ||
| 4367 | common-in-content-meta-attlist = | ||
| 4368 | attribute xhtml:about { URIorSafeCURIE }, | ||
| 4369 | attribute xhtml:property { CURIEs }, | ||
| 4370 | common-meta-literal-attlist | ||
| 4371 | common-meta-literal-attlist = | ||
| 4372 | attribute xhtml:datatype { CURIE }?, | ||
| 4373 | attribute xhtml:content { \string }? | ||
| 4374 | xml-id = attribute xml:id { ID } | ||
| 4375 | style-style-attlist = | ||
| 4376 | attribute style:name { styleName } | ||
| 4377 | & attribute style:display-name { \string }? | ||
| 4378 | & attribute style:parent-style-name { styleNameRef }? | ||
| 4379 | & attribute style:next-style-name { styleNameRef }? | ||
| 4380 | & attribute style:list-level { positiveInteger | empty }? | ||
| 4381 | & attribute style:list-style-name { styleName | empty }? | ||
| 4382 | & attribute style:master-page-name { styleNameRef }? | ||
| 4383 | & attribute style:auto-update { boolean }? | ||
| 4384 | & attribute style:data-style-name { styleNameRef }? | ||
| 4385 | & attribute style:percentage-data-style-name { styleNameRef }? | ||
| 4386 | & attribute style:class { \string }? | ||
| 4387 | & attribute style:default-outline-level { positiveInteger | empty }? | ||
| 4388 | style-map = element style:map { style-map-attlist, empty } | ||
| 4389 | style-map-attlist = | ||
| 4390 | attribute style:condition { \string } | ||
| 4391 | & attribute style:apply-style-name { styleNameRef } | ||
| 4392 | & attribute style:base-cell-address { cellAddress }? | ||
| 4393 | style-default-style = | ||
| 4394 | element style:default-style { style-style-content } | ||
| 4395 | style-page-layout = | ||
| 4396 | element style:page-layout { | ||
| 4397 | style-page-layout-attlist, style-page-layout-content | ||
| 4398 | } | ||
| 4399 | style-page-layout-content = | ||
| 4400 | style-page-layout-properties?, | ||
| 4401 | style-header-style?, | ||
| 4402 | style-footer-style? | ||
| 4403 | style-page-layout-attlist = | ||
| 4404 | attribute style:name { styleName } | ||
| 4405 | & attribute style:page-usage { | ||
| 4406 | "all" | "left" | "right" | "mirrored" | ||
| 4407 | }? | ||
| 4408 | style-header-style = | ||
| 4409 | element style:header-style { style-header-footer-properties? } | ||
| 4410 | style-footer-style = | ||
| 4411 | element style:footer-style { style-header-footer-properties? } | ||
| 4412 | style-default-page-layout = | ||
| 4413 | element style:default-page-layout { style-page-layout-content } | ||
| 4414 | style-master-page = | ||
| 4415 | element style:master-page { | ||
| 4416 | style-master-page-attlist, | ||
| 4417 | (style-header, style-header-left?)?, | ||
| 4418 | (style-footer, style-footer-left?)?, | ||
| 4419 | draw-layer-set?, | ||
| 4420 | office-forms?, | ||
| 4421 | shape*, | ||
| 4422 | animation-element?, | ||
| 4423 | presentation-notes? | ||
| 4424 | } | ||
| 4425 | style-master-page-attlist = | ||
| 4426 | attribute style:name { styleName } | ||
| 4427 | & attribute style:display-name { \string }? | ||
| 4428 | & attribute style:page-layout-name { styleNameRef } | ||
| 4429 | & attribute draw:style-name { styleNameRef }? | ||
| 4430 | & attribute style:next-style-name { styleNameRef }? | ||
| 4431 | style-header = | ||
| 4432 | element style:header { | ||
| 4433 | common-style-header-footer-attlist, header-footer-content | ||
| 4434 | } | ||
| 4435 | style-footer = | ||
| 4436 | element style:footer { | ||
| 4437 | common-style-header-footer-attlist, header-footer-content | ||
| 4438 | } | ||
| 4439 | style-header-left = | ||
| 4440 | element style:header-left { | ||
| 4441 | common-style-header-footer-attlist, header-footer-content | ||
| 4442 | } | ||
| 4443 | style-footer-left = | ||
| 4444 | element style:footer-left { | ||
| 4445 | common-style-header-footer-attlist, header-footer-content | ||
| 4446 | } | ||
| 4447 | header-footer-content = | ||
| 4448 | (text-tracked-changes, | ||
| 4449 | text-decls, | ||
| 4450 | (text-h | ||
| 4451 | | text-p | ||
| 4452 | | text-list | ||
| 4453 | | table-table | ||
| 4454 | | text-section | ||
| 4455 | | text-table-of-content | ||
| 4456 | | text-illustration-index | ||
| 4457 | | text-table-index | ||
| 4458 | | text-object-index | ||
| 4459 | | text-user-index | ||
| 4460 | | text-alphabetical-index | ||
| 4461 | | text-bibliography | ||
| 4462 | | text-index-title | ||
| 4463 | | change-marks)*) | ||
| 4464 | | (style-region-left?, style-region-center?, style-region-right?) | ||
| 4465 | common-style-header-footer-attlist = | ||
| 4466 | attribute style:display { boolean }? | ||
| 4467 | style-region-left = element style:region-left { region-content } | ||
| 4468 | style-region-center = element style:region-center { region-content } | ||
| 4469 | style-region-right = element style:region-right { region-content } | ||
| 4470 | region-content = text-p* | ||
| 4471 | presentation-notes = | ||
| 4472 | element presentation:notes { | ||
| 4473 | common-presentation-header-footer-attlist, | ||
| 4474 | presentation-notes-attlist, | ||
| 4475 | office-forms, | ||
| 4476 | shape* | ||
| 4477 | } | ||
| 4478 | presentation-notes-attlist = | ||
| 4479 | attribute style:page-layout-name { styleNameRef }? | ||
| 4480 | & attribute draw:style-name { styleNameRef }? | ||
| 4481 | table-table-template = | ||
| 4482 | element table:table-template { | ||
| 4483 | table-table-template-attlist, | ||
| 4484 | table-first-row?, | ||
| 4485 | table-last-row?, | ||
| 4486 | table-first-column?, | ||
| 4487 | table-last-column?, | ||
| 4488 | table-body, | ||
| 4489 | table-even-rows?, | ||
| 4490 | table-odd-rows?, | ||
| 4491 | table-even-columns?, | ||
| 4492 | table-odd-columns?, | ||
| 4493 | table-background? | ||
| 4494 | } | ||
| 4495 | table-table-template-attlist = | ||
| 4496 | attribute table:name { \string } | ||
| 4497 | & attribute table:first-row-start-column { rowOrCol } | ||
| 4498 | & attribute table:first-row-end-column { rowOrCol } | ||
| 4499 | & attribute table:last-row-start-column { rowOrCol } | ||
| 4500 | & attribute table:last-row-end-column { rowOrCol } | ||
| 4501 | rowOrCol = "row" | "column" | ||
| 4502 | table-first-row = | ||
| 4503 | element table:first-row { common-table-template-attlist, empty } | ||
| 4504 | table-last-row = | ||
| 4505 | element table:last-row { common-table-template-attlist, empty } | ||
| 4506 | table-first-column = | ||
| 4507 | element table:first-column { common-table-template-attlist, empty } | ||
| 4508 | table-last-column = | ||
| 4509 | element table:last-column { common-table-template-attlist, empty } | ||
| 4510 | table-body = element table:body { common-table-template-attlist, empty } | ||
| 4511 | table-even-rows = | ||
| 4512 | element table:even-rows { common-table-template-attlist, empty } | ||
| 4513 | table-odd-rows = | ||
| 4514 | element table:odd-rows { common-table-template-attlist, empty } | ||
| 4515 | table-even-columns = | ||
| 4516 | element table:even-columns { common-table-template-attlist, empty } | ||
| 4517 | table-odd-columns = | ||
| 4518 | element table:odd-columns { common-table-template-attlist, empty } | ||
| 4519 | common-table-template-attlist = | ||
| 4520 | attribute table:style-name { styleNameRef }, | ||
| 4521 | attribute table:paragraph-style-name { styleNameRef }? | ||
| 4522 | table-background = | ||
| 4523 | element table:background { table-background-attlist, empty } | ||
| 4524 | table-background-attlist = attribute table:style-name { styleNameRef } | ||
| 4525 | style-font-face = | ||
| 4526 | element style:font-face { | ||
| 4527 | style-font-face-attlist, svg-font-face-src?, svg-definition-src? | ||
| 4528 | } | ||
| 4529 | style-font-face-attlist = | ||
| 4530 | attribute svg:font-family { \string }? | ||
| 4531 | & attribute svg:font-style { fontStyle }? | ||
| 4532 | & attribute svg:font-variant { fontVariant }? | ||
| 4533 | & attribute svg:font-weight { fontWeight }? | ||
| 4534 | & attribute svg:font-stretch { | ||
| 4535 | "normal" | ||
| 4536 | | "ultra-condensed" | ||
| 4537 | | "extra-condensed" | ||
| 4538 | | "condensed" | ||
| 4539 | | "semi-condensed" | ||
| 4540 | | "semi-expanded" | ||
| 4541 | | "expanded" | ||
| 4542 | | "extra-expanded" | ||
| 4543 | | "ultra-expanded" | ||
| 4544 | }? | ||
| 4545 | & attribute svg:font-size { positiveLength }? | ||
| 4546 | & attribute svg:unicode-range { \string }? | ||
| 4547 | & attribute svg:units-per-em { integer }? | ||
| 4548 | & attribute svg:panose-1 { \string }? | ||
| 4549 | & attribute svg:stemv { integer }? | ||
| 4550 | & attribute svg:stemh { integer }? | ||
| 4551 | & attribute svg:slope { integer }? | ||
| 4552 | & attribute svg:cap-height { integer }? | ||
| 4553 | & attribute svg:x-height { integer }? | ||
| 4554 | & attribute svg:accent-height { integer }? | ||
| 4555 | & attribute svg:ascent { integer }? | ||
| 4556 | & attribute svg:descent { integer }? | ||
| 4557 | & attribute svg:widths { \string }? | ||
| 4558 | & attribute svg:bbox { \string }? | ||
| 4559 | & attribute svg:ideographic { integer }? | ||
| 4560 | & attribute svg:alphabetic { integer }? | ||
| 4561 | & attribute svg:mathematical { integer }? | ||
| 4562 | & attribute svg:hanging { integer }? | ||
| 4563 | & attribute svg:v-ideographic { integer }? | ||
| 4564 | & attribute svg:v-alphabetic { integer }? | ||
| 4565 | & attribute svg:v-mathematical { integer }? | ||
| 4566 | & attribute svg:v-hanging { integer }? | ||
| 4567 | & attribute svg:underline-position { integer }? | ||
| 4568 | & attribute svg:underline-thickness { integer }? | ||
| 4569 | & attribute svg:strikethrough-position { integer }? | ||
| 4570 | & attribute svg:strikethrough-thickness { integer }? | ||
| 4571 | & attribute svg:overline-position { integer }? | ||
| 4572 | & attribute svg:overline-thickness { integer }? | ||
| 4573 | & attribute style:name { \string } | ||
| 4574 | & attribute style:font-adornments { \string }? | ||
| 4575 | & attribute style:font-family-generic { fontFamilyGeneric }? | ||
| 4576 | & attribute style:font-pitch { fontPitch }? | ||
| 4577 | & attribute style:font-charset { textEncoding }? | ||
| 4578 | svg-font-face-src = | ||
| 4579 | element svg:font-face-src { | ||
| 4580 | (svg-font-face-uri | svg-font-face-name)+ | ||
| 4581 | } | ||
| 4582 | svg-font-face-uri = | ||
| 4583 | element svg:font-face-uri { | ||
| 4584 | common-svg-font-face-xlink-attlist, svg-font-face-format* | ||
| 4585 | } | ||
| 4586 | svg-font-face-format = | ||
| 4587 | element svg:font-face-format { | ||
| 4588 | attribute svg:string { \string }?, | ||
| 4589 | empty | ||
| 4590 | } | ||
| 4591 | svg-font-face-name = | ||
| 4592 | element svg:font-face-name { | ||
| 4593 | attribute svg:name { \string }?, | ||
| 4594 | empty | ||
| 4595 | } | ||
| 4596 | svg-definition-src = | ||
| 4597 | element svg:definition-src { | ||
| 4598 | common-svg-font-face-xlink-attlist, empty | ||
| 4599 | } | ||
| 4600 | common-svg-font-face-xlink-attlist = | ||
| 4601 | attribute xlink:type { "simple" }, | ||
| 4602 | attribute xlink:href { anyIRI }, | ||
| 4603 | attribute xlink:actuate { "onRequest" }? | ||
| 4604 | number-number-style = | ||
| 4605 | element number:number-style { | ||
| 4606 | common-data-style-attlist, | ||
| 4607 | style-text-properties?, | ||
| 4608 | number-text?, | ||
| 4609 | (any-number, number-text?)?, | ||
| 4610 | style-map* | ||
| 4611 | } | ||
| 4612 | any-number = number-number | number-scientific-number | number-fraction | ||
| 4613 | number-number = | ||
| 4614 | element number:number { | ||
| 4615 | number-number-attlist, | ||
| 4616 | common-decimal-places-attlist, | ||
| 4617 | common-number-attlist, | ||
| 4618 | number-embedded-text* | ||
| 4619 | } | ||
| 4620 | number-number-attlist = | ||
| 4621 | attribute number:decimal-replacement { \string }? | ||
| 4622 | & attribute number:display-factor { double }? | ||
| 4623 | number-embedded-text = | ||
| 4624 | element number:embedded-text { number-embedded-text-attlist, text } | ||
| 4625 | number-embedded-text-attlist = attribute number:position { integer } | ||
| 4626 | number-scientific-number = | ||
| 4627 | element number:scientific-number { | ||
| 4628 | number-scientific-number-attlist, | ||
| 4629 | common-decimal-places-attlist, | ||
| 4630 | common-number-attlist, | ||
| 4631 | empty | ||
| 4632 | } | ||
| 4633 | number-scientific-number-attlist = | ||
| 4634 | attribute number:min-exponent-digits { integer }? | ||
| 4635 | number-fraction = | ||
| 4636 | element number:fraction { | ||
| 4637 | number-fraction-attlist, common-number-attlist, empty | ||
| 4638 | } | ||
| 4639 | number-fraction-attlist = | ||
| 4640 | attribute number:min-numerator-digits { integer }? | ||
| 4641 | & attribute number:min-denominator-digits { integer }? | ||
| 4642 | & attribute number:denominator-value { integer }? | ||
| 4643 | number-currency-style = | ||
| 4644 | element number:currency-style { | ||
| 4645 | common-data-style-attlist, | ||
| 4646 | common-auto-reorder-attlist, | ||
| 4647 | style-text-properties?, | ||
| 4648 | number-text?, | ||
| 4649 | ((number-and-text, currency-symbol-and-text?) | ||
| 4650 | | (currency-symbol-and-text, number-and-text?))?, | ||
| 4651 | style-map* | ||
| 4652 | } | ||
| 4653 | currency-symbol-and-text = number-currency-symbol, number-text? | ||
| 4654 | number-and-text = number-number, number-text? | ||
| 4655 | number-currency-symbol = | ||
| 4656 | element number:currency-symbol { | ||
| 4657 | number-currency-symbol-attlist, text | ||
| 4658 | } | ||
| 4659 | number-currency-symbol-attlist = | ||
| 4660 | attribute number:language { languageCode }?, | ||
| 4661 | attribute number:country { countryCode }?, | ||
| 4662 | attribute number:script { scriptCode }?, | ||
| 4663 | attribute number:rfc-language-tag { language }? | ||
| 4664 | number-percentage-style = | ||
| 4665 | element number:percentage-style { | ||
| 4666 | common-data-style-attlist, | ||
| 4667 | style-text-properties?, | ||
| 4668 | number-text?, | ||
| 4669 | number-and-text?, | ||
| 4670 | style-map* | ||
| 4671 | } | ||
| 4672 | number-date-style = | ||
| 4673 | element number:date-style { | ||
| 4674 | common-data-style-attlist, | ||
| 4675 | common-auto-reorder-attlist, | ||
| 4676 | common-format-source-attlist, | ||
| 4677 | style-text-properties?, | ||
| 4678 | number-text?, | ||
| 4679 | (any-date, number-text?)+, | ||
| 4680 | style-map* | ||
| 4681 | } | ||
| 4682 | any-date = | ||
| 4683 | number-day | ||
| 4684 | | number-month | ||
| 4685 | | number-year | ||
| 4686 | | number-era | ||
| 4687 | | number-day-of-week | ||
| 4688 | | number-week-of-year | ||
| 4689 | | number-quarter | ||
| 4690 | | number-hours | ||
| 4691 | | number-am-pm | ||
| 4692 | | number-minutes | ||
| 4693 | | number-seconds | ||
| 4694 | number-day = | ||
| 4695 | element number:day { | ||
| 4696 | number-day-attlist, common-calendar-attlist, empty | ||
| 4697 | } | ||
| 4698 | number-day-attlist = attribute number:style { "short" | "long" }? | ||
| 4699 | number-month = | ||
| 4700 | element number:month { | ||
| 4701 | number-month-attlist, common-calendar-attlist, empty | ||
| 4702 | } | ||
| 4703 | number-month-attlist = | ||
| 4704 | attribute number:textual { boolean }? | ||
| 4705 | & attribute number:possessive-form { boolean }? | ||
| 4706 | & attribute number:style { "short" | "long" }? | ||
| 4707 | number-year = | ||
| 4708 | element number:year { | ||
| 4709 | number-year-attlist, common-calendar-attlist, empty | ||
| 4710 | } | ||
| 4711 | number-year-attlist = attribute number:style { "short" | "long" }? | ||
| 4712 | number-era = | ||
| 4713 | element number:era { | ||
| 4714 | number-era-attlist, common-calendar-attlist, empty | ||
| 4715 | } | ||
| 4716 | number-era-attlist = attribute number:style { "short" | "long" }? | ||
| 4717 | number-day-of-week = | ||
| 4718 | element number:day-of-week { | ||
| 4719 | number-day-of-week-attlist, common-calendar-attlist, empty | ||
| 4720 | } | ||
| 4721 | number-day-of-week-attlist = | ||
| 4722 | attribute number:style { "short" | "long" }? | ||
| 4723 | number-week-of-year = | ||
| 4724 | element number:week-of-year { common-calendar-attlist, empty } | ||
| 4725 | number-quarter = | ||
| 4726 | element number:quarter { | ||
| 4727 | number-quarter-attlist, common-calendar-attlist, empty | ||
| 4728 | } | ||
| 4729 | number-quarter-attlist = attribute number:style { "short" | "long" }? | ||
| 4730 | number-time-style = | ||
| 4731 | element number:time-style { | ||
| 4732 | number-time-style-attlist, | ||
| 4733 | common-data-style-attlist, | ||
| 4734 | common-format-source-attlist, | ||
| 4735 | style-text-properties?, | ||
| 4736 | number-text?, | ||
| 4737 | (any-time, number-text?)+, | ||
| 4738 | style-map* | ||
| 4739 | } | ||
| 4740 | any-time = number-hours | number-am-pm | number-minutes | number-seconds | ||
| 4741 | number-time-style-attlist = | ||
| 4742 | attribute number:truncate-on-overflow { boolean }? | ||
| 4743 | number-hours = element number:hours { number-hours-attlist, empty } | ||
| 4744 | number-hours-attlist = attribute number:style { "short" | "long" }? | ||
| 4745 | number-minutes = | ||
| 4746 | element number:minutes { number-minutes-attlist, empty } | ||
| 4747 | number-minutes-attlist = attribute number:style { "short" | "long" }? | ||
| 4748 | number-seconds = | ||
| 4749 | element number:seconds { number-seconds-attlist, empty } | ||
| 4750 | number-seconds-attlist = | ||
| 4751 | attribute number:style { "short" | "long" }? | ||
| 4752 | & attribute number:decimal-places { integer }? | ||
| 4753 | number-am-pm = element number:am-pm { empty } | ||
| 4754 | number-boolean-style = | ||
| 4755 | element number:boolean-style { | ||
| 4756 | common-data-style-attlist, | ||
| 4757 | style-text-properties?, | ||
| 4758 | number-text?, | ||
| 4759 | (number-boolean, number-text?)?, | ||
| 4760 | style-map* | ||
| 4761 | } | ||
| 4762 | number-boolean = element number:boolean { empty } | ||
| 4763 | number-text-style = | ||
| 4764 | element number:text-style { | ||
| 4765 | common-data-style-attlist, | ||
| 4766 | style-text-properties?, | ||
| 4767 | number-text?, | ||
| 4768 | (number-text-content, number-text?)*, | ||
| 4769 | style-map* | ||
| 4770 | } | ||
| 4771 | number-text = element number:text { text } | ||
| 4772 | number-text-content = element number:text-content { empty } | ||
| 4773 | common-data-style-attlist = | ||
| 4774 | attribute style:name { styleName } | ||
| 4775 | & attribute style:display-name { \string }? | ||
| 4776 | & attribute number:language { languageCode }? | ||
| 4777 | & attribute number:country { countryCode }? | ||
| 4778 | & attribute number:script { scriptCode }? | ||
| 4779 | & attribute number:rfc-language-tag { language }? | ||
| 4780 | & attribute number:title { \string }? | ||
| 4781 | & attribute style:volatile { boolean }? | ||
| 4782 | & attribute number:transliteration-format { \string }? | ||
| 4783 | & attribute number:transliteration-language { countryCode }? | ||
| 4784 | & attribute number:transliteration-country { countryCode }? | ||
| 4785 | & attribute number:transliteration-style { | ||
| 4786 | "short" | "medium" | "long" | ||
| 4787 | }? | ||
| 4788 | common-auto-reorder-attlist = | ||
| 4789 | attribute number:automatic-order { boolean }? | ||
| 4790 | common-format-source-attlist = | ||
| 4791 | attribute number:format-source { "fixed" | "language" }? | ||
| 4792 | common-decimal-places-attlist = | ||
| 4793 | attribute number:decimal-places { integer }? | ||
| 4794 | common-number-attlist = | ||
| 4795 | attribute number:min-integer-digits { integer }? | ||
| 4796 | & attribute number:grouping { boolean }? | ||
| 4797 | common-calendar-attlist = | ||
| 4798 | attribute number:calendar { | ||
| 4799 | "gregorian" | ||
| 4800 | | "gengou" | ||
| 4801 | | "ROC" | ||
| 4802 | | "hanja_yoil" | ||
| 4803 | | "hanja" | ||
| 4804 | | "hijri" | ||
| 4805 | | "jewish" | ||
| 4806 | | "buddhist" | ||
| 4807 | | \string | ||
| 4808 | }? | ||
| 4809 | style-style-content = | ||
| 4810 | (attribute style:family { "text" }, | ||
| 4811 | style-text-properties?) | ||
| 4812 | | (attribute style:family { "paragraph" }, | ||
| 4813 | style-paragraph-properties?, | ||
| 4814 | style-text-properties?) | ||
| 4815 | | (attribute style:family { "section" }, | ||
| 4816 | style-section-properties?) | ||
| 4817 | | (attribute style:family { "ruby" }, | ||
| 4818 | style-ruby-properties?) | ||
| 4819 | | (attribute style:family { "table" }, | ||
| 4820 | style-table-properties?) | ||
| 4821 | | (attribute style:family { "table-column" }, | ||
| 4822 | style-table-column-properties?) | ||
| 4823 | | (attribute style:family { "table-row" }, | ||
| 4824 | style-table-row-properties?) | ||
| 4825 | | (attribute style:family { "table-cell" }, | ||
| 4826 | style-table-cell-properties?, | ||
| 4827 | style-paragraph-properties?, | ||
| 4828 | style-text-properties?) | ||
| 4829 | | (attribute style:family { "graphic" | "presentation" }, | ||
| 4830 | style-graphic-properties?, | ||
| 4831 | style-paragraph-properties?, | ||
| 4832 | style-text-properties?) | ||
| 4833 | | (attribute style:family { "drawing-page" }, | ||
| 4834 | style-drawing-page-properties?) | ||
| 4835 | | (attribute style:family { "chart" }, | ||
| 4836 | style-chart-properties?, | ||
| 4837 | style-graphic-properties?, | ||
| 4838 | style-paragraph-properties?, | ||
| 4839 | style-text-properties?) | ||
| 4840 | text-linenumbering-configuration = | ||
| 4841 | element text:linenumbering-configuration { | ||
| 4842 | text-linenumbering-configuration-attlist, | ||
| 4843 | text-linenumbering-separator? | ||
| 4844 | } | ||
| 4845 | text-linenumbering-configuration-attlist = | ||
| 4846 | attribute text:number-lines { boolean }? | ||
| 4847 | & common-num-format-attlist? | ||
| 4848 | & attribute text:style-name { styleNameRef }? | ||
| 4849 | & attribute text:increment { nonNegativeInteger }? | ||
| 4850 | & attribute text:number-position { | ||
| 4851 | "left" | "right" | "inner" | "outer" | ||
| 4852 | }? | ||
| 4853 | & attribute text:offset { nonNegativeLength }? | ||
| 4854 | & attribute text:count-empty-lines { boolean }? | ||
| 4855 | & attribute text:count-in-text-boxes { boolean }? | ||
| 4856 | & attribute text:restart-on-page { boolean }? | ||
| 4857 | text-linenumbering-separator = | ||
| 4858 | element text:linenumbering-separator { | ||
| 4859 | attribute text:increment { nonNegativeInteger }?, | ||
| 4860 | text | ||
| 4861 | } | ||
| 4862 | text-notes-configuration = | ||
| 4863 | element text:notes-configuration { text-notes-configuration-content } | ||
| 4864 | text-notes-configuration-content = | ||
| 4865 | text-note-class | ||
| 4866 | & attribute text:citation-style-name { styleNameRef }? | ||
| 4867 | & attribute text:citation-body-style-name { styleNameRef }? | ||
| 4868 | & attribute text:default-style-name { styleNameRef }? | ||
| 4869 | & attribute text:master-page-name { styleNameRef }? | ||
| 4870 | & attribute text:start-value { nonNegativeInteger }? | ||
| 4871 | & common-num-format-prefix-suffix-attlist | ||
| 4872 | & common-num-format-attlist? | ||
| 4873 | & attribute text:start-numbering-at { | ||
| 4874 | "document" | "chapter" | "page" | ||
| 4875 | }? | ||
| 4876 | & attribute text:footnotes-position { | ||
| 4877 | "text" | "page" | "section" | "document" | ||
| 4878 | }? | ||
| 4879 | & element text:note-continuation-notice-forward { text }? | ||
| 4880 | & element text:note-continuation-notice-backward { text }? | ||
| 4881 | text-bibliography-configuration = | ||
| 4882 | element text:bibliography-configuration { | ||
| 4883 | text-bibliography-configuration-attlist, text-sort-key* | ||
| 4884 | } | ||
| 4885 | text-bibliography-configuration-attlist = | ||
| 4886 | attribute text:prefix { \string }? | ||
| 4887 | & attribute text:suffix { \string }? | ||
| 4888 | & attribute text:numbered-entries { boolean }? | ||
| 4889 | & attribute text:sort-by-position { boolean }? | ||
| 4890 | & attribute fo:language { languageCode }? | ||
| 4891 | & attribute fo:country { countryCode }? | ||
| 4892 | & attribute fo:script { scriptCode }? | ||
| 4893 | & attribute style:rfc-language-tag { language }? | ||
| 4894 | & attribute text:sort-algorithm { \string }? | ||
| 4895 | text-sort-key = element text:sort-key { text-sort-key-attlist, empty } | ||
| 4896 | text-sort-key-attlist = | ||
| 4897 | attribute text:key { | ||
| 4898 | "address" | ||
| 4899 | | "annote" | ||
| 4900 | | "author" | ||
| 4901 | | "bibliography-type" | ||
| 4902 | | "booktitle" | ||
| 4903 | | "chapter" | ||
| 4904 | | "custom1" | ||
| 4905 | | "custom2" | ||
| 4906 | | "custom3" | ||
| 4907 | | "custom4" | ||
| 4908 | | "custom5" | ||
| 4909 | | "edition" | ||
| 4910 | | "editor" | ||
| 4911 | | "howpublished" | ||
| 4912 | | "identifier" | ||
| 4913 | | "institution" | ||
| 4914 | | "isbn" | ||
| 4915 | | "issn" | ||
| 4916 | | "journal" | ||
| 4917 | | "month" | ||
| 4918 | | "note" | ||
| 4919 | | "number" | ||
| 4920 | | "organizations" | ||
| 4921 | | "pages" | ||
| 4922 | | "publisher" | ||
| 4923 | | "report-type" | ||
| 4924 | | "school" | ||
| 4925 | | "series" | ||
| 4926 | | "title" | ||
| 4927 | | "url" | ||
| 4928 | | "volume" | ||
| 4929 | | "year" | ||
| 4930 | }, | ||
| 4931 | attribute text:sort-ascending { boolean }? | ||
| 4932 | text-list-style = | ||
| 4933 | element text:list-style { | ||
| 4934 | text-list-style-attr, text-list-style-content* | ||
| 4935 | } | ||
| 4936 | text-list-style-attr = | ||
| 4937 | attribute style:name { styleName } | ||
| 4938 | & attribute style:display-name { \string }? | ||
| 4939 | & attribute text:consecutive-numbering { boolean }? | ||
| 4940 | text-list-style-content = | ||
| 4941 | element text:list-level-style-number { | ||
| 4942 | text-list-level-style-attr, | ||
| 4943 | text-list-level-style-number-attr, | ||
| 4944 | style-list-level-properties?, | ||
| 4945 | style-text-properties? | ||
| 4946 | } | ||
| 4947 | | element text:list-level-style-bullet { | ||
| 4948 | text-list-level-style-attr, | ||
| 4949 | text-list-level-style-bullet-attr, | ||
| 4950 | style-list-level-properties?, | ||
| 4951 | style-text-properties? | ||
| 4952 | } | ||
| 4953 | | element text:list-level-style-image { | ||
| 4954 | text-list-level-style-attr, | ||
| 4955 | text-list-level-style-image-attr, | ||
| 4956 | style-list-level-properties? | ||
| 4957 | } | ||
| 4958 | text-list-level-style-number-attr = | ||
| 4959 | attribute text:style-name { styleNameRef }? | ||
| 4960 | & common-num-format-attlist | ||
| 4961 | & common-num-format-prefix-suffix-attlist | ||
| 4962 | & attribute text:display-levels { positiveInteger }? | ||
| 4963 | & attribute text:start-value { positiveInteger }? | ||
| 4964 | text-list-level-style-bullet-attr = | ||
| 4965 | attribute text:style-name { styleNameRef }? | ||
| 4966 | & attribute text:bullet-char { character } | ||
| 4967 | & common-num-format-prefix-suffix-attlist | ||
| 4968 | & attribute text:bullet-relative-size { percent }? | ||
| 4969 | text-list-level-style-image-attr = | ||
| 4970 | common-draw-data-attlist | office-binary-data | ||
| 4971 | text-list-level-style-attr = attribute text:level { positiveInteger } | ||
| 4972 | text-outline-style = | ||
| 4973 | element text:outline-style { | ||
| 4974 | text-outline-style-attr, text-outline-level-style+ | ||
| 4975 | } | ||
| 4976 | text-outline-style-attr = attribute style:name { styleName } | ||
| 4977 | text-outline-level-style = | ||
| 4978 | element text:outline-level-style { | ||
| 4979 | text-outline-level-style-attlist, | ||
| 4980 | style-list-level-properties?, | ||
| 4981 | style-text-properties? | ||
| 4982 | } | ||
| 4983 | text-outline-level-style-attlist = | ||
| 4984 | attribute text:level { positiveInteger } | ||
| 4985 | & attribute text:style-name { styleNameRef }? | ||
| 4986 | & common-num-format-attlist | ||
| 4987 | & common-num-format-prefix-suffix-attlist | ||
| 4988 | & attribute text:display-levels { positiveInteger }? | ||
| 4989 | & attribute text:start-value { positiveInteger }? | ||
| 4990 | style-graphic-properties = | ||
| 4991 | element style:graphic-properties { | ||
| 4992 | style-graphic-properties-content-strict | ||
| 4993 | } | ||
| 4994 | style-graphic-properties-content-strict = | ||
| 4995 | style-graphic-properties-attlist, | ||
| 4996 | style-graphic-fill-properties-attlist, | ||
| 4997 | style-graphic-properties-elements | ||
| 4998 | style-drawing-page-properties = | ||
| 4999 | element style:drawing-page-properties { | ||
| 5000 | style-drawing-page-properties-content-strict | ||
| 5001 | } | ||
| 5002 | style-drawing-page-properties-content-strict = | ||
| 5003 | style-graphic-fill-properties-attlist, | ||
| 5004 | style-drawing-page-properties-attlist, | ||
| 5005 | style-drawing-page-properties-elements | ||
| 5006 | draw-gradient = | ||
| 5007 | element draw:gradient { | ||
| 5008 | common-draw-gradient-attlist, draw-gradient-attlist, empty | ||
| 5009 | } | ||
| 5010 | common-draw-gradient-attlist = | ||
| 5011 | attribute draw:name { styleName }? | ||
| 5012 | & attribute draw:display-name { \string }? | ||
| 5013 | & attribute draw:style { gradient-style } | ||
| 5014 | & attribute draw:cx { percent }? | ||
| 5015 | & attribute draw:cy { percent }? | ||
| 5016 | & attribute draw:angle { angle }? | ||
| 5017 | & attribute draw:border { percent }? | ||
| 5018 | gradient-style = | ||
| 5019 | "linear" | "axial" | "radial" | "ellipsoid" | "square" | "rectangular" | ||
| 5020 | draw-gradient-attlist = | ||
| 5021 | attribute draw:start-color { color }? | ||
| 5022 | & attribute draw:end-color { color }? | ||
| 5023 | & attribute draw:start-intensity { zeroToHundredPercent }? | ||
| 5024 | & attribute draw:end-intensity { zeroToHundredPercent }? | ||
| 5025 | svg-linearGradient = | ||
| 5026 | element svg:linearGradient { | ||
| 5027 | common-svg-gradient-attlist, | ||
| 5028 | attribute svg:x1 { coordinate | percent }?, | ||
| 5029 | attribute svg:y1 { coordinate | percent }?, | ||
| 5030 | attribute svg:x2 { coordinate | percent }?, | ||
| 5031 | attribute svg:y2 { coordinate | percent }?, | ||
| 5032 | svg-stop* | ||
| 5033 | } | ||
| 5034 | svg-radialGradient = | ||
| 5035 | element svg:radialGradient { | ||
| 5036 | common-svg-gradient-attlist, | ||
| 5037 | attribute svg:cx { coordinate | percent }?, | ||
| 5038 | attribute svg:cy { coordinate | percent }?, | ||
| 5039 | attribute svg:r { coordinate | percent }?, | ||
| 5040 | attribute svg:fx { coordinate | percent }?, | ||
| 5041 | attribute svg:fy { coordinate | percent }?, | ||
| 5042 | svg-stop* | ||
| 5043 | } | ||
| 5044 | svg-stop = | ||
| 5045 | element svg:stop { | ||
| 5046 | attribute svg:offset { double | percent }, | ||
| 5047 | attribute svg:stop-color { color }?, | ||
| 5048 | attribute svg:stop-opacity { double }? | ||
| 5049 | } | ||
| 5050 | common-svg-gradient-attlist = | ||
| 5051 | attribute svg:gradientUnits { "objectBoundingBox" }? | ||
| 5052 | & attribute svg:gradientTransform { \string }? | ||
| 5053 | & attribute svg:spreadMethod { "pad" | "reflect" | "repeat" }? | ||
| 5054 | & attribute draw:name { styleName } | ||
| 5055 | & attribute draw:display-name { \string }? | ||
| 5056 | draw-hatch = element draw:hatch { draw-hatch-attlist, empty } | ||
| 5057 | draw-hatch-attlist = | ||
| 5058 | attribute draw:name { styleName } | ||
| 5059 | & attribute draw:display-name { \string }? | ||
| 5060 | & attribute draw:style { "single" | "double" | "triple" } | ||
| 5061 | & attribute draw:color { color }? | ||
| 5062 | & attribute draw:distance { length }? | ||
| 5063 | & attribute draw:rotation { angle }? | ||
| 5064 | draw-fill-image = | ||
| 5065 | element draw:fill-image { | ||
| 5066 | draw-fill-image-attlist, | ||
| 5067 | attribute xlink:type { "simple" }, | ||
| 5068 | attribute xlink:href { anyIRI }, | ||
| 5069 | attribute xlink:show { "embed" }?, | ||
| 5070 | attribute xlink:actuate { "onLoad" }?, | ||
| 5071 | empty | ||
| 5072 | } | ||
| 5073 | draw-fill-image-attlist = | ||
| 5074 | attribute draw:name { styleName } | ||
| 5075 | & attribute draw:display-name { \string }? | ||
| 5076 | & attribute svg:width { length }? | ||
| 5077 | & attribute svg:height { length }? | ||
| 5078 | draw-opacity = | ||
| 5079 | element draw:opacity { | ||
| 5080 | common-draw-gradient-attlist, draw-opacity-attlist, empty | ||
| 5081 | } | ||
| 5082 | draw-opacity-attlist = | ||
| 5083 | attribute draw:start { zeroToHundredPercent }?, | ||
| 5084 | attribute draw:end { zeroToHundredPercent }? | ||
| 5085 | draw-marker = | ||
| 5086 | element draw:marker { | ||
| 5087 | draw-marker-attlist, | ||
| 5088 | common-draw-viewbox-attlist, | ||
| 5089 | common-draw-path-data-attlist, | ||
| 5090 | empty | ||
| 5091 | } | ||
| 5092 | draw-marker-attlist = | ||
| 5093 | attribute draw:name { styleName } | ||
| 5094 | & attribute draw:display-name { \string }? | ||
| 5095 | draw-stroke-dash = | ||
| 5096 | element draw:stroke-dash { draw-stroke-dash-attlist, empty } | ||
| 5097 | draw-stroke-dash-attlist = | ||
| 5098 | attribute draw:name { styleName } | ||
| 5099 | & attribute draw:display-name { \string }? | ||
| 5100 | & attribute draw:style { "rect" | "round" }? | ||
| 5101 | & attribute draw:dots1 { integer }? | ||
| 5102 | & attribute draw:dots1-length { length | percent }? | ||
| 5103 | & attribute draw:dots2 { integer }? | ||
| 5104 | & attribute draw:dots2-length { length | percent }? | ||
| 5105 | & attribute draw:distance { length | percent }? | ||
| 5106 | style-presentation-page-layout = | ||
| 5107 | element style:presentation-page-layout { | ||
| 5108 | attribute style:name { styleName }, | ||
| 5109 | attribute style:display-name { \string }?, | ||
| 5110 | presentation-placeholder* | ||
| 5111 | } | ||
| 5112 | presentation-placeholder = | ||
| 5113 | element presentation:placeholder { | ||
| 5114 | attribute presentation:object { presentation-classes }, | ||
| 5115 | attribute svg:x { coordinate | percent }, | ||
| 5116 | attribute svg:y { coordinate | percent }, | ||
| 5117 | attribute svg:width { length | percent }, | ||
| 5118 | attribute svg:height { length | percent }, | ||
| 5119 | empty | ||
| 5120 | } | ||
| 5121 | style-page-layout-properties = | ||
| 5122 | element style:page-layout-properties { | ||
| 5123 | style-page-layout-properties-content-strict | ||
| 5124 | } | ||
| 5125 | style-page-layout-properties-content-strict = | ||
| 5126 | style-page-layout-properties-attlist, | ||
| 5127 | style-page-layout-properties-elements | ||
| 5128 | style-page-layout-properties-attlist = | ||
| 5129 | attribute fo:page-width { length }? | ||
| 5130 | & attribute fo:page-height { length }? | ||
| 5131 | & common-num-format-attlist? | ||
| 5132 | & common-num-format-prefix-suffix-attlist | ||
| 5133 | & attribute style:paper-tray-name { "default" | \string }? | ||
| 5134 | & attribute style:print-orientation { "portrait" | "landscape" }? | ||
| 5135 | & common-horizontal-margin-attlist | ||
| 5136 | & common-vertical-margin-attlist | ||
| 5137 | & common-margin-attlist | ||
| 5138 | & common-border-attlist | ||
| 5139 | & common-border-line-width-attlist | ||
| 5140 | & common-padding-attlist | ||
| 5141 | & common-shadow-attlist | ||
| 5142 | & common-background-color-attlist | ||
| 5143 | & attribute style:register-truth-ref-style-name { styleNameRef }? | ||
| 5144 | & attribute style:print { | ||
| 5145 | list { | ||
| 5146 | ("headers" | ||
| 5147 | | "grid" | ||
| 5148 | | "annotations" | ||
| 5149 | | "objects" | ||
| 5150 | | "charts" | ||
| 5151 | | "drawings" | ||
| 5152 | | "formulas" | ||
| 5153 | | "zero-values")* | ||
| 5154 | } | ||
| 5155 | }? | ||
| 5156 | & attribute style:print-page-order { "ttb" | "ltr" }? | ||
| 5157 | & attribute style:first-page-number { positiveInteger | "continue" }? | ||
| 5158 | & attribute style:scale-to { percent }? | ||
| 5159 | & attribute style:scale-to-pages { positiveInteger }? | ||
| 5160 | & attribute style:table-centering { | ||
| 5161 | "horizontal" | "vertical" | "both" | "none" | ||
| 5162 | }? | ||
| 5163 | & attribute style:footnote-max-height { length }? | ||
| 5164 | & common-writing-mode-attlist | ||
| 5165 | & attribute style:layout-grid-mode { "none" | "line" | "both" }? | ||
| 5166 | & attribute style:layout-grid-standard-mode { boolean }? | ||
| 5167 | & attribute style:layout-grid-base-height { length }? | ||
| 5168 | & attribute style:layout-grid-ruby-height { length }? | ||
| 5169 | & attribute style:layout-grid-lines { positiveInteger }? | ||
| 5170 | & attribute style:layout-grid-base-width { length }? | ||
| 5171 | & attribute style:layout-grid-color { color }? | ||
| 5172 | & attribute style:layout-grid-ruby-below { boolean }? | ||
| 5173 | & attribute style:layout-grid-print { boolean }? | ||
| 5174 | & attribute style:layout-grid-display { boolean }? | ||
| 5175 | & attribute style:layout-grid-snap-to { boolean }? | ||
| 5176 | style-page-layout-properties-elements = | ||
| 5177 | style-background-image & style-columns & style-footnote-sep | ||
| 5178 | style-footnote-sep = | ||
| 5179 | element style:footnote-sep { style-footnote-sep-attlist, empty }? | ||
| 5180 | style-footnote-sep-attlist = | ||
| 5181 | attribute style:width { length }?, | ||
| 5182 | attribute style:rel-width { percent }?, | ||
| 5183 | attribute style:color { color }?, | ||
| 5184 | attribute style:line-style { lineStyle }?, | ||
| 5185 | attribute style:adjustment { "left" | "center" | "right" }?, | ||
| 5186 | attribute style:distance-before-sep { length }?, | ||
| 5187 | attribute style:distance-after-sep { length }? | ||
| 5188 | style-header-footer-properties = | ||
| 5189 | element style:header-footer-properties { | ||
| 5190 | style-header-footer-properties-content-strict | ||
| 5191 | } | ||
| 5192 | style-header-footer-properties-content-strict = | ||
| 5193 | style-header-footer-properties-attlist, | ||
| 5194 | style-header-footer-properties-elements | ||
| 5195 | style-header-footer-properties-attlist = | ||
| 5196 | attribute svg:height { length }? | ||
| 5197 | & attribute fo:min-height { length }? | ||
| 5198 | & common-horizontal-margin-attlist | ||
| 5199 | & common-vertical-margin-attlist | ||
| 5200 | & common-margin-attlist | ||
| 5201 | & common-border-attlist | ||
| 5202 | & common-border-line-width-attlist | ||
| 5203 | & common-padding-attlist | ||
| 5204 | & common-background-color-attlist | ||
| 5205 | & common-shadow-attlist | ||
| 5206 | & attribute style:dynamic-spacing { boolean }? | ||
| 5207 | style-header-footer-properties-elements = style-background-image | ||
| 5208 | style-text-properties = | ||
| 5209 | element style:text-properties { style-text-properties-content-strict } | ||
| 5210 | style-text-properties-content-strict = | ||
| 5211 | style-text-properties-attlist, style-text-properties-elements | ||
| 5212 | style-text-properties-elements = empty | ||
| 5213 | style-text-properties-attlist = | ||
| 5214 | attribute fo:font-variant { fontVariant }? | ||
| 5215 | & attribute fo:text-transform { | ||
| 5216 | "none" | "lowercase" | "uppercase" | "capitalize" | ||
| 5217 | }? | ||
| 5218 | & attribute fo:color { color }? | ||
| 5219 | & attribute style:use-window-font-color { boolean }? | ||
| 5220 | & attribute style:text-outline { boolean }? | ||
| 5221 | & attribute style:text-line-through-type { lineType }? | ||
| 5222 | & attribute style:text-line-through-style { lineStyle }? | ||
| 5223 | & attribute style:text-line-through-width { lineWidth }? | ||
| 5224 | & attribute style:text-line-through-color { "font-color" | color }? | ||
| 5225 | & attribute style:text-line-through-text { \string }? | ||
| 5226 | & attribute style:text-line-through-text-style { styleNameRef }? | ||
| 5227 | & attribute style:text-position { | ||
| 5228 | list { (percent | "super" | "sub"), percent? } | ||
| 5229 | }? | ||
| 5230 | & attribute style:font-name { \string }? | ||
| 5231 | & attribute style:font-name-asian { \string }? | ||
| 5232 | & attribute style:font-name-complex { \string }? | ||
| 5233 | & attribute fo:font-family { \string }? | ||
| 5234 | & attribute style:font-family-asian { \string }? | ||
| 5235 | & attribute style:font-family-complex { \string }? | ||
| 5236 | & attribute style:font-family-generic { fontFamilyGeneric }? | ||
| 5237 | & attribute style:font-family-generic-asian { fontFamilyGeneric }? | ||
| 5238 | & attribute style:font-family-generic-complex { fontFamilyGeneric }? | ||
| 5239 | & attribute style:font-style-name { \string }? | ||
| 5240 | & attribute style:font-style-name-asian { \string }? | ||
| 5241 | & attribute style:font-style-name-complex { \string }? | ||
| 5242 | & attribute style:font-pitch { fontPitch }? | ||
| 5243 | & attribute style:font-pitch-asian { fontPitch }? | ||
| 5244 | & attribute style:font-pitch-complex { fontPitch }? | ||
| 5245 | & attribute style:font-charset { textEncoding }? | ||
| 5246 | & attribute style:font-charset-asian { textEncoding }? | ||
| 5247 | & attribute style:font-charset-complex { textEncoding }? | ||
| 5248 | & attribute fo:font-size { positiveLength | percent }? | ||
| 5249 | & attribute style:font-size-asian { positiveLength | percent }? | ||
| 5250 | & attribute style:font-size-complex { positiveLength | percent }? | ||
| 5251 | & attribute style:font-size-rel { length }? | ||
| 5252 | & attribute style:font-size-rel-asian { length }? | ||
| 5253 | & attribute style:font-size-rel-complex { length }? | ||
| 5254 | & attribute style:script-type { | ||
| 5255 | "latin" | "asian" | "complex" | "ignore" | ||
| 5256 | }? | ||
| 5257 | & attribute fo:letter-spacing { length | "normal" }? | ||
| 5258 | & attribute fo:language { languageCode }? | ||
| 5259 | & attribute style:language-asian { languageCode }? | ||
| 5260 | & attribute style:language-complex { languageCode }? | ||
| 5261 | & attribute fo:country { countryCode }? | ||
| 5262 | & attribute style:country-asian { countryCode }? | ||
| 5263 | & attribute style:country-complex { countryCode }? | ||
| 5264 | & attribute fo:script { scriptCode }? | ||
| 5265 | & attribute style:script-asian { scriptCode }? | ||
| 5266 | & attribute style:script-complex { scriptCode }? | ||
| 5267 | & attribute style:rfc-language-tag { language }? | ||
| 5268 | & attribute style:rfc-language-tag-asian { language }? | ||
| 5269 | & attribute style:rfc-language-tag-complex { language }? | ||
| 5270 | & attribute fo:font-style { fontStyle }? | ||
| 5271 | & attribute style:font-style-asian { fontStyle }? | ||
| 5272 | & attribute style:font-style-complex { fontStyle }? | ||
| 5273 | & attribute style:font-relief { "none" | "embossed" | "engraved" }? | ||
| 5274 | & attribute fo:text-shadow { shadowType }? | ||
| 5275 | & attribute style:text-underline-type { lineType }? | ||
| 5276 | & attribute style:text-underline-style { lineStyle }? | ||
| 5277 | & attribute style:text-underline-width { lineWidth }? | ||
| 5278 | & attribute style:text-underline-color { "font-color" | color }? | ||
| 5279 | & attribute style:text-overline-type { lineType }? | ||
| 5280 | & attribute style:text-overline-style { lineStyle }? | ||
| 5281 | & attribute style:text-overline-width { lineWidth }? | ||
| 5282 | & attribute style:text-overline-color { "font-color" | color }? | ||
| 5283 | & attribute style:text-overline-mode { lineMode }? | ||
| 5284 | & attribute fo:font-weight { fontWeight }? | ||
| 5285 | & attribute style:font-weight-asian { fontWeight }? | ||
| 5286 | & attribute style:font-weight-complex { fontWeight }? | ||
| 5287 | & attribute style:text-underline-mode { lineMode }? | ||
| 5288 | & attribute style:text-line-through-mode { lineMode }? | ||
| 5289 | & attribute style:letter-kerning { boolean }? | ||
| 5290 | & attribute style:text-blinking { boolean }? | ||
| 5291 | & common-background-color-attlist | ||
| 5292 | & attribute style:text-combine { "none" | "letters" | "lines" }? | ||
| 5293 | & attribute style:text-combine-start-char { character }? | ||
| 5294 | & attribute style:text-combine-end-char { character }? | ||
| 5295 | & attribute style:text-emphasize { | ||
| 5296 | "none" | ||
| 5297 | | list { | ||
| 5298 | ("none" | "accent" | "dot" | "circle" | "disc"), | ||
| 5299 | ("above" | "below") | ||
| 5300 | } | ||
| 5301 | }? | ||
| 5302 | & attribute style:text-scale { percent }? | ||
| 5303 | & attribute style:text-rotation-angle { angle }? | ||
| 5304 | & attribute style:text-rotation-scale { "fixed" | "line-height" }? | ||
| 5305 | & attribute fo:hyphenate { boolean }? | ||
| 5306 | & attribute fo:hyphenation-remain-char-count { positiveInteger }? | ||
| 5307 | & attribute fo:hyphenation-push-char-count { positiveInteger }? | ||
| 5308 | & (attribute text:display { "true" } | ||
| 5309 | | attribute text:display { "none" } | ||
| 5310 | | (attribute text:display { "condition" }, | ||
| 5311 | attribute text:condition { "none" }) | ||
| 5312 | | empty) | ||
| 5313 | fontVariant = "normal" | "small-caps" | ||
| 5314 | fontFamilyGeneric = | ||
| 5315 | "roman" | "swiss" | "modern" | "decorative" | "script" | "system" | ||
| 5316 | fontPitch = "fixed" | "variable" | ||
| 5317 | textEncoding = xsd:string { pattern = "[A-Za-z][A-Za-z0-9._\-]*" } | ||
| 5318 | fontStyle = "normal" | "italic" | "oblique" | ||
| 5319 | shadowType = "none" | \string | ||
| 5320 | lineType = "none" | "single" | "double" | ||
| 5321 | lineStyle = | ||
| 5322 | "none" | ||
| 5323 | | "solid" | ||
| 5324 | | "dotted" | ||
| 5325 | | "dash" | ||
| 5326 | | "long-dash" | ||
| 5327 | | "dot-dash" | ||
| 5328 | | "dot-dot-dash" | ||
| 5329 | | "wave" | ||
| 5330 | lineWidth = | ||
| 5331 | "auto" | ||
| 5332 | | "normal" | ||
| 5333 | | "bold" | ||
| 5334 | | "thin" | ||
| 5335 | | "medium" | ||
| 5336 | | "thick" | ||
| 5337 | | positiveInteger | ||
| 5338 | | percent | ||
| 5339 | | positiveLength | ||
| 5340 | fontWeight = | ||
| 5341 | "normal" | ||
| 5342 | | "bold" | ||
| 5343 | | "100" | ||
| 5344 | | "200" | ||
| 5345 | | "300" | ||
| 5346 | | "400" | ||
| 5347 | | "500" | ||
| 5348 | | "600" | ||
| 5349 | | "700" | ||
| 5350 | | "800" | ||
| 5351 | | "900" | ||
| 5352 | lineMode = "continuous" | "skip-white-space" | ||
| 5353 | style-paragraph-properties = | ||
| 5354 | element style:paragraph-properties { | ||
| 5355 | style-paragraph-properties-content-strict | ||
| 5356 | } | ||
| 5357 | style-paragraph-properties-content-strict = | ||
| 5358 | style-paragraph-properties-attlist, | ||
| 5359 | style-paragraph-properties-elements | ||
| 5360 | style-paragraph-properties-attlist = | ||
| 5361 | attribute fo:line-height { "normal" | nonNegativeLength | percent }? | ||
| 5362 | & attribute style:line-height-at-least { nonNegativeLength }? | ||
| 5363 | & attribute style:line-spacing { length }? | ||
| 5364 | & attribute style:font-independent-line-spacing { boolean }? | ||
| 5365 | & common-text-align | ||
| 5366 | & attribute fo:text-align-last { "start" | "center" | "justify" }? | ||
| 5367 | & attribute style:justify-single-word { boolean }? | ||
| 5368 | & attribute fo:keep-together { "auto" | "always" }? | ||
| 5369 | & attribute fo:widows { nonNegativeInteger }? | ||
| 5370 | & attribute fo:orphans { nonNegativeInteger }? | ||
| 5371 | & attribute style:tab-stop-distance { nonNegativeLength }? | ||
| 5372 | & attribute fo:hyphenation-keep { "auto" | "page" }? | ||
| 5373 | & attribute fo:hyphenation-ladder-count { | ||
| 5374 | "no-limit" | positiveInteger | ||
| 5375 | }? | ||
| 5376 | & attribute style:register-true { boolean }? | ||
| 5377 | & common-horizontal-margin-attlist | ||
| 5378 | & attribute fo:text-indent { length | percent }? | ||
| 5379 | & attribute style:auto-text-indent { boolean }? | ||
| 5380 | & common-vertical-margin-attlist | ||
| 5381 | & common-margin-attlist | ||
| 5382 | & common-break-attlist | ||
| 5383 | & common-background-color-attlist | ||
| 5384 | & common-border-attlist | ||
| 5385 | & common-border-line-width-attlist | ||
| 5386 | & attribute style:join-border { boolean }? | ||
| 5387 | & common-padding-attlist | ||
| 5388 | & common-shadow-attlist | ||
| 5389 | & common-keep-with-next-attlist | ||
| 5390 | & attribute text:number-lines { boolean }? | ||
| 5391 | & attribute text:line-number { nonNegativeInteger }? | ||
| 5392 | & attribute style:text-autospace { "none" | "ideograph-alpha" }? | ||
| 5393 | & attribute style:punctuation-wrap { "simple" | "hanging" }? | ||
| 5394 | & attribute style:line-break { "normal" | "strict" }? | ||
| 5395 | & attribute style:vertical-align { | ||
| 5396 | "top" | "middle" | "bottom" | "auto" | "baseline" | ||
| 5397 | }? | ||
| 5398 | & common-writing-mode-attlist | ||
| 5399 | & attribute style:writing-mode-automatic { boolean }? | ||
| 5400 | & attribute style:snap-to-layout-grid { boolean }? | ||
| 5401 | & common-page-number-attlist | ||
| 5402 | & common-background-transparency-attlist | ||
| 5403 | common-text-align = | ||
| 5404 | attribute fo:text-align { | ||
| 5405 | "start" | "end" | "left" | "right" | "center" | "justify" | ||
| 5406 | }? | ||
| 5407 | style-paragraph-properties-elements = | ||
| 5408 | style-tab-stops & style-drop-cap & style-background-image | ||
| 5409 | style-tab-stops = element style:tab-stops { style-tab-stop* }? | ||
| 5410 | style-tab-stop = | ||
| 5411 | element style:tab-stop { style-tab-stop-attlist, empty } | ||
| 5412 | style-tab-stop-attlist = | ||
| 5413 | attribute style:position { length } | ||
| 5414 | & (attribute style:type { "left" | "center" | "right" }? | ||
| 5415 | | (attribute style:type { "char" }, | ||
| 5416 | style-tab-stop-char-attlist)) | ||
| 5417 | & attribute style:leader-type { lineType }? | ||
| 5418 | & attribute style:leader-style { lineStyle }? | ||
| 5419 | & attribute style:leader-width { lineWidth }? | ||
| 5420 | & attribute style:leader-color { "font-color" | color }? | ||
| 5421 | & attribute style:leader-text { character }? | ||
| 5422 | & attribute style:leader-text-style { styleNameRef }? | ||
| 5423 | style-tab-stop-char-attlist = attribute style:char { character } | ||
| 5424 | style-drop-cap = | ||
| 5425 | element style:drop-cap { style-drop-cap-attlist, empty }? | ||
| 5426 | style-drop-cap-attlist = | ||
| 5427 | attribute style:length { "word" | positiveInteger }? | ||
| 5428 | & attribute style:lines { positiveInteger }? | ||
| 5429 | & attribute style:distance { length }? | ||
| 5430 | & attribute style:style-name { styleNameRef }? | ||
| 5431 | common-horizontal-margin-attlist = | ||
| 5432 | attribute fo:margin-left { length | percent }?, | ||
| 5433 | attribute fo:margin-right { length | percent }? | ||
| 5434 | common-vertical-margin-attlist = | ||
| 5435 | attribute fo:margin-top { nonNegativeLength | percent }?, | ||
| 5436 | attribute fo:margin-bottom { nonNegativeLength | percent }? | ||
| 5437 | common-margin-attlist = | ||
| 5438 | attribute fo:margin { nonNegativeLength | percent }? | ||
| 5439 | common-break-attlist = | ||
| 5440 | attribute fo:break-before { "auto" | "column" | "page" }?, | ||
| 5441 | attribute fo:break-after { "auto" | "column" | "page" }? | ||
| 5442 | common-background-color-attlist = | ||
| 5443 | attribute fo:background-color { "transparent" | color }? | ||
| 5444 | style-background-image = | ||
| 5445 | element style:background-image { | ||
| 5446 | style-background-image-attlist, | ||
| 5447 | (common-draw-data-attlist | office-binary-data | empty) | ||
| 5448 | }? | ||
| 5449 | style-background-image-attlist = | ||
| 5450 | attribute style:repeat { "no-repeat" | "repeat" | "stretch" }? | ||
| 5451 | & attribute style:position { | ||
| 5452 | "left" | ||
| 5453 | | "center" | ||
| 5454 | | "right" | ||
| 5455 | | "top" | ||
| 5456 | | "bottom" | ||
| 5457 | | list { horiBackPos, vertBackPos } | ||
| 5458 | | list { vertBackPos, horiBackPos } | ||
| 5459 | }? | ||
| 5460 | & attribute style:filter-name { \string }? | ||
| 5461 | & attribute draw:opacity { zeroToHundredPercent }? | ||
| 5462 | horiBackPos = "left" | "center" | "right" | ||
| 5463 | vertBackPos = "top" | "center" | "bottom" | ||
| 5464 | common-border-attlist = | ||
| 5465 | attribute fo:border { \string }?, | ||
| 5466 | attribute fo:border-top { \string }?, | ||
| 5467 | attribute fo:border-bottom { \string }?, | ||
| 5468 | attribute fo:border-left { \string }?, | ||
| 5469 | attribute fo:border-right { \string }? | ||
| 5470 | common-border-line-width-attlist = | ||
| 5471 | attribute style:border-line-width { borderWidths }?, | ||
| 5472 | attribute style:border-line-width-top { borderWidths }?, | ||
| 5473 | attribute style:border-line-width-bottom { borderWidths }?, | ||
| 5474 | attribute style:border-line-width-left { borderWidths }?, | ||
| 5475 | attribute style:border-line-width-right { borderWidths }? | ||
| 5476 | borderWidths = list { positiveLength, positiveLength, positiveLength } | ||
| 5477 | common-padding-attlist = | ||
| 5478 | attribute fo:padding { nonNegativeLength }?, | ||
| 5479 | attribute fo:padding-top { nonNegativeLength }?, | ||
| 5480 | attribute fo:padding-bottom { nonNegativeLength }?, | ||
| 5481 | attribute fo:padding-left { nonNegativeLength }?, | ||
| 5482 | attribute fo:padding-right { nonNegativeLength }? | ||
| 5483 | common-shadow-attlist = attribute style:shadow { shadowType }? | ||
| 5484 | common-keep-with-next-attlist = | ||
| 5485 | attribute fo:keep-with-next { "auto" | "always" }? | ||
| 5486 | common-writing-mode-attlist = | ||
| 5487 | attribute style:writing-mode { | ||
| 5488 | "lr-tb" | "rl-tb" | "tb-rl" | "tb-lr" | "lr" | "rl" | "tb" | "page" | ||
| 5489 | }? | ||
| 5490 | common-page-number-attlist = | ||
| 5491 | attribute style:page-number { positiveInteger | "auto" }? | ||
| 5492 | common-background-transparency-attlist = | ||
| 5493 | attribute style:background-transparency { zeroToHundredPercent }? | ||
| 5494 | style-ruby-properties = | ||
| 5495 | element style:ruby-properties { style-ruby-properties-content-strict } | ||
| 5496 | style-ruby-properties-content-strict = | ||
| 5497 | style-ruby-properties-attlist, style-ruby-properties-elements | ||
| 5498 | style-ruby-properties-elements = empty | ||
| 5499 | style-ruby-properties-attlist = | ||
| 5500 | attribute style:ruby-position { "above" | "below" }? | ||
| 5501 | & attribute style:ruby-align { | ||
| 5502 | "left" | ||
| 5503 | | "center" | ||
| 5504 | | "right" | ||
| 5505 | | "distribute-letter" | ||
| 5506 | | "distribute-space" | ||
| 5507 | }? | ||
| 5508 | style-section-properties = | ||
| 5509 | element style:section-properties { | ||
| 5510 | style-section-properties-content-strict | ||
| 5511 | } | ||
| 5512 | style-section-properties-content-strict = | ||
| 5513 | style-section-properties-attlist, style-section-properties-elements | ||
| 5514 | style-section-properties-attlist = | ||
| 5515 | common-background-color-attlist | ||
| 5516 | & common-horizontal-margin-attlist | ||
| 5517 | & attribute style:protect { boolean }? | ||
| 5518 | & common-editable-attlist | ||
| 5519 | & attribute text:dont-balance-text-columns { boolean }? | ||
| 5520 | & common-writing-mode-attlist | ||
| 5521 | style-section-properties-elements = | ||
| 5522 | style-background-image & style-columns & text-notes-configuration* | ||
| 5523 | style-columns = | ||
| 5524 | element style:columns { | ||
| 5525 | style-columns-attlist, style-column-sep?, style-column* | ||
| 5526 | }? | ||
| 5527 | style-columns-attlist = | ||
| 5528 | attribute fo:column-count { positiveInteger } | ||
| 5529 | & attribute fo:column-gap { length }? | ||
| 5530 | style-column = element style:column { style-column-attlist } | ||
| 5531 | style-column-attlist = | ||
| 5532 | attribute style:rel-width { relativeLength } | ||
| 5533 | & attribute fo:start-indent { length }? | ||
| 5534 | & attribute fo:end-indent { length }? | ||
| 5535 | & attribute fo:space-before { length }? | ||
| 5536 | & attribute fo:space-after { length }? | ||
| 5537 | style-column-sep = element style:column-sep { style-column-sep-attlist } | ||
| 5538 | style-column-sep-attlist = | ||
| 5539 | attribute style:style { | ||
| 5540 | "none" | "solid" | "dotted" | "dashed" | "dot-dashed" | ||
| 5541 | }? | ||
| 5542 | & attribute style:width { length } | ||
| 5543 | & attribute style:height { zeroToHundredPercent }? | ||
| 5544 | & attribute style:vertical-align { "top" | "middle" | "bottom" }? | ||
| 5545 | & attribute style:color { color }? | ||
| 5546 | style-table-properties = | ||
| 5547 | element style:table-properties { | ||
| 5548 | style-table-properties-content-strict | ||
| 5549 | } | ||
| 5550 | style-table-properties-content-strict = | ||
| 5551 | style-table-properties-attlist, style-table-properties-elements | ||
| 5552 | style-table-properties-attlist = | ||
| 5553 | attribute style:width { positiveLength }? | ||
| 5554 | & attribute style:rel-width { percent }? | ||
| 5555 | & attribute table:align { "left" | "center" | "right" | "margins" }? | ||
| 5556 | & common-horizontal-margin-attlist | ||
| 5557 | & common-vertical-margin-attlist | ||
| 5558 | & common-margin-attlist | ||
| 5559 | & common-page-number-attlist | ||
| 5560 | & common-break-attlist | ||
| 5561 | & common-background-color-attlist | ||
| 5562 | & common-shadow-attlist | ||
| 5563 | & common-keep-with-next-attlist | ||
| 5564 | & attribute style:may-break-between-rows { boolean }? | ||
| 5565 | & attribute table:border-model { "collapsing" | "separating" }? | ||
| 5566 | & common-writing-mode-attlist | ||
| 5567 | & attribute table:display { boolean }? | ||
| 5568 | style-table-properties-elements = style-background-image | ||
| 5569 | style-table-column-properties = | ||
| 5570 | element style:table-column-properties { | ||
| 5571 | style-table-column-properties-content-strict | ||
| 5572 | } | ||
| 5573 | style-table-column-properties-content-strict = | ||
| 5574 | style-table-column-properties-attlist, | ||
| 5575 | style-table-column-properties-elements | ||
| 5576 | style-table-column-properties-elements = empty | ||
| 5577 | style-table-column-properties-attlist = | ||
| 5578 | attribute style:column-width { positiveLength }? | ||
| 5579 | & attribute style:rel-column-width { relativeLength }? | ||
| 5580 | & attribute style:use-optimal-column-width { boolean }? | ||
| 5581 | & common-break-attlist | ||
| 5582 | style-table-row-properties = | ||
| 5583 | element style:table-row-properties { | ||
| 5584 | style-table-row-properties-content-strict | ||
| 5585 | } | ||
| 5586 | style-table-row-properties-content-strict = | ||
| 5587 | style-table-row-properties-attlist, | ||
| 5588 | style-table-row-properties-elements | ||
| 5589 | style-table-row-properties-attlist = | ||
| 5590 | attribute style:row-height { positiveLength }? | ||
| 5591 | & attribute style:min-row-height { nonNegativeLength }? | ||
| 5592 | & attribute style:use-optimal-row-height { boolean }? | ||
| 5593 | & common-background-color-attlist | ||
| 5594 | & common-break-attlist | ||
| 5595 | & attribute fo:keep-together { "auto" | "always" }? | ||
| 5596 | style-table-row-properties-elements = style-background-image | ||
| 5597 | style-table-cell-properties = | ||
| 5598 | element style:table-cell-properties { | ||
| 5599 | style-table-cell-properties-content-strict | ||
| 5600 | } | ||
| 5601 | style-table-cell-properties-content-strict = | ||
| 5602 | style-table-cell-properties-attlist, | ||
| 5603 | style-table-cell-properties-elements | ||
| 5604 | style-table-cell-properties-attlist = | ||
| 5605 | attribute style:vertical-align { | ||
| 5606 | "top" | "middle" | "bottom" | "automatic" | ||
| 5607 | }? | ||
| 5608 | & attribute style:text-align-source { "fix" | "value-type" }? | ||
| 5609 | & common-style-direction-attlist | ||
| 5610 | & attribute style:glyph-orientation-vertical { | ||
| 5611 | "auto" | "0" | "0deg" | "0rad" | "0grad" | ||
| 5612 | }? | ||
| 5613 | & common-writing-mode-attlist | ||
| 5614 | & common-shadow-attlist | ||
| 5615 | & common-background-color-attlist | ||
| 5616 | & common-border-attlist | ||
| 5617 | & attribute style:diagonal-tl-br { \string }? | ||
| 5618 | & attribute style:diagonal-tl-br-widths { borderWidths }? | ||
| 5619 | & attribute style:diagonal-bl-tr { \string }? | ||
| 5620 | & attribute style:diagonal-bl-tr-widths { borderWidths }? | ||
| 5621 | & common-border-line-width-attlist | ||
| 5622 | & common-padding-attlist | ||
| 5623 | & attribute fo:wrap-option { "no-wrap" | "wrap" }? | ||
| 5624 | & common-rotation-angle-attlist | ||
| 5625 | & attribute style:rotation-align { | ||
| 5626 | "none" | "bottom" | "top" | "center" | ||
| 5627 | }? | ||
| 5628 | & attribute style:cell-protect { | ||
| 5629 | "none" | ||
| 5630 | | "hidden-and-protected" | ||
| 5631 | | list { ("protected" | "formula-hidden")+ } | ||
| 5632 | }? | ||
| 5633 | & attribute style:print-content { boolean }? | ||
| 5634 | & attribute style:decimal-places { nonNegativeInteger }? | ||
| 5635 | & attribute style:repeat-content { boolean }? | ||
| 5636 | & attribute style:shrink-to-fit { boolean }? | ||
| 5637 | common-style-direction-attlist = | ||
| 5638 | attribute style:direction { "ltr" | "ttb" }? | ||
| 5639 | style-table-cell-properties-elements = style-background-image | ||
| 5640 | common-rotation-angle-attlist = | ||
| 5641 | attribute style:rotation-angle { angle }? | ||
| 5642 | style-list-level-properties = | ||
| 5643 | element style:list-level-properties { | ||
| 5644 | style-list-level-properties-content-strict | ||
| 5645 | } | ||
| 5646 | style-list-level-properties-content-strict = | ||
| 5647 | style-list-level-properties-attlist, | ||
| 5648 | style-list-level-properties-elements | ||
| 5649 | style-list-level-properties-attlist = | ||
| 5650 | common-text-align | ||
| 5651 | & attribute text:space-before { length }? | ||
| 5652 | & attribute text:min-label-width { nonNegativeLength }? | ||
| 5653 | & attribute text:min-label-distance { nonNegativeLength }? | ||
| 5654 | & attribute style:font-name { \string }? | ||
| 5655 | & attribute fo:width { positiveLength }? | ||
| 5656 | & attribute fo:height { positiveLength }? | ||
| 5657 | & common-vertical-rel-attlist | ||
| 5658 | & common-vertical-pos-attlist | ||
| 5659 | & attribute text:list-level-position-and-space-mode { | ||
| 5660 | "label-width-and-position" | "label-alignment" | ||
| 5661 | }? | ||
| 5662 | style-list-level-properties-elements = style-list-level-label-alignment | ||
| 5663 | style-list-level-label-alignment = | ||
| 5664 | element style:list-level-label-alignment { | ||
| 5665 | style-list-level-label-alignment-attlist, empty | ||
| 5666 | }? | ||
| 5667 | style-list-level-label-alignment-attlist = | ||
| 5668 | attribute text:label-followed-by { "listtab" | "space" | "nothing" } | ||
| 5669 | & attribute text:list-tab-stop-position { length }? | ||
| 5670 | & attribute fo:text-indent { length }? | ||
| 5671 | & attribute fo:margin-left { length }? | ||
| 5672 | style-graphic-properties-attlist = | ||
| 5673 | attribute draw:stroke { "none" | "dash" | "solid" }? | ||
| 5674 | & attribute draw:stroke-dash { styleNameRef }? | ||
| 5675 | & attribute draw:stroke-dash-names { styleNameRefs }? | ||
| 5676 | & attribute svg:stroke-width { length }? | ||
| 5677 | & attribute svg:stroke-color { color }? | ||
| 5678 | & attribute draw:marker-start { styleNameRef }? | ||
| 5679 | & attribute draw:marker-end { styleNameRef }? | ||
| 5680 | & attribute draw:marker-start-width { length }? | ||
| 5681 | & attribute draw:marker-end-width { length }? | ||
| 5682 | & attribute draw:marker-start-center { boolean }? | ||
| 5683 | & attribute draw:marker-end-center { boolean }? | ||
| 5684 | & attribute svg:stroke-opacity { | ||
| 5685 | xsd:double { minInclusive = "0" maxInclusive = "1" } | ||
| 5686 | | zeroToHundredPercent | ||
| 5687 | }? | ||
| 5688 | & attribute draw:stroke-linejoin { | ||
| 5689 | "miter" | "round" | "bevel" | "middle" | "none" | ||
| 5690 | }? | ||
| 5691 | & attribute svg:stroke-linecap { "butt" | "square" | "round" }? | ||
| 5692 | & attribute draw:symbol-color { color }? | ||
| 5693 | & attribute text:animation { | ||
| 5694 | "none" | "scroll" | "alternate" | "slide" | ||
| 5695 | }? | ||
| 5696 | & attribute text:animation-direction { | ||
| 5697 | "left" | "right" | "up" | "down" | ||
| 5698 | }? | ||
| 5699 | & attribute text:animation-start-inside { boolean }? | ||
| 5700 | & attribute text:animation-stop-inside { boolean }? | ||
| 5701 | & attribute text:animation-repeat { nonNegativeInteger }? | ||
| 5702 | & attribute text:animation-delay { duration }? | ||
| 5703 | & attribute text:animation-steps { length }? | ||
| 5704 | & attribute draw:auto-grow-width { boolean }? | ||
| 5705 | & attribute draw:auto-grow-height { boolean }? | ||
| 5706 | & attribute draw:fit-to-size { boolean }? | ||
| 5707 | & attribute draw:fit-to-contour { boolean }? | ||
| 5708 | & attribute draw:textarea-vertical-align { | ||
| 5709 | "top" | "middle" | "bottom" | "justify" | ||
| 5710 | }? | ||
| 5711 | & attribute draw:textarea-horizontal-align { | ||
| 5712 | "left" | "center" | "right" | "justify" | ||
| 5713 | }? | ||
| 5714 | & attribute fo:wrap-option { "no-wrap" | "wrap" }? | ||
| 5715 | & attribute style:shrink-to-fit { boolean }? | ||
| 5716 | & attribute draw:color-mode { | ||
| 5717 | "greyscale" | "mono" | "watermark" | "standard" | ||
| 5718 | }? | ||
| 5719 | & attribute draw:color-inversion { boolean }? | ||
| 5720 | & attribute draw:luminance { zeroToHundredPercent }? | ||
| 5721 | & attribute draw:contrast { percent }? | ||
| 5722 | & attribute draw:gamma { percent }? | ||
| 5723 | & attribute draw:red { signedZeroToHundredPercent }? | ||
| 5724 | & attribute draw:green { signedZeroToHundredPercent }? | ||
| 5725 | & attribute draw:blue { signedZeroToHundredPercent }? | ||
| 5726 | & attribute draw:image-opacity { zeroToHundredPercent }? | ||
| 5727 | & attribute draw:shadow { "visible" | "hidden" }? | ||
| 5728 | & attribute draw:shadow-offset-x { length }? | ||
| 5729 | & attribute draw:shadow-offset-y { length }? | ||
| 5730 | & attribute draw:shadow-color { color }? | ||
| 5731 | & attribute draw:shadow-opacity { zeroToHundredPercent }? | ||
| 5732 | & attribute draw:start-line-spacing-horizontal { distance }? | ||
| 5733 | & attribute draw:start-line-spacing-vertical { distance }? | ||
| 5734 | & attribute draw:end-line-spacing-horizontal { distance }? | ||
| 5735 | & attribute draw:end-line-spacing-vertical { distance }? | ||
| 5736 | & attribute draw:line-distance { distance }? | ||
| 5737 | & attribute draw:guide-overhang { length }? | ||
| 5738 | & attribute draw:guide-distance { distance }? | ||
| 5739 | & attribute draw:start-guide { length }? | ||
| 5740 | & attribute draw:end-guide { length }? | ||
| 5741 | & attribute draw:placing { "below" | "above" }? | ||
| 5742 | & attribute draw:parallel { boolean }? | ||
| 5743 | & attribute draw:measure-align { | ||
| 5744 | "automatic" | "left-outside" | "inside" | "right-outside" | ||
| 5745 | }? | ||
| 5746 | & attribute draw:measure-vertical-align { | ||
| 5747 | "automatic" | "above" | "below" | "center" | ||
| 5748 | }? | ||
| 5749 | & attribute draw:unit { | ||
| 5750 | "automatic" | ||
| 5751 | | "mm" | ||
| 5752 | | "cm" | ||
| 5753 | | "m" | ||
| 5754 | | "km" | ||
| 5755 | | "pt" | ||
| 5756 | | "pc" | ||
| 5757 | | "inch" | ||
| 5758 | | "ft" | ||
| 5759 | | "mi" | ||
| 5760 | }? | ||
| 5761 | & attribute draw:show-unit { boolean }? | ||
| 5762 | & attribute draw:decimal-places { nonNegativeInteger }? | ||
| 5763 | & attribute draw:caption-type { | ||
| 5764 | "straight-line" | "angled-line" | "angled-connector-line" | ||
| 5765 | }? | ||
| 5766 | & attribute draw:caption-angle-type { "fixed" | "free" }? | ||
| 5767 | & attribute draw:caption-angle { angle }? | ||
| 5768 | & attribute draw:caption-gap { distance }? | ||
| 5769 | & attribute draw:caption-escape-direction { | ||
| 5770 | "horizontal" | "vertical" | "auto" | ||
| 5771 | }? | ||
| 5772 | & attribute draw:caption-escape { length | percent }? | ||
| 5773 | & attribute draw:caption-line-length { length }? | ||
| 5774 | & attribute draw:caption-fit-line-length { boolean }? | ||
| 5775 | & attribute dr3d:horizontal-segments { nonNegativeInteger }? | ||
| 5776 | & attribute dr3d:vertical-segments { nonNegativeInteger }? | ||
| 5777 | & attribute dr3d:edge-rounding { percent }? | ||
| 5778 | & attribute dr3d:edge-rounding-mode { "correct" | "attractive" }? | ||
| 5779 | & attribute dr3d:back-scale { percent }? | ||
| 5780 | & attribute dr3d:depth { length }? | ||
| 5781 | & attribute dr3d:backface-culling { "enabled" | "disabled" }? | ||
| 5782 | & attribute dr3d:end-angle { angle }? | ||
| 5783 | & attribute dr3d:close-front { boolean }? | ||
| 5784 | & attribute dr3d:close-back { boolean }? | ||
| 5785 | & attribute dr3d:lighting-mode { "standard" | "double-sided" }? | ||
| 5786 | & attribute dr3d:normals-kind { "object" | "flat" | "sphere" }? | ||
| 5787 | & attribute dr3d:normals-direction { "normal" | "inverse" }? | ||
| 5788 | & attribute dr3d:texture-generation-mode-x { | ||
| 5789 | "object" | "parallel" | "sphere" | ||
| 5790 | }? | ||
| 5791 | & attribute dr3d:texture-generation-mode-y { | ||
| 5792 | "object" | "parallel" | "sphere" | ||
| 5793 | }? | ||
| 5794 | & attribute dr3d:texture-kind { "luminance" | "intensity" | "color" }? | ||
| 5795 | & attribute dr3d:texture-filter { "enabled" | "disabled" }? | ||
| 5796 | & attribute dr3d:texture-mode { "replace" | "modulate" | "blend" }? | ||
| 5797 | & attribute dr3d:ambient-color { color }? | ||
| 5798 | & attribute dr3d:emissive-color { color }? | ||
| 5799 | & attribute dr3d:specular-color { color }? | ||
| 5800 | & attribute dr3d:diffuse-color { color }? | ||
| 5801 | & attribute dr3d:shininess { percent }? | ||
| 5802 | & attribute dr3d:shadow { "visible" | "hidden" }? | ||
| 5803 | & common-draw-rel-size-attlist | ||
| 5804 | & attribute fo:min-width { length | percent }? | ||
| 5805 | & attribute fo:min-height { length | percent }? | ||
| 5806 | & attribute fo:max-height { length | percent }? | ||
| 5807 | & attribute fo:max-width { length | percent }? | ||
| 5808 | & common-horizontal-margin-attlist | ||
| 5809 | & common-vertical-margin-attlist | ||
| 5810 | & common-margin-attlist | ||
| 5811 | & attribute style:print-content { boolean }? | ||
| 5812 | & attribute style:protect { | ||
| 5813 | "none" | ||
| 5814 | | list { ("content" | "position" | "size")+ } | ||
| 5815 | }? | ||
| 5816 | & attribute style:horizontal-pos { | ||
| 5817 | "left" | ||
| 5818 | | "center" | ||
| 5819 | | "right" | ||
| 5820 | | "from-left" | ||
| 5821 | | "inside" | ||
| 5822 | | "outside" | ||
| 5823 | | "from-inside" | ||
| 5824 | }? | ||
| 5825 | & attribute svg:x { coordinate }? | ||
| 5826 | & attribute style:horizontal-rel { | ||
| 5827 | "page" | ||
| 5828 | | "page-content" | ||
| 5829 | | "page-start-margin" | ||
| 5830 | | "page-end-margin" | ||
| 5831 | | "frame" | ||
| 5832 | | "frame-content" | ||
| 5833 | | "frame-start-margin" | ||
| 5834 | | "frame-end-margin" | ||
| 5835 | | "paragraph" | ||
| 5836 | | "paragraph-content" | ||
| 5837 | | "paragraph-start-margin" | ||
| 5838 | | "paragraph-end-margin" | ||
| 5839 | | "char" | ||
| 5840 | }? | ||
| 5841 | & common-vertical-pos-attlist | ||
| 5842 | & common-vertical-rel-attlist | ||
| 5843 | & common-text-anchor-attlist | ||
| 5844 | & common-border-attlist | ||
| 5845 | & common-border-line-width-attlist | ||
| 5846 | & common-padding-attlist | ||
| 5847 | & common-shadow-attlist | ||
| 5848 | & common-background-color-attlist | ||
| 5849 | & common-background-transparency-attlist | ||
| 5850 | & common-editable-attlist | ||
| 5851 | & attribute style:wrap { | ||
| 5852 | "none" | ||
| 5853 | | "left" | ||
| 5854 | | "right" | ||
| 5855 | | "parallel" | ||
| 5856 | | "dynamic" | ||
| 5857 | | "run-through" | ||
| 5858 | | "biggest" | ||
| 5859 | }? | ||
| 5860 | & attribute style:wrap-dynamic-threshold { nonNegativeLength }? | ||
| 5861 | & attribute style:number-wrapped-paragraphs { | ||
| 5862 | "no-limit" | positiveInteger | ||
| 5863 | }? | ||
| 5864 | & attribute style:wrap-contour { boolean }? | ||
| 5865 | & attribute style:wrap-contour-mode { "full" | "outside" }? | ||
| 5866 | & attribute style:run-through { "foreground" | "background" }? | ||
| 5867 | & attribute style:flow-with-text { boolean }? | ||
| 5868 | & attribute style:overflow-behavior { | ||
| 5869 | "clip" | "auto-create-new-frame" | ||
| 5870 | }? | ||
| 5871 | & attribute style:mirror { | ||
| 5872 | "none" | ||
| 5873 | | "vertical" | ||
| 5874 | | horizontal-mirror | ||
| 5875 | | list { "vertical", horizontal-mirror } | ||
| 5876 | | list { horizontal-mirror, "vertical" } | ||
| 5877 | }? | ||
| 5878 | & attribute fo:clip { "auto" | clipShape }? | ||
| 5879 | & attribute draw:wrap-influence-on-position { | ||
| 5880 | "iterative" | "once-concurrent" | "once-successive" | ||
| 5881 | }? | ||
| 5882 | & common-writing-mode-attlist | ||
| 5883 | & attribute draw:frame-display-scrollbar { boolean }? | ||
| 5884 | & attribute draw:frame-display-border { boolean }? | ||
| 5885 | & attribute draw:frame-margin-horizontal { nonNegativePixelLength }? | ||
| 5886 | & attribute draw:frame-margin-vertical { nonNegativePixelLength }? | ||
| 5887 | & attribute draw:visible-area-left { nonNegativeLength }? | ||
| 5888 | & attribute draw:visible-area-top { nonNegativeLength }? | ||
| 5889 | & attribute draw:visible-area-width { positiveLength }? | ||
| 5890 | & attribute draw:visible-area-height { positiveLength }? | ||
| 5891 | & attribute draw:draw-aspect { | ||
| 5892 | "content" | "thumbnail" | "icon" | "print-view" | ||
| 5893 | }? | ||
| 5894 | & attribute draw:ole-draw-aspect { nonNegativeInteger }? | ||
| 5895 | style-graphic-fill-properties-attlist = | ||
| 5896 | attribute draw:fill { | ||
| 5897 | "none" | "solid" | "bitmap" | "gradient" | "hatch" | ||
| 5898 | }? | ||
| 5899 | & attribute draw:fill-color { color }? | ||
| 5900 | & attribute draw:secondary-fill-color { color }? | ||
| 5901 | & attribute draw:fill-gradient-name { styleNameRef }? | ||
| 5902 | & attribute draw:gradient-step-count { nonNegativeInteger }? | ||
| 5903 | & attribute draw:fill-hatch-name { styleNameRef }? | ||
| 5904 | & attribute draw:fill-hatch-solid { boolean }? | ||
| 5905 | & attribute draw:fill-image-name { styleNameRef }? | ||
| 5906 | & attribute style:repeat { "no-repeat" | "repeat" | "stretch" }? | ||
| 5907 | & attribute draw:fill-image-width { length | percent }? | ||
| 5908 | & attribute draw:fill-image-height { length | percent }? | ||
| 5909 | & attribute draw:fill-image-ref-point-x { percent }? | ||
| 5910 | & attribute draw:fill-image-ref-point-y { percent }? | ||
| 5911 | & attribute draw:fill-image-ref-point { | ||
| 5912 | "top-left" | ||
| 5913 | | "top" | ||
| 5914 | | "top-right" | ||
| 5915 | | "left" | ||
| 5916 | | "center" | ||
| 5917 | | "right" | ||
| 5918 | | "bottom-left" | ||
| 5919 | | "bottom" | ||
| 5920 | | "bottom-right" | ||
| 5921 | }? | ||
| 5922 | & attribute draw:tile-repeat-offset { | ||
| 5923 | list { zeroToHundredPercent, ("horizontal" | "vertical") } | ||
| 5924 | }? | ||
| 5925 | & attribute draw:opacity { zeroToHundredPercent }? | ||
| 5926 | & attribute draw:opacity-name { styleNameRef }? | ||
| 5927 | & attribute svg:fill-rule { "nonzero" | "evenodd" }? | ||
| 5928 | style-graphic-properties-elements = | ||
| 5929 | text-list-style? & style-background-image & style-columns | ||
| 5930 | common-vertical-pos-attlist = | ||
| 5931 | attribute style:vertical-pos { | ||
| 5932 | "top" | "middle" | "bottom" | "from-top" | "below" | ||
| 5933 | }?, | ||
| 5934 | attribute svg:y { coordinate }? | ||
| 5935 | common-vertical-rel-attlist = | ||
| 5936 | attribute style:vertical-rel { | ||
| 5937 | "page" | ||
| 5938 | | "page-content" | ||
| 5939 | | "frame" | ||
| 5940 | | "frame-content" | ||
| 5941 | | "paragraph" | ||
| 5942 | | "paragraph-content" | ||
| 5943 | | "char" | ||
| 5944 | | "line" | ||
| 5945 | | "baseline" | ||
| 5946 | | "text" | ||
| 5947 | }? | ||
| 5948 | common-editable-attlist = attribute style:editable { boolean }? | ||
| 5949 | horizontal-mirror = | ||
| 5950 | "horizontal" | "horizontal-on-odd" | "horizontal-on-even" | ||
| 5951 | clipShape = | ||
| 5952 | xsd:string { | ||
| 5953 | pattern = | ||
| 5954 | "rect\([ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)))|(auto))([ ]*,[ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))))|(auto)){3}[ ]*\)" | ||
| 5955 | } | ||
| 5956 | nonNegativePixelLength = | ||
| 5957 | xsd:string { pattern = "([0-9]+(\.[0-9]*)?|\.[0-9]+)(px)" } | ||
| 5958 | style-chart-properties = | ||
| 5959 | element style:chart-properties { | ||
| 5960 | style-chart-properties-content-strict | ||
| 5961 | } | ||
| 5962 | style-chart-properties-content-strict = | ||
| 5963 | style-chart-properties-attlist, style-chart-properties-elements | ||
| 5964 | style-chart-properties-elements = empty | ||
| 5965 | style-chart-properties-attlist = | ||
| 5966 | attribute chart:scale-text { boolean }? | ||
| 5967 | & attribute chart:three-dimensional { boolean }? | ||
| 5968 | & attribute chart:deep { boolean }? | ||
| 5969 | & attribute chart:right-angled-axes { boolean }? | ||
| 5970 | & (attribute chart:symbol-type { "none" } | ||
| 5971 | | attribute chart:symbol-type { "automatic" } | ||
| 5972 | | (attribute chart:symbol-type { "named-symbol" }, | ||
| 5973 | attribute chart:symbol-name { | ||
| 5974 | "square" | ||
| 5975 | | "diamond" | ||
| 5976 | | "arrow-down" | ||
| 5977 | | "arrow-up" | ||
| 5978 | | "arrow-right" | ||
| 5979 | | "arrow-left" | ||
| 5980 | | "bow-tie" | ||
| 5981 | | "hourglass" | ||
| 5982 | | "circle" | ||
| 5983 | | "star" | ||
| 5984 | | "x" | ||
| 5985 | | "plus" | ||
| 5986 | | "asterisk" | ||
| 5987 | | "horizontal-bar" | ||
| 5988 | | "vertical-bar" | ||
| 5989 | }) | ||
| 5990 | | (attribute chart:symbol-type { "image" }, | ||
| 5991 | element chart:symbol-image { | ||
| 5992 | attribute xlink:href { anyIRI } | ||
| 5993 | }) | ||
| 5994 | | empty) | ||
| 5995 | & attribute chart:symbol-width { nonNegativeLength }? | ||
| 5996 | & attribute chart:symbol-height { nonNegativeLength }? | ||
| 5997 | & attribute chart:sort-by-x-values { boolean }? | ||
| 5998 | & attribute chart:vertical { boolean }? | ||
| 5999 | & attribute chart:connect-bars { boolean }? | ||
| 6000 | & attribute chart:gap-width { integer }? | ||
| 6001 | & attribute chart:overlap { integer }? | ||
| 6002 | & attribute chart:group-bars-per-axis { boolean }? | ||
| 6003 | & attribute chart:japanese-candle-stick { boolean }? | ||
| 6004 | & attribute chart:interpolation { | ||
| 6005 | "none" | "cubic-spline" | "b-spline" | ||
| 6006 | }? | ||
| 6007 | & attribute chart:spline-order { positiveInteger }? | ||
| 6008 | & attribute chart:spline-resolution { positiveInteger }? | ||
| 6009 | & attribute chart:pie-offset { nonNegativeInteger }? | ||
| 6010 | & attribute chart:angle-offset { angle }? | ||
| 6011 | & attribute chart:hole-size { percent }? | ||
| 6012 | & attribute chart:lines { boolean }? | ||
| 6013 | & attribute chart:solid-type { | ||
| 6014 | "cuboid" | "cylinder" | "cone" | "pyramid" | ||
| 6015 | }? | ||
| 6016 | & attribute chart:stacked { boolean }? | ||
| 6017 | & attribute chart:percentage { boolean }? | ||
| 6018 | & attribute chart:treat-empty-cells { | ||
| 6019 | "use-zero" | "leave-gap" | "ignore" | ||
| 6020 | }? | ||
| 6021 | & attribute chart:link-data-style-to-source { boolean }? | ||
| 6022 | & attribute chart:logarithmic { boolean }? | ||
| 6023 | & attribute chart:maximum { double }? | ||
| 6024 | & attribute chart:minimum { double }? | ||
| 6025 | & attribute chart:origin { double }? | ||
| 6026 | & attribute chart:interval-major { double }? | ||
| 6027 | & attribute chart:interval-minor-divisor { positiveInteger }? | ||
| 6028 | & attribute chart:tick-marks-major-inner { boolean }? | ||
| 6029 | & attribute chart:tick-marks-major-outer { boolean }? | ||
| 6030 | & attribute chart:tick-marks-minor-inner { boolean }? | ||
| 6031 | & attribute chart:tick-marks-minor-outer { boolean }? | ||
| 6032 | & attribute chart:reverse-direction { boolean }? | ||
| 6033 | & attribute chart:display-label { boolean }? | ||
| 6034 | & attribute chart:text-overlap { boolean }? | ||
| 6035 | & attribute text:line-break { boolean }? | ||
| 6036 | & attribute chart:label-arrangement { | ||
| 6037 | "side-by-side" | "stagger-even" | "stagger-odd" | ||
| 6038 | }? | ||
| 6039 | & common-style-direction-attlist | ||
| 6040 | & common-rotation-angle-attlist | ||
| 6041 | & attribute chart:data-label-number { | ||
| 6042 | "none" | "value" | "percentage" | "value-and-percentage" | ||
| 6043 | }? | ||
| 6044 | & attribute chart:data-label-text { boolean }? | ||
| 6045 | & attribute chart:data-label-symbol { boolean }? | ||
| 6046 | & element chart:label-separator { text-p }? | ||
| 6047 | & attribute chart:label-position { labelPositions }? | ||
| 6048 | & attribute chart:label-position-negative { labelPositions }? | ||
| 6049 | & attribute chart:visible { boolean }? | ||
| 6050 | & attribute chart:auto-position { boolean }? | ||
| 6051 | & attribute chart:auto-size { boolean }? | ||
| 6052 | & attribute chart:mean-value { boolean }? | ||
| 6053 | & attribute chart:error-category { | ||
| 6054 | "none" | ||
| 6055 | | "variance" | ||
| 6056 | | "standard-deviation" | ||
| 6057 | | "percentage" | ||
| 6058 | | "error-margin" | ||
| 6059 | | "constant" | ||
| 6060 | | "standard-error" | ||
| 6061 | | "cell-range" | ||
| 6062 | }? | ||
| 6063 | & attribute chart:error-percentage { double }? | ||
| 6064 | & attribute chart:error-margin { double }? | ||
| 6065 | & attribute chart:error-lower-limit { double }? | ||
| 6066 | & attribute chart:error-upper-limit { double }? | ||
| 6067 | & attribute chart:error-upper-indicator { boolean }? | ||
| 6068 | & attribute chart:error-lower-indicator { boolean }? | ||
| 6069 | & attribute chart:error-lower-range { cellRangeAddressList }? | ||
| 6070 | & attribute chart:error-upper-range { cellRangeAddressList }? | ||
| 6071 | & attribute chart:series-source { "columns" | "rows" }? | ||
| 6072 | & attribute chart:regression-type { | ||
| 6073 | "none" | "linear" | "logarithmic" | "exponential" | "power" | ||
| 6074 | }? | ||
| 6075 | & attribute chart:axis-position { "start" | "end" | double }? | ||
| 6076 | & attribute chart:axis-label-position { | ||
| 6077 | "near-axis" | ||
| 6078 | | "near-axis-other-side" | ||
| 6079 | | "outside-start" | ||
| 6080 | | "outside-end" | ||
| 6081 | }? | ||
| 6082 | & attribute chart:tick-mark-position { | ||
| 6083 | "at-labels" | "at-axis" | "at-labels-and-axis" | ||
| 6084 | }? | ||
| 6085 | & attribute chart:include-hidden-cells { boolean }? | ||
| 6086 | labelPositions = | ||
| 6087 | "avoid-overlap" | ||
| 6088 | | "center" | ||
| 6089 | | "top" | ||
| 6090 | | "top-right" | ||
| 6091 | | "right" | ||
| 6092 | | "bottom-right" | ||
| 6093 | | "bottom" | ||
| 6094 | | "bottom-left" | ||
| 6095 | | "left" | ||
| 6096 | | "top-left" | ||
| 6097 | | "inside" | ||
| 6098 | | "outside" | ||
| 6099 | | "near-origin" | ||
| 6100 | style-drawing-page-properties-attlist = | ||
| 6101 | attribute presentation:transition-type { | ||
| 6102 | "manual" | "automatic" | "semi-automatic" | ||
| 6103 | }? | ||
| 6104 | & attribute presentation:transition-style { | ||
| 6105 | "none" | ||
| 6106 | | "fade-from-left" | ||
| 6107 | | "fade-from-top" | ||
| 6108 | | "fade-from-right" | ||
| 6109 | | "fade-from-bottom" | ||
| 6110 | | "fade-from-upperleft" | ||
| 6111 | | "fade-from-upperright" | ||
| 6112 | | "fade-from-lowerleft" | ||
| 6113 | | "fade-from-lowerright" | ||
| 6114 | | "move-from-left" | ||
| 6115 | | "move-from-top" | ||
| 6116 | | "move-from-right" | ||
| 6117 | | "move-from-bottom" | ||
| 6118 | | "move-from-upperleft" | ||
| 6119 | | "move-from-upperright" | ||
| 6120 | | "move-from-lowerleft" | ||
| 6121 | | "move-from-lowerright" | ||
| 6122 | | "uncover-to-left" | ||
| 6123 | | "uncover-to-top" | ||
| 6124 | | "uncover-to-right" | ||
| 6125 | | "uncover-to-bottom" | ||
| 6126 | | "uncover-to-upperleft" | ||
| 6127 | | "uncover-to-upperright" | ||
| 6128 | | "uncover-to-lowerleft" | ||
| 6129 | | "uncover-to-lowerright" | ||
| 6130 | | "fade-to-center" | ||
| 6131 | | "fade-from-center" | ||
| 6132 | | "vertical-stripes" | ||
| 6133 | | "horizontal-stripes" | ||
| 6134 | | "clockwise" | ||
| 6135 | | "counterclockwise" | ||
| 6136 | | "open-vertical" | ||
| 6137 | | "open-horizontal" | ||
| 6138 | | "close-vertical" | ||
| 6139 | | "close-horizontal" | ||
| 6140 | | "wavyline-from-left" | ||
| 6141 | | "wavyline-from-top" | ||
| 6142 | | "wavyline-from-right" | ||
| 6143 | | "wavyline-from-bottom" | ||
| 6144 | | "spiralin-left" | ||
| 6145 | | "spiralin-right" | ||
| 6146 | | "spiralout-left" | ||
| 6147 | | "spiralout-right" | ||
| 6148 | | "roll-from-top" | ||
| 6149 | | "roll-from-left" | ||
| 6150 | | "roll-from-right" | ||
| 6151 | | "roll-from-bottom" | ||
| 6152 | | "stretch-from-left" | ||
| 6153 | | "stretch-from-top" | ||
| 6154 | | "stretch-from-right" | ||
| 6155 | | "stretch-from-bottom" | ||
| 6156 | | "vertical-lines" | ||
| 6157 | | "horizontal-lines" | ||
| 6158 | | "dissolve" | ||
| 6159 | | "random" | ||
| 6160 | | "vertical-checkerboard" | ||
| 6161 | | "horizontal-checkerboard" | ||
| 6162 | | "interlocking-horizontal-left" | ||
| 6163 | | "interlocking-horizontal-right" | ||
| 6164 | | "interlocking-vertical-top" | ||
| 6165 | | "interlocking-vertical-bottom" | ||
| 6166 | | "fly-away" | ||
| 6167 | | "open" | ||
| 6168 | | "close" | ||
| 6169 | | "melt" | ||
| 6170 | }? | ||
| 6171 | & attribute presentation:transition-speed { presentationSpeeds }? | ||
| 6172 | & attribute smil:type { \string }? | ||
| 6173 | & attribute smil:subtype { \string }? | ||
| 6174 | & attribute smil:direction { "forward" | "reverse" }? | ||
| 6175 | & attribute smil:fadeColor { color }? | ||
| 6176 | & attribute presentation:duration { duration }? | ||
| 6177 | & attribute presentation:visibility { "visible" | "hidden" }? | ||
| 6178 | & attribute draw:background-size { "full" | "border" }? | ||
| 6179 | & attribute presentation:background-objects-visible { boolean }? | ||
| 6180 | & attribute presentation:background-visible { boolean }? | ||
| 6181 | & attribute presentation:display-header { boolean }? | ||
| 6182 | & attribute presentation:display-footer { boolean }? | ||
| 6183 | & attribute presentation:display-page-number { boolean }? | ||
| 6184 | & attribute presentation:display-date-time { boolean }? | ||
| 6185 | style-drawing-page-properties-elements = presentation-sound? | ||
| 6186 | \string = xsd:string | ||
| 6187 | date = xsd:date | ||
| 6188 | time = xsd:time | ||
| 6189 | dateTime = xsd:dateTime | ||
| 6190 | duration = xsd:duration | ||
| 6191 | integer = xsd:integer | ||
| 6192 | nonNegativeInteger = xsd:nonNegativeInteger | ||
| 6193 | positiveInteger = xsd:positiveInteger | ||
| 6194 | double = xsd:double | ||
| 6195 | anyURI = xsd:anyURI | ||
| 6196 | base64Binary = xsd:base64Binary | ||
| 6197 | ID = xsd:ID | ||
| 6198 | IDREF = xsd:IDREF | ||
| 6199 | IDREFS = xsd:IDREFS | ||
| 6200 | NCName = xsd:NCName | ||
| 6201 | boolean = "true" | "false" | ||
| 6202 | dateOrDateTime = xsd:date | xsd:dateTime | ||
| 6203 | timeOrDateTime = xsd:time | xsd:dateTime | ||
| 6204 | language = xsd:language | ||
| 6205 | countryCode = xsd:token { pattern = "[A-Za-z0-9]{1,8}" } | ||
| 6206 | languageCode = xsd:token { pattern = "[A-Za-z]{1,8}" } | ||
| 6207 | scriptCode = xsd:token { pattern = "[A-Za-z0-9]{1,8}" } | ||
| 6208 | character = xsd:string { length = "1" } | ||
| 6209 | length = | ||
| 6210 | xsd:string { | ||
| 6211 | pattern = | ||
| 6212 | "-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))" | ||
| 6213 | } | ||
| 6214 | nonNegativeLength = | ||
| 6215 | xsd:string { | ||
| 6216 | pattern = | ||
| 6217 | "([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))" | ||
| 6218 | } | ||
| 6219 | positiveLength = | ||
| 6220 | xsd:string { | ||
| 6221 | pattern = | ||
| 6222 | "([0-9]*[1-9][0-9]*(\.[0-9]*)?|0+\.[0-9]*[1-9][0-9]*|\.[0-9]*[1-9][0-9]*)((cm)|(mm)|(in)|(pt)|(pc)|(px))" | ||
| 6223 | } | ||
| 6224 | percent = xsd:string { pattern = "-?([0-9]+(\.[0-9]*)?|\.[0-9]+)%" } | ||
| 6225 | zeroToHundredPercent = | ||
| 6226 | xsd:string { | ||
| 6227 | pattern = "([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)%" | ||
| 6228 | } | ||
| 6229 | signedZeroToHundredPercent = | ||
| 6230 | xsd:string { | ||
| 6231 | pattern = "-?([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)%" | ||
| 6232 | } | ||
| 6233 | relativeLength = xsd:string { pattern = "[0-9]+\*" } | ||
| 6234 | coordinate = length | ||
| 6235 | distance = length | ||
| 6236 | color = xsd:string { pattern = "#[0-9a-fA-F]{6}" } | ||
| 6237 | angle = xsd:string | ||
| 6238 | CURIE = | ||
| 6239 | xsd:string { pattern = "(([\i-[:]][\c-[:]]*)?:)?.+" minLength = "1" } | ||
| 6240 | CURIEs = list { CURIE+ } | ||
| 6241 | SafeCURIE = | ||
| 6242 | xsd:string { | ||
| 6243 | pattern = "\[(([\i-[:]][\c-[:]]*)?:)?.+\]" | ||
| 6244 | minLength = "3" | ||
| 6245 | } | ||
| 6246 | URIorSafeCURIE = anyURI | SafeCURIE | ||
| 6247 | styleName = xsd:NCName | ||
| 6248 | styleNameRef = xsd:NCName | empty | ||
| 6249 | styleNameRefs = list { xsd:NCName* } | ||
| 6250 | variableName = xsd:string | ||
| 6251 | targetFrameName = "_self" | "_blank" | "_parent" | "_top" | \string | ||
| 6252 | valueType = | ||
| 6253 | "float" | ||
| 6254 | | "time" | ||
| 6255 | | "date" | ||
| 6256 | | "percentage" | ||
| 6257 | | "currency" | ||
| 6258 | | "boolean" | ||
| 6259 | | "string" | ||
| 6260 | points = | ||
| 6261 | xsd:string { pattern = "-?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)*" } | ||
| 6262 | pathData = xsd:string | ||
| 6263 | vector3D = | ||
| 6264 | xsd:string { | ||
| 6265 | pattern = | ||
| 6266 | "\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\)" | ||
| 6267 | } | ||
| 6268 | namespacedToken = xsd:QName { pattern = "[^:]+:[^:]+" } | ||
| 6269 | anyIRI = | ||
| 6270 | xsd:anyURI | ||
| 6271 | >> dc:description [ | ||
| 6272 | "An IRI-reference as defined in [RFC3987]. See ODF 1.2 Part 1 section 18.3." | ||
| 6273 | ] | ||
| 6274 | anyAttListOrElements = | ||
| 6275 | attribute * { text }*, | ||
| 6276 | anyElements | ||
| 6277 | anyElements = | ||
| 6278 | element * { | ||
| 6279 | mixed { anyAttListOrElements } | ||
| 6280 | }* | ||