summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2017-02-26 23:05:01 +0100
committerIuri de Silvio <iurisilvio@gmail.com>2017-02-26 19:05:01 -0300
commit62807734bd6f7f4ade5befb9a22b091db4182010 (patch)
tree8fe34c609b1abae58cbd959312bb248af4f10550
parentc5c2dffe421e663155baa7fa9a90540f6974554c (diff)
downloadtablib-62807734bd6f7f4ade5befb9a22b091db4182010.tar.gz
Replaced vendored odfpy by a dependency (#280)
Refs #273.
-rw-r--r--NOTICE210
-rwxr-xr-xsetup.py3
-rw-r--r--tablib/compat.py2
-rw-r--r--tablib/formats/_ods.py13
-rw-r--r--tablib/packages/odf/__init__.py0
-rw-r--r--tablib/packages/odf/anim.py61
-rw-r--r--tablib/packages/odf/attrconverters.py1484
-rw-r--r--tablib/packages/odf/chart.py87
-rw-r--r--tablib/packages/odf/config.py39
-rw-r--r--tablib/packages/odf/dc.py72
-rw-r--r--tablib/packages/odf/dr3d.py43
-rw-r--r--tablib/packages/odf/draw.py182
-rw-r--r--tablib/packages/odf/easyliststyle.py103
-rw-r--r--tablib/packages/odf/element.py513
-rw-r--r--tablib/packages/odf/elementtypes.py325
-rw-r--r--tablib/packages/odf/form.py115
-rw-r--r--tablib/packages/odf/grammar.py8426
-rw-r--r--tablib/packages/odf/load.py112
-rw-r--r--tablib/packages/odf/manifest.py41
-rw-r--r--tablib/packages/odf/math.py30
-rw-r--r--tablib/packages/odf/meta.py66
-rw-r--r--tablib/packages/odf/namespaces.py97
-rw-r--r--tablib/packages/odf/number.py104
-rw-r--r--tablib/packages/odf/odf2moinmoin.py579
-rw-r--r--tablib/packages/odf/odf2xhtml.py1582
-rw-r--r--tablib/packages/odf/odfmanifest.py115
-rw-r--r--tablib/packages/odf/office.py104
-rw-r--r--tablib/packages/odf/opendocument.py654
-rw-r--r--tablib/packages/odf/presentation.py85
-rw-r--r--tablib/packages/odf/script.py30
-rw-r--r--tablib/packages/odf/style.py148
-rw-r--r--tablib/packages/odf/svg.py54
-rw-r--r--tablib/packages/odf/table.py307
-rw-r--r--tablib/packages/odf/teletype.py137
-rw-r--r--tablib/packages/odf/text.py562
-rw-r--r--tablib/packages/odf/thumbnail.py427
-rw-r--r--tablib/packages/odf/userfield.py169
-rw-r--r--tablib/packages/odf/xforms.py34
-rw-r--r--tablib/packages/odf3/__init__.py0
-rw-r--r--tablib/packages/odf3/anim.py61
-rw-r--r--tablib/packages/odf3/attrconverters.py1484
-rw-r--r--tablib/packages/odf3/chart.py87
-rw-r--r--tablib/packages/odf3/config.py39
-rw-r--r--tablib/packages/odf3/dc.py72
-rw-r--r--tablib/packages/odf3/dr3d.py43
-rw-r--r--tablib/packages/odf3/draw.py182
-rw-r--r--tablib/packages/odf3/easyliststyle.py103
-rw-r--r--tablib/packages/odf3/element.py519
-rw-r--r--tablib/packages/odf3/elementtypes.py325
-rw-r--r--tablib/packages/odf3/form.py115
-rw-r--r--tablib/packages/odf3/grammar.py8426
-rw-r--r--tablib/packages/odf3/load.py112
-rw-r--r--tablib/packages/odf3/manifest.py41
-rw-r--r--tablib/packages/odf3/math.py30
-rw-r--r--tablib/packages/odf3/meta.py66
-rw-r--r--tablib/packages/odf3/namespaces.py97
-rw-r--r--tablib/packages/odf3/number.py104
-rw-r--r--tablib/packages/odf3/odf2moinmoin.py579
-rw-r--r--tablib/packages/odf3/odf2xhtml.py1582
-rw-r--r--tablib/packages/odf3/odfmanifest.py115
-rw-r--r--tablib/packages/odf3/office.py104
-rw-r--r--tablib/packages/odf3/opendocument.py654
-rw-r--r--tablib/packages/odf3/presentation.py85
-rw-r--r--tablib/packages/odf3/script.py30
-rw-r--r--tablib/packages/odf3/style.py148
-rw-r--r--tablib/packages/odf3/svg.py54
-rw-r--r--tablib/packages/odf3/table.py307
-rw-r--r--tablib/packages/odf3/teletype.py137
-rw-r--r--tablib/packages/odf3/text.py562
-rw-r--r--tablib/packages/odf3/thumbnail.py427
-rw-r--r--tablib/packages/odf3/userfield.py169
-rw-r--r--tablib/packages/odf3/xforms.py34
72 files changed, 5 insertions, 34003 deletions
diff --git a/NOTICE b/NOTICE
index a6589ff..4bdbb05 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,4 +1,4 @@
-Tablib includes some vendorized python libraries: ordereddict, odfpy.
+Tablib includes some vendorized python libraries: ordereddict, markup.
Markup License
==============
@@ -6,214 +6,6 @@ Markup License
Markup is in the public domain.
-Odfpy License
-=============
-
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-
OrderedDict License
===================
diff --git a/setup.py b/setup.py
index 5c748af..e46eb88 100755
--- a/setup.py
+++ b/setup.py
@@ -37,13 +37,12 @@ if sys.argv[-1] == 'test':
packages = [
'tablib', 'tablib.formats',
'tablib.packages',
- 'tablib.packages.odf',
'tablib.packages.dbfpy',
- 'tablib.packages.odf3',
'tablib.packages.dbfpy3'
]
install = [
+ 'odfpy',
'openpyxl',
'unicodecsv',
'xlrd',
diff --git a/tablib/compat.py b/tablib/compat.py
index 9a7b872..43e0bbc 100644
--- a/tablib/compat.py
+++ b/tablib/compat.py
@@ -23,7 +23,6 @@ except ImportError:
if is_py3:
from io import BytesIO
from tablib.packages import markup3 as markup
- from tablib.packages.odf3 import opendocument, style, text, table
import tablib.packages.dbfpy3 as dbfpy
import csv
@@ -41,7 +40,6 @@ else:
from cStringIO import StringIO
from tablib.packages import markup
from itertools import ifilter
- from tablib.packages.odf import opendocument, style, text, table
import unicodecsv as csv
import tablib.packages.dbfpy as dbfpy
diff --git a/tablib/formats/_ods.py b/tablib/formats/_ods.py
index f43a26c..c7af891 100644
--- a/tablib/formats/_ods.py
+++ b/tablib/formats/_ods.py
@@ -3,15 +3,8 @@
""" Tablib - ODF Support.
"""
-import sys
-
-
-if sys.version_info[0] > 2:
- from io import BytesIO
-else:
- from cStringIO import StringIO as BytesIO
-
-from tablib.compat import opendocument, style, table, text, unicode
+from odf import opendocument, style, table, text
+from tablib.compat import BytesIO, unicode
title = 'ods'
extensions = ('ods',)
@@ -97,4 +90,4 @@ def dset_sheet(dataset, ws):
ws.addElement(odf_row)
cell = table.TableCell()
cell.addElement(text.P(text=col))
- odf_row.addElement(cell) \ No newline at end of file
+ odf_row.addElement(cell)
diff --git a/tablib/packages/odf/__init__.py b/tablib/packages/odf/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/tablib/packages/odf/__init__.py
+++ /dev/null
diff --git a/tablib/packages/odf/anim.py b/tablib/packages/odf/anim.py
deleted file mode 100644
index 27dca36..0000000
--- a/tablib/packages/odf/anim.py
+++ /dev/null
@@ -1,61 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import ANIMNS
-from element import Element
-
-
-# Autogenerated
-def Animate(**args):
- return Element(qname = (ANIMNS,'animate'), **args)
-
-def Animatecolor(**args):
- return Element(qname = (ANIMNS,'animateColor'), **args)
-
-def Animatemotion(**args):
- return Element(qname = (ANIMNS,'animateMotion'), **args)
-
-def Animatetransform(**args):
- return Element(qname = (ANIMNS,'animateTransform'), **args)
-
-def Audio(**args):
- return Element(qname = (ANIMNS,'audio'), **args)
-
-def Command(**args):
- return Element(qname = (ANIMNS,'command'), **args)
-
-def Iterate(**args):
- return Element(qname = (ANIMNS,'iterate'), **args)
-
-def Par(**args):
- return Element(qname = (ANIMNS,'par'), **args)
-
-def Param(**args):
- return Element(qname = (ANIMNS,'param'), **args)
-
-def Seq(**args):
- return Element(qname = (ANIMNS,'seq'), **args)
-
-def Set(**args):
- return Element(qname = (ANIMNS,'set'), **args)
-
-def Transitionfilter(**args):
- return Element(qname = (ANIMNS,'transitionFilter'), **args)
-
diff --git a/tablib/packages/odf/attrconverters.py b/tablib/packages/odf/attrconverters.py
deleted file mode 100644
index b75f80a..0000000
--- a/tablib/packages/odf/attrconverters.py
+++ /dev/null
@@ -1,1484 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2010 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-from namespaces import *
-import re, types
-
-pattern_color = re.compile(r'#[0-9a-fA-F]{6}')
-pattern_vector3D = re.compile(r'\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\)')
-
-def make_NCName(arg):
- for c in (':',' '):
- arg = arg.replace(c,"_%x_" % ord(c))
- return arg
-
-def cnv_anyURI(attribute, arg, element):
- return unicode(arg)
-
-def cnv_boolean(attribute, arg, element):
- if arg.lower() in ("false","no"):
- return "false"
- if arg:
- return "true"
- return "false"
-
-# Potentially accept color values
-def cnv_color(attribute, arg, element):
- """ A RGB color in conformance with §5.9.11 of [XSL], that is a RGB color in notation “#rrggbb”, where
- rr, gg and bb are 8-bit hexadecimal digits.
- """
- return str(arg)
-
-def cnv_configtype(attribute, arg, element):
- if str(arg) not in ("boolean", "short", "int", "long",
- "double", "string", "datetime", "base64Binary"):
- raise ValueError, "'%s' not allowed" % str(arg)
- return str(arg)
-
-def cnv_data_source_has_labels(attribute, arg, element):
- if str(arg) not in ("none","row","column","both"):
- raise ValueError, "'%s' not allowed" % str(arg)
- return str(arg)
-
-# Understand different date formats
-def cnv_date(attribute, arg, element):
- """ A dateOrDateTime value is either an [xmlschema-2] date value or an [xmlschema-2] dateTime
- value.
- """
- return str(arg)
-
-def cnv_dateTime(attribute, arg, element):
- """ A dateOrDateTime value is either an [xmlschema-2] date value or an [xmlschema-2] dateTime
- value.
- """
- return str(arg)
-
-def cnv_double(attribute, arg, element):
- return str(arg)
-
-def cnv_duration(attribute, arg, element):
- return str(arg)
-
-def cnv_family(attribute, arg, element):
- """ A style family """
- if str(arg) not in ("text", "paragraph", "section", "ruby", "table", "table-column", "table-row", "table-cell",
- "graphic", "presentation", "drawing-page", "chart"):
- raise ValueError, "'%s' not allowed" % str(arg)
- return str(arg)
-
-def __save_prefix(attribute, arg, element):
- prefix = arg.split(':',1)[0]
- if prefix == arg:
- return unicode(arg)
- namespace = element.get_knownns(prefix)
- if namespace is None:
- #raise ValueError, "'%s' is an unknown prefix" % str(prefix)
- return unicode(arg)
- p = element.get_nsprefix(namespace)
- return unicode(arg)
-
-def cnv_formula(attribute, arg, element):
- """ A string containing a formula. Formulas do not have a predefined syntax, but the string should
- begin with a namespace prefix, followed by a “:” (COLON, U+003A) separator, followed by the text
- of the formula. The namespace bound to the prefix determines the syntax and semantics of the
- formula.
- """
- return __save_prefix(attribute, arg, element)
-
-def cnv_ID(attribute, arg, element):
- return str(arg)
-
-def cnv_IDREF(attribute, arg, element):
- return str(arg)
-
-def cnv_integer(attribute, arg, element):
- return str(arg)
-
-def cnv_legend_position(attribute, arg, element):
- if str(arg) not in ("start", "end", "top", "bottom", "top-start", "bottom-start", "top-end", "bottom-end"):
- raise ValueError, "'%s' not allowed" % str(arg)
- return str(arg)
-
-pattern_length = re.compile(r'-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))')
-
-def cnv_length(attribute, arg, element):
- """ A (positive or negative) physical length, consisting of magnitude and unit, in conformance with the
- Units of Measure defined in §5.9.13 of [XSL].
- """
- global pattern_length
- if not pattern_length.match(arg):
- raise ValueError, "'%s' is not a valid length" % arg
- return arg
-
-def cnv_lengthorpercent(attribute, arg, element):
- failed = False
- try: return cnv_length(attribute, arg, element)
- except: failed = True
- try: return cnv_percent(attribute, arg, element)
- except: failed = True
- if failed:
- raise ValueError, "'%s' is not a valid length or percent" % arg
- return arg
-
-def cnv_metavaluetype(attribute, arg, element):
- if str(arg) not in ("float", "date", "time", "boolean", "string"):
- raise ValueError, "'%s' not allowed" % str(arg)
- return str(arg)
-
-def cnv_major_minor(attribute, arg, element):
- if arg not in ('major','minor'):
- raise ValueError, "'%s' is not either 'minor' or 'major'" % arg
-
-pattern_namespacedToken = re.compile(r'[0-9a-zA-Z_]+:[0-9a-zA-Z._\-]+')
-
-def cnv_namespacedToken(attribute, arg, element):
- global pattern_namespacedToken
-
- if not pattern_namespacedToken.match(arg):
- raise ValueError, "'%s' is not a valid namespaced token" % arg
- return __save_prefix(attribute, arg, element)
-
-def cnv_NCName(attribute, arg, element):
- """ NCName is defined in http://www.w3.org/TR/REC-xml-names/#NT-NCName
- Essentially an XML name minus ':'
- """
- if type(arg) in types.StringTypes:
- return make_NCName(arg)
- else:
- return arg.getAttrNS(STYLENS, 'name')
-
-# This function takes either an instance of a style (preferred)
-# or a text string naming the style. If it is a text string, then it must
-# already have been converted to an NCName
-# The text-string argument is mainly for when we build a structure from XML
-def cnv_StyleNameRef(attribute, arg, element):
- try:
- return arg.getAttrNS(STYLENS, 'name')
- except:
- return arg
-
-# This function takes either an instance of a style (preferred)
-# or a text string naming the style. If it is a text string, then it must
-# already have been converted to an NCName
-# The text-string argument is mainly for when we build a structure from XML
-def cnv_DrawNameRef(attribute, arg, element):
- try:
- return arg.getAttrNS(DRAWNS, 'name')
- except:
- return arg
-
-# Must accept list of Style objects
-def cnv_NCNames(attribute, arg, element):
- return ' '.join(arg)
-
-def cnv_nonNegativeInteger(attribute, arg, element):
- return str(arg)
-
-pattern_percent = re.compile(r'-?([0-9]+(\.[0-9]*)?|\.[0-9]+)%')
-
-def cnv_percent(attribute, arg, element):
- global pattern_percent
- if not pattern_percent.match(arg):
- raise ValueError, "'%s' is not a valid length" % arg
- return arg
-
-# Real one doesn't allow floating point values
-pattern_points = re.compile(r'-?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)*')
-#pattern_points = re.compile(r'-?[0-9.]+,-?[0-9.]+([ ]+-?[0-9.]+,-?[0-9.]+)*')
-def cnv_points(attribute, arg, element):
- global pattern_points
- if type(arg) in types.StringTypes:
- if not pattern_points.match(arg):
- raise ValueError, "x,y are separated by a comma and the points are separated by white spaces"
- return arg
- else:
- try:
- strarg = ' '.join([ "%d,%d" % p for p in arg])
- except:
- raise ValueError, "Points must be string or [(0,0),(1,1)] - not %s" % arg
- return strarg
-
-def cnv_positiveInteger(attribute, arg, element):
- return str(arg)
-
-def cnv_string(attribute, arg, element):
- return unicode(arg)
-
-def cnv_textnoteclass(attribute, arg, element):
- if str(arg) not in ("footnote", "endnote"):
- raise ValueError, "'%s' not allowed" % str(arg)
- return str(arg)
-
-# Understand different time formats
-def cnv_time(attribute, arg, element):
- return str(arg)
-
-def cnv_token(attribute, arg, element):
- return str(arg)
-
-pattern_viewbox = re.compile(r'-?[0-9]+([ ]+-?[0-9]+){3}$')
-
-def cnv_viewbox(attribute, arg, element):
- global pattern_viewbox
- if not pattern_viewbox.match(arg):
- raise ValueError, "viewBox must be four integers separated by whitespaces"
- return arg
-
-def cnv_xlinkshow(attribute, arg, element):
- if str(arg) not in ("new", "replace", "embed"):
- raise ValueError, "'%s' not allowed" % str(arg)
- return str(arg)
-
-
-attrconverters = {
- ((ANIMNS,u'audio-level'), None): cnv_double,
- ((ANIMNS,u'color-interpolation'), None): cnv_string,
- ((ANIMNS,u'color-interpolation-direction'), None): cnv_string,
- ((ANIMNS,u'command'), None): cnv_string,
- ((ANIMNS,u'formula'), None): cnv_string,
- ((ANIMNS,u'id'), None): cnv_ID,
- ((ANIMNS,u'iterate-interval'), None): cnv_duration,
- ((ANIMNS,u'iterate-type'), None): cnv_string,
- ((ANIMNS,u'name'), None): cnv_string,
- ((ANIMNS,u'sub-item'), None): cnv_string,
- ((ANIMNS,u'value'), None): cnv_string,
-# ((DBNS,u'type'), None): cnv_namespacedToken,
- ((CHARTNS,u'attached-axis'), None): cnv_string,
- ((CHARTNS,u'class'), (CHARTNS,u'grid')): cnv_major_minor,
- ((CHARTNS,u'class'), None): cnv_namespacedToken,
- ((CHARTNS,u'column-mapping'), None): cnv_string,
- ((CHARTNS,u'connect-bars'), None): cnv_boolean,
- ((CHARTNS,u'data-label-number'), None): cnv_string,
- ((CHARTNS,u'data-label-symbol'), None): cnv_boolean,
- ((CHARTNS,u'data-label-text'), None): cnv_boolean,
- ((CHARTNS,u'data-source-has-labels'), None): cnv_data_source_has_labels,
- ((CHARTNS,u'deep'), None): cnv_boolean,
- ((CHARTNS,u'dimension'), None): cnv_string,
- ((CHARTNS,u'display-label'), None): cnv_boolean,
- ((CHARTNS,u'error-category'), None): cnv_string,
- ((CHARTNS,u'error-lower-indicator'), None): cnv_boolean,
- ((CHARTNS,u'error-lower-limit'), None): cnv_string,
- ((CHARTNS,u'error-margin'), None): cnv_string,
- ((CHARTNS,u'error-percentage'), None): cnv_string,
- ((CHARTNS,u'error-upper-indicator'), None): cnv_boolean,
- ((CHARTNS,u'error-upper-limit'), None): cnv_string,
- ((CHARTNS,u'gap-width'), None): cnv_string,
- ((CHARTNS,u'interpolation'), None): cnv_string,
- ((CHARTNS,u'interval-major'), None): cnv_string,
- ((CHARTNS,u'interval-minor-divisor'), None): cnv_string,
- ((CHARTNS,u'japanese-candle-stick'), None): cnv_boolean,
- ((CHARTNS,u'label-arrangement'), None): cnv_string,
- ((CHARTNS,u'label-cell-address'), None): cnv_string,
- ((CHARTNS,u'legend-align'), None): cnv_string,
- ((CHARTNS,u'legend-position'), None): cnv_legend_position,
- ((CHARTNS,u'lines'), None): cnv_boolean,
- ((CHARTNS,u'link-data-style-to-source'), None): cnv_boolean,
- ((CHARTNS,u'logarithmic'), None): cnv_boolean,
- ((CHARTNS,u'maximum'), None): cnv_string,
- ((CHARTNS,u'mean-value'), None): cnv_boolean,
- ((CHARTNS,u'minimum'), None): cnv_string,
- ((CHARTNS,u'name'), None): cnv_string,
- ((CHARTNS,u'origin'), None): cnv_string,
- ((CHARTNS,u'overlap'), None): cnv_string,
- ((CHARTNS,u'percentage'), None): cnv_boolean,
- ((CHARTNS,u'pie-offset'), None): cnv_string,
- ((CHARTNS,u'regression-type'), None): cnv_string,
- ((CHARTNS,u'repeated'), None): cnv_nonNegativeInteger,
- ((CHARTNS,u'row-mapping'), None): cnv_string,
- ((CHARTNS,u'scale-text'), None): cnv_boolean,
- ((CHARTNS,u'series-source'), None): cnv_string,
- ((CHARTNS,u'solid-type'), None): cnv_string,
- ((CHARTNS,u'spline-order'), None): cnv_string,
- ((CHARTNS,u'spline-resolution'), None): cnv_string,
- ((CHARTNS,u'stacked'), None): cnv_boolean,
- ((CHARTNS,u'style-name'), None): cnv_StyleNameRef,
- ((CHARTNS,u'symbol-height'), None): cnv_string,
- ((CHARTNS,u'symbol-name'), None): cnv_string,
- ((CHARTNS,u'symbol-type'), None): cnv_string,
- ((CHARTNS,u'symbol-width'), None): cnv_string,
- ((CHARTNS,u'text-overlap'), None): cnv_boolean,
- ((CHARTNS,u'three-dimensional'), None): cnv_boolean,
- ((CHARTNS,u'tick-marks-major-inner'), None): cnv_boolean,
- ((CHARTNS,u'tick-marks-major-outer'), None): cnv_boolean,
- ((CHARTNS,u'tick-marks-minor-inner'), None): cnv_boolean,
- ((CHARTNS,u'tick-marks-minor-outer'), None): cnv_boolean,
- ((CHARTNS,u'values-cell-range-address'), None): cnv_string,
- ((CHARTNS,u'vertical'), None): cnv_boolean,
- ((CHARTNS,u'visible'), None): cnv_boolean,
- ((CONFIGNS,u'name'), None): cnv_formula,
- ((CONFIGNS,u'type'), None): cnv_configtype,
- ((DR3DNS,u'ambient-color'), None): cnv_string,
- ((DR3DNS,u'back-scale'), None): cnv_string,
- ((DR3DNS,u'backface-culling'), None): cnv_string,
- ((DR3DNS,u'center'), None): cnv_string,
- ((DR3DNS,u'close-back'), None): cnv_boolean,
- ((DR3DNS,u'close-front'), None): cnv_boolean,
- ((DR3DNS,u'depth'), None): cnv_length,
- ((DR3DNS,u'diffuse-color'), None): cnv_string,
- ((DR3DNS,u'direction'), None): cnv_string,
- ((DR3DNS,u'distance'), None): cnv_length,
- ((DR3DNS,u'edge-rounding'), None): cnv_string,
- ((DR3DNS,u'edge-rounding-mode'), None): cnv_string,
- ((DR3DNS,u'emissive-color'), None): cnv_string,
- ((DR3DNS,u'enabled'), None): cnv_boolean,
- ((DR3DNS,u'end-angle'), None): cnv_string,
- ((DR3DNS,u'focal-length'), None): cnv_length,
- ((DR3DNS,u'horizontal-segments'), None): cnv_string,
- ((DR3DNS,u'lighting-mode'), None): cnv_boolean,
- ((DR3DNS,u'max-edge'), None): cnv_string,
- ((DR3DNS,u'min-edge'), None): cnv_string,
- ((DR3DNS,u'normals-direction'), None): cnv_string,
- ((DR3DNS,u'normals-kind'), None): cnv_string,
- ((DR3DNS,u'projection'), None): cnv_string,
- ((DR3DNS,u'shade-mode'), None): cnv_string,
- ((DR3DNS,u'shadow'), None): cnv_string,
- ((DR3DNS,u'shadow-slant'), None): cnv_nonNegativeInteger,
- ((DR3DNS,u'shininess'), None): cnv_string,
- ((DR3DNS,u'size'), None): cnv_string,
- ((DR3DNS,u'specular'), None): cnv_boolean,
- ((DR3DNS,u'specular-color'), None): cnv_string,
- ((DR3DNS,u'texture-filter'), None): cnv_string,
- ((DR3DNS,u'texture-generation-mode-x'), None): cnv_string,
- ((DR3DNS,u'texture-generation-mode-y'), None): cnv_string,
- ((DR3DNS,u'texture-kind'), None): cnv_string,
- ((DR3DNS,u'texture-mode'), None): cnv_string,
- ((DR3DNS,u'transform'), None): cnv_string,
- ((DR3DNS,u'vertical-segments'), None): cnv_string,
- ((DR3DNS,u'vpn'), None): cnv_string,
- ((DR3DNS,u'vrp'), None): cnv_string,
- ((DR3DNS,u'vup'), None): cnv_string,
- ((DRAWNS,u'align'), None): cnv_string,
- ((DRAWNS,u'angle'), None): cnv_integer,
- ((DRAWNS,u'archive'), None): cnv_string,
- ((DRAWNS,u'auto-grow-height'), None): cnv_boolean,
- ((DRAWNS,u'auto-grow-width'), None): cnv_boolean,
- ((DRAWNS,u'background-size'), None): cnv_string,
- ((DRAWNS,u'blue'), None): cnv_string,
- ((DRAWNS,u'border'), None): cnv_string,
- ((DRAWNS,u'caption-angle'), None): cnv_string,
- ((DRAWNS,u'caption-angle-type'), None): cnv_string,
- ((DRAWNS,u'caption-escape'), None): cnv_string,
- ((DRAWNS,u'caption-escape-direction'), None): cnv_string,
- ((DRAWNS,u'caption-fit-line-length'), None): cnv_boolean,
- ((DRAWNS,u'caption-gap'), None): cnv_string,
- ((DRAWNS,u'caption-line-length'), None): cnv_length,
- ((DRAWNS,u'caption-point-x'), None): cnv_string,
- ((DRAWNS,u'caption-point-y'), None): cnv_string,
- ((DRAWNS,u'caption-id'), None): cnv_IDREF,
- ((DRAWNS,u'caption-type'), None): cnv_string,
- ((DRAWNS,u'chain-next-name'), None): cnv_string,
- ((DRAWNS,u'class-id'), None): cnv_string,
- ((DRAWNS,u'class-names'), None): cnv_NCNames,
- ((DRAWNS,u'code'), None): cnv_string,
- ((DRAWNS,u'color'), None): cnv_string,
- ((DRAWNS,u'color-inversion'), None): cnv_boolean,
- ((DRAWNS,u'color-mode'), None): cnv_string,
- ((DRAWNS,u'concave'), None): cnv_string,
- ((DRAWNS,u'concentric-gradient-fill-allowed'), None): cnv_boolean,
- ((DRAWNS,u'contrast'), None): cnv_string,
- ((DRAWNS,u'control'), None): cnv_IDREF,
- ((DRAWNS,u'copy-of'), None): cnv_string,
- ((DRAWNS,u'corner-radius'), None): cnv_length,
- ((DRAWNS,u'corners'), None): cnv_positiveInteger,
- ((DRAWNS,u'cx'), None): cnv_string,
- ((DRAWNS,u'cy'), None): cnv_string,
- ((DRAWNS,u'data'), None): cnv_string,
- ((DRAWNS,u'decimal-places'), None): cnv_string,
- ((DRAWNS,u'display'), None): cnv_string,
- ((DRAWNS,u'display-name'), None): cnv_string,
- ((DRAWNS,u'distance'), None): cnv_lengthorpercent,
- ((DRAWNS,u'dots1'), None): cnv_integer,
- ((DRAWNS,u'dots1-length'), None): cnv_lengthorpercent,
- ((DRAWNS,u'dots2'), None): cnv_integer,
- ((DRAWNS,u'dots2-length'), None): cnv_lengthorpercent,
- ((DRAWNS,u'end-angle'), None): cnv_double,
- ((DRAWNS,u'end'), None): cnv_string,
- ((DRAWNS,u'end-color'), None): cnv_string,
- ((DRAWNS,u'end-glue-point'), None): cnv_nonNegativeInteger,
- ((DRAWNS,u'end-guide'), None): cnv_length,
- ((DRAWNS,u'end-intensity'), None): cnv_string,
- ((DRAWNS,u'end-line-spacing-horizontal'), None): cnv_string,
- ((DRAWNS,u'end-line-spacing-vertical'), None): cnv_string,
- ((DRAWNS,u'end-shape'), None): cnv_IDREF,
- ((DRAWNS,u'engine'), None): cnv_namespacedToken,
- ((DRAWNS,u'enhanced-path'), None): cnv_string,
- ((DRAWNS,u'escape-direction'), None): cnv_string,
- ((DRAWNS,u'extrusion-allowed'), None): cnv_boolean,
- ((DRAWNS,u'extrusion-brightness'), None): cnv_string,
- ((DRAWNS,u'extrusion'), None): cnv_boolean,
- ((DRAWNS,u'extrusion-color'), None): cnv_boolean,
- ((DRAWNS,u'extrusion-depth'), None): cnv_double,
- ((DRAWNS,u'extrusion-diffusion'), None): cnv_string,
- ((DRAWNS,u'extrusion-first-light-direction'), None): cnv_string,
- ((DRAWNS,u'extrusion-first-light-harsh'), None): cnv_boolean,
- ((DRAWNS,u'extrusion-first-light-level'), None): cnv_string,
- ((DRAWNS,u'extrusion-light-face'), None): cnv_boolean,
- ((DRAWNS,u'extrusion-metal'), None): cnv_boolean,
- ((DRAWNS,u'extrusion-number-of-line-segments'), None): cnv_integer,
- ((DRAWNS,u'extrusion-origin'), None): cnv_double,
- ((DRAWNS,u'extrusion-rotation-angle'), None): cnv_double,
- ((DRAWNS,u'extrusion-rotation-center'), None): cnv_string,
- ((DRAWNS,u'extrusion-second-light-direction'), None): cnv_string,
- ((DRAWNS,u'extrusion-second-light-harsh'), None): cnv_boolean,
- ((DRAWNS,u'extrusion-second-light-level'), None): cnv_string,
- ((DRAWNS,u'extrusion-shininess'), None): cnv_string,
- ((DRAWNS,u'extrusion-skew'), None): cnv_double,
- ((DRAWNS,u'extrusion-specularity'), None): cnv_string,
- ((DRAWNS,u'extrusion-viewpoint'), None): cnv_string,
- ((DRAWNS,u'fill'), None): cnv_string,
- ((DRAWNS,u'fill-color'), None): cnv_string,
- ((DRAWNS,u'fill-gradient-name'), None): cnv_string,
- ((DRAWNS,u'fill-hatch-name'), None): cnv_string,
- ((DRAWNS,u'fill-hatch-solid'), None): cnv_boolean,
- ((DRAWNS,u'fill-image-height'), None): cnv_lengthorpercent,
- ((DRAWNS,u'fill-image-name'), None): cnv_DrawNameRef,
- ((DRAWNS,u'fill-image-ref-point'), None): cnv_string,
- ((DRAWNS,u'fill-image-ref-point-x'), None): cnv_string,
- ((DRAWNS,u'fill-image-ref-point-y'), None): cnv_string,
- ((DRAWNS,u'fill-image-width'), None): cnv_lengthorpercent,
- ((DRAWNS,u'filter-name'), None): cnv_string,
- ((DRAWNS,u'fit-to-contour'), None): cnv_boolean,
- ((DRAWNS,u'fit-to-size'), None): cnv_boolean,
- ((DRAWNS,u'formula'), None): cnv_string,
- ((DRAWNS,u'frame-display-border'), None): cnv_boolean,
- ((DRAWNS,u'frame-display-scrollbar'), None): cnv_boolean,
- ((DRAWNS,u'frame-margin-horizontal'), None): cnv_string,
- ((DRAWNS,u'frame-margin-vertical'), None): cnv_string,
- ((DRAWNS,u'frame-name'), None): cnv_string,
- ((DRAWNS,u'gamma'), None): cnv_string,
- ((DRAWNS,u'glue-point-leaving-directions'), None): cnv_string,
- ((DRAWNS,u'glue-point-type'), None): cnv_string,
- ((DRAWNS,u'glue-points'), None): cnv_string,
- ((DRAWNS,u'gradient-step-count'), None): cnv_string,
- ((DRAWNS,u'green'), None): cnv_string,
- ((DRAWNS,u'guide-distance'), None): cnv_string,
- ((DRAWNS,u'guide-overhang'), None): cnv_length,
- ((DRAWNS,u'handle-mirror-horizontal'), None): cnv_boolean,
- ((DRAWNS,u'handle-mirror-vertical'), None): cnv_boolean,
- ((DRAWNS,u'handle-polar'), None): cnv_string,
- ((DRAWNS,u'handle-position'), None): cnv_string,
- ((DRAWNS,u'handle-radius-range-maximum'), None): cnv_string,
- ((DRAWNS,u'handle-radius-range-minimum'), None): cnv_string,
- ((DRAWNS,u'handle-range-x-maximum'), None): cnv_string,
- ((DRAWNS,u'handle-range-x-minimum'), None): cnv_string,
- ((DRAWNS,u'handle-range-y-maximum'), None): cnv_string,
- ((DRAWNS,u'handle-range-y-minimum'), None): cnv_string,
- ((DRAWNS,u'handle-switched'), None): cnv_boolean,
-# ((DRAWNS,u'id'), None): cnv_ID,
-# ((DRAWNS,u'id'), None): cnv_nonNegativeInteger, # ?? line 6581 in RNG
- ((DRAWNS,u'id'), None): cnv_string,
- ((DRAWNS,u'image-opacity'), None): cnv_string,
- ((DRAWNS,u'kind'), None): cnv_string,
- ((DRAWNS,u'layer'), None): cnv_string,
- ((DRAWNS,u'line-distance'), None): cnv_string,
- ((DRAWNS,u'line-skew'), None): cnv_string,
- ((DRAWNS,u'luminance'), None): cnv_string,
- ((DRAWNS,u'marker-end-center'), None): cnv_boolean,
- ((DRAWNS,u'marker-end'), None): cnv_string,
- ((DRAWNS,u'marker-end-width'), None): cnv_length,
- ((DRAWNS,u'marker-start-center'), None): cnv_boolean,
- ((DRAWNS,u'marker-start'), None): cnv_string,
- ((DRAWNS,u'marker-start-width'), None): cnv_length,
- ((DRAWNS,u'master-page-name'), None): cnv_StyleNameRef,
- ((DRAWNS,u'may-script'), None): cnv_boolean,
- ((DRAWNS,u'measure-align'), None): cnv_string,
- ((DRAWNS,u'measure-vertical-align'), None): cnv_string,
- ((DRAWNS,u'mime-type'), None): cnv_string,
- ((DRAWNS,u'mirror-horizontal'), None): cnv_boolean,
- ((DRAWNS,u'mirror-vertical'), None): cnv_boolean,
- ((DRAWNS,u'modifiers'), None): cnv_string,
- ((DRAWNS,u'name'), None): cnv_NCName,
-# ((DRAWNS,u'name'), None): cnv_string,
- ((DRAWNS,u'nav-order'), None): cnv_IDREF,
- ((DRAWNS,u'nohref'), None): cnv_string,
- ((DRAWNS,u'notify-on-update-of-ranges'), None): cnv_string,
- ((DRAWNS,u'object'), None): cnv_string,
- ((DRAWNS,u'ole-draw-aspect'), None): cnv_string,
- ((DRAWNS,u'opacity'), None): cnv_string,
- ((DRAWNS,u'opacity-name'), None): cnv_string,
- ((DRAWNS,u'page-number'), None): cnv_positiveInteger,
- ((DRAWNS,u'parallel'), None): cnv_boolean,
- ((DRAWNS,u'path-stretchpoint-x'), None): cnv_double,
- ((DRAWNS,u'path-stretchpoint-y'), None): cnv_double,
- ((DRAWNS,u'placing'), None): cnv_string,
- ((DRAWNS,u'points'), None): cnv_points,
- ((DRAWNS,u'protected'), None): cnv_boolean,
- ((DRAWNS,u'recreate-on-edit'), None): cnv_boolean,
- ((DRAWNS,u'red'), None): cnv_string,
- ((DRAWNS,u'rotation'), None): cnv_integer,
- ((DRAWNS,u'secondary-fill-color'), None): cnv_string,
- ((DRAWNS,u'shadow'), None): cnv_string,
- ((DRAWNS,u'shadow-color'), None): cnv_string,
- ((DRAWNS,u'shadow-offset-x'), None): cnv_length,
- ((DRAWNS,u'shadow-offset-y'), None): cnv_length,
- ((DRAWNS,u'shadow-opacity'), None): cnv_string,
- ((DRAWNS,u'shape-id'), None): cnv_IDREF,
- ((DRAWNS,u'sharpness'), None): cnv_string,
- ((DRAWNS,u'show-unit'), None): cnv_boolean,
- ((DRAWNS,u'start-angle'), None): cnv_double,
- ((DRAWNS,u'start'), None): cnv_string,
- ((DRAWNS,u'start-color'), None): cnv_string,
- ((DRAWNS,u'start-glue-point'), None): cnv_nonNegativeInteger,
- ((DRAWNS,u'start-guide'), None): cnv_length,
- ((DRAWNS,u'start-intensity'), None): cnv_string,
- ((DRAWNS,u'start-line-spacing-horizontal'), None): cnv_string,
- ((DRAWNS,u'start-line-spacing-vertical'), None): cnv_string,
- ((DRAWNS,u'start-shape'), None): cnv_IDREF,
- ((DRAWNS,u'stroke'), None): cnv_string,
- ((DRAWNS,u'stroke-dash'), None): cnv_string,
- ((DRAWNS,u'stroke-dash-names'), None): cnv_string,
- ((DRAWNS,u'stroke-linejoin'), None): cnv_string,
- ((DRAWNS,u'style'), None): cnv_string,
- ((DRAWNS,u'style-name'), None): cnv_StyleNameRef,
- ((DRAWNS,u'symbol-color'), None): cnv_string,
- ((DRAWNS,u'text-areas'), None): cnv_string,
- ((DRAWNS,u'text-path-allowed'), None): cnv_boolean,
- ((DRAWNS,u'text-path'), None): cnv_boolean,
- ((DRAWNS,u'text-path-mode'), None): cnv_string,
- ((DRAWNS,u'text-path-same-letter-heights'), None): cnv_boolean,
- ((DRAWNS,u'text-path-scale'), None): cnv_string,
- ((DRAWNS,u'text-rotate-angle'), None): cnv_double,
- ((DRAWNS,u'text-style-name'), None): cnv_StyleNameRef,
- ((DRAWNS,u'textarea-horizontal-align'), None): cnv_string,
- ((DRAWNS,u'textarea-vertical-align'), None): cnv_string,
- ((DRAWNS,u'tile-repeat-offset'), None): cnv_string,
- ((DRAWNS,u'transform'), None): cnv_string,
- ((DRAWNS,u'type'), None): cnv_string,
- ((DRAWNS,u'unit'), None): cnv_string,
- ((DRAWNS,u'value'), None): cnv_string,
- ((DRAWNS,u'visible-area-height'), None): cnv_string,
- ((DRAWNS,u'visible-area-left'), None): cnv_string,
- ((DRAWNS,u'visible-area-top'), None): cnv_string,
- ((DRAWNS,u'visible-area-width'), None): cnv_string,
- ((DRAWNS,u'wrap-influence-on-position'), None): cnv_string,
- ((DRAWNS,u'z-index'), None): cnv_nonNegativeInteger,
- ((FONS,u'background-color'), None): cnv_string,
- ((FONS,u'border-bottom'), None): cnv_string,
- ((FONS,u'border'), None): cnv_string,
- ((FONS,u'border-left'), None): cnv_string,
- ((FONS,u'border-right'), None): cnv_string,
- ((FONS,u'border-top'), None): cnv_string,
- ((FONS,u'break-after'), None): cnv_string,
- ((FONS,u'break-before'), None): cnv_string,
- ((FONS,u'clip'), None): cnv_string,
- ((FONS,u'color'), None): cnv_string,
- ((FONS,u'column-count'), None): cnv_positiveInteger,
- ((FONS,u'column-gap'), None): cnv_length,
- ((FONS,u'country'), None): cnv_token,
- ((FONS,u'end-indent'), None): cnv_length,
- ((FONS,u'font-family'), None): cnv_string,
- ((FONS,u'font-size'), None): cnv_string,
- ((FONS,u'font-style'), None): cnv_string,
- ((FONS,u'font-variant'), None): cnv_string,
- ((FONS,u'font-weight'), None): cnv_string,
- ((FONS,u'height'), None): cnv_string,
- ((FONS,u'hyphenate'), None): cnv_boolean,
- ((FONS,u'hyphenation-keep'), None): cnv_string,
- ((FONS,u'hyphenation-ladder-count'), None): cnv_string,
- ((FONS,u'hyphenation-push-char-count'), None): cnv_string,
- ((FONS,u'hyphenation-remain-char-count'), None): cnv_string,
- ((FONS,u'keep-together'), None): cnv_string,
- ((FONS,u'keep-with-next'), None): cnv_string,
- ((FONS,u'language'), None): cnv_token,
- ((FONS,u'letter-spacing'), None): cnv_string,
- ((FONS,u'line-height'), None): cnv_string,
- ((FONS,u'margin-bottom'), None): cnv_string,
- ((FONS,u'margin'), None): cnv_string,
- ((FONS,u'margin-left'), None): cnv_string,
- ((FONS,u'margin-right'), None): cnv_string,
- ((FONS,u'margin-top'), None): cnv_string,
- ((FONS,u'max-height'), None): cnv_string,
- ((FONS,u'max-width'), None): cnv_string,
- ((FONS,u'min-height'), None): cnv_length,
- ((FONS,u'min-width'), None): cnv_string,
- ((FONS,u'orphans'), None): cnv_string,
- ((FONS,u'padding-bottom'), None): cnv_string,
- ((FONS,u'padding'), None): cnv_string,
- ((FONS,u'padding-left'), None): cnv_string,
- ((FONS,u'padding-right'), None): cnv_string,
- ((FONS,u'padding-top'), None): cnv_string,
- ((FONS,u'page-height'), None): cnv_length,
- ((FONS,u'page-width'), None): cnv_length,
- ((FONS,u'space-after'), None): cnv_length,
- ((FONS,u'space-before'), None): cnv_length,
- ((FONS,u'start-indent'), None): cnv_length,
- ((FONS,u'text-align'), None): cnv_string,
- ((FONS,u'text-align-last'), None): cnv_string,
- ((FONS,u'text-indent'), None): cnv_string,
- ((FONS,u'text-shadow'), None): cnv_string,
- ((FONS,u'text-transform'), None): cnv_string,
- ((FONS,u'widows'), None): cnv_string,
- ((FONS,u'width'), None): cnv_string,
- ((FONS,u'wrap-option'), None): cnv_string,
- ((FORMNS,u'allow-deletes'), None): cnv_boolean,
- ((FORMNS,u'allow-inserts'), None): cnv_boolean,
- ((FORMNS,u'allow-updates'), None): cnv_boolean,
- ((FORMNS,u'apply-design-mode'), None): cnv_boolean,
- ((FORMNS,u'apply-filter'), None): cnv_boolean,
- ((FORMNS,u'auto-complete'), None): cnv_boolean,
- ((FORMNS,u'automatic-focus'), None): cnv_boolean,
- ((FORMNS,u'bound-column'), None): cnv_string,
- ((FORMNS,u'button-type'), None): cnv_string,
- ((FORMNS,u'command'), None): cnv_string,
- ((FORMNS,u'command-type'), None): cnv_string,
- ((FORMNS,u'control-implementation'), None): cnv_namespacedToken,
- ((FORMNS,u'convert-empty-to-null'), None): cnv_boolean,
- ((FORMNS,u'current-selected'), None): cnv_boolean,
- ((FORMNS,u'current-state'), None): cnv_string,
-# ((FORMNS,u'current-value'), None): cnv_date,
-# ((FORMNS,u'current-value'), None): cnv_double,
- ((FORMNS,u'current-value'), None): cnv_string,
-# ((FORMNS,u'current-value'), None): cnv_time,
- ((FORMNS,u'data-field'), None): cnv_string,
- ((FORMNS,u'datasource'), None): cnv_string,
- ((FORMNS,u'default-button'), None): cnv_boolean,
- ((FORMNS,u'delay-for-repeat'), None): cnv_duration,
- ((FORMNS,u'detail-fields'), None): cnv_string,
- ((FORMNS,u'disabled'), None): cnv_boolean,
- ((FORMNS,u'dropdown'), None): cnv_boolean,
- ((FORMNS,u'echo-char'), None): cnv_string,
- ((FORMNS,u'enctype'), None): cnv_string,
- ((FORMNS,u'escape-processing'), None): cnv_boolean,
- ((FORMNS,u'filter'), None): cnv_string,
- ((FORMNS,u'focus-on-click'), None): cnv_boolean,
- ((FORMNS,u'for'), None): cnv_string,
- ((FORMNS,u'id'), None): cnv_ID,
- ((FORMNS,u'ignore-result'), None): cnv_boolean,
- ((FORMNS,u'image-align'), None): cnv_string,
- ((FORMNS,u'image-data'), None): cnv_anyURI,
- ((FORMNS,u'image-position'), None): cnv_string,
- ((FORMNS,u'is-tristate'), None): cnv_boolean,
- ((FORMNS,u'label'), None): cnv_string,
- ((FORMNS,u'list-source'), None): cnv_string,
- ((FORMNS,u'list-source-type'), None): cnv_string,
- ((FORMNS,u'master-fields'), None): cnv_string,
- ((FORMNS,u'max-length'), None): cnv_nonNegativeInteger,
-# ((FORMNS,u'max-value'), None): cnv_date,
-# ((FORMNS,u'max-value'), None): cnv_double,
- ((FORMNS,u'max-value'), None): cnv_string,
-# ((FORMNS,u'max-value'), None): cnv_time,
- ((FORMNS,u'method'), None): cnv_string,
-# ((FORMNS,u'min-value'), None): cnv_date,
-# ((FORMNS,u'min-value'), None): cnv_double,
- ((FORMNS,u'min-value'), None): cnv_string,
-# ((FORMNS,u'min-value'), None): cnv_time,
- ((FORMNS,u'multi-line'), None): cnv_boolean,
- ((FORMNS,u'multiple'), None): cnv_boolean,
- ((FORMNS,u'name'), None): cnv_string,
- ((FORMNS,u'navigation-mode'), None): cnv_string,
- ((FORMNS,u'order'), None): cnv_string,
- ((FORMNS,u'orientation'), None): cnv_string,
- ((FORMNS,u'page-step-size'), None): cnv_positiveInteger,
- ((FORMNS,u'printable'), None): cnv_boolean,
- ((FORMNS,u'property-name'), None): cnv_string,
- ((FORMNS,u'readonly'), None): cnv_boolean,
- ((FORMNS,u'selected'), None): cnv_boolean,
- ((FORMNS,u'size'), None): cnv_nonNegativeInteger,
- ((FORMNS,u'state'), None): cnv_string,
- ((FORMNS,u'step-size'), None): cnv_positiveInteger,
- ((FORMNS,u'tab-cycle'), None): cnv_string,
- ((FORMNS,u'tab-index'), None): cnv_nonNegativeInteger,
- ((FORMNS,u'tab-stop'), None): cnv_boolean,
- ((FORMNS,u'text-style-name'), None): cnv_StyleNameRef,
- ((FORMNS,u'title'), None): cnv_string,
- ((FORMNS,u'toggle'), None): cnv_boolean,
- ((FORMNS,u'validation'), None): cnv_boolean,
-# ((FORMNS,u'value'), None): cnv_date,
-# ((FORMNS,u'value'), None): cnv_double,
- ((FORMNS,u'value'), None): cnv_string,
-# ((FORMNS,u'value'), None): cnv_time,
- ((FORMNS,u'visual-effect'), None): cnv_string,
- ((FORMNS,u'xforms-list-source'), None): cnv_string,
- ((FORMNS,u'xforms-submission'), None): cnv_string,
- ((MANIFESTNS,'algorithm-name'), None): cnv_string,
- ((MANIFESTNS,'checksum'), None): cnv_string,
- ((MANIFESTNS,'checksum-type'), None): cnv_string,
- ((MANIFESTNS,'full-path'), None): cnv_string,
- ((MANIFESTNS,'initialisation-vector'), None): cnv_string,
- ((MANIFESTNS,'iteration-count'), None): cnv_nonNegativeInteger,
- ((MANIFESTNS,'key-derivation-name'), None): cnv_string,
- ((MANIFESTNS,'media-type'), None): cnv_string,
- ((MANIFESTNS,'salt'), None): cnv_string,
- ((MANIFESTNS,'size'), None): cnv_nonNegativeInteger,
- ((METANS,u'cell-count'), None): cnv_nonNegativeInteger,
- ((METANS,u'character-count'), None): cnv_nonNegativeInteger,
- ((METANS,u'date'), None): cnv_dateTime,
- ((METANS,u'delay'), None): cnv_duration,
- ((METANS,u'draw-count'), None): cnv_nonNegativeInteger,
- ((METANS,u'frame-count'), None): cnv_nonNegativeInteger,
- ((METANS,u'image-count'), None): cnv_nonNegativeInteger,
- ((METANS,u'name'), None): cnv_string,
- ((METANS,u'non-whitespace-character-count'), None): cnv_nonNegativeInteger,
- ((METANS,u'object-count'), None): cnv_nonNegativeInteger,
- ((METANS,u'ole-object-count'), None): cnv_nonNegativeInteger,
- ((METANS,u'page-count'), None): cnv_nonNegativeInteger,
- ((METANS,u'paragraph-count'), None): cnv_nonNegativeInteger,
- ((METANS,u'row-count'), None): cnv_nonNegativeInteger,
- ((METANS,u'sentence-count'), None): cnv_nonNegativeInteger,
- ((METANS,u'syllable-count'), None): cnv_nonNegativeInteger,
- ((METANS,u'table-count'), None): cnv_nonNegativeInteger,
- ((METANS,u'value-type'), None): cnv_metavaluetype,
- ((METANS,u'word-count'), None): cnv_nonNegativeInteger,
- ((NUMBERNS,u'automatic-order'), None): cnv_boolean,
- ((NUMBERNS,u'calendar'), None): cnv_string,
- ((NUMBERNS,u'country'), None): cnv_token,
- ((NUMBERNS,u'decimal-places'), None): cnv_integer,
- ((NUMBERNS,u'decimal-replacement'), None): cnv_string,
- ((NUMBERNS,u'denominator-value'), None): cnv_integer,
- ((NUMBERNS,u'display-factor'), None): cnv_double,
- ((NUMBERNS,u'format-source'), None): cnv_string,
- ((NUMBERNS,u'grouping'), None): cnv_boolean,
- ((NUMBERNS,u'language'), None): cnv_token,
- ((NUMBERNS,u'min-denominator-digits'), None): cnv_integer,
- ((NUMBERNS,u'min-exponent-digits'), None): cnv_integer,
- ((NUMBERNS,u'min-integer-digits'), None): cnv_integer,
- ((NUMBERNS,u'min-numerator-digits'), None): cnv_integer,
- ((NUMBERNS,u'position'), None): cnv_integer,
- ((NUMBERNS,u'possessive-form'), None): cnv_boolean,
- ((NUMBERNS,u'style'), None): cnv_string,
- ((NUMBERNS,u'textual'), None): cnv_boolean,
- ((NUMBERNS,u'title'), None): cnv_string,
- ((NUMBERNS,u'transliteration-country'), None): cnv_token,
- ((NUMBERNS,u'transliteration-format'), None): cnv_string,
- ((NUMBERNS,u'transliteration-language'), None): cnv_token,
- ((NUMBERNS,u'transliteration-style'), None): cnv_string,
- ((NUMBERNS,u'truncate-on-overflow'), None): cnv_boolean,
- ((OFFICENS,u'automatic-update'), None): cnv_boolean,
- ((OFFICENS,u'boolean-value'), None): cnv_boolean,
- ((OFFICENS,u'conversion-mode'), None): cnv_string,
- ((OFFICENS,u'currency'), None): cnv_string,
- ((OFFICENS,u'date-value'), None): cnv_dateTime,
- ((OFFICENS,u'dde-application'), None): cnv_string,
- ((OFFICENS,u'dde-item'), None): cnv_string,
- ((OFFICENS,u'dde-topic'), None): cnv_string,
- ((OFFICENS,u'display'), None): cnv_boolean,
- ((OFFICENS,u'mimetype'), None): cnv_string,
- ((OFFICENS,u'name'), None): cnv_string,
- ((OFFICENS,u'process-content'), None): cnv_boolean,
- ((OFFICENS,u'server-map'), None): cnv_boolean,
- ((OFFICENS,u'string-value'), None): cnv_string,
- ((OFFICENS,u'target-frame'), None): cnv_string,
- ((OFFICENS,u'target-frame-name'), None): cnv_string,
- ((OFFICENS,u'time-value'), None): cnv_duration,
- ((OFFICENS,u'title'), None): cnv_string,
- ((OFFICENS,u'value'), None): cnv_double,
- ((OFFICENS,u'value-type'), None): cnv_string,
- ((OFFICENS,u'version'), None): cnv_string,
- ((PRESENTATIONNS,u'action'), None): cnv_string,
- ((PRESENTATIONNS,u'animations'), None): cnv_string,
- ((PRESENTATIONNS,u'background-objects-visible'), None): cnv_boolean,
- ((PRESENTATIONNS,u'background-visible'), None): cnv_boolean,
- ((PRESENTATIONNS,u'class'), None): cnv_string,
- ((PRESENTATIONNS,u'class-names'), None): cnv_NCNames,
- ((PRESENTATIONNS,u'delay'), None): cnv_duration,
- ((PRESENTATIONNS,u'direction'), None): cnv_string,
- ((PRESENTATIONNS,u'display-date-time'), None): cnv_boolean,
- ((PRESENTATIONNS,u'display-footer'), None): cnv_boolean,
- ((PRESENTATIONNS,u'display-header'), None): cnv_boolean,
- ((PRESENTATIONNS,u'display-page-number'), None): cnv_boolean,
- ((PRESENTATIONNS,u'duration'), None): cnv_string,
- ((PRESENTATIONNS,u'effect'), None): cnv_string,
- ((PRESENTATIONNS,u'endless'), None): cnv_boolean,
- ((PRESENTATIONNS,u'force-manual'), None): cnv_boolean,
- ((PRESENTATIONNS,u'full-screen'), None): cnv_boolean,
- ((PRESENTATIONNS,u'group-id'), None): cnv_string,
- ((PRESENTATIONNS,u'master-element'), None): cnv_IDREF,
- ((PRESENTATIONNS,u'mouse-as-pen'), None): cnv_boolean,
- ((PRESENTATIONNS,u'mouse-visible'), None): cnv_boolean,
- ((PRESENTATIONNS,u'name'), None): cnv_string,
- ((PRESENTATIONNS,u'node-type'), None): cnv_string,
- ((PRESENTATIONNS,u'object'), None): cnv_string,
- ((PRESENTATIONNS,u'pages'), None): cnv_string,
- ((PRESENTATIONNS,u'path-id'), None): cnv_string,
- ((PRESENTATIONNS,u'pause'), None): cnv_duration,
- ((PRESENTATIONNS,u'placeholder'), None): cnv_boolean,
- ((PRESENTATIONNS,u'play-full'), None): cnv_boolean,
- ((PRESENTATIONNS,u'presentation-page-layout-name'), None): cnv_StyleNameRef,
- ((PRESENTATIONNS,u'preset-class'), None): cnv_string,
- ((PRESENTATIONNS,u'preset-id'), None): cnv_string,
- ((PRESENTATIONNS,u'preset-sub-type'), None): cnv_string,
- ((PRESENTATIONNS,u'show'), None): cnv_string,
- ((PRESENTATIONNS,u'show-end-of-presentation-slide'), None): cnv_boolean,
- ((PRESENTATIONNS,u'show-logo'), None): cnv_boolean,
- ((PRESENTATIONNS,u'source'), None): cnv_string,
- ((PRESENTATIONNS,u'speed'), None): cnv_string,
- ((PRESENTATIONNS,u'start-page'), None): cnv_string,
- ((PRESENTATIONNS,u'start-scale'), None): cnv_string,
- ((PRESENTATIONNS,u'start-with-navigator'), None): cnv_boolean,
- ((PRESENTATIONNS,u'stay-on-top'), None): cnv_boolean,
- ((PRESENTATIONNS,u'style-name'), None): cnv_StyleNameRef,
- ((PRESENTATIONNS,u'transition-on-click'), None): cnv_string,
- ((PRESENTATIONNS,u'transition-speed'), None): cnv_string,
- ((PRESENTATIONNS,u'transition-style'), None): cnv_string,
- ((PRESENTATIONNS,u'transition-type'), None): cnv_string,
- ((PRESENTATIONNS,u'use-date-time-name'), None): cnv_string,
- ((PRESENTATIONNS,u'use-footer-name'), None): cnv_string,
- ((PRESENTATIONNS,u'use-header-name'), None): cnv_string,
- ((PRESENTATIONNS,u'user-transformed'), None): cnv_boolean,
- ((PRESENTATIONNS,u'verb'), None): cnv_nonNegativeInteger,
- ((PRESENTATIONNS,u'visibility'), None): cnv_string,
- ((SCRIPTNS,u'event-name'), None): cnv_formula,
- ((SCRIPTNS,u'language'), None): cnv_formula,
- ((SCRIPTNS,u'macro-name'), None): cnv_string,
- ((SMILNS,u'accelerate'), None): cnv_double,
- ((SMILNS,u'accumulate'), None): cnv_string,
- ((SMILNS,u'additive'), None): cnv_string,
- ((SMILNS,u'attributeName'), None): cnv_string,
- ((SMILNS,u'autoReverse'), None): cnv_boolean,
- ((SMILNS,u'begin'), None): cnv_string,
- ((SMILNS,u'by'), None): cnv_string,
- ((SMILNS,u'calcMode'), None): cnv_string,
- ((SMILNS,u'decelerate'), None): cnv_double,
- ((SMILNS,u'direction'), None): cnv_string,
- ((SMILNS,u'dur'), None): cnv_string,
- ((SMILNS,u'end'), None): cnv_string,
- ((SMILNS,u'endsync'), None): cnv_string,
- ((SMILNS,u'fadeColor'), None): cnv_string,
- ((SMILNS,u'fill'), None): cnv_string,
- ((SMILNS,u'fillDefault'), None): cnv_string,
- ((SMILNS,u'from'), None): cnv_string,
- ((SMILNS,u'keySplines'), None): cnv_string,
- ((SMILNS,u'keyTimes'), None): cnv_string,
- ((SMILNS,u'mode'), None): cnv_string,
- ((SMILNS,u'repeatCount'), None): cnv_nonNegativeInteger,
- ((SMILNS,u'repeatDur'), None): cnv_string,
- ((SMILNS,u'restart'), None): cnv_string,
- ((SMILNS,u'restartDefault'), None): cnv_string,
- ((SMILNS,u'subtype'), None): cnv_string,
- ((SMILNS,u'targetElement'), None): cnv_IDREF,
- ((SMILNS,u'to'), None): cnv_string,
- ((SMILNS,u'type'), None): cnv_string,
- ((SMILNS,u'values'), None): cnv_string,
- ((STYLENS,u'adjustment'), None): cnv_string,
- ((STYLENS,u'apply-style-name'), None): cnv_StyleNameRef,
- ((STYLENS,u'auto-text-indent'), None): cnv_boolean,
- ((STYLENS,u'auto-update'), None): cnv_boolean,
- ((STYLENS,u'background-transparency'), None): cnv_string,
- ((STYLENS,u'base-cell-address'), None): cnv_string,
- ((STYLENS,u'border-line-width-bottom'), None): cnv_string,
- ((STYLENS,u'border-line-width'), None): cnv_string,
- ((STYLENS,u'border-line-width-left'), None): cnv_string,
- ((STYLENS,u'border-line-width-right'), None): cnv_string,
- ((STYLENS,u'border-line-width-top'), None): cnv_string,
- ((STYLENS,u'cell-protect'), None): cnv_string,
- ((STYLENS,u'char'), None): cnv_string,
- ((STYLENS,u'class'), None): cnv_string,
- ((STYLENS,u'color'), None): cnv_string,
- ((STYLENS,u'column-width'), None): cnv_string,
- ((STYLENS,u'condition'), None): cnv_string,
- ((STYLENS,u'country-asian'), None): cnv_string,
- ((STYLENS,u'country-complex'), None): cnv_string,
- ((STYLENS,u'data-style-name'), None): cnv_StyleNameRef,
- ((STYLENS,u'decimal-places'), None): cnv_string,
- ((STYLENS,u'default-outline-level'), None): cnv_positiveInteger,
- ((STYLENS,u'diagonal-bl-tr'), None): cnv_string,
- ((STYLENS,u'diagonal-bl-tr-widths'), None): cnv_string,
- ((STYLENS,u'diagonal-tl-br'), None): cnv_string,
- ((STYLENS,u'diagonal-tl-br-widths'), None): cnv_string,
- ((STYLENS,u'direction'), None): cnv_string,
- ((STYLENS,u'display'), None): cnv_boolean,
- ((STYLENS,u'display-name'), None): cnv_string,
- ((STYLENS,u'distance-after-sep'), None): cnv_length,
- ((STYLENS,u'distance-before-sep'), None): cnv_length,
- ((STYLENS,u'distance'), None): cnv_length,
- ((STYLENS,u'dynamic-spacing'), None): cnv_boolean,
- ((STYLENS,u'editable'), None): cnv_boolean,
- ((STYLENS,u'family'), None): cnv_family,
- ((STYLENS,u'filter-name'), None): cnv_string,
- ((STYLENS,u'first-page-number'), None): cnv_string,
- ((STYLENS,u'flow-with-text'), None): cnv_boolean,
- ((STYLENS,u'font-adornments'), None): cnv_string,
- ((STYLENS,u'font-charset'), None): cnv_string,
- ((STYLENS,u'font-charset-asian'), None): cnv_string,
- ((STYLENS,u'font-charset-complex'), None): cnv_string,
- ((STYLENS,u'font-family-asian'), None): cnv_string,
- ((STYLENS,u'font-family-complex'), None): cnv_string,
- ((STYLENS,u'font-family-generic-asian'), None): cnv_string,
- ((STYLENS,u'font-family-generic'), None): cnv_string,
- ((STYLENS,u'font-family-generic-complex'), None): cnv_string,
- ((STYLENS,u'font-independent-line-spacing'), None): cnv_boolean,
- ((STYLENS,u'font-name-asian'), None): cnv_string,
- ((STYLENS,u'font-name'), None): cnv_string,
- ((STYLENS,u'font-name-complex'), None): cnv_string,
- ((STYLENS,u'font-pitch-asian'), None): cnv_string,
- ((STYLENS,u'font-pitch'), None): cnv_string,
- ((STYLENS,u'font-pitch-complex'), None): cnv_string,
- ((STYLENS,u'font-relief'), None): cnv_string,
- ((STYLENS,u'font-size-asian'), None): cnv_string,
- ((STYLENS,u'font-size-complex'), None): cnv_string,
- ((STYLENS,u'font-size-rel-asian'), None): cnv_length,
- ((STYLENS,u'font-size-rel'), None): cnv_length,
- ((STYLENS,u'font-size-rel-complex'), None): cnv_length,
- ((STYLENS,u'font-style-asian'), None): cnv_string,
- ((STYLENS,u'font-style-complex'), None): cnv_string,
- ((STYLENS,u'font-style-name-asian'), None): cnv_string,
- ((STYLENS,u'font-style-name'), None): cnv_string,
- ((STYLENS,u'font-style-name-complex'), None): cnv_string,
- ((STYLENS,u'font-weight-asian'), None): cnv_string,
- ((STYLENS,u'font-weight-complex'), None): cnv_string,
- ((STYLENS,u'footnote-max-height'), None): cnv_length,
- ((STYLENS,u'glyph-orientation-vertical'), None): cnv_string,
- ((STYLENS,u'height'), None): cnv_string,
- ((STYLENS,u'horizontal-pos'), None): cnv_string,
- ((STYLENS,u'horizontal-rel'), None): cnv_string,
- ((STYLENS,u'justify-single-word'), None): cnv_boolean,
- ((STYLENS,u'language-asian'), None): cnv_string,
- ((STYLENS,u'language-complex'), None): cnv_string,
- ((STYLENS,u'layout-grid-base-height'), None): cnv_length,
- ((STYLENS,u'layout-grid-color'), None): cnv_string,
- ((STYLENS,u'layout-grid-display'), None): cnv_boolean,
- ((STYLENS,u'layout-grid-lines'), None): cnv_string,
- ((STYLENS,u'layout-grid-mode'), None): cnv_string,
- ((STYLENS,u'layout-grid-print'), None): cnv_boolean,
- ((STYLENS,u'layout-grid-ruby-below'), None): cnv_boolean,
- ((STYLENS,u'layout-grid-ruby-height'), None): cnv_length,
- ((STYLENS,u'leader-char'), None): cnv_string,
- ((STYLENS,u'leader-color'), None): cnv_string,
- ((STYLENS,u'leader-style'), None): cnv_string,
- ((STYLENS,u'leader-text'), None): cnv_string,
- ((STYLENS,u'leader-text-style'), None): cnv_StyleNameRef,
- ((STYLENS,u'leader-type'), None): cnv_string,
- ((STYLENS,u'leader-width'), None): cnv_string,
- ((STYLENS,u'legend-expansion-aspect-ratio'), None): cnv_double,
- ((STYLENS,u'legend-expansion'), None): cnv_string,
- ((STYLENS,u'length'), None): cnv_positiveInteger,
- ((STYLENS,u'letter-kerning'), None): cnv_boolean,
- ((STYLENS,u'line-break'), None): cnv_string,
- ((STYLENS,u'line-height-at-least'), None): cnv_string,
- ((STYLENS,u'line-spacing'), None): cnv_length,
- ((STYLENS,u'line-style'), None): cnv_string,
- ((STYLENS,u'lines'), None): cnv_positiveInteger,
- ((STYLENS,u'list-style-name'), None): cnv_StyleNameRef,
- ((STYLENS,u'master-page-name'), None): cnv_StyleNameRef,
- ((STYLENS,u'may-break-between-rows'), None): cnv_boolean,
- ((STYLENS,u'min-row-height'), None): cnv_string,
- ((STYLENS,u'mirror'), None): cnv_string,
- ((STYLENS,u'name'), None): cnv_NCName,
- ((STYLENS,u'name'), (STYLENS,u'font-face')): cnv_string,
- ((STYLENS,u'next-style-name'), None): cnv_StyleNameRef,
- ((STYLENS,u'num-format'), None): cnv_string,
- ((STYLENS,u'num-letter-sync'), None): cnv_boolean,
- ((STYLENS,u'num-prefix'), None): cnv_string,
- ((STYLENS,u'num-suffix'), None): cnv_string,
- ((STYLENS,u'number-wrapped-paragraphs'), None): cnv_string,
- ((STYLENS,u'overflow-behavior'), None): cnv_string,
- ((STYLENS,u'page-layout-name'), None): cnv_StyleNameRef,
- ((STYLENS,u'page-number'), None): cnv_string,
- ((STYLENS,u'page-usage'), None): cnv_string,
- ((STYLENS,u'paper-tray-name'), None): cnv_string,
- ((STYLENS,u'parent-style-name'), None): cnv_StyleNameRef,
- ((STYLENS,u'position'), (STYLENS,u'tab-stop')): cnv_length,
- ((STYLENS,u'position'), None): cnv_string,
- ((STYLENS,u'print'), None): cnv_string,
- ((STYLENS,u'print-content'), None): cnv_boolean,
- ((STYLENS,u'print-orientation'), None): cnv_string,
- ((STYLENS,u'print-page-order'), None): cnv_string,
- ((STYLENS,u'protect'), None): cnv_boolean,
- ((STYLENS,u'punctuation-wrap'), None): cnv_string,
- ((STYLENS,u'register-true'), None): cnv_boolean,
- ((STYLENS,u'register-truth-ref-style-name'), None): cnv_string,
- ((STYLENS,u'rel-column-width'), None): cnv_string,
- ((STYLENS,u'rel-height'), None): cnv_string,
- ((STYLENS,u'rel-width'), None): cnv_string,
- ((STYLENS,u'repeat'), None): cnv_string,
- ((STYLENS,u'repeat-content'), None): cnv_boolean,
- ((STYLENS,u'rotation-align'), None): cnv_string,
- ((STYLENS,u'rotation-angle'), None): cnv_string,
- ((STYLENS,u'row-height'), None): cnv_string,
- ((STYLENS,u'ruby-align'), None): cnv_string,
- ((STYLENS,u'ruby-position'), None): cnv_string,
- ((STYLENS,u'run-through'), None): cnv_string,
- ((STYLENS,u'scale-to'), None): cnv_string,
- ((STYLENS,u'scale-to-pages'), None): cnv_string,
- ((STYLENS,u'script-type'), None): cnv_string,
- ((STYLENS,u'shadow'), None): cnv_string,
- ((STYLENS,u'shrink-to-fit'), None): cnv_boolean,
- ((STYLENS,u'snap-to-layout-grid'), None): cnv_boolean,
- ((STYLENS,u'style'), None): cnv_string,
- ((STYLENS,u'style-name'), None): cnv_StyleNameRef,
- ((STYLENS,u'tab-stop-distance'), None): cnv_string,
- ((STYLENS,u'table-centering'), None): cnv_string,
- ((STYLENS,u'text-align-source'), None): cnv_string,
- ((STYLENS,u'text-autospace'), None): cnv_string,
- ((STYLENS,u'text-blinking'), None): cnv_boolean,
- ((STYLENS,u'text-combine'), None): cnv_string,
- ((STYLENS,u'text-combine-end-char'), None): cnv_string,
- ((STYLENS,u'text-combine-start-char'), None): cnv_string,
- ((STYLENS,u'text-emphasize'), None): cnv_string,
- ((STYLENS,u'text-line-through-color'), None): cnv_string,
- ((STYLENS,u'text-line-through-mode'), None): cnv_string,
- ((STYLENS,u'text-line-through-style'), None): cnv_string,
- ((STYLENS,u'text-line-through-text'), None): cnv_string,
- ((STYLENS,u'text-line-through-text-style'), None): cnv_string,
- ((STYLENS,u'text-line-through-type'), None): cnv_string,
- ((STYLENS,u'text-line-through-width'), None): cnv_string,
- ((STYLENS,u'text-outline'), None): cnv_boolean,
- ((STYLENS,u'text-position'), None): cnv_string,
- ((STYLENS,u'text-rotation-angle'), None): cnv_string,
- ((STYLENS,u'text-rotation-scale'), None): cnv_string,
- ((STYLENS,u'text-scale'), None): cnv_string,
- ((STYLENS,u'text-underline-color'), None): cnv_string,
- ((STYLENS,u'text-underline-mode'), None): cnv_string,
- ((STYLENS,u'text-underline-style'), None): cnv_string,
- ((STYLENS,u'text-underline-type'), None): cnv_string,
- ((STYLENS,u'text-underline-width'), None): cnv_string,
- ((STYLENS,u'type'), None): cnv_string,
- ((STYLENS,u'use-optimal-column-width'), None): cnv_boolean,
- ((STYLENS,u'use-optimal-row-height'), None): cnv_boolean,
- ((STYLENS,u'use-window-font-color'), None): cnv_boolean,
- ((STYLENS,u'vertical-align'), None): cnv_string,
- ((STYLENS,u'vertical-pos'), None): cnv_string,
- ((STYLENS,u'vertical-rel'), None): cnv_string,
- ((STYLENS,u'volatile'), None): cnv_boolean,
- ((STYLENS,u'width'), None): cnv_string,
- ((STYLENS,u'wrap'), None): cnv_string,
- ((STYLENS,u'wrap-contour'), None): cnv_boolean,
- ((STYLENS,u'wrap-contour-mode'), None): cnv_string,
- ((STYLENS,u'wrap-dynamic-threshold'), None): cnv_length,
- ((STYLENS,u'writing-mode-automatic'), None): cnv_boolean,
- ((STYLENS,u'writing-mode'), None): cnv_string,
- ((SVGNS,u'accent-height'), None): cnv_integer,
- ((SVGNS,u'alphabetic'), None): cnv_integer,
- ((SVGNS,u'ascent'), None): cnv_integer,
- ((SVGNS,u'bbox'), None): cnv_string,
- ((SVGNS,u'cap-height'), None): cnv_integer,
- ((SVGNS,u'cx'), None): cnv_string,
- ((SVGNS,u'cy'), None): cnv_string,
- ((SVGNS,u'd'), None): cnv_string,
- ((SVGNS,u'descent'), None): cnv_integer,
- ((SVGNS,u'fill-rule'), None): cnv_string,
- ((SVGNS,u'font-family'), None): cnv_string,
- ((SVGNS,u'font-size'), None): cnv_string,
- ((SVGNS,u'font-stretch'), None): cnv_string,
- ((SVGNS,u'font-style'), None): cnv_string,
- ((SVGNS,u'font-variant'), None): cnv_string,
- ((SVGNS,u'font-weight'), None): cnv_string,
- ((SVGNS,u'fx'), None): cnv_string,
- ((SVGNS,u'fy'), None): cnv_string,
- ((SVGNS,u'gradientTransform'), None): cnv_string,
- ((SVGNS,u'gradientUnits'), None): cnv_string,
- ((SVGNS,u'hanging'), None): cnv_integer,
- ((SVGNS,u'height'), None): cnv_length,
- ((SVGNS,u'ideographic'), None): cnv_integer,
- ((SVGNS,u'mathematical'), None): cnv_integer,
- ((SVGNS,u'name'), None): cnv_string,
- ((SVGNS,u'offset'), None): cnv_string,
- ((SVGNS,u'origin'), None): cnv_string,
- ((SVGNS,u'overline-position'), None): cnv_integer,
- ((SVGNS,u'overline-thickness'), None): cnv_integer,
- ((SVGNS,u'panose-1'), None): cnv_string,
- ((SVGNS,u'path'), None): cnv_string,
- ((SVGNS,u'r'), None): cnv_length,
- ((SVGNS,u'rx'), None): cnv_length,
- ((SVGNS,u'ry'), None): cnv_length,
- ((SVGNS,u'slope'), None): cnv_integer,
- ((SVGNS,u'spreadMethod'), None): cnv_string,
- ((SVGNS,u'stemh'), None): cnv_integer,
- ((SVGNS,u'stemv'), None): cnv_integer,
- ((SVGNS,u'stop-color'), None): cnv_string,
- ((SVGNS,u'stop-opacity'), None): cnv_double,
- ((SVGNS,u'strikethrough-position'), None): cnv_integer,
- ((SVGNS,u'strikethrough-thickness'), None): cnv_integer,
- ((SVGNS,u'string'), None): cnv_string,
- ((SVGNS,u'stroke-color'), None): cnv_string,
- ((SVGNS,u'stroke-opacity'), None): cnv_string,
- ((SVGNS,u'stroke-width'), None): cnv_length,
- ((SVGNS,u'type'), None): cnv_string,
- ((SVGNS,u'underline-position'), None): cnv_integer,
- ((SVGNS,u'underline-thickness'), None): cnv_integer,
- ((SVGNS,u'unicode-range'), None): cnv_string,
- ((SVGNS,u'units-per-em'), None): cnv_integer,
- ((SVGNS,u'v-alphabetic'), None): cnv_integer,
- ((SVGNS,u'v-hanging'), None): cnv_integer,
- ((SVGNS,u'v-ideographic'), None): cnv_integer,
- ((SVGNS,u'v-mathematical'), None): cnv_integer,
- ((SVGNS,u'viewBox'), None): cnv_viewbox,
- ((SVGNS,u'width'), None): cnv_length,
- ((SVGNS,u'widths'), None): cnv_string,
- ((SVGNS,u'x'), None): cnv_length,
- ((SVGNS,u'x-height'), None): cnv_integer,
- ((SVGNS,u'x1'), None): cnv_lengthorpercent,
- ((SVGNS,u'x2'), None): cnv_lengthorpercent,
- ((SVGNS,u'y'), None): cnv_length,
- ((SVGNS,u'y1'), None): cnv_lengthorpercent,
- ((SVGNS,u'y2'), None): cnv_lengthorpercent,
- ((TABLENS,u'acceptance-state'), None): cnv_string,
- ((TABLENS,u'add-empty-lines'), None): cnv_boolean,
- ((TABLENS,u'algorithm'), None): cnv_formula,
- ((TABLENS,u'align'), None): cnv_string,
- ((TABLENS,u'allow-empty-cell'), None): cnv_boolean,
- ((TABLENS,u'application-data'), None): cnv_string,
- ((TABLENS,u'automatic-find-labels'), None): cnv_boolean,
- ((TABLENS,u'base-cell-address'), None): cnv_string,
- ((TABLENS,u'bind-styles-to-content'), None): cnv_boolean,
- ((TABLENS,u'border-color'), None): cnv_string,
- ((TABLENS,u'border-model'), None): cnv_string,
- ((TABLENS,u'buttons'), None): cnv_string,
- ((TABLENS,u'buttons'), None): cnv_string,
- ((TABLENS,u'case-sensitive'), None): cnv_boolean,
- ((TABLENS,u'case-sensitive'), None): cnv_string,
- ((TABLENS,u'cell-address'), None): cnv_string,
- ((TABLENS,u'cell-range-address'), None): cnv_string,
- ((TABLENS,u'cell-range-address'), None): cnv_string,
- ((TABLENS,u'cell-range'), None): cnv_string,
- ((TABLENS,u'column'), None): cnv_integer,
- ((TABLENS,u'comment'), None): cnv_string,
- ((TABLENS,u'condition'), None): cnv_formula,
- ((TABLENS,u'condition-source'), None): cnv_string,
- ((TABLENS,u'condition-source-range-address'), None): cnv_string,
- ((TABLENS,u'contains-error'), None): cnv_boolean,
- ((TABLENS,u'contains-header'), None): cnv_boolean,
- ((TABLENS,u'content-validation-name'), None): cnv_string,
- ((TABLENS,u'copy-back'), None): cnv_boolean,
- ((TABLENS,u'copy-formulas'), None): cnv_boolean,
- ((TABLENS,u'copy-styles'), None): cnv_boolean,
- ((TABLENS,u'count'), None): cnv_positiveInteger,
- ((TABLENS,u'country'), None): cnv_token,
- ((TABLENS,u'data-cell-range-address'), None): cnv_string,
- ((TABLENS,u'data-field'), None): cnv_string,
- ((TABLENS,u'data-type'), None): cnv_string,
- ((TABLENS,u'database-name'), None): cnv_string,
- ((TABLENS,u'database-table-name'), None): cnv_string,
- ((TABLENS,u'date-end'), None): cnv_string,
- ((TABLENS,u'date-start'), None): cnv_string,
- ((TABLENS,u'date-value'), None): cnv_date,
- ((TABLENS,u'default-cell-style-name'), None): cnv_StyleNameRef,
- ((TABLENS,u'direction'), None): cnv_string,
- ((TABLENS,u'display-border'), None): cnv_boolean,
- ((TABLENS,u'display'), None): cnv_boolean,
- ((TABLENS,u'display-duplicates'), None): cnv_boolean,
- ((TABLENS,u'display-filter-buttons'), None): cnv_boolean,
- ((TABLENS,u'display-list'), None): cnv_string,
- ((TABLENS,u'display-member-mode'), None): cnv_string,
- ((TABLENS,u'drill-down-on-double-click'), None): cnv_boolean,
- ((TABLENS,u'enabled'), None): cnv_boolean,
- ((TABLENS,u'end-cell-address'), None): cnv_string,
- ((TABLENS,u'end'), None): cnv_string,
- ((TABLENS,u'end-column'), None): cnv_integer,
- ((TABLENS,u'end-position'), None): cnv_integer,
- ((TABLENS,u'end-row'), None): cnv_integer,
- ((TABLENS,u'end-table'), None): cnv_integer,
- ((TABLENS,u'end-x'), None): cnv_length,
- ((TABLENS,u'end-y'), None): cnv_length,
- ((TABLENS,u'execute'), None): cnv_boolean,
- ((TABLENS,u'expression'), None): cnv_formula,
- ((TABLENS,u'field-name'), None): cnv_string,
- ((TABLENS,u'field-number'), None): cnv_nonNegativeInteger,
- ((TABLENS,u'field-number'), None): cnv_string,
- ((TABLENS,u'filter-name'), None): cnv_string,
- ((TABLENS,u'filter-options'), None): cnv_string,
- ((TABLENS,u'formula'), None): cnv_formula,
- ((TABLENS,u'function'), None): cnv_string,
- ((TABLENS,u'function'), None): cnv_string,
- ((TABLENS,u'grand-total'), None): cnv_string,
- ((TABLENS,u'group-by-field-number'), None): cnv_nonNegativeInteger,
- ((TABLENS,u'grouped-by'), None): cnv_string,
- ((TABLENS,u'has-persistent-data'), None): cnv_boolean,
- ((TABLENS,u'id'), None): cnv_string,
- ((TABLENS,u'identify-categories'), None): cnv_boolean,
- ((TABLENS,u'ignore-empty-rows'), None): cnv_boolean,
- ((TABLENS,u'index'), None): cnv_nonNegativeInteger,
- ((TABLENS,u'is-active'), None): cnv_boolean,
- ((TABLENS,u'is-data-layout-field'), None): cnv_string,
- ((TABLENS,u'is-selection'), None): cnv_boolean,
- ((TABLENS,u'is-sub-table'), None): cnv_boolean,
- ((TABLENS,u'label-cell-range-address'), None): cnv_string,
- ((TABLENS,u'language'), None): cnv_token,
- ((TABLENS,u'language'), None): cnv_token,
- ((TABLENS,u'last-column-spanned'), None): cnv_positiveInteger,
- ((TABLENS,u'last-row-spanned'), None): cnv_positiveInteger,
- ((TABLENS,u'layout-mode'), None): cnv_string,
- ((TABLENS,u'link-to-source-data'), None): cnv_boolean,
- ((TABLENS,u'marked-invalid'), None): cnv_boolean,
- ((TABLENS,u'matrix-covered'), None): cnv_boolean,
- ((TABLENS,u'maximum-difference'), None): cnv_double,
- ((TABLENS,u'member-count'), None): cnv_nonNegativeInteger,
- ((TABLENS,u'member-name'), None): cnv_string,
- ((TABLENS,u'member-type'), None): cnv_string,
- ((TABLENS,u'message-type'), None): cnv_string,
- ((TABLENS,u'mode'), None): cnv_string,
- ((TABLENS,u'multi-deletion-spanned'), None): cnv_integer,
- ((TABLENS,u'name'), None): cnv_string,
- ((TABLENS,u'name'), None): cnv_string,
- ((TABLENS,u'null-year'), None): cnv_positiveInteger,
- ((TABLENS,u'number-columns-repeated'), None): cnv_positiveInteger,
- ((TABLENS,u'number-columns-spanned'), None): cnv_positiveInteger,
- ((TABLENS,u'number-matrix-columns-spanned'), None): cnv_positiveInteger,
- ((TABLENS,u'number-matrix-rows-spanned'), None): cnv_positiveInteger,
- ((TABLENS,u'number-rows-repeated'), None): cnv_positiveInteger,
- ((TABLENS,u'number-rows-spanned'), None): cnv_positiveInteger,
- ((TABLENS,u'object-name'), None): cnv_string,
- ((TABLENS,u'on-update-keep-size'), None): cnv_boolean,
- ((TABLENS,u'on-update-keep-styles'), None): cnv_boolean,
- ((TABLENS,u'operator'), None): cnv_string,
- ((TABLENS,u'operator'), None): cnv_string,
- ((TABLENS,u'order'), None): cnv_string,
- ((TABLENS,u'orientation'), None): cnv_string,
- ((TABLENS,u'orientation'), None): cnv_string,
- ((TABLENS,u'page-breaks-on-group-change'), None): cnv_boolean,
- ((TABLENS,u'parse-sql-statement'), None): cnv_boolean,
- ((TABLENS,u'password'), None): cnv_string,
- ((TABLENS,u'position'), None): cnv_integer,
- ((TABLENS,u'precision-as-shown'), None): cnv_boolean,
- ((TABLENS,u'print'), None): cnv_boolean,
- ((TABLENS,u'print-ranges'), None): cnv_string,
- ((TABLENS,u'protect'), None): cnv_boolean,
- ((TABLENS,u'protected'), None): cnv_boolean,
- ((TABLENS,u'protection-key'), None): cnv_string,
- ((TABLENS,u'query-name'), None): cnv_string,
- ((TABLENS,u'range-usable-as'), None): cnv_string,
- ((TABLENS,u'refresh-delay'), None): cnv_boolean,
- ((TABLENS,u'refresh-delay'), None): cnv_duration,
- ((TABLENS,u'rejecting-change-id'), None): cnv_string,
- ((TABLENS,u'row'), None): cnv_integer,
- ((TABLENS,u'scenario-ranges'), None): cnv_string,
- ((TABLENS,u'search-criteria-must-apply-to-whole-cell'), None): cnv_boolean,
- ((TABLENS,u'selected-page'), None): cnv_string,
- ((TABLENS,u'show-details'), None): cnv_boolean,
- ((TABLENS,u'show-empty'), None): cnv_boolean,
- ((TABLENS,u'show-empty'), None): cnv_string,
- ((TABLENS,u'show-filter-button'), None): cnv_boolean,
- ((TABLENS,u'sort-mode'), None): cnv_string,
- ((TABLENS,u'source-cell-range-addresses'), None): cnv_string,
- ((TABLENS,u'source-cell-range-addresses'), None): cnv_string,
- ((TABLENS,u'source-field-name'), None): cnv_string,
- ((TABLENS,u'source-field-name'), None): cnv_string,
- ((TABLENS,u'source-name'), None): cnv_string,
- ((TABLENS,u'sql-statement'), None): cnv_string,
- ((TABLENS,u'start'), None): cnv_string,
- ((TABLENS,u'start-column'), None): cnv_integer,
- ((TABLENS,u'start-position'), None): cnv_integer,
- ((TABLENS,u'start-row'), None): cnv_integer,
- ((TABLENS,u'start-table'), None): cnv_integer,
- ((TABLENS,u'status'), None): cnv_string,
- ((TABLENS,u'step'), None): cnv_double,
- ((TABLENS,u'steps'), None): cnv_positiveInteger,
- ((TABLENS,u'structure-protected'), None): cnv_boolean,
- ((TABLENS,u'style-name'), None): cnv_StyleNameRef,
- ((TABLENS,u'table-background'), None): cnv_boolean,
- ((TABLENS,u'table'), None): cnv_integer,
- ((TABLENS,u'table-name'), None): cnv_string,
- ((TABLENS,u'target-cell-address'), None): cnv_string,
- ((TABLENS,u'target-cell-address'), None): cnv_string,
- ((TABLENS,u'target-range-address'), None): cnv_string,
- ((TABLENS,u'target-range-address'), None): cnv_string,
- ((TABLENS,u'title'), None): cnv_string,
- ((TABLENS,u'track-changes'), None): cnv_boolean,
- ((TABLENS,u'type'), None): cnv_string,
- ((TABLENS,u'use-labels'), None): cnv_string,
- ((TABLENS,u'use-regular-expressions'), None): cnv_boolean,
- ((TABLENS,u'used-hierarchy'), None): cnv_integer,
- ((TABLENS,u'user-name'), None): cnv_string,
- ((TABLENS,u'value'), None): cnv_string,
- ((TABLENS,u'value'), None): cnv_string,
- ((TABLENS,u'value-type'), None): cnv_string,
- ((TABLENS,u'visibility'), None): cnv_string,
- ((TEXTNS,u'active'), None): cnv_boolean,
- ((TEXTNS,u'address'), None): cnv_string,
- ((TEXTNS,u'alphabetical-separators'), None): cnv_boolean,
- ((TEXTNS,u'anchor-page-number'), None): cnv_positiveInteger,
- ((TEXTNS,u'anchor-type'), None): cnv_string,
- ((TEXTNS,u'animation'), None): cnv_string,
- ((TEXTNS,u'animation-delay'), None): cnv_string,
- ((TEXTNS,u'animation-direction'), None): cnv_string,
- ((TEXTNS,u'animation-repeat'), None): cnv_string,
- ((TEXTNS,u'animation-start-inside'), None): cnv_boolean,
- ((TEXTNS,u'animation-steps'), None): cnv_length,
- ((TEXTNS,u'animation-stop-inside'), None): cnv_boolean,
- ((TEXTNS,u'annote'), None): cnv_string,
- ((TEXTNS,u'author'), None): cnv_string,
- ((TEXTNS,u'bibliography-data-field'), None): cnv_string,
- ((TEXTNS,u'bibliography-type'), None): cnv_string,
- ((TEXTNS,u'booktitle'), None): cnv_string,
- ((TEXTNS,u'bullet-char'), None): cnv_string,
- ((TEXTNS,u'bullet-relative-size'), None): cnv_string,
- ((TEXTNS,u'c'), None): cnv_nonNegativeInteger,
- ((TEXTNS,u'capitalize-entries'), None): cnv_boolean,
- ((TEXTNS,u'caption-sequence-format'), None): cnv_string,
- ((TEXTNS,u'caption-sequence-name'), None): cnv_string,
- ((TEXTNS,u'change-id'), None): cnv_IDREF,
- ((TEXTNS,u'chapter'), None): cnv_string,
- ((TEXTNS,u'citation-body-style-name'), None): cnv_StyleNameRef,
- ((TEXTNS,u'citation-style-name'), None): cnv_StyleNameRef,
- ((TEXTNS,u'class-names'), None): cnv_NCNames,
- ((TEXTNS,u'column-name'), None): cnv_string,
- ((TEXTNS,u'combine-entries'), None): cnv_boolean,
- ((TEXTNS,u'combine-entries-with-dash'), None): cnv_boolean,
- ((TEXTNS,u'combine-entries-with-pp'), None): cnv_boolean,
- ((TEXTNS,u'comma-separated'), None): cnv_boolean,
- ((TEXTNS,u'cond-style-name'), None): cnv_StyleNameRef,
- ((TEXTNS,u'condition'), None): cnv_formula,
- ((TEXTNS,u'connection-name'), None): cnv_string,
- ((TEXTNS,u'consecutive-numbering'), None): cnv_boolean,
- ((TEXTNS,u'continue-numbering'), None): cnv_boolean,
- ((TEXTNS,u'copy-outline-levels'), None): cnv_boolean,
- ((TEXTNS,u'count-empty-lines'), None): cnv_boolean,
- ((TEXTNS,u'count-in-text-boxes'), None): cnv_boolean,
- ((TEXTNS,u'current-value'), None): cnv_boolean,
- ((TEXTNS,u'custom1'), None): cnv_string,
- ((TEXTNS,u'custom2'), None): cnv_string,
- ((TEXTNS,u'custom3'), None): cnv_string,
- ((TEXTNS,u'custom4'), None): cnv_string,
- ((TEXTNS,u'custom5'), None): cnv_string,
- ((TEXTNS,u'database-name'), None): cnv_string,
- ((TEXTNS,u'date-adjust'), None): cnv_duration,
- ((TEXTNS,u'date-value'), None): cnv_date,
-# ((TEXTNS,u'date-value'), None): cnv_dateTime,
- ((TEXTNS,u'default-style-name'), None): cnv_StyleNameRef,
- ((TEXTNS,u'description'), None): cnv_string,
- ((TEXTNS,u'display'), None): cnv_string,
- ((TEXTNS,u'display-levels'), None): cnv_positiveInteger,
- ((TEXTNS,u'display-outline-level'), None): cnv_nonNegativeInteger,
- ((TEXTNS,u'dont-balance-text-columns'), None): cnv_boolean,
- ((TEXTNS,u'duration'), None): cnv_duration,
- ((TEXTNS,u'edition'), None): cnv_string,
- ((TEXTNS,u'editor'), None): cnv_string,
- ((TEXTNS,u'filter-name'), None): cnv_string,
- ((TEXTNS,u'first-row-end-column'), None): cnv_string,
- ((TEXTNS,u'first-row-start-column'), None): cnv_string,
- ((TEXTNS,u'fixed'), None): cnv_boolean,
- ((TEXTNS,u'footnotes-position'), None): cnv_string,
- ((TEXTNS,u'formula'), None): cnv_formula,
- ((TEXTNS,u'global'), None): cnv_boolean,
- ((TEXTNS,u'howpublished'), None): cnv_string,
- ((TEXTNS,u'id'), None): cnv_ID,
-# ((TEXTNS,u'id'), None): cnv_string,
- ((TEXTNS,u'identifier'), None): cnv_string,
- ((TEXTNS,u'ignore-case'), None): cnv_boolean,
- ((TEXTNS,u'increment'), None): cnv_nonNegativeInteger,
- ((TEXTNS,u'index-name'), None): cnv_string,
- ((TEXTNS,u'index-scope'), None): cnv_string,
- ((TEXTNS,u'institution'), None): cnv_string,
- ((TEXTNS,u'is-hidden'), None): cnv_boolean,
- ((TEXTNS,u'is-list-header'), None): cnv_boolean,
- ((TEXTNS,u'isbn'), None): cnv_string,
- ((TEXTNS,u'issn'), None): cnv_string,
- ((TEXTNS,u'issn'), None): cnv_string,
- ((TEXTNS,u'journal'), None): cnv_string,
- ((TEXTNS,u'key'), None): cnv_string,
- ((TEXTNS,u'key1'), None): cnv_string,
- ((TEXTNS,u'key1-phonetic'), None): cnv_string,
- ((TEXTNS,u'key2'), None): cnv_string,
- ((TEXTNS,u'key2-phonetic'), None): cnv_string,
- ((TEXTNS,u'kind'), None): cnv_string,
- ((TEXTNS,u'label'), None): cnv_string,
- ((TEXTNS,u'last-row-end-column'), None): cnv_string,
- ((TEXTNS,u'last-row-start-column'), None): cnv_string,
- ((TEXTNS,u'level'), None): cnv_positiveInteger,
- ((TEXTNS,u'line-break'), None): cnv_boolean,
- ((TEXTNS,u'line-number'), None): cnv_string,
- ((TEXTNS,u'main-entry'), None): cnv_boolean,
- ((TEXTNS,u'main-entry-style-name'), None): cnv_StyleNameRef,
- ((TEXTNS,u'master-page-name'), None): cnv_StyleNameRef,
- ((TEXTNS,u'min-label-distance'), None): cnv_string,
- ((TEXTNS,u'min-label-width'), None): cnv_string,
- ((TEXTNS,u'month'), None): cnv_string,
- ((TEXTNS,u'name'), None): cnv_string,
- ((TEXTNS,u'note-class'), None): cnv_textnoteclass,
- ((TEXTNS,u'note'), None): cnv_string,
- ((TEXTNS,u'number'), None): cnv_string,
- ((TEXTNS,u'number-lines'), None): cnv_boolean,
- ((TEXTNS,u'number-position'), None): cnv_string,
- ((TEXTNS,u'numbered-entries'), None): cnv_boolean,
- ((TEXTNS,u'offset'), None): cnv_string,
- ((TEXTNS,u'organizations'), None): cnv_string,
- ((TEXTNS,u'outline-level'), None): cnv_string,
- ((TEXTNS,u'page-adjust'), None): cnv_integer,
- ((TEXTNS,u'pages'), None): cnv_string,
- ((TEXTNS,u'paragraph-style-name'), None): cnv_StyleNameRef,
- ((TEXTNS,u'placeholder-type'), None): cnv_string,
- ((TEXTNS,u'prefix'), None): cnv_string,
- ((TEXTNS,u'protected'), None): cnv_boolean,
- ((TEXTNS,u'protection-key'), None): cnv_string,
- ((TEXTNS,u'publisher'), None): cnv_string,
- ((TEXTNS,u'ref-name'), None): cnv_string,
- ((TEXTNS,u'reference-format'), None): cnv_string,
- ((TEXTNS,u'relative-tab-stop-position'), None): cnv_boolean,
- ((TEXTNS,u'report-type'), None): cnv_string,
- ((TEXTNS,u'restart-numbering'), None): cnv_boolean,
- ((TEXTNS,u'restart-on-page'), None): cnv_boolean,
- ((TEXTNS,u'row-number'), None): cnv_nonNegativeInteger,
- ((TEXTNS,u'school'), None): cnv_string,
- ((TEXTNS,u'section-name'), None): cnv_string,
- ((TEXTNS,u'select-page'), None): cnv_string,
- ((TEXTNS,u'separation-character'), None): cnv_string,
- ((TEXTNS,u'series'), None): cnv_string,
- ((TEXTNS,u'sort-algorithm'), None): cnv_string,
- ((TEXTNS,u'sort-ascending'), None): cnv_boolean,
- ((TEXTNS,u'sort-by-position'), None): cnv_boolean,
- ((TEXTNS,u'space-before'), None): cnv_string,
- ((TEXTNS,u'start-numbering-at'), None): cnv_string,
- ((TEXTNS,u'start-value'), None): cnv_nonNegativeInteger,
- ((TEXTNS,u'start-value'), None): cnv_positiveInteger,
- ((TEXTNS,u'string-value'), None): cnv_string,
- ((TEXTNS,u'string-value-if-false'), None): cnv_string,
- ((TEXTNS,u'string-value-if-true'), None): cnv_string,
- ((TEXTNS,u'string-value-phonetic'), None): cnv_string,
- ((TEXTNS,u'style-name'), None): cnv_StyleNameRef,
- ((TEXTNS,u'suffix'), None): cnv_string,
- ((TEXTNS,u'tab-ref'), None): cnv_nonNegativeInteger,
- ((TEXTNS,u'table-name'), None): cnv_string,
- ((TEXTNS,u'table-type'), None): cnv_string,
- ((TEXTNS,u'time-adjust'), None): cnv_duration,
- ((TEXTNS,u'time-value'), None): cnv_dateTime,
- ((TEXTNS,u'time-value'), None): cnv_time,
- ((TEXTNS,u'title'), None): cnv_string,
- ((TEXTNS,u'track-changes'), None): cnv_boolean,
- ((TEXTNS,u'url'), None): cnv_string,
- ((TEXTNS,u'use-caption'), None): cnv_boolean,
- ((TEXTNS,u'use-chart-objects'), None): cnv_boolean,
- ((TEXTNS,u'use-draw-objects'), None): cnv_boolean,
- ((TEXTNS,u'use-floating-frames'), None): cnv_boolean,
- ((TEXTNS,u'use-graphics'), None): cnv_boolean,
- ((TEXTNS,u'use-index-marks'), None): cnv_boolean,
- ((TEXTNS,u'use-index-source-styles'), None): cnv_boolean,
- ((TEXTNS,u'use-keys-as-entries'), None): cnv_boolean,
- ((TEXTNS,u'use-math-objects'), None): cnv_boolean,
- ((TEXTNS,u'use-objects'), None): cnv_boolean,
- ((TEXTNS,u'use-other-objects'), None): cnv_boolean,
- ((TEXTNS,u'use-outline-level'), None): cnv_boolean,
- ((TEXTNS,u'use-soft-page-breaks'), None): cnv_boolean,
- ((TEXTNS,u'use-spreadsheet-objects'), None): cnv_boolean,
- ((TEXTNS,u'use-tables'), None): cnv_boolean,
- ((TEXTNS,u'value'), None): cnv_nonNegativeInteger,
- ((TEXTNS,u'visited-style-name'), None): cnv_StyleNameRef,
- ((TEXTNS,u'volume'), None): cnv_string,
- ((TEXTNS,u'year'), None): cnv_string,
- ((XFORMSNS,u'bind'), None): cnv_string,
- ((XLINKNS,u'actuate'), None): cnv_string,
- ((XLINKNS,u'href'), None): cnv_anyURI,
- ((XLINKNS,u'show'), None): cnv_xlinkshow,
- ((XLINKNS,u'title'), None): cnv_string,
- ((XLINKNS,u'type'), None): cnv_string,
-}
-
-class AttrConverters:
- def convert(self, attribute, value, element):
- """ Based on the element, figures out how to check/convert the attribute value
- All values are converted to string
- """
- conversion = attrconverters.get((attribute, element.qname), None)
- if conversion is not None:
- return conversion(attribute, value, element)
- else:
- conversion = attrconverters.get((attribute, None), None)
- if conversion is not None:
- return conversion(attribute, value, element)
- return unicode(value)
-
diff --git a/tablib/packages/odf/chart.py b/tablib/packages/odf/chart.py
deleted file mode 100644
index cca8396..0000000
--- a/tablib/packages/odf/chart.py
+++ /dev/null
@@ -1,87 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import CHARTNS
-from element import Element
-
-# Autogenerated
-def Axis(**args):
- return Element(qname = (CHARTNS,'axis'), **args)
-
-def Categories(**args):
- return Element(qname = (CHARTNS,'categories'), **args)
-
-def Chart(**args):
- return Element(qname = (CHARTNS,'chart'), **args)
-
-def DataPoint(**args):
- return Element(qname = (CHARTNS,'data-point'), **args)
-
-def Domain(**args):
- return Element(qname = (CHARTNS,'domain'), **args)
-
-def ErrorIndicator(**args):
- return Element(qname = (CHARTNS,'error-indicator'), **args)
-
-def Floor(**args):
- return Element(qname = (CHARTNS,'floor'), **args)
-
-def Footer(**args):
- return Element(qname = (CHARTNS,'footer'), **args)
-
-def Grid(**args):
- return Element(qname = (CHARTNS,'grid'), **args)
-
-def Legend(**args):
- return Element(qname = (CHARTNS,'legend'), **args)
-
-def MeanValue(**args):
- return Element(qname = (CHARTNS,'mean-value'), **args)
-
-def PlotArea(**args):
- return Element(qname = (CHARTNS,'plot-area'), **args)
-
-def RegressionCurve(**args):
- return Element(qname = (CHARTNS,'regression-curve'), **args)
-
-def Series(**args):
- return Element(qname = (CHARTNS,'series'), **args)
-
-def StockGainMarker(**args):
- return Element(qname = (CHARTNS,'stock-gain-marker'), **args)
-
-def StockLossMarker(**args):
- return Element(qname = (CHARTNS,'stock-loss-marker'), **args)
-
-def StockRangeLine(**args):
- return Element(qname = (CHARTNS,'stock-range-line'), **args)
-
-def Subtitle(**args):
- return Element(qname = (CHARTNS,'subtitle'), **args)
-
-def SymbolImage(**args):
- return Element(qname = (CHARTNS,'symbol-image'), **args)
-
-def Title(**args):
- return Element(qname = (CHARTNS,'title'), **args)
-
-def Wall(**args):
- return Element(qname = (CHARTNS,'wall'), **args)
-
diff --git a/tablib/packages/odf/config.py b/tablib/packages/odf/config.py
deleted file mode 100644
index f33f361..0000000
--- a/tablib/packages/odf/config.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import CONFIGNS
-from element import Element
-
-# Autogenerated
-def ConfigItem(**args):
- return Element(qname = (CONFIGNS, 'config-item'), **args)
-
-def ConfigItemMapEntry(**args):
- return Element(qname = (CONFIGNS,'config-item-map-entry'), **args)
-
-def ConfigItemMapIndexed(**args):
- return Element(qname = (CONFIGNS,'config-item-map-indexed'), **args)
-
-def ConfigItemMapNamed(**args):
- return Element(qname = (CONFIGNS,'config-item-map-named'), **args)
-
-def ConfigItemSet(**args):
- return Element(qname = (CONFIGNS, 'config-item-set'), **args)
-
diff --git a/tablib/packages/odf/dc.py b/tablib/packages/odf/dc.py
deleted file mode 100644
index 7c96776..0000000
--- a/tablib/packages/odf/dc.py
+++ /dev/null
@@ -1,72 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import DCNS
-from element import Element
-
-# Autogenerated
-def Creator(**args):
- return Element(qname = (DCNS,'creator'), **args)
-
-def Date(**args):
- return Element(qname = (DCNS,'date'), **args)
-
-def Description(**args):
- return Element(qname = (DCNS,'description'), **args)
-
-def Language(**args):
- return Element(qname = (DCNS,'language'), **args)
-
-def Subject(**args):
- return Element(qname = (DCNS,'subject'), **args)
-
-def Title(**args):
- return Element(qname = (DCNS,'title'), **args)
-
-# The following complete the Dublin Core elements, but there is no
-# guarantee a compliant implementation of OpenDocument will preserve
-# these elements
-
-#def Contributor(**args):
-# return Element(qname = (DCNS,'contributor'), **args)
-
-#def Coverage(**args):
-# return Element(qname = (DCNS,'coverage'), **args)
-
-#def Format(**args):
-# return Element(qname = (DCNS,'format'), **args)
-
-#def Identifier(**args):
-# return Element(qname = (DCNS,'identifier'), **args)
-
-#def Publisher(**args):
-# return Element(qname = (DCNS,'publisher'), **args)
-
-#def Relation(**args):
-# return Element(qname = (DCNS,'relation'), **args)
-
-#def Rights(**args):
-# return Element(qname = (DCNS,'rights'), **args)
-
-#def Source(**args):
-# return Element(qname = (DCNS,'source'), **args)
-
-#def Type(**args):
-# return Element(qname = (DCNS,'type'), **args)
diff --git a/tablib/packages/odf/dr3d.py b/tablib/packages/odf/dr3d.py
deleted file mode 100644
index 324ae1c..0000000
--- a/tablib/packages/odf/dr3d.py
+++ /dev/null
@@ -1,43 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import DR3DNS
-from element import Element
-from draw import StyleRefElement
-
-# Autogenerated
-def Cube(**args):
- return StyleRefElement(qname = (DR3DNS,'cube'), **args)
-
-def Extrude(**args):
- return StyleRefElement(qname = (DR3DNS,'extrude'), **args)
-
-def Light(Element):
- return StyleRefElement(qname = (DR3DNS,'light'), **args)
-
-def Rotate(**args):
- return StyleRefElement(qname = (DR3DNS,'rotate'), **args)
-
-def Scene(**args):
- return StyleRefElement(qname = (DR3DNS,'scene'), **args)
-
-def Sphere(**args):
- return StyleRefElement(qname = (DR3DNS,'sphere'), **args)
-
diff --git a/tablib/packages/odf/draw.py b/tablib/packages/odf/draw.py
deleted file mode 100644
index 7692e5a..0000000
--- a/tablib/packages/odf/draw.py
+++ /dev/null
@@ -1,182 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import DRAWNS, STYLENS, PRESENTATIONNS
-from element import Element
-
-def StyleRefElement(stylename=None, classnames=None, **args):
- qattrs = {}
- if stylename is not None:
- f = stylename.getAttrNS(STYLENS, 'family')
- if f == 'graphic':
- qattrs[(DRAWNS,u'style-name')]= stylename
- elif f == 'presentation':
- qattrs[(PRESENTATIONNS,u'style-name')]= stylename
- else:
- raise ValueError, "Style's family must be either 'graphic' or 'presentation'"
- if classnames is not None:
- f = classnames[0].getAttrNS(STYLENS, 'family')
- if f == 'graphic':
- qattrs[(DRAWNS,u'class-names')]= classnames
- elif f == 'presentation':
- qattrs[(PRESENTATIONNS,u'class-names')]= classnames
- else:
- raise ValueError, "Style's family must be either 'graphic' or 'presentation'"
- return Element(qattributes=qattrs, **args)
-
-def DrawElement(name=None, **args):
- e = Element(name=name, **args)
- if not args.has_key('displayname'):
- e.setAttrNS(DRAWNS,'display-name', name)
- return e
-
-# Autogenerated
-def A(**args):
- return Element(qname = (DRAWNS,'a'), **args)
-
-def Applet(**args):
- return Element(qname = (DRAWNS,'applet'), **args)
-
-def AreaCircle(**args):
- return Element(qname = (DRAWNS,'area-circle'), **args)
-
-def AreaPolygon(**args):
- return Element(qname = (DRAWNS,'area-polygon'), **args)
-
-def AreaRectangle(**args):
- return Element(qname = (DRAWNS,'area-rectangle'), **args)
-
-def Caption(**args):
- return StyleRefElement(qname = (DRAWNS,'caption'), **args)
-
-def Circle(**args):
- return StyleRefElement(qname = (DRAWNS,'circle'), **args)
-
-def Connector(**args):
- return StyleRefElement(qname = (DRAWNS,'connector'), **args)
-
-def ContourPath(**args):
- return Element(qname = (DRAWNS,'contour-path'), **args)
-
-def ContourPolygon(**args):
- return Element(qname = (DRAWNS,'contour-polygon'), **args)
-
-def Control(**args):
- return StyleRefElement(qname = (DRAWNS,'control'), **args)
-
-def CustomShape(**args):
- return StyleRefElement(qname = (DRAWNS,'custom-shape'), **args)
-
-def Ellipse(**args):
- return StyleRefElement(qname = (DRAWNS,'ellipse'), **args)
-
-def EnhancedGeometry(**args):
- return Element(qname = (DRAWNS,'enhanced-geometry'), **args)
-
-def Equation(**args):
- return Element(qname = (DRAWNS,'equation'), **args)
-
-def FillImage(**args):
- return DrawElement(qname = (DRAWNS,'fill-image'), **args)
-
-def FloatingFrame(**args):
- return Element(qname = (DRAWNS,'floating-frame'), **args)
-
-def Frame(**args):
- return StyleRefElement(qname = (DRAWNS,'frame'), **args)
-
-def G(**args):
- return StyleRefElement(qname = (DRAWNS,'g'), **args)
-
-def GluePoint(**args):
- return Element(qname = (DRAWNS,'glue-point'), **args)
-
-def Gradient(**args):
- return DrawElement(qname = (DRAWNS,'gradient'), **args)
-
-def Handle(**args):
- return Element(qname = (DRAWNS,'handle'), **args)
-
-def Hatch(**args):
- return DrawElement(qname = (DRAWNS,'hatch'), **args)
-
-def Image(**args):
- return Element(qname = (DRAWNS,'image'), **args)
-
-def ImageMap(**args):
- return Element(qname = (DRAWNS,'image-map'), **args)
-
-def Layer(**args):
- return Element(qname = (DRAWNS,'layer'), **args)
-
-def LayerSet(**args):
- return Element(qname = (DRAWNS,'layer-set'), **args)
-
-def Line(**args):
- return StyleRefElement(qname = (DRAWNS,'line'), **args)
-
-def Marker(**args):
- return DrawElement(qname = (DRAWNS,'marker'), **args)
-
-def Measure(**args):
- return StyleRefElement(qname = (DRAWNS,'measure'), **args)
-
-def Object(**args):
- return Element(qname = (DRAWNS,'object'), **args)
-
-def ObjectOle(**args):
- return Element(qname = (DRAWNS,'object-ole'), **args)
-
-def Opacity(**args):
- return DrawElement(qname = (DRAWNS,'opacity'), **args)
-
-def Page(**args):
- return Element(qname = (DRAWNS,'page'), **args)
-
-def PageThumbnail(**args):
- return StyleRefElement(qname = (DRAWNS,'page-thumbnail'), **args)
-
-def Param(**args):
- return Element(qname = (DRAWNS,'param'), **args)
-
-def Path(**args):
- return StyleRefElement(qname = (DRAWNS,'path'), **args)
-
-def Plugin(**args):
- return Element(qname = (DRAWNS,'plugin'), **args)
-
-def Polygon(**args):
- return StyleRefElement(qname = (DRAWNS,'polygon'), **args)
-
-def Polyline(**args):
- return StyleRefElement(qname = (DRAWNS,'polyline'), **args)
-
-def Rect(**args):
- return StyleRefElement(qname = (DRAWNS,'rect'), **args)
-
-def RegularPolygon(**args):
- return StyleRefElement(qname = (DRAWNS,'regular-polygon'), **args)
-
-def StrokeDash(**args):
- return DrawElement(qname = (DRAWNS,'stroke-dash'), **args)
-
-def TextBox(**args):
- return Element(qname = (DRAWNS,'text-box'), **args)
-
diff --git a/tablib/packages/odf/easyliststyle.py b/tablib/packages/odf/easyliststyle.py
deleted file mode 100644
index b2a54c2..0000000
--- a/tablib/packages/odf/easyliststyle.py
+++ /dev/null
@@ -1,103 +0,0 @@
-# -*- coding: utf-8 -*-
-# Create a <text:list-style> element from a text string.
-# Copyright (C) 2008 J. David Eisenberg
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Contributor(s):
-#
-
-import re
-from style import Style, TextProperties, ListLevelProperties
-from text import ListStyle,ListLevelStyleNumber,ListLevelStyleBullet
-
-"""
-Create a <text:list-style> element from a string or array.
-
-List styles require a lot of code to create one level at a time.
-These routines take a string and delimiter, or a list of
-strings, and creates a <text:list-style> element for you.
-Each item in the string (or array) represents a list level
- * style for levels 1-10.</p>
- *
- * <p>If an item contains <code>1</code>, <code>I</code>,
- * <code>i</code>, <code>A</code>, or <code>a</code>, then it is presumed
- * to be a numbering style; otherwise it is a bulleted style.</p>
-"""
-
-_MAX_LIST_LEVEL = 10
-SHOW_ALL_LEVELS = True
-SHOW_ONE_LEVEL = False
-
-def styleFromString(name, specifiers, delim, spacing, showAllLevels):
- specArray = specifiers.split(delim)
- return styleFromList( name, specArray, spacing, showAllLevels )
-
-def styleFromList( styleName, specArray, spacing, showAllLevels):
- bullet = ""
- numPrefix = ""
- numSuffix = ""
- numberFormat = ""
- cssLengthNum = 0
- cssLengthUnits = ""
- numbered = False
- displayLevels = 0
- listStyle = ListStyle(name=styleName)
- numFormatPattern = re.compile("([1IiAa])")
- cssLengthPattern = re.compile("([^a-z]+)\\s*([a-z]+)?")
- m = cssLengthPattern.search( spacing )
- if (m != None):
- cssLengthNum = float(m.group(1))
- if (m.lastindex == 2):
- cssLengthUnits = m.group(2)
- i = 0
- while i < len(specArray):
- specification = specArray[i]
- m = numFormatPattern.search(specification)
- if (m != None):
- numberFormat = m.group(1)
- numPrefix = specification[0:m.start(1)]
- numSuffix = specification[m.end(1):]
- bullet = ""
- numbered = True
- if (showAllLevels):
- displayLevels = i + 1
- else:
- displayLevels = 1
- else: # it's a bullet style
- bullet = specification
- numPrefix = ""
- numSuffix = ""
- numberFormat = ""
- displayLevels = 1
- numbered = False
- if (numbered):
- lls = ListLevelStyleNumber(level=(i+1))
- if (numPrefix != ''):
- lls.setAttribute('numprefix', numPrefix)
- if (numSuffix != ''):
- lls.setAttribute('numsuffix', numSuffix)
- lls.setAttribute('displaylevels', displayLevels)
- else:
- lls = ListLevelStyleBullet(level=(i+1),bulletchar=bullet[0])
- llp = ListLevelProperties()
- llp.setAttribute('spacebefore', str(cssLengthNum * (i+1)) + cssLengthUnits)
- llp.setAttribute('minlabelwidth', str(cssLengthNum) + cssLengthUnits)
- lls.addElement( llp )
- listStyle.addElement(lls)
- i += 1
- return listStyle
-
-# vim: set expandtab sw=4 :
diff --git a/tablib/packages/odf/element.py b/tablib/packages/odf/element.py
deleted file mode 100644
index aad6980..0000000
--- a/tablib/packages/odf/element.py
+++ /dev/null
@@ -1,513 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2010 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-# Note: This script has copied a lot of text from xml.dom.minidom.
-# Whatever license applies to that file also applies to this file.
-#
-import xml.dom
-from xml.dom.minicompat import *
-from namespaces import nsdict
-import grammar
-from attrconverters import AttrConverters
-
-# The following code is pasted form xml.sax.saxutils
-# Tt makes it possible to run the code without the xml sax package installed
-# To make it possible to have <rubbish> in your text elements, it is necessary to escape the texts
-def _escape(data, entities={}):
- """ Escape &, <, and > in a string of data.
-
- You can escape other strings of data by passing a dictionary as
- the optional entities parameter. The keys and values must all be
- strings; each key will be replaced with its corresponding value.
- """
- data = data.replace("&", "&amp;")
- data = data.replace("<", "&lt;")
- data = data.replace(">", "&gt;")
- for chars, entity in entities.items():
- data = data.replace(chars, entity)
- return data
-
-def _quoteattr(data, entities={}):
- """ Escape and quote an attribute value.
-
- Escape &, <, and > in a string of data, then quote it for use as
- an attribute value. The \" character will be escaped as well, if
- necessary.
-
- You can escape other strings of data by passing a dictionary as
- the optional entities parameter. The keys and values must all be
- strings; each key will be replaced with its corresponding value.
- """
- entities['\n']='&#10;'
- entities['\r']='&#12;'
- data = _escape(data, entities)
- if '"' in data:
- if "'" in data:
- data = '"%s"' % data.replace('"', "&quot;")
- else:
- data = "'%s'" % data
- else:
- data = '"%s"' % data
- return data
-
-def _nssplit(qualifiedName):
- """ Split a qualified name into namespace part and local part. """
- fields = qualifiedName.split(':', 1)
- if len(fields) == 2:
- return fields
- else:
- return (None, fields[0])
-
-def _nsassign(namespace):
- return nsdict.setdefault(namespace,"ns" + str(len(nsdict)))
-
-# Exceptions
-class IllegalChild(StandardError):
- """ Complains if you add an element to a parent where it is not allowed """
-class IllegalText(StandardError):
- """ Complains if you add text or cdata to an element where it is not allowed """
-
-class Node(xml.dom.Node):
- """ super class for more specific nodes """
- parentNode = None
- nextSibling = None
- previousSibling = None
-
- def hasChildNodes(self):
- """ Tells whether this element has any children; text nodes,
- subelements, whatever.
- """
- if self.childNodes:
- return True
- else:
- return False
-
- def _get_childNodes(self):
- return self.childNodes
-
- def _get_firstChild(self):
- if self.childNodes:
- return self.childNodes[0]
-
- def _get_lastChild(self):
- if self.childNodes:
- return self.childNodes[-1]
-
- def insertBefore(self, newChild, refChild):
- """ Inserts the node newChild before the existing child node refChild.
- If refChild is null, insert newChild at the end of the list of children.
- """
- if newChild.nodeType not in self._child_node_types:
- raise IllegalChild, "%s cannot be child of %s" % (newChild.tagName, self.tagName)
- if newChild.parentNode is not None:
- newChild.parentNode.removeChild(newChild)
- if refChild is None:
- self.appendChild(newChild)
- else:
- try:
- index = self.childNodes.index(refChild)
- except ValueError:
- raise xml.dom.NotFoundErr()
- self.childNodes.insert(index, newChild)
- newChild.nextSibling = refChild
- refChild.previousSibling = newChild
- if index:
- node = self.childNodes[index-1]
- node.nextSibling = newChild
- newChild.previousSibling = node
- else:
- newChild.previousSibling = None
- newChild.parentNode = self
- return newChild
-
- def appendChild(self, newChild):
- """ Adds the node newChild to the end of the list of children of this node.
- If the newChild is already in the tree, it is first removed.
- """
- if newChild.nodeType == self.DOCUMENT_FRAGMENT_NODE:
- for c in tuple(newChild.childNodes):
- self.appendChild(c)
- ### The DOM does not clearly specify what to return in this case
- return newChild
- if newChild.nodeType not in self._child_node_types:
- raise IllegalChild, "<%s> is not allowed in %s" % ( newChild.tagName, self.tagName)
- if newChild.parentNode is not None:
- newChild.parentNode.removeChild(newChild)
- _append_child(self, newChild)
- newChild.nextSibling = None
- return newChild
-
- def removeChild(self, oldChild):
- """ Removes the child node indicated by oldChild from the list of children, and returns it.
- """
- #FIXME: update ownerDocument.element_dict or find other solution
- try:
- self.childNodes.remove(oldChild)
- except ValueError:
- raise xml.dom.NotFoundErr()
- if oldChild.nextSibling is not None:
- oldChild.nextSibling.previousSibling = oldChild.previousSibling
- if oldChild.previousSibling is not None:
- oldChild.previousSibling.nextSibling = oldChild.nextSibling
- oldChild.nextSibling = oldChild.previousSibling = None
- if self.ownerDocument:
- self.ownerDocument.clear_caches()
- oldChild.parentNode = None
- return oldChild
-
- def __str__(self):
- val = []
- for c in self.childNodes:
- val.append(str(c))
- return ''.join(val)
-
- def __unicode__(self):
- val = []
- for c in self.childNodes:
- val.append(unicode(c))
- return u''.join(val)
-
-defproperty(Node, "firstChild", doc="First child node, or None.")
-defproperty(Node, "lastChild", doc="Last child node, or None.")
-
-def _append_child(self, node):
- # fast path with less checks; usable by DOM builders if careful
- childNodes = self.childNodes
- if childNodes:
- last = childNodes[-1]
- node.__dict__["previousSibling"] = last
- last.__dict__["nextSibling"] = node
- childNodes.append(node)
- node.__dict__["parentNode"] = self
-
-class Childless:
- """ Mixin that makes childless-ness easy to implement and avoids
- the complexity of the Node methods that deal with children.
- """
-
- attributes = None
- childNodes = EmptyNodeList()
- firstChild = None
- lastChild = None
-
- def _get_firstChild(self):
- return None
-
- def _get_lastChild(self):
- return None
-
- def appendChild(self, node):
- """ Raises an error """
- raise xml.dom.HierarchyRequestErr(
- self.tagName + " nodes cannot have children")
-
- def hasChildNodes(self):
- return False
-
- def insertBefore(self, newChild, refChild):
- """ Raises an error """
- raise xml.dom.HierarchyRequestErr(
- self.tagName + " nodes do not have children")
-
- def removeChild(self, oldChild):
- """ Raises an error """
- raise xml.dom.NotFoundErr(
- self.tagName + " nodes do not have children")
-
- def replaceChild(self, newChild, oldChild):
- """ Raises an error """
- raise xml.dom.HierarchyRequestErr(
- self.tagName + " nodes do not have children")
-
-class Text(Childless, Node):
- nodeType = Node.TEXT_NODE
- tagName = "Text"
-
- def __init__(self, data):
- self.data = data
-
- def __str__(self):
- return self.data.encode()
-
- def __unicode__(self):
- return self.data
-
- def toXml(self,level,f):
- """ Write XML in UTF-8 """
- if self.data:
- f.write(_escape(unicode(self.data).encode('utf-8')))
-
-class CDATASection(Childless, Text):
- nodeType = Node.CDATA_SECTION_NODE
-
- def toXml(self,level,f):
- """ Generate XML output of the node. If the text contains "]]>", then
- escape it by going out of CDATA mode (]]>), then write the string
- and then go into CDATA mode again. (<![CDATA[)
- """
- if self.data:
- f.write('<![CDATA[%s]]>' % self.data.replace(']]>',']]>]]><![CDATA['))
-
-class Element(Node):
- """ Creates a arbitrary element and is intended to be subclassed not used on its own.
- This element is the base of every element it defines a class which resembles
- a xml-element. The main advantage of this kind of implementation is that you don't
- have to create a toXML method for every different object. Every element
- consists of an attribute, optional subelements, optional text and optional cdata.
- """
-
- nodeType = Node.ELEMENT_NODE
- namespaces = {} # Due to shallow copy this is a static variable
-
- _child_node_types = (Node.ELEMENT_NODE,
- Node.PROCESSING_INSTRUCTION_NODE,
- Node.COMMENT_NODE,
- Node.TEXT_NODE,
- Node.CDATA_SECTION_NODE,
- Node.ENTITY_REFERENCE_NODE)
-
- def __init__(self, attributes=None, text=None, cdata=None, qname=None, qattributes=None, check_grammar=True, **args):
- if qname is not None:
- self.qname = qname
- assert(hasattr(self, 'qname'))
- self.ownerDocument = None
- self.childNodes=[]
- self.allowed_children = grammar.allowed_children.get(self.qname)
- prefix = self.get_nsprefix(self.qname[0])
- self.tagName = prefix + ":" + self.qname[1]
- if text is not None:
- self.addText(text)
- if cdata is not None:
- self.addCDATA(cdata)
-
- allowed_attrs = self.allowed_attributes()
- if allowed_attrs is not None:
- allowed_args = [ a[1].lower().replace('-','') for a in allowed_attrs]
- self.attributes={}
- # Load the attributes from the 'attributes' argument
- if attributes:
- for attr, value in attributes.items():
- self.setAttribute(attr, value)
- # Load the qualified attributes
- if qattributes:
- for attr, value in qattributes.items():
- self.setAttrNS(attr[0], attr[1], value)
- if allowed_attrs is not None:
- # Load the attributes from the 'args' argument
- for arg in args.keys():
- self.setAttribute(arg, args[arg])
- else:
- for arg in args.keys(): # If any attribute is allowed
- self.attributes[arg]=args[arg]
- if not check_grammar:
- return
- # Test that all mandatory attributes have been added.
- required = grammar.required_attributes.get(self.qname)
- if required:
- for r in required:
- if self.getAttrNS(r[0],r[1]) is None:
- raise AttributeError, "Required attribute missing: %s in <%s>" % (r[1].lower().replace('-',''), self.tagName)
-
- def get_knownns(self, prefix):
- """ Odfpy maintains a list of known namespaces. In some cases a prefix is used, and
- we need to know which namespace it resolves to.
- """
- global nsdict
- for ns,p in nsdict.items():
- if p == prefix: return ns
- return None
-
- def get_nsprefix(self, namespace):
- """ Odfpy maintains a list of known namespaces. In some cases we have a namespace URL,
- and needs to look up or assign the prefix for it.
- """
- if namespace is None: namespace = ""
- prefix = _nsassign(namespace)
- if not self.namespaces.has_key(namespace):
- self.namespaces[namespace] = prefix
- return prefix
-
- def allowed_attributes(self):
- return grammar.allowed_attributes.get(self.qname)
-
- def _setOwnerDoc(self, element):
- element.ownerDocument = self.ownerDocument
- for child in element.childNodes:
- self._setOwnerDoc(child)
-
- def addElement(self, element, check_grammar=True):
- """ adds an element to an Element
-
- Element.addElement(Element)
- """
- if check_grammar and self.allowed_children is not None:
- if element.qname not in self.allowed_children:
- raise IllegalChild, "<%s> is not allowed in <%s>" % ( element.tagName, self.tagName)
- self.appendChild(element)
- self._setOwnerDoc(element)
- if self.ownerDocument:
- self.ownerDocument.rebuild_caches(element)
-
- def addText(self, text, check_grammar=True):
- """ Adds text to an element
- Setting check_grammar=False turns off grammar checking
- """
- if check_grammar and self.qname not in grammar.allows_text:
- raise IllegalText, "The <%s> element does not allow text" % self.tagName
- else:
- if text != '':
- self.appendChild(Text(text))
-
- def addCDATA(self, cdata, check_grammar=True):
- """ Adds CDATA to an element
- Setting check_grammar=False turns off grammar checking
- """
- if check_grammar and self.qname not in grammar.allows_text:
- raise IllegalText, "The <%s> element does not allow text" % self.tagName
- else:
- self.appendChild(CDATASection(cdata))
-
- def removeAttribute(self, attr, check_grammar=True):
- """ Removes an attribute by name. """
- allowed_attrs = self.allowed_attributes()
- if allowed_attrs is None:
- if type(attr) == type(()):
- prefix, localname = attr
- self.removeAttrNS(prefix, localname)
- else:
- raise AttributeError, "Unable to add simple attribute - use (namespace, localpart)"
- else:
- # Construct a list of allowed arguments
- allowed_args = [ a[1].lower().replace('-','') for a in allowed_attrs]
- if check_grammar and attr not in allowed_args:
- raise AttributeError, "Attribute %s is not allowed in <%s>" % ( attr, self.tagName)
- i = allowed_args.index(attr)
- self.removeAttrNS(allowed_attrs[i][0], allowed_attrs[i][1])
-
- def setAttribute(self, attr, value, check_grammar=True):
- """ Add an attribute to the element
- This is sort of a convenience method. All attributes in ODF have
- namespaces. The library knows what attributes are legal and then allows
- the user to provide the attribute as a keyword argument and the
- library will add the correct namespace.
- Must overwrite, If attribute already exists.
- """
- allowed_attrs = self.allowed_attributes()
- if allowed_attrs is None:
- if type(attr) == type(()):
- prefix, localname = attr
- self.setAttrNS(prefix, localname, value)
- else:
- raise AttributeError, "Unable to add simple attribute - use (namespace, localpart)"
- else:
- # Construct a list of allowed arguments
- allowed_args = [ a[1].lower().replace('-','') for a in allowed_attrs]
- if check_grammar and attr not in allowed_args:
- raise AttributeError, "Attribute %s is not allowed in <%s>" % ( attr, self.tagName)
- i = allowed_args.index(attr)
- self.setAttrNS(allowed_attrs[i][0], allowed_attrs[i][1], value)
-
- def setAttrNS(self, namespace, localpart, value):
- """ Add an attribute to the element
- In case you need to add an attribute the library doesn't know about
- then you must provide the full qualified name
- It will not check that the attribute is legal according to the schema.
- Must overwrite, If attribute already exists.
- """
- allowed_attrs = self.allowed_attributes()
- prefix = self.get_nsprefix(namespace)
-# if allowed_attrs and (namespace, localpart) not in allowed_attrs:
-# raise AttributeError, "Attribute %s:%s is not allowed in element <%s>" % ( prefix, localpart, self.tagName)
- c = AttrConverters()
- self.attributes[(namespace, localpart)] = c.convert((namespace, localpart), value, self)
-
- def getAttrNS(self, namespace, localpart):
- prefix = self.get_nsprefix(namespace)
- return self.attributes.get((namespace, localpart))
-
- def removeAttrNS(self, namespace, localpart):
- del self.attributes[(namespace, localpart)]
-
- def getAttribute(self, attr):
- """ Get an attribute value. The method knows which namespace the attribute is in
- """
- allowed_attrs = self.allowed_attributes()
- if allowed_attrs is None:
- if type(attr) == type(()):
- prefix, localname = attr
- return self.getAttrNS(prefix, localname)
- else:
- raise AttributeError, "Unable to get simple attribute - use (namespace, localpart)"
- else:
- # Construct a list of allowed arguments
- allowed_args = [ a[1].lower().replace('-','') for a in allowed_attrs]
- i = allowed_args.index(attr)
- return self.getAttrNS(allowed_attrs[i][0], allowed_attrs[i][1])
-
- def write_open_tag(self, level, f):
- f.write('<'+self.tagName)
- if level == 0:
- for namespace, prefix in self.namespaces.items():
- f.write(' xmlns:' + prefix + '="'+ _escape(str(namespace))+'"')
- for qname in self.attributes.keys():
- prefix = self.get_nsprefix(qname[0])
- f.write(' '+_escape(str(prefix+':'+qname[1]))+'='+_quoteattr(unicode(self.attributes[qname]).encode('utf-8')))
- f.write('>')
-
- def write_close_tag(self, level, f):
- f.write('</'+self.tagName+'>')
-
- def toXml(self, level, f):
- """ Generate XML stream out of the tree structure """
- f.write('<'+self.tagName)
- if level == 0:
- for namespace, prefix in self.namespaces.items():
- f.write(' xmlns:' + prefix + '="'+ _escape(str(namespace))+'"')
- for qname in self.attributes.keys():
- prefix = self.get_nsprefix(qname[0])
- f.write(' '+_escape(str(prefix+':'+qname[1]))+'='+_quoteattr(unicode(self.attributes[qname]).encode('utf-8')))
- if self.childNodes:
- f.write('>')
- for element in self.childNodes:
- element.toXml(level+1,f)
- f.write('</'+self.tagName+'>')
- else:
- f.write('/>')
-
- def _getElementsByObj(self, obj, accumulator):
- if self.qname == obj.qname:
- accumulator.append(self)
- for e in self.childNodes:
- if e.nodeType == Node.ELEMENT_NODE:
- accumulator = e._getElementsByObj(obj, accumulator)
- return accumulator
-
- def getElementsByType(self, element):
- """ Gets elements based on the type, which is function from text.py, draw.py etc. """
- obj = element(check_grammar=False)
- return self._getElementsByObj(obj,[])
-
- def isInstanceOf(self, element):
- """ This is a check to see if the object is an instance of a type """
- obj = element(check_grammar=False)
- return self.qname == obj.qname
-
-
diff --git a/tablib/packages/odf/elementtypes.py b/tablib/packages/odf/elementtypes.py
deleted file mode 100644
index 7c19412..0000000
--- a/tablib/packages/odf/elementtypes.py
+++ /dev/null
@@ -1,325 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2008 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import *
-
-# Inline element don't cause a box
-# They are analogous to the HTML elements SPAN, B, I etc.
-inline_elements = (
- (TEXTNS,u'a'),
- (TEXTNS,u'author-initials'),
- (TEXTNS,u'author-name'),
- (TEXTNS,u'bibliography-mark'),
- (TEXTNS,u'bookmark-ref'),
- (TEXTNS,u'chapter'),
- (TEXTNS,u'character-count'),
- (TEXTNS,u'conditional-text'),
- (TEXTNS,u'creation-date'),
- (TEXTNS,u'creation-time'),
- (TEXTNS,u'creator'),
- (TEXTNS,u'database-display'),
- (TEXTNS,u'database-name'),
- (TEXTNS,u'database-next'),
- (TEXTNS,u'database-row-number'),
- (TEXTNS,u'database-row-select'),
- (TEXTNS,u'date'),
- (TEXTNS,u'dde-connection'),
- (TEXTNS,u'description'),
- (TEXTNS,u'editing-cycles'),
- (TEXTNS,u'editing-duration'),
- (TEXTNS,u'execute-macro'),
- (TEXTNS,u'expression'),
- (TEXTNS,u'file-name'),
- (TEXTNS,u'hidden-paragraph'),
- (TEXTNS,u'hidden-text'),
- (TEXTNS,u'image-count'),
- (TEXTNS,u'initial-creator'),
- (TEXTNS,u'keywords'),
- (TEXTNS,u'measure'),
- (TEXTNS,u'modification-date'),
- (TEXTNS,u'modification-time'),
- (TEXTNS,u'note-ref'),
- (TEXTNS,u'object-count'),
- (TEXTNS,u'page-continuation'),
- (TEXTNS,u'page-count'),
- (TEXTNS,u'page-number'),
- (TEXTNS,u'page-variable-get'),
- (TEXTNS,u'page-variable-set'),
- (TEXTNS,u'paragraph-count'),
- (TEXTNS,u'placeholder'),
- (TEXTNS,u'print-date'),
- (TEXTNS,u'printed-by'),
- (TEXTNS,u'print-time'),
- (TEXTNS,u'reference-ref'),
- (TEXTNS,u'ruby'),
- (TEXTNS,u'ruby-base'),
- (TEXTNS,u'ruby-text'),
- (TEXTNS,u'script'),
- (TEXTNS,u'sender-city'),
- (TEXTNS,u'sender-company'),
- (TEXTNS,u'sender-country'),
- (TEXTNS,u'sender-email'),
- (TEXTNS,u'sender-fax'),
- (TEXTNS,u'sender-firstname'),
- (TEXTNS,u'sender-initials'),
- (TEXTNS,u'sender-lastname'),
- (TEXTNS,u'sender-phone-private'),
- (TEXTNS,u'sender-phone-work'),
- (TEXTNS,u'sender-position'),
- (TEXTNS,u'sender-postal-code'),
- (TEXTNS,u'sender-state-or-province'),
- (TEXTNS,u'sender-street'),
- (TEXTNS,u'sender-title'),
- (TEXTNS,u'sequence'),
- (TEXTNS,u'sequence-ref'),
- (TEXTNS,u'sheet-name'),
- (TEXTNS,u'span'),
- (TEXTNS,u'subject'),
- (TEXTNS,u'table-count'),
- (TEXTNS,u'table-formula'),
- (TEXTNS,u'template-name'),
- (TEXTNS,u'text-input'),
- (TEXTNS,u'time'),
- (TEXTNS,u'title'),
- (TEXTNS,u'user-defined'),
- (TEXTNS,u'user-field-get'),
- (TEXTNS,u'user-field-input'),
- (TEXTNS,u'variable-get'),
- (TEXTNS,u'variable-input'),
- (TEXTNS,u'variable-set'),
- (TEXTNS,u'word-count'),
-)
-
-
-# It is almost impossible to determine what elements are block elements.
-# There are so many that don't fit the form
-block_elements = (
- (TEXTNS,u'h'),
- (TEXTNS,u'p'),
- (TEXTNS,u'list'),
- (TEXTNS,u'list-item'),
- (TEXTNS,u'section'),
-)
-
-declarative_elements = (
- (OFFICENS,u'font-face-decls'),
- (PRESENTATIONNS,u'date-time-decl'),
- (PRESENTATIONNS,u'footer-decl'),
- (PRESENTATIONNS,u'header-decl'),
- (TABLENS,u'table-template'),
- (TEXTNS,u'alphabetical-index-entry-template'),
- (TEXTNS,u'alphabetical-index-source'),
- (TEXTNS,u'bibliography-entry-template'),
- (TEXTNS,u'bibliography-source'),
- (TEXTNS,u'dde-connection-decls'),
- (TEXTNS,u'illustration-index-entry-template'),
- (TEXTNS,u'illustration-index-source'),
- (TEXTNS,u'index-source-styles'),
- (TEXTNS,u'index-title-template'),
- (TEXTNS,u'note-continuation-notice-backward'),
- (TEXTNS,u'note-continuation-notice-forward'),
- (TEXTNS,u'notes-configuration'),
- (TEXTNS,u'object-index-entry-template'),
- (TEXTNS,u'object-index-source'),
- (TEXTNS,u'sequence-decls'),
- (TEXTNS,u'table-index-entry-template'),
- (TEXTNS,u'table-index-source'),
- (TEXTNS,u'table-of-content-entry-template'),
- (TEXTNS,u'table-of-content-source'),
- (TEXTNS,u'user-field-decls'),
- (TEXTNS,u'user-index-entry-template'),
- (TEXTNS,u'user-index-source'),
- (TEXTNS,u'variable-decls'),
-)
-
-empty_elements = (
- (ANIMNS,u'animate'),
- (ANIMNS,u'animateColor'),
- (ANIMNS,u'animateMotion'),
- (ANIMNS,u'animateTransform'),
- (ANIMNS,u'audio'),
- (ANIMNS,u'param'),
- (ANIMNS,u'set'),
- (ANIMNS,u'transitionFilter'),
- (CHARTNS,u'categories'),
- (CHARTNS,u'data-point'),
- (CHARTNS,u'domain'),
- (CHARTNS,u'error-indicator'),
- (CHARTNS,u'floor'),
- (CHARTNS,u'grid'),
- (CHARTNS,u'legend'),
- (CHARTNS,u'mean-value'),
- (CHARTNS,u'regression-curve'),
- (CHARTNS,u'stock-gain-marker'),
- (CHARTNS,u'stock-loss-marker'),
- (CHARTNS,u'stock-range-line'),
- (CHARTNS,u'symbol-image'),
- (CHARTNS,u'wall'),
- (DR3DNS,u'cube'),
- (DR3DNS,u'extrude'),
- (DR3DNS,u'light'),
- (DR3DNS,u'rotate'),
- (DR3DNS,u'sphere'),
- (DRAWNS,u'contour-path'),
- (DRAWNS,u'contour-polygon'),
- (DRAWNS,u'equation'),
- (DRAWNS,u'fill-image'),
- (DRAWNS,u'floating-frame'),
- (DRAWNS,u'glue-point'),
- (DRAWNS,u'gradient'),
- (DRAWNS,u'handle'),
- (DRAWNS,u'hatch'),
- (DRAWNS,u'layer'),
- (DRAWNS,u'marker'),
- (DRAWNS,u'opacity'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'param'),
- (DRAWNS,u'stroke-dash'),
- (FORMNS,u'connection-resource'),
- (FORMNS,u'list-value'),
- (FORMNS,u'property'),
- (MANIFESTNS,u'algorithm'),
- (MANIFESTNS,u'key-derivation'),
- (METANS,u'auto-reload'),
- (METANS,u'document-statistic'),
- (METANS,u'hyperlink-behaviour'),
- (METANS,u'template'),
- (NUMBERNS,u'am-pm'),
- (NUMBERNS,u'boolean'),
- (NUMBERNS,u'day'),
- (NUMBERNS,u'day-of-week'),
- (NUMBERNS,u'era'),
- (NUMBERNS,u'fraction'),
- (NUMBERNS,u'hours'),
- (NUMBERNS,u'minutes'),
- (NUMBERNS,u'month'),
- (NUMBERNS,u'quarter'),
- (NUMBERNS,u'scientific-number'),
- (NUMBERNS,u'seconds'),
- (NUMBERNS,u'text-content'),
- (NUMBERNS,u'week-of-year'),
- (NUMBERNS,u'year'),
- (OFFICENS,u'dde-source'),
- (PRESENTATIONNS,u'date-time'),
- (PRESENTATIONNS,u'footer'),
- (PRESENTATIONNS,u'header'),
- (PRESENTATIONNS,u'placeholder'),
- (PRESENTATIONNS,u'play'),
- (PRESENTATIONNS,u'show'),
- (PRESENTATIONNS,u'sound'),
- (SCRIPTNS,u'event-listener'),
- (STYLENS,u'column'),
- (STYLENS,u'column-sep'),
- (STYLENS,u'drop-cap'),
- (STYLENS,u'footnote-sep'),
- (STYLENS,u'list-level-properties'),
- (STYLENS,u'map'),
- (STYLENS,u'ruby-properties'),
- (STYLENS,u'table-column-properties'),
- (STYLENS,u'tab-stop'),
- (STYLENS,u'text-properties'),
- (SVGNS,u'definition-src'),
- (SVGNS,u'font-face-format'),
- (SVGNS,u'font-face-name'),
- (SVGNS,u'stop'),
- (TABLENS,u'body'),
- (TABLENS,u'cell-address'),
- (TABLENS,u'cell-range-source'),
- (TABLENS,u'change-deletion'),
- (TABLENS,u'consolidation'),
- (TABLENS,u'database-source-query'),
- (TABLENS,u'database-source-sql'),
- (TABLENS,u'database-source-table'),
- (TABLENS,u'data-pilot-display-info'),
- (TABLENS,u'data-pilot-field-reference'),
- (TABLENS,u'data-pilot-group-member'),
- (TABLENS,u'data-pilot-layout-info'),
- (TABLENS,u'data-pilot-member'),
- (TABLENS,u'data-pilot-sort-info'),
- (TABLENS,u'data-pilot-subtotal'),
- (TABLENS,u'dependency'),
- (TABLENS,u'error-macro'),
- (TABLENS,u'even-columns'),
- (TABLENS,u'even-rows'),
- (TABLENS,u'filter-condition'),
- (TABLENS,u'first-column'),
- (TABLENS,u'first-row'),
- (TABLENS,u'highlighted-range'),
- (TABLENS,u'insertion-cut-off'),
- (TABLENS,u'iteration'),
- (TABLENS,u'label-range'),
- (TABLENS,u'last-column'),
- (TABLENS,u'last-row'),
- (TABLENS,u'movement-cut-off'),
- (TABLENS,u'named-expression'),
- (TABLENS,u'named-range'),
- (TABLENS,u'null-date'),
- (TABLENS,u'odd-columns'),
- (TABLENS,u'odd-rows'),
- (TABLENS,u'operation'),
- (TABLENS,u'scenario'),
- (TABLENS,u'sort-by'),
- (TABLENS,u'sort-groups'),
- (TABLENS,u'source-range-address'),
- (TABLENS,u'source-service'),
- (TABLENS,u'subtotal-field'),
- (TABLENS,u'table-column'),
- (TABLENS,u'table-source'),
- (TABLENS,u'target-range-address'),
- (TEXTNS,u'alphabetical-index-auto-mark-file'),
- (TEXTNS,u'alphabetical-index-mark'),
- (TEXTNS,u'alphabetical-index-mark-end'),
- (TEXTNS,u'alphabetical-index-mark-start'),
- (TEXTNS,u'bookmark'),
- (TEXTNS,u'bookmark-end'),
- (TEXTNS,u'bookmark-start'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'dde-connection-decl'),
- (TEXTNS,u'index-entry-bibliography'),
- (TEXTNS,u'index-entry-chapter'),
- (TEXTNS,u'index-entry-link-end'),
- (TEXTNS,u'index-entry-link-start'),
- (TEXTNS,u'index-entry-page-number'),
- (TEXTNS,u'index-entry-tab-stop'),
- (TEXTNS,u'index-entry-text'),
- (TEXTNS,u'index-source-style'),
- (TEXTNS,u'line-break'),
- (TEXTNS,u'page'),
- (TEXTNS,u'reference-mark'),
- (TEXTNS,u'reference-mark-end'),
- (TEXTNS,u'reference-mark-start'),
- (TEXTNS,u's'),
- (TEXTNS,u'section-source'),
- (TEXTNS,u'sequence-decl'),
- (TEXTNS,u'soft-page-break'),
- (TEXTNS,u'sort-key'),
- (TEXTNS,u'tab'),
- (TEXTNS,u'toc-mark'),
- (TEXTNS,u'toc-mark-end'),
- (TEXTNS,u'toc-mark-start'),
- (TEXTNS,u'user-field-decl'),
- (TEXTNS,u'user-index-mark'),
- (TEXTNS,u'user-index-mark-end'),
- (TEXTNS,u'user-index-mark-start'),
- (TEXTNS,u'variable-decl')
-)
diff --git a/tablib/packages/odf/form.py b/tablib/packages/odf/form.py
deleted file mode 100644
index 7969b84..0000000
--- a/tablib/packages/odf/form.py
+++ /dev/null
@@ -1,115 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import FORMNS
-from element import Element
-
-
-# Autogenerated
-def Button(**args):
- return Element(qname = (FORMNS,'button'), **args)
-
-def Checkbox(**args):
- return Element(qname = (FORMNS,'checkbox'), **args)
-
-def Column(**args):
- return Element(qname = (FORMNS,'column'), **args)
-
-def Combobox(**args):
- return Element(qname = (FORMNS,'combobox'), **args)
-
-def ConnectionResource(**args):
- return Element(qname = (FORMNS,'connection-resource'), **args)
-
-def Date(**args):
- return Element(qname = (FORMNS,'date'), **args)
-
-def File(**args):
- return Element(qname = (FORMNS,'file'), **args)
-
-def FixedText(**args):
- return Element(qname = (FORMNS,'fixed-text'), **args)
-
-def Form(**args):
- return Element(qname = (FORMNS,'form'), **args)
-
-def FormattedText(**args):
- return Element(qname = (FORMNS,'formatted-text'), **args)
-
-def Frame(**args):
- return Element(qname = (FORMNS,'frame'), **args)
-
-def GenericControl(**args):
- return Element(qname = (FORMNS,'generic-control'), **args)
-
-def Grid(**args):
- return Element(qname = (FORMNS,'grid'), **args)
-
-def Hidden(**args):
- return Element(qname = (FORMNS,'hidden'), **args)
-
-def Image(**args):
- return Element(qname = (FORMNS,'image'), **args)
-
-def ImageFrame(**args):
- return Element(qname = (FORMNS,'image-frame'), **args)
-
-def Item(**args):
- return Element(qname = (FORMNS,'item'), **args)
-
-def ListProperty(**args):
- return Element(qname = (FORMNS,'list-property'), **args)
-
-def ListValue(**args):
- return Element(qname = (FORMNS,'list-value'), **args)
-
-def Listbox(**args):
- return Element(qname = (FORMNS,'listbox'), **args)
-
-def Number(**args):
- return Element(qname = (FORMNS,'number'), **args)
-
-def Option(**args):
- return Element(qname = (FORMNS,'option'), **args)
-
-def Password(**args):
- return Element(qname = (FORMNS,'password'), **args)
-
-def Properties(**args):
- return Element(qname = (FORMNS,'properties'), **args)
-
-def Property(**args):
- return Element(qname = (FORMNS,'property'), **args)
-
-def Radio(**args):
- return Element(qname = (FORMNS,'radio'), **args)
-
-def Text(**args):
- return Element(qname = (FORMNS,'text'), **args)
-
-def Textarea(**args):
- return Element(qname = (FORMNS,'textarea'), **args)
-
-def Time(**args):
- return Element(qname = (FORMNS,'time'), **args)
-
-def ValueRange(**args):
- return Element(qname = (FORMNS,'value-range'), **args)
-
diff --git a/tablib/packages/odf/grammar.py b/tablib/packages/odf/grammar.py
deleted file mode 100644
index d5d8d59..0000000
--- a/tablib/packages/odf/grammar.py
+++ /dev/null
@@ -1,8426 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2010 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-__doc__=""" In principle the OpenDocument schema converted to python structures.
-Currently it contains the legal child elements of a given element.
-To be used for validation check in the API
-"""
-
-from namespaces import *
-
-# The following code is generated from the RelaxNG schema with this notice:
-
-# OASIS OpenDocument v1.1
-# OASIS Standard, 1 Feb 2007
-# Relax-NG Schema
-
-# $Id$
-
-# © 2002-2007 OASIS Open
-# © 1999-2007 Sun Microsystems, Inc.
-
-# This document and translations of it may be copied and furnished
-# to others, and derivative works that comment on or otherwise explain
-# it or assist in its implementation may be prepared, copied,
-# published and distributed, in whole or in part, without restriction
-# of any kind, provided that the above copyright notice and this
-# paragraph are included on all such copies and derivative works.
-# However, this document itself does not be modified in any way, such
-# as by removing the copyright notice or references to OASIS, except
-# as needed for the purpose of developing OASIS specifications, in
-# which case the procedures for copyrights defined in the OASIS
-# Intellectual Property Rights document must be followed, or as
-# required to translate it into languages other than English.
-#
-
-allowed_children = {
- (DCNS,u'creator') : (
- ),
- (DCNS,u'date') : (
- ),
- (DCNS,u'description') : (
- ),
- (DCNS,u'language') : (
- ),
- (DCNS,u'subject') : (
- ),
- (DCNS,u'title') : (
- ),
-# Completes Dublin Core start
-# (DCNS,'contributor') : (
-# ),
-# (DCNS,'coverage') : (
-# ),
-# (DCNS,'format') : (
-# ),
-# (DCNS,'identifier') : (
-# ),
-# (DCNS,'publisher') : (
-# ),
-# (DCNS,'relation') : (
-# ),
-# (DCNS,'rights') : (
-# ),
-# (DCNS,'source') : (
-# ),
-# (DCNS,'type') : (
-# ),
-# Completes Dublin Core end
- (MATHNS,u'math') : None,
-
- (XFORMSNS,u'model') : None,
-
- (ANIMNS,u'animate') : (
- ),
- (ANIMNS,u'animateColor') : (
- ),
- (ANIMNS,u'animateMotion') : (
- ),
- (ANIMNS,u'animateTransform') : (
- ),
- (ANIMNS,u'audio') : (
- ),
- (ANIMNS,u'command') : (
- (ANIMNS,u'param'),
- ),
-# allowed_children
- (ANIMNS,u'iterate') : (
- (ANIMNS,u'animate'),
- (ANIMNS,u'animateColor'),
- (ANIMNS,u'animateMotion'),
- (ANIMNS,u'animateTransform'),
- (ANIMNS,u'audio'),
- (ANIMNS,u'command'),
- (ANIMNS,u'iterate'),
- (ANIMNS,u'par'),
- (ANIMNS,u'seq'),
- (ANIMNS,u'set'),
- (ANIMNS,u'transitionFilter'),
- ),
- (ANIMNS,u'par') : (
- (ANIMNS,u'animate'),
- (ANIMNS,u'animateColor'),
- (ANIMNS,u'animateMotion'),
- (ANIMNS,u'animateTransform'),
- (ANIMNS,u'audio'),
- (ANIMNS,u'command'),
- (ANIMNS,u'iterate'),
- (ANIMNS,u'par'),
- (ANIMNS,u'seq'),
- (ANIMNS,u'set'),
- (ANIMNS,u'transitionFilter'),
- ),
-# allowed_children
- (ANIMNS,u'param') : (
- ),
- (ANIMNS,u'seq') : (
- (ANIMNS,u'animate'),
- (ANIMNS,u'animateColor'),
- (ANIMNS,u'animateMotion'),
- (ANIMNS,u'animateTransform'),
- (ANIMNS,u'audio'),
- (ANIMNS,u'command'),
- (ANIMNS,u'iterate'),
- (ANIMNS,u'par'),
- (ANIMNS,u'seq'),
- (ANIMNS,u'set'),
- (ANIMNS,u'transitionFilter'),
- ),
- (ANIMNS,u'set') : (
- ),
- (ANIMNS,u'transitionFilter') : (
- ),
- (CHARTNS,u'axis') : (
- (CHARTNS,u'categories'),
- (CHARTNS,u'grid'),
- (CHARTNS,u'title'),
- ),
-# allowed_children
- (CHARTNS,u'categories') : (
- ),
- (CHARTNS,u'chart') : (
- (CHARTNS,u'footer'),
- (CHARTNS,u'legend'),
- (CHARTNS,u'plot-area'),
- (CHARTNS,u'subtitle'),
- (CHARTNS,u'title'),
- (TABLENS,u'table'),
- ),
- (CHARTNS,u'data-point') : (
- ),
- (CHARTNS,u'domain') : (
- ),
- (CHARTNS,u'error-indicator') : (
- ),
- (CHARTNS,u'floor') : (
- ),
- (CHARTNS,u'footer') : (
- (TEXTNS,u'p'),
- ),
- (CHARTNS,u'grid') : (
- ),
- (CHARTNS,u'legend') : (
- ),
-# allowed_children
- (CHARTNS,u'mean-value') : (
- ),
- (CHARTNS,u'plot-area') : (
- (CHARTNS,u'axis'),
- (CHARTNS,u'floor'),
- (CHARTNS,u'series'),
- (CHARTNS,u'stock-gain-marker'),
- (CHARTNS,u'stock-loss-marker'),
- (CHARTNS,u'stock-range-line'),
- (CHARTNS,u'wall'),
- (DR3DNS,u'light'),
- ),
- (CHARTNS,u'regression-curve') : (
- ),
- (CHARTNS,u'series') : (
- (CHARTNS,u'data-point'),
- (CHARTNS,u'domain'),
- (CHARTNS,u'error-indicator'),
- (CHARTNS,u'mean-value'),
- (CHARTNS,u'regression-curve'),
- ),
- (CHARTNS,u'stock-gain-marker') : (
- ),
- (CHARTNS,u'stock-loss-marker') : (
- ),
-# allowed_children
- (CHARTNS,u'stock-range-line') : (
- ),
- (CHARTNS,u'subtitle') : (
- (TEXTNS,u'p'),
- ),
- (CHARTNS,u'symbol-image') : (
- ),
- (CHARTNS,u'title') : (
- (TEXTNS,u'p'),
- ),
- (CHARTNS,u'wall') : (
- ),
- (CONFIGNS,u'config-item') : (
- ),
- (CONFIGNS,u'config-item-map-entry') : (
- (CONFIGNS,u'config-item'),
- (CONFIGNS,u'config-item-map-indexed'),
- (CONFIGNS,u'config-item-map-named'),
- (CONFIGNS,u'config-item-set'),
- ),
- (CONFIGNS,u'config-item-map-indexed') : (
- (CONFIGNS,u'config-item-map-entry'),
- ),
- (CONFIGNS,u'config-item-map-named') : (
- (CONFIGNS,u'config-item-map-entry'),
- ),
-# allowed_children
- (CONFIGNS,u'config-item-set') : (
- (CONFIGNS,u'config-item'),
- (CONFIGNS,u'config-item-map-indexed'),
- (CONFIGNS,u'config-item-map-named'),
- (CONFIGNS,u'config-item-set'),
- ),
- (MANIFESTNS,u'algorithm') : (
- ),
- (MANIFESTNS,u'encryption-data') : (
- (MANIFESTNS,u'algorithm'),
- (MANIFESTNS,u'key-derivation'),
- ),
- (MANIFESTNS,u'file-entry') : (
- (MANIFESTNS,u'encryption-data'),
- ),
- (MANIFESTNS,u'key-derivation') : (
- ),
- (MANIFESTNS,u'manifest') : (
- (MANIFESTNS,u'file-entry'),
- ),
- (NUMBERNS,u'am-pm') : (
- ),
- (NUMBERNS,u'boolean') : (
- ),
-# allowed_children
- (NUMBERNS,u'boolean-style') : (
- (NUMBERNS,u'boolean'),
- (NUMBERNS,u'text'),
- (STYLENS,u'map'),
- (STYLENS,u'text-properties'),
- ),
- (NUMBERNS,u'currency-style') : (
- (NUMBERNS,u'currency-symbol'),
- (NUMBERNS,u'number'),
- (NUMBERNS,u'text'),
- (STYLENS,u'map'),
- (STYLENS,u'text-properties'),
- ),
- (NUMBERNS,u'currency-symbol') : (
- ),
- (NUMBERNS,u'date-style') : (
- (NUMBERNS,u'am-pm'),
- (NUMBERNS,u'day'),
- (NUMBERNS,u'day-of-week'),
- (NUMBERNS,u'era'),
- (NUMBERNS,u'hours'),
- (NUMBERNS,u'minutes'),
- (NUMBERNS,u'month'),
- (NUMBERNS,u'quarter'),
- (NUMBERNS,u'seconds'),
- (NUMBERNS,u'text'),
- (NUMBERNS,u'week-of-year'),
- (NUMBERNS,u'year'),
- (STYLENS,u'map'),
- (STYLENS,u'text-properties'),
- ),
-# allowed_children
- (NUMBERNS,u'day') : (
- ),
- (NUMBERNS,u'day-of-week') : (
- ),
- (NUMBERNS,u'embedded-text') : (
- ),
- (NUMBERNS,u'era') : (
- ),
- (NUMBERNS,u'fraction') : (
- ),
- (NUMBERNS,u'hours') : (
- ),
- (NUMBERNS,u'minutes') : (
- ),
- (NUMBERNS,u'month') : (
- ),
- (NUMBERNS,u'number') : (
- (NUMBERNS,u'embedded-text'),
- ),
- (NUMBERNS,u'number-style') : (
- (NUMBERNS,u'fraction'),
- (NUMBERNS,u'number'),
- (NUMBERNS,u'scientific-number'),
- (NUMBERNS,u'text'),
- (STYLENS,u'map'),
- (STYLENS,u'text-properties'),
- ),
-# allowed_children
- (NUMBERNS,u'percentage-style') : (
- (NUMBERNS,u'number'),
- (NUMBERNS,u'text'),
- (STYLENS,u'map'),
- (STYLENS,u'text-properties'),
- ),
- (NUMBERNS,u'quarter') : (
- ),
- (NUMBERNS,u'scientific-number') : (
- ),
- (NUMBERNS,u'seconds') : (
- ),
- (NUMBERNS,u'text') : (
- ),
- (NUMBERNS,u'text-content') : (
- ),
- (NUMBERNS,u'text-style') : (
- (NUMBERNS,u'text'),
- (NUMBERNS,u'text-content'),
- (STYLENS,u'map'),
- (STYLENS,u'text-properties'),
- ),
-# allowed_children
- (NUMBERNS,u'time-style') : (
- (NUMBERNS,u'am-pm'),
- (NUMBERNS,u'hours'),
- (NUMBERNS,u'minutes'),
- (NUMBERNS,u'seconds'),
- (NUMBERNS,u'text'),
- (STYLENS,u'map'),
- (STYLENS,u'text-properties'),
- ),
-# allowed_children
- (NUMBERNS,u'week-of-year') : (
- ),
- (NUMBERNS,u'year') : (
- ),
- (DR3DNS,u'cube') : (
- ),
- (DR3DNS,u'extrude') : (
- ),
- (DR3DNS,u'light') : (
- ),
- (DR3DNS,u'rotate') : (
- ),
- (DR3DNS,u'scene') : (
- (DR3DNS,u'cube'),
- (DR3DNS,u'extrude'),
- (DR3DNS,u'light'),
- (DR3DNS,u'rotate'),
- (DR3DNS,u'scene'),
- (DR3DNS,u'sphere'),
- (SVGNS,u'title'),
- (SVGNS,u'desc'),
- ),
- (DR3DNS,u'sphere') : (
- ),
- (DRAWNS,u'a') : (
- (DRAWNS,u'frame'),
- ),
-# allowed_children
- (DRAWNS,u'applet') : (
- (DRAWNS,u'param'),
- ),
- (DRAWNS,u'area-circle') : (
- (OFFICENS,u'event-listeners'),
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- ),
- (DRAWNS,u'area-polygon') : (
- (OFFICENS,u'event-listeners'),
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- ),
- (DRAWNS,u'area-rectangle') : (
- (OFFICENS,u'event-listeners'),
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- ),
- (DRAWNS,u'caption') : (
- (DRAWNS,u'glue-point'),
- (OFFICENS,u'event-listeners'),
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- (TEXTNS,u'list'),
- (TEXTNS,u'p'),
- ),
- (DRAWNS,u'circle') : (
- (DRAWNS,u'glue-point'),
- (OFFICENS,u'event-listeners'),
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- (TEXTNS,u'list'),
- (TEXTNS,u'p'),
- ),
-# allowed_children
- (DRAWNS,u'connector') : (
- (DRAWNS,u'glue-point'),
- (OFFICENS,u'event-listeners'),
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- (TEXTNS,u'list'),
- (TEXTNS,u'p'),
- ),
- (DRAWNS,u'contour-path') : (
- ),
- (DRAWNS,u'contour-polygon') : (
- ),
- (DRAWNS,u'control') : (
- (DRAWNS,u'glue-point'),
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- ),
- (DRAWNS,u'custom-shape') : (
- (DRAWNS,u'enhanced-geometry'),
- (DRAWNS,u'glue-point'),
- (OFFICENS,u'event-listeners'),
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- (TEXTNS,u'list'),
- (TEXTNS,u'p'),
- ),
-# allowed_children
- (DRAWNS,u'ellipse') : (
- (DRAWNS,u'glue-point'),
- (OFFICENS,u'event-listeners'),
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- (TEXTNS,u'list'),
- (TEXTNS,u'p'),
- ),
- (DRAWNS,u'enhanced-geometry') : (
- (DRAWNS,u'equation'),
- (DRAWNS,u'handle'),
- ),
- (DRAWNS,u'equation') : (
- ),
-# allowed_children
- (DRAWNS,u'fill-image') : (
- ),
- (DRAWNS,u'floating-frame') : (
- ),
- (DRAWNS,u'frame') : (
- (DRAWNS,u'applet'),
- (DRAWNS,u'contour-path'),
- (DRAWNS,u'contour-polygon'),
- (DRAWNS,u'floating-frame'),
- (DRAWNS,u'glue-point'),
- (DRAWNS,u'image'),
- (DRAWNS,u'image-map'),
- (DRAWNS,u'object'),
- (DRAWNS,u'object-ole'),
- (DRAWNS,u'plugin'),
- (DRAWNS,u'text-box'),
- (OFFICENS,u'event-listeners'),
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- ),
-# allowed_children
- (DRAWNS,u'g') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'glue-point'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- (OFFICENS,u'event-listeners'),
- ),
- (DRAWNS,u'glue-point') : (
- ),
- (DRAWNS,u'gradient') : (
- ),
- (DRAWNS,u'handle') : (
- ),
- (DRAWNS,u'hatch') : (
- ),
-# allowed_children
- (DRAWNS,u'image') : (
- (OFFICENS,u'binary-data'),
- (TEXTNS,u'list'),
- (TEXTNS,u'p'),
- ),
- (DRAWNS,u'image-map') : (
- (DRAWNS,u'area-circle'),
- (DRAWNS,u'area-polygon'),
- (DRAWNS,u'area-rectangle'),
- ),
- (DRAWNS,u'layer') : (
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- ),
- (DRAWNS,u'layer-set') : (
- (DRAWNS,u'layer'),
- ),
- (DRAWNS,u'line') : (
- (DRAWNS,u'glue-point'),
- (OFFICENS,u'event-listeners'),
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- (TEXTNS,u'list'),
- (TEXTNS,u'p'),
- ),
- (DRAWNS,u'marker') : (
- ),
- (DRAWNS,u'measure') : (
- (DRAWNS,u'glue-point'),
- (OFFICENS,u'event-listeners'),
- (TEXTNS,u'list'),
- (TEXTNS,u'p'),
- (SVGNS,u'title'),
- (SVGNS,u'desc'),
- ),
- (DRAWNS,u'object') : (
- (MATHNS,u'math'),
- (OFFICENS,u'document'),
- ),
-# allowed_children
- (DRAWNS,u'object-ole') : (
- (OFFICENS,u'binary-data'),
- ),
- (DRAWNS,u'opacity') : (
- ),
- (DRAWNS,u'page') : (
- (ANIMNS,u'animate'),
- (ANIMNS,u'animateColor'),
- (ANIMNS,u'animateMotion'),
- (ANIMNS,u'animateTransform'),
- (ANIMNS,u'audio'),
- (ANIMNS,u'command'),
- (ANIMNS,u'iterate'),
- (ANIMNS,u'par'),
- (ANIMNS,u'seq'),
- (ANIMNS,u'set'),
- (ANIMNS,u'transitionFilter'),
- (DR3DNS,u'scene'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- (OFFICENS,u'forms'),
- (PRESENTATIONNS,u'animations'),
- (PRESENTATIONNS,u'notes'),
- ),
-# allowed_children
- (DRAWNS,u'page-thumbnail') : (
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- ),
- (DRAWNS,u'param') : (
- ),
- (DRAWNS,u'path') : (
- (DRAWNS,u'glue-point'),
- (OFFICENS,u'event-listeners'),
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- (TEXTNS,u'list'),
- (TEXTNS,u'p'),
- ),
- (DRAWNS,u'plugin') : (
- (DRAWNS,u'param'),
- ),
- (DRAWNS,u'polygon') : (
- (DRAWNS,u'glue-point'),
- (OFFICENS,u'event-listeners'),
- (SVGNS,u'title'),
- (SVGNS,u'desc'),
- (TEXTNS,u'list'),
- (TEXTNS,u'p'),
- ),
- (DRAWNS,u'polyline') : (
- (DRAWNS,u'glue-point'),
- (OFFICENS,u'event-listeners'),
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- (TEXTNS,u'list'),
- (TEXTNS,u'p'),
- ),
-# allowed_children
- (DRAWNS,u'rect') : (
- (DRAWNS,u'glue-point'),
- (OFFICENS,u'event-listeners'),
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- (TEXTNS,u'list'),
- (TEXTNS,u'p'),
- ),
- (DRAWNS,u'regular-polygon') : (
- (DRAWNS,u'glue-point'),
- (OFFICENS,u'event-listeners'),
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- (TEXTNS,u'list'),
- (TEXTNS,u'p'),
- ),
- (DRAWNS,u'stroke-dash') : (
- ),
- (DRAWNS,u'text-box') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'a'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- (TABLENS,u'table'),
- (TEXTNS,u'alphabetical-index'),
- (TEXTNS,u'bibliography'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'h'),
- (TEXTNS,u'illustration-index'),
- (TEXTNS,u'list'),
- (TEXTNS,u'numbered-paragraph'),
- (TEXTNS,u'object-index'),
- (TEXTNS,u'p'),
- (TEXTNS,u'section'),
- (TEXTNS,u'soft-page-break'),
- (TEXTNS,u'table-index'),
- (TEXTNS,u'table-of-content'),
- (TEXTNS,u'user-index'),
- ),
-# allowed_children
- (FORMNS,u'button') : (
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
- (FORMNS,u'checkbox') : (
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
- (FORMNS,u'column') : (
- (FORMNS,u'checkbox'),
- (FORMNS,u'combobox'),
- (FORMNS,u'date'),
- (FORMNS,u'formatted-text'),
- (FORMNS,u'listbox'),
- (FORMNS,u'number'),
- (FORMNS,u'text'),
- (FORMNS,u'textarea'),
- ),
- (FORMNS,u'combobox') : (
- (FORMNS,u'item'),
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
- (FORMNS,u'connection-resource') : (
- ),
- (FORMNS,u'date') : (
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
- (FORMNS,u'file') : (
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
- (FORMNS,u'fixed-text') : (
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
-# allowed_children
- (FORMNS,u'form') : (
- (FORMNS,u'button'),
- (FORMNS,u'checkbox'),
- (FORMNS,u'combobox'),
- (FORMNS,u'connection-resource'),
- (FORMNS,u'date'),
- (FORMNS,u'file'),
- (FORMNS,u'fixed-text'),
- (FORMNS,u'form'),
- (FORMNS,u'formatted-text'),
- (FORMNS,u'frame'),
- (FORMNS,u'generic-control'),
- (FORMNS,u'grid'),
- (FORMNS,u'hidden'),
- (FORMNS,u'image'),
- (FORMNS,u'image-frame'),
- (FORMNS,u'listbox'),
- (FORMNS,u'number'),
- (FORMNS,u'password'),
- (FORMNS,u'properties'),
- (FORMNS,u'radio'),
- (FORMNS,u'text'),
- (FORMNS,u'textarea'),
- (FORMNS,u'time'),
- (FORMNS,u'value-range'),
- (OFFICENS,u'event-listeners'),
- ),
- (FORMNS,u'formatted-text') : (
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
- (FORMNS,u'frame') : (
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
- (FORMNS,u'generic-control') : (
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
- (FORMNS,u'grid') : (
- (FORMNS,u'column'),
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
- (FORMNS,u'hidden') : (
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
- (FORMNS,u'image') : (
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
-# allowed_children
- (FORMNS,u'image-frame') : (
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
- (FORMNS,u'item') : (
- ),
- (FORMNS,u'list-property') : (
- (FORMNS,u'list-value'),
- (FORMNS,u'list-value'),
- (FORMNS,u'list-value'),
- (FORMNS,u'list-value'),
- (FORMNS,u'list-value'),
- (FORMNS,u'list-value'),
- (FORMNS,u'list-value'),
- ),
- (FORMNS,u'list-value') : (
- ),
- (FORMNS,u'listbox') : (
- (FORMNS,u'option'),
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
- (FORMNS,u'number') : (
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
- (FORMNS,u'option') : (
- ),
- (FORMNS,u'password') : (
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
- (FORMNS,u'properties') : (
- (FORMNS,u'list-property'),
- (FORMNS,u'property'),
- ),
- (FORMNS,u'property') : (
- ),
- (FORMNS,u'radio') : (
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
- (FORMNS,u'text') : (
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
- (FORMNS,u'textarea') : (
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- (TEXTNS,u'p'),
- ),
- (FORMNS,u'time') : (
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
- (FORMNS,u'value-range') : (
- (FORMNS,u'properties'),
- (OFFICENS,u'event-listeners'),
- ),
- (METANS,u'auto-reload') : (
- ),
- (METANS,u'creation-date') : (
- ),
- (METANS,u'date-string') : (
- ),
- (METANS,u'document-statistic') : (
- ),
- (METANS,u'editing-cycles') : (
- ),
- (METANS,u'editing-duration') : (
- ),
- (METANS,u'generator') : (
- ),
- (METANS,u'hyperlink-behaviour') : (
- ),
- (METANS,u'initial-creator') : (
- ),
- (METANS,u'keyword') : (
- ),
- (METANS,u'print-date') : (
- ),
- (METANS,u'printed-by') : (
- ),
- (METANS,u'template') : (
- ),
- (METANS,u'user-defined') : (
- ),
-# allowed_children
- (OFFICENS,u'annotation') : (
- (DCNS,u'creator'),
- (DCNS,u'date'),
- (METANS,u'date-string'),
- (TEXTNS,u'list'),
- (TEXTNS,u'p'),
- ),
- (OFFICENS,u'automatic-styles') : (
- (NUMBERNS,u'boolean-style'),
- (NUMBERNS,u'currency-style'),
- (NUMBERNS,u'date-style'),
- (NUMBERNS,u'number-style'),
- (NUMBERNS,u'percentage-style'),
- (NUMBERNS,u'text-style'),
- (NUMBERNS,u'time-style'),
- (STYLENS,u'page-layout'),
- (STYLENS,u'style'),
- (TEXTNS,u'list-style'),
- ),
- (OFFICENS,u'binary-data') : (
- ),
- (OFFICENS,u'body') : (
- (OFFICENS,u'chart'),
- (OFFICENS,u'drawing'),
- (OFFICENS,u'image'),
- (OFFICENS,u'presentation'),
- (OFFICENS,u'spreadsheet'),
- (OFFICENS,u'text'),
- ),
- (OFFICENS,u'change-info') : (
- (DCNS,u'creator'),
- (DCNS,u'date'),
- (TEXTNS,u'p'),
- ),
- (OFFICENS,u'chart') : (
- (CHARTNS,u'chart'),
- (TABLENS,u'calculation-settings'),
- (TABLENS,u'consolidation'),
- (TABLENS,u'content-validations'),
- (TABLENS,u'data-pilot-tables'),
- (TABLENS,u'database-ranges'),
- (TABLENS,u'dde-links'),
- (TABLENS,u'label-ranges'),
- (TABLENS,u'named-expressions'),
- (TEXTNS,u'alphabetical-index-auto-mark-file'),
- (TEXTNS,u'dde-connection-decls'),
- (TEXTNS,u'sequence-decls'),
- (TEXTNS,u'user-field-decls'),
- (TEXTNS,u'variable-decls'),
- ),
- (OFFICENS,u'dde-source') : (
- ),
- (OFFICENS,u'document') : (
- (OFFICENS,u'automatic-styles'),
- (OFFICENS,u'body'),
- (OFFICENS,u'font-face-decls'),
- (OFFICENS,u'master-styles'),
- (OFFICENS,u'meta'),
- (OFFICENS,u'scripts'),
- (OFFICENS,u'settings'),
- (OFFICENS,u'styles'),
- ),
- (OFFICENS,u'document-content') : (
- (OFFICENS,u'automatic-styles'),
- (OFFICENS,u'body'),
- (OFFICENS,u'font-face-decls'),
- (OFFICENS,u'scripts'),
- ),
- (OFFICENS,u'document-meta') : (
- (OFFICENS,u'meta'),
- ),
- (OFFICENS,u'document-settings') : (
- (OFFICENS,u'settings'),
- ),
- (OFFICENS,u'document-styles') : (
- (OFFICENS,u'automatic-styles'),
- (OFFICENS,u'font-face-decls'),
- (OFFICENS,u'master-styles'),
- (OFFICENS,u'styles'),
- ),
- (OFFICENS,u'drawing') : (
- (DRAWNS,u'page'),
- (TABLENS,u'calculation-settings'),
- (TABLENS,u'consolidation'),
- (TABLENS,u'content-validations'),
- (TABLENS,u'data-pilot-tables'),
- (TABLENS,u'database-ranges'),
- (TABLENS,u'dde-links'),
- (TABLENS,u'label-ranges'),
- (TABLENS,u'named-expressions'),
- (TEXTNS,u'alphabetical-index-auto-mark-file'),
- (TEXTNS,u'dde-connection-decls'),
- (TEXTNS,u'sequence-decls'),
- (TEXTNS,u'user-field-decls'),
- (TEXTNS,u'variable-decls'),
- ),
- (OFFICENS,u'event-listeners') : (
- (PRESENTATIONNS,u'event-listener'),
- (SCRIPTNS,u'event-listener'),
- ),
- (OFFICENS,u'font-face-decls') : (
- (STYLENS,u'font-face'),
- ),
-# allowed_children
- (OFFICENS,u'forms') : (
- (XFORMSNS,u'model'),
- (FORMNS,u'form'),
- ),
- (OFFICENS,u'image') : (
- (DRAWNS,u'frame'),
- ),
- (OFFICENS,u'master-styles') : (
- (DRAWNS,u'layer-set'),
- (STYLENS,u'handout-master'),
- (STYLENS,u'master-page'),
- (TABLENS,u'table-template'),
- ),
- (OFFICENS,u'meta') : (
- (DCNS,u'creator'),
- (DCNS,u'date'),
- (DCNS,u'description'),
- (DCNS,u'language'),
- (DCNS,u'subject'),
- (DCNS,u'title'),
-# Completes Dublin Core start
-# (DCNS,'contributor'),
-# (DCNS,'coverage'),
-# (DCNS,'format'),
-# (DCNS,'identifier'),
-# (DCNS,'publisher'),
-# (DCNS,'relation'),
-# (DCNS,'rights'),
-# (DCNS,'source'),
-# (DCNS,'type'),
-# Completes Dublin Core end
- (METANS,u'auto-reload'),
- (METANS,u'creation-date'),
- (METANS,u'document-statistic'),
- (METANS,u'editing-cycles'),
- (METANS,u'editing-duration'),
- (METANS,u'generator'),
- (METANS,u'hyperlink-behaviour'),
- (METANS,u'initial-creator'),
- (METANS,u'keyword'),
- (METANS,u'print-date'),
- (METANS,u'printed-by'),
- (METANS,u'template'),
- (METANS,u'user-defined'),
- ),
- (OFFICENS,u'presentation') : (
- (DRAWNS,u'page'),
- (PRESENTATIONNS,u'date-time-decl'),
- (PRESENTATIONNS,u'footer-decl'),
- (PRESENTATIONNS,u'header-decl'),
- (PRESENTATIONNS,u'settings'),
- (TABLENS,u'calculation-settings'),
- (TABLENS,u'consolidation'),
- (TABLENS,u'content-validations'),
- (TABLENS,u'data-pilot-tables'),
- (TABLENS,u'database-ranges'),
- (TABLENS,u'dde-links'),
- (TABLENS,u'label-ranges'),
- (TABLENS,u'named-expressions'),
- (TEXTNS,u'alphabetical-index-auto-mark-file'),
- (TEXTNS,u'dde-connection-decls'),
- (TEXTNS,u'sequence-decls'),
- (TEXTNS,u'user-field-decls'),
- (TEXTNS,u'variable-decls'),
- ),
-# allowed_children
- (OFFICENS,u'script') : None,
-
- (OFFICENS,u'scripts') : (
- (OFFICENS,u'event-listeners'),
- (OFFICENS,u'script'),
- ),
- (OFFICENS,u'settings') : (
- (CONFIGNS,u'config-item-set'),
- ),
- (OFFICENS,u'spreadsheet') : (
- (TABLENS,u'calculation-settings'),
- (TABLENS,u'consolidation'),
- (TABLENS,u'content-validations'),
- (TABLENS,u'data-pilot-tables'),
- (TABLENS,u'database-ranges'),
- (TABLENS,u'dde-links'),
- (TABLENS,u'label-ranges'),
- (TABLENS,u'named-expressions'),
- (TABLENS,u'table'),
- (TABLENS,u'tracked-changes'),
- (TEXTNS,u'alphabetical-index-auto-mark-file'),
- (TEXTNS,u'dde-connection-decls'),
- (TEXTNS,u'sequence-decls'),
- (TEXTNS,u'user-field-decls'),
- (TEXTNS,u'variable-decls'),
- ),
- (OFFICENS,u'styles') : (
- (NUMBERNS,u'boolean-style'),
- (NUMBERNS,u'currency-style'),
- (NUMBERNS,u'date-style'),
- (NUMBERNS,u'number-style'),
- (NUMBERNS,u'percentage-style'),
- (NUMBERNS,u'text-style'),
- (NUMBERNS,u'time-style'),
- (DRAWNS,u'fill-image'),
- (DRAWNS,u'gradient'),
- (DRAWNS,u'hatch'),
- (DRAWNS,u'marker'),
- (DRAWNS,u'opacity'),
- (DRAWNS,u'stroke-dash'),
- (STYLENS,u'default-style'),
- (STYLENS,u'presentation-page-layout'),
- (STYLENS,u'style'),
- (SVGNS,u'linearGradient'),
- (SVGNS,u'radialGradient'),
- (TEXTNS,u'bibliography-configuration'),
- (TEXTNS,u'linenumbering-configuration'),
- (TEXTNS,u'list-style'),
- (TEXTNS,u'notes-configuration'),
- (TEXTNS,u'outline-style'),
- ),
- (OFFICENS,u'text') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'a'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- (OFFICENS,u'forms'),
- (TABLENS,u'calculation-settings'),
- (TABLENS,u'consolidation'),
- (TABLENS,u'content-validations'),
- (TABLENS,u'data-pilot-tables'),
- (TABLENS,u'database-ranges'),
- (TABLENS,u'dde-links'),
- (TABLENS,u'label-ranges'),
- (TABLENS,u'named-expressions'),
- (TABLENS,u'table'),
- (TEXTNS,u'alphabetical-index'),
- (TEXTNS,u'alphabetical-index-auto-mark-file'),
- (TEXTNS,u'bibliography'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'dde-connection-decls'),
- (TEXTNS,u'h'),
- (TEXTNS,u'illustration-index'),
- (TEXTNS,u'list'),
- (TEXTNS,u'numbered-paragraph'),
- (TEXTNS,u'object-index'),
- (TEXTNS,u'p'),
- (TEXTNS,u'page-sequence'),
- (TEXTNS,u'section'),
- (TEXTNS,u'sequence-decls'),
- (TEXTNS,u'soft-page-break'),
- (TEXTNS,u'table-index'),
- (TEXTNS,u'table-of-content'),
- (TEXTNS,u'tracked-changes'),
- (TEXTNS,u'user-field-decls'),
- (TEXTNS,u'user-index'),
- (TEXTNS,u'variable-decls'),
- ),
- (PRESENTATIONNS,u'animation-group') : (
- (PRESENTATIONNS,u'dim'),
- (PRESENTATIONNS,u'hide-shape'),
- (PRESENTATIONNS,u'hide-text'),
- (PRESENTATIONNS,u'play'),
- (PRESENTATIONNS,u'show-shape'),
- (PRESENTATIONNS,u'show-text'),
- ),
- (PRESENTATIONNS,u'animations') : (
- (PRESENTATIONNS,u'animation-group'),
- (PRESENTATIONNS,u'dim'),
- (PRESENTATIONNS,u'hide-shape'),
- (PRESENTATIONNS,u'hide-text'),
- (PRESENTATIONNS,u'play'),
- (PRESENTATIONNS,u'show-shape'),
- (PRESENTATIONNS,u'show-text'),
- ),
- (PRESENTATIONNS,u'date-time') : (
- ),
- (PRESENTATIONNS,u'date-time-decl') : (
- ),
- (PRESENTATIONNS,u'dim') : (
- (PRESENTATIONNS,u'sound'),
- ),
- (PRESENTATIONNS,u'event-listener') : (
- (PRESENTATIONNS,u'sound'),
- ),
- (PRESENTATIONNS,u'footer') : (
- ),
- (PRESENTATIONNS,u'footer-decl') : (
- ),
- (PRESENTATIONNS,u'header') : (
- ),
- (PRESENTATIONNS,u'header-decl') : (
- ),
- (PRESENTATIONNS,u'hide-shape') : (
- (PRESENTATIONNS,u'sound'),
- ),
- (PRESENTATIONNS,u'hide-text') : (
- (PRESENTATIONNS,u'sound'),
- ),
-# allowed_children
- (PRESENTATIONNS,u'notes') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- (OFFICENS,u'forms'),
- ),
- (PRESENTATIONNS,u'placeholder') : (
- ),
- (PRESENTATIONNS,u'play') : (
- ),
- (PRESENTATIONNS,u'settings') : (
- (PRESENTATIONNS,u'show'),
- ),
- (PRESENTATIONNS,u'show') : (
- ),
- (PRESENTATIONNS,u'show-shape') : (
- (PRESENTATIONNS,u'sound'),
- ),
- (PRESENTATIONNS,u'show-text') : (
- (PRESENTATIONNS,u'sound'),
- ),
- (PRESENTATIONNS,u'sound') : (
- ),
- (SCRIPTNS,u'event-listener') : (
- ),
- (STYLENS,u'background-image') : (
- (OFFICENS,u'binary-data'),
- ),
- (STYLENS,u'chart-properties') : (
- (CHARTNS,u'symbol-image'),
- ),
- (STYLENS,u'column') : (
- ),
- (STYLENS,u'column-sep') : (
- ),
- (STYLENS,u'columns') : (
- (STYLENS,u'column'),
- (STYLENS,u'column-sep'),
- ),
- (STYLENS,u'default-style') : (
- (STYLENS,u'chart-properties'),
- (STYLENS,u'drawing-page-properties'),
- (STYLENS,u'graphic-properties'),
- (STYLENS,u'paragraph-properties'),
- (STYLENS,u'ruby-properties'),
- (STYLENS,u'section-properties'),
- (STYLENS,u'table-cell-properties'),
- (STYLENS,u'table-column-properties'),
- (STYLENS,u'table-properties'),
- (STYLENS,u'table-row-properties'),
- (STYLENS,u'text-properties'),
- ),
- (STYLENS,u'drawing-page-properties') : (
- (PRESENTATIONNS,u'sound'),
- ),
- (STYLENS,u'drop-cap') : (
- ),
- (STYLENS,u'font-face') : (
- (SVGNS,u'definition-src'),
- (SVGNS,u'font-face-src'),
- ),
- (STYLENS,u'footer') : (
- (STYLENS,u'region-center'),
- (STYLENS,u'region-left'),
- (STYLENS,u'region-right'),
- (TABLENS,u'table'),
- (TEXTNS,u'alphabetical-index'),
- (TEXTNS,u'alphabetical-index-auto-mark-file'),
- (TEXTNS,u'bibliography'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'dde-connection-decls'),
- (TEXTNS,u'h'),
- (TEXTNS,u'illustration-index'),
- (TEXTNS,u'index-title'),
- (TEXTNS,u'list'),
- (TEXTNS,u'object-index'),
- (TEXTNS,u'p'),
- (TEXTNS,u'section'),
- (TEXTNS,u'sequence-decls'),
- (TEXTNS,u'table-index'),
- (TEXTNS,u'table-of-content'),
- (TEXTNS,u'tracked-changes'),
- (TEXTNS,u'user-field-decls'),
- (TEXTNS,u'user-index'),
- (TEXTNS,u'variable-decls'),
- ),
-# allowed_children
- (STYLENS,u'footer-left') : (
- (STYLENS,u'region-center'),
- (STYLENS,u'region-left'),
- (STYLENS,u'region-right'),
- (TABLENS,u'table'),
- (TEXTNS,u'alphabetical-index'),
- (TEXTNS,u'alphabetical-index-auto-mark-file'),
- (TEXTNS,u'bibliography'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'dde-connection-decls'),
- (TEXTNS,u'h'),
- (TEXTNS,u'illustration-index'),
- (TEXTNS,u'index-title'),
- (TEXTNS,u'list'),
- (TEXTNS,u'object-index'),
- (TEXTNS,u'p'),
- (TEXTNS,u'section'),
- (TEXTNS,u'sequence-decls'),
- (TEXTNS,u'table-index'),
- (TEXTNS,u'table-of-content'),
- (TEXTNS,u'tracked-changes'),
- (TEXTNS,u'user-field-decls'),
- (TEXTNS,u'user-index'),
- (TEXTNS,u'variable-decls'),
- ),
- (STYLENS,u'footer-style') : (
- (STYLENS,u'header-footer-properties'),
- ),
- (STYLENS,u'footnote-sep') : (
- ),
- (STYLENS,u'graphic-properties') : (
- (STYLENS,u'background-image'),
- (STYLENS,u'columns'),
- (TEXTNS,u'list-style'),
- ),
-# allowed_children
- (STYLENS,u'handout-master') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- ),
- (STYLENS,u'header') : (
- (STYLENS,u'region-center'),
- (STYLENS,u'region-left'),
- (STYLENS,u'region-right'),
- (TABLENS,u'table'),
- (TEXTNS,u'alphabetical-index'),
- (TEXTNS,u'alphabetical-index-auto-mark-file'),
- (TEXTNS,u'bibliography'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'dde-connection-decls'),
- (TEXTNS,u'h'),
- (TEXTNS,u'illustration-index'),
- (TEXTNS,u'index-title'),
- (TEXTNS,u'list'),
- (TEXTNS,u'object-index'),
- (TEXTNS,u'p'),
- (TEXTNS,u'section'),
- (TEXTNS,u'sequence-decls'),
- (TEXTNS,u'table-index'),
- (TEXTNS,u'table-of-content'),
- (TEXTNS,u'tracked-changes'),
- (TEXTNS,u'user-field-decls'),
- (TEXTNS,u'user-index'),
- (TEXTNS,u'variable-decls'),
- ),
-# allowed_children
- (STYLENS,u'header-footer-properties') : (
- (STYLENS,u'background-image'),
- ),
- (STYLENS,u'header-left') : (
- (STYLENS,u'region-center'),
- (STYLENS,u'region-left'),
- (STYLENS,u'region-right'),
- (TABLENS,u'table'),
- (TEXTNS,u'alphabetical-index'),
- (TEXTNS,u'alphabetical-index-auto-mark-file'),
- (TEXTNS,u'bibliography'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'dde-connection-decls'),
- (TEXTNS,u'h'),
- (TEXTNS,u'illustration-index'),
- (TEXTNS,u'index-title'),
- (TEXTNS,u'list'),
- (TEXTNS,u'object-index'),
- (TEXTNS,u'p'),
- (TEXTNS,u'section'),
- (TEXTNS,u'sequence-decls'),
- (TEXTNS,u'table-index'),
- (TEXTNS,u'table-of-content'),
- (TEXTNS,u'tracked-changes'),
- (TEXTNS,u'user-field-decls'),
- (TEXTNS,u'user-index'),
- (TEXTNS,u'variable-decls'),
- ),
- (STYLENS,u'header-style') : (
- (STYLENS,u'header-footer-properties'),
- ),
- (STYLENS,u'list-level-properties') : (
- ),
- (STYLENS,u'map') : (
- ),
- (STYLENS,u'master-page') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- (OFFICENS,u'forms'),
- (PRESENTATIONNS,u'notes'),
- (STYLENS,u'footer'),
- (STYLENS,u'footer-left'),
- (STYLENS,u'header'),
- (STYLENS,u'header-left'),
- (STYLENS,u'style'),
- ),
- (STYLENS,u'page-layout') : (
- (STYLENS,u'footer-style'),
- (STYLENS,u'header-style'),
- (STYLENS,u'page-layout-properties'),
- ),
- (STYLENS,u'page-layout-properties') : (
- (STYLENS,u'background-image'),
- (STYLENS,u'columns'),
- (STYLENS,u'footnote-sep'),
- ),
-# allowed_children
- (STYLENS,u'paragraph-properties') : (
- (STYLENS,u'background-image'),
- (STYLENS,u'drop-cap'),
- (STYLENS,u'tab-stops'),
- ),
- (STYLENS,u'presentation-page-layout') : (
- (PRESENTATIONNS,u'placeholder'),
- ),
- (STYLENS,u'region-center') : (
- (TEXTNS,u'p'),
- ),
- (STYLENS,u'region-left') : (
- (TEXTNS,u'p'),
- ),
- (STYLENS,u'region-right') : (
- (TEXTNS,u'p'),
- ),
- (STYLENS,u'ruby-properties') : (
- ),
- (STYLENS,u'section-properties') : (
- (STYLENS,u'background-image'),
- (STYLENS,u'columns'),
- (TEXTNS,u'notes-configuration'),
- ),
- (STYLENS,u'style') : (
- (STYLENS,u'chart-properties'),
- (STYLENS,u'drawing-page-properties'),
- (STYLENS,u'graphic-properties'),
- (STYLENS,u'map'),
- (STYLENS,u'paragraph-properties'),
- (STYLENS,u'ruby-properties'),
- (STYLENS,u'section-properties'),
- (STYLENS,u'table-cell-properties'),
- (STYLENS,u'table-column-properties'),
- (STYLENS,u'table-properties'),
- (STYLENS,u'table-row-properties'),
- (STYLENS,u'text-properties'),
- ),
- (STYLENS,u'tab-stop') : (
- ),
- (STYLENS,u'tab-stops') : (
- (STYLENS,u'tab-stop'),
- ),
-# allowed_children
- (STYLENS,u'table-cell-properties') : (
- (STYLENS,u'background-image'),
- ),
- (STYLENS,u'table-column-properties') : (
- ),
- (STYLENS,u'table-properties') : (
- (STYLENS,u'background-image'),
- ),
- (STYLENS,u'table-row-properties') : (
- (STYLENS,u'background-image'),
- ),
- (STYLENS,u'text-properties') : (
- ),
- (SVGNS,u'definition-src') : (
- ),
- (SVGNS,u'desc') : (
- ),
- (SVGNS,u'font-face-format') : (
- ),
- (SVGNS,u'font-face-name') : (
- ),
- (SVGNS,u'font-face-src') : (
- (SVGNS,u'font-face-name'),
- (SVGNS,u'font-face-uri'),
- ),
- (SVGNS,u'font-face-uri') : (
- (SVGNS,u'font-face-format'),
- ),
- (SVGNS,u'linearGradient') : (
- (SVGNS,u'stop'),
- ),
- (SVGNS,u'radialGradient') : (
- (SVGNS,u'stop'),
- ),
- (SVGNS,u'stop') : (
- ),
- (SVGNS,u'title') : (
- ),
- (TABLENS,u'body') : (
- ),
- (TABLENS,u'calculation-settings') : (
- (TABLENS,u'iteration'),
- (TABLENS,u'null-date'),
- ),
-# allowed_children
- (TABLENS,u'cell-address') : (
- ),
- (TABLENS,u'cell-content-change') : (
- (OFFICENS,u'change-info'),
- (TABLENS,u'cell-address'),
- (TABLENS,u'deletions'),
- (TABLENS,u'dependencies'),
- (TABLENS,u'previous'),
- ),
- (TABLENS,u'cell-content-deletion') : (
- (TABLENS,u'cell-address'),
- (TABLENS,u'change-track-table-cell'),
- ),
- (TABLENS,u'cell-range-source') : (
- ),
- (TABLENS,u'change-deletion') : (
- ),
- (TABLENS,u'change-track-table-cell') : (
- (TEXTNS,u'p'),
- ),
- (TABLENS,u'consolidation') : (
- ),
- (TABLENS,u'content-validation') : (
- (OFFICENS,u'event-listeners'),
- (TABLENS,u'error-macro'),
- (TABLENS,u'error-message'),
- (TABLENS,u'help-message'),
- ),
-# allowed_children
- (TABLENS,u'content-validations') : (
- (TABLENS,u'content-validation'),
- ),
- (TABLENS,u'covered-table-cell') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'a'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- (OFFICENS,u'annotation'),
- (TABLENS,u'cell-range-source'),
- (TABLENS,u'detective'),
- (TABLENS,u'table'),
- (TEXTNS,u'alphabetical-index'),
- (TEXTNS,u'bibliography'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'h'),
- (TEXTNS,u'illustration-index'),
- (TEXTNS,u'list'),
- (TEXTNS,u'numbered-paragraph'),
- (TEXTNS,u'object-index'),
- (TEXTNS,u'p'),
- (TEXTNS,u'section'),
- (TEXTNS,u'soft-page-break'),
- (TEXTNS,u'table-index'),
- (TEXTNS,u'table-of-content'),
- (TEXTNS,u'user-index'),
- ),
-# allowed_children
- (TABLENS,u'cut-offs') : (
- (TABLENS,u'insertion-cut-off'),
- (TABLENS,u'movement-cut-off'),
- ),
- (TABLENS,u'data-pilot-display-info') : (
- ),
- (TABLENS,u'data-pilot-field') : (
- (TABLENS,u'data-pilot-field-reference'),
- (TABLENS,u'data-pilot-groups'),
- (TABLENS,u'data-pilot-level'),
- ),
- (TABLENS,u'data-pilot-field-reference') : (
- ),
- (TABLENS,u'data-pilot-group') : (
- (TABLENS,u'data-pilot-group-member'),
- ),
- (TABLENS,u'data-pilot-group-member') : (
- ),
- (TABLENS,u'data-pilot-groups') : (
- (TABLENS,u'data-pilot-group'),
- ),
- (TABLENS,u'data-pilot-layout-info') : (
- ),
- (TABLENS,u'data-pilot-level') : (
- (TABLENS,u'data-pilot-display-info'),
- (TABLENS,u'data-pilot-layout-info'),
- (TABLENS,u'data-pilot-members'),
- (TABLENS,u'data-pilot-sort-info'),
- (TABLENS,u'data-pilot-subtotals'),
- ),
- (TABLENS,u'data-pilot-member') : (
- ),
- (TABLENS,u'data-pilot-members') : (
- (TABLENS,u'data-pilot-member'),
- ),
- (TABLENS,u'data-pilot-sort-info') : (
- ),
- (TABLENS,u'data-pilot-subtotal') : (
- ),
- (TABLENS,u'data-pilot-subtotals') : (
- (TABLENS,u'data-pilot-subtotal'),
- ),
-# allowed_children
- (TABLENS,u'data-pilot-table') : (
- (TABLENS,u'data-pilot-field'),
- (TABLENS,u'database-source-query'),
- (TABLENS,u'database-source-sql'),
- (TABLENS,u'database-source-table'),
- (TABLENS,u'source-cell-range'),
- (TABLENS,u'source-service'),
- ),
- (TABLENS,u'data-pilot-tables') : (
- (TABLENS,u'data-pilot-table'),
- ),
- (TABLENS,u'database-range') : (
- (TABLENS,u'database-source-query'),
- (TABLENS,u'database-source-sql'),
- (TABLENS,u'database-source-table'),
- (TABLENS,u'filter'),
- (TABLENS,u'sort'),
- (TABLENS,u'subtotal-rules'),
- ),
- (TABLENS,u'database-ranges') : (
- (TABLENS,u'database-range'),
- ),
- (TABLENS,u'database-source-query') : (
- ),
- (TABLENS,u'database-source-sql') : (
- ),
- (TABLENS,u'database-source-table') : (
- ),
-# allowed_children
- (TABLENS,u'dde-link') : (
- (OFFICENS,u'dde-source'),
- (TABLENS,u'table'),
- ),
- (TABLENS,u'dde-links') : (
- (TABLENS,u'dde-link'),
- ),
- (TABLENS,u'deletion') : (
- (OFFICENS,u'change-info'),
- (TABLENS,u'cut-offs'),
- (TABLENS,u'deletions'),
- (TABLENS,u'dependencies'),
- ),
- (TABLENS,u'deletions') : (
- (TABLENS,u'cell-content-deletion'),
- (TABLENS,u'change-deletion'),
- ),
- (TABLENS,u'dependencies') : (
- (TABLENS,u'dependency'),
- ),
- (TABLENS,u'dependency') : (
- ),
- (TABLENS,u'detective') : (
- (TABLENS,u'highlighted-range'),
- (TABLENS,u'operation'),
- ),
-# allowed_children
- (TABLENS,u'error-macro') : (
- ),
- (TABLENS,u'error-message') : (
- (TEXTNS,u'p'),
- ),
- (TABLENS,u'even-columns') : (
- ),
- (TABLENS,u'even-rows') : (
- ),
- (TABLENS,u'filter') : (
- (TABLENS,u'filter-and'),
- (TABLENS,u'filter-condition'),
- (TABLENS,u'filter-or'),
- ),
- (TABLENS,u'filter-and') : (
- (TABLENS,u'filter-condition'),
- (TABLENS,u'filter-or'),
- ),
- (TABLENS,u'filter-condition') : (
- ),
- (TABLENS,u'filter-or') : (
- (TABLENS,u'filter-and'),
- (TABLENS,u'filter-condition'),
- ),
-# allowed_children
- (TABLENS,u'first-column') : (
- ),
- (TABLENS,u'first-row') : (
- ),
- (TABLENS,u'help-message') : (
- (TEXTNS,u'p'),
- ),
- (TABLENS,u'highlighted-range') : (
- ),
- (TABLENS,u'insertion') : (
- (OFFICENS,u'change-info'),
- (TABLENS,u'deletions'),
- (TABLENS,u'dependencies'),
- ),
- (TABLENS,u'insertion-cut-off') : (
- ),
- (TABLENS,u'iteration') : (
- ),
- (TABLENS,u'label-range') : (
- ),
- (TABLENS,u'label-ranges') : (
- (TABLENS,u'label-range'),
- ),
- (TABLENS,u'last-column') : (
- ),
- (TABLENS,u'last-row') : (
- ),
- (TABLENS,u'movement') : (
- (OFFICENS,u'change-info'),
- (TABLENS,u'deletions'),
- (TABLENS,u'dependencies'),
- (TABLENS,u'source-range-address'),
- (TABLENS,u'target-range-address'),
- ),
- (TABLENS,u'movement-cut-off') : (
- ),
- (TABLENS,u'named-expression') : (
- ),
- (TABLENS,u'named-expressions') : (
- (TABLENS,u'named-expression'),
- (TABLENS,u'named-range'),
- ),
-# allowed_children
- (TABLENS,u'named-range') : (
- ),
- (TABLENS,u'null-date') : (
- ),
- (TABLENS,u'odd-columns') : (
- ),
- (TABLENS,u'odd-rows') : (
- ),
- (TABLENS,u'operation') : (
- ),
- (TABLENS,u'previous') : (
- (TABLENS,u'change-track-table-cell'),
- ),
- (TABLENS,u'scenario') : (
- ),
- (TABLENS,u'shapes') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- ),
-# allowed_children
- (TABLENS,u'sort') : (
- (TABLENS,u'sort-by'),
- ),
- (TABLENS,u'sort-by') : (
- ),
- (TABLENS,u'sort-groups') : (
- ),
- (TABLENS,u'source-cell-range') : (
- (TABLENS,u'filter'),
- ),
- (TABLENS,u'source-range-address') : (
- ),
- (TABLENS,u'source-service') : (
- ),
- (TABLENS,u'subtotal-field') : (
- ),
- (TABLENS,u'subtotal-rule') : (
- (TABLENS,u'subtotal-field'),
- ),
- (TABLENS,u'subtotal-rules') : (
- (TABLENS,u'sort-groups'),
- (TABLENS,u'subtotal-rule'),
- ),
-# allowed_children
- (TABLENS,u'table') : (
- (OFFICENS,u'dde-source'),
- (OFFICENS,u'forms'),
- (TEXTNS,u'soft-page-break'),
- (TABLENS,u'scenario'),
- (TABLENS,u'shapes'),
- (TABLENS,u'table-column'),
- (TABLENS,u'table-column-group'),
- (TABLENS,u'table-columns'),
- (TABLENS,u'table-header-columns'),
- (TABLENS,u'table-header-rows'),
- (TABLENS,u'table-row'),
- (TABLENS,u'table-row-group'),
- (TABLENS,u'table-rows'),
- (TABLENS,u'table-source'),
- ),
- (TABLENS,u'table-cell') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'a'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- (OFFICENS,u'annotation'),
- (TABLENS,u'cell-range-source'),
- (TABLENS,u'detective'),
- (TABLENS,u'table'),
- (TEXTNS,u'alphabetical-index'),
- (TEXTNS,u'bibliography'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'h'),
- (TEXTNS,u'illustration-index'),
- (TEXTNS,u'list'),
- (TEXTNS,u'numbered-paragraph'),
- (TEXTNS,u'object-index'),
- (TEXTNS,u'p'),
- (TEXTNS,u'section'),
- (TEXTNS,u'soft-page-break'),
- (TEXTNS,u'table-index'),
- (TEXTNS,u'table-of-content'),
- (TEXTNS,u'user-index'),
- ),
-# allowed_children
- (TABLENS,u'table-column') : (
- ),
- (TABLENS,u'table-column-group') : (
- (TABLENS,u'table-column'),
- (TABLENS,u'table-column-group'),
- (TABLENS,u'table-columns'),
- (TABLENS,u'table-header-columns'),
- ),
- (TABLENS,u'table-columns') : (
- (TABLENS,u'table-column'),
- ),
- (TABLENS,u'table-header-columns') : (
- (TABLENS,u'table-column'),
- ),
- (TABLENS,u'table-header-rows') : (
- (TABLENS,u'table-row'),
- (TEXTNS,u'soft-page-break'),
- ),
- (TABLENS,u'table-row') : (
- (TABLENS,u'covered-table-cell'),
- (TABLENS,u'table-cell'),
- ),
- (TABLENS,u'table-row-group') : (
- (TABLENS,u'table-header-rows'),
- (TABLENS,u'table-row'),
- (TABLENS,u'table-row-group'),
- (TABLENS,u'table-rows'),
- (TEXTNS,u'soft-page-break'),
- ),
- (TABLENS,u'table-rows') : (
- (TABLENS,u'table-row'),
- (TEXTNS,u'soft-page-break'),
- ),
-# allowed_children
- (TABLENS,u'table-source') : (
- ),
- (TABLENS,u'table-template') : (
- (TABLENS,u'body'),
- (TABLENS,u'even-columns'),
- (TABLENS,u'even-rows'),
- (TABLENS,u'first-column'),
- (TABLENS,u'first-row'),
- (TABLENS,u'last-column'),
- (TABLENS,u'last-row'),
- (TABLENS,u'odd-columns'),
- (TABLENS,u'odd-rows'),
- ),
- (TABLENS,u'target-range-address') : (
- ),
- (TABLENS,u'tracked-changes') : (
- (TABLENS,u'cell-content-change'),
- (TABLENS,u'deletion'),
- (TABLENS,u'insertion'),
- (TABLENS,u'movement'),
- ),
-# allowed_children
- (TEXTNS,u'a') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'a'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- (OFFICENS,u'annotation'),
- (OFFICENS,u'event-listeners'),
- (PRESENTATIONNS,u'date-time'),
- (PRESENTATIONNS,u'footer'),
- (PRESENTATIONNS,u'header'),
- (TEXTNS,u'a'),
- (TEXTNS,u'alphabetical-index-mark'),
- (TEXTNS,u'alphabetical-index-mark-end'),
- (TEXTNS,u'alphabetical-index-mark-start'),
- (TEXTNS,u'author-initials'),
- (TEXTNS,u'author-name'),
- (TEXTNS,u'bibliography-mark'),
- (TEXTNS,u'bookmark'),
- (TEXTNS,u'bookmark-end'),
- (TEXTNS,u'bookmark-ref'),
- (TEXTNS,u'bookmark-start'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'chapter'),
- (TEXTNS,u'conditional-text'),
- (TEXTNS,u'creation-date'),
- (TEXTNS,u'creation-time'),
- (TEXTNS,u'creator'),
- (TEXTNS,u'database-display'),
- (TEXTNS,u'database-name'),
- (TEXTNS,u'database-next'),
- (TEXTNS,u'database-row-number'),
- (TEXTNS,u'database-row-select'),
- (TEXTNS,u'date'),
- (TEXTNS,u'dde-connection'),
- (TEXTNS,u'description'),
- (TEXTNS,u'editing-cycles'),
- (TEXTNS,u'editing-duration'),
- (TEXTNS,u'execute-macro'),
- (TEXTNS,u'expression'),
- (TEXTNS,u'file-name'),
- (TEXTNS,u'hidden-paragraph'),
- (TEXTNS,u'hidden-text'),
- (TEXTNS,u'initial-creator'),
- (TEXTNS,u'keywords'),
- (TEXTNS,u'line-break'),
- (TEXTNS,u'measure'),
- (TEXTNS,u'modification-date'),
- (TEXTNS,u'modification-time'),
- (TEXTNS,u'note'),
- (TEXTNS,u'note-ref'),
- (TEXTNS,u'page-count'),
- (TEXTNS,u'paragraph-count'),
- (TEXTNS,u'word-count'),
- (TEXTNS,u'character-count'),
- (TEXTNS,u'table-count'),
- (TEXTNS,u'image-count'),
- (TEXTNS,u'object-count'),
- (TEXTNS,u'page-continuation'),
- (TEXTNS,u'page-number'),
- (TEXTNS,u'page-variable-get'),
- (TEXTNS,u'page-variable-set'),
- (TEXTNS,u'placeholder'),
- (TEXTNS,u'print-date'),
- (TEXTNS,u'print-time'),
- (TEXTNS,u'printed-by'),
- (TEXTNS,u'reference-mark'),
- (TEXTNS,u'reference-mark-end'),
- (TEXTNS,u'reference-mark-start'),
- (TEXTNS,u'reference-ref'),
- (TEXTNS,u'ruby'),
- (TEXTNS,u's'),
- (TEXTNS,u'script'),
- (TEXTNS,u'sender-city'),
- (TEXTNS,u'sender-company'),
- (TEXTNS,u'sender-country'),
- (TEXTNS,u'sender-email'),
- (TEXTNS,u'sender-fax'),
- (TEXTNS,u'sender-firstname'),
- (TEXTNS,u'sender-initials'),
- (TEXTNS,u'sender-lastname'),
- (TEXTNS,u'sender-phone-private'),
- (TEXTNS,u'sender-phone-work'),
- (TEXTNS,u'sender-position'),
- (TEXTNS,u'sender-postal-code'),
- (TEXTNS,u'sender-state-or-province'),
- (TEXTNS,u'sender-street'),
- (TEXTNS,u'sender-title'),
- (TEXTNS,u'sequence'),
- (TEXTNS,u'sequence-ref'),
- (TEXTNS,u'sheet-name'),
- (TEXTNS,u'soft-page-break'),
- (TEXTNS,u'span'),
- (TEXTNS,u'subject'),
- (TEXTNS,u'tab'),
- (TEXTNS,u'table-formula'),
- (TEXTNS,u'template-name'),
- (TEXTNS,u'text-input'),
- (TEXTNS,u'time'),
- (TEXTNS,u'title'),
- (TEXTNS,u'toc-mark'),
- (TEXTNS,u'toc-mark-end'),
- (TEXTNS,u'toc-mark-start'),
- (TEXTNS,u'user-defined'),
- (TEXTNS,u'user-field-get'),
- (TEXTNS,u'user-field-input'),
- (TEXTNS,u'user-index-mark'),
- (TEXTNS,u'user-index-mark-end'),
- (TEXTNS,u'user-index-mark-start'),
- (TEXTNS,u'variable-get'),
- (TEXTNS,u'variable-input'),
- (TEXTNS,u'variable-set'),
- ),
-# allowed_children
- (TEXTNS,u'alphabetical-index') : (
- (TEXTNS,u'alphabetical-index-source'),
- (TEXTNS,u'index-body'),
- ),
- (TEXTNS,u'alphabetical-index-auto-mark-file') : (
- ),
- (TEXTNS,u'alphabetical-index-entry-template') : (
- (TEXTNS,u'index-entry-chapter'),
- (TEXTNS,u'index-entry-page-number'),
- (TEXTNS,u'index-entry-span'),
- (TEXTNS,u'index-entry-tab-stop'),
- (TEXTNS,u'index-entry-text'),
- ),
- (TEXTNS,u'alphabetical-index-mark') : (
- ),
- (TEXTNS,u'alphabetical-index-mark-end') : (
- ),
- (TEXTNS,u'alphabetical-index-mark-start') : (
- ),
- (TEXTNS,u'alphabetical-index-source') : (
- (TEXTNS,u'alphabetical-index-entry-template'),
- (TEXTNS,u'index-title-template'),
- ),
- (TEXTNS,u'author-initials') : (
- ),
- (TEXTNS,u'author-name') : (
- ),
- (TEXTNS,u'bibliography') : (
- (TEXTNS,u'bibliography-source'),
- (TEXTNS,u'index-body'),
- ),
- (TEXTNS,u'bibliography-configuration') : (
- (TEXTNS,u'sort-key'),
- ),
- (TEXTNS,u'bibliography-entry-template') : (
- (TEXTNS,u'index-entry-bibliography'),
- (TEXTNS,u'index-entry-span'),
- (TEXTNS,u'index-entry-tab-stop'),
- ),
-# allowed_children
- (TEXTNS,u'bibliography-mark') : (
- ),
- (TEXTNS,u'bibliography-source') : (
- (TEXTNS,u'bibliography-entry-template'),
- (TEXTNS,u'index-title-template'),
- ),
- (TEXTNS,u'bookmark') : (
- ),
- (TEXTNS,u'bookmark-end') : (
- ),
- (TEXTNS,u'bookmark-ref') : (
- ),
- (TEXTNS,u'bookmark-start') : (
- ),
- (TEXTNS,u'change') : (
- ),
- (TEXTNS,u'change-end') : (
- ),
- (TEXTNS,u'change-start') : (
- ),
- (TEXTNS,u'changed-region') : (
- (TEXTNS,u'deletion'),
- (TEXTNS,u'format-change'),
- (TEXTNS,u'insertion'),
- ),
- (TEXTNS,u'chapter') : (
- ),
- (TEXTNS,u'character-count') : (
- ),
- (TEXTNS,u'conditional-text') : (
- ),
- (TEXTNS,u'creation-date') : (
- ),
- (TEXTNS,u'creation-time') : (
- ),
- (TEXTNS,u'creator') : (
- ),
- (TEXTNS,u'database-display') : (
- (FORMNS,u'connection-resource'),
- ),
- (TEXTNS,u'database-name') : (
- (FORMNS,u'connection-resource'),
- ),
- (TEXTNS,u'database-next') : (
- (FORMNS,u'connection-resource'),
- ),
- (TEXTNS,u'database-row-number') : (
- (FORMNS,u'connection-resource'),
- ),
- (TEXTNS,u'database-row-select') : (
- (FORMNS,u'connection-resource'),
- ),
- (TEXTNS,u'date') : (
- ),
- (TEXTNS,u'dde-connection') : (
- ),
- (TEXTNS,u'dde-connection-decl') : (
- ),
- (TEXTNS,u'dde-connection-decls') : (
- (TEXTNS,u'dde-connection-decl'),
- ),
-# allowed_children
- (TEXTNS,u'deletion') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'a'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- (OFFICENS,u'change-info'),
- (TABLENS,u'table'),
- (TEXTNS,u'alphabetical-index'),
- (TEXTNS,u'bibliography'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'h'),
- (TEXTNS,u'illustration-index'),
- (TEXTNS,u'list'),
- (TEXTNS,u'numbered-paragraph'),
- (TEXTNS,u'object-index'),
- (TEXTNS,u'p'),
- (TEXTNS,u'section'),
- (TEXTNS,u'soft-page-break'),
- (TEXTNS,u'table-index'),
- (TEXTNS,u'table-of-content'),
- (TEXTNS,u'user-index'),
- ),
- (TEXTNS,u'description') : (
- ),
- (TEXTNS,u'editing-cycles') : (
- ),
- (TEXTNS,u'editing-duration') : (
- ),
- (TEXTNS,u'execute-macro') : (
- (OFFICENS,u'event-listeners'),
- ),
- (TEXTNS,u'expression') : (
- ),
- (TEXTNS,u'file-name') : (
- ),
- (TEXTNS,u'format-change') : (
- (OFFICENS,u'change-info'),
- ),
-# allowed_children
- (TEXTNS,u'h') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'a'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- (OFFICENS,u'annotation'),
- (PRESENTATIONNS,u'date-time'),
- (PRESENTATIONNS,u'footer'),
- (PRESENTATIONNS,u'header'),
- (TEXTNS,u'a'),
- (TEXTNS,u'alphabetical-index-mark'),
- (TEXTNS,u'alphabetical-index-mark-end'),
- (TEXTNS,u'alphabetical-index-mark-start'),
- (TEXTNS,u'author-initials'),
- (TEXTNS,u'author-name'),
- (TEXTNS,u'bibliography-mark'),
- (TEXTNS,u'bookmark'),
- (TEXTNS,u'bookmark-end'),
- (TEXTNS,u'bookmark-ref'),
- (TEXTNS,u'bookmark-start'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'chapter'),
- (TEXTNS,u'conditional-text'),
- (TEXTNS,u'creation-date'),
- (TEXTNS,u'creation-time'),
- (TEXTNS,u'creator'),
- (TEXTNS,u'database-display'),
- (TEXTNS,u'database-name'),
- (TEXTNS,u'database-next'),
- (TEXTNS,u'database-row-number'),
- (TEXTNS,u'database-row-select'),
- (TEXTNS,u'date'),
- (TEXTNS,u'dde-connection'),
- (TEXTNS,u'description'),
- (TEXTNS,u'editing-cycles'),
- (TEXTNS,u'editing-duration'),
- (TEXTNS,u'execute-macro'),
- (TEXTNS,u'expression'),
- (TEXTNS,u'file-name'),
- (TEXTNS,u'hidden-paragraph'),
- (TEXTNS,u'hidden-text'),
- (TEXTNS,u'initial-creator'),
- (TEXTNS,u'keywords'),
- (TEXTNS,u'line-break'),
- (TEXTNS,u'measure'),
- (TEXTNS,u'modification-date'),
- (TEXTNS,u'modification-time'),
- (TEXTNS,u'note'),
- (TEXTNS,u'note-ref'),
- (TEXTNS,u'number'),
- (TEXTNS,u'page-count'),
- (TEXTNS,u'paragraph-count'),
- (TEXTNS,u'word-count'),
- (TEXTNS,u'character-count'),
- (TEXTNS,u'table-count'),
- (TEXTNS,u'image-count'),
- (TEXTNS,u'object-count'),
- (TEXTNS,u'page-continuation'),
- (TEXTNS,u'page-number'),
- (TEXTNS,u'page-variable-get'),
- (TEXTNS,u'page-variable-set'),
- (TEXTNS,u'placeholder'),
- (TEXTNS,u'print-date'),
- (TEXTNS,u'print-time'),
- (TEXTNS,u'printed-by'),
- (TEXTNS,u'reference-mark'),
- (TEXTNS,u'reference-mark-end'),
- (TEXTNS,u'reference-mark-start'),
- (TEXTNS,u'reference-ref'),
- (TEXTNS,u'ruby'),
- (TEXTNS,u's'),
- (TEXTNS,u'script'),
- (TEXTNS,u'sender-city'),
- (TEXTNS,u'sender-company'),
- (TEXTNS,u'sender-country'),
- (TEXTNS,u'sender-email'),
- (TEXTNS,u'sender-fax'),
- (TEXTNS,u'sender-firstname'),
- (TEXTNS,u'sender-initials'),
- (TEXTNS,u'sender-lastname'),
- (TEXTNS,u'sender-phone-private'),
- (TEXTNS,u'sender-phone-work'),
- (TEXTNS,u'sender-position'),
- (TEXTNS,u'sender-postal-code'),
- (TEXTNS,u'sender-state-or-province'),
- (TEXTNS,u'sender-street'),
- (TEXTNS,u'sender-title'),
- (TEXTNS,u'sequence'),
- (TEXTNS,u'sequence-ref'),
- (TEXTNS,u'sheet-name'),
- (TEXTNS,u'soft-page-break'),
- (TEXTNS,u'span'),
- (TEXTNS,u'subject'),
- (TEXTNS,u'tab'),
- (TEXTNS,u'table-formula'),
- (TEXTNS,u'template-name'),
- (TEXTNS,u'text-input'),
- (TEXTNS,u'time'),
- (TEXTNS,u'title'),
- (TEXTNS,u'toc-mark'),
- (TEXTNS,u'toc-mark-end'),
- (TEXTNS,u'toc-mark-start'),
- (TEXTNS,u'user-defined'),
- (TEXTNS,u'user-field-get'),
- (TEXTNS,u'user-field-input'),
- (TEXTNS,u'user-index-mark'),
- (TEXTNS,u'user-index-mark-end'),
- (TEXTNS,u'user-index-mark-start'),
- (TEXTNS,u'variable-get'),
- (TEXTNS,u'variable-input'),
- (TEXTNS,u'variable-set'),
- ),
-# allowed_children
- (TEXTNS,u'hidden-paragraph') : (
- ),
- (TEXTNS,u'hidden-text') : (
- ),
- (TEXTNS,u'illustration-index') : (
- (TEXTNS,u'illustration-index-source'),
- (TEXTNS,u'index-body'),
- ),
- (TEXTNS,u'illustration-index-entry-template') : (
- (TEXTNS,u'index-entry-page-number'),
- (TEXTNS,u'index-entry-span'),
- (TEXTNS,u'index-entry-tab-stop'),
- (TEXTNS,u'index-entry-text'),
- ),
- (TEXTNS,u'illustration-index-source') : (
- (TEXTNS,u'illustration-index-entry-template'),
- (TEXTNS,u'index-title-template'),
- ),
- (TEXTNS,u'image-count') : (
- ),
-# allowed_children
- (TEXTNS,u'index-body') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'a'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- (TABLENS,u'table'),
- (TEXTNS,u'alphabetical-index'),
- (TEXTNS,u'bibliography'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'h'),
- (TEXTNS,u'illustration-index'),
- (TEXTNS,u'index-title'),
- (TEXTNS,u'list'),
- (TEXTNS,u'numbered-paragraph'),
- (TEXTNS,u'object-index'),
- (TEXTNS,u'p'),
- (TEXTNS,u'section'),
- (TEXTNS,u'soft-page-break'),
- (TEXTNS,u'table-index'),
- (TEXTNS,u'table-of-content'),
- (TEXTNS,u'user-index'),
- ),
- (TEXTNS,u'index-entry-bibliography') : (
- ),
- (TEXTNS,u'index-entry-chapter') : (
- ),
- (TEXTNS,u'index-entry-link-end') : (
- ),
- (TEXTNS,u'index-entry-link-start') : (
- ),
- (TEXTNS,u'index-entry-page-number') : (
- ),
- (TEXTNS,u'index-entry-span') : (
- ),
- (TEXTNS,u'index-entry-tab-stop') : (
- ),
- (TEXTNS,u'index-entry-text') : (
- ),
- (TEXTNS,u'index-source-style') : (
- ),
- (TEXTNS,u'index-source-styles') : (
- (TEXTNS,u'index-source-style'),
- ),
-# allowed_children
- (TEXTNS,u'index-title') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'a'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- (TABLENS,u'table'),
- (TEXTNS,u'alphabetical-index'),
- (TEXTNS,u'bibliography'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'h'),
- (TEXTNS,u'illustration-index'),
- (TEXTNS,u'index-title'),
- (TEXTNS,u'list'),
- (TEXTNS,u'numbered-paragraph'),
- (TEXTNS,u'object-index'),
- (TEXTNS,u'p'),
- (TEXTNS,u'section'),
- (TEXTNS,u'soft-page-break'),
- (TEXTNS,u'table-index'),
- (TEXTNS,u'table-of-content'),
- (TEXTNS,u'user-index'),
- ),
- (TEXTNS,u'index-title-template') : (
- ),
- (TEXTNS,u'initial-creator') : (
- ),
- (TEXTNS,u'insertion') : (
- (OFFICENS,u'change-info'),
- ),
- (TEXTNS,u'keywords') : (
- ),
- (TEXTNS,u'line-break') : (
- ),
- (TEXTNS,u'linenumbering-configuration') : (
- (TEXTNS,u'linenumbering-separator'),
- ),
- (TEXTNS,u'linenumbering-separator') : (
- ),
- (TEXTNS,u'list') : (
- (TEXTNS,u'list-header'),
- (TEXTNS,u'list-item'),
- ),
- (TEXTNS,u'list-header') : (
- (TEXTNS,u'h'),
- (TEXTNS,u'list'),
- (TEXTNS,u'number'),
- (TEXTNS,u'p'),
- (TEXTNS,u'soft-page-break'),
- ),
- (TEXTNS,u'list-item') : (
- (TEXTNS,u'h'),
- (TEXTNS,u'list'),
- (TEXTNS,u'number'),
- (TEXTNS,u'p'),
- (TEXTNS,u'soft-page-break'),
- ),
- (TEXTNS,u'list-level-style-bullet') : (
- (STYLENS,u'list-level-properties'),
- (STYLENS,u'text-properties'),
- ),
- (TEXTNS,u'list-level-style-image') : (
- (OFFICENS,u'binary-data'),
- (STYLENS,u'list-level-properties'),
- ),
- (TEXTNS,u'list-level-style-number') : (
- (STYLENS,u'list-level-properties'),
- (STYLENS,u'text-properties'),
- ),
- (TEXTNS,u'list-style') : (
- (TEXTNS,u'list-level-style-bullet'),
- (TEXTNS,u'list-level-style-image'),
- (TEXTNS,u'list-level-style-number'),
- ),
- (TEXTNS,u'measure') : (
- ),
- (TEXTNS,u'modification-date') : (
- ),
- (TEXTNS,u'modification-time') : (
- ),
- (TEXTNS,u'note') : (
- (TEXTNS,u'note-body'),
- (TEXTNS,u'note-citation'),
- ),
-# allowed_children
- (TEXTNS,u'note-body') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'a'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- (TABLENS,u'table'),
- (TEXTNS,u'alphabetical-index'),
- (TEXTNS,u'bibliography'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'h'),
- (TEXTNS,u'illustration-index'),
- (TEXTNS,u'list'),
- (TEXTNS,u'numbered-paragraph'),
- (TEXTNS,u'object-index'),
- (TEXTNS,u'p'),
- (TEXTNS,u'section'),
- (TEXTNS,u'soft-page-break'),
- (TEXTNS,u'table-index'),
- (TEXTNS,u'table-of-content'),
- (TEXTNS,u'user-index'),
- ),
- (TEXTNS,u'note-citation') : (
- ),
- (TEXTNS,u'note-continuation-notice-backward') : (
- ),
- (TEXTNS,u'note-continuation-notice-forward') : (
- ),
- (TEXTNS,u'note-ref') : (
- ),
- (TEXTNS,u'notes-configuration') : (
- (TEXTNS,u'note-continuation-notice-backward'),
- (TEXTNS,u'note-continuation-notice-forward'),
- ),
- (TEXTNS,u'number') : (
- ),
- (TEXTNS,u'numbered-paragraph') : (
- (TEXTNS,u'h'),
- (TEXTNS,u'number'),
- (TEXTNS,u'p'),
- ),
- (TEXTNS,u'object-count') : (
- ),
- (TEXTNS,u'object-index') : (
- (TEXTNS,u'index-body'),
- (TEXTNS,u'object-index-source'),
- ),
- (TEXTNS,u'object-index-entry-template') : (
- (TEXTNS,u'index-entry-page-number'),
- (TEXTNS,u'index-entry-span'),
- (TEXTNS,u'index-entry-tab-stop'),
- (TEXTNS,u'index-entry-text'),
- ),
- (TEXTNS,u'object-index-source') : (
- (TEXTNS,u'index-title-template'),
- (TEXTNS,u'object-index-entry-template'),
- ),
- (TEXTNS,u'outline-level-style') : (
- (STYLENS,u'list-level-properties'),
- (STYLENS,u'text-properties'),
- ),
- (TEXTNS,u'outline-style') : (
- (TEXTNS,u'outline-level-style'),
- ),
-# allowed_children
- (TEXTNS,u'p') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'a'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- (OFFICENS,u'annotation'),
- (PRESENTATIONNS,u'date-time'),
- (PRESENTATIONNS,u'footer'),
- (PRESENTATIONNS,u'header'),
- (TEXTNS,u'a'),
- (TEXTNS,u'alphabetical-index-mark'),
- (TEXTNS,u'alphabetical-index-mark-end'),
- (TEXTNS,u'alphabetical-index-mark-start'),
- (TEXTNS,u'author-initials'),
- (TEXTNS,u'author-name'),
- (TEXTNS,u'bibliography-mark'),
- (TEXTNS,u'bookmark'),
- (TEXTNS,u'bookmark-end'),
- (TEXTNS,u'bookmark-ref'),
- (TEXTNS,u'bookmark-start'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'chapter'),
- (TEXTNS,u'character-count'),
- (TEXTNS,u'conditional-text'),
- (TEXTNS,u'creation-date'),
- (TEXTNS,u'creation-time'),
- (TEXTNS,u'creator'),
- (TEXTNS,u'database-display'),
- (TEXTNS,u'database-name'),
- (TEXTNS,u'database-next'),
- (TEXTNS,u'database-row-number'),
- (TEXTNS,u'database-row-select'),
- (TEXTNS,u'date'),
- (TEXTNS,u'dde-connection'),
- (TEXTNS,u'description'),
- (TEXTNS,u'editing-cycles'),
- (TEXTNS,u'editing-duration'),
- (TEXTNS,u'execute-macro'),
- (TEXTNS,u'expression'),
- (TEXTNS,u'file-name'),
- (TEXTNS,u'hidden-paragraph'),
- (TEXTNS,u'hidden-text'),
- (TEXTNS,u'image-count'),
- (TEXTNS,u'initial-creator'),
- (TEXTNS,u'keywords'),
- (TEXTNS,u'line-break'),
- (TEXTNS,u'measure'),
- (TEXTNS,u'modification-date'),
- (TEXTNS,u'modification-time'),
- (TEXTNS,u'note'),
- (TEXTNS,u'note-ref'),
- (TEXTNS,u'object-count'),
- (TEXTNS,u'page-continuation'),
- (TEXTNS,u'page-count'),
- (TEXTNS,u'page-number'),
- (TEXTNS,u'page-variable-get'),
- (TEXTNS,u'page-variable-set'),
- (TEXTNS,u'paragraph-count'),
- (TEXTNS,u'placeholder'),
- (TEXTNS,u'print-date'),
- (TEXTNS,u'printed-by'),
- (TEXTNS,u'print-time'),
- (TEXTNS,u'reference-mark'),
- (TEXTNS,u'reference-mark-end'),
- (TEXTNS,u'reference-mark-start'),
- (TEXTNS,u'reference-ref'),
- (TEXTNS,u'ruby'),
- (TEXTNS,u's'),
- (TEXTNS,u'script'),
- (TEXTNS,u'sender-city'),
- (TEXTNS,u'sender-company'),
- (TEXTNS,u'sender-country'),
- (TEXTNS,u'sender-email'),
- (TEXTNS,u'sender-fax'),
- (TEXTNS,u'sender-firstname'),
- (TEXTNS,u'sender-initials'),
- (TEXTNS,u'sender-lastname'),
- (TEXTNS,u'sender-phone-private'),
- (TEXTNS,u'sender-phone-work'),
- (TEXTNS,u'sender-position'),
- (TEXTNS,u'sender-postal-code'),
- (TEXTNS,u'sender-state-or-province'),
- (TEXTNS,u'sender-street'),
- (TEXTNS,u'sender-title'),
- (TEXTNS,u'sequence'),
- (TEXTNS,u'sequence-ref'),
- (TEXTNS,u'sheet-name'),
- (TEXTNS,u'soft-page-break'),
- (TEXTNS,u'span'),
- (TEXTNS,u'subject'),
- (TEXTNS,u'tab'),
- (TEXTNS,u'table-count'),
- (TEXTNS,u'table-formula'),
- (TEXTNS,u'template-name'),
- (TEXTNS,u'text-input'),
- (TEXTNS,u'time'),
- (TEXTNS,u'title'),
- (TEXTNS,u'toc-mark'),
- (TEXTNS,u'toc-mark-end'),
- (TEXTNS,u'toc-mark-start'),
- (TEXTNS,u'user-defined'),
- (TEXTNS,u'user-field-get'),
- (TEXTNS,u'user-field-input'),
- (TEXTNS,u'user-index-mark'),
- (TEXTNS,u'user-index-mark-end'),
- (TEXTNS,u'user-index-mark-start'),
- (TEXTNS,u'variable-get'),
- (TEXTNS,u'variable-input'),
- (TEXTNS,u'variable-set'),
- (TEXTNS,u'word-count'),
- ),
- (TEXTNS,u'page') : (
- ),
- (TEXTNS,u'page-count') : (
- ),
- (TEXTNS,u'page-continuation') : (
- ),
- (TEXTNS,u'page-number') : (
- ),
- (TEXTNS,u'page-sequence') : (
- (TEXTNS,u'page'),
- ),
- (TEXTNS,u'page-variable-get') : (
- ),
- (TEXTNS,u'page-variable-set') : (
- ),
- (TEXTNS,u'paragraph-count') : (
- ),
- (TEXTNS,u'placeholder') : (
- ),
- (TEXTNS,u'print-date') : (
- ),
- (TEXTNS,u'print-time') : (
- ),
- (TEXTNS,u'printed-by') : (
- ),
- (TEXTNS,u'reference-mark') : (
- ),
- (TEXTNS,u'reference-mark-end') : (
- ),
-# allowed_children
- (TEXTNS,u'reference-mark-start') : (
- ),
- (TEXTNS,u'reference-ref') : (
- ),
- (TEXTNS,u'ruby') : (
- (TEXTNS,u'ruby-base'),
- (TEXTNS,u'ruby-text'),
- ),
- (TEXTNS,u'ruby-base') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'a'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- (OFFICENS,u'annotation'),
- (PRESENTATIONNS,u'date-time'),
- (PRESENTATIONNS,u'footer'),
- (PRESENTATIONNS,u'header'),
- (TEXTNS,u'a'),
- (TEXTNS,u'alphabetical-index-mark'),
- (TEXTNS,u'alphabetical-index-mark-end'),
- (TEXTNS,u'alphabetical-index-mark-start'),
- (TEXTNS,u'author-initials'),
- (TEXTNS,u'author-name'),
- (TEXTNS,u'bibliography-mark'),
- (TEXTNS,u'bookmark'),
- (TEXTNS,u'bookmark-end'),
- (TEXTNS,u'bookmark-ref'),
- (TEXTNS,u'bookmark-start'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'chapter'),
- (TEXTNS,u'conditional-text'),
- (TEXTNS,u'creation-date'),
- (TEXTNS,u'creation-time'),
- (TEXTNS,u'creator'),
- (TEXTNS,u'database-display'),
- (TEXTNS,u'database-name'),
- (TEXTNS,u'database-next'),
- (TEXTNS,u'database-row-number'),
- (TEXTNS,u'database-row-select'),
- (TEXTNS,u'date'),
- (TEXTNS,u'dde-connection'),
- (TEXTNS,u'description'),
- (TEXTNS,u'editing-cycles'),
- (TEXTNS,u'editing-duration'),
- (TEXTNS,u'execute-macro'),
- (TEXTNS,u'expression'),
- (TEXTNS,u'file-name'),
- (TEXTNS,u'hidden-paragraph'),
- (TEXTNS,u'hidden-text'),
- (TEXTNS,u'initial-creator'),
- (TEXTNS,u'keywords'),
- (TEXTNS,u'line-break'),
- (TEXTNS,u'measure'),
- (TEXTNS,u'modification-date'),
- (TEXTNS,u'modification-time'),
- (TEXTNS,u'note'),
- (TEXTNS,u'note-ref'),
- (TEXTNS,u'page-count'),
- (TEXTNS,u'paragraph-count'),
- (TEXTNS,u'word-count'),
- (TEXTNS,u'character-count'),
- (TEXTNS,u'table-count'),
- (TEXTNS,u'image-count'),
- (TEXTNS,u'object-count'),
- (TEXTNS,u'page-continuation'),
- (TEXTNS,u'page-number'),
- (TEXTNS,u'page-variable-get'),
- (TEXTNS,u'page-variable-set'),
- (TEXTNS,u'placeholder'),
- (TEXTNS,u'print-date'),
- (TEXTNS,u'print-time'),
- (TEXTNS,u'printed-by'),
- (TEXTNS,u'reference-mark'),
- (TEXTNS,u'reference-mark-end'),
- (TEXTNS,u'reference-mark-start'),
- (TEXTNS,u'reference-ref'),
- (TEXTNS,u'ruby'),
- (TEXTNS,u's'),
- (TEXTNS,u'script'),
- (TEXTNS,u'sender-city'),
- (TEXTNS,u'sender-company'),
- (TEXTNS,u'sender-country'),
- (TEXTNS,u'sender-email'),
- (TEXTNS,u'sender-fax'),
- (TEXTNS,u'sender-firstname'),
- (TEXTNS,u'sender-initials'),
- (TEXTNS,u'sender-lastname'),
- (TEXTNS,u'sender-phone-private'),
- (TEXTNS,u'sender-phone-work'),
- (TEXTNS,u'sender-position'),
- (TEXTNS,u'sender-postal-code'),
- (TEXTNS,u'sender-state-or-province'),
- (TEXTNS,u'sender-street'),
- (TEXTNS,u'sender-title'),
- (TEXTNS,u'sequence'),
- (TEXTNS,u'sequence-ref'),
- (TEXTNS,u'sheet-name'),
- (TEXTNS,u'soft-page-break'),
- (TEXTNS,u'span'),
- (TEXTNS,u'subject'),
- (TEXTNS,u'tab'),
- (TEXTNS,u'table-formula'),
- (TEXTNS,u'template-name'),
- (TEXTNS,u'text-input'),
- (TEXTNS,u'time'),
- (TEXTNS,u'title'),
- (TEXTNS,u'toc-mark'),
- (TEXTNS,u'toc-mark-end'),
- (TEXTNS,u'toc-mark-start'),
- (TEXTNS,u'user-defined'),
- (TEXTNS,u'user-field-get'),
- (TEXTNS,u'user-field-input'),
- (TEXTNS,u'user-index-mark'),
- (TEXTNS,u'user-index-mark-end'),
- (TEXTNS,u'user-index-mark-start'),
- (TEXTNS,u'variable-get'),
- (TEXTNS,u'variable-input'),
- (TEXTNS,u'variable-set'),
- ),
-# allowed_children
- (TEXTNS,u'ruby-text') : (
- ),
- (TEXTNS,u's') : (
- ),
- (TEXTNS,u'script') : (
- ),
- (TEXTNS,u'section') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'a'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- (OFFICENS,u'dde-source'),
- (TABLENS,u'table'),
- (TEXTNS,u'alphabetical-index'),
- (TEXTNS,u'bibliography'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'h'),
- (TEXTNS,u'illustration-index'),
- (TEXTNS,u'list'),
- (TEXTNS,u'numbered-paragraph'),
- (TEXTNS,u'object-index'),
- (TEXTNS,u'p'),
- (TEXTNS,u'section'),
- (TEXTNS,u'section-source'),
- (TEXTNS,u'soft-page-break'),
- (TEXTNS,u'table-index'),
- (TEXTNS,u'table-of-content'),
- (TEXTNS,u'user-index'),
- ),
- (TEXTNS,u'section-source') : (
- ),
- (TEXTNS,u'sender-city') : (
- ),
- (TEXTNS,u'sender-company') : (
- ),
- (TEXTNS,u'sender-country') : (
- ),
-# allowed_children
- (TEXTNS,u'sender-email') : (
- ),
- (TEXTNS,u'sender-fax') : (
- ),
- (TEXTNS,u'sender-firstname') : (
- ),
- (TEXTNS,u'sender-initials') : (
- ),
- (TEXTNS,u'sender-lastname') : (
- ),
- (TEXTNS,u'sender-phone-private') : (
- ),
- (TEXTNS,u'sender-phone-work') : (
- ),
- (TEXTNS,u'sender-position') : (
- ),
- (TEXTNS,u'sender-postal-code') : (
- ),
- (TEXTNS,u'sender-state-or-province') : (
- ),
- (TEXTNS,u'sender-street') : (
- ),
- (TEXTNS,u'sender-title') : (
- ),
- (TEXTNS,u'sequence') : (
- ),
- (TEXTNS,u'sequence-decl') : (
- ),
- (TEXTNS,u'sequence-decls') : (
- (TEXTNS,u'sequence-decl'),
- ),
- (TEXTNS,u'sequence-ref') : (
- ),
- (TEXTNS,u'sheet-name') : (
- ),
- (TEXTNS,u'soft-page-break') : (
- ),
- (TEXTNS,u'sort-key') : (
- ),
-# allowed_children
- (TEXTNS,u'span') : (
- (DR3DNS,u'scene'),
- (DRAWNS,u'a'),
- (DRAWNS,u'caption'),
- (DRAWNS,u'circle'),
- (DRAWNS,u'connector'),
- (DRAWNS,u'control'),
- (DRAWNS,u'custom-shape'),
- (DRAWNS,u'ellipse'),
- (DRAWNS,u'frame'),
- (DRAWNS,u'g'),
- (DRAWNS,u'line'),
- (DRAWNS,u'measure'),
- (DRAWNS,u'page-thumbnail'),
- (DRAWNS,u'path'),
- (DRAWNS,u'polygon'),
- (DRAWNS,u'polyline'),
- (DRAWNS,u'rect'),
- (DRAWNS,u'regular-polygon'),
- (OFFICENS,u'annotation'),
- (PRESENTATIONNS,u'date-time'),
- (PRESENTATIONNS,u'footer'),
- (PRESENTATIONNS,u'header'),
- (TEXTNS,u'a'),
- (TEXTNS,u'alphabetical-index-mark'),
- (TEXTNS,u'alphabetical-index-mark-end'),
- (TEXTNS,u'alphabetical-index-mark-start'),
- (TEXTNS,u'author-initials'),
- (TEXTNS,u'author-name'),
- (TEXTNS,u'bibliography-mark'),
- (TEXTNS,u'bookmark'),
- (TEXTNS,u'bookmark-end'),
- (TEXTNS,u'bookmark-ref'),
- (TEXTNS,u'bookmark-start'),
- (TEXTNS,u'change'),
- (TEXTNS,u'change-end'),
- (TEXTNS,u'change-start'),
- (TEXTNS,u'chapter'),
- (TEXTNS,u'conditional-text'),
- (TEXTNS,u'creation-date'),
- (TEXTNS,u'creation-time'),
- (TEXTNS,u'creator'),
- (TEXTNS,u'database-display'),
- (TEXTNS,u'database-name'),
- (TEXTNS,u'database-next'),
- (TEXTNS,u'database-row-number'),
- (TEXTNS,u'database-row-select'),
- (TEXTNS,u'date'),
- (TEXTNS,u'dde-connection'),
- (TEXTNS,u'description'),
- (TEXTNS,u'editing-cycles'),
- (TEXTNS,u'editing-duration'),
- (TEXTNS,u'execute-macro'),
- (TEXTNS,u'expression'),
- (TEXTNS,u'file-name'),
- (TEXTNS,u'hidden-paragraph'),
- (TEXTNS,u'hidden-text'),
- (TEXTNS,u'initial-creator'),
- (TEXTNS,u'keywords'),
- (TEXTNS,u'line-break'),
- (TEXTNS,u'measure'),
- (TEXTNS,u'modification-date'),
- (TEXTNS,u'modification-time'),
- (TEXTNS,u'note'),
- (TEXTNS,u'note-ref'),
- (TEXTNS,u'page-count'),
- (TEXTNS,u'paragraph-count'),
- (TEXTNS,u'word-count'),
- (TEXTNS,u'character-count'),
- (TEXTNS,u'table-count'),
- (TEXTNS,u'image-count'),
- (TEXTNS,u'object-count'),
- (TEXTNS,u'page-continuation'),
- (TEXTNS,u'page-number'),
- (TEXTNS,u'page-variable-get'),
- (TEXTNS,u'page-variable-set'),
- (TEXTNS,u'placeholder'),
- (TEXTNS,u'print-date'),
- (TEXTNS,u'print-time'),
- (TEXTNS,u'printed-by'),
- (TEXTNS,u'reference-mark'),
- (TEXTNS,u'reference-mark-end'),
- (TEXTNS,u'reference-mark-start'),
- (TEXTNS,u'reference-ref'),
- (TEXTNS,u'ruby'),
- (TEXTNS,u's'),
- (TEXTNS,u'script'),
- (TEXTNS,u'sender-city'),
- (TEXTNS,u'sender-company'),
- (TEXTNS,u'sender-country'),
- (TEXTNS,u'sender-email'),
- (TEXTNS,u'sender-fax'),
- (TEXTNS,u'sender-firstname'),
- (TEXTNS,u'sender-initials'),
- (TEXTNS,u'sender-lastname'),
- (TEXTNS,u'sender-phone-private'),
- (TEXTNS,u'sender-phone-work'),
- (TEXTNS,u'sender-position'),
- (TEXTNS,u'sender-postal-code'),
- (TEXTNS,u'sender-state-or-province'),
- (TEXTNS,u'sender-street'),
- (TEXTNS,u'sender-title'),
- (TEXTNS,u'sequence'),
- (TEXTNS,u'sequence-ref'),
- (TEXTNS,u'sheet-name'),
- (TEXTNS,u'soft-page-break'),
- (TEXTNS,u'span'),
- (TEXTNS,u'subject'),
- (TEXTNS,u'tab'),
- (TEXTNS,u'table-formula'),
- (TEXTNS,u'template-name'),
- (TEXTNS,u'text-input'),
- (TEXTNS,u'time'),
- (TEXTNS,u'title'),
- (TEXTNS,u'toc-mark'),
- (TEXTNS,u'toc-mark-end'),
- (TEXTNS,u'toc-mark-start'),
- (TEXTNS,u'user-defined'),
- (TEXTNS,u'user-field-get'),
- (TEXTNS,u'user-field-input'),
- (TEXTNS,u'user-index-mark'),
- (TEXTNS,u'user-index-mark-end'),
- (TEXTNS,u'user-index-mark-start'),
- (TEXTNS,u'variable-get'),
- (TEXTNS,u'variable-input'),
- (TEXTNS,u'variable-set'),
- ),
-# allowed_children
- (TEXTNS,u'subject') : (
- ),
- (TEXTNS,u'tab') : (
- ),
- (TEXTNS,u'table-count') : (
- ),
- (TEXTNS,u'table-formula') : (
- ),
- (TEXTNS,u'table-index') : (
- (TEXTNS,u'index-body'),
- (TEXTNS,u'table-index-source'),
- ),
- (TEXTNS,u'table-index-entry-template') : (
- (TEXTNS,u'index-entry-page-number'),
- (TEXTNS,u'index-entry-span'),
- (TEXTNS,u'index-entry-tab-stop'),
- (TEXTNS,u'index-entry-text'),
- ),
- (TEXTNS,u'table-index-source') : (
- (TEXTNS,u'index-title-template'),
- (TEXTNS,u'table-index-entry-template'),
- ),
- (TEXTNS,u'table-of-content') : (
- (TEXTNS,u'index-body'),
- (TEXTNS,u'table-of-content-source'),
- ),
- (TEXTNS,u'table-of-content-entry-template') : (
- (TEXTNS,u'index-entry-chapter'),
- (TEXTNS,u'index-entry-link-end'),
- (TEXTNS,u'index-entry-link-start'),
- (TEXTNS,u'index-entry-page-number'),
- (TEXTNS,u'index-entry-span'),
- (TEXTNS,u'index-entry-tab-stop'),
- (TEXTNS,u'index-entry-text'),
- ),
- (TEXTNS,u'table-of-content-source') : (
- (TEXTNS,u'index-source-styles'),
- (TEXTNS,u'index-title-template'),
- (TEXTNS,u'table-of-content-entry-template'),
- ),
- (TEXTNS,u'template-name') : (
- ),
- (TEXTNS,u'text-input') : (
- ),
- (TEXTNS,u'time') : (
- ),
- (TEXTNS,u'title') : (
- ),
- (TEXTNS,u'toc-mark') : (
- ),
- (TEXTNS,u'toc-mark-end') : (
- ),
- (TEXTNS,u'toc-mark-start') : (
- ),
-# allowed_children
- (TEXTNS,u'tracked-changes') : (
- (TEXTNS,u'changed-region'),
- ),
- (TEXTNS,u'user-defined') : (
- ),
- (TEXTNS,u'user-field-decl') : (
- ),
- (TEXTNS,u'user-field-decls') : (
- (TEXTNS,u'user-field-decl'),
- ),
- (TEXTNS,u'user-field-get') : (
- ),
- (TEXTNS,u'user-field-input') : (
- ),
- (TEXTNS,u'user-index') : (
- (TEXTNS,u'index-body'),
- (TEXTNS,u'user-index-source'),
- ),
- (TEXTNS,u'user-index-entry-template') : (
- (TEXTNS,u'index-entry-chapter'),
- (TEXTNS,u'index-entry-page-number'),
- (TEXTNS,u'index-entry-span'),
- (TEXTNS,u'index-entry-tab-stop'),
- (TEXTNS,u'index-entry-text'),
- ),
-# allowed_children
- (TEXTNS,u'user-index-mark') : (
- ),
- (TEXTNS,u'user-index-mark-end') : (
- ),
- (TEXTNS,u'user-index-mark-start') : (
- ),
- (TEXTNS,u'user-index-source') : (
- (TEXTNS,u'index-source-styles'),
- (TEXTNS,u'index-title-template'),
- (TEXTNS,u'user-index-entry-template'),
- ),
- (TEXTNS,u'variable-decl') : (
- ),
- (TEXTNS,u'variable-decls') : (
- (TEXTNS,u'variable-decl'),
- ),
- (TEXTNS,u'variable-get') : (
- ),
- (TEXTNS,u'variable-input') : (
- ),
- (TEXTNS,u'variable-set') : (
- ),
- (TEXTNS,u'word-count') : (
- ),
-}
-
-#
-# List of elements that allows text nodes
-#
-allows_text = (
- (CONFIGNS,u'config-item'),
- (DCNS,u'creator'),
- (DCNS,u'date'),
- (DCNS,u'description'),
- (DCNS,u'language'),
- (DCNS,u'subject'),
- (DCNS,u'title'),
-# Completes Dublin Core start
-# (DCNS,'contributor'),
-# (DCNS,'coverage'),
-# (DCNS,'format'),
-# (DCNS,'identifier'),
-# (DCNS,'publisher'),
-# (DCNS,'relation'),
-# (DCNS,'rights'),
-# (DCNS,'source'),
-# (DCNS,'type'),
-# Completes Dublin Core end
- (FORMNS,u'item'),
- (FORMNS,u'option'),
- (MATHNS,u'math'),
- (METANS,u'creation-date'),
- (METANS,u'date-string'),
- (METANS,u'editing-cycles'),
- (METANS,u'editing-duration'),
-# allows_text
- (METANS,u'generator'),
- (METANS,u'initial-creator'),
- (METANS,u'keyword'),
- (METANS,u'print-date'),
- (METANS,u'printed-by'),
- (METANS,u'user-defined'),
- (NUMBERNS,u'currency-symbol'),
- (NUMBERNS,u'embedded-text'),
- (NUMBERNS,u'text'),
- (OFFICENS,u'binary-data'),
- (OFFICENS,u'script'),
- (PRESENTATIONNS,u'date-time-decl'),
- (PRESENTATIONNS,u'footer-decl'),
- (PRESENTATIONNS,u'header-decl'),
- (SVGNS,u'desc'),
- (SVGNS,u'title'),
- (TEXTNS,u'a'),
- (TEXTNS,u'author-initials'),
- (TEXTNS,u'author-name'),
- (TEXTNS,u'bibliography-mark'),
- (TEXTNS,u'bookmark-ref'),
- (TEXTNS,u'chapter'),
- (TEXTNS,u'character-count'),
- (TEXTNS,u'conditional-text'),
- (TEXTNS,u'creation-date'),
- (TEXTNS,u'creation-time'),
- (TEXTNS,u'creator'),
- (TEXTNS,u'database-display'),
- (TEXTNS,u'database-name'),
- (TEXTNS,u'database-row-number'),
- (TEXTNS,u'date'),
- (TEXTNS,u'dde-connection'),
- (TEXTNS,u'description'),
- (TEXTNS,u'editing-cycles'),
- (TEXTNS,u'editing-duration'),
- (TEXTNS,u'execute-macro'),
- (TEXTNS,u'expression'),
- (TEXTNS,u'file-name'),
- (TEXTNS,u'h'),
- (TEXTNS,u'hidden-paragraph'),
- (TEXTNS,u'hidden-text'),
- (TEXTNS,u'image-count'),
-# allowed_children
- (TEXTNS,u'index-entry-span'),
- (TEXTNS,u'index-title-template'),
- (TEXTNS,u'initial-creator'),
- (TEXTNS,u'keywords'),
- (TEXTNS,u'linenumbering-separator'),
- (TEXTNS,u'measure'),
- (TEXTNS,u'modification-date'),
- (TEXTNS,u'modification-time'),
- (TEXTNS,u'note-citation'),
- (TEXTNS,u'note-continuation-notice-backward'),
- (TEXTNS,u'note-continuation-notice-forward'),
- (TEXTNS,u'note-ref'),
- (TEXTNS,u'number'),
- (TEXTNS,u'object-count'),
- (TEXTNS,u'p'),
- (TEXTNS,u'page-continuation'),
- (TEXTNS,u'page-count'),
- (TEXTNS,u'page-number'),
- (TEXTNS,u'page-variable-get'),
- (TEXTNS,u'page-variable-set'),
- (TEXTNS,u'paragraph-count'),
- (TEXTNS,u'placeholder'),
- (TEXTNS,u'print-date'),
- (TEXTNS,u'print-time'),
- (TEXTNS,u'printed-by'),
- (TEXTNS,u'reference-ref'),
- (TEXTNS,u'ruby-base'),
- (TEXTNS,u'ruby-text'),
- (TEXTNS,u'script'),
- (TEXTNS,u'sender-city'),
- (TEXTNS,u'sender-company'),
- (TEXTNS,u'sender-country'),
- (TEXTNS,u'sender-email'),
- (TEXTNS,u'sender-fax'),
- (TEXTNS,u'sender-firstname'),
- (TEXTNS,u'sender-initials'),
- (TEXTNS,u'sender-lastname'),
- (TEXTNS,u'sender-phone-private'),
- (TEXTNS,u'sender-phone-work'),
- (TEXTNS,u'sender-position'),
- (TEXTNS,u'sender-postal-code'),
- (TEXTNS,u'sender-state-or-province'),
- (TEXTNS,u'sender-street'),
- (TEXTNS,u'sender-title'),
- (TEXTNS,u'sequence'),
- (TEXTNS,u'sequence-ref'),
- (TEXTNS,u'sheet-name'),
-# allowed_children
- (TEXTNS,u'span'),
- (TEXTNS,u'subject'),
- (TEXTNS,u'table-count'),
- (TEXTNS,u'table-formula'),
- (TEXTNS,u'template-name'),
- (TEXTNS,u'text-input'),
- (TEXTNS,u'time'),
- (TEXTNS,u'title'),
- (TEXTNS,u'user-defined'),
- (TEXTNS,u'user-field-get'),
- (TEXTNS,u'user-field-input'),
- (TEXTNS,u'variable-get'),
- (TEXTNS,u'variable-input'),
- (TEXTNS,u'variable-set'),
- (TEXTNS,u'word-count'),
-)
-
-# Only the elements with at least one required attribute is listed
-
-required_attributes = {
- (ANIMNS,u'animate'): (
- (SMILNS,u'attributeName'),
- ),
- (ANIMNS,u'animateColor'): (
- (SMILNS,u'attributeName'),
- ),
- (ANIMNS,u'animateMotion'): (
- (SMILNS,u'attributeName'),
- ),
- (ANIMNS,u'animateTransform'): (
- (SVGNS,u'type'),
- (SMILNS,u'attributeName'),
- ),
- (ANIMNS,u'command'): (
- (ANIMNS,u'command'),
- ),
- (ANIMNS,u'param'): (
- (ANIMNS,u'name'),
- (ANIMNS,u'value'),
- ),
- (ANIMNS,u'set'): (
- (SMILNS,u'attributeName'),
- ),
-# required_attributes
- (ANIMNS,u'transitionFilter'): (
- (SMILNS,u'type'),
- ),
- (CHARTNS,u'axis'): (
- (CHARTNS,u'dimension'),
- ),
- (CHARTNS,u'chart'): (
- (CHARTNS,u'class'),
- ),
- (CHARTNS,u'symbol-image'): (
- (XLINKNS,u'href'),
- ),
- (CONFIGNS,u'config-item'): (
- (CONFIGNS,u'type'),
- (CONFIGNS,u'name'),
- ),
- (CONFIGNS,u'config-item-map-indexed'): (
- (CONFIGNS,u'name'),
- ),
- (CONFIGNS,u'config-item-map-named'): (
- (CONFIGNS,u'name'),
- ),
- (CONFIGNS,u'config-item-set'): (
- (CONFIGNS,u'name'),
- ),
-# required_attributes
- (NUMBERNS,u'boolean-style'): (
- (STYLENS,u'name'),
- ),
- (NUMBERNS,u'currency-style'): (
- (STYLENS,u'name'),
- ),
- (NUMBERNS,u'date-style'): (
- (STYLENS,u'name'),
- ),
- (NUMBERNS,u'embedded-text'): (
- (NUMBERNS,u'position'),
- ),
- (NUMBERNS,u'number-style'): (
- (STYLENS,u'name'),
- ),
- (NUMBERNS,u'percentage-style'): (
- (STYLENS,u'name'),
- ),
- (NUMBERNS,u'text-style'): (
- (STYLENS,u'name'),
- ),
- (NUMBERNS,u'time-style'): (
- (STYLENS,u'name'),
- ),
- (DR3DNS,u'extrude'): (
- (SVGNS,u'd'),
- (SVGNS,u'viewBox'),
- ),
- (DR3DNS,u'light'): (
- (DR3DNS,u'direction'),
- ),
- (DR3DNS,u'rotate'): (
- (SVGNS,u'viewBox'),
- (SVGNS,u'd'),
- ),
-# required_attributes
- (DRAWNS,u'a'): (
- (XLINKNS,u'href'),
- ),
- (DRAWNS,u'area-circle'): (
- (SVGNS,u'cy'),
- (SVGNS,u'cx'),
- (SVGNS,u'r'),
- ),
- (DRAWNS,u'area-polygon'): (
- (SVGNS,u'height'),
- (SVGNS,u'width'),
- (DRAWNS,u'points'),
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (SVGNS,u'viewBox'),
- ),
- (DRAWNS,u'area-rectangle'): (
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (SVGNS,u'height'),
- (SVGNS,u'width'),
- ),
- (DRAWNS,u'contour-path'): (
- (DRAWNS,u'recreate-on-edit'),
- (SVGNS,u'viewBox'),
- (SVGNS,u'd'),
- ),
- (DRAWNS,u'contour-polygon'): (
- (DRAWNS,u'points'),
- (DRAWNS,u'recreate-on-edit'),
- (SVGNS,u'viewBox'),
- ),
- (DRAWNS,u'control'): (
- (DRAWNS,u'control'),
- ),
- (DRAWNS,u'fill-image'): (
- (XLINKNS,u'href'),
- (DRAWNS,u'name'),
- ),
- (DRAWNS,u'floating-frame'): (
- (XLINKNS,u'href'),
- ),
- (DRAWNS,u'glue-point'): (
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (DRAWNS,u'id'),
- (DRAWNS,u'escape-direction'),
- ),
-# required_attributes
- (DRAWNS,u'gradient'): (
- (DRAWNS,u'style'),
- ),
- (DRAWNS,u'handle'): (
- (DRAWNS,u'handle-position'),
- ),
- (DRAWNS,u'hatch'): (
- (DRAWNS,u'style'),
- (DRAWNS,u'name'),
- ),
- (DRAWNS,u'layer'): (
- (DRAWNS,u'name'),
- ),
- (DRAWNS,u'line'): (
- (SVGNS,u'y1'),
- (SVGNS,u'x2'),
- (SVGNS,u'x1'),
- (SVGNS,u'y2'),
- ),
- (DRAWNS,u'marker'): (
- (SVGNS,u'd'),
- (DRAWNS,u'name'),
- (SVGNS,u'viewBox'),
- ),
- (DRAWNS,u'measure'): (
- (SVGNS,u'y1'),
- (SVGNS,u'x2'),
- (SVGNS,u'x1'),
- (SVGNS,u'y2'),
- ),
- (DRAWNS,u'opacity'): (
- (DRAWNS,u'style'),
- ),
- (DRAWNS,u'page'): (
- (DRAWNS,u'master-page-name'),
- ),
- (DRAWNS,u'path'): (
- (SVGNS,u'd'),
- (SVGNS,u'viewBox'),
- ),
- (DRAWNS,u'plugin'): (
- (XLINKNS,u'href'),
- ),
- (DRAWNS,u'polygon'): (
- (DRAWNS,u'points'),
- (SVGNS,u'viewBox'),
- ),
-# required_attributes
- (DRAWNS,u'polyline'): (
- (DRAWNS,u'points'),
- (SVGNS,u'viewBox'),
- ),
- (DRAWNS,u'regular-polygon'): (
- (DRAWNS,u'corners'),
- ),
- (DRAWNS,u'stroke-dash'): (
- (DRAWNS,u'name'),
- ),
- (FORMNS,u'button'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'checkbox'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'combobox'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'connection-resource'): (
- (XLINKNS,u'href'),
- ),
- (FORMNS,u'date'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'file'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'fixed-text'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'formatted-text'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'frame'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'generic-control'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'grid'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'hidden'): (
- (FORMNS,u'id'),
- ),
-# required_attributes
- (FORMNS,u'image'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'image-frame'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'list-property'): (
- (FORMNS,u'property-name'),
- ),
- (FORMNS,u'list-value'): (
- (OFFICENS,u'string-value'),
- ),
- (FORMNS,u'listbox'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'number'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'password'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'property'): (
- (FORMNS,u'property-name'),
- ),
- (FORMNS,u'radio'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'text'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'textarea'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'time'): (
- (FORMNS,u'id'),
- ),
- (FORMNS,u'value-range'): (
- (FORMNS,u'id'),
- ),
- (MANIFESTNS,u'algorithm') : (
- (MANIFESTNS,u'algorithm-name'),
- (MANIFESTNS,u'initialisation-vector'),
- ),
- (MANIFESTNS,u'encryption-data') : (
- (MANIFESTNS,u'checksum-type'),
- (MANIFESTNS,u'checksum'),
- ),
- (MANIFESTNS,u'file-entry') : (
- (MANIFESTNS,u'full-path'),
- (MANIFESTNS,u'media-type'),
- ),
- (MANIFESTNS,u'key-derivation') : (
- (MANIFESTNS,u'key-derivation-name'),
- (MANIFESTNS,u'salt'),
- (MANIFESTNS,u'iteration-count'),
- ),
-# required_attributes
- (METANS,u'template'): (
- (XLINKNS,u'href'),
- ),
- (METANS,u'user-defined'): (
- (METANS,u'name'),
- ),
- (OFFICENS,u'dde-source'): (
- (OFFICENS,u'dde-topic'),
- (OFFICENS,u'dde-application'),
- (OFFICENS,u'dde-item'),
- ),
- (OFFICENS,u'document'): (
- (OFFICENS,u'mimetype'),
- ),
- (OFFICENS,u'script'): (
- (SCRIPTNS,u'language'),
- ),
- (PRESENTATIONNS,u'date-time-decl'): (
- (PRESENTATIONNS,u'source'),
- (PRESENTATIONNS,u'name'),
- ),
- (PRESENTATIONNS,u'dim'): (
- (DRAWNS,u'color'),
- (DRAWNS,u'shape-id'),
- ),
-# required_attributes
- (PRESENTATIONNS,u'event-listener'): (
- (PRESENTATIONNS,u'action'),
- (SCRIPTNS,u'event-name'),
- ),
- (PRESENTATIONNS,u'footer-decl'): (
- (PRESENTATIONNS,u'name'),
- ),
- (PRESENTATIONNS,u'header-decl'): (
- (PRESENTATIONNS,u'name'),
- ),
- (PRESENTATIONNS,u'hide-shape'): (
- (DRAWNS,u'shape-id'),
- ),
- (PRESENTATIONNS,u'hide-text'): (
- (DRAWNS,u'shape-id'),
- ),
- (PRESENTATIONNS,u'placeholder'): (
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (SVGNS,u'height'),
- (PRESENTATIONNS,u'object'),
- (SVGNS,u'width'),
- ),
- (PRESENTATIONNS,u'play'): (
- (DRAWNS,u'shape-id'),
- ),
- (PRESENTATIONNS,u'show'): (
- (PRESENTATIONNS,u'name'),
- (PRESENTATIONNS,u'pages'),
- ),
- (PRESENTATIONNS,u'show-shape'): (
- (DRAWNS,u'shape-id'),
- ),
- (PRESENTATIONNS,u'show-text'): (
- (DRAWNS,u'shape-id'),
- ),
- (PRESENTATIONNS,u'sound'): (
- (XLINKNS,u'href'),
- ),
- (SCRIPTNS,u'event-listener'): (
- (SCRIPTNS,u'language'),
- (SCRIPTNS,u'event-name'),
- ),
- (STYLENS,u'column'): (
- (STYLENS,u'rel-width'),
- ),
-# required_attributes
- (STYLENS,u'column-sep'): (
- (STYLENS,u'width'),
- ),
- (STYLENS,u'columns'): (
- (FONS,u'column-count'),
- ),
- (STYLENS,u'font-face'): (
- (STYLENS,u'name'),
- ),
- (STYLENS,u'handout-master'): (
- (STYLENS,u'page-layout-name'),
- ),
- (STYLENS,u'map'): (
- (STYLENS,u'apply-style-name'),
- (STYLENS,u'condition'),
- ),
- (STYLENS,u'master-page'): (
- (STYLENS,u'page-layout-name'),
- (STYLENS,u'name'),
- ),
- (STYLENS,u'page-layout'): (
- (STYLENS,u'name'),
- ),
- (STYLENS,u'presentation-page-layout'): (
- (STYLENS,u'name'),
- ),
- (STYLENS,u'style'): (
- (STYLENS,u'name'),
- ),
- (STYLENS,u'tab-stop'): (
- (STYLENS,u'position'),
- ),
- (SVGNS,u'definition-src'): (
- (XLINKNS,u'href'),
- ),
- (SVGNS,u'font-face-uri'): (
- (XLINKNS,u'href'),
- ),
- (SVGNS,u'linearGradient'): (
- (DRAWNS,u'name'),
- ),
- (SVGNS,u'radialGradient'): (
- (DRAWNS,u'name'),
- ),
- (SVGNS,u'stop'): (
- (SVGNS,u'offset'),
- ),
-# required_attributes
- (TABLENS,u'body'): (
- (TEXTNS,u'style-name'),
- ),
- (TABLENS,u'cell-address'): (
- (TABLENS,u'column'),
- (TABLENS,u'table'),
- (TABLENS,u'row'),
- ),
- (TABLENS,u'cell-content-change'): (
- (TABLENS,u'id'),
- ),
- (TABLENS,u'cell-range-source'): (
- (TABLENS,u'last-row-spanned'),
- (TABLENS,u'last-column-spanned'),
- (XLINKNS,u'href'),
- (TABLENS,u'name'),
- ),
- (TABLENS,u'consolidation'): (
- (TABLENS,u'function'),
- (TABLENS,u'source-cell-range-addresses'),
- (TABLENS,u'target-cell-address'),
- ),
- (TABLENS,u'content-validation'): (
- (TABLENS,u'name'),
- ),
- (TABLENS,u'data-pilot-display-info'): (
- (TABLENS,u'member-count'),
- (TABLENS,u'data-field'),
- (TABLENS,u'enabled'),
- (TABLENS,u'display-member-mode'),
- ),
-# required_attributes
- (TABLENS,u'data-pilot-field'): (
- (TABLENS,u'source-field-name'),
- ),
- (TABLENS,u'data-pilot-field-reference'): (
- (TABLENS,u'field-name'),
- (TABLENS,u'type'),
- ),
- (TABLENS,u'data-pilot-group'): (
- (TABLENS,u'name'),
- ),
- (TABLENS,u'data-pilot-group-member'): (
- (TABLENS,u'name'),
- ),
- (TABLENS,u'data-pilot-groups'): (
- (TABLENS,u'source-field-name'),
- (TABLENS,u'step'),
- (TABLENS,u'grouped-by'),
- ),
- (TABLENS,u'data-pilot-layout-info'): (
- (TABLENS,u'add-empty-lines'),
- (TABLENS,u'layout-mode'),
- ),
- (TABLENS,u'data-pilot-member'): (
- (TABLENS,u'name'),
- ),
- (TABLENS,u'data-pilot-sort-info'): (
- (TABLENS,u'order'),
- ),
- (TABLENS,u'data-pilot-subtotal'): (
- (TABLENS,u'function'),
- ),
- (TABLENS,u'data-pilot-table'): (
- (TABLENS,u'target-range-address'),
- (TABLENS,u'name'),
- ),
- (TABLENS,u'database-range'): (
- (TABLENS,u'target-range-address'),
- ),
-# required_attributes
- (TABLENS,u'database-source-query'): (
- (TABLENS,u'query-name'),
- (TABLENS,u'database-name'),
- ),
- (TABLENS,u'database-source-sql'): (
- (TABLENS,u'database-name'),
- (TABLENS,u'sql-statement'),
- ),
- (TABLENS,u'database-source-table'): (
- (TABLENS,u'database-table-name'),
- (TABLENS,u'database-name'),
- ),
- (TABLENS,u'deletion'): (
- (TABLENS,u'position'),
- (TABLENS,u'type'),
- (TABLENS,u'id'),
- ),
- (TABLENS,u'dependency'): (
- (TABLENS,u'id'),
- ),
- (TABLENS,u'even-columns'): (
- (TEXTNS,u'style-name'),
- ),
- (TABLENS,u'even-rows'): (
- (TEXTNS,u'style-name'),
- ),
- (TABLENS,u'filter-condition'): (
- (TABLENS,u'operator'),
- (TABLENS,u'field-number'),
- (TABLENS,u'value'),
- ),
- (TABLENS,u'first-column'): (
- (TEXTNS,u'style-name'),
- ),
- (TABLENS,u'first-row'): (
- (TEXTNS,u'style-name'),
- ),
- (TABLENS,u'insertion'): (
- (TABLENS,u'position'),
- (TABLENS,u'type'),
- (TABLENS,u'id'),
- ),
- (TABLENS,u'insertion-cut-off'): (
- (TABLENS,u'position'),
- (TABLENS,u'id'),
- ),
-# required_attributes
- (TABLENS,u'label-range'): (
- (TABLENS,u'label-cell-range-address'),
- (TABLENS,u'data-cell-range-address'),
- (TABLENS,u'orientation'),
- ),
- (TABLENS,u'last-column'): (
- (TEXTNS,u'style-name'),
- ),
- (TABLENS,u'last-row'): (
- (TEXTNS,u'style-name'),
- ),
- (TABLENS,u'movement'): (
- (TABLENS,u'id'),
- ),
- (TABLENS,u'named-expression'): (
- (TABLENS,u'expression'),
- (TABLENS,u'name'),
- ),
- (TABLENS,u'named-range'): (
- (TABLENS,u'name'),
- (TABLENS,u'cell-range-address'),
- ),
- (TABLENS,u'odd-columns'): (
- (TEXTNS,u'style-name'),
- ),
- (TABLENS,u'odd-rows'): (
- (TEXTNS,u'style-name'),
- ),
- (TABLENS,u'operation'): (
- (TABLENS,u'index'),
- (TABLENS,u'name'),
- ),
-# required_attributes
- (TABLENS,u'scenario'): (
- (TABLENS,u'is-active'),
- (TABLENS,u'scenario-ranges'),
- ),
- (TABLENS,u'sort-by'): (
- (TABLENS,u'field-number'),
- ),
- (TABLENS,u'source-cell-range'): (
- (TABLENS,u'cell-range-address'),
- ),
- (TABLENS,u'source-service'): (
- (TABLENS,u'source-name'),
- (TABLENS,u'object-name'),
- (TABLENS,u'name'),
- ),
- (TABLENS,u'subtotal-field'): (
- (TABLENS,u'function'),
- (TABLENS,u'field-number'),
- ),
- (TABLENS,u'subtotal-rule'): (
- (TABLENS,u'group-by-field-number'),
- ),
- (TABLENS,u'table-source'): (
- (XLINKNS,u'href'),
- ),
- (TABLENS,u'table-template'): (
- (TEXTNS,u'last-row-end-column'),
- (TEXTNS,u'first-row-end-column'),
- (TEXTNS,u'name'),
- (TEXTNS,u'last-row-start-column'),
- (TEXTNS,u'first-row-start-column'),
- ),
- (TEXTNS,u'a'): (
- (XLINKNS,u'href'),
- ),
-# required_attributes
- (TEXTNS,u'alphabetical-index'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'alphabetical-index-auto-mark-file'): (
- (XLINKNS,u'href'),
- ),
- (TEXTNS,u'alphabetical-index-entry-template'): (
- (TEXTNS,u'style-name'),
- (TEXTNS,u'outline-level'),
- ),
- (TEXTNS,u'alphabetical-index-mark'): (
- (TEXTNS,u'string-value'),
- ),
- (TEXTNS,u'alphabetical-index-mark-end'): (
- (TEXTNS,u'id'),
- ),
- (TEXTNS,u'alphabetical-index-mark-start'): (
- (TEXTNS,u'id'),
- ),
- (TEXTNS,u'bibliography'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'bibliography-entry-template'): (
- (TEXTNS,u'style-name'),
- (TEXTNS,u'bibliography-type'),
- ),
- (TEXTNS,u'bibliography-mark'): (
- (TEXTNS,u'bibliography-type'),
- ),
- (TEXTNS,u'bookmark'): (
- (TEXTNS,u'name'),
- ),
-# required_attributes
- (TEXTNS,u'bookmark-end'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'bookmark-start'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'change'): (
- (TEXTNS,u'change-id'),
- ),
- (TEXTNS,u'change-end'): (
- (TEXTNS,u'change-id'),
- ),
- (TEXTNS,u'change-start'): (
- (TEXTNS,u'change-id'),
- ),
- (TEXTNS,u'changed-region'): (
- (TEXTNS,u'id'),
- ),
- (TEXTNS,u'chapter'): (
- (TEXTNS,u'display'),
- (TEXTNS,u'outline-level'),
- ),
- (TEXTNS,u'conditional-text'): (
- (TEXTNS,u'string-value-if-true'),
- (TEXTNS,u'string-value-if-false'),
- (TEXTNS,u'condition'),
- ),
- (TEXTNS,u'database-display'): (
- (TEXTNS,u'column-name'),
- (TEXTNS,u'table-name'),
- ),
- (TEXTNS,u'database-name'): (
- (TEXTNS,u'table-name'),
- ),
- (TEXTNS,u'database-next'): (
- (TEXTNS,u'table-name'),
- ),
- (TEXTNS,u'database-row-number'): (
- (TEXTNS,u'table-name'),
- ),
- (TEXTNS,u'database-row-select'): (
- (TEXTNS,u'table-name'),
- ),
- (TEXTNS,u'dde-connection'): (
- (TEXTNS,u'connection-name'),
- ),
-# required_attributes
- (TEXTNS,u'dde-connection-decl'): (
- (OFFICENS,u'dde-topic'),
- (OFFICENS,u'dde-application'),
- (OFFICENS,u'name'),
- (OFFICENS,u'dde-item'),
- ),
- (TEXTNS,u'h'): (
- (TEXTNS,u'outline-level'),
- ),
- (TEXTNS,u'hidden-paragraph'): (
- (TEXTNS,u'condition'),
- ),
- (TEXTNS,u'hidden-text'): (
- (TEXTNS,u'string-value'),
- (TEXTNS,u'condition'),
- ),
- (TEXTNS,u'illustration-index'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'illustration-index-entry-template'): (
- (TEXTNS,u'style-name'),
- ),
- (TEXTNS,u'index-entry-bibliography'): (
- (TEXTNS,u'bibliography-data-field'),
- ),
- (TEXTNS,u'index-source-style'): (
- (TEXTNS,u'style-name'),
- ),
- (TEXTNS,u'index-source-styles'): (
- (TEXTNS,u'outline-level'),
- ),
- (TEXTNS,u'index-title'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'list-level-style-bullet'): (
- (TEXTNS,u'bullet-char'),
- (TEXTNS,u'level'),
- ),
- (TEXTNS,u'list-level-style-image'): (
- (TEXTNS,u'level'),
- ),
- (TEXTNS,u'list-level-style-number'): (
- (TEXTNS,u'level'),
- ),
- (TEXTNS,u'list-style'): (
- (STYLENS,u'name'),
- ),
-# required_attributes
- (TEXTNS,u'measure'): (
- (TEXTNS,u'kind'),
- ),
- (TEXTNS,u'note'): (
- (TEXTNS,u'note-class'),
- ),
- (TEXTNS,u'note-ref'): (
- (TEXTNS,u'note-class'),
- ),
- (TEXTNS,u'notes-configuration'): (
- (TEXTNS,u'note-class'),
- ),
- (TEXTNS,u'object-index'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'object-index-entry-template'): (
- (TEXTNS,u'style-name'),
- ),
- (TEXTNS,u'outline-level-style'): (
- (TEXTNS,u'level'),
- ),
- (TEXTNS,u'page'): (
- (TEXTNS,u'master-page-name'),
- ),
- (TEXTNS,u'page-continuation'): (
- (TEXTNS,u'select-page'),
- ),
- (TEXTNS,u'placeholder'): (
- (TEXTNS,u'placeholder-type'),
- ),
- (TEXTNS,u'reference-mark'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'reference-mark-end'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'reference-mark-start'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'section'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'sequence'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'sequence-decl'): (
- (TEXTNS,u'display-outline-level'),
- (TEXTNS,u'name'),
- ),
-# required_attributes
- (TEXTNS,u'sort-key'): (
- (TEXTNS,u'key'),
- ),
- (TEXTNS,u'table-index'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'table-index-entry-template'): (
- (TEXTNS,u'style-name'),
- ),
- (TEXTNS,u'table-of-content'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'table-of-content-entry-template'): (
- (TEXTNS,u'style-name'),
- (TEXTNS,u'outline-level'),
- ),
- (TEXTNS,u'toc-mark'): (
- (TEXTNS,u'string-value'),
- ),
- (TEXTNS,u'toc-mark-end'): (
- (TEXTNS,u'id'),
- ),
- (TEXTNS,u'toc-mark-start'): (
- (TEXTNS,u'id'),
- ),
- (TEXTNS,u'user-defined'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'user-field-decl'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'user-field-get'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'user-field-input'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'user-index'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'user-index-entry-template'): (
- (TEXTNS,u'style-name'),
- (TEXTNS,u'outline-level'),
- ),
-# required_attributes
- (TEXTNS,u'user-index-mark'): (
- (TEXTNS,u'index-name'),
- (TEXTNS,u'string-value'),
- ),
- (TEXTNS,u'user-index-mark-end'): (
- (TEXTNS,u'id'),
- ),
- (TEXTNS,u'user-index-mark-start'): (
- (TEXTNS,u'index-name'),
- (TEXTNS,u'id'),
- ),
- (TEXTNS,u'user-index-source'): (
- (TEXTNS,u'index-name'),
- ),
- (TEXTNS,u'variable-decl'): (
- (TEXTNS,u'name'),
- (OFFICENS,u'value-type'),
- ),
- (TEXTNS,u'variable-get'): (
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'variable-input'): (
- (TEXTNS,u'name'),
- (OFFICENS,u'value-type'),
- ),
- (TEXTNS,u'variable-set'): (
- (TEXTNS,u'name'),
- ),
-}
-
-# Empty list means the element has no allowed attributes
-# None means anything goes
-
-allowed_attributes = {
- (DCNS,u'creator'):(
- ),
- (DCNS,u'date'):(
- ),
- (DCNS,u'description'):(
- ),
- (DCNS,u'language'):(
- ),
- (DCNS,u'subject'):(
- ),
- (DCNS,u'title'):(
- ),
-# Completes Dublin Core start
-# (DCNS,'contributor') : (
-# ),
-# (DCNS,'coverage') : (
-# ),
-# (DCNS,'format') : (
-# ),
-# (DCNS,'identifier') : (
-# ),
-# (DCNS,'publisher') : (
-# ),
-# (DCNS,'relation') : (
-# ),
-# (DCNS,'rights') : (
-# ),
-# (DCNS,'source') : (
-# ),
-# (DCNS,'type') : (
-# ),
-# Completes Dublin Core end
- (MATHNS,u'math'): None,
- (XFORMSNS,u'model'): None,
-# allowed_attributes
- (ANIMNS,u'animate'):(
- (ANIMNS,u'formula'),
- (ANIMNS,u'sub-item'),
- (SMILNS,u'accelerate'),
- (SMILNS,u'accumulate'),
- (SMILNS,u'additive'),
- (SMILNS,u'attributeName'),
- (SMILNS,u'autoReverse'),
- (SMILNS,u'begin'),
- (SMILNS,u'by'),
- (SMILNS,u'calcMode'),
- (SMILNS,u'decelerate'),
- (SMILNS,u'dur'),
- (SMILNS,u'end'),
- (SMILNS,u'fill'),
- (SMILNS,u'fillDefault'),
- (SMILNS,u'from'),
- (SMILNS,u'keySplines'),
- (SMILNS,u'keyTimes'),
- (SMILNS,u'repeatCount'),
- (SMILNS,u'repeatDur'),
- (SMILNS,u'restart'),
- (SMILNS,u'restartDefault'),
- (SMILNS,u'targetElement'),
- (SMILNS,u'to'),
- (SMILNS,u'values'),
- ),
-# allowed_attributes
- (ANIMNS,u'animateColor'):(
- (ANIMNS,u'color-interpolation'),
- (ANIMNS,u'color-interpolation-direction'),
- (ANIMNS,u'formula'),
- (ANIMNS,u'sub-item'),
- (SMILNS,u'accelerate'),
- (SMILNS,u'accumulate'),
- (SMILNS,u'additive'),
- (SMILNS,u'attributeName'),
- (SMILNS,u'autoReverse'),
- (SMILNS,u'begin'),
- (SMILNS,u'by'),
- (SMILNS,u'calcMode'),
- (SMILNS,u'decelerate'),
- (SMILNS,u'dur'),
- (SMILNS,u'end'),
- (SMILNS,u'fill'),
- (SMILNS,u'fillDefault'),
- (SMILNS,u'from'),
- (SMILNS,u'keySplines'),
- (SMILNS,u'keyTimes'),
- (SMILNS,u'repeatCount'),
- (SMILNS,u'repeatDur'),
- (SMILNS,u'restart'),
- (SMILNS,u'restartDefault'),
- (SMILNS,u'targetElement'),
- (SMILNS,u'to'),
- (SMILNS,u'values'),
- ),
-# allowed_attributes
- (ANIMNS,u'animateMotion'):(
- (ANIMNS,u'formula'),
- (ANIMNS,u'sub-item'),
- (SMILNS,u'accelerate'),
- (SMILNS,u'accumulate'),
- (SMILNS,u'additive'),
- (SMILNS,u'attributeName'),
- (SMILNS,u'autoReverse'),
- (SMILNS,u'begin'),
- (SMILNS,u'by'),
- (SMILNS,u'calcMode'),
- (SMILNS,u'decelerate'),
- (SMILNS,u'dur'),
- (SMILNS,u'end'),
- (SMILNS,u'fill'),
- (SMILNS,u'fillDefault'),
- (SMILNS,u'from'),
- (SMILNS,u'keySplines'),
- (SMILNS,u'keyTimes'),
- (SMILNS,u'repeatCount'),
- (SMILNS,u'repeatDur'),
- (SMILNS,u'restart'),
- (SMILNS,u'restartDefault'),
- (SMILNS,u'targetElement'),
- (SMILNS,u'to'),
- (SMILNS,u'values'),
- (SVGNS,u'origin'),
- (SVGNS,u'path'),
- ),
-# allowed_attributes
- (ANIMNS,u'animateTransform'):(
- (ANIMNS,u'formula'),
- (ANIMNS,u'sub-item'),
- (SMILNS,u'accelerate'),
- (SMILNS,u'accumulate'),
- (SMILNS,u'additive'),
- (SMILNS,u'attributeName'),
- (SMILNS,u'autoReverse'),
- (SMILNS,u'begin'),
- (SMILNS,u'by'),
- (SMILNS,u'decelerate'),
- (SMILNS,u'dur'),
- (SMILNS,u'end'),
- (SMILNS,u'fill'),
- (SMILNS,u'fillDefault'),
- (SMILNS,u'from'),
- (SMILNS,u'repeatCount'),
- (SMILNS,u'repeatDur'),
- (SMILNS,u'restart'),
- (SMILNS,u'restartDefault'),
- (SMILNS,u'targetElement'),
- (SMILNS,u'to'),
- (SMILNS,u'values'),
- (SVGNS,u'type'),
- ),
-# allowed_attributes
- (ANIMNS,u'audio'):(
- (ANIMNS,u'audio-level'),
- (ANIMNS,u'id'),
- (PRESENTATIONNS,u'group-id'),
- (PRESENTATIONNS,u'master-element'),
- (PRESENTATIONNS,u'node-type'),
- (PRESENTATIONNS,u'preset-class'),
- (PRESENTATIONNS,u'preset-id'),
- (PRESENTATIONNS,u'preset-sub-type'),
- (SMILNS,u'begin'),
- (SMILNS,u'dur'),
- (SMILNS,u'end'),
- (SMILNS,u'repeatCount'),
- (SMILNS,u'repeatDur'),
- (XLINKNS,u'href'),
- ),
- (ANIMNS,u'command'):(
- (PRESENTATIONNS,u'node-type'),
- (SMILNS,u'begin'),
- (SMILNS,u'end'),
- (PRESENTATIONNS,u'group-id'),
- (PRESENTATIONNS,u'preset-class'),
- (PRESENTATIONNS,u'preset-id'),
- (ANIMNS,u'sub-item'),
- (ANIMNS,u'command'),
- (PRESENTATIONNS,u'preset-sub-type'),
- (SMILNS,u'targetElement'),
- (ANIMNS,u'id'),
- (PRESENTATIONNS,u'master-element'),
- ),
-# allowed_attributes
- (ANIMNS,u'iterate'):(
- (ANIMNS,u'id'),
- (ANIMNS,u'iterate-interval'),
- (ANIMNS,u'iterate-type'),
- (ANIMNS,u'sub-item'),
- (PRESENTATIONNS,u'group-id'),
- (PRESENTATIONNS,u'master-element'),
- (PRESENTATIONNS,u'node-type'),
- (PRESENTATIONNS,u'preset-class'),
- (PRESENTATIONNS,u'preset-id'),
- (PRESENTATIONNS,u'preset-sub-type'),
- (SMILNS,u'accelerate'),
- (SMILNS,u'autoReverse'),
- (SMILNS,u'begin'),
- (SMILNS,u'decelerate'),
- (SMILNS,u'dur'),
- (SMILNS,u'end'),
- (SMILNS,u'endsync'),
- (SMILNS,u'fill'),
- (SMILNS,u'fillDefault'),
- (SMILNS,u'repeatCount'),
- (SMILNS,u'repeatDur'),
- (SMILNS,u'restart'),
- (SMILNS,u'restartDefault'),
- (SMILNS,u'targetElement'),
- ),
- (ANIMNS,u'par'):(
- (PRESENTATIONNS,u'node-type'),
- (SMILNS,u'decelerate'),
- (SMILNS,u'begin'),
- (SMILNS,u'end'),
- (PRESENTATIONNS,u'group-id'),
- (SMILNS,u'accelerate'),
- (SMILNS,u'repeatDur'),
- (SMILNS,u'repeatCount'),
- (SMILNS,u'autoReverse'),
- (PRESENTATIONNS,u'preset-class'),
- (SMILNS,u'fillDefault'),
- (PRESENTATIONNS,u'preset-id'),
- (PRESENTATIONNS,u'preset-sub-type'),
- (SMILNS,u'restartDefault'),
- (SMILNS,u'endsync'),
- (SMILNS,u'dur'),
- (SMILNS,u'fill'),
- (ANIMNS,u'id'),
- (SMILNS,u'restart'),
- (PRESENTATIONNS,u'master-element'),
- ),
-# allowed_attributes
- (ANIMNS,u'param'):(
- (ANIMNS,u'name'),
- (ANIMNS,u'value'),
- ),
- (ANIMNS,u'seq'):(
- (ANIMNS,u'id'),
- (PRESENTATIONNS,u'group-id'),
- (PRESENTATIONNS,u'master-element'),
- (PRESENTATIONNS,u'node-type'),
- (PRESENTATIONNS,u'preset-class'),
- (PRESENTATIONNS,u'preset-id'),
- (PRESENTATIONNS,u'preset-sub-type'),
- (SMILNS,u'accelerate'),
- (SMILNS,u'autoReverse'),
- (SMILNS,u'begin'),
- (SMILNS,u'decelerate'),
- (SMILNS,u'dur'),
- (SMILNS,u'end'),
- (SMILNS,u'endsync'),
- (SMILNS,u'fill'),
- (SMILNS,u'fillDefault'),
- (SMILNS,u'repeatCount'),
- (SMILNS,u'repeatDur'),
- (SMILNS,u'restart'),
- (SMILNS,u'restartDefault'),
- ),
- (ANIMNS,u'set'):(
- (ANIMNS,u'sub-item'),
- (SMILNS,u'accelerate'),
- (SMILNS,u'accumulate'),
- (SMILNS,u'autoReverse'),
- (SMILNS,u'additive'),
- (SMILNS,u'attributeName'),
- (SMILNS,u'begin'),
- (SMILNS,u'decelerate'),
- (SMILNS,u'dur'),
- (SMILNS,u'end'),
- (SMILNS,u'fill'),
- (SMILNS,u'fillDefault'),
- (SMILNS,u'repeatCount'),
- (SMILNS,u'repeatDur'),
- (SMILNS,u'restart'),
- (SMILNS,u'restartDefault'),
- (SMILNS,u'targetElement'),
- (SMILNS,u'to'),
-
- ),
-# allowed_attributes
- (ANIMNS,u'transitionFilter'):(
- (ANIMNS,u'formula'),
- (ANIMNS,u'sub-item'),
- (SMILNS,u'accelerate'),
- (SMILNS,u'accumulate'),
- (SMILNS,u'additive'),
- (SMILNS,u'autoReverse'),
- (SMILNS,u'begin'),
- (SMILNS,u'by'),
- (SMILNS,u'calcMode'),
- (SMILNS,u'decelerate'),
- (SMILNS,u'direction'),
- (SMILNS,u'dur'),
- (SMILNS,u'end'),
- (SMILNS,u'fadeColor'),
- (SMILNS,u'fill'),
- (SMILNS,u'fillDefault'),
- (SMILNS,u'from'),
- (SMILNS,u'mode'),
- (SMILNS,u'repeatCount'),
- (SMILNS,u'repeatDur'),
- (SMILNS,u'restart'),
- (SMILNS,u'restartDefault'),
- (SMILNS,u'subtype'),
- (SMILNS,u'targetElement'),
- (SMILNS,u'to'),
- (SMILNS,u'type'),
- (SMILNS,u'values'),
-
- ),
-# allowed_attributes
- (CHARTNS,u'axis'):(
- (CHARTNS,u'style-name'),
- (CHARTNS,u'dimension'),
- (CHARTNS,u'name'),
- ),
- (CHARTNS,u'categories'):(
- (TABLENS,u'cell-range-address'),
- ),
- (CHARTNS,u'chart'):(
- (CHARTNS,u'column-mapping'),
- (CHARTNS,u'row-mapping'),
- (SVGNS,u'height'),
- (SVGNS,u'width'),
- (CHARTNS,u'style-name'),
- (CHARTNS,u'class'),
- ),
- (CHARTNS,u'data-point'):(
- (CHARTNS,u'repeated'),
- (CHARTNS,u'style-name'),
- ),
- (CHARTNS,u'domain'):(
- (TABLENS,u'cell-range-address'),
- ),
- (CHARTNS,u'error-indicator'):(
- (CHARTNS,u'style-name'),
- ),
- (CHARTNS,u'floor'):(
- (SVGNS,u'width'),
- (CHARTNS,u'style-name'),
- ),
-# allowed_attributes
- (CHARTNS,u'footer'):(
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (TABLENS,u'cell-range'),
- (CHARTNS,u'style-name'),
- ),
- (CHARTNS,u'grid'):(
- (CHARTNS,u'style-name'),
- (CHARTNS,u'class'),
- ),
- (CHARTNS,u'legend'):(
- (CHARTNS,u'legend-align'),
- (STYLENS,u'legend-expansion-aspect-ratio'),
- (STYLENS,u'legend-expansion'),
- (CHARTNS,u'legend-position'),
- (CHARTNS,u'style-name'),
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- ),
- (CHARTNS,u'mean-value'):(
- (CHARTNS,u'style-name'),
- ),
- (CHARTNS,u'plot-area'):(
- (DR3DNS,u'ambient-color'),
- (DR3DNS,u'distance'),
- (DR3DNS,u'vrp'),
- (DR3DNS,u'focal-length'),
- (CHARTNS,u'data-source-has-labels'),
- (DR3DNS,u'lighting-mode'),
- (DR3DNS,u'shade-mode'),
- (DR3DNS,u'transform'),
- (DR3DNS,u'shadow-slant'),
- (SVGNS,u'height'),
- (SVGNS,u'width'),
- (CHARTNS,u'style-name'),
- (DR3DNS,u'vup'),
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (DR3DNS,u'vpn'),
- (TABLENS,u'cell-range-address'),
- (DR3DNS,u'projection'),
- ),
- (CHARTNS,u'regression-curve'):(
- (CHARTNS,u'style-name'),
- ),
- (CHARTNS,u'series'):(
- (CHARTNS,u'style-name'),
- (CHARTNS,u'attached-axis'),
- (CHARTNS,u'values-cell-range-address'),
- (CHARTNS,u'label-cell-address'),
- (CHARTNS,u'class'),
- ),
- (CHARTNS,u'stock-gain-marker'):(
- (CHARTNS,u'style-name'),
- ),
-# allowed_attributes
- (CHARTNS,u'stock-loss-marker'):(
- (CHARTNS,u'style-name'),
- ),
- (CHARTNS,u'stock-range-line'):(
- (CHARTNS,u'style-name'),
- ),
- (CHARTNS,u'subtitle'):(
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (TABLENS,u'cell-range'),
- (CHARTNS,u'style-name'),
- ),
- (CHARTNS,u'symbol-image'):(
- (XLINKNS,u'href'),
- ),
- (CHARTNS,u'title'):(
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (TABLENS,u'cell-range'),
- (CHARTNS,u'style-name'),
- ),
- (CHARTNS,u'wall'):(
- (SVGNS,u'width'),
- (CHARTNS,u'style-name'),
- ),
- (CONFIGNS,u'config-item'):(
- (CONFIGNS,u'type'),
- (CONFIGNS,u'name'),
- ),
- (CONFIGNS,u'config-item-map-entry'):(
- (CONFIGNS,u'name'),
- ),
- (CONFIGNS,u'config-item-map-indexed'):(
- (CONFIGNS,u'name'),
- ),
- (CONFIGNS,u'config-item-map-named'):(
- (CONFIGNS,u'name'),
- ),
- (CONFIGNS,u'config-item-set'):(
- (CONFIGNS,u'name'),
- ),
-# allowed_attributes
- (NUMBERNS,u'am-pm'):(
- ),
- (NUMBERNS,u'boolean'):(
- ),
- (NUMBERNS,u'boolean-style'):(
- (NUMBERNS,u'transliteration-language'),
- (STYLENS,u'name'),
- (STYLENS,u'display-name'),
- (NUMBERNS,u'language'),
- (NUMBERNS,u'title'),
- (NUMBERNS,u'country'),
- (NUMBERNS,u'transliteration-format'),
- (NUMBERNS,u'transliteration-style'),
- (STYLENS,u'volatile'),
- (NUMBERNS,u'transliteration-country'),
- ),
- (NUMBERNS,u'currency-style'):(
- (NUMBERNS,u'transliteration-language'),
- (STYLENS,u'name'),
- (STYLENS,u'display-name'),
- (NUMBERNS,u'language'),
- (NUMBERNS,u'title'),
- (NUMBERNS,u'country'),
- (NUMBERNS,u'transliteration-format'),
- (NUMBERNS,u'transliteration-style'),
- (STYLENS,u'volatile'),
- (NUMBERNS,u'transliteration-country'),
- (NUMBERNS,u'automatic-order'),
- ),
- (NUMBERNS,u'currency-symbol'):(
- (NUMBERNS,u'country'),
- (NUMBERNS,u'language'),
- ),
-# allowed_attributes
- (NUMBERNS,u'date-style'):(
- (NUMBERNS,u'transliteration-language'),
- (STYLENS,u'name'),
- (STYLENS,u'display-name'),
- (NUMBERNS,u'language'),
- (NUMBERNS,u'title'),
- (NUMBERNS,u'country'),
- (NUMBERNS,u'transliteration-format'),
- (NUMBERNS,u'transliteration-style'),
- (NUMBERNS,u'format-source'),
- (STYLENS,u'volatile'),
- (NUMBERNS,u'transliteration-country'),
- (NUMBERNS,u'automatic-order'),
- ),
- (NUMBERNS,u'day'):(
- (NUMBERNS,u'style'),
- (NUMBERNS,u'calendar'),
- ),
- (NUMBERNS,u'day-of-week'):(
- (NUMBERNS,u'style'),
- (NUMBERNS,u'calendar'),
- ),
- (NUMBERNS,u'embedded-text'):(
- (NUMBERNS,u'position'),
- ),
- (NUMBERNS,u'era'):(
- (NUMBERNS,u'style'),
- (NUMBERNS,u'calendar'),
- ),
- (NUMBERNS,u'fraction'):(
- (NUMBERNS,u'grouping'),
- (NUMBERNS,u'min-denominator-digits'),
- (NUMBERNS,u'min-numerator-digits'),
- (NUMBERNS,u'min-integer-digits'),
- (NUMBERNS,u'denominator-value'),
- ),
- (NUMBERNS,u'hours'):(
- (NUMBERNS,u'style'),
- ),
-# allowed_attributes
- (NUMBERNS,u'minutes'):(
- (NUMBERNS,u'style'),
- ),
- (NUMBERNS,u'month'):(
- (NUMBERNS,u'style'),
- (NUMBERNS,u'calendar'),
- (NUMBERNS,u'possessive-form'),
- (NUMBERNS,u'textual'),
- ),
- (NUMBERNS,u'number'):(
- (NUMBERNS,u'display-factor'),
- (NUMBERNS,u'decimal-places'),
- (NUMBERNS,u'decimal-replacement'),
- (NUMBERNS,u'min-integer-digits'),
- (NUMBERNS,u'grouping'),
- ),
- (NUMBERNS,u'number-style'):(
- (NUMBERNS,u'transliteration-language'),
- (STYLENS,u'name'),
- (STYLENS,u'display-name'),
- (NUMBERNS,u'language'),
- (NUMBERNS,u'title'),
- (NUMBERNS,u'country'),
- (NUMBERNS,u'transliteration-format'),
- (NUMBERNS,u'transliteration-style'),
- (STYLENS,u'volatile'),
- (NUMBERNS,u'transliteration-country'),
- ),
-# allowed_attributes
- (NUMBERNS,u'percentage-style'):(
- (NUMBERNS,u'transliteration-language'),
- (STYLENS,u'name'),
- (STYLENS,u'display-name'),
- (NUMBERNS,u'language'),
- (NUMBERNS,u'title'),
- (NUMBERNS,u'country'),
- (NUMBERNS,u'transliteration-format'),
- (NUMBERNS,u'transliteration-style'),
- (STYLENS,u'volatile'),
- (NUMBERNS,u'transliteration-country'),
- ),
- (NUMBERNS,u'quarter'):(
- (NUMBERNS,u'style'),
- (NUMBERNS,u'calendar'),
- ),
- (NUMBERNS,u'scientific-number'):(
- (NUMBERNS,u'min-exponent-digits'),
- (NUMBERNS,u'decimal-places'),
- (NUMBERNS,u'min-integer-digits'),
- (NUMBERNS,u'grouping'),
- ),
- (NUMBERNS,u'seconds'):(
- (NUMBERNS,u'style'),
- (NUMBERNS,u'decimal-places'),
- ),
- (NUMBERNS,u'text'):(
- ),
- (NUMBERNS,u'text-content'):(
- ),
- (NUMBERNS,u'text-style'):(
- (NUMBERNS,u'transliteration-language'),
- (STYLENS,u'name'),
- (STYLENS,u'display-name'),
- (NUMBERNS,u'language'),
- (NUMBERNS,u'title'),
- (NUMBERNS,u'country'),
- (NUMBERNS,u'transliteration-format'),
- (NUMBERNS,u'transliteration-style'),
- (STYLENS,u'volatile'),
- (NUMBERNS,u'transliteration-country'),
- ),
- (NUMBERNS,u'time-style'):(
- (NUMBERNS,u'transliteration-language'),
- (NUMBERNS,u'transliteration-format'),
- (STYLENS,u'name'),
- (STYLENS,u'display-name'),
- (NUMBERNS,u'language'),
- (NUMBERNS,u'title'),
- (NUMBERNS,u'country'),
- (NUMBERNS,u'truncate-on-overflow'),
- (NUMBERNS,u'transliteration-style'),
- (NUMBERNS,u'format-source'),
- (STYLENS,u'volatile'),
- (NUMBERNS,u'transliteration-country'),
- ),
- (NUMBERNS,u'week-of-year'):(
- (NUMBERNS,u'calendar'),
- ),
- (NUMBERNS,u'year'):(
- (NUMBERNS,u'style'),
- (NUMBERNS,u'calendar'),
- ),
- (DR3DNS,u'cube'):(
- (DR3DNS,u'min-edge'),
- (DR3DNS,u'max-edge'),
- (DRAWNS,u'layer'),
- (DR3DNS,u'transform'),
- (DRAWNS,u'z-index'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'style-name'),
- (PRESENTATIONNS,u'class-names'),
- (DRAWNS,u'id'),
- ),
- (DR3DNS,u'extrude'):(
- (DRAWNS,u'layer'),
- (SVGNS,u'd'),
- (DR3DNS,u'transform'),
- (SVGNS,u'viewBox'),
- (DRAWNS,u'z-index'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'style-name'),
- (PRESENTATIONNS,u'class-names'),
- (DRAWNS,u'id'),
- ),
- (DR3DNS,u'light'):(
- (DR3DNS,u'diffuse-color'),
- (DR3DNS,u'direction'),
- (DR3DNS,u'specular'),
- (DR3DNS,u'enabled'),
- ),
- (DR3DNS,u'rotate'):(
- (DRAWNS,u'layer'),
- (SVGNS,u'd'),
- (DR3DNS,u'transform'),
- (SVGNS,u'viewBox'),
- (DRAWNS,u'z-index'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'style-name'),
- (PRESENTATIONNS,u'class-names'),
- (DRAWNS,u'id'),
- ),
-# allowed_attributes
- (DR3DNS,u'scene'):(
- (DR3DNS,u'ambient-color'),
- (DR3DNS,u'distance'),
- (DR3DNS,u'focal-length'),
- (DR3DNS,u'lighting-mode'),
- (DR3DNS,u'projection'),
- (DR3DNS,u'shade-mode'),
- (DR3DNS,u'shadow-slant'),
- (DR3DNS,u'transform'),
- (DR3DNS,u'vpn'),
- (DR3DNS,u'vrp'),
- (DR3DNS,u'vup'),
- (DRAWNS,u'id'),
- (DRAWNS,u'caption-id'),
- (DRAWNS,u'layer'),
- (DRAWNS,u'z-index'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'class-names'),
- (PRESENTATIONNS,u'style-name'),
- (SVGNS,u'height'),
- (SVGNS,u'width'),
- (SVGNS,u'x'),
- (SVGNS,u'y'),
- (TABLENS,u'end-cell-address'),
- (TABLENS,u'end-x'),
- (TABLENS,u'end-y'),
- (TABLENS,u'table-background'),
- (TEXTNS,u'anchor-page-number'),
- (TEXTNS,u'anchor-type'),
- ),
- (DR3DNS,u'sphere'):(
- (DRAWNS,u'layer'),
- (DR3DNS,u'center'),
- (DR3DNS,u'transform'),
- (DRAWNS,u'z-index'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'style-name'),
- (PRESENTATIONNS,u'class-names'),
- (DRAWNS,u'id'),
- (DR3DNS,u'size'),
- ),
- (DRAWNS,u'a'):(
- (OFFICENS,u'name'),
- (OFFICENS,u'title'),
- (XLINKNS,u'show'),
- (OFFICENS,u'target-frame-name'),
- (XLINKNS,u'actuate'),
- (XLINKNS,u'href'),
- (XLINKNS,u'type'),
- (OFFICENS,u'server-map'),
- ),
- (DRAWNS,u'applet'):(
- (DRAWNS,u'code'),
- (XLINKNS,u'show'),
- (DRAWNS,u'object'),
- (XLINKNS,u'actuate'),
- (XLINKNS,u'href'),
- (XLINKNS,u'type'),
- (DRAWNS,u'archive'),
- (DRAWNS,u'may-script'),
- ),
- (DRAWNS,u'area-circle'):(
- (OFFICENS,u'name'),
- (XLINKNS,u'show'),
- (SVGNS,u'cx'),
- (XLINKNS,u'type'),
- (DRAWNS,u'nohref'),
- (SVGNS,u'cy'),
- (XLINKNS,u'href'),
- (SVGNS,u'r'),
- (OFFICENS,u'target-frame-name'),
- ),
- (DRAWNS,u'area-polygon'):(
- (OFFICENS,u'name'),
- (XLINKNS,u'show'),
- (XLINKNS,u'type'),
- (SVGNS,u'height'),
- (DRAWNS,u'nohref'),
- (SVGNS,u'width'),
- (XLINKNS,u'href'),
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (OFFICENS,u'target-frame-name'),
- (SVGNS,u'viewBox'),
- (DRAWNS,u'points'),
- ),
- (DRAWNS,u'area-rectangle'):(
- (OFFICENS,u'name'),
- (XLINKNS,u'show'),
- (XLINKNS,u'type'),
- (SVGNS,u'height'),
- (DRAWNS,u'nohref'),
- (SVGNS,u'width'),
- (XLINKNS,u'href'),
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (OFFICENS,u'target-frame-name'),
- ),
- (DRAWNS,u'caption'):(
- (TABLENS,u'table-background'),
- (DRAWNS,u'layer'),
- (DRAWNS,u'caption-id'),
- (TABLENS,u'end-cell-address'),
- (DRAWNS,u'name'),
- (DRAWNS,u'text-style-name'),
- (DRAWNS,u'caption-point-y'),
- (DRAWNS,u'caption-point-x'),
- (DRAWNS,u'transform'),
- (TABLENS,u'end-y'),
- (DRAWNS,u'corner-radius'),
- (SVGNS,u'width'),
- (DRAWNS,u'z-index'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'style-name'),
- (PRESENTATIONNS,u'class-names'),
- (TABLENS,u'end-x'),
- (TEXTNS,u'anchor-page-number'),
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (SVGNS,u'height'),
- (DRAWNS,u'id'),
- (TEXTNS,u'anchor-type'),
- ),
- (DRAWNS,u'circle'):(
- (DRAWNS,u'end-angle'),
- (DRAWNS,u'id'),
- (DRAWNS,u'kind'),
- (DRAWNS,u'layer'),
- (DRAWNS,u'name'),
- (DRAWNS,u'start-angle'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (DRAWNS,u'caption-id'),
- (DRAWNS,u'text-style-name'),
- (DRAWNS,u'transform'),
- (DRAWNS,u'z-index'),
- (PRESENTATIONNS,u'class-names'),
- (PRESENTATIONNS,u'style-name'),
- (SVGNS,u'cx'),
- (SVGNS,u'cy'),
- (SVGNS,u'height'),
- (SVGNS,u'r'),
- (SVGNS,u'width'),
- (SVGNS,u'x'),
- (SVGNS,u'y'),
- (TABLENS,u'end-cell-address'),
- (TABLENS,u'end-x'),
- (TABLENS,u'end-y'),
- (TABLENS,u'table-background'),
- (TEXTNS,u'anchor-page-number'),
- (TEXTNS,u'anchor-type'),
- ),
- (DRAWNS,u'connector'):(
- (DRAWNS,u'layer'),
- (DRAWNS,u'end-shape'),
- (TEXTNS,u'anchor-page-number'),
- (SVGNS,u'y1'),
- (SVGNS,u'y2'),
- (TABLENS,u'table-background'),
- (TABLENS,u'end-cell-address'),
- (DRAWNS,u'transform'),
- (DRAWNS,u'id'),
- (TABLENS,u'end-y'),
- (TABLENS,u'end-x'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'class-names'),
- (DRAWNS,u'caption-id'),
- (DRAWNS,u'type'),
- (DRAWNS,u'start-shape'),
- (DRAWNS,u'z-index'),
- (PRESENTATIONNS,u'style-name'),
- (DRAWNS,u'start-glue-point'),
- (SVGNS,u'x2'),
- (SVGNS,u'x1'),
- (TEXTNS,u'anchor-type'),
- (DRAWNS,u'line-skew'),
- (DRAWNS,u'name'),
- (DRAWNS,u'end-glue-point'),
- (DRAWNS,u'text-style-name'),
- ),
- (DRAWNS,u'contour-path'):(
- (SVGNS,u'd'),
- (SVGNS,u'width'),
- (DRAWNS,u'recreate-on-edit'),
- (SVGNS,u'viewBox'),
- (SVGNS,u'height'),
- ),
- (DRAWNS,u'contour-polygon'):(
- (SVGNS,u'width'),
- (DRAWNS,u'points'),
- (DRAWNS,u'recreate-on-edit'),
- (SVGNS,u'viewBox'),
- (SVGNS,u'height'),
- ),
- (DRAWNS,u'control'):(
- (DRAWNS,u'control'),
- (DRAWNS,u'layer'),
- (DRAWNS,u'caption-id'),
- (TABLENS,u'end-cell-address'),
- (DRAWNS,u'name'),
- (DRAWNS,u'text-style-name'),
- (TABLENS,u'table-background'),
- (DRAWNS,u'transform'),
- (SVGNS,u'height'),
- (SVGNS,u'width'),
- (DRAWNS,u'z-index'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'style-name'),
- (PRESENTATIONNS,u'class-names'),
- (TABLENS,u'end-x'),
- (TEXTNS,u'anchor-page-number'),
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (TABLENS,u'end-y'),
- (DRAWNS,u'id'),
- (TEXTNS,u'anchor-type'),
- ),
- (DRAWNS,u'custom-shape'):(
- (DRAWNS,u'engine'),
- (DRAWNS,u'caption-id'),
- (DRAWNS,u'layer'),
- (TABLENS,u'end-cell-address'),
- (DRAWNS,u'name'),
- (DRAWNS,u'text-style-name'),
- (TABLENS,u'table-background'),
- (DRAWNS,u'transform'),
- (SVGNS,u'height'),
- (SVGNS,u'width'),
- (DRAWNS,u'z-index'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'style-name'),
- (PRESENTATIONNS,u'class-names'),
- (TABLENS,u'end-x'),
- (TEXTNS,u'anchor-page-number'),
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (TABLENS,u'end-y'),
- (DRAWNS,u'data'),
- (DRAWNS,u'id'),
- (TEXTNS,u'anchor-type'),
- ),
-# allowed_attributes
- (DRAWNS,u'ellipse'):(
- (DRAWNS,u'layer'),
- (DRAWNS,u'start-angle'),
- (SVGNS,u'cy'),
- (SVGNS,u'cx'),
- (TABLENS,u'table-background'),
- (TABLENS,u'end-cell-address'),
- (SVGNS,u'rx'),
- (DRAWNS,u'transform'),
- (DRAWNS,u'id'),
- (SVGNS,u'width'),
- (TABLENS,u'end-y'),
- (TABLENS,u'end-x'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'class-names'),
- (DRAWNS,u'end-angle'),
- (DRAWNS,u'z-index'),
- (DRAWNS,u'caption-id'),
- (PRESENTATIONNS,u'style-name'),
- (SVGNS,u'height'),
- (TEXTNS,u'anchor-type'),
- (SVGNS,u'ry'),
- (DRAWNS,u'kind'),
- (DRAWNS,u'name'),
- (TEXTNS,u'anchor-page-number'),
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (DRAWNS,u'text-style-name'),
- ),
-# allowed_attributes
- (DRAWNS,u'enhanced-geometry'):(
- (DRAWNS,u'extrusion-rotation-center'),
- (DRAWNS,u'extrusion-shininess'),
- (DRAWNS,u'extrusion-rotation-angle'),
- (DRAWNS,u'extrusion-allowed'),
- (DRAWNS,u'extrusion-first-light-level'),
- (DRAWNS,u'extrusion-specularity'),
- (DRAWNS,u'extrusion-viewpoint'),
- (DRAWNS,u'extrusion-second-light-level'),
- (DRAWNS,u'extrusion-origin'),
- (DRAWNS,u'extrusion-color'),
- (SVGNS,u'viewBox'),
- (DR3DNS,u'projection'),
- (DRAWNS,u'extrusion-metal'),
- (DRAWNS,u'extrusion-number-of-line-segments'),
- (DRAWNS,u'text-path-same-letter-heights'),
- (DRAWNS,u'extrusion-first-light-harsh'),
- (DRAWNS,u'enhanced-path'),
- (DRAWNS,u'text-rotate-angle'),
- (DRAWNS,u'type'),
- (DRAWNS,u'glue-point-leaving-directions'),
- (DRAWNS,u'concentric-gradient-fill-allowed'),
- (DRAWNS,u'text-path-scale'),
- (DRAWNS,u'extrusion-brightness'),
- (DRAWNS,u'extrusion-first-light-direction'),
- (DRAWNS,u'extrusion-light-face'),
- (DRAWNS,u'text-path-allowed'),
- (DRAWNS,u'glue-points'),
- (DRAWNS,u'mirror-vertical'),
- (DRAWNS,u'extrusion-depth'),
- (DRAWNS,u'extrusion-diffusion'),
- (DRAWNS,u'extrusion-second-light-direction'),
- (DRAWNS,u'extrusion-skew'),
- (DR3DNS,u'shade-mode'),
- (DRAWNS,u'path-stretchpoint-y'),
- (DRAWNS,u'modifiers'),
- (DRAWNS,u'extrusion'),
- (DRAWNS,u'path-stretchpoint-x'),
- (DRAWNS,u'text-areas'),
- (DRAWNS,u'mirror-horizontal'),
- (DRAWNS,u'text-path-mode'),
- (DRAWNS,u'extrusion-second-light-harsh'),
- (DRAWNS,u'glue-point-type'),
- (DRAWNS,u'text-path'),
- ),
-# allowed_attributes
- (DRAWNS,u'equation'):(
- (DRAWNS,u'formula'),
- (DRAWNS,u'name'),
- ),
- (DRAWNS,u'fill-image'):(
- (DRAWNS,u'name'),
- (XLINKNS,u'show'),
- (XLINKNS,u'actuate'),
- (SVGNS,u'height'),
- (SVGNS,u'width'),
- (XLINKNS,u'href'),
- (DRAWNS,u'display-name'),
- (XLINKNS,u'type'),
- ),
- (DRAWNS,u'floating-frame'):(
- (XLINKNS,u'href'),
- (XLINKNS,u'actuate'),
- (DRAWNS,u'frame-name'),
- (XLINKNS,u'type'),
- (XLINKNS,u'show'),
- ),
- (DRAWNS,u'frame'):(
- (DRAWNS,u'copy-of'),
- (DRAWNS,u'id'),
- (DRAWNS,u'layer'),
- (DRAWNS,u'name'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'caption-id'),
- (DRAWNS,u'style-name'),
- (DRAWNS,u'text-style-name'),
- (DRAWNS,u'transform'),
- (DRAWNS,u'z-index'),
- (PRESENTATIONNS,u'class'),
- (PRESENTATIONNS,u'class-names'),
- (PRESENTATIONNS,u'placeholder'),
- (PRESENTATIONNS,u'style-name'),
- (PRESENTATIONNS,u'user-transformed'),
- (STYLENS,u'rel-height'),
- (STYLENS,u'rel-width'),
- (SVGNS,u'height'),
- (SVGNS,u'width'),
- (SVGNS,u'x'),
- (SVGNS,u'y'),
- (TABLENS,u'end-cell-address'),
- (TABLENS,u'end-x'),
- (TABLENS,u'end-y'),
- (TABLENS,u'table-background'),
- (TEXTNS,u'anchor-page-number'),
- (TEXTNS,u'anchor-type'),
- ),
-# allowed_attributes
- (DRAWNS,u'g'):(
- (DRAWNS,u'id'),
- (DRAWNS,u'caption-id'),
- (DRAWNS,u'name'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (DRAWNS,u'z-index'),
- (PRESENTATIONNS,u'class-names'),
- (PRESENTATIONNS,u'style-name'),
- (SVGNS,u'y'),
- (TABLENS,u'end-cell-address'),
- (TABLENS,u'end-x'),
- (TABLENS,u'end-y'),
- (TABLENS,u'table-background'),
- (TEXTNS,u'anchor-page-number'),
- (TEXTNS,u'anchor-type'),
- ),
- (DRAWNS,u'glue-point'):(
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (DRAWNS,u'align'),
- (DRAWNS,u'id'),
- (DRAWNS,u'escape-direction'),
- ),
- (DRAWNS,u'gradient'):(
- (DRAWNS,u'style'),
- (DRAWNS,u'angle'),
- (DRAWNS,u'name'),
- (DRAWNS,u'end-color'),
- (DRAWNS,u'start-color'),
- (DRAWNS,u'cy'),
- (DRAWNS,u'cx'),
- (DRAWNS,u'display-name'),
- (DRAWNS,u'border'),
- (DRAWNS,u'end-intensity'),
- (DRAWNS,u'start-intensity'),
- ),
- (DRAWNS,u'handle'):(
- (DRAWNS,u'handle-radius-range-minimum'),
- (DRAWNS,u'handle-switched'),
- (DRAWNS,u'handle-range-y-maximum'),
- (DRAWNS,u'handle-mirror-horizontal'),
- (DRAWNS,u'handle-range-x-maximum'),
- (DRAWNS,u'handle-mirror-vertical'),
- (DRAWNS,u'handle-range-y-minimum'),
- (DRAWNS,u'handle-radius-range-maximum'),
- (DRAWNS,u'handle-range-x-minimum'),
- (DRAWNS,u'handle-position'),
- (DRAWNS,u'handle-polar'),
- ),
- (DRAWNS,u'hatch'):(
- (DRAWNS,u'distance'),
- (DRAWNS,u'style'),
- (DRAWNS,u'name'),
- (DRAWNS,u'color'),
- (DRAWNS,u'display-name'),
- (DRAWNS,u'rotation'),
- ),
- (DRAWNS,u'image'):(
- (DRAWNS,u'filter-name'),
- (XLINKNS,u'href'),
- (XLINKNS,u'type'),
- (XLINKNS,u'actuate'),
- (XLINKNS,u'show'),
- ),
- (DRAWNS,u'image-map'):(
- ),
- (DRAWNS,u'layer'):(
- (DRAWNS,u'protected'),
- (DRAWNS,u'name'),
- (DRAWNS,u'display'),
- ),
-# allowed_attributes
- (DRAWNS,u'layer-set'):(
- ),
- (DRAWNS,u'line'):(
- (DRAWNS,u'class-names'),
- (DRAWNS,u'id'),
- (DRAWNS,u'caption-id'),
- (DRAWNS,u'layer'),
- (DRAWNS,u'name'),
- (DRAWNS,u'style-name'),
- (DRAWNS,u'text-style-name'),
- (DRAWNS,u'transform'),
- (DRAWNS,u'z-index'),
- (PRESENTATIONNS,u'class-names'),
- (PRESENTATIONNS,u'style-name'),
- (SVGNS,u'x1'),
- (SVGNS,u'x2'),
- (SVGNS,u'y1'),
- (SVGNS,u'y2'),
- (TABLENS,u'end-cell-address'),
- (TABLENS,u'end-x'),
- (TABLENS,u'end-y'),
- (TABLENS,u'table-background'),
- (TEXTNS,u'anchor-page-number'),
- (TEXTNS,u'anchor-type'),
- ),
- (DRAWNS,u'marker'):(
- (SVGNS,u'd'),
- (DRAWNS,u'display-name'),
- (DRAWNS,u'name'),
- (SVGNS,u'viewBox'),
- ),
-# allowed_attributes
- (DRAWNS,u'measure'):(
- (TABLENS,u'end-cell-address'),
- (DRAWNS,u'layer'),
- (SVGNS,u'y2'),
- (DRAWNS,u'name'),
- (DRAWNS,u'text-style-name'),
- (DRAWNS,u'transform'),
- (TABLENS,u'table-background'),
- (SVGNS,u'x2'),
- (DRAWNS,u'z-index'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'style-name'),
- (PRESENTATIONNS,u'class-names'),
- (TABLENS,u'end-x'),
- (TEXTNS,u'anchor-page-number'),
- (SVGNS,u'y1'),
- (DRAWNS,u'caption-id'),
- (TABLENS,u'end-y'),
- (SVGNS,u'x1'),
- (DRAWNS,u'id'),
- (TEXTNS,u'anchor-type'),
- ),
- (DRAWNS,u'object'):(
- (XLINKNS,u'type'),
- (XLINKNS,u'href'),
- (DRAWNS,u'notify-on-update-of-ranges'),
- (XLINKNS,u'actuate'),
- (XLINKNS,u'show'),
- ),
- (DRAWNS,u'object-ole'):(
- (XLINKNS,u'actuate'),
- (XLINKNS,u'href'),
- (XLINKNS,u'type'),
- (DRAWNS,u'class-id'),
- (XLINKNS,u'show'),
- ),
- (DRAWNS,u'opacity'):(
- (DRAWNS,u'style'),
- (DRAWNS,u'angle'),
- (DRAWNS,u'name'),
- (DRAWNS,u'start'),
- (DRAWNS,u'cy'),
- (DRAWNS,u'cx'),
- (DRAWNS,u'end'),
- (DRAWNS,u'display-name'),
- (DRAWNS,u'border'),
- ),
- (DRAWNS,u'page'):(
- (PRESENTATIONNS,u'presentation-page-layout-name'),
- (DRAWNS,u'name'),
- (DRAWNS,u'nav-order'),
- (PRESENTATIONNS,u'use-footer-name'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'use-header-name'),
- (DRAWNS,u'master-page-name'),
- (DRAWNS,u'id'),
- (PRESENTATIONNS,u'use-date-time-name'),
- ),
- (DRAWNS,u'page-thumbnail'):(
- (TABLENS,u'table-background'),
- (DRAWNS,u'caption-id'),
- (PRESENTATIONNS,u'user-transformed'),
- (DRAWNS,u'layer'),
- (TABLENS,u'end-cell-address'),
- (DRAWNS,u'name'),
- (DRAWNS,u'id'),
- (DRAWNS,u'transform'),
- (DRAWNS,u'page-number'),
- (SVGNS,u'height'),
- (SVGNS,u'width'),
- (DRAWNS,u'z-index'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'style-name'),
- (PRESENTATIONNS,u'class-names'),
- (TABLENS,u'end-x'),
- (TEXTNS,u'anchor-page-number'),
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (TABLENS,u'end-y'),
- (PRESENTATIONNS,u'placeholder'),
- (PRESENTATIONNS,u'class'),
- (TEXTNS,u'anchor-type'),
- ),
- (DRAWNS,u'param'):(
- (DRAWNS,u'name'),
- (DRAWNS,u'value'),
- ),
-# allowed_attributes
- (DRAWNS,u'path'):(
- (TABLENS,u'table-background'),
- (DRAWNS,u'layer'),
- (TABLENS,u'end-cell-address'),
- (DRAWNS,u'caption-id'),
- (SVGNS,u'd'),
- (DRAWNS,u'text-style-name'),
- (DRAWNS,u'id'),
- (DRAWNS,u'transform'),
- (SVGNS,u'height'),
- (SVGNS,u'width'),
- (DRAWNS,u'z-index'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'style-name'),
- (PRESENTATIONNS,u'class-names'),
- (TABLENS,u'end-x'),
- (TEXTNS,u'anchor-type'),
- (TEXTNS,u'anchor-page-number'),
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (TABLENS,u'end-y'),
- (SVGNS,u'viewBox'),
- (DRAWNS,u'name'),
- ),
- (DRAWNS,u'plugin'):(
- (XLINKNS,u'type'),
- (XLINKNS,u'href'),
- (DRAWNS,u'mime-type'),
- (XLINKNS,u'actuate'),
- (XLINKNS,u'show'),
- ),
- (DRAWNS,u'polygon'):(
- (DRAWNS,u'caption-id'),
- (TABLENS,u'table-background'),
- (DRAWNS,u'layer'),
- (TABLENS,u'end-cell-address'),
- (DRAWNS,u'name'),
- (DRAWNS,u'text-style-name'),
- (DRAWNS,u'id'),
- (DRAWNS,u'transform'),
- (PRESENTATIONNS,u'style-name'),
- (SVGNS,u'height'),
- (SVGNS,u'width'),
- (DRAWNS,u'z-index'),
- (DRAWNS,u'points'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'class-names'),
- (TABLENS,u'end-x'),
- (TEXTNS,u'anchor-page-number'),
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (TABLENS,u'end-y'),
- (SVGNS,u'viewBox'),
- (TEXTNS,u'anchor-type'),
- ),
-# allowed_attributes
- (DRAWNS,u'polyline'):(
- (TABLENS,u'table-background'),
- (DRAWNS,u'layer'),
- (TABLENS,u'end-cell-address'),
- (DRAWNS,u'name'),
- (DRAWNS,u'text-style-name'),
- (DRAWNS,u'id'),
- (DRAWNS,u'caption-id'),
- (DRAWNS,u'transform'),
- (PRESENTATIONNS,u'style-name'),
- (SVGNS,u'height'),
- (SVGNS,u'width'),
- (DRAWNS,u'z-index'),
- (DRAWNS,u'points'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'class-names'),
- (TABLENS,u'end-x'),
- (TEXTNS,u'anchor-page-number'),
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (TABLENS,u'end-y'),
- (SVGNS,u'viewBox'),
- (TEXTNS,u'anchor-type'),
- ),
- (DRAWNS,u'rect'):(
- (DRAWNS,u'corner-radius'),
- (DRAWNS,u'caption-id'),
- (DRAWNS,u'id'),
- (DRAWNS,u'layer'),
- (DRAWNS,u'name'),
- (DRAWNS,u'text-style-name'),
- (DRAWNS,u'transform'),
- (DRAWNS,u'z-index'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'class-names'),
- (PRESENTATIONNS,u'style-name'),
- (SVGNS,u'height'),
- (SVGNS,u'width'),
- (SVGNS,u'x'),
- (SVGNS,u'y'),
- (TABLENS,u'end-cell-address'),
- (TABLENS,u'end-x'),
- (TABLENS,u'end-y'),
- (TABLENS,u'table-background'),
- (TEXTNS,u'anchor-page-number'),
- (TEXTNS,u'anchor-type'),
- ),
-# allowed_attributes
- (DRAWNS,u'regular-polygon'):(
- (TABLENS,u'table-background'),
- (DRAWNS,u'layer'),
- (TABLENS,u'end-cell-address'),
- (DRAWNS,u'caption-id'),
- (DRAWNS,u'name'),
- (DRAWNS,u'text-style-name'),
- (TEXTNS,u'anchor-page-number'),
- (DRAWNS,u'concave'),
- (DRAWNS,u'sharpness'),
- (DRAWNS,u'transform'),
- (SVGNS,u'height'),
- (SVGNS,u'width'),
- (DRAWNS,u'z-index'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'style-name'),
- (PRESENTATIONNS,u'class-names'),
- (TABLENS,u'end-x'),
- (DRAWNS,u'corners'),
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (TABLENS,u'end-y'),
- (DRAWNS,u'id'),
- (TEXTNS,u'anchor-type'),
- ),
- (DRAWNS,u'stroke-dash'):(
- (DRAWNS,u'distance'),
- (DRAWNS,u'dots1-length'),
- (DRAWNS,u'name'),
- (DRAWNS,u'dots2-length'),
- (DRAWNS,u'style'),
- (DRAWNS,u'dots1'),
- (DRAWNS,u'display-name'),
- (DRAWNS,u'dots2'),
- ),
- (DRAWNS,u'text-box'):(
- (FONS,u'min-width'),
- (DRAWNS,u'corner-radius'),
- (FONS,u'max-height'),
- (FONS,u'min-height'),
- (DRAWNS,u'chain-next-name'),
- (FONS,u'max-width'),
- (TEXTNS,u'id'),
- ),
-# allowed_attributes
- (FORMNS,u'button'):(
- (FORMNS,u'tab-stop'),
- (FORMNS,u'focus-on-click'),
- (FORMNS,u'image-align'),
- (FORMNS,u'name'),
- (FORMNS,u'tab-index'),
- (FORMNS,u'control-implementation'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'button-type'),
- (FORMNS,u'title'),
- (FORMNS,u'default-button'),
- (FORMNS,u'value'),
- (FORMNS,u'label'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'image-data'),
- (XLINKNS,u'href'),
- (FORMNS,u'toggle'),
- (FORMNS,u'xforms-submission'),
- (OFFICENS,u'target-frame'),
- (FORMNS,u'id'),
- (FORMNS,u'image-position'),
- ),
- (FORMNS,u'checkbox'):(
- (FORMNS,u'tab-stop'),
- (FORMNS,u'image-align'),
- (FORMNS,u'name'),
- (FORMNS,u'tab-index'),
- (FORMNS,u'control-implementation'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'data-field'),
- (FORMNS,u'title'),
- (FORMNS,u'is-tristate'),
- (FORMNS,u'current-state'),
- (FORMNS,u'value'),
- (FORMNS,u'label'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'state'),
- (FORMNS,u'visual-effect'),
- (FORMNS,u'id'),
- (FORMNS,u'image-position'),
- ),
- (FORMNS,u'column'):(
- (FORMNS,u'control-implementation'),
- (FORMNS,u'text-style-name'),
- (FORMNS,u'name'),
- (FORMNS,u'label'),
- ),
- (FORMNS,u'combobox'):(
- (FORMNS,u'convert-empty-to-null'),
- (FORMNS,u'max-length'),
- (FORMNS,u'tab-stop'),
- (FORMNS,u'name'),
- (FORMNS,u'dropdown'),
- (FORMNS,u'control-implementation'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'data-field'),
- (FORMNS,u'tab-index'),
- (FORMNS,u'auto-complete'),
- (FORMNS,u'value'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'readonly'),
- (FORMNS,u'list-source'),
- (FORMNS,u'title'),
- (FORMNS,u'list-source-type'),
- (FORMNS,u'id'),
- (FORMNS,u'current-value'),
- (FORMNS,u'size'),
- ),
-# allowed_attributes
- (FORMNS,u'connection-resource'):(
- (XLINKNS,u'href'),
- ),
- (FORMNS,u'date'):(
- (FORMNS,u'convert-empty-to-null'),
- (FORMNS,u'max-length'),
- (FORMNS,u'tab-stop'),
- (FORMNS,u'name'),
- (FORMNS,u'tab-index'),
- (FORMNS,u'control-implementation'),
- (FORMNS,u'min-value'),
- (FORMNS,u'data-field'),
- (FORMNS,u'max-value'),
- (FORMNS,u'value'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'readonly'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'title'),
- (FORMNS,u'id'),
- (FORMNS,u'current-value'),
- ),
- (FORMNS,u'file'):(
- (FORMNS,u'max-length'),
- (FORMNS,u'tab-stop'),
- (FORMNS,u'name'),
- (FORMNS,u'tab-index'),
- (FORMNS,u'control-implementation'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'title'),
- (FORMNS,u'value'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'readonly'),
- (FORMNS,u'id'),
- (FORMNS,u'current-value'),
- ),
- (FORMNS,u'fixed-text'):(
- (FORMNS,u'name'),
- (FORMNS,u'for'),
- (FORMNS,u'title'),
- (FORMNS,u'control-implementation'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'multi-line'),
- (FORMNS,u'label'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'id'),
- ),
-# allowed_attributes
- (FORMNS,u'form'):(
- (XLINKNS,u'actuate'),
- (XLINKNS,u'href'),
- (FORMNS,u'allow-deletes'),
- (FORMNS,u'command-type'),
- (FORMNS,u'apply-filter'),
- (XLINKNS,u'type'),
- (FORMNS,u'method'),
- (OFFICENS,u'target-frame'),
- (FORMNS,u'navigation-mode'),
- (FORMNS,u'detail-fields'),
- (FORMNS,u'master-fields'),
- (FORMNS,u'allow-updates'),
- (FORMNS,u'name'),
- (FORMNS,u'tab-cycle'),
- (FORMNS,u'control-implementation'),
- (FORMNS,u'escape-processing'),
- (FORMNS,u'filter'),
- (FORMNS,u'command'),
- (FORMNS,u'datasource'),
- (FORMNS,u'enctype'),
- (FORMNS,u'allow-inserts'),
- (FORMNS,u'ignore-result'),
- (FORMNS,u'order'),
- ),
- (FORMNS,u'formatted-text'):(
- (FORMNS,u'convert-empty-to-null'),
- (FORMNS,u'max-length'),
- (FORMNS,u'tab-stop'),
- (FORMNS,u'max-value'),
- (FORMNS,u'name'),
- (FORMNS,u'tab-index'),
- (FORMNS,u'control-implementation'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'data-field'),
- (FORMNS,u'title'),
- (FORMNS,u'value'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'readonly'),
- (FORMNS,u'min-value'),
- (FORMNS,u'validation'),
- (FORMNS,u'id'),
- (FORMNS,u'current-value'),
- ),
- (FORMNS,u'frame'):(
- (FORMNS,u'name'),
- (FORMNS,u'for'),
- (FORMNS,u'title'),
- (FORMNS,u'control-implementation'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'label'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'id'),
- ),
-# allowed_attributes
- (FORMNS,u'generic-control'):(
- (FORMNS,u'control-implementation'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'name'),
- (FORMNS,u'id'),
- ),
- (FORMNS,u'grid'):(
- (FORMNS,u'tab-stop'),
- (FORMNS,u'name'),
- (FORMNS,u'tab-index'),
- (FORMNS,u'control-implementation'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'title'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'id'),
- ),
- (FORMNS,u'hidden'):(
- (FORMNS,u'control-implementation'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'name'),
- (FORMNS,u'value'),
- (FORMNS,u'id'),
- ),
- (FORMNS,u'image'):(
- (FORMNS,u'tab-stop'),
- (FORMNS,u'name'),
- (FORMNS,u'tab-index'),
- (FORMNS,u'control-implementation'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'button-type'),
- (FORMNS,u'title'),
- (FORMNS,u'value'),
- (OFFICENS,u'target-frame'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'image-data'),
- (XLINKNS,u'href'),
- (FORMNS,u'id'),
- ),
- (FORMNS,u'image-frame'):(
- (FORMNS,u'name'),
- (FORMNS,u'title'),
- (FORMNS,u'control-implementation'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'data-field'),
- (FORMNS,u'readonly'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'image-data'),
- (FORMNS,u'id'),
- ),
- (FORMNS,u'item'):(
- (FORMNS,u'label'),
- ),
- (FORMNS,u'list-property'):(
- (FORMNS,u'property-name'),
- (OFFICENS,u'value-type'),
- ),
- (FORMNS,u'list-value'):(
- (OFFICENS,u'string-value'),
- ),
-# allowed_attributes
- (FORMNS,u'listbox'):(
- (FORMNS,u'tab-stop'),
- (FORMNS,u'bound-column'),
- (FORMNS,u'multiple'),
- (FORMNS,u'name'),
- (FORMNS,u'dropdown'),
- (FORMNS,u'control-implementation'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'data-field'),
- (FORMNS,u'tab-index'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'list-source'),
- (FORMNS,u'title'),
- (FORMNS,u'list-source-type'),
- (FORMNS,u'id'),
- (FORMNS,u'xforms-list-source'),
- (FORMNS,u'size'),
- ),
- (FORMNS,u'number'):(
- (FORMNS,u'convert-empty-to-null'),
- (FORMNS,u'max-length'),
- (FORMNS,u'tab-stop'),
- (FORMNS,u'name'),
- (FORMNS,u'tab-index'),
- (FORMNS,u'control-implementation'),
- (FORMNS,u'min-value'),
- (FORMNS,u'data-field'),
- (FORMNS,u'max-value'),
- (FORMNS,u'value'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'readonly'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'title'),
- (FORMNS,u'id'),
- (FORMNS,u'current-value'),
- ),
- (FORMNS,u'option'):(
- (FORMNS,u'current-selected'),
- (FORMNS,u'selected'),
- (FORMNS,u'value'),
- (FORMNS,u'label'),
- ),
- (FORMNS,u'password'):(
- (FORMNS,u'convert-empty-to-null'),
- (FORMNS,u'max-length'),
- (FORMNS,u'tab-stop'),
- (FORMNS,u'name'),
- (FORMNS,u'tab-index'),
- (FORMNS,u'control-implementation'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'title'),
- (FORMNS,u'value'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'echo-char'),
- (FORMNS,u'id'),
- ),
- (FORMNS,u'properties'):(
- ),
- (FORMNS,u'property'):(
- (OFFICENS,u'string-value'),
- (OFFICENS,u'value'),
- (OFFICENS,u'boolean-value'),
- (FORMNS,u'property-name'),
- (OFFICENS,u'currency'),
- (OFFICENS,u'date-value'),
- (OFFICENS,u'value-type'),
- (OFFICENS,u'time-value'),
- ),
- (FORMNS,u'radio'):(
- (FORMNS,u'tab-stop'),
- (FORMNS,u'selected'),
- (FORMNS,u'image-align'),
- (FORMNS,u'name'),
- (FORMNS,u'tab-index'),
- (FORMNS,u'control-implementation'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'data-field'),
- (FORMNS,u'current-selected'),
- (FORMNS,u'value'),
- (FORMNS,u'label'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'title'),
- (FORMNS,u'visual-effect'),
- (FORMNS,u'id'),
- (FORMNS,u'image-position'),
- ),
- (FORMNS,u'text'):(
- (FORMNS,u'convert-empty-to-null'),
- (FORMNS,u'max-length'),
- (FORMNS,u'tab-stop'),
- (FORMNS,u'name'),
- (FORMNS,u'tab-index'),
- (FORMNS,u'control-implementation'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'data-field'),
- (FORMNS,u'title'),
- (FORMNS,u'value'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'readonly'),
- (FORMNS,u'id'),
- (FORMNS,u'current-value'),
- ),
- (FORMNS,u'textarea'):(
- (FORMNS,u'convert-empty-to-null'),
- (FORMNS,u'max-length'),
- (FORMNS,u'tab-stop'),
- (FORMNS,u'name'),
- (FORMNS,u'tab-index'),
- (FORMNS,u'control-implementation'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'data-field'),
- (FORMNS,u'title'),
- (FORMNS,u'value'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'readonly'),
- (FORMNS,u'id'),
- (FORMNS,u'current-value'),
- ),
- (FORMNS,u'time'):(
- (FORMNS,u'convert-empty-to-null'),
- (FORMNS,u'max-length'),
- (FORMNS,u'tab-stop'),
- (FORMNS,u'name'),
- (FORMNS,u'tab-index'),
- (FORMNS,u'control-implementation'),
- (FORMNS,u'min-value'),
- (FORMNS,u'data-field'),
- (FORMNS,u'max-value'),
- (FORMNS,u'value'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'readonly'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'title'),
- (FORMNS,u'id'),
- (FORMNS,u'current-value'),
- ),
- (FORMNS,u'value-range'):(
- (FORMNS,u'tab-stop'),
- (FORMNS,u'max-value'),
- (FORMNS,u'name'),
- (FORMNS,u'tab-index'),
- (FORMNS,u'control-implementation'),
- (XFORMSNS,u'bind'),
- (FORMNS,u'title'),
- (FORMNS,u'value'),
- (FORMNS,u'disabled'),
- (FORMNS,u'printable'),
- (FORMNS,u'orientation'),
- (FORMNS,u'page-step-size'),
- (FORMNS,u'delay-for-repeat'),
- (FORMNS,u'min-value'),
- (FORMNS,u'id'),
- (FORMNS,u'step-size'),
- ),
- (MANIFESTNS,'algorithm') : (
- (MANIFESTNS,'algorithm-name'),
- (MANIFESTNS,'initialisation-vector'),
- ),
- (MANIFESTNS,'encryption-data') : (
- (MANIFESTNS,'checksum-type'),
- (MANIFESTNS,'checksum'),
- ),
- (MANIFESTNS,'file-entry') : (
- (MANIFESTNS,'full-path'),
- (MANIFESTNS,'media-type'),
- (MANIFESTNS,'size'),
- ),
- (MANIFESTNS,'key-derivation') : (
- (MANIFESTNS,'key-derivation-name'),
- (MANIFESTNS,'salt'),
- (MANIFESTNS,'iteration-count'),
- ),
- (MANIFESTNS,u'manifest'):(
- ),
-# allowed_attributes
- (METANS,u'auto-reload'):(
- (METANS,u'delay'),
- (XLINKNS,u'actuate'),
- (XLINKNS,u'href'),
- (XLINKNS,u'type'),
- (XLINKNS,u'show'),
- ),
- (METANS,u'creation-date'):(
- ),
- (METANS,u'date-string'):(
- ),
- (METANS,u'document-statistic'):(
- (METANS,u'non-whitespace-character-count'),
- (METANS,u'ole-object-count'),
- (METANS,u'table-count'),
- (METANS,u'row-count'),
- (METANS,u'character-count'),
- (METANS,u'sentence-count'),
- (METANS,u'draw-count'),
- (METANS,u'paragraph-count'),
- (METANS,u'word-count'),
- (METANS,u'object-count'),
- (METANS,u'syllable-count'),
- (METANS,u'image-count'),
- (METANS,u'page-count'),
- (METANS,u'frame-count'),
- (METANS,u'cell-count'),
- ),
- (METANS,u'editing-cycles'):(
- ),
- (METANS,u'editing-duration'):(
- ),
- (METANS,u'generator'):(
- ),
-# allowed_attributes
- (METANS,u'hyperlink-behaviour'):(
- (OFFICENS,u'target-frame-name'),
- (XLINKNS,u'show'),
- ),
- (METANS,u'initial-creator'):(
- ),
- (METANS,u'keyword'):(
- ),
- (METANS,u'print-date'):(
- ),
- (METANS,u'printed-by'):(
- ),
- (METANS,u'template'):(
- (METANS,u'date'),
- (XLINKNS,u'actuate'),
- (XLINKNS,u'href'),
- (XLINKNS,u'type'),
- (XLINKNS,u'title'),
- ),
- (METANS,u'user-defined'):(
- (METANS,u'name'),
- (METANS,u'value-type'),
- ),
- (OFFICENS,u'annotation'):(
- (DRAWNS,u'layer'),
- (SVGNS,u'height'),
- (TEXTNS,u'anchor-page-number'),
- (TABLENS,u'table-background'),
- (TABLENS,u'end-cell-address'),
- (DRAWNS,u'transform'),
- (DRAWNS,u'id'),
- (SVGNS,u'width'),
- (DRAWNS,u'class-names'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'class-names'),
- (TABLENS,u'end-x'),
- (DRAWNS,u'text-style-name'),
- (DRAWNS,u'z-index'),
- (PRESENTATIONNS,u'style-name'),
- (TEXTNS,u'anchor-type'),
- (DRAWNS,u'name'),
- (DRAWNS,u'caption-point-y'),
- (DRAWNS,u'caption-point-x'),
- (DRAWNS,u'corner-radius'),
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (TABLENS,u'end-y'),
- (OFFICENS,u'display'),
- ),
- (OFFICENS,u'automatic-styles'):(
- ),
- (OFFICENS,u'binary-data'):(
- ),
- (OFFICENS,u'body'):(
- ),
- (OFFICENS,u'change-info'):(
- ),
- (OFFICENS,u'chart'):(
- ),
- (OFFICENS,u'dde-source'):(
- (OFFICENS,u'dde-application'),
- (OFFICENS,u'automatic-update'),
- (OFFICENS,u'conversion-mode'),
- (OFFICENS,u'dde-item'),
- (OFFICENS,u'dde-topic'),
- (OFFICENS,u'name'),
- ),
- (OFFICENS,u'document'):(
- (OFFICENS,u'mimetype'),
- (OFFICENS,u'version'),
- ),
- (OFFICENS,u'document-content'):(
- (OFFICENS,u'version'),
- ),
- (OFFICENS,u'document-meta'):(
- (OFFICENS,u'version'),
- ),
- (OFFICENS,u'document-settings'):(
- (OFFICENS,u'version'),
- ),
- (OFFICENS,u'document-styles'):(
- (OFFICENS,u'version'),
- ),
- (OFFICENS,u'drawing'):(
- ),
- (OFFICENS,u'event-listeners'):(
- ),
- (OFFICENS,u'font-face-decls'):(
- ),
- (OFFICENS,u'forms'):(
- (FORMNS,u'automatic-focus'),
- (FORMNS,u'apply-design-mode'),
- ),
- (OFFICENS,u'image'):(
- ),
-# allowed_attributes
- (OFFICENS,u'master-styles'):(
- ),
- (OFFICENS,u'meta'):(
- ),
- (OFFICENS,u'presentation'):(
- ),
- (OFFICENS,u'script'):(
- (SCRIPTNS,u'language'),
- ),
- (OFFICENS,u'scripts'):(
- ),
- (OFFICENS,u'settings'):(
- ),
- (OFFICENS,u'spreadsheet'):(
- (TABLENS,u'structure-protected'),
- (TABLENS,u'protection-key'),
- ),
- (OFFICENS,u'styles'):(
- ),
- (OFFICENS,u'text'):(
- (TEXTNS,u'global'),
- (TEXTNS,u'use-soft-page-breaks'),
- ),
- (PRESENTATIONNS,u'animation-group'):(
- ),
- (PRESENTATIONNS,u'animations'):(
- ),
- (PRESENTATIONNS,u'date-time'):(
- ),
- (PRESENTATIONNS,u'date-time-decl'):(
- (PRESENTATIONNS,u'source'),
- (STYLENS,u'data-style-name'),
- (PRESENTATIONNS,u'name'),
- ),
- (PRESENTATIONNS,u'dim'):(
- (DRAWNS,u'color'),
- (DRAWNS,u'shape-id'),
- ),
- (PRESENTATIONNS,u'event-listener'):(
- (PRESENTATIONNS,u'direction'),
- (XLINKNS,u'show'),
- (XLINKNS,u'type'),
- (XLINKNS,u'actuate'),
- (PRESENTATIONNS,u'effect'),
- (SCRIPTNS,u'event-name'),
- (PRESENTATIONNS,u'start-scale'),
- (XLINKNS,u'href'),
- (PRESENTATIONNS,u'verb'),
- (PRESENTATIONNS,u'action'),
- (PRESENTATIONNS,u'speed'),
- ),
- (PRESENTATIONNS,u'footer'):(
- ),
- (PRESENTATIONNS,u'footer-decl'):(
- (PRESENTATIONNS,u'name'),
- ),
- (PRESENTATIONNS,u'header'):(
- ),
- (PRESENTATIONNS,u'header-decl'):(
- (PRESENTATIONNS,u'name'),
- ),
- (PRESENTATIONNS,u'hide-shape'):(
- (PRESENTATIONNS,u'direction'),
- (PRESENTATIONNS,u'effect'),
- (PRESENTATIONNS,u'delay'),
- (PRESENTATIONNS,u'start-scale'),
- (PRESENTATIONNS,u'path-id'),
- (PRESENTATIONNS,u'speed'),
- (DRAWNS,u'shape-id'),
- ),
-# allowed_attributes
- (PRESENTATIONNS,u'hide-text'):(
- (PRESENTATIONNS,u'direction'),
- (PRESENTATIONNS,u'effect'),
- (PRESENTATIONNS,u'delay'),
- (PRESENTATIONNS,u'start-scale'),
- (PRESENTATIONNS,u'path-id'),
- (PRESENTATIONNS,u'speed'),
- (DRAWNS,u'shape-id'),
- ),
- (PRESENTATIONNS,u'notes'):(
- (STYLENS,u'page-layout-name'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'use-header-name'),
- (PRESENTATIONNS,u'use-date-time-name'),
- (PRESENTATIONNS,u'use-footer-name'),
- ),
- (PRESENTATIONNS,u'placeholder'):(
- (SVGNS,u'y'),
- (SVGNS,u'x'),
- (SVGNS,u'height'),
- (PRESENTATIONNS,u'object'),
- (SVGNS,u'width'),
- ),
- (PRESENTATIONNS,u'play'):(
- (PRESENTATIONNS,u'speed'),
- (DRAWNS,u'shape-id'),
- ),
-# allowed_attributes
- (PRESENTATIONNS,u'settings'):(
- (PRESENTATIONNS,u'animations'),
- (PRESENTATIONNS,u'endless'),
- (PRESENTATIONNS,u'force-manual'),
- (PRESENTATIONNS,u'full-screen'),
- (PRESENTATIONNS,u'mouse-as-pen'),
- (PRESENTATIONNS,u'mouse-visible'),
- (PRESENTATIONNS,u'pause'),
- (PRESENTATIONNS,u'show'),
- (PRESENTATIONNS,u'show-end-of-presentation-slide'),
- (PRESENTATIONNS,u'show-logo'),
- (PRESENTATIONNS,u'start-page'),
- (PRESENTATIONNS,u'start-with-navigator'),
- (PRESENTATIONNS,u'stay-on-top'),
- (PRESENTATIONNS,u'transition-on-click'),
- ),
- (PRESENTATIONNS,u'show'):(
- (PRESENTATIONNS,u'name'),
- (PRESENTATIONNS,u'pages'),
- ),
- (PRESENTATIONNS,u'show-shape'):(
- (PRESENTATIONNS,u'direction'),
- (PRESENTATIONNS,u'effect'),
- (PRESENTATIONNS,u'delay'),
- (PRESENTATIONNS,u'start-scale'),
- (PRESENTATIONNS,u'path-id'),
- (PRESENTATIONNS,u'speed'),
- (DRAWNS,u'shape-id'),
- ),
- (PRESENTATIONNS,u'show-text'):(
- (PRESENTATIONNS,u'direction'),
- (PRESENTATIONNS,u'effect'),
- (PRESENTATIONNS,u'delay'),
- (PRESENTATIONNS,u'start-scale'),
- (PRESENTATIONNS,u'path-id'),
- (PRESENTATIONNS,u'speed'),
- (DRAWNS,u'shape-id'),
- ),
- (PRESENTATIONNS,u'sound'):(
- (XLINKNS,u'actuate'),
- (XLINKNS,u'href'),
- (XLINKNS,u'type'),
- (PRESENTATIONNS,u'play-full'),
- (XLINKNS,u'show'),
- ),
-# allowed_attributes
- (SCRIPTNS,u'event-listener'):(
- (SCRIPTNS,u'language'),
- (SCRIPTNS,u'macro-name'),
- (XLINKNS,u'actuate'),
- (SCRIPTNS,u'event-name'),
- (XLINKNS,u'href'),
- (XLINKNS,u'type'),
- ),
- (STYLENS,u'background-image'):(
- (DRAWNS,u'opacity'),
- (STYLENS,u'repeat'),
- (XLINKNS,u'show'),
- (XLINKNS,u'actuate'),
- (STYLENS,u'filter-name'),
- (XLINKNS,u'href'),
- (STYLENS,u'position'),
- (XLINKNS,u'type'),
- ),
- (STYLENS,u'chart-properties'): (
- (CHARTNS,u'connect-bars'),
- (CHARTNS,u'data-label-number'),
- (CHARTNS,u'data-label-symbol'),
- (CHARTNS,u'data-label-text'),
- (CHARTNS,u'deep'),
- (CHARTNS,u'display-label'),
- (CHARTNS,u'error-category'),
- (CHARTNS,u'error-lower-indicator'),
- (CHARTNS,u'error-lower-limit'),
- (CHARTNS,u'error-margin'),
- (CHARTNS,u'error-percentage'),
- (CHARTNS,u'error-upper-indicator'),
- (CHARTNS,u'error-upper-limit'),
- (CHARTNS,u'gap-width'),
- (CHARTNS,u'interpolation'),
- (CHARTNS,u'interval-major'),
- (CHARTNS,u'interval-minor-divisor'),
- (CHARTNS,u'japanese-candle-stick'),
- (CHARTNS,u'label-arrangement'),
- (CHARTNS,u'lines'),
- (CHARTNS,u'link-data-style-to-source'),
- (CHARTNS,u'logarithmic'),
- (CHARTNS,u'maximum'),
- (CHARTNS,u'mean-value'),
- (CHARTNS,u'minimum'),
- (CHARTNS,u'origin'),
- (CHARTNS,u'overlap'),
- (CHARTNS,u'percentage'),
- (CHARTNS,u'pie-offset'),
- (CHARTNS,u'regression-type'),
- (CHARTNS,u'scale-text'),
- (CHARTNS,u'series-source'),
- (CHARTNS,u'solid-type'),
- (CHARTNS,u'spline-order'),
- (CHARTNS,u'spline-resolution'),
- (CHARTNS,u'stacked'),
- (CHARTNS,u'symbol-height'),
- (CHARTNS,u'symbol-name'),
- (CHARTNS,u'symbol-type'),
- (CHARTNS,u'symbol-width'),
- (CHARTNS,u'text-overlap'),
- (CHARTNS,u'three-dimensional'),
- (CHARTNS,u'tick-marks-major-inner'),
- (CHARTNS,u'tick-marks-major-outer'),
- (CHARTNS,u'tick-marks-minor-inner'),
- (CHARTNS,u'tick-marks-minor-outer'),
- (CHARTNS,u'vertical'),
- (CHARTNS,u'visible'),
- (STYLENS,u'direction'),
- (STYLENS,u'rotation-angle'),
- (TEXTNS,u'line-break'),
- ),
- (STYLENS,u'column'):(
- (FONS,u'end-indent'),
- (FONS,u'space-before'),
- (FONS,u'start-indent'),
- (FONS,u'space-after'),
- (STYLENS,u'rel-width'),
- ),
- (STYLENS,u'column-sep'):(
- (STYLENS,u'color'),
- (STYLENS,u'width'),
- (STYLENS,u'style'),
- (STYLENS,u'vertical-align'),
- (STYLENS,u'height'),
- ),
- (STYLENS,u'columns'):(
- (FONS,u'column-count'),
- (FONS,u'column-gap'),
- ),
- (STYLENS,u'default-style'):(
- (STYLENS,u'family'),
- ),
-# allowed_attributes
- (STYLENS,u'drawing-page-properties'): (
- (DRAWNS,u'fill'),
- (DRAWNS,u'fill-color'),
- (DRAWNS,u'secondary-fill-color'),
- (DRAWNS,u'fill-gradient-name'),
- (DRAWNS,u'gradient-step-count'),
- (DRAWNS,u'fill-hatch-name'),
- (DRAWNS,u'fill-hatch-solid'),
- (DRAWNS,u'fill-image-name'),
- (STYLENS,u'repeat'),
- (DRAWNS,u'fill-image-width'),
- (DRAWNS,u'fill-image-height'),
- (DRAWNS,u'fill-image-ref-point-x'),
- (DRAWNS,u'fill-image-ref-point-y'),
- (DRAWNS,u'fill-image-ref-point'),
- (DRAWNS,u'tile-repeat-offset'),
- (DRAWNS,u'opacity'),
- (DRAWNS,u'opacity-name'),
- (SVGNS,u'fill-rule'),
- (PRESENTATIONNS,u'transition-type'),
- (PRESENTATIONNS,u'transition-style'),
- (PRESENTATIONNS,u'transition-speed'),
- (SMILNS,u'type'),
- (SMILNS,u'subtype'),
- (SMILNS,u'direction'),
- (SMILNS,u'fadeColor'),
- (PRESENTATIONNS,u'duration'),
- (PRESENTATIONNS,u'visibility'),
- (DRAWNS,u'background-size'),
- (PRESENTATIONNS,u'background-objects-visible'),
- (PRESENTATIONNS,u'background-visible'),
- (PRESENTATIONNS,u'display-header'),
- (PRESENTATIONNS,u'display-footer'),
- (PRESENTATIONNS,u'display-page-number'),
- (PRESENTATIONNS,u'display-date-time'),
- ),
- (STYLENS,u'drop-cap'):(
- (STYLENS,u'distance'),
- (STYLENS,u'length'),
- (STYLENS,u'style-name'),
- (STYLENS,u'lines'),
- ),
-# allowed_attributes
- (STYLENS,u'font-face'):(
- (STYLENS,u'font-adornments'),
- (STYLENS,u'font-charset'),
- (STYLENS,u'font-family-generic'),
- (STYLENS,u'font-pitch'),
- (STYLENS,u'name'),
- (SVGNS,u'accent-height'),
- (SVGNS,u'alphabetic'),
- (SVGNS,u'ascent'),
- (SVGNS,u'bbox'),
- (SVGNS,u'cap-height'),
- (SVGNS,u'descent'),
- (SVGNS,u'font-family'),
- (SVGNS,u'font-size'),
- (SVGNS,u'font-stretch'),
- (SVGNS,u'font-style'),
- (SVGNS,u'font-variant'),
- (SVGNS,u'font-weight'),
- (SVGNS,u'hanging'),
- (SVGNS,u'ideographic'),
- (SVGNS,u'mathematical'),
- (SVGNS,u'overline-position'),
- (SVGNS,u'overline-thickness'),
- (SVGNS,u'panose-1'),
- (SVGNS,u'slope'),
- (SVGNS,u'stemh'),
- (SVGNS,u'stemv'),
- (SVGNS,u'strikethrough-position'),
- (SVGNS,u'strikethrough-thickness'),
- (SVGNS,u'underline-position'),
- (SVGNS,u'underline-thickness'),
- (SVGNS,u'unicode-range'),
- (SVGNS,u'units-per-em'),
- (SVGNS,u'v-alphabetic'),
- (SVGNS,u'v-hanging'),
- (SVGNS,u'v-ideographic'),
- (SVGNS,u'v-mathematical'),
- (SVGNS,u'widths'),
- (SVGNS,u'x-height'),
- ),
- (STYLENS,u'footer'):(
- (STYLENS,u'display'),
- ),
- (STYLENS,u'footer-left'):(
- (STYLENS,u'display'),
- ),
- (STYLENS,u'footer-style'):(
- ),
- (STYLENS,u'footnote-sep'):(
- (STYLENS,u'distance-after-sep'),
- (STYLENS,u'color'),
- (STYLENS,u'rel-width'),
- (STYLENS,u'width'),
- (STYLENS,u'distance-before-sep'),
- (STYLENS,u'line-style'),
- (STYLENS,u'adjustment'),
- ),
-# allowed_attributes
- (STYLENS,u'graphic-properties'): (
- (DR3DNS,u'ambient-color'),
- (DR3DNS,u'back-scale'),
- (DR3DNS,u'backface-culling'),
- (DR3DNS,u'close-back'),
- (DR3DNS,u'close-front'),
- (DR3DNS,u'depth'),
- (DR3DNS,u'diffuse-color'),
- (DR3DNS,u'edge-rounding'),
- (DR3DNS,u'edge-rounding-mode'),
- (DR3DNS,u'emissive-color'),
- (DR3DNS,u'end-angle'),
- (DR3DNS,u'horizontal-segments'),
- (DR3DNS,u'lighting-mode'),
- (DR3DNS,u'normals-direction'),
- (DR3DNS,u'normals-kind'),
- (DR3DNS,u'shadow'),
- (DR3DNS,u'shininess'),
- (DR3DNS,u'specular-color'),
- (DR3DNS,u'texture-filter'),
- (DR3DNS,u'texture-generation-mode-x'),
- (DR3DNS,u'texture-generation-mode-y'),
- (DR3DNS,u'texture-kind'),
- (DR3DNS,u'texture-mode'),
- (DR3DNS,u'vertical-segments'),
- (DRAWNS,u'auto-grow-height'),
- (DRAWNS,u'auto-grow-width'),
- (DRAWNS,u'blue'),
- (DRAWNS,u'caption-angle'),
- (DRAWNS,u'caption-angle-type'),
- (DRAWNS,u'caption-escape'),
- (DRAWNS,u'caption-escape-direction'),
- (DRAWNS,u'caption-fit-line-length'),
- (DRAWNS,u'caption-gap'),
- (DRAWNS,u'caption-line-length'),
- (DRAWNS,u'caption-type'),
- (DRAWNS,u'color-inversion'),
- (DRAWNS,u'color-mode'),
- (DRAWNS,u'contrast'),
- (DRAWNS,u'decimal-places'),
- (DRAWNS,u'end-guide'),
- (DRAWNS,u'end-line-spacing-horizontal'),
- (DRAWNS,u'end-line-spacing-vertical'),
- (DRAWNS,u'fill'),
- (DRAWNS,u'fill-color'),
- (DRAWNS,u'fill-gradient-name'),
- (DRAWNS,u'fill-hatch-name'),
- (DRAWNS,u'fill-hatch-solid'),
- (DRAWNS,u'fill-image-height'),
- (DRAWNS,u'fill-image-name'),
- (DRAWNS,u'fill-image-ref-point'),
- (DRAWNS,u'fill-image-ref-point-x'),
- (DRAWNS,u'fill-image-ref-point-y'),
- (DRAWNS,u'fill-image-width'),
-# allowed_attributes
- (DRAWNS,u'fit-to-contour'),
- (DRAWNS,u'fit-to-size'),
- (DRAWNS,u'frame-display-border'),
- (DRAWNS,u'frame-display-scrollbar'),
- (DRAWNS,u'frame-margin-horizontal'),
- (DRAWNS,u'frame-margin-vertical'),
- (DRAWNS,u'gamma'),
- (DRAWNS,u'gradient-step-count'),
- (DRAWNS,u'green'),
- (DRAWNS,u'guide-distance'),
- (DRAWNS,u'guide-overhang'),
- (DRAWNS,u'image-opacity'),
- (DRAWNS,u'line-distance'),
- (DRAWNS,u'luminance'),
- (DRAWNS,u'marker-end'),
- (DRAWNS,u'marker-end-center'),
- (DRAWNS,u'marker-end-width'),
- (DRAWNS,u'marker-start'),
- (DRAWNS,u'marker-start-center'),
- (DRAWNS,u'marker-start-width'),
- (DRAWNS,u'measure-align'),
- (DRAWNS,u'measure-vertical-align'),
- (DRAWNS,u'ole-draw-aspect'),
- (DRAWNS,u'opacity'),
- (DRAWNS,u'opacity-name'),
- (DRAWNS,u'parallel'),
- (DRAWNS,u'placing'),
- (DRAWNS,u'red'),
- (DRAWNS,u'secondary-fill-color'),
- (DRAWNS,u'shadow'),
- (DRAWNS,u'shadow-color'),
- (DRAWNS,u'shadow-offset-x'),
- (DRAWNS,u'shadow-offset-y'),
- (DRAWNS,u'shadow-opacity'),
- (DRAWNS,u'show-unit'),
- (DRAWNS,u'start-guide'),
- (DRAWNS,u'start-line-spacing-horizontal'),
- (DRAWNS,u'start-line-spacing-vertical'),
- (DRAWNS,u'stroke'),
- (DRAWNS,u'stroke-dash'),
- (DRAWNS,u'stroke-dash-names'),
- (DRAWNS,u'stroke-linejoin'),
- (DRAWNS,u'symbol-color'),
- (DRAWNS,u'textarea-horizontal-align'),
- (DRAWNS,u'textarea-vertical-align'),
- (DRAWNS,u'tile-repeat-offset'),
- (DRAWNS,u'unit'),
- (DRAWNS,u'visible-area-height'),
- (DRAWNS,u'visible-area-left'),
- (DRAWNS,u'visible-area-top'),
- (DRAWNS,u'visible-area-width'),
- (DRAWNS,u'wrap-influence-on-position'),
-# allowed_attributes
- (FONS,u'background-color'),
- (FONS,u'border'),
- (FONS,u'border-bottom'),
- (FONS,u'border-left'),
- (FONS,u'border-right'),
- (FONS,u'border-top'),
- (FONS,u'clip'),
- (FONS,u'margin'),
- (FONS,u'margin-bottom'),
- (FONS,u'margin-left'),
- (FONS,u'margin-right'),
- (FONS,u'margin-top'),
- (FONS,u'max-height'),
- (FONS,u'max-width'),
- (FONS,u'min-height'),
- (FONS,u'min-width'),
- (FONS,u'padding'),
- (FONS,u'padding-bottom'),
- (FONS,u'padding-left'),
- (FONS,u'padding-right'),
- (FONS,u'padding-top'),
- (FONS,u'wrap-option'),
- (STYLENS,u'border-line-width'),
- (STYLENS,u'border-line-width-bottom'),
- (STYLENS,u'border-line-width-left'),
- (STYLENS,u'border-line-width-right'),
- (STYLENS,u'border-line-width-top'),
- (STYLENS,u'editable'),
- (STYLENS,u'flow-with-text'),
- (STYLENS,u'horizontal-pos'),
- (STYLENS,u'horizontal-rel'),
- (STYLENS,u'mirror'),
- (STYLENS,u'number-wrapped-paragraphs'),
- (STYLENS,u'overflow-behavior'),
- (STYLENS,u'print-content'),
- (STYLENS,u'protect'),
- (STYLENS,u'rel-height'),
- (STYLENS,u'rel-width'),
- (STYLENS,u'repeat'),
- (STYLENS,u'run-through'),
- (STYLENS,u'shadow'),
- (STYLENS,u'vertical-pos'),
- (STYLENS,u'vertical-rel'),
- (STYLENS,u'wrap'),
- (STYLENS,u'wrap-contour'),
- (STYLENS,u'wrap-contour-mode'),
- (STYLENS,u'wrap-dynamic-threshold'),
- (STYLENS,u'writing-mode'),
- (SVGNS,u'fill-rule'),
- (SVGNS,u'height'),
- (SVGNS,u'stroke-color'),
- (SVGNS,u'stroke-opacity'),
- (SVGNS,u'stroke-width'),
- (SVGNS,u'width'),
- (SVGNS,u'x'),
- (SVGNS,u'y'),
- (TEXTNS,u'anchor-page-number'),
- (TEXTNS,u'anchor-type'),
- (TEXTNS,u'animation'),
- (TEXTNS,u'animation-delay'),
- (TEXTNS,u'animation-direction'),
- (TEXTNS,u'animation-repeat'),
- (TEXTNS,u'animation-start-inside'),
- (TEXTNS,u'animation-steps'),
- (TEXTNS,u'animation-stop-inside'),
- ),
- (STYLENS,u'handout-master'):(
- (PRESENTATIONNS,u'presentation-page-layout-name'),
- (STYLENS,u'page-layout-name'),
- (PRESENTATIONNS,u'use-footer-name'),
- (DRAWNS,u'style-name'),
- (PRESENTATIONNS,u'use-header-name'),
- (PRESENTATIONNS,u'use-date-time-name'),
- ),
-# allowed_attributes
- (STYLENS,u'header'):(
- (STYLENS,u'display'),
- ),
- (STYLENS,u'header-footer-properties'): (
- (FONS,u'background-color'),
- (FONS,u'border'),
- (FONS,u'border-bottom'),
- (FONS,u'border-left'),
- (FONS,u'border-right'),
- (FONS,u'border-top'),
- (FONS,u'margin'),
- (FONS,u'margin-bottom'),
- (FONS,u'margin-left'),
- (FONS,u'margin-right'),
- (FONS,u'margin-top'),
- (FONS,u'min-height'),
- (FONS,u'padding'),
- (FONS,u'padding-bottom'),
- (FONS,u'padding-left'),
- (FONS,u'padding-right'),
- (FONS,u'padding-top'),
- (STYLENS,u'border-line-width'),
- (STYLENS,u'border-line-width-bottom'),
- (STYLENS,u'border-line-width-left'),
- (STYLENS,u'border-line-width-right'),
- (STYLENS,u'border-line-width-top'),
- (STYLENS,u'dynamic-spacing'),
- (STYLENS,u'shadow'),
- (SVGNS,u'height'),
- ),
- (STYLENS,u'header-left'):(
- (STYLENS,u'display'),
- ),
- (STYLENS,u'header-style'):(
- ),
-# allowed_attributes
- (STYLENS,u'list-level-properties'): (
- (FONS,u'height'),
- (FONS,u'text-align'),
- (FONS,u'width'),
- (STYLENS,u'font-name'),
- (STYLENS,u'vertical-pos'),
- (STYLENS,u'vertical-rel'),
- (SVGNS,u'y'),
- (TEXTNS,u'min-label-distance'),
- (TEXTNS,u'min-label-width'),
- (TEXTNS,u'space-before'),
- ),
- (STYLENS,u'map'):(
- (STYLENS,u'apply-style-name'),
- (STYLENS,u'base-cell-address'),
- (STYLENS,u'condition'),
- ),
- (STYLENS,u'master-page'):(
- (STYLENS,u'page-layout-name'),
- (STYLENS,u'display-name'),
- (DRAWNS,u'style-name'),
- (STYLENS,u'name'),
- (STYLENS,u'next-style-name'),
- ),
- (STYLENS,u'page-layout'):(
- (STYLENS,u'name'),
- (STYLENS,u'page-usage'),
- ),
-# allowed_attributes
- (STYLENS,u'page-layout-properties'): (
- (FONS,u'background-color'),
- (FONS,u'border'),
- (FONS,u'border-bottom'),
- (FONS,u'border-left'),
- (FONS,u'border-right'),
- (FONS,u'border-top'),
- (FONS,u'margin'),
- (FONS,u'margin-bottom'),
- (FONS,u'margin-left'),
- (FONS,u'margin-right'),
- (FONS,u'margin-top'),
- (FONS,u'padding'),
- (FONS,u'padding-bottom'),
- (FONS,u'padding-left'),
- (FONS,u'padding-right'),
- (FONS,u'padding-top'),
- (FONS,u'page-height'),
- (FONS,u'page-width'),
- (STYLENS,u'border-line-width'),
- (STYLENS,u'border-line-width-bottom'),
- (STYLENS,u'border-line-width-left'),
- (STYLENS,u'border-line-width-right'),
- (STYLENS,u'border-line-width-top'),
- (STYLENS,u'first-page-number'),
- (STYLENS,u'footnote-max-height'),
- (STYLENS,u'layout-grid-base-height'),
- (STYLENS,u'layout-grid-color'),
- (STYLENS,u'layout-grid-display'),
- (STYLENS,u'layout-grid-lines'),
- (STYLENS,u'layout-grid-mode'),
- (STYLENS,u'layout-grid-print'),
- (STYLENS,u'layout-grid-ruby-below'),
- (STYLENS,u'layout-grid-ruby-height'),
- (STYLENS,u'num-format'),
- (STYLENS,u'num-letter-sync'),
- (STYLENS,u'num-prefix'),
- (STYLENS,u'num-suffix'),
- (STYLENS,u'paper-tray-name'),
- (STYLENS,u'print'),
- (STYLENS,u'print-orientation'),
- (STYLENS,u'print-page-order'),
- (STYLENS,u'register-truth-ref-style-name'),
- (STYLENS,u'scale-to'),
- (STYLENS,u'scale-to-pages'),
- (STYLENS,u'shadow'),
- (STYLENS,u'table-centering'),
- (STYLENS,u'writing-mode'),
- ),
-# allowed_attributes
- (STYLENS,u'paragraph-properties'): (
- (FONS,u'background-color'),
- (FONS,u'border'),
- (FONS,u'border-bottom'),
- (FONS,u'border-left'),
- (FONS,u'border-right'),
- (FONS,u'border-top'),
- (FONS,u'break-after'),
- (FONS,u'break-before'),
- (FONS,u'hyphenation-keep'),
- (FONS,u'hyphenation-ladder-count'),
- (FONS,u'keep-together'),
- (FONS,u'keep-with-next'),
- (FONS,u'line-height'),
- (FONS,u'margin'),
- (FONS,u'margin-bottom'),
- (FONS,u'margin-left'),
- (FONS,u'margin-right'),
- (FONS,u'margin-top'),
- (FONS,u'orphans'),
- (FONS,u'padding'),
- (FONS,u'padding-bottom'),
- (FONS,u'padding-left'),
- (FONS,u'padding-right'),
- (FONS,u'padding-top'),
- (FONS,u'text-align'),
- (FONS,u'text-align-last'),
- (FONS,u'text-indent'),
- (FONS,u'widows'),
- (STYLENS,u'auto-text-indent'),
- (STYLENS,u'background-transparency'),
- (STYLENS,u'border-line-width'),
- (STYLENS,u'border-line-width-bottom'),
- (STYLENS,u'border-line-width-left'),
- (STYLENS,u'border-line-width-right'),
- (STYLENS,u'border-line-width-top'),
- (STYLENS,u'font-independent-line-spacing'),
- (STYLENS,u'justify-single-word'),
- (STYLENS,u'line-break'),
- (STYLENS,u'line-height-at-least'),
- (STYLENS,u'line-spacing'),
- (STYLENS,u'page-number'),
- (STYLENS,u'punctuation-wrap'),
- (STYLENS,u'register-true'),
- (STYLENS,u'shadow'),
- (STYLENS,u'snap-to-layout-grid'),
- (STYLENS,u'tab-stop-distance'),
- (STYLENS,u'text-autospace'),
- (STYLENS,u'vertical-align'),
- (STYLENS,u'writing-mode'),
- (STYLENS,u'writing-mode-automatic'),
- (TEXTNS,u'line-number'),
- (TEXTNS,u'number-lines'),
- ),
- (STYLENS,u'presentation-page-layout'):(
- (STYLENS,u'display-name'),
- (STYLENS,u'name'),
- ),
-# allowed_attributes
- (STYLENS,u'region-center'):(
- ),
- (STYLENS,u'region-left'):(
- ),
- (STYLENS,u'region-right'):(
- ),
- (STYLENS,u'ruby-properties'): (
- (STYLENS,u'ruby-position'),
- (STYLENS,u'ruby-align'),
- ),
- (STYLENS,u'section-properties'): (
- (FONS,u'background-color'),
- (FONS,u'margin-left'),
- (FONS,u'margin-right'),
- (STYLENS,u'protect'),
- (STYLENS,u'writing-mode'),
- (TEXTNS,u'dont-balance-text-columns'),
- ),
- (STYLENS,u'style'):(
- (STYLENS,u'family'),
- (STYLENS,u'list-style-name'),
- (STYLENS,u'name'),
- (STYLENS,u'auto-update'),
- (STYLENS,u'default-outline-level'),
- (STYLENS,u'class'),
- (STYLENS,u'next-style-name'),
- (STYLENS,u'data-style-name'),
- (STYLENS,u'master-page-name'),
- (STYLENS,u'display-name'),
- (STYLENS,u'parent-style-name'),
- ),
-# allowed_attributes
- (STYLENS,u'tab-stop'):(
- (STYLENS,u'leader-text-style'),
- (STYLENS,u'leader-width'),
- (STYLENS,u'leader-style'),
- (STYLENS,u'char'),
- (STYLENS,u'leader-color'),
- (STYLENS,u'position'),
- (STYLENS,u'leader-text'),
- (STYLENS,u'type'),
- (STYLENS,u'leader-type'),
- ),
- (STYLENS,u'tab-stops'):(
- ),
- (STYLENS,u'table-cell-properties'): (
- (FONS,u'background-color'),
- (FONS,u'border'),
- (FONS,u'border-bottom'),
- (FONS,u'border-left'),
- (FONS,u'border-right'),
- (FONS,u'border-top'),
- (FONS,u'padding'),
- (FONS,u'padding-bottom'),
- (FONS,u'padding-left'),
- (FONS,u'padding-right'),
- (FONS,u'padding-top'),
- (FONS,u'wrap-option'),
- (STYLENS,u'border-line-width'),
- (STYLENS,u'border-line-width-bottom'),
- (STYLENS,u'border-line-width-left'),
- (STYLENS,u'border-line-width-right'),
- (STYLENS,u'border-line-width-top'),
- (STYLENS,u'cell-protect'),
- (STYLENS,u'decimal-places'),
- (STYLENS,u'diagonal-bl-tr'),
- (STYLENS,u'diagonal-bl-tr-widths'),
- (STYLENS,u'diagonal-tl-br'),
- (STYLENS,u'diagonal-tl-br-widths'),
- (STYLENS,u'direction'),
- (STYLENS,u'glyph-orientation-vertical'),
- (STYLENS,u'print-content'),
- (STYLENS,u'repeat-content'),
- (STYLENS,u'rotation-align'),
- (STYLENS,u'rotation-angle'),
- (STYLENS,u'shadow'),
- (STYLENS,u'shrink-to-fit'),
- (STYLENS,u'text-align-source'),
- (STYLENS,u'vertical-align'),
- ),
-# allowed_attributes
- (STYLENS,u'table-column-properties'): (
- (FONS,u'break-after'),
- (FONS,u'break-before'),
- (STYLENS,u'column-width'),
- (STYLENS,u'rel-column-width'),
- (STYLENS,u'use-optimal-column-width'),
- ),
- (STYLENS,u'table-properties'): (
- (FONS,u'background-color'),
- (FONS,u'break-after'),
- (FONS,u'break-before'),
- (FONS,u'keep-with-next'),
- (FONS,u'margin'),
- (FONS,u'margin-bottom'),
- (FONS,u'margin-left'),
- (FONS,u'margin-right'),
- (FONS,u'margin-top'),
- (STYLENS,u'may-break-between-rows'),
- (STYLENS,u'page-number'),
- (STYLENS,u'rel-width'),
- (STYLENS,u'shadow'),
- (STYLENS,u'width'),
- (STYLENS,u'writing-mode'),
- (TABLENS,u'align'),
- (TABLENS,u'border-model'),
- (TABLENS,u'display'),
- ),
- (STYLENS,u'table-row-properties'): (
- (FONS,u'background-color'),
- (FONS,u'break-after'),
- (FONS,u'break-before'),
- (FONS,u'keep-together'),
- (STYLENS,u'min-row-height'),
- (STYLENS,u'row-height'),
- (STYLENS,u'use-optimal-row-height'),
- ),
-# allowed_attributes
- (STYLENS,u'text-properties'): (
- (FONS,u'background-color'),
- (FONS,u'color'),
- (FONS,u'country'),
- (FONS,u'font-family'),
- (FONS,u'font-size'),
- (FONS,u'font-style'),
- (FONS,u'font-variant'),
- (FONS,u'font-weight'),
- (FONS,u'hyphenate'),
- (FONS,u'hyphenation-push-char-count'),
- (FONS,u'hyphenation-remain-char-count'),
- (FONS,u'language'),
- (FONS,u'letter-spacing'),
- (FONS,u'text-shadow'),
- (FONS,u'text-transform'),
- (STYLENS,u'country-asian'),
- (STYLENS,u'country-complex'),
- (STYLENS,u'font-charset'),
- (STYLENS,u'font-charset-asian'),
- (STYLENS,u'font-charset-complex'),
- (STYLENS,u'font-family-asian'),
- (STYLENS,u'font-family-complex'),
- (STYLENS,u'font-family-generic'),
- (STYLENS,u'font-family-generic-asian'),
- (STYLENS,u'font-family-generic-complex'),
- (STYLENS,u'font-name'),
- (STYLENS,u'font-name-asian'),
- (STYLENS,u'font-name-complex'),
- (STYLENS,u'font-pitch'),
- (STYLENS,u'font-pitch-asian'),
- (STYLENS,u'font-pitch-complex'),
- (STYLENS,u'font-relief'),
- (STYLENS,u'font-size-asian'),
- (STYLENS,u'font-size-complex'),
- (STYLENS,u'font-size-rel'),
- (STYLENS,u'font-size-rel-asian'),
- (STYLENS,u'font-size-rel-complex'),
- (STYLENS,u'font-style-asian'),
- (STYLENS,u'font-style-complex'),
- (STYLENS,u'font-style-name'),
- (STYLENS,u'font-style-name-asian'),
- (STYLENS,u'font-style-name-complex'),
- (STYLENS,u'font-weight-asian'),
- (STYLENS,u'font-weight-complex'),
- (STYLENS,u'language-asian'),
- (STYLENS,u'language-complex'),
- (STYLENS,u'letter-kerning'),
- (STYLENS,u'script-type'),
- (STYLENS,u'text-blinking'),
- (STYLENS,u'text-combine'),
- (STYLENS,u'text-combine-end-char'),
- (STYLENS,u'text-combine-start-char'),
- (STYLENS,u'text-emphasize'),
- (STYLENS,u'text-line-through-color'),
- (STYLENS,u'text-line-through-mode'),
- (STYLENS,u'text-line-through-style'),
- (STYLENS,u'text-line-through-text'),
- (STYLENS,u'text-line-through-text-style'),
- (STYLENS,u'text-line-through-type'),
- (STYLENS,u'text-line-through-width'),
- (STYLENS,u'text-outline'),
- (STYLENS,u'text-position'),
- (STYLENS,u'text-rotation-angle'),
- (STYLENS,u'text-rotation-scale'),
- (STYLENS,u'text-scale'),
- (STYLENS,u'text-underline-color'),
- (STYLENS,u'text-underline-mode'),
- (STYLENS,u'text-underline-style'),
- (STYLENS,u'text-underline-type'),
- (STYLENS,u'text-underline-width'),
- (STYLENS,u'use-window-font-color'),
- (TEXTNS,u'condition'),
- (TEXTNS,u'display'),
- ),
- (SVGNS,u'definition-src'):(
- (XLINKNS,u'actuate'),
- (XLINKNS,u'href'),
- (XLINKNS,u'type'),
- ),
- (SVGNS,u'desc'):(
- ),
- (SVGNS,u'font-face-format'):(
- (SVGNS,u'string'),
- ),
-# allowed_attributes
- (SVGNS,u'font-face-name'):(
- (SVGNS,u'name'),
- ),
- (SVGNS,u'font-face-src'):(
- ),
- (SVGNS,u'font-face-uri'):(
- (XLINKNS,u'actuate'),
- (XLINKNS,u'href'),
- (XLINKNS,u'type'),
- ),
- (SVGNS,u'linearGradient'):(
- (SVGNS,u'y2'),
- (DRAWNS,u'name'),
- (SVGNS,u'spreadMethod'),
- (SVGNS,u'gradientUnits'),
- (SVGNS,u'x2'),
- (SVGNS,u'gradientTransform'),
- (SVGNS,u'y1'),
- (DRAWNS,u'display-name'),
- (SVGNS,u'x1'),
- ),
- (SVGNS,u'radialGradient'):(
- (DRAWNS,u'name'),
- (SVGNS,u'fx'),
- (SVGNS,u'fy'),
- (SVGNS,u'spreadMethod'),
- (SVGNS,u'gradientUnits'),
- (SVGNS,u'cy'),
- (SVGNS,u'cx'),
- (SVGNS,u'gradientTransform'),
- (DRAWNS,u'display-name'),
- (SVGNS,u'r'),
- ),
- (SVGNS,u'stop'):(
- (SVGNS,u'stop-color'),
- (SVGNS,u'stop-opacity'),
- (SVGNS,u'offset'),
- ),
- (SVGNS,u'title'):(
- ),
-# allowed_attributes
- (TABLENS,u'body'):(
- (TEXTNS,u'paragraph-style-name'),
- (TEXTNS,u'style-name'),
- ),
- (TABLENS,u'calculation-settings'):(
- (TABLENS,u'automatic-find-labels'),
- (TABLENS,u'case-sensitive'),
- (TABLENS,u'search-criteria-must-apply-to-whole-cell'),
- (TABLENS,u'precision-as-shown'),
- (TABLENS,u'use-regular-expressions'),
- (TABLENS,u'null-year'),
- ),
- (TABLENS,u'cell-address'):(
- (TABLENS,u'column'),
- (TABLENS,u'table'),
- (TABLENS,u'row'),
- ),
- (TABLENS,u'cell-content-change'):(
- (TABLENS,u'id'),
- (TABLENS,u'rejecting-change-id'),
- (TABLENS,u'acceptance-state'),
- ),
- (TABLENS,u'cell-content-deletion'):(
- (TABLENS,u'id'),
- ),
- (TABLENS,u'cell-range-source'):(
- (TABLENS,u'last-row-spanned'),
- (TABLENS,u'last-column-spanned'),
- (TABLENS,u'name'),
- (TABLENS,u'filter-options'),
- (XLINKNS,u'actuate'),
- (TABLENS,u'filter-name'),
- (XLINKNS,u'href'),
- (TABLENS,u'refresh-delay'),
- (XLINKNS,u'type'),
- ),
- (TABLENS,u'change-deletion'):(
- (TABLENS,u'id'),
- ),
- (TABLENS,u'change-track-table-cell'):(
- (OFFICENS,u'string-value'),
- (TABLENS,u'cell-address'),
- (TABLENS,u'number-matrix-columns-spanned'),
- (TABLENS,u'number-matrix-rows-spanned'),
- (TABLENS,u'matrix-covered'),
- (OFFICENS,u'value-type'),
- (OFFICENS,u'boolean-value'),
- (OFFICENS,u'currency'),
- (OFFICENS,u'date-value'),
- (OFFICENS,u'value'),
- (TABLENS,u'formula'),
- (OFFICENS,u'time-value'),
- ),
- (TABLENS,u'consolidation'):(
- (TABLENS,u'function'),
- (TABLENS,u'source-cell-range-addresses'),
- (TABLENS,u'target-cell-address'),
- (TABLENS,u'link-to-source-data'),
- (TABLENS,u'use-labels'),
- ),
- (TABLENS,u'content-validation'):(
- (TABLENS,u'base-cell-address'),
- (TABLENS,u'display-list'),
- (TABLENS,u'allow-empty-cell'),
- (TABLENS,u'name'),
- (TABLENS,u'condition'),
- ),
- (TABLENS,u'content-validations'):(
- ),
-# allowed_attributes
- (TABLENS,u'covered-table-cell'):(
- (TABLENS,u'protect'),
- (OFFICENS,u'string-value'),
- (OFFICENS,u'value'),
- (OFFICENS,u'boolean-value'),
- (OFFICENS,u'currency'),
- (OFFICENS,u'date-value'),
- (TABLENS,u'style-name'),
- (TABLENS,u'content-validation-name'),
- (OFFICENS,u'value-type'),
- (TABLENS,u'number-columns-repeated'),
- (TABLENS,u'formula'),
- (OFFICENS,u'time-value'),
- ),
- (TABLENS,u'cut-offs'):(
- ),
- (TABLENS,u'data-pilot-display-info'):(
- (TABLENS,u'member-count'),
- (TABLENS,u'data-field'),
- (TABLENS,u'enabled'),
- (TABLENS,u'display-member-mode'),
- ),
- (TABLENS,u'data-pilot-field'):(
- (TABLENS,u'selected-page'),
- (TABLENS,u'function'),
- (TABLENS,u'orientation'),
- (TABLENS,u'used-hierarchy'),
- (TABLENS,u'is-data-layout-field'),
- (TABLENS,u'source-field-name'),
- ),
- (TABLENS,u'data-pilot-field-reference'):(
- (TABLENS,u'member-name'),
- (TABLENS,u'field-name'),
- (TABLENS,u'member-type'),
- (TABLENS,u'type'),
- ),
-# allowed_attributes
- (TABLENS,u'data-pilot-group'):(
- (TABLENS,u'name'),
- ),
- (TABLENS,u'data-pilot-group-member'):(
- (TABLENS,u'name'),
- ),
- (TABLENS,u'data-pilot-groups'):(
- (TABLENS,u'date-end'),
- (TABLENS,u'end'),
- (TABLENS,u'start'),
- (TABLENS,u'source-field-name'),
- (TABLENS,u'step'),
- (TABLENS,u'date-start'),
- (TABLENS,u'grouped-by'),
- ),
- (TABLENS,u'data-pilot-layout-info'):(
- (TABLENS,u'add-empty-lines'),
- (TABLENS,u'layout-mode'),
- ),
- (TABLENS,u'data-pilot-level'):(
- (TABLENS,u'show-empty'),
- ),
-# allowed_attributes
- (TABLENS,u'data-pilot-member'):(
- (TABLENS,u'show-details'),
- (TABLENS,u'name'),
- (TABLENS,u'display'),
- ),
- (TABLENS,u'data-pilot-members'):(
- ),
- (TABLENS,u'data-pilot-sort-info'):(
- (TABLENS,u'data-field'),
- (TABLENS,u'sort-mode'),
- (TABLENS,u'order'),
- ),
- (TABLENS,u'data-pilot-subtotal'):(
- (TABLENS,u'function'),
- ),
- (TABLENS,u'data-pilot-subtotals'):(
- ),
- (TABLENS,u'data-pilot-table'):(
- (TABLENS,u'buttons'),
- (TABLENS,u'application-data'),
- (TABLENS,u'name'),
- (TABLENS,u'drill-down-on-double-click'),
- (TABLENS,u'target-range-address'),
- (TABLENS,u'ignore-empty-rows'),
- (TABLENS,u'identify-categories'),
- (TABLENS,u'show-filter-button'),
- (TABLENS,u'grand-total'),
- ),
-# allowed_attributes
- (TABLENS,u'data-pilot-tables'):(
- ),
- (TABLENS,u'database-range'):(
- (TABLENS,u'orientation'),
- (TABLENS,u'target-range-address'),
- (TABLENS,u'contains-header'),
- (TABLENS,u'on-update-keep-size'),
- (TABLENS,u'name'),
- (TABLENS,u'is-selection'),
- (TABLENS,u'refresh-delay'),
- (TABLENS,u'display-filter-buttons'),
- (TABLENS,u'has-persistent-data'),
- (TABLENS,u'on-update-keep-styles'),
- ),
- (TABLENS,u'database-ranges'):(
- ),
- (TABLENS,u'database-source-query'):(
- (TABLENS,u'query-name'),
- (TABLENS,u'database-name'),
- ),
-# allowed_attributes
- (TABLENS,u'database-source-sql'):(
- (TABLENS,u'parse-sql-statement'),
- (TABLENS,u'database-name'),
- (TABLENS,u'sql-statement'),
- ),
- (TABLENS,u'database-source-table'):(
- (TABLENS,u'database-table-name'),
- (TABLENS,u'database-name'),
- ),
- (TABLENS,u'dde-link'):(
- ),
- (TABLENS,u'dde-links'):(
- ),
- (TABLENS,u'deletion'):(
- (TABLENS,u'rejecting-change-id'),
- (TABLENS,u'multi-deletion-spanned'),
- (TABLENS,u'acceptance-state'),
- (TABLENS,u'table'),
- (TABLENS,u'position'),
- (TABLENS,u'type'),
- (TABLENS,u'id'),
- ),
-# allowed_attributes
- (TABLENS,u'deletions'):(
- ),
- (TABLENS,u'dependencies'):(
- ),
- (TABLENS,u'dependency'):(
- (TABLENS,u'id'),
- ),
- (TABLENS,u'detective'):(
- ),
- (TABLENS,u'error-macro'):(
- (TABLENS,u'execute'),
- ),
- (TABLENS,u'error-message'):(
- (TABLENS,u'display'),
- (TABLENS,u'message-type'),
- (TABLENS,u'title'),
- ),
- (TABLENS,u'even-columns'):(
- (TEXTNS,u'paragraph-style-name'),
- (TEXTNS,u'style-name'),
- ),
- (TABLENS,u'even-rows'):(
- (TEXTNS,u'paragraph-style-name'),
- (TEXTNS,u'style-name'),
- ),
-# allowed_attributes
- (TABLENS,u'filter'):(
- (TABLENS,u'target-range-address'),
- (TABLENS,u'display-duplicates'),
- (TABLENS,u'condition-source-range-address'),
- (TABLENS,u'condition-source'),
- ),
- (TABLENS,u'filter-and'):(
- ),
- (TABLENS,u'filter-condition'):(
- (TABLENS,u'operator'),
- (TABLENS,u'field-number'),
- (TABLENS,u'data-type'),
- (TABLENS,u'case-sensitive'),
- (TABLENS,u'value'),
- ),
- (TABLENS,u'filter-or'):(
- ),
- (TABLENS,u'first-column'):(
- (TEXTNS,u'paragraph-style-name'),
- (TEXTNS,u'style-name'),
- ),
- (TABLENS,u'first-row'):(
- (TEXTNS,u'paragraph-style-name'),
- (TEXTNS,u'style-name'),
- ),
-# allowed_attributes
- (TABLENS,u'help-message'):(
- (TABLENS,u'display'),
- (TABLENS,u'title'),
- ),
- (TABLENS,u'highlighted-range'):(
- (TABLENS,u'contains-error'),
- (TABLENS,u'direction'),
- (TABLENS,u'marked-invalid'),
- (TABLENS,u'cell-range-address'),
- ),
- (TABLENS,u'insertion'):(
- (TABLENS,u'count'),
- (TABLENS,u'rejecting-change-id'),
- (TABLENS,u'acceptance-state'),
- (TABLENS,u'table'),
- (TABLENS,u'position'),
- (TABLENS,u'type'),
- (TABLENS,u'id'),
- ),
- (TABLENS,u'insertion-cut-off'):(
- (TABLENS,u'position'),
- (TABLENS,u'id'),
- ),
- (TABLENS,u'iteration'):(
- (TABLENS,u'status'),
- (TABLENS,u'maximum-difference'),
- (TABLENS,u'steps'),
- ),
-# allowed_attributes
- (TABLENS,u'label-range'):(
- (TABLENS,u'label-cell-range-address'),
- (TABLENS,u'data-cell-range-address'),
- (TABLENS,u'orientation'),
- ),
- (TABLENS,u'label-ranges'):(
- ),
- (TABLENS,u'last-column'):(
- (TEXTNS,u'paragraph-style-name'),
- (TEXTNS,u'style-name'),
- ),
- (TABLENS,u'last-row'):(
- (TEXTNS,u'paragraph-style-name'),
- (TEXTNS,u'style-name'),
- ),
- (TABLENS,u'movement'):(
- (TABLENS,u'id'),
- (TABLENS,u'rejecting-change-id'),
- (TABLENS,u'acceptance-state'),
- ),
- (TABLENS,u'movement-cut-off'):(
- (TABLENS,u'position'),
- (TABLENS,u'end-position'),
- (TABLENS,u'start-position'),
- ),
- (TABLENS,u'named-expression'):(
- (TABLENS,u'base-cell-address'),
- (TABLENS,u'expression'),
- (TABLENS,u'name'),
- ),
- (TABLENS,u'named-expressions'):(
- ),
- (TABLENS,u'named-range'):(
- (TABLENS,u'range-usable-as'),
- (TABLENS,u'base-cell-address'),
- (TABLENS,u'name'),
- (TABLENS,u'cell-range-address'),
- ),
- (TABLENS,u'null-date'):(
- (TABLENS,u'date-value'),
- (TABLENS,u'value-type'),
- ),
- (TABLENS,u'odd-columns'):(
- (TEXTNS,u'paragraph-style-name'),
- (TEXTNS,u'style-name'),
- ),
- (TABLENS,u'odd-rows'):(
- (TEXTNS,u'paragraph-style-name'),
- (TEXTNS,u'style-name'),
- ),
- (TABLENS,u'operation'):(
- (TABLENS,u'index'),
- (TABLENS,u'name'),
- ),
- (TABLENS,u'previous'):(
- (TABLENS,u'id'),
- ),
- (TABLENS,u'scenario'):(
- (TABLENS,u'comment'),
- (TABLENS,u'border-color'),
- (TABLENS,u'copy-back'),
- (TABLENS,u'is-active'),
- (TABLENS,u'protected'),
- (TABLENS,u'copy-formulas'),
- (TABLENS,u'copy-styles'),
- (TABLENS,u'scenario-ranges'),
- (TABLENS,u'display-border'),
- ),
- (TABLENS,u'shapes'):(
- ),
- (TABLENS,u'sort'):(
- (TABLENS,u'case-sensitive'),
- (TABLENS,u'algorithm'),
- (TABLENS,u'target-range-address'),
- (TABLENS,u'country'),
- (TABLENS,u'language'),
- (TABLENS,u'bind-styles-to-content'),
- ),
- (TABLENS,u'sort-by'):(
- (TABLENS,u'field-number'),
- (TABLENS,u'data-type'),
- (TABLENS,u'order'),
- ),
- (TABLENS,u'sort-groups'):(
- (TABLENS,u'data-type'),
- (TABLENS,u'order'),
- ),
- (TABLENS,u'source-cell-range'):(
- (TABLENS,u'cell-range-address'),
- ),
- (TABLENS,u'source-range-address'):(
- (TABLENS,u'column'),
- (TABLENS,u'end-column'),
- (TABLENS,u'start-table'),
- (TABLENS,u'end-row'),
- (TABLENS,u'table'),
- (TABLENS,u'start-row'),
- (TABLENS,u'row'),
- (TABLENS,u'end-table'),
- (TABLENS,u'start-column'),
- ),
-# allowed_attributes
- (TABLENS,u'source-service'):(
- (TABLENS,u'user-name'),
- (TABLENS,u'source-name'),
- (TABLENS,u'password'),
- (TABLENS,u'object-name'),
- (TABLENS,u'name'),
- ),
- (TABLENS,u'subtotal-field'):(
- (TABLENS,u'function'),
- (TABLENS,u'field-number'),
- ),
- (TABLENS,u'subtotal-rule'):(
- (TABLENS,u'group-by-field-number'),
- ),
- (TABLENS,u'subtotal-rules'):(
- (TABLENS,u'bind-styles-to-content'),
- (TABLENS,u'page-breaks-on-group-change'),
- (TABLENS,u'case-sensitive'),
- ),
- (TABLENS,u'table'):(
- (TABLENS,u'name'),
- (TABLENS,u'is-sub-table'),
- (TABLENS,u'style-name'),
- (TABLENS,u'protected'),
- (TABLENS,u'print-ranges'),
- (TABLENS,u'print'),
- (TABLENS,u'protection-key'),
- ),
- (TABLENS,u'table-cell'):(
- (TABLENS,u'protect'),
- (TABLENS,u'number-matrix-rows-spanned'),
- (TABLENS,u'number-matrix-columns-spanned'),
- (OFFICENS,u'string-value'),
- (TABLENS,u'number-columns-spanned'),
- (OFFICENS,u'value'),
- (OFFICENS,u'boolean-value'),
- (OFFICENS,u'currency'),
- (OFFICENS,u'date-value'),
- (TABLENS,u'style-name'),
- (TABLENS,u'content-validation-name'),
- (OFFICENS,u'value-type'),
- (TABLENS,u'number-rows-spanned'),
- (TABLENS,u'number-columns-repeated'),
- (TABLENS,u'formula'),
- (OFFICENS,u'time-value'),
- ),
-# allowed_attributes
- (TABLENS,u'table-column'):(
- (TABLENS,u'style-name'),
- (TABLENS,u'default-cell-style-name'),
- (TABLENS,u'visibility'),
- (TABLENS,u'number-columns-repeated'),
- ),
- (TABLENS,u'table-column-group'):(
- (TABLENS,u'display'),
- ),
- (TABLENS,u'table-columns'):(
- ),
- (TABLENS,u'table-header-columns'):(
- ),
- (TABLENS,u'table-header-rows'):(
- ),
- (TABLENS,u'table-row'):(
- (TABLENS,u'number-rows-repeated'),
- (TABLENS,u'style-name'),
- (TABLENS,u'visibility'),
- (TABLENS,u'default-cell-style-name'),
- ),
- (TABLENS,u'table-row-group'):(
- (TABLENS,u'display'),
- ),
- (TABLENS,u'table-rows'):(
- ),
- (TABLENS,u'table-source'):(
- (TABLENS,u'filter-options'),
- (XLINKNS,u'actuate'),
- (TABLENS,u'filter-name'),
- (XLINKNS,u'href'),
- (TABLENS,u'mode'),
- (TABLENS,u'table-name'),
- (XLINKNS,u'type'),
- (TABLENS,u'refresh-delay'),
- ),
- (TABLENS,u'table-template'):(
- (TEXTNS,u'last-row-end-column'),
- (TEXTNS,u'first-row-end-column'),
- (TEXTNS,u'name'),
- (TEXTNS,u'last-row-start-column'),
- (TEXTNS,u'first-row-start-column'),
- ),
- (TABLENS,u'target-range-address'):(
- (TABLENS,u'column'),
- (TABLENS,u'end-column'),
- (TABLENS,u'start-table'),
- (TABLENS,u'end-row'),
- (TABLENS,u'table'),
- (TABLENS,u'start-row'),
- (TABLENS,u'row'),
- (TABLENS,u'end-table'),
- (TABLENS,u'start-column'),
- ),
- (TABLENS,u'tracked-changes'):(
- (TABLENS,u'track-changes'),
- ),
-# allowed_attributes
- (TEXTNS,u'a'):(
- (TEXTNS,u'visited-style-name'),
- (OFFICENS,u'name'),
- (OFFICENS,u'title'),
- (XLINKNS,u'show'),
- (OFFICENS,u'target-frame-name'),
- (XLINKNS,u'actuate'),
- (TEXTNS,u'style-name'),
- (XLINKNS,u'href'),
- (XLINKNS,u'type'),
- ),
- (TEXTNS,u'alphabetical-index'):(
- (TEXTNS,u'protected'),
- (TEXTNS,u'style-name'),
- (TEXTNS,u'name'),
- (TEXTNS,u'protection-key'),
- ),
- (TEXTNS,u'alphabetical-index-auto-mark-file'):(
- (XLINKNS,u'href'),
- (XLINKNS,u'type'),
- ),
- (TEXTNS,u'alphabetical-index-entry-template'):(
- (TEXTNS,u'style-name'),
- (TEXTNS,u'outline-level'),
- ),
- (TEXTNS,u'alphabetical-index-mark'):(
- (TEXTNS,u'main-entry'),
- (TEXTNS,u'key1-phonetic'),
- (TEXTNS,u'key2'),
- (TEXTNS,u'key1'),
- (TEXTNS,u'string-value'),
- (TEXTNS,u'key2-phonetic'),
- (TEXTNS,u'string-value-phonetic'),
- ),
-# allowed_attributes
- (TEXTNS,u'alphabetical-index-mark-end'):(
- (TEXTNS,u'id'),
- ),
- (TEXTNS,u'alphabetical-index-mark-start'):(
- (TEXTNS,u'main-entry'),
- (TEXTNS,u'key1-phonetic'),
- (TEXTNS,u'key2'),
- (TEXTNS,u'key1'),
- (TEXTNS,u'string-value-phonetic'),
- (TEXTNS,u'key2-phonetic'),
- (TEXTNS,u'id'),
- ),
- (TEXTNS,u'alphabetical-index-source'):(
- (TEXTNS,u'capitalize-entries'),
- (FONS,u'language'),
- (TEXTNS,u'relative-tab-stop-position'),
- (TEXTNS,u'alphabetical-separators'),
- (TEXTNS,u'combine-entries-with-pp'),
- (TEXTNS,u'combine-entries-with-dash'),
- (TEXTNS,u'sort-algorithm'),
- (TEXTNS,u'ignore-case'),
- (TEXTNS,u'combine-entries'),
- (TEXTNS,u'comma-separated'),
- (FONS,u'country'),
- (TEXTNS,u'index-scope'),
- (TEXTNS,u'main-entry-style-name'),
- (TEXTNS,u'use-keys-as-entries'),
- ),
-# allowed_attributes
- (TEXTNS,u'author-initials'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'author-name'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'bibliography'):(
- (TEXTNS,u'protected'),
- (TEXTNS,u'style-name'),
- (TEXTNS,u'name'),
- (TEXTNS,u'protection-key'),
- ),
- (TEXTNS,u'bibliography-configuration'):(
- (TEXTNS,u'suffix'),
- (FONS,u'language'),
- (TEXTNS,u'numbered-entries'),
- (FONS,u'country'),
- (TEXTNS,u'sort-by-position'),
- (TEXTNS,u'sort-algorithm'),
- (TEXTNS,u'prefix'),
- ),
- (TEXTNS,u'bibliography-entry-template'):(
- (TEXTNS,u'style-name'),
- (TEXTNS,u'bibliography-type'),
- ),
-# allowed_attributes
- (TEXTNS,u'bibliography-mark'):(
- (TEXTNS,u'address'),
- (TEXTNS,u'annote'),
- (TEXTNS,u'author'),
- (TEXTNS,u'bibliography-type'),
- (TEXTNS,u'booktitle'),
- (TEXTNS,u'chapter'),
- (TEXTNS,u'custom1'),
- (TEXTNS,u'custom2'),
- (TEXTNS,u'custom3'),
- (TEXTNS,u'custom4'),
- (TEXTNS,u'custom5'),
- (TEXTNS,u'edition'),
- (TEXTNS,u'editor'),
- (TEXTNS,u'howpublished'),
- (TEXTNS,u'identifier'),
- (TEXTNS,u'institution'),
- (TEXTNS,u'isbn'),
- (TEXTNS,u'issn'),
- (TEXTNS,u'journal'),
- (TEXTNS,u'month'),
- (TEXTNS,u'note'),
- (TEXTNS,u'number'),
- (TEXTNS,u'organizations'),
- (TEXTNS,u'pages'),
- (TEXTNS,u'publisher'),
- (TEXTNS,u'report-type'),
- (TEXTNS,u'school'),
- (TEXTNS,u'series'),
- (TEXTNS,u'title'),
- (TEXTNS,u'url'),
- (TEXTNS,u'volume'),
- (TEXTNS,u'year'),
- ),
- (TEXTNS,u'bibliography-source'):(
- ),
- (TEXTNS,u'bookmark'):(
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'bookmark-end'):(
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'bookmark-ref'):(
- (TEXTNS,u'ref-name'),
- (TEXTNS,u'reference-format'),
- ),
- (TEXTNS,u'bookmark-start'):(
- (TEXTNS,u'name'),
- ),
-# allowed_attributes
- (TEXTNS,u'change'):(
- (TEXTNS,u'change-id'),
- ),
- (TEXTNS,u'change-end'):(
- (TEXTNS,u'change-id'),
- ),
- (TEXTNS,u'change-start'):(
- (TEXTNS,u'change-id'),
- ),
- (TEXTNS,u'changed-region'):(
- (TEXTNS,u'id'),
- ),
- (TEXTNS,u'chapter'):(
- (TEXTNS,u'display'),
- (TEXTNS,u'outline-level'),
- ),
- (TEXTNS,u'conditional-text'):(
- (TEXTNS,u'string-value-if-true'),
- (TEXTNS,u'current-value'),
- (TEXTNS,u'string-value-if-false'),
- (TEXTNS,u'condition'),
- ),
- (TEXTNS,u'creation-date'):(
- (TEXTNS,u'date-value'),
- (TEXTNS,u'fixed'),
- (STYLENS,u'data-style-name'),
- ),
- (TEXTNS,u'creation-time'):(
- (TEXTNS,u'fixed'),
- (TEXTNS,u'time-value'),
- (STYLENS,u'data-style-name'),
- ),
- (TEXTNS,u'creator'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'database-display'):(
- (TEXTNS,u'column-name'),
- (TEXTNS,u'table-name'),
- (TEXTNS,u'table-type'),
- (TEXTNS,u'database-name'),
- (STYLENS,u'data-style-name'),
- ),
- (TEXTNS,u'database-name'):(
- (TEXTNS,u'table-name'),
- (TEXTNS,u'table-type'),
- (TEXTNS,u'database-name'),
- ),
- (TEXTNS,u'database-next'):(
- (TEXTNS,u'table-name'),
- (TEXTNS,u'table-type'),
- (TEXTNS,u'database-name'),
- (TEXTNS,u'condition'),
- ),
- (TEXTNS,u'database-row-number'):(
- (STYLENS,u'num-format'),
- (TEXTNS,u'database-name'),
- (TEXTNS,u'value'),
- (STYLENS,u'num-letter-sync'),
- (TEXTNS,u'table-name'),
- (TEXTNS,u'table-type'),
- ),
- (TEXTNS,u'database-row-select'):(
- (TEXTNS,u'row-number'),
- (TEXTNS,u'table-name'),
- (TEXTNS,u'table-type'),
- (TEXTNS,u'database-name'),
- (TEXTNS,u'condition'),
- ),
-# allowed_attributes
- (TEXTNS,u'date'):(
- (TEXTNS,u'date-value'),
- (TEXTNS,u'fixed'),
- (TEXTNS,u'date-adjust'),
- (STYLENS,u'data-style-name'),
- ),
- (TEXTNS,u'dde-connection'):(
- (TEXTNS,u'connection-name'),
- ),
- (TEXTNS,u'dde-connection-decl'):(
- (OFFICENS,u'automatic-update'),
- (OFFICENS,u'dde-topic'),
- (OFFICENS,u'dde-application'),
- (OFFICENS,u'name'),
- (OFFICENS,u'dde-item'),
- ),
- (TEXTNS,u'dde-connection-decls'):(
- ),
- (TEXTNS,u'deletion'):(
- ),
- (TEXTNS,u'description'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'editing-cycles'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'editing-duration'):(
- (TEXTNS,u'duration'),
- (TEXTNS,u'fixed'),
- (STYLENS,u'data-style-name'),
- ),
- (TEXTNS,u'execute-macro'):(
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'expression'):(
- (TEXTNS,u'display'),
- (OFFICENS,u'string-value'),
- (OFFICENS,u'value'),
- (OFFICENS,u'boolean-value'),
- (OFFICENS,u'currency'),
- (OFFICENS,u'date-value'),
- (STYLENS,u'data-style-name'),
- (OFFICENS,u'value-type'),
- (TEXTNS,u'formula'),
- (OFFICENS,u'time-value'),
- ),
- (TEXTNS,u'file-name'):(
- (TEXTNS,u'fixed'),
- (TEXTNS,u'display'),
- ),
-# allowed_attributes
- (TEXTNS,u'format-change'):(
- ),
- (TEXTNS,u'h'):(
- (TEXTNS,u'restart-numbering'),
- (TEXTNS,u'cond-style-name'),
- (TEXTNS,u'is-list-header'),
- (TEXTNS,u'style-name'),
- (TEXTNS,u'class-names'),
- (TEXTNS,u'start-value'),
- (TEXTNS,u'id'),
- (TEXTNS,u'outline-level'),
- ),
- (TEXTNS,u'hidden-paragraph'):(
- (TEXTNS,u'is-hidden'),
- (TEXTNS,u'condition'),
- ),
- (TEXTNS,u'hidden-text'):(
- (TEXTNS,u'string-value'),
- (TEXTNS,u'is-hidden'),
- (TEXTNS,u'condition'),
- ),
- (TEXTNS,u'illustration-index'):(
- (TEXTNS,u'protected'),
- (TEXTNS,u'style-name'),
- (TEXTNS,u'name'),
- (TEXTNS,u'protection-key'),
- ),
- (TEXTNS,u'illustration-index-entry-template'):(
- (TEXTNS,u'style-name'),
- ),
- (TEXTNS,u'illustration-index-source'):(
- (TEXTNS,u'index-scope'),
- (TEXTNS,u'caption-sequence-name'),
- (TEXTNS,u'use-caption'),
- (TEXTNS,u'caption-sequence-format'),
- (TEXTNS,u'relative-tab-stop-position'),
- ),
- (TEXTNS,u'index-body'):(
- ),
- (TEXTNS,u'index-entry-bibliography'):(
- (TEXTNS,u'bibliography-data-field'),
- (TEXTNS,u'style-name'),
- ),
- (TEXTNS,u'index-entry-chapter'):(
- (TEXTNS,u'style-name'),
- (TEXTNS,u'display'),
- ),
-# allowed_attributes
- (TEXTNS,u'index-entry-link-end'):(
- (TEXTNS,u'style-name'),
- ),
- (TEXTNS,u'index-entry-link-start'):(
- (TEXTNS,u'style-name'),
- ),
- (TEXTNS,u'index-entry-page-number'):(
- (TEXTNS,u'style-name'),
- ),
- (TEXTNS,u'index-entry-span'):(
- (TEXTNS,u'style-name'),
- ),
- (TEXTNS,u'index-entry-tab-stop'):(
- (STYLENS,u'position'),
- (TEXTNS,u'style-name'),
- (STYLENS,u'type'),
- (STYLENS,u'leader-char'),
- ),
- (TEXTNS,u'index-entry-text'):(
- (TEXTNS,u'style-name'),
- ),
- (TEXTNS,u'index-source-style'):(
- (TEXTNS,u'style-name'),
- ),
- (TEXTNS,u'index-source-styles'):(
- (TEXTNS,u'outline-level'),
- ),
- (TEXTNS,u'index-title'):(
- (TEXTNS,u'protected'),
- (TEXTNS,u'style-name'),
- (TEXTNS,u'name'),
- (TEXTNS,u'protection-key'),
- ),
- (TEXTNS,u'index-title-template'):(
- (TEXTNS,u'style-name'),
- ),
- (TEXTNS,u'initial-creator'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'insertion'):(
- ),
-# allowed_attributes
- (TEXTNS,u'keywords'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'line-break'):(
- ),
- (TEXTNS,u'linenumbering-configuration'):(
- (TEXTNS,u'number-position'),
- (TEXTNS,u'number-lines'),
- (STYLENS,u'num-format'),
- (TEXTNS,u'count-empty-lines'),
- (TEXTNS,u'count-in-text-boxes'),
- (TEXTNS,u'style-name'),
- (STYLENS,u'num-letter-sync'),
- (TEXTNS,u'increment'),
- (TEXTNS,u'offset'),
- (TEXTNS,u'restart-on-page'),
- ),
- (TEXTNS,u'linenumbering-separator'):(
- (TEXTNS,u'increment'),
- ),
- (TEXTNS,u'list'):(
- (TEXTNS,u'style-name'),
- (TEXTNS,u'continue-numbering'),
- ),
- (TEXTNS,u'list-header'):(
- ),
- (TEXTNS,u'list-item'):(
- (TEXTNS,u'start-value'),
- ),
- (TEXTNS,u'list-level-style-bullet'):(
- (TEXTNS,u'level'),
- (STYLENS,u'num-prefix'),
- (STYLENS,u'num-suffix'),
- (TEXTNS,u'bullet-relative-size'),
- (TEXTNS,u'style-name'),
- (TEXTNS,u'bullet-char'),
- ),
- (TEXTNS,u'list-level-style-image'):(
- (XLINKNS,u'show'),
- (XLINKNS,u'actuate'),
- (XLINKNS,u'href'),
- (XLINKNS,u'type'),
- (TEXTNS,u'level'),
- ),
- (TEXTNS,u'list-level-style-number'):(
- (TEXTNS,u'level'),
- (TEXTNS,u'display-levels'),
- (STYLENS,u'num-format'),
- (STYLENS,u'num-suffix'),
- (TEXTNS,u'style-name'),
- (STYLENS,u'num-prefix'),
- (STYLENS,u'num-letter-sync'),
- (TEXTNS,u'start-value'),
- ),
-# allowed_attributes
- (TEXTNS,u'list-style'):(
- (TEXTNS,u'consecutive-numbering'),
- (STYLENS,u'display-name'),
- (STYLENS,u'name'),
- ),
- (TEXTNS,u'measure'):(
- (TEXTNS,u'kind'),
- ),
- (TEXTNS,u'modification-date'):(
- (TEXTNS,u'date-value'),
- (TEXTNS,u'fixed'),
- (STYLENS,u'data-style-name'),
- ),
- (TEXTNS,u'modification-time'):(
- (TEXTNS,u'fixed'),
- (TEXTNS,u'time-value'),
- (STYLENS,u'data-style-name'),
- ),
- (TEXTNS,u'note'):(
- (TEXTNS,u'note-class'),
- (TEXTNS,u'id'),
- ),
- (TEXTNS,u'note-body'):(
- ),
- (TEXTNS,u'note-citation'):(
- (TEXTNS,u'label'),
- ),
- (TEXTNS,u'note-continuation-notice-backward'):(
- ),
- (TEXTNS,u'note-continuation-notice-forward'):(
- ),
- (TEXTNS,u'note-ref'):(
- (TEXTNS,u'ref-name'),
- (TEXTNS,u'note-class'),
- (TEXTNS,u'reference-format'),
- ),
- (TEXTNS,u'notes-configuration'):(
- (TEXTNS,u'citation-body-style-name'),
- (STYLENS,u'num-format'),
- (TEXTNS,u'default-style-name'),
- (STYLENS,u'num-suffix'),
- (TEXTNS,u'start-numbering-at'),
- (STYLENS,u'num-prefix'),
- (STYLENS,u'num-letter-sync'),
- (TEXTNS,u'citation-style-name'),
- (TEXTNS,u'footnotes-position'),
- (TEXTNS,u'master-page-name'),
- (TEXTNS,u'start-value'),
- (TEXTNS,u'note-class'),
- ),
- (TEXTNS,u'number'):(
- ),
- (TEXTNS,u'numbered-paragraph'):(
- (TEXTNS,u'continue-numbering'),
- (TEXTNS,u'style-name'),
- (TEXTNS,u'start-value'),
- (TEXTNS,u'level'),
- ),
- (TEXTNS,u'object-count'):(
- (STYLENS,u'num-format'),
- (STYLENS,u'num-letter-sync'),
- ),
- (TEXTNS,u'object-index'):(
- (TEXTNS,u'protected'),
- (TEXTNS,u'style-name'),
- (TEXTNS,u'name'),
- (TEXTNS,u'protection-key'),
- ),
-# allowed_attributes
- (TEXTNS,u'object-index-entry-template'):(
- (TEXTNS,u'style-name'),
- ),
- (TEXTNS,u'object-index-source'):(
- (TEXTNS,u'use-draw-objects'),
- (TEXTNS,u'use-math-objects'),
- (TEXTNS,u'relative-tab-stop-position'),
- (TEXTNS,u'use-chart-objects'),
- (TEXTNS,u'index-scope'),
- (TEXTNS,u'use-spreadsheet-objects'),
- (TEXTNS,u'use-other-objects'),
- ),
- (TEXTNS,u'outline-level-style'):(
- (TEXTNS,u'level'),
- (TEXTNS,u'display-levels'),
- (STYLENS,u'num-format'),
- (STYLENS,u'num-suffix'),
- (TEXTNS,u'style-name'),
- (STYLENS,u'num-prefix'),
- (STYLENS,u'num-letter-sync'),
- (TEXTNS,u'start-value'),
- ),
- (TEXTNS,u'outline-style'):(
- ),
- (TEXTNS,u'p'):(
- (TEXTNS,u'cond-style-name'),
- (TEXTNS,u'style-name'),
- (TEXTNS,u'class-names'),
- (TEXTNS,u'id'),
- ),
- (TEXTNS,u'page'):(
- (TEXTNS,u'master-page-name'),
- ),
- (TEXTNS,u'page-continuation'):(
- (TEXTNS,u'string-value'),
- (TEXTNS,u'select-page'),
- ),
- (TEXTNS,u'page-number'):(
- (TEXTNS,u'page-adjust'),
- (STYLENS,u'num-format'),
- (TEXTNS,u'fixed'),
- (STYLENS,u'num-letter-sync'),
- (TEXTNS,u'select-page'),
- ),
- (TEXTNS,u'page-sequence'):(
- ),
- (TEXTNS,u'page-variable-get'):(
- (STYLENS,u'num-format'),
- (STYLENS,u'num-letter-sync'),
- ),
- (TEXTNS,u'page-variable-set'):(
- (TEXTNS,u'active'),
- (TEXTNS,u'page-adjust'),
- ),
- (TEXTNS,u'placeholder'):(
- (TEXTNS,u'placeholder-type'),
- (TEXTNS,u'description'),
- ),
- (TEXTNS,u'print-date'):(
- (TEXTNS,u'date-value'),
- (TEXTNS,u'fixed'),
- (STYLENS,u'data-style-name'),
- ),
- (TEXTNS,u'print-time'):(
- (TEXTNS,u'fixed'),
- (TEXTNS,u'time-value'),
- (STYLENS,u'data-style-name'),
- ),
- (TEXTNS,u'printed-by'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'reference-mark'):(
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'reference-mark-end'):(
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'reference-mark-start'):(
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'ruby'):(
- (TEXTNS,u'style-name'),
- ),
- (TEXTNS,u'ruby-base'):(
- ),
- (TEXTNS,u'ruby-text'):(
- (TEXTNS,u'style-name'),
- ),
- (TEXTNS,u's'):(
- (TEXTNS,u'c'),
- ),
- (TEXTNS,u'script'):(
- (XLINKNS,u'href'),
- (XLINKNS,u'type'),
- (SCRIPTNS,u'language'),
- ),
- (TEXTNS,u'section'):(
- (TEXTNS,u'name'),
- (TEXTNS,u'protection-key'),
- (TEXTNS,u'style-name'),
- (TEXTNS,u'protected'),
- (TEXTNS,u'display'),
- (TEXTNS,u'condition'),
- ),
- (TEXTNS,u'section-source'):(
- (TEXTNS,u'filter-name'),
- (XLINKNS,u'href'),
- (XLINKNS,u'type'),
- (TEXTNS,u'section-name'),
- (XLINKNS,u'show'),
- ),
- (TEXTNS,u'sender-city'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'sender-company'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'sender-country'):(
- (TEXTNS,u'fixed'),
- ),
-# allowed_attributes
- (TEXTNS,u'sender-email'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'sender-fax'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'sender-firstname'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'sender-initials'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'sender-lastname'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'sender-phone-private'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'sender-phone-work'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'sender-position'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'sender-postal-code'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'sender-state-or-province'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'sender-street'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'sender-title'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'sequence'):(
- (TEXTNS,u'formula'),
- (STYLENS,u'num-format'),
- (STYLENS,u'num-letter-sync'),
- (TEXTNS,u'name'),
- (TEXTNS,u'ref-name'),
- ),
- (TEXTNS,u'sequence-decl'):(
- (TEXTNS,u'separation-character'),
- (TEXTNS,u'display-outline-level'),
- (TEXTNS,u'name'),
- ),
- (TEXTNS,u'sequence-decls'):(
- ),
- (TEXTNS,u'sequence-ref'):(
- (TEXTNS,u'ref-name'),
- (TEXTNS,u'reference-format'),
- ),
- (TEXTNS,u'sheet-name'):(
- ),
- (TEXTNS,u'soft-page-break'):(
- ),
- (TEXTNS,u'sort-key'):(
- (TEXTNS,u'sort-ascending'),
- (TEXTNS,u'key'),
- ),
-# allowed_attributes
- (TEXTNS,u'span'):(
- (TEXTNS,u'style-name'),
- (TEXTNS,u'class-names'),
- ),
- (TEXTNS,u'subject'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'tab'):(
- (TEXTNS,u'tab-ref'),
- ),
- (TEXTNS,u'table-formula'):(
- (TEXTNS,u'formula'),
- (STYLENS,u'data-style-name'),
- (TEXTNS,u'display'),
- ),
- (TEXTNS,u'table-index'):(
- (TEXTNS,u'protected'),
- (TEXTNS,u'style-name'),
- (TEXTNS,u'name'),
- (TEXTNS,u'protection-key'),
- ),
- (TEXTNS,u'table-index-entry-template'):(
- (TEXTNS,u'style-name'),
- ),
- (TEXTNS,u'table-index-source'):(
- (TEXTNS,u'index-scope'),
- (TEXTNS,u'caption-sequence-name'),
- (TEXTNS,u'use-caption'),
- (TEXTNS,u'caption-sequence-format'),
- (TEXTNS,u'relative-tab-stop-position'),
- ),
-# allowed_attributes
- (TEXTNS,u'table-of-content'):(
- (TEXTNS,u'protected'),
- (TEXTNS,u'style-name'),
- (TEXTNS,u'name'),
- (TEXTNS,u'protection-key'),
- ),
- (TEXTNS,u'table-of-content-entry-template'):(
- (TEXTNS,u'style-name'),
- (TEXTNS,u'outline-level'),
- ),
- (TEXTNS,u'table-of-content-source'):(
- (TEXTNS,u'index-scope'),
- (TEXTNS,u'outline-level'),
- (TEXTNS,u'relative-tab-stop-position'),
- (TEXTNS,u'use-index-marks'),
- (TEXTNS,u'use-outline-level'),
- (TEXTNS,u'use-index-source-styles'),
- ),
- (TEXTNS,u'template-name'):(
- (TEXTNS,u'display'),
- ),
- (TEXTNS,u'text-input'):(
- (TEXTNS,u'description'),
- ),
- (TEXTNS,u'time'):(
- (TEXTNS,u'time-adjust'),
- (TEXTNS,u'fixed'),
- (TEXTNS,u'time-value'),
- (STYLENS,u'data-style-name'),
- ),
- (TEXTNS,u'title'):(
- (TEXTNS,u'fixed'),
- ),
- (TEXTNS,u'toc-mark'):(
- (TEXTNS,u'string-value'),
- (TEXTNS,u'outline-level'),
- ),
- (TEXTNS,u'toc-mark-end'):(
- (TEXTNS,u'id'),
- ),
- (TEXTNS,u'toc-mark-start'):(
- (TEXTNS,u'id'),
- (TEXTNS,u'outline-level'),
- ),
- (TEXTNS,u'tracked-changes'):(
- (TEXTNS,u'track-changes'),
- ),
- (TEXTNS,u'user-defined'):(
- (TEXTNS,u'name'),
- (OFFICENS,u'string-value'),
- (OFFICENS,u'value'),
- (OFFICENS,u'boolean-value'),
- (OFFICENS,u'date-value'),
- (STYLENS,u'data-style-name'),
- (TEXTNS,u'fixed'),
- (OFFICENS,u'time-value'),
- ),
- (TEXTNS,u'user-field-decl'):(
- (TEXTNS,u'name'),
- (OFFICENS,u'string-value'),
- (OFFICENS,u'value'),
- (OFFICENS,u'boolean-value'),
- (OFFICENS,u'currency'),
- (OFFICENS,u'date-value'),
- (OFFICENS,u'value-type'),
- (TEXTNS,u'formula'),
- (OFFICENS,u'time-value'),
- ),
- (TEXTNS,u'user-field-decls'):(
- ),
- (TEXTNS,u'user-field-get'):(
- (STYLENS,u'data-style-name'),
- (TEXTNS,u'name'),
- (TEXTNS,u'display'),
- ),
-# allowed_attributes
- (TEXTNS,u'user-field-input'):(
- (STYLENS,u'data-style-name'),
- (TEXTNS,u'name'),
- (TEXTNS,u'description'),
- ),
- (TEXTNS,u'user-index'):(
- (TEXTNS,u'protected'),
- (TEXTNS,u'style-name'),
- (TEXTNS,u'name'),
- (TEXTNS,u'protection-key'),
- ),
- (TEXTNS,u'user-index-entry-template'):(
- (TEXTNS,u'style-name'),
- (TEXTNS,u'outline-level'),
- ),
- (TEXTNS,u'user-index-mark'):(
- (TEXTNS,u'index-name'),
- (TEXTNS,u'string-value'),
- (TEXTNS,u'outline-level'),
- ),
- (TEXTNS,u'user-index-mark-end'):(
- (TEXTNS,u'id'),
- (TEXTNS,u'outline-level'),
- ),
- (TEXTNS,u'user-index-mark-start'):(
- (TEXTNS,u'index-name'),
- (TEXTNS,u'id'),
- (TEXTNS,u'outline-level'),
- ),
-# allowed_attributes
- (TEXTNS,u'user-index-source'):(
- (TEXTNS,u'copy-outline-levels'),
- (TEXTNS,u'index-name'),
- (TEXTNS,u'index-scope'),
- (TEXTNS,u'relative-tab-stop-position'),
- (TEXTNS,u'use-floating-frames'),
- (TEXTNS,u'use-graphics'),
- (TEXTNS,u'use-index-marks'),
- (TEXTNS,u'use-objects'),
- (TEXTNS,u'use-tables'),
- ),
- (TEXTNS,u'variable-decl'):(
- (TEXTNS,u'name'),
- (OFFICENS,u'value-type'),
- ),
- (TEXTNS,u'variable-decls'):(
- ),
- (TEXTNS,u'variable-get'):(
- (STYLENS,u'data-style-name'),
- (TEXTNS,u'name'),
- (TEXTNS,u'display'),
- ),
- (TEXTNS,u'variable-input'):(
- (STYLENS,u'data-style-name'),
- (TEXTNS,u'display'),
- (TEXTNS,u'name'),
- (OFFICENS,u'value-type'),
- (TEXTNS,u'description'),
- ),
- (TEXTNS,u'variable-set'):(
- (TEXTNS,u'name'),
- (TEXTNS,u'display'),
- (OFFICENS,u'string-value'),
- (OFFICENS,u'value'),
- (OFFICENS,u'boolean-value'),
- (OFFICENS,u'currency'),
- (OFFICENS,u'date-value'),
- (STYLENS,u'data-style-name'),
- (OFFICENS,u'value-type'),
- (TEXTNS,u'formula'),
- (OFFICENS,u'time-value'),
- ),
-# allowed_attributes
-}
diff --git a/tablib/packages/odf/load.py b/tablib/packages/odf/load.py
deleted file mode 100644
index e48fcaa..0000000
--- a/tablib/packages/odf/load.py
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2008 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-# This script is to be embedded in opendocument.py later
-# The purpose is to read an ODT/ODP/ODS file and create the datastructure
-# in memory. The user should then be able to make operations and then save
-# the structure again.
-
-from xml.sax import make_parser,handler
-from xml.sax.xmlreader import InputSource
-import xml.sax.saxutils
-from element import Element
-from namespaces import OFFICENS
-from cStringIO import StringIO
-
-#
-# Parse the XML files
-#
-class LoadParser(handler.ContentHandler):
- """ Extract headings from content.xml of an ODT file """
- triggers = (
- (OFFICENS, 'automatic-styles'), (OFFICENS, 'body'),
- (OFFICENS, 'font-face-decls'), (OFFICENS, 'master-styles'),
- (OFFICENS, 'meta'), (OFFICENS, 'scripts'),
- (OFFICENS, 'settings'), (OFFICENS, 'styles') )
-
- def __init__(self, document):
- self.doc = document
- self.data = []
- self.level = 0
- self.parse = False
-
- def characters(self, data):
- if self.parse == False:
- return
- self.data.append(data)
-
- def startElementNS(self, tag, qname, attrs):
- if tag in self.triggers:
- self.parse = True
- if self.doc._parsing != "styles.xml" and tag == (OFFICENS, 'font-face-decls'):
- self.parse = False
- if self.parse == False:
- return
-
- self.level = self.level + 1
- # Add any accumulated text content
- content = ''.join(self.data)
- if len(content.strip()) > 0:
- self.parent.addText(content, check_grammar=False)
- self.data = []
- # Create the element
- attrdict = {}
- for (att,value) in attrs.items():
- attrdict[att] = value
- try:
- e = Element(qname = tag, qattributes=attrdict, check_grammar=False)
- self.curr = e
- except AttributeError, v:
- print "Error: %s" % v
-
- if tag == (OFFICENS, 'automatic-styles'):
- e = self.doc.automaticstyles
- elif tag == (OFFICENS, 'body'):
- e = self.doc.body
- elif tag == (OFFICENS, 'master-styles'):
- e = self.doc.masterstyles
- elif tag == (OFFICENS, 'meta'):
- e = self.doc.meta
- elif tag == (OFFICENS,'scripts'):
- e = self.doc.scripts
- elif tag == (OFFICENS,'settings'):
- e = self.doc.settings
- elif tag == (OFFICENS,'styles'):
- e = self.doc.styles
- elif self.doc._parsing == "styles.xml" and tag == (OFFICENS, 'font-face-decls'):
- e = self.doc.fontfacedecls
- elif hasattr(self,'parent'):
- self.parent.addElement(e, check_grammar=False)
- self.parent = e
-
-
- def endElementNS(self, tag, qname):
- if self.parse == False:
- return
- self.level = self.level - 1
- str = ''.join(self.data)
- if len(str.strip()) > 0:
- self.curr.addText(str, check_grammar=False)
- self.data = []
- self.curr = self.curr.parentNode
- self.parent = self.curr
- if tag in self.triggers:
- self.parse = False
diff --git a/tablib/packages/odf/manifest.py b/tablib/packages/odf/manifest.py
deleted file mode 100644
index de59048..0000000
--- a/tablib/packages/odf/manifest.py
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-#
-
-from namespaces import MANIFESTNS
-from element import Element
-
-# Autogenerated
-def Manifest(**args):
- return Element(qname = (MANIFESTNS,'manifest'), **args)
-
-def FileEntry(**args):
- return Element(qname = (MANIFESTNS,'file-entry'), **args)
-
-def EncryptionData(**args):
- return Element(qname = (MANIFESTNS,'encryption-data'), **args)
-
-def Algorithm(**args):
- return Element(qname = (MANIFESTNS,'algorithm'), **args)
-
-def KeyDerivation(**args):
- return Element(qname = (MANIFESTNS,'key-derivation'), **args)
-
diff --git a/tablib/packages/odf/math.py b/tablib/packages/odf/math.py
deleted file mode 100644
index 5dc38df..0000000
--- a/tablib/packages/odf/math.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import MATHNS
-from element import Element
-
-# ODF 1.0 section 12.5
-# Mathematical content is represented by MathML 2.0
-
-# Autogenerated
-def Math(**args):
- return Element(qname = (MATHNS,'math'), **args)
-
diff --git a/tablib/packages/odf/meta.py b/tablib/packages/odf/meta.py
deleted file mode 100644
index dc03181..0000000
--- a/tablib/packages/odf/meta.py
+++ /dev/null
@@ -1,66 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import METANS
-from element import Element
-
-# Autogenerated
-def AutoReload(**args):
- return Element(qname = (METANS,'auto-reload'), **args)
-
-def CreationDate(**args):
- return Element(qname = (METANS,'creation-date'), **args)
-
-def DateString(**args):
- return Element(qname = (METANS,'date-string'), **args)
-
-def DocumentStatistic(**args):
- return Element(qname = (METANS,'document-statistic'), **args)
-
-def EditingCycles(**args):
- return Element(qname = (METANS,'editing-cycles'), **args)
-
-def EditingDuration(**args):
- return Element(qname = (METANS,'editing-duration'), **args)
-
-def Generator(**args):
- return Element(qname = (METANS,'generator'), **args)
-
-def HyperlinkBehaviour(**args):
- return Element(qname = (METANS,'hyperlink-behaviour'), **args)
-
-def InitialCreator(**args):
- return Element(qname = (METANS,'initial-creator'), **args)
-
-def Keyword(**args):
- return Element(qname = (METANS,'keyword'), **args)
-
-def PrintDate(**args):
- return Element(qname = (METANS,'print-date'), **args)
-
-def PrintedBy(**args):
- return Element(qname = (METANS,'printed-by'), **args)
-
-def Template(**args):
- return Element(qname = (METANS,'template'), **args)
-
-def UserDefined(**args):
- return Element(qname = (METANS,'user-defined'), **args)
-
diff --git a/tablib/packages/odf/namespaces.py b/tablib/packages/odf/namespaces.py
deleted file mode 100644
index 95046b4..0000000
--- a/tablib/packages/odf/namespaces.py
+++ /dev/null
@@ -1,97 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2010 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-TOOLSVERSION = u"ODFPY/0.9.3"
-
-ANIMNS = u"urn:oasis:names:tc:opendocument:xmlns:animation:1.0"
-DBNS = u"urn:oasis:names:tc:opendocument:xmlns:database:1.0"
-CHARTNS = u"urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
-CONFIGNS = u"urn:oasis:names:tc:opendocument:xmlns:config:1.0"
-#DBNS = u"http://openoffice.org/2004/database"
-DCNS = u"http://purl.org/dc/elements/1.1/"
-DOMNS = u"http://www.w3.org/2001/xml-events"
-DR3DNS = u"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
-DRAWNS = u"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
-FIELDNS = u"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0"
-FONS = u"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
-FORMNS = u"urn:oasis:names:tc:opendocument:xmlns:form:1.0"
-GRDDLNS = u"http://www.w3.org/2003/g/data-view#"
-KOFFICENS = u"http://www.koffice.org/2005/"
-MANIFESTNS = u"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"
-MATHNS = u"http://www.w3.org/1998/Math/MathML"
-METANS = u"urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
-NUMBERNS = u"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
-OFFICENS = u"urn:oasis:names:tc:opendocument:xmlns:office:1.0"
-OFNS = u"urn:oasis:names:tc:opendocument:xmlns:of:1.2"
-OOONS = u"http://openoffice.org/2004/office"
-OOOWNS = u"http://openoffice.org/2004/writer"
-OOOCNS = u"http://openoffice.org/2004/calc"
-PRESENTATIONNS = u"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"
-RDFANS = u"http://docs.oasis-open.org/opendocument/meta/rdfa#"
-RPTNS = u"http://openoffice.org/2005/report"
-SCRIPTNS = u"urn:oasis:names:tc:opendocument:xmlns:script:1.0"
-SMILNS = u"urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0"
-STYLENS = u"urn:oasis:names:tc:opendocument:xmlns:style:1.0"
-SVGNS = u"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
-TABLENS = u"urn:oasis:names:tc:opendocument:xmlns:table:1.0"
-TEXTNS = u"urn:oasis:names:tc:opendocument:xmlns:text:1.0"
-XFORMSNS = u"http://www.w3.org/2002/xforms"
-XLINKNS = u"http://www.w3.org/1999/xlink"
-XMLNS = u"http://www.w3.org/XML/1998/namespace"
-XSDNS = u"http://www.w3.org/2001/XMLSchema"
-XSINS = u"http://www.w3.org/2001/XMLSchema-instance"
-
-nsdict = {
- ANIMNS: u'anim',
- CHARTNS: u'chart',
- CONFIGNS: u'config',
- DBNS: u'db',
- DCNS: u'dc',
- DOMNS: u'dom',
- DR3DNS: u'dr3d',
- DRAWNS: u'draw',
- FIELDNS: u'field',
- FONS: u'fo',
- FORMNS: u'form',
- GRDDLNS: u'grddl',
- KOFFICENS: u'koffice',
- MANIFESTNS: u'manifest',
- MATHNS: u'math',
- METANS: u'meta',
- NUMBERNS: u'number',
- OFFICENS: u'office',
- OFNS: u'of',
- OOONS: u'ooo',
- OOOWNS: u'ooow',
- OOOCNS: u'oooc',
- PRESENTATIONNS: u'presentation',
- RDFANS: u'rdfa',
- RPTNS: u'rpt',
- SCRIPTNS: u'script',
- SMILNS: u'smil',
- STYLENS: u'style',
- SVGNS: u'svg',
- TABLENS: u'table',
- TEXTNS: u'text',
- XFORMSNS: u'xforms',
- XLINKNS: u'xlink',
- XMLNS: u'xml',
- XSDNS: u'xsd',
- XSINS: u'xsi',
-}
diff --git a/tablib/packages/odf/number.py b/tablib/packages/odf/number.py
deleted file mode 100644
index 12d81cb..0000000
--- a/tablib/packages/odf/number.py
+++ /dev/null
@@ -1,104 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import NUMBERNS
-from element import Element
-from style import StyleElement
-
-
-# Autogenerated
-def AmPm(**args):
- return Element(qname = (NUMBERNS,'am-pm'), **args)
-
-def Boolean(**args):
- return Element(qname = (NUMBERNS,'boolean'), **args)
-
-def BooleanStyle(**args):
- return StyleElement(qname = (NUMBERNS,'boolean-style'), **args)
-
-def CurrencyStyle(**args):
- return StyleElement(qname = (NUMBERNS,'currency-style'), **args)
-
-def CurrencySymbol(**args):
- return Element(qname = (NUMBERNS,'currency-symbol'), **args)
-
-def DateStyle(**args):
- return StyleElement(qname = (NUMBERNS,'date-style'), **args)
-
-def Day(**args):
- return Element(qname = (NUMBERNS,'day'), **args)
-
-def DayOfWeek(**args):
- return Element(qname = (NUMBERNS,'day-of-week'), **args)
-
-def EmbeddedText(**args):
- return Element(qname = (NUMBERNS,'embedded-text'), **args)
-
-def Era(**args):
- return Element(qname = (NUMBERNS,'era'), **args)
-
-def Fraction(**args):
- return Element(qname = (NUMBERNS,'fraction'), **args)
-
-def Hours(**args):
- return Element(qname = (NUMBERNS,'hours'), **args)
-
-def Minutes(**args):
- return Element(qname = (NUMBERNS,'minutes'), **args)
-
-def Month(**args):
- return Element(qname = (NUMBERNS,'month'), **args)
-
-def Number(**args):
- return Element(qname = (NUMBERNS,'number'), **args)
-
-def NumberStyle(**args):
- return StyleElement(qname = (NUMBERNS,'number-style'), **args)
-
-def PercentageStyle(**args):
- return StyleElement(qname = (NUMBERNS,'percentage-style'), **args)
-
-def Quarter(**args):
- return Element(qname = (NUMBERNS,'quarter'), **args)
-
-def ScientificNumber(**args):
- return Element(qname = (NUMBERNS,'scientific-number'), **args)
-
-def Seconds(**args):
- return Element(qname = (NUMBERNS,'seconds'), **args)
-
-def Text(**args):
- return Element(qname = (NUMBERNS,'text'), **args)
-
-def TextContent(**args):
- return Element(qname = (NUMBERNS,'text-content'), **args)
-
-def TextStyle(**args):
- return StyleElement(qname = (NUMBERNS,'text-style'), **args)
-
-def TimeStyle(**args):
- return StyleElement(qname = (NUMBERNS,'time-style'), **args)
-
-def WeekOfYear(**args):
- return Element(qname = (NUMBERNS,'week-of-year'), **args)
-
-def Year(**args):
- return Element(qname = (NUMBERNS,'year'), **args)
-
diff --git a/tablib/packages/odf/odf2moinmoin.py b/tablib/packages/odf/odf2moinmoin.py
deleted file mode 100644
index 167fcda..0000000
--- a/tablib/packages/odf/odf2moinmoin.py
+++ /dev/null
@@ -1,579 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2008 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# See http://trac.edgewall.org/wiki/WikiFormatting
-#
-# Contributor(s):
-#
-
-import sys, zipfile, xml.dom.minidom
-from namespaces import nsdict
-from elementtypes import *
-
-IGNORED_TAGS = [
- 'draw:a'
- 'draw:g',
- 'draw:line',
- 'draw:object-ole',
- 'office:annotation',
- 'presentation:notes',
- 'svg:desc',
-] + [ nsdict[item[0]]+":"+item[1] for item in empty_elements]
-
-INLINE_TAGS = [ nsdict[item[0]]+":"+item[1] for item in inline_elements]
-
-
-class TextProps:
- """ Holds properties for a text style. """
-
- def __init__(self):
-
- self.italic = False
- self.bold = False
- self.fixed = False
- self.underlined = False
- self.strikethrough = False
- self.superscript = False
- self.subscript = False
-
- def setItalic(self, value):
- if value == "italic":
- self.italic = True
- elif value == "normal":
- self.italic = False
-
- def setBold(self, value):
- if value == "bold":
- self.bold = True
- elif value == "normal":
- self.bold = False
-
- def setFixed(self, value):
- self.fixed = value
-
- def setUnderlined(self, value):
- if value and value != "none":
- self.underlined = True
-
- def setStrikethrough(self, value):
- if value and value != "none":
- self.strikethrough = True
-
- def setPosition(self, value):
- if value is None or value == '':
- return
- posisize = value.split(' ')
- textpos = posisize[0]
- if textpos.find('%') == -1:
- if textpos == "sub":
- self.superscript = False
- self.subscript = True
- elif textpos == "super":
- self.superscript = True
- self.subscript = False
- else:
- itextpos = int(textpos[:textpos.find('%')])
- if itextpos > 10:
- self.superscript = False
- self.subscript = True
- elif itextpos < -10:
- self.superscript = True
- self.subscript = False
-
- def __str__(self):
-
- return "[italic=%s, bold=i%s, fixed=%s]" % (str(self.italic),
- str(self.bold),
- str(self.fixed))
-
-class ParagraphProps:
- """ Holds properties of a paragraph style. """
-
- def __init__(self):
-
- self.blockquote = False
- self.headingLevel = 0
- self.code = False
- self.title = False
- self.indented = 0
-
- def setIndented(self, value):
- self.indented = value
-
- def setHeading(self, level):
- self.headingLevel = level
-
- def setTitle(self, value):
- self.title = value
-
- def setCode(self, value):
- self.code = value
-
-
- def __str__(self):
-
- return "[bq=%s, h=%d, code=%s]" % (str(self.blockquote),
- self.headingLevel,
- str(self.code))
-
-
-class ListProperties:
- """ Holds properties for a list style. """
-
- def __init__(self):
- self.ordered = False
-
- def setOrdered(self, value):
- self.ordered = value
-
-
-
-class ODF2MoinMoin(object):
-
-
- def __init__(self, filepath):
- self.footnotes = []
- self.footnoteCounter = 0
- self.textStyles = {"Standard": TextProps()}
- self.paragraphStyles = {"Standard": ParagraphProps()}
- self.listStyles = {}
- self.fixedFonts = []
- self.hasTitle = 0
- self.lastsegment = None
-
- # Tags
- self.elements = {
- 'draw:page': self.textToString,
- 'draw:frame': self.textToString,
- 'draw:image': self.draw_image,
- 'draw:text-box': self.textToString,
- 'text:a': self.text_a,
- 'text:note': self.text_note,
- }
- for tag in IGNORED_TAGS:
- self.elements[tag] = self.do_nothing
-
- for tag in INLINE_TAGS:
- self.elements[tag] = self.inline_markup
- self.elements['text:line-break'] = self.text_line_break
- self.elements['text:s'] = self.text_s
- self.elements['text:tab'] = self.text_tab
-
- self.load(filepath)
-
- def processFontDeclarations(self, fontDecl):
- """ Extracts necessary font information from a font-declaration
- element.
- """
- for fontFace in fontDecl.getElementsByTagName("style:font-face"):
- if fontFace.getAttribute("style:font-pitch") == "fixed":
- self.fixedFonts.append(fontFace.getAttribute("style:name"))
-
-
-
- def extractTextProperties(self, style, parent=None):
- """ Extracts text properties from a style element. """
-
- textProps = TextProps()
-
- if parent:
- parentProp = self.textStyles.get(parent, None)
- if parentProp:
- textProp = parentProp
-
- textPropEl = style.getElementsByTagName("style:text-properties")
- if not textPropEl: return textProps
-
- textPropEl = textPropEl[0]
-
- textProps.setItalic(textPropEl.getAttribute("fo:font-style"))
- textProps.setBold(textPropEl.getAttribute("fo:font-weight"))
- textProps.setUnderlined(textPropEl.getAttribute("style:text-underline-style"))
- textProps.setStrikethrough(textPropEl.getAttribute("style:text-line-through-style"))
- textProps.setPosition(textPropEl.getAttribute("style:text-position"))
-
- if textPropEl.getAttribute("style:font-name") in self.fixedFonts:
- textProps.setFixed(True)
-
- return textProps
-
- def extractParagraphProperties(self, style, parent=None):
- """ Extracts paragraph properties from a style element. """
-
- paraProps = ParagraphProps()
-
- name = style.getAttribute("style:name")
-
- if name.startswith("Heading_20_"):
- level = name[11:]
- try:
- level = int(level)
- paraProps.setHeading(level)
- except:
- level = 0
-
- if name == "Title":
- paraProps.setTitle(True)
-
- paraPropEl = style.getElementsByTagName("style:paragraph-properties")
- if paraPropEl:
- paraPropEl = paraPropEl[0]
- leftMargin = paraPropEl.getAttribute("fo:margin-left")
- if leftMargin:
- try:
- leftMargin = float(leftMargin[:-2])
- if leftMargin > 0.01:
- paraProps.setIndented(True)
- except:
- pass
-
- textProps = self.extractTextProperties(style)
- if textProps.fixed:
- paraProps.setCode(True)
-
- return paraProps
-
-
- def processStyles(self, styleElements):
- """ Runs through "style" elements extracting necessary information.
- """
-
- for style in styleElements:
-
- name = style.getAttribute("style:name")
-
- if name == "Standard": continue
-
- family = style.getAttribute("style:family")
- parent = style.getAttribute("style:parent-style-name")
-
- if family == "text":
- self.textStyles[name] = self.extractTextProperties(style, parent)
-
- elif family == "paragraph":
- self.paragraphStyles[name] = \
- self.extractParagraphProperties(style, parent)
- self.textStyles[name] = self.extractTextProperties(style, parent)
-
- def processListStyles(self, listStyleElements):
-
- for style in listStyleElements:
- name = style.getAttribute("style:name")
-
- prop = ListProperties()
- if style.hasChildNodes():
- subitems = [el for el in style.childNodes
- if el.nodeType == xml.dom.Node.ELEMENT_NODE
- and el.tagName == "text:list-level-style-number"]
- if len(subitems) > 0:
- prop.setOrdered(True)
-
- self.listStyles[name] = prop
-
-
- def load(self, filepath):
- """ Loads an ODT file. """
-
- zip = zipfile.ZipFile(filepath)
-
- styles_doc = xml.dom.minidom.parseString(zip.read("styles.xml"))
- fontfacedecls = styles_doc.getElementsByTagName("office:font-face-decls")
- if fontfacedecls:
- self.processFontDeclarations(fontfacedecls[0])
- self.processStyles(styles_doc.getElementsByTagName("style:style"))
- self.processListStyles(styles_doc.getElementsByTagName("text:list-style"))
-
- self.content = xml.dom.minidom.parseString(zip.read("content.xml"))
- fontfacedecls = self.content.getElementsByTagName("office:font-face-decls")
- if fontfacedecls:
- self.processFontDeclarations(fontfacedecls[0])
-
- self.processStyles(self.content.getElementsByTagName("style:style"))
- self.processListStyles(self.content.getElementsByTagName("text:list-style"))
-
- def compressCodeBlocks(self, text):
- """ Removes extra blank lines from code blocks. """
-
- return text
- lines = text.split("\n")
- buffer = []
- numLines = len(lines)
- for i in range(numLines):
-
- if (lines[i].strip() or i == numLines-1 or i == 0 or
- not ( lines[i-1].startswith(" ")
- and lines[i+1].startswith(" ") ) ):
- buffer.append("\n" + lines[i])
-
- return ''.join(buffer)
-
-#-----------------------------------
- def do_nothing(self, node):
- return ''
-
- def draw_image(self, node):
- """
- """
-
- link = node.getAttribute("xlink:href")
- if link and link[:2] == './': # Indicates a sub-object, which isn't supported
- return "%s\n" % link
- if link and link[:9] == 'Pictures/':
- link = link[9:]
- return "[[Image(%s)]]\n" % link
-
- def text_a(self, node):
- text = self.textToString(node)
- link = node.getAttribute("xlink:href")
- if link.strip() == text.strip():
- return "[%s] " % link.strip()
- else:
- return "[%s %s] " % (link.strip(), text.strip())
-
-
- def text_line_break(self, node):
- return "[[BR]]"
-
- def text_note(self, node):
- cite = (node.getElementsByTagName("text:note-citation")[0]
- .childNodes[0].nodeValue)
- body = (node.getElementsByTagName("text:note-body")[0]
- .childNodes[0])
- self.footnotes.append((cite, self.textToString(body)))
- return "^%s^" % cite
-
- def text_s(self, node):
- try:
- num = int(node.getAttribute("text:c"))
- return " "*num
- except:
- return " "
-
- def text_tab(self, node):
- return " "
-
- def inline_markup(self, node):
- text = self.textToString(node)
-
- if not text.strip():
- return '' # don't apply styles to white space
-
- styleName = node.getAttribute("text:style-name")
- style = self.textStyles.get(styleName, TextProps())
-
- if style.fixed:
- return "`" + text + "`"
-
- mark = []
- if style:
- if style.italic:
- mark.append("''")
- if style.bold:
- mark.append("'''")
- if style.underlined:
- mark.append("__")
- if style.strikethrough:
- mark.append("~~")
- if style.superscript:
- mark.append("^")
- if style.subscript:
- mark.append(",,")
- revmark = mark[:]
- revmark.reverse()
- return "%s%s%s" % (''.join(mark), text, ''.join(revmark))
-
-#-----------------------------------
- def listToString(self, listElement, indent = 0):
-
- self.lastsegment = listElement.tagName
- buffer = []
-
- styleName = listElement.getAttribute("text:style-name")
- props = self.listStyles.get(styleName, ListProperties())
-
- i = 0
- for item in listElement.childNodes:
- buffer.append(" "*indent)
- i += 1
- if props.ordered:
- number = str(i)
- number = " " + number + ". "
- buffer.append(" 1. ")
- else:
- buffer.append(" * ")
- subitems = [el for el in item.childNodes
- if el.tagName in ["text:p", "text:h", "text:list"]]
- for subitem in subitems:
- if subitem.tagName == "text:list":
- buffer.append("\n")
- buffer.append(self.listToString(subitem, indent+3))
- else:
- buffer.append(self.paragraphToString(subitem, indent+3))
- self.lastsegment = subitem.tagName
- self.lastsegment = item.tagName
- buffer.append("\n")
-
- return ''.join(buffer)
-
- def tableToString(self, tableElement):
- """ MoinMoin uses || to delimit table cells
- """
-
- self.lastsegment = tableElement.tagName
- buffer = []
-
- for item in tableElement.childNodes:
- self.lastsegment = item.tagName
- if item.tagName == "table:table-header-rows":
- buffer.append(self.tableToString(item))
- if item.tagName == "table:table-row":
- buffer.append("\n||")
- for cell in item.childNodes:
- buffer.append(self.inline_markup(cell))
- buffer.append("||")
- self.lastsegment = cell.tagName
- return ''.join(buffer)
-
-
- def toString(self):
- """ Converts the document to a string.
- FIXME: Result from second call differs from first call
- """
- body = self.content.getElementsByTagName("office:body")[0]
- text = body.childNodes[0]
-
- buffer = []
-
- paragraphs = [el for el in text.childNodes
- if el.tagName in ["draw:page", "text:p", "text:h","text:section",
- "text:list", "table:table"]]
-
- for paragraph in paragraphs:
- if paragraph.tagName == "text:list":
- text = self.listToString(paragraph)
- elif paragraph.tagName == "text:section":
- text = self.textToString(paragraph)
- elif paragraph.tagName == "table:table":
- text = self.tableToString(paragraph)
- else:
- text = self.paragraphToString(paragraph)
- if text:
- buffer.append(text)
-
- if self.footnotes:
-
- buffer.append("----")
- for cite, body in self.footnotes:
- buffer.append("%s: %s" % (cite, body))
-
-
- buffer.append("")
- return self.compressCodeBlocks('\n'.join(buffer))
-
-
- def textToString(self, element):
-
- buffer = []
-
- for node in element.childNodes:
-
- if node.nodeType == xml.dom.Node.TEXT_NODE:
- buffer.append(node.nodeValue)
-
- elif node.nodeType == xml.dom.Node.ELEMENT_NODE:
- tag = node.tagName
-
- if tag in ("draw:text-box", "draw:frame"):
- buffer.append(self.textToString(node))
-
- elif tag in ("text:p", "text:h"):
- text = self.paragraphToString(node)
- if text:
- buffer.append(text)
- elif tag == "text:list":
- buffer.append(self.listToString(node))
- else:
- method = self.elements.get(tag)
- if method:
- buffer.append(method(node))
- else:
- buffer.append(" {" + tag + "} ")
-
- return ''.join(buffer)
-
- def paragraphToString(self, paragraph, indent = 0):
-
- dummyParaProps = ParagraphProps()
-
- style_name = paragraph.getAttribute("text:style-name")
- paraProps = self.paragraphStyles.get(style_name, dummyParaProps)
- text = self.inline_markup(paragraph)
-
- if paraProps and not paraProps.code:
- text = text.strip()
-
- if paragraph.tagName == "text:p" and self.lastsegment == "text:p":
- text = "\n" + text
-
- self.lastsegment = paragraph.tagName
-
- if paraProps.title:
- self.hasTitle = 1
- return "= " + text + " =\n"
-
- outlinelevel = paragraph.getAttribute("text:outline-level")
- if outlinelevel:
-
- level = int(outlinelevel)
- if self.hasTitle: level += 1
-
- if level >= 1:
- return "=" * level + " " + text + " " + "=" * level + "\n"
-
- elif paraProps.code:
- return "{{{\n" + text + "\n}}}\n"
-
- if paraProps.indented:
- return self.wrapParagraph(text, indent = indent, blockquote = True)
-
- else:
- return self.wrapParagraph(text, indent = indent)
-
-
- def wrapParagraph(self, text, indent = 0, blockquote=False):
-
- counter = 0
- buffer = []
- LIMIT = 50
-
- if blockquote:
- buffer.append(" ")
-
- return ''.join(buffer) + text
- # Unused from here
- for token in text.split():
-
- if counter > LIMIT - indent:
- buffer.append("\n" + " "*indent)
- if blockquote:
- buffer.append(" ")
- counter = 0
-
- buffer.append(token + " ")
- counter += len(token)
-
- return ''.join(buffer)
diff --git a/tablib/packages/odf/odf2xhtml.py b/tablib/packages/odf/odf2xhtml.py
deleted file mode 100644
index 4bf4553..0000000
--- a/tablib/packages/odf/odf2xhtml.py
+++ /dev/null
@@ -1,1582 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2010 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-#import pdb
-#pdb.set_trace()
-from xml.sax import handler
-from xml.sax.saxutils import escape, quoteattr
-from xml.dom import Node
-
-from opendocument import load
-
-from namespaces import ANIMNS, CHARTNS, CONFIGNS, DCNS, DR3DNS, DRAWNS, FONS, \
- FORMNS, MATHNS, METANS, NUMBERNS, OFFICENS, PRESENTATIONNS, SCRIPTNS, \
- SMILNS, STYLENS, SVGNS, TABLENS, TEXTNS, XLINKNS
-
-# Handling of styles
-#
-# First there are font face declarations. These set up a font style that will be
-# referenced from a text-property. The declaration describes the font making
-# it possible for the application to find a similar font should the system not
-# have that particular one. The StyleToCSS stores these attributes to be used
-# for the CSS2 font declaration.
-#
-# Then there are default-styles. These set defaults for various style types:
-# "text", "paragraph", "section", "ruby", "table", "table-column", "table-row",
-# "table-cell", "graphic", "presentation", "drawing-page", "chart".
-# Since CSS2 can't refer to another style, ODF2XHTML add these to all
-# styles unless overridden.
-#
-# The real styles are declared in the <style:style> element. They have a
-# family referring to the default-styles, and may have a parent style.
-#
-# Styles have scope. The same name can be used for both paragraph and
-# character etc. styles Since CSS2 has no scope we use a prefix. (Not elegant)
-# In ODF a style can have a parent, these parents can be chained.
-
-class StyleToCSS:
- """ The purpose of the StyleToCSS class is to contain the rules to convert
- ODF styles to CSS2. Since it needs the generic fonts, it would probably
- make sense to also contain the Styles in a dict as well..
- """
-
- def __init__(self):
- # Font declarations
- self.fontdict = {}
-
- # Fill-images from presentations for backgrounds
- self.fillimages = {}
-
- self.ruleconversions = {
- (DRAWNS,u'fill-image-name'): self.c_drawfillimage,
- (FONS,u"background-color"): self.c_fo,
- (FONS,u"border"): self.c_fo,
- (FONS,u"border-bottom"): self.c_fo,
- (FONS,u"border-left"): self.c_fo,
- (FONS,u"border-right"): self.c_fo,
- (FONS,u"border-top"): self.c_fo,
- (FONS,u"color"): self.c_fo,
- (FONS,u"font-family"): self.c_fo,
- (FONS,u"font-size"): self.c_fo,
- (FONS,u"font-style"): self.c_fo,
- (FONS,u"font-variant"): self.c_fo,
- (FONS,u"font-weight"): self.c_fo,
- (FONS,u"line-height"): self.c_fo,
- (FONS,u"margin"): self.c_fo,
- (FONS,u"margin-bottom"): self.c_fo,
- (FONS,u"margin-left"): self.c_fo,
- (FONS,u"margin-right"): self.c_fo,
- (FONS,u"margin-top"): self.c_fo,
- (FONS,u"min-height"): self.c_fo,
- (FONS,u"padding"): self.c_fo,
- (FONS,u"padding-bottom"): self.c_fo,
- (FONS,u"padding-left"): self.c_fo,
- (FONS,u"padding-right"): self.c_fo,
- (FONS,u"padding-top"): self.c_fo,
- (FONS,u"page-width"): self.c_page_width,
- (FONS,u"page-height"): self.c_page_height,
- (FONS,u"text-align"): self.c_text_align,
- (FONS,u"text-indent") :self.c_fo,
- (TABLENS,u'border-model') :self.c_border_model,
- (STYLENS,u'column-width') : self.c_width,
- (STYLENS,u"font-name"): self.c_fn,
- (STYLENS,u'horizontal-pos'): self.c_hp,
- (STYLENS,u'text-position'): self.c_text_position,
- (STYLENS,u'text-line-through-style'): self.c_text_line_through_style,
- (STYLENS,u'text-underline-style'): self.c_text_underline_style,
- (STYLENS,u'width') : self.c_width,
- # FIXME Should do style:vertical-pos here
- }
-
- def save_font(self, name, family, generic):
- """ It is possible that the HTML browser doesn't know how to
- show a particular font. Fortunately ODF provides generic fallbacks.
- Unfortunately they are not the same as CSS2.
- CSS2: serif, sans-serif, cursive, fantasy, monospace
- ODF: roman, swiss, modern, decorative, script, system
- This method put the font and fallback into a dictionary
- """
- htmlgeneric = "sans-serif"
- if generic == "roman": htmlgeneric = "serif"
- elif generic == "swiss": htmlgeneric = "sans-serif"
- elif generic == "modern": htmlgeneric = "monospace"
- elif generic == "decorative": htmlgeneric = "sans-serif"
- elif generic == "script": htmlgeneric = "monospace"
- elif generic == "system": htmlgeneric = "serif"
- self.fontdict[name] = (family, htmlgeneric)
-
- def c_drawfillimage(self, ruleset, sdict, rule, val):
- """ Fill a figure with an image. Since CSS doesn't let you resize images
- this should really be implemented as an absolutely position <img>
- with a width and a height
- """
- sdict['background-image'] = "url('%s')" % self.fillimages[val]
-
- def c_fo(self, ruleset, sdict, rule, val):
- """ XSL formatting attributes """
- selector = rule[1]
- sdict[selector] = val
-
- def c_border_model(self, ruleset, sdict, rule, val):
- """ Convert to CSS2 border model """
- if val == 'collapsing':
- sdict['border-collapse'] ='collapse'
- else:
- sdict['border-collapse'] ='separate'
-
- def c_width(self, ruleset, sdict, rule, val):
- """ Set width of box """
- sdict['width'] = val
-
- def c_text_align(self, ruleset, sdict, rule, align):
- """ Text align """
- if align == "start": align = "left"
- if align == "end": align = "right"
- sdict['text-align'] = align
-
- def c_fn(self, ruleset, sdict, rule, fontstyle):
- """ Generate the CSS font family
- A generic font can be found in two ways. In a <style:font-face>
- element or as a font-family-generic attribute in text-properties.
- """
- generic = ruleset.get((STYLENS,'font-family-generic') )
- if generic is not None:
- self.save_font(fontstyle, fontstyle, generic)
- family, htmlgeneric = self.fontdict.get(fontstyle, (fontstyle, 'serif'))
- sdict['font-family'] = '%s, %s' % (family, htmlgeneric)
-
- def c_text_position(self, ruleset, sdict, rule, tp):
- """ Text position. This is used e.g. to make superscript and subscript
- This attribute can have one or two values.
-
- The first value must be present and specifies the vertical
- text position as a percentage that relates to the current font
- height or it takes one of the values sub or super. Negative
- percentages or the sub value place the text below the
- baseline. Positive percentages or the super value place
- the text above the baseline. If sub or super is specified,
- the application can choose an appropriate text position.
-
- The second value is optional and specifies the font height
- as a percentage that relates to the current font-height. If
- this value is not specified, an appropriate font height is
- used. Although this value may change the font height that
- is displayed, it never changes the current font height that
- is used for additional calculations.
- """
- textpos = tp.split(' ')
- if len(textpos) == 2 and textpos[0] != "0%":
- # Bug in OpenOffice. If vertical-align is 0% - ignore the text size.
- sdict['font-size'] = textpos[1]
- if textpos[0] == "super":
- sdict['vertical-align'] = "33%"
- elif textpos[0] == "sub":
- sdict['vertical-align'] = "-33%"
- else:
- sdict['vertical-align'] = textpos[0]
-
- def c_hp(self, ruleset, sdict, rule, hpos):
- #FIXME: Frames wrap-style defaults to 'parallel', graphics to 'none'.
- # It is properly set in the parent-styles, but the program doesn't
- # collect the information.
- wrap = ruleset.get((STYLENS,'wrap'),'parallel')
- # Can have: from-left, left, center, right, from-inside, inside, outside
- if hpos == "center":
- sdict['margin-left'] = "auto"
- sdict['margin-right'] = "auto"
-# else:
-# # force it to be *something* then delete it
-# sdict['margin-left'] = sdict['margin-right'] = ''
-# del sdict['margin-left'], sdict['margin-right']
-
- if hpos in ("right","outside"):
- if wrap in ( "left", "parallel","dynamic"):
- sdict['float'] = "right"
- elif wrap == "run-through":
- sdict['position'] = "absolute" # Simulate run-through
- sdict['top'] = "0"
- sdict['right'] = "0";
- else: # No wrapping
- sdict['margin-left'] = "auto"
- sdict['margin-right'] = "0px"
- elif hpos in ("left", "inside"):
- if wrap in ( "right", "parallel","dynamic"):
- sdict['float'] = "left"
- elif wrap == "run-through":
- sdict['position'] = "absolute" # Simulate run-through
- sdict['top'] = "0"
- sdict['left'] = "0"
- else: # No wrapping
- sdict['margin-left'] = "0px"
- sdict['margin-right'] = "auto"
- elif hpos in ("from-left", "from-inside"):
- if wrap in ( "right", "parallel"):
- sdict['float'] = "left"
- else:
- sdict['position'] = "relative" # No wrapping
- if ruleset.has_key( (SVGNS,'x') ):
- sdict['left'] = ruleset[(SVGNS,'x')]
-
- def c_page_width(self, ruleset, sdict, rule, val):
- """ Set width of box
- HTML doesn't really have a page-width. It is always 100% of the browser width
- """
- sdict['width'] = val
-
- def c_text_underline_style(self, ruleset, sdict, rule, val):
- """ Set underline decoration
- HTML doesn't really have a page-width. It is always 100% of the browser width
- """
- if val and val != "none":
- sdict['text-decoration'] = "underline"
-
- def c_text_line_through_style(self, ruleset, sdict, rule, val):
- """ Set underline decoration
- HTML doesn't really have a page-width. It is always 100% of the browser width
- """
- if val and val != "none":
- sdict['text-decoration'] = "line-through"
-
- def c_page_height(self, ruleset, sdict, rule, val):
- """ Set height of box """
- sdict['height'] = val
-
- def convert_styles(self, ruleset):
- """ Rule is a tuple of (namespace, name). If the namespace is '' then
- it is already CSS2
- """
- sdict = {}
- for rule,val in ruleset.items():
- if rule[0] == '':
- sdict[rule[1]] = val
- continue
- method = self.ruleconversions.get(rule, None )
- if method:
- method(ruleset, sdict, rule, val)
- return sdict
-
-
-class TagStack:
- def __init__(self):
- self.stack = []
-
- def push(self, tag, attrs):
- self.stack.append( (tag, attrs) )
-
- def pop(self):
- item = self.stack.pop()
- return item
-
- def stackparent(self):
- item = self.stack[-1]
- return item[1]
-
- def rfindattr(self, attr):
- """ Find a tag with the given attribute """
- for tag, attrs in self.stack:
- if attrs.has_key(attr):
- return attrs[attr]
- return None
- def count_tags(self, tag):
- c = 0
- for ttag, tattrs in self.stack:
- if ttag == tag: c = c + 1
- return c
-
-special_styles = {
- 'S-Emphasis':'em',
- 'S-Citation':'cite',
- 'S-Strong_20_Emphasis':'strong',
- 'S-Variable':'var',
- 'S-Definition':'dfn',
- 'S-Teletype':'tt',
- 'P-Heading_20_1':'h1',
- 'P-Heading_20_2':'h2',
- 'P-Heading_20_3':'h3',
- 'P-Heading_20_4':'h4',
- 'P-Heading_20_5':'h5',
- 'P-Heading_20_6':'h6',
-# 'P-Caption':'caption',
- 'P-Addressee':'address',
-# 'P-List_20_Heading':'dt',
-# 'P-List_20_Contents':'dd',
- 'P-Preformatted_20_Text':'pre',
-# 'P-Table_20_Heading':'th',
-# 'P-Table_20_Contents':'td',
-# 'P-Text_20_body':'p'
-}
-
-#-----------------------------------------------------------------------------
-#
-# ODFCONTENTHANDLER
-#
-#-----------------------------------------------------------------------------
-class ODF2XHTML(handler.ContentHandler):
- """ The ODF2XHTML parses an ODF file and produces XHTML"""
-
- def __init__(self, generate_css=True, embedable=False):
- # Tags
- self.generate_css = generate_css
- self.elements = {
- (DCNS, 'title'): (self.s_processcont, self.e_dc_title),
- (DCNS, 'language'): (self.s_processcont, self.e_dc_contentlanguage),
- (DCNS, 'creator'): (self.s_processcont, self.e_dc_creator),
- (DCNS, 'description'): (self.s_processcont, self.e_dc_metatag),
- (DCNS, 'date'): (self.s_processcont, self.e_dc_metatag),
- (DRAWNS, 'custom-shape'): (self.s_custom_shape, self.e_custom_shape),
- (DRAWNS, 'frame'): (self.s_draw_frame, self.e_draw_frame),
- (DRAWNS, 'image'): (self.s_draw_image, None),
- (DRAWNS, 'fill-image'): (self.s_draw_fill_image, None),
- (DRAWNS, "layer-set"):(self.s_ignorexml, None),
- (DRAWNS, 'object'): (self.s_draw_object, None),
- (DRAWNS, 'object-ole'): (self.s_draw_object_ole, None),
- (DRAWNS, 'page'): (self.s_draw_page, self.e_draw_page),
- (DRAWNS, 'text-box'): (self.s_draw_textbox, self.e_draw_textbox),
- (METANS, 'creation-date'):(self.s_processcont, self.e_dc_metatag),
- (METANS, 'generator'):(self.s_processcont, self.e_dc_metatag),
- (METANS, 'initial-creator'): (self.s_processcont, self.e_dc_metatag),
- (METANS, 'keyword'): (self.s_processcont, self.e_dc_metatag),
- (NUMBERNS, "boolean-style"):(self.s_ignorexml, None),
- (NUMBERNS, "currency-style"):(self.s_ignorexml, None),
- (NUMBERNS, "date-style"):(self.s_ignorexml, None),
- (NUMBERNS, "number-style"):(self.s_ignorexml, None),
- (NUMBERNS, "text-style"):(self.s_ignorexml, None),
- (OFFICENS, "annotation"):(self.s_ignorexml, None),
- (OFFICENS, "automatic-styles"):(self.s_office_automatic_styles, None),
- (OFFICENS, "document"):(self.s_office_document_content, self.e_office_document_content),
- (OFFICENS, "document-content"):(self.s_office_document_content, self.e_office_document_content),
- (OFFICENS, "forms"):(self.s_ignorexml, None),
- (OFFICENS, "master-styles"):(self.s_office_master_styles, None),
- (OFFICENS, "meta"):(self.s_ignorecont, None),
- (OFFICENS, "presentation"):(self.s_office_presentation, self.e_office_presentation),
- (OFFICENS, "spreadsheet"):(self.s_office_spreadsheet, self.e_office_spreadsheet),
- (OFFICENS, "styles"):(self.s_office_styles, None),
- (OFFICENS, "text"):(self.s_office_text, self.e_office_text),
- (OFFICENS, "scripts"):(self.s_ignorexml, None),
- (OFFICENS, "settings"):(self.s_ignorexml, None),
- (PRESENTATIONNS, "notes"):(self.s_ignorexml, None),
-# (STYLENS, "default-page-layout"):(self.s_style_default_page_layout, self.e_style_page_layout),
- (STYLENS, "default-page-layout"):(self.s_ignorexml, None),
- (STYLENS, "default-style"):(self.s_style_default_style, self.e_style_default_style),
- (STYLENS, "drawing-page-properties"):(self.s_style_handle_properties, None),
- (STYLENS, "font-face"):(self.s_style_font_face, None),
-# (STYLENS, "footer"):(self.s_style_footer, self.e_style_footer),
-# (STYLENS, "footer-style"):(self.s_style_footer_style, None),
- (STYLENS, "graphic-properties"):(self.s_style_handle_properties, None),
- (STYLENS, "handout-master"):(self.s_ignorexml, None),
-# (STYLENS, "header"):(self.s_style_header, self.e_style_header),
-# (STYLENS, "header-footer-properties"):(self.s_style_handle_properties, None),
-# (STYLENS, "header-style"):(self.s_style_header_style, None),
- (STYLENS, "master-page"):(self.s_style_master_page, None),
- (STYLENS, "page-layout-properties"):(self.s_style_handle_properties, None),
- (STYLENS, "page-layout"):(self.s_style_page_layout, self.e_style_page_layout),
-# (STYLENS, "page-layout"):(self.s_ignorexml, None),
- (STYLENS, "paragraph-properties"):(self.s_style_handle_properties, None),
- (STYLENS, "style"):(self.s_style_style, self.e_style_style),
- (STYLENS, "table-cell-properties"):(self.s_style_handle_properties, None),
- (STYLENS, "table-column-properties"):(self.s_style_handle_properties, None),
- (STYLENS, "table-properties"):(self.s_style_handle_properties, None),
- (STYLENS, "text-properties"):(self.s_style_handle_properties, None),
- (SVGNS, 'desc'): (self.s_ignorexml, None),
- (TABLENS, 'covered-table-cell'): (self.s_ignorexml, None),
- (TABLENS, 'table-cell'): (self.s_table_table_cell, self.e_table_table_cell),
- (TABLENS, 'table-column'): (self.s_table_table_column, None),
- (TABLENS, 'table-row'): (self.s_table_table_row, self.e_table_table_row),
- (TABLENS, 'table'): (self.s_table_table, self.e_table_table),
- (TEXTNS, 'a'): (self.s_text_a, self.e_text_a),
- (TEXTNS, "alphabetical-index-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, "bibliography-configuration"):(self.s_ignorexml, None),
- (TEXTNS, "bibliography-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, 'bookmark'): (self.s_text_bookmark, None),
- (TEXTNS, 'bookmark-start'): (self.s_text_bookmark, None),
- (TEXTNS, 'bookmark-ref'): (self.s_text_bookmark_ref, self.e_text_a),
- (TEXTNS, 'bookmark-ref-start'): (self.s_text_bookmark_ref, None),
- (TEXTNS, 'h'): (self.s_text_h, self.e_text_h),
- (TEXTNS, "illustration-index-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, 'line-break'):(self.s_text_line_break, None),
- (TEXTNS, "linenumbering-configuration"):(self.s_ignorexml, None),
- (TEXTNS, "list"):(self.s_text_list, self.e_text_list),
- (TEXTNS, "list-item"):(self.s_text_list_item, self.e_text_list_item),
- (TEXTNS, "list-level-style-bullet"):(self.s_text_list_level_style_bullet, self.e_text_list_level_style_bullet),
- (TEXTNS, "list-level-style-number"):(self.s_text_list_level_style_number, self.e_text_list_level_style_number),
- (TEXTNS, "list-style"):(None, None),
- (TEXTNS, "note"):(self.s_text_note, None),
- (TEXTNS, "note-body"):(self.s_text_note_body, self.e_text_note_body),
- (TEXTNS, "note-citation"):(None, self.e_text_note_citation),
- (TEXTNS, "notes-configuration"):(self.s_ignorexml, None),
- (TEXTNS, "object-index-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, 'p'): (self.s_text_p, self.e_text_p),
- (TEXTNS, 's'): (self.s_text_s, None),
- (TEXTNS, 'span'): (self.s_text_span, self.e_text_span),
- (TEXTNS, 'tab'): (self.s_text_tab, None),
- (TEXTNS, "table-index-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, "table-of-content-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, "user-index-source"):(self.s_text_x_source, self.e_text_x_source),
- }
- if embedable:
- self.make_embedable()
- self._resetobject()
-
- def set_plain(self):
- """ Tell the parser to not generate CSS """
- self.generate_css = False
-
- def set_embedable(self):
- """ Tells the converter to only output the parts inside the <body>"""
- self.elements[(OFFICENS, u"text")] = (None,None)
- self.elements[(OFFICENS, u"spreadsheet")] = (None,None)
- self.elements[(OFFICENS, u"presentation")] = (None,None)
- self.elements[(OFFICENS, u"document-content")] = (None,None)
-
-
- def add_style_file(self, stylefilename, media=None):
- """ Add a link to an external style file.
- Also turns of the embedding of styles in the HTML
- """
- self.use_internal_css = False
- self.stylefilename = stylefilename
- if media:
- self.metatags.append('<link rel="stylesheet" type="text/css" href="%s" media="%s"/>\n' % (stylefilename,media))
- else:
- self.metatags.append('<link rel="stylesheet" type="text/css" href="%s"/>\n' % (stylefilename))
-
- def _resetfootnotes(self):
- # Footnotes and endnotes
- self.notedict = {}
- self.currentnote = 0
- self.notebody = ''
-
- def _resetobject(self):
- self.lines = []
- self._wfunc = self._wlines
- self.xmlfile = ''
- self.title = ''
- self.language = ''
- self.creator = ''
- self.data = []
- self.tagstack = TagStack()
- self.htmlstack = []
- self.pstack = []
- self.processelem = True
- self.processcont = True
- self.listtypes = {}
- self.headinglevels = [0, 0,0,0,0,0, 0,0,0,0,0] # level 0 to 10
- self.use_internal_css = True
- self.cs = StyleToCSS()
- self.anchors = {}
-
- # Style declarations
- self.stylestack = []
- self.styledict = {}
- self.currentstyle = None
-
- self._resetfootnotes()
-
- # Tags from meta.xml
- self.metatags = []
-
-
- def writeout(self, s):
- if s != '':
- self._wfunc(s)
-
- def writedata(self):
- d = ''.join(self.data)
- if d != '':
- self.writeout(escape(d))
-
- def opentag(self, tag, attrs={}, block=False):
- """ Create an open HTML tag """
- self.htmlstack.append((tag,attrs,block))
- a = []
- for key,val in attrs.items():
- a.append('''%s=%s''' % (key, quoteattr(val)))
- if len(a) == 0:
- self.writeout("<%s>" % tag)
- else:
- self.writeout("<%s %s>" % (tag, " ".join(a)))
- if block == True:
- self.writeout("\n")
-
- def closetag(self, tag, block=True):
- """ Close an open HTML tag """
- self.htmlstack.pop()
- self.writeout("</%s>" % tag)
- if block == True:
- self.writeout("\n")
-
- def emptytag(self, tag, attrs={}):
- a = []
- for key,val in attrs.items():
- a.append('''%s=%s''' % (key, quoteattr(val)))
- self.writeout("<%s %s/>\n" % (tag, " ".join(a)))
-
-#--------------------------------------------------
-# Interface to parser
-#--------------------------------------------------
- def characters(self, data):
- if self.processelem and self.processcont:
- self.data.append(data)
-
- def startElementNS(self, tag, qname, attrs):
- self.pstack.append( (self.processelem, self.processcont) )
- if self.processelem:
- method = self.elements.get(tag, (None, None) )[0]
- if method:
- self.handle_starttag(tag, method, attrs)
- else:
- self.unknown_starttag(tag,attrs)
- self.tagstack.push( tag, attrs )
-
- def endElementNS(self, tag, qname):
- stag, attrs = self.tagstack.pop()
- if self.processelem:
- method = self.elements.get(tag, (None, None) )[1]
- if method:
- self.handle_endtag(tag, attrs, method)
- else:
- self.unknown_endtag(tag, attrs)
- self.processelem, self.processcont = self.pstack.pop()
-
-#--------------------------------------------------
- def handle_starttag(self, tag, method, attrs):
- method(tag,attrs)
-
- def handle_endtag(self, tag, attrs, method):
- method(tag, attrs)
-
- def unknown_starttag(self, tag, attrs):
- pass
-
- def unknown_endtag(self, tag, attrs):
- pass
-
- def s_ignorexml(self, tag, attrs):
- """ Ignore this xml element and all children of it
- It will automatically stop ignoring
- """
- self.processelem = False
-
- def s_ignorecont(self, tag, attrs):
- """ Stop processing the text nodes """
- self.processcont = False
-
- def s_processcont(self, tag, attrs):
- """ Start processing the text nodes """
- self.processcont = True
-
- def classname(self, attrs):
- """ Generate a class name from a style name """
- c = attrs.get((TEXTNS,'style-name'),'')
- c = c.replace(".","_")
- return c
-
- def get_anchor(self, name):
- """ Create a unique anchor id for a href name """
- if not self.anchors.has_key(name):
- self.anchors[name] = "anchor%03d" % (len(self.anchors) + 1)
- return self.anchors.get(name)
-
-
-#--------------------------------------------------
-
- def purgedata(self):
- self.data = []
-
-#-----------------------------------------------------------------------------
-#
-# Handle meta data
-#
-#-----------------------------------------------------------------------------
- def e_dc_title(self, tag, attrs):
- """ Get the title from the meta data and create a HTML <title>
- """
- self.title = ''.join(self.data)
- #self.metatags.append('<title>%s</title>\n' % escape(self.title))
- self.data = []
-
- def e_dc_metatag(self, tag, attrs):
- """ Any other meta data is added as a <meta> element
- """
- self.metatags.append('<meta name="%s" content=%s/>\n' % (tag[1], quoteattr(''.join(self.data))))
- self.data = []
-
- def e_dc_contentlanguage(self, tag, attrs):
- """ Set the content language. Identifies the targeted audience
- """
- self.language = ''.join(self.data)
- self.metatags.append('<meta http-equiv="content-language" content="%s"/>\n' % escape(self.language))
- self.data = []
-
- def e_dc_creator(self, tag, attrs):
- """ Set the content creator. Identifies the targeted audience
- """
- self.creator = ''.join(self.data)
- self.metatags.append('<meta http-equiv="creator" content="%s"/>\n' % escape(self.creator))
- self.data = []
-
- def s_custom_shape(self, tag, attrs):
- """ A <draw:custom-shape> is made into a <div> in HTML which is then styled
- """
- anchor_type = attrs.get((TEXTNS,'anchor-type'),'notfound')
- htmltag = 'div'
- name = "G-" + attrs.get( (DRAWNS,'style-name'), "")
- if name == 'G-':
- name = "PR-" + attrs.get( (PRESENTATIONNS,'style-name'), "")
- name = name.replace(".","_")
- if anchor_type == "paragraph":
- style = 'position:absolute;'
- elif anchor_type == 'char':
- style = "position:absolute;"
- elif anchor_type == 'as-char':
- htmltag = 'div'
- style = ''
- else:
- style = "position: absolute;"
- if attrs.has_key( (SVGNS,"width") ):
- style = style + "width:" + attrs[(SVGNS,"width")] + ";"
- if attrs.has_key( (SVGNS,"height") ):
- style = style + "height:" + attrs[(SVGNS,"height")] + ";"
- if attrs.has_key( (SVGNS,"x") ):
- style = style + "left:" + attrs[(SVGNS,"x")] + ";"
- if attrs.has_key( (SVGNS,"y") ):
- style = style + "top:" + attrs[(SVGNS,"y")] + ";"
- if self.generate_css:
- self.opentag(htmltag, {'class': name, 'style': style})
- else:
- self.opentag(htmltag)
-
- def e_custom_shape(self, tag, attrs):
- """ End the <draw:frame>
- """
- self.closetag('div')
-
- def s_draw_frame(self, tag, attrs):
- """ A <draw:frame> is made into a <div> in HTML which is then styled
- """
- anchor_type = attrs.get((TEXTNS,'anchor-type'),'notfound')
- htmltag = 'div'
- name = "G-" + attrs.get( (DRAWNS,'style-name'), "")
- if name == 'G-':
- name = "PR-" + attrs.get( (PRESENTATIONNS,'style-name'), "")
- name = name.replace(".","_")
- if anchor_type == "paragraph":
- style = 'position:relative;'
- elif anchor_type == 'char':
- style = "position:relative;"
- elif anchor_type == 'as-char':
- htmltag = 'div'
- style = ''
- else:
- style = "position:absolute;"
- if attrs.has_key( (SVGNS,"width") ):
- style = style + "width:" + attrs[(SVGNS,"width")] + ";"
- if attrs.has_key( (SVGNS,"height") ):
- style = style + "height:" + attrs[(SVGNS,"height")] + ";"
- if attrs.has_key( (SVGNS,"x") ):
- style = style + "left:" + attrs[(SVGNS,"x")] + ";"
- if attrs.has_key( (SVGNS,"y") ):
- style = style + "top:" + attrs[(SVGNS,"y")] + ";"
- if self.generate_css:
- self.opentag(htmltag, {'class': name, 'style': style})
- else:
- self.opentag(htmltag)
-
- def e_draw_frame(self, tag, attrs):
- """ End the <draw:frame>
- """
- self.closetag('div')
-
- def s_draw_fill_image(self, tag, attrs):
- name = attrs.get( (DRAWNS,'name'), "NoName")
- imghref = attrs[(XLINKNS,"href")]
- imghref = self.rewritelink(imghref)
- self.cs.fillimages[name] = imghref
-
- def rewritelink(self, imghref):
- """ Intended to be overloaded if you don't store your pictures
- in a Pictures subfolder
- """
- return imghref
-
- def s_draw_image(self, tag, attrs):
- """ A <draw:image> becomes an <img/> element
- """
- parent = self.tagstack.stackparent()
- anchor_type = parent.get((TEXTNS,'anchor-type'))
- imghref = attrs[(XLINKNS,"href")]
- imghref = self.rewritelink(imghref)
- htmlattrs = {'alt':"", 'src':imghref }
- if self.generate_css:
- if anchor_type != "char":
- htmlattrs['style'] = "display: block;"
- self.emptytag('img', htmlattrs)
-
- def s_draw_object(self, tag, attrs):
- """ A <draw:object> is embedded object in the document (e.g. spreadsheet in presentation).
- """
- objhref = attrs[(XLINKNS,"href")]
- # Remove leading "./": from "./Object 1" to "Object 1"
-# objhref = objhref [2:]
-
- # Not using os.path.join since it fails to find the file on Windows.
-# objcontentpath = '/'.join([objhref, 'content.xml'])
-
- for c in self.document.childnodes:
- if c.folder == objhref:
- self._walknode(c.topnode)
-
- def s_draw_object_ole(self, tag, attrs):
- """ A <draw:object-ole> is embedded OLE object in the document (e.g. MS Graph).
- """
- class_id = attrs[(DRAWNS,"class-id")]
- if class_id and class_id.lower() == "00020803-0000-0000-c000-000000000046": ## Microsoft Graph 97 Chart
- tagattrs = { 'name':'object_ole_graph', 'class':'ole-graph' }
- self.opentag('a', tagattrs)
- self.closetag('a', tagattrs)
-
- def s_draw_page(self, tag, attrs):
- """ A <draw:page> is a slide in a presentation. We use a <fieldset> element in HTML.
- Therefore if you convert a ODP file, you get a series of <fieldset>s.
- Override this for your own purpose.
- """
- name = attrs.get( (DRAWNS,'name'), "NoName")
- stylename = attrs.get( (DRAWNS,'style-name'), "")
- stylename = stylename.replace(".","_")
- masterpage = attrs.get( (DRAWNS,'master-page-name'),"")
- masterpage = masterpage.replace(".","_")
- if self.generate_css:
- self.opentag('fieldset', {'class':"DP-%s MP-%s" % (stylename, masterpage) })
- else:
- self.opentag('fieldset')
- self.opentag('legend')
- self.writeout(escape(name))
- self.closetag('legend')
-
- def e_draw_page(self, tag, attrs):
- self.closetag('fieldset')
-
- def s_draw_textbox(self, tag, attrs):
- style = ''
- if attrs.has_key( (FONS,"min-height") ):
- style = style + "min-height:" + attrs[(FONS,"min-height")] + ";"
- self.opentag('div')
-# self.opentag('div', {'style': style})
-
- def e_draw_textbox(self, tag, attrs):
- """ End the <draw:text-box>
- """
- self.closetag('div')
-
- def html_body(self, tag, attrs):
- self.writedata()
- if self.generate_css and self.use_internal_css:
- self.opentag('style', {'type':"text/css"}, True)
- self.writeout('/*<![CDATA[*/\n')
- self.generate_stylesheet()
- self.writeout('/*]]>*/\n')
- self.closetag('style')
- self.purgedata()
- self.closetag('head')
- self.opentag('body', block=True)
-
- default_styles = """
-img { width: 100%; height: 100%; }
-* { padding: 0; margin: 0; background-color:white; }
-body { margin: 0 1em; }
-ol, ul { padding-left: 2em; }
-"""
-
- def generate_stylesheet(self):
- for name in self.stylestack:
- styles = self.styledict.get(name)
- # Preload with the family's default style
- if styles.has_key('__style-family') and self.styledict.has_key(styles['__style-family']):
- familystyle = self.styledict[styles['__style-family']].copy()
- del styles['__style-family']
- for style, val in styles.items():
- familystyle[style] = val
- styles = familystyle
- # Resolve the remaining parent styles
- while styles.has_key('__parent-style-name') and self.styledict.has_key(styles['__parent-style-name']):
- parentstyle = self.styledict[styles['__parent-style-name']].copy()
- del styles['__parent-style-name']
- for style, val in styles.items():
- parentstyle[style] = val
- styles = parentstyle
- self.styledict[name] = styles
- # Write the styles to HTML
- self.writeout(self.default_styles)
- for name in self.stylestack:
- styles = self.styledict.get(name)
- css2 = self.cs.convert_styles(styles)
- self.writeout("%s {\n" % name)
- for style, val in css2.items():
- self.writeout("\t%s: %s;\n" % (style, val) )
- self.writeout("}\n")
-
- def generate_footnotes(self):
- if self.currentnote == 0:
- return
- if self.generate_css:
- self.opentag('ol', {'style':'border-top: 1px solid black'}, True)
- else:
- self.opentag('ol')
- for key in range(1,self.currentnote+1):
- note = self.notedict[key]
-# for key,note in self.notedict.items():
- self.opentag('li', { 'id':"footnote-%d" % key })
-# self.opentag('sup')
-# self.writeout(escape(note['citation']))
-# self.closetag('sup', False)
- self.writeout(note['body'])
- self.closetag('li')
- self.closetag('ol')
-
- def s_office_automatic_styles(self, tag, attrs):
- if self.xmlfile == 'styles.xml':
- self.autoprefix = "A"
- else:
- self.autoprefix = ""
-
- def s_office_document_content(self, tag, attrs):
- """ First tag in the content.xml file"""
- self.writeout('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" ')
- self.writeout('"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\n')
- self.opentag('html', {'xmlns':"http://www.w3.org/1999/xhtml"}, True)
- self.opentag('head', block=True)
- self.emptytag('meta', { 'http-equiv':"Content-Type", 'content':"text/html;charset=UTF-8"})
- for metaline in self.metatags:
- self.writeout(metaline)
- self.writeout('<title>%s</title>\n' % escape(self.title))
-
- def e_office_document_content(self, tag, attrs):
- """ Last tag """
- self.closetag('html')
-
- def s_office_master_styles(self, tag, attrs):
- """ """
-
- def s_office_presentation(self, tag, attrs):
- """ For some odd reason, OpenOffice Impress doesn't define a default-style
- for the 'paragraph'. We therefore force a standard when we see
- it is a presentation
- """
- self.styledict['p'] = {(FONS,u'font-size'): u"24pt" }
- self.styledict['presentation'] = {(FONS,u'font-size'): u"24pt" }
- self.html_body(tag, attrs)
-
- def e_office_presentation(self, tag, attrs):
- self.generate_footnotes()
- self.closetag('body')
-
- def s_office_spreadsheet(self, tag, attrs):
- self.html_body(tag, attrs)
-
- def e_office_spreadsheet(self, tag, attrs):
- self.generate_footnotes()
- self.closetag('body')
-
- def s_office_styles(self, tag, attrs):
- self.autoprefix = ""
-
- def s_office_text(self, tag, attrs):
- """ OpenDocument text """
- self.styledict['frame'] = { (STYLENS,'wrap'): u'parallel'}
- self.html_body(tag, attrs)
-
- def e_office_text(self, tag, attrs):
- self.generate_footnotes()
- self.closetag('body')
-
- def s_style_handle_properties(self, tag, attrs):
- """ Copy all attributes to a struct.
- We will later convert them to CSS2
- """
- for key,attr in attrs.items():
- self.styledict[self.currentstyle][key] = attr
-
-
- familymap = {'frame':'frame', 'paragraph':'p', 'presentation':'presentation',
- 'text':'span','section':'div',
- 'table':'table','table-cell':'td','table-column':'col',
- 'table-row':'tr','graphic':'graphic' }
-
- def s_style_default_style(self, tag, attrs):
- """ A default style is like a style on an HTML tag
- """
- family = attrs[(STYLENS,'family')]
- htmlfamily = self.familymap.get(family,'unknown')
- self.currentstyle = htmlfamily
-# self.stylestack.append(self.currentstyle)
- self.styledict[self.currentstyle] = {}
-
- def e_style_default_style(self, tag, attrs):
- self.currentstyle = None
-
- def s_style_font_face(self, tag, attrs):
- """ It is possible that the HTML browser doesn't know how to
- show a particular font. Luckily ODF provides generic fallbacks
- Unfortunately they are not the same as CSS2.
- CSS2: serif, sans-serif, cursive, fantasy, monospace
- ODF: roman, swiss, modern, decorative, script, system
- """
- name = attrs[(STYLENS,"name")]
- family = attrs[(SVGNS,"font-family")]
- generic = attrs.get( (STYLENS,'font-family-generic'),"" )
- self.cs.save_font(name, family, generic)
-
- def s_style_footer(self, tag, attrs):
- self.opentag('div', { 'id':"footer" })
- self.purgedata()
-
- def e_style_footer(self, tag, attrs):
- self.writedata()
- self.closetag('div')
- self.purgedata()
-
- def s_style_footer_style(self, tag, attrs):
- self.currentstyle = "@print #footer"
- self.stylestack.append(self.currentstyle)
- self.styledict[self.currentstyle] = {}
-
- def s_style_header(self, tag, attrs):
- self.opentag('div', { 'id':"header" })
- self.purgedata()
-
- def e_style_header(self, tag, attrs):
- self.writedata()
- self.closetag('div')
- self.purgedata()
-
- def s_style_header_style(self, tag, attrs):
- self.currentstyle = "@print #header"
- self.stylestack.append(self.currentstyle)
- self.styledict[self.currentstyle] = {}
-
- def s_style_default_page_layout(self, tag, attrs):
- """ Collect the formatting for the default page layout style.
- """
- self.currentstyle = "@page"
- self.stylestack.append(self.currentstyle)
- self.styledict[self.currentstyle] = {}
-
- def s_style_page_layout(self, tag, attrs):
- """ Collect the formatting for the page layout style.
- This won't work in CSS 2.1, as page identifiers are not allowed.
- It is legal in CSS3, but the rest of the application doesn't specify when to use what page layout
- """
- name = attrs[(STYLENS,'name')]
- name = name.replace(".","_")
- self.currentstyle = ".PL-" + name
- self.stylestack.append(self.currentstyle)
- self.styledict[self.currentstyle] = {}
-
- def e_style_page_layout(self, tag, attrs):
- """ End this style
- """
- self.currentstyle = None
-
- def s_style_master_page(self, tag, attrs):
- """ Collect the formatting for the page layout style.
- """
- name = attrs[(STYLENS,'name')]
- name = name.replace(".","_")
-
- self.currentstyle = ".MP-" + name
- self.stylestack.append(self.currentstyle)
- self.styledict[self.currentstyle] = {('','position'):'relative'}
- # Then load the pagelayout style if we find it
- pagelayout = attrs.get( (STYLENS,'page-layout-name'), None)
- if pagelayout:
- pagelayout = ".PL-" + pagelayout
- if self.styledict.has_key( pagelayout ):
- styles = self.styledict[pagelayout]
- for style, val in styles.items():
- self.styledict[self.currentstyle][style] = val
- else:
- self.styledict[self.currentstyle]['__parent-style-name'] = pagelayout
- self.s_ignorexml(tag, attrs)
-
- # Short prefixes for class selectors
- _familyshort = {'drawing-page':'DP', 'paragraph':'P', 'presentation':'PR',
- 'text':'S', 'section':'D',
- 'table':'T', 'table-cell':'TD', 'table-column':'TC',
- 'table-row':'TR', 'graphic':'G' }
-
- def s_style_style(self, tag, attrs):
- """ Collect the formatting for the style.
- Styles have scope. The same name can be used for both paragraph and
- character styles Since CSS has no scope we use a prefix. (Not elegant)
- In ODF a style can have a parent, these parents can be chained.
- We may not have encountered the parent yet, but if we have, we resolve it.
- """
- name = attrs[(STYLENS,'name')]
- name = name.replace(".","_")
- family = attrs[(STYLENS,'family')]
- htmlfamily = self.familymap.get(family,'unknown')
- sfamily = self._familyshort.get(family,'X')
- name = "%s%s-%s" % (self.autoprefix, sfamily, name)
- parent = attrs.get( (STYLENS,'parent-style-name') )
- self.currentstyle = special_styles.get(name,"."+name)
- self.stylestack.append(self.currentstyle)
- if not self.styledict.has_key(self.currentstyle):
- self.styledict[self.currentstyle] = {}
-
- self.styledict[self.currentstyle]['__style-family'] = htmlfamily
-
- # Then load the parent style if we find it
- if parent:
- parent = "%s-%s" % (sfamily, parent)
- parent = special_styles.get(parent, "."+parent)
- if self.styledict.has_key( parent ):
- styles = self.styledict[parent]
- for style, val in styles.items():
- self.styledict[self.currentstyle][style] = val
- else:
- self.styledict[self.currentstyle]['__parent-style-name'] = parent
-
- def e_style_style(self, tag, attrs):
- """ End this style
- """
- self.currentstyle = None
-
- def s_table_table(self, tag, attrs):
- """ Start a table
- """
- c = attrs.get( (TABLENS,'style-name'), None)
- if c and self.generate_css:
- c = c.replace(".","_")
- self.opentag('table',{ 'class': "T-%s" % c })
- else:
- self.opentag('table')
- self.purgedata()
-
- def e_table_table(self, tag, attrs):
- """ End a table
- """
- self.writedata()
- self.closetag('table')
- self.purgedata()
-
- def s_table_table_cell(self, tag, attrs):
- """ Start a table cell """
- #FIXME: number-columns-repeated § 8.1.3
- #repeated = int(attrs.get( (TABLENS,'number-columns-repeated'), 1))
- htmlattrs = {}
- rowspan = attrs.get( (TABLENS,'number-rows-spanned') )
- if rowspan:
- htmlattrs['rowspan'] = rowspan
- colspan = attrs.get( (TABLENS,'number-columns-spanned') )
- if colspan:
- htmlattrs['colspan'] = colspan
-
- c = attrs.get( (TABLENS,'style-name') )
- if c:
- htmlattrs['class'] = 'TD-%s' % c.replace(".","_")
- self.opentag('td', htmlattrs)
- self.purgedata()
-
- def e_table_table_cell(self, tag, attrs):
- """ End a table cell """
- self.writedata()
- self.closetag('td')
- self.purgedata()
-
- def s_table_table_column(self, tag, attrs):
- """ Start a table column """
- c = attrs.get( (TABLENS,'style-name'), None)
- repeated = int(attrs.get( (TABLENS,'number-columns-repeated'), 1))
- htmlattrs = {}
- if c:
- htmlattrs['class'] = "TC-%s" % c.replace(".","_")
- for x in xrange(repeated):
- self.emptytag('col', htmlattrs)
- self.purgedata()
-
- def s_table_table_row(self, tag, attrs):
- """ Start a table row """
- #FIXME: table:number-rows-repeated
- c = attrs.get( (TABLENS,'style-name'), None)
- htmlattrs = {}
- if c:
- htmlattrs['class'] = "TR-%s" % c.replace(".","_")
- self.opentag('tr', htmlattrs)
- self.purgedata()
-
- def e_table_table_row(self, tag, attrs):
- """ End a table row """
- self.writedata()
- self.closetag('tr')
- self.purgedata()
-
- def s_text_a(self, tag, attrs):
- """ Anchors start """
- self.writedata()
- href = attrs[(XLINKNS,"href")].split("|")[0]
- if href[0] == "#":
- href = "#" + self.get_anchor(href[1:])
- self.opentag('a', {'href':href})
- self.purgedata()
-
- def e_text_a(self, tag, attrs):
- """ End an anchor or bookmark reference """
- self.writedata()
- self.closetag('a', False)
- self.purgedata()
-
- def s_text_bookmark(self, tag, attrs):
- """ Bookmark definition """
- name = attrs[(TEXTNS,'name')]
- html_id = self.get_anchor(name)
- self.writedata()
- self.opentag('span', {'id':html_id})
- self.closetag('span', False)
- self.purgedata()
-
- def s_text_bookmark_ref(self, tag, attrs):
- """ Bookmark reference """
- name = attrs[(TEXTNS,'ref-name')]
- html_id = "#" + self.get_anchor(name)
- self.writedata()
- self.opentag('a', {'href':html_id})
- self.purgedata()
-
- def s_text_h(self, tag, attrs):
- """ Headings start """
- level = int(attrs[(TEXTNS,'outline-level')])
- if level > 6: level = 6 # Heading levels go only to 6 in XHTML
- if level < 1: level = 1
- self.headinglevels[level] = self.headinglevels[level] + 1
- name = self.classname(attrs)
- for x in range(level + 1,10):
- self.headinglevels[x] = 0
- special = special_styles.get("P-"+name)
- if special or not self.generate_css:
- self.opentag('h%s' % level)
- else:
- self.opentag('h%s' % level, {'class':"P-%s" % name })
- self.purgedata()
-
- def e_text_h(self, tag, attrs):
- """ Headings end
- Side-effect: If there is no title in the metadata, then it is taken
- from the first heading of any level.
- """
- self.writedata()
- level = int(attrs[(TEXTNS,'outline-level')])
- if level > 6: level = 6 # Heading levels go only to 6 in XHTML
- if level < 1: level = 1
- lev = self.headinglevels[1:level+1]
- outline = '.'.join(map(str,lev) )
- heading = ''.join(self.data)
- if self.title == '': self.title = heading
- anchor = self.get_anchor("%s.%s" % ( outline, heading))
- self.opentag('a', {'id': anchor} )
- self.closetag('a', False)
- self.closetag('h%s' % level)
- self.purgedata()
-
- def s_text_line_break(self, tag, attrs):
- """ Force a line break (<br/>) """
- self.writedata()
- self.emptytag('br')
- self.purgedata()
-
- def s_text_list(self, tag, attrs):
- """ Start a list (<ul> or <ol>)
- To know which level we're at, we have to count the number
- of <text:list> elements on the tagstack.
- """
- name = attrs.get( (TEXTNS,'style-name') )
- level = self.tagstack.count_tags(tag) + 1
- if name:
- name = name.replace(".","_")
- else:
- # FIXME: If a list is contained in a table cell or text box,
- # the list level must return to 1, even though the table or
- # textbox itself may be nested within another list.
- name = self.tagstack.rfindattr( (TEXTNS,'style-name') )
- list_class = "%s_%d" % (name, level)
- if self.generate_css:
- self.opentag('%s' % self.listtypes.get(list_class,'ul'), {'class': list_class })
- else:
- self.opentag('%s' % self.listtypes.get(list_class,'ul'))
- self.purgedata()
-
- def e_text_list(self, tag, attrs):
- """ End a list """
- self.writedata()
- name = attrs.get( (TEXTNS,'style-name') )
- level = self.tagstack.count_tags(tag) + 1
- if name:
- name = name.replace(".","_")
- else:
- # FIXME: If a list is contained in a table cell or text box,
- # the list level must return to 1, even though the table or
- # textbox itself may be nested within another list.
- name = self.tagstack.rfindattr( (TEXTNS,'style-name') )
- list_class = "%s_%d" % (name, level)
- self.closetag(self.listtypes.get(list_class,'ul'))
- self.purgedata()
-
- def s_text_list_item(self, tag, attrs):
- """ Start list item """
- self.opentag('li')
- self.purgedata()
-
- def e_text_list_item(self, tag, attrs):
- """ End list item """
- self.writedata()
- self.closetag('li')
- self.purgedata()
-
- def s_text_list_level_style_bullet(self, tag, attrs):
- """ CSS doesn't have the ability to set the glyph
- to a particular character, so we just go through
- the available glyphs
- """
- name = self.tagstack.rfindattr( (STYLENS,'name') )
- level = attrs[(TEXTNS,'level')]
- self.prevstyle = self.currentstyle
- list_class = "%s_%s" % (name, level)
- self.listtypes[list_class] = 'ul'
- self.currentstyle = ".%s_%s" % ( name.replace(".","_"), level)
- self.stylestack.append(self.currentstyle)
- self.styledict[self.currentstyle] = {}
-
- level = int(level)
- listtype = ("square", "disc", "circle")[level % 3]
- self.styledict[self.currentstyle][('','list-style-type')] = listtype
-
- def e_text_list_level_style_bullet(self, tag, attrs):
- self.currentstyle = self.prevstyle
- del self.prevstyle
-
- def s_text_list_level_style_number(self, tag, attrs):
- name = self.tagstack.stackparent()[(STYLENS,'name')]
- level = attrs[(TEXTNS,'level')]
- num_format = attrs.get( (STYLENS,'name'),"1")
- list_class = "%s_%s" % (name, level)
- self.prevstyle = self.currentstyle
- self.currentstyle = ".%s_%s" % ( name.replace(".","_"), level)
- self.listtypes[list_class] = 'ol'
- self.stylestack.append(self.currentstyle)
- self.styledict[self.currentstyle] = {}
- if num_format == "1": listtype = "decimal"
- elif num_format == "I": listtype = "upper-roman"
- elif num_format == "i": listtype = "lower-roman"
- elif num_format == "A": listtype = "upper-alpha"
- elif num_format == "a": listtype = "lower-alpha"
- else: listtype = "decimal"
- self.styledict[self.currentstyle][('','list-style-type')] = listtype
-
- def e_text_list_level_style_number(self, tag, attrs):
- self.currentstyle = self.prevstyle
- del self.prevstyle
-
- def s_text_note(self, tag, attrs):
- self.writedata()
- self.purgedata()
- self.currentnote = self.currentnote + 1
- self.notedict[self.currentnote] = {}
- self.notebody = []
-
- def e_text_note(self, tag, attrs):
- pass
-
- def collectnote(self,s):
- if s != '':
- self.notebody.append(s)
-
- def s_text_note_body(self, tag, attrs):
- self._orgwfunc = self._wfunc
- self._wfunc = self.collectnote
-
- def e_text_note_body(self, tag, attrs):
- self._wfunc = self._orgwfunc
- self.notedict[self.currentnote]['body'] = ''.join(self.notebody)
- self.notebody = ''
- del self._orgwfunc
-
- def e_text_note_citation(self, tag, attrs):
- mark = ''.join(self.data)
- self.notedict[self.currentnote]['citation'] = mark
- self.opentag('a',{ 'href': "#footnote-%s" % self.currentnote })
- self.opentag('sup')
-# self.writeout( escape(mark) )
- # Since HTML only knows about endnotes, there is too much risk that the
- # marker is reused in the source. Therefore we force numeric markers
- self.writeout(unicode(self.currentnote))
- self.closetag('sup')
- self.closetag('a')
-
- def s_text_p(self, tag, attrs):
- """ Paragraph
- """
- htmlattrs = {}
- specialtag = "p"
- c = attrs.get( (TEXTNS,'style-name'), None)
- if c:
- c = c.replace(".","_")
- specialtag = special_styles.get("P-"+c)
- if specialtag is None:
- specialtag = 'p'
- if self.generate_css:
- htmlattrs['class'] = "P-%s" % c
- self.opentag(specialtag, htmlattrs)
- self.purgedata()
-
- def e_text_p(self, tag, attrs):
- """ End Paragraph
- """
- specialtag = "p"
- c = attrs.get( (TEXTNS,'style-name'), None)
- if c:
- c = c.replace(".","_")
- specialtag = special_styles.get("P-"+c)
- if specialtag is None:
- specialtag = 'p'
- self.writedata()
- self.closetag(specialtag)
- self.purgedata()
-
- def s_text_s(self, tag, attrs):
- """ Generate a number of spaces. ODF has an element; HTML uses &nbsp;
- We use &#160; so we can send the output through an XML parser if we desire to
- """
- c = attrs.get( (TEXTNS,'c'),"1")
- for x in xrange(int(c)):
- self.writeout('&#160;')
-
- def s_text_span(self, tag, attrs):
- """ The <text:span> element matches the <span> element in HTML. It is
- typically used to properties of the text.
- """
- self.writedata()
- c = attrs.get( (TEXTNS,'style-name'), None)
- htmlattrs = {}
- if c:
- c = c.replace(".","_")
- special = special_styles.get("S-"+c)
- if special is None and self.generate_css:
- htmlattrs['class'] = "S-%s" % c
- self.opentag('span', htmlattrs)
- self.purgedata()
-
- def e_text_span(self, tag, attrs):
- """ End the <text:span> """
- self.writedata()
- self.closetag('span', False)
- self.purgedata()
-
- def s_text_tab(self, tag, attrs):
- """ Move to the next tabstop. We ignore this in HTML
- """
- self.writedata()
- self.writeout(' ')
- self.purgedata()
-
- def s_text_x_source(self, tag, attrs):
- """ Various indexes and tables of contents. We ignore those.
- """
- self.writedata()
- self.purgedata()
- self.s_ignorexml(tag, attrs)
-
- def e_text_x_source(self, tag, attrs):
- """ Various indexes and tables of contents. We ignore those.
- """
- self.writedata()
- self.purgedata()
-
-
-#-----------------------------------------------------------------------------
-#
-# Reading the file
-#
-#-----------------------------------------------------------------------------
-
- def load(self, odffile):
- """ Loads a document into the parser and parses it.
- The argument can either be a filename or a document in memory.
- """
- self.lines = []
- self._wfunc = self._wlines
- if isinstance(odffile, basestring):
- self.document = load(odffile)
- else:
- self.document = odffile
- self._walknode(self.document.topnode)
-
- def _walknode(self, node):
- if node.nodeType == Node.ELEMENT_NODE:
- self.startElementNS(node.qname, node.tagName, node.attributes)
- for c in node.childNodes:
- self._walknode(c)
- self.endElementNS(node.qname, node.tagName)
- if node.nodeType == Node.TEXT_NODE or node.nodeType == Node.CDATA_SECTION_NODE:
- self.characters(unicode(node))
-
-
- def odf2xhtml(self, odffile):
- """ Load a file and return the XHTML
- """
- self.load(odffile)
- return self.xhtml()
-
- def _wlines(self,s):
- if s != '': self.lines.append(s)
-
- def xhtml(self):
- """ Returns the xhtml
- """
- return ''.join(self.lines)
-
- def _writecss(self, s):
- if s != '': self._csslines.append(s)
-
- def _writenothing(self, s):
- pass
-
- def css(self):
- """ Returns the CSS content """
- self._csslines = []
- self._wfunc = self._writecss
- self.generate_stylesheet()
- res = ''.join(self._csslines)
- self._wfunc = self._wlines
- del self._csslines
- return res
-
- def save(self, outputfile, addsuffix=False):
- """ Save the HTML under the filename.
- If the filename is '-' then save to stdout
- We have the last style filename in self.stylefilename
- """
- if outputfile == '-':
- outputfp = sys.stdout
- else:
- if addsuffix:
- outputfile = outputfile + ".html"
- outputfp = file(outputfile, "w")
- outputfp.write(self.xhtml().encode('us-ascii','xmlcharrefreplace'))
- outputfp.close()
-
-
-class ODF2XHTMLembedded(ODF2XHTML):
- """ The ODF2XHTML parses an ODF file and produces XHTML"""
-
- def __init__(self, lines, generate_css=True, embedable=False):
- self._resetobject()
- self.lines = lines
-
- # Tags
- self.generate_css = generate_css
- self.elements = {
-# (DCNS, 'title'): (self.s_processcont, self.e_dc_title),
-# (DCNS, 'language'): (self.s_processcont, self.e_dc_contentlanguage),
-# (DCNS, 'creator'): (self.s_processcont, self.e_dc_metatag),
-# (DCNS, 'description'): (self.s_processcont, self.e_dc_metatag),
-# (DCNS, 'date'): (self.s_processcont, self.e_dc_metatag),
- (DRAWNS, 'frame'): (self.s_draw_frame, self.e_draw_frame),
- (DRAWNS, 'image'): (self.s_draw_image, None),
- (DRAWNS, 'fill-image'): (self.s_draw_fill_image, None),
- (DRAWNS, "layer-set"):(self.s_ignorexml, None),
- (DRAWNS, 'page'): (self.s_draw_page, self.e_draw_page),
- (DRAWNS, 'object'): (self.s_draw_object, None),
- (DRAWNS, 'object-ole'): (self.s_draw_object_ole, None),
- (DRAWNS, 'text-box'): (self.s_draw_textbox, self.e_draw_textbox),
-# (METANS, 'creation-date'):(self.s_processcont, self.e_dc_metatag),
-# (METANS, 'generator'):(self.s_processcont, self.e_dc_metatag),
-# (METANS, 'initial-creator'): (self.s_processcont, self.e_dc_metatag),
-# (METANS, 'keyword'): (self.s_processcont, self.e_dc_metatag),
- (NUMBERNS, "boolean-style"):(self.s_ignorexml, None),
- (NUMBERNS, "currency-style"):(self.s_ignorexml, None),
- (NUMBERNS, "date-style"):(self.s_ignorexml, None),
- (NUMBERNS, "number-style"):(self.s_ignorexml, None),
- (NUMBERNS, "text-style"):(self.s_ignorexml, None),
-# (OFFICENS, "automatic-styles"):(self.s_office_automatic_styles, None),
-# (OFFICENS, "document-content"):(self.s_office_document_content, self.e_office_document_content),
- (OFFICENS, "forms"):(self.s_ignorexml, None),
-# (OFFICENS, "master-styles"):(self.s_office_master_styles, None),
- (OFFICENS, "meta"):(self.s_ignorecont, None),
-# (OFFICENS, "presentation"):(self.s_office_presentation, self.e_office_presentation),
-# (OFFICENS, "spreadsheet"):(self.s_office_spreadsheet, self.e_office_spreadsheet),
-# (OFFICENS, "styles"):(self.s_office_styles, None),
-# (OFFICENS, "text"):(self.s_office_text, self.e_office_text),
- (OFFICENS, "scripts"):(self.s_ignorexml, None),
- (PRESENTATIONNS, "notes"):(self.s_ignorexml, None),
-## (STYLENS, "default-page-layout"):(self.s_style_default_page_layout, self.e_style_page_layout),
-# (STYLENS, "default-page-layout"):(self.s_ignorexml, None),
-# (STYLENS, "default-style"):(self.s_style_default_style, self.e_style_default_style),
-# (STYLENS, "drawing-page-properties"):(self.s_style_handle_properties, None),
-# (STYLENS, "font-face"):(self.s_style_font_face, None),
-## (STYLENS, "footer"):(self.s_style_footer, self.e_style_footer),
-## (STYLENS, "footer-style"):(self.s_style_footer_style, None),
-# (STYLENS, "graphic-properties"):(self.s_style_handle_properties, None),
-# (STYLENS, "handout-master"):(self.s_ignorexml, None),
-## (STYLENS, "header"):(self.s_style_header, self.e_style_header),
-## (STYLENS, "header-footer-properties"):(self.s_style_handle_properties, None),
-## (STYLENS, "header-style"):(self.s_style_header_style, None),
-# (STYLENS, "master-page"):(self.s_style_master_page, None),
-# (STYLENS, "page-layout-properties"):(self.s_style_handle_properties, None),
-## (STYLENS, "page-layout"):(self.s_style_page_layout, self.e_style_page_layout),
-# (STYLENS, "page-layout"):(self.s_ignorexml, None),
-# (STYLENS, "paragraph-properties"):(self.s_style_handle_properties, None),
-# (STYLENS, "style"):(self.s_style_style, self.e_style_style),
-# (STYLENS, "table-cell-properties"):(self.s_style_handle_properties, None),
-# (STYLENS, "table-column-properties"):(self.s_style_handle_properties, None),
-# (STYLENS, "table-properties"):(self.s_style_handle_properties, None),
-# (STYLENS, "text-properties"):(self.s_style_handle_properties, None),
- (SVGNS, 'desc'): (self.s_ignorexml, None),
- (TABLENS, 'covered-table-cell'): (self.s_ignorexml, None),
- (TABLENS, 'table-cell'): (self.s_table_table_cell, self.e_table_table_cell),
- (TABLENS, 'table-column'): (self.s_table_table_column, None),
- (TABLENS, 'table-row'): (self.s_table_table_row, self.e_table_table_row),
- (TABLENS, 'table'): (self.s_table_table, self.e_table_table),
- (TEXTNS, 'a'): (self.s_text_a, self.e_text_a),
- (TEXTNS, "alphabetical-index-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, "bibliography-configuration"):(self.s_ignorexml, None),
- (TEXTNS, "bibliography-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, 'h'): (self.s_text_h, self.e_text_h),
- (TEXTNS, "illustration-index-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, 'line-break'):(self.s_text_line_break, None),
- (TEXTNS, "linenumbering-configuration"):(self.s_ignorexml, None),
- (TEXTNS, "list"):(self.s_text_list, self.e_text_list),
- (TEXTNS, "list-item"):(self.s_text_list_item, self.e_text_list_item),
- (TEXTNS, "list-level-style-bullet"):(self.s_text_list_level_style_bullet, self.e_text_list_level_style_bullet),
- (TEXTNS, "list-level-style-number"):(self.s_text_list_level_style_number, self.e_text_list_level_style_number),
- (TEXTNS, "list-style"):(None, None),
- (TEXTNS, "note"):(self.s_text_note, None),
- (TEXTNS, "note-body"):(self.s_text_note_body, self.e_text_note_body),
- (TEXTNS, "note-citation"):(None, self.e_text_note_citation),
- (TEXTNS, "notes-configuration"):(self.s_ignorexml, None),
- (TEXTNS, "object-index-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, 'p'): (self.s_text_p, self.e_text_p),
- (TEXTNS, 's'): (self.s_text_s, None),
- (TEXTNS, 'span'): (self.s_text_span, self.e_text_span),
- (TEXTNS, 'tab'): (self.s_text_tab, None),
- (TEXTNS, "table-index-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, "table-of-content-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, "user-index-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, "page-number"):(None, None),
- }
-
diff --git a/tablib/packages/odf/odfmanifest.py b/tablib/packages/odf/odfmanifest.py
deleted file mode 100644
index 07754fd..0000000
--- a/tablib/packages/odf/odfmanifest.py
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-# This script lists the content of the manifest.xml file
-import zipfile
-from xml.sax import make_parser,handler
-from xml.sax.xmlreader import InputSource
-import xml.sax.saxutils
-from cStringIO import StringIO
-
-MANIFESTNS="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"
-
-#-----------------------------------------------------------------------------
-#
-# ODFMANIFESTHANDLER
-#
-#-----------------------------------------------------------------------------
-
-class ODFManifestHandler(handler.ContentHandler):
- """ The ODFManifestHandler parses a manifest file and produces a list of
- content """
-
- def __init__(self):
- self.manifest = {}
-
- # Tags
- # FIXME: Also handle encryption data
- self.elements = {
- (MANIFESTNS, 'file-entry'): (self.s_file_entry, self.donothing),
- }
-
- def handle_starttag(self, tag, method, attrs):
- method(tag,attrs)
-
- def handle_endtag(self, tag, method):
- method(tag)
-
- def startElementNS(self, tag, qname, attrs):
- method = self.elements.get(tag, (None, None))[0]
- if method:
- self.handle_starttag(tag, method, attrs)
- else:
- self.unknown_starttag(tag,attrs)
-
- def endElementNS(self, tag, qname):
- method = self.elements.get(tag, (None, None))[1]
- if method:
- self.handle_endtag(tag, method)
- else:
- self.unknown_endtag(tag)
-
- def unknown_starttag(self, tag, attrs):
- pass
-
- def unknown_endtag(self, tag):
- pass
-
- def donothing(self, tag, attrs=None):
- pass
-
- def s_file_entry(self, tag, attrs):
- m = attrs.get((MANIFESTNS, 'media-type'),"application/octet-stream")
- p = attrs.get((MANIFESTNS, 'full-path'))
- self.manifest[p] = { 'media-type':m, 'full-path':p }
-
-
-#-----------------------------------------------------------------------------
-#
-# Reading the file
-#
-#-----------------------------------------------------------------------------
-
-def manifestlist(manifestxml):
- odhandler = ODFManifestHandler()
- parser = make_parser()
- parser.setFeature(handler.feature_namespaces, 1)
- parser.setContentHandler(odhandler)
- parser.setErrorHandler(handler.ErrorHandler())
-
- inpsrc = InputSource()
- inpsrc.setByteStream(StringIO(manifestxml))
- parser.parse(inpsrc)
-
- return odhandler.manifest
-
-def odfmanifest(odtfile):
- z = zipfile.ZipFile(odtfile)
- manifest = z.read('META-INF/manifest.xml')
- z.close()
- return manifestlist(manifest)
-
-if __name__ == "__main__":
- import sys
- result = odfmanifest(sys.argv[1])
- for file in result.values():
- print "%-40s %-40s" % (file['media-type'], file['full-path'])
-
diff --git a/tablib/packages/odf/office.py b/tablib/packages/odf/office.py
deleted file mode 100644
index 085e251..0000000
--- a/tablib/packages/odf/office.py
+++ /dev/null
@@ -1,104 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import OFFICENS
-from element import Element
-from draw import StyleRefElement
-
-# Autogenerated
-def Annotation(**args):
- return StyleRefElement(qname = (OFFICENS,'annotation'), **args)
-
-def AutomaticStyles(**args):
- return Element(qname = (OFFICENS, 'automatic-styles'), **args)
-
-def BinaryData(**args):
- return Element(qname = (OFFICENS,'binary-data'), **args)
-
-def Body(**args):
- return Element(qname = (OFFICENS, 'body'), **args)
-
-def ChangeInfo(**args):
- return Element(qname = (OFFICENS,'change-info'), **args)
-
-def Chart(**args):
- return Element(qname = (OFFICENS,'chart'), **args)
-
-def DdeSource(**args):
- return Element(qname = (OFFICENS,'dde-source'), **args)
-
-def Document(version="1.1", **args):
- return Element(qname = (OFFICENS,'document'), version=version, **args)
-
-def DocumentContent(version="1.1", **args):
- return Element(qname = (OFFICENS, 'document-content'), version=version, **args)
-
-def DocumentMeta(version="1.1", **args):
- return Element(qname = (OFFICENS, 'document-meta'), version=version, **args)
-
-def DocumentSettings(version="1.1", **args):
- return Element(qname = (OFFICENS, 'document-settings'), version=version, **args)
-
-def DocumentStyles(version="1.1", **args):
- return Element(qname = (OFFICENS, 'document-styles'), version=version, **args)
-
-def Drawing(**args):
- return Element(qname = (OFFICENS,'drawing'), **args)
-
-def EventListeners(**args):
- return Element(qname = (OFFICENS,'event-listeners'), **args)
-
-def FontFaceDecls(**args):
- return Element(qname = (OFFICENS, 'font-face-decls'), **args)
-
-def Forms(**args):
- return Element(qname = (OFFICENS,'forms'), **args)
-
-def Image(**args):
- return Element(qname = (OFFICENS,'image'), **args)
-
-def MasterStyles(**args):
- return Element(qname = (OFFICENS, 'master-styles'), **args)
-
-def Meta(**args):
- return Element(qname = (OFFICENS, 'meta'), **args)
-
-def Presentation(**args):
- return Element(qname = (OFFICENS,'presentation'), **args)
-
-def Script(**args):
- return Element(qname = (OFFICENS, 'script'), **args)
-
-def Scripts(**args):
- return Element(qname = (OFFICENS, 'scripts'), **args)
-
-def Settings(**args):
- return Element(qname = (OFFICENS, 'settings'), **args)
-
-def Spreadsheet(**args):
- return Element(qname = (OFFICENS, 'spreadsheet'), **args)
-
-def Styles(**args):
- return Element(qname = (OFFICENS, 'styles'), **args)
-
-def Text(**args):
- return Element(qname = (OFFICENS, 'text'), **args)
-
-# Autogenerated end
diff --git a/tablib/packages/odf/opendocument.py b/tablib/packages/odf/opendocument.py
deleted file mode 100644
index 6319638..0000000
--- a/tablib/packages/odf/opendocument.py
+++ /dev/null
@@ -1,654 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2010 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-__doc__="""Use OpenDocument to generate your documents."""
-
-import zipfile, time, sys, mimetypes, copy
-from cStringIO import StringIO
-from namespaces import *
-import manifest, meta
-from office import *
-import element
-from attrconverters import make_NCName
-from xml.sax.xmlreader import InputSource
-from odfmanifest import manifestlist
-
-__version__= TOOLSVERSION
-
-_XMLPROLOGUE = u"<?xml version='1.0' encoding='UTF-8'?>\n"
-
-UNIXPERMS = 0100644 << 16L # -rw-r--r--
-
-IS_FILENAME = 0
-IS_IMAGE = 1
-# We need at least Python 2.2
-assert sys.version_info[0]>=2 and sys.version_info[1] >= 2
-
-#sys.setrecursionlimit(100)
-#The recursion limit is set conservative so mistakes like
-# s=content() s.addElement(s) won't eat up too much processor time.
-
-odmimetypes = {
- 'application/vnd.oasis.opendocument.text': '.odt',
- 'application/vnd.oasis.opendocument.text-template': '.ott',
- 'application/vnd.oasis.opendocument.graphics': '.odg',
- 'application/vnd.oasis.opendocument.graphics-template': '.otg',
- 'application/vnd.oasis.opendocument.presentation': '.odp',
- 'application/vnd.oasis.opendocument.presentation-template': '.otp',
- 'application/vnd.oasis.opendocument.spreadsheet': '.ods',
- 'application/vnd.oasis.opendocument.spreadsheet-template': '.ots',
- 'application/vnd.oasis.opendocument.chart': '.odc',
- 'application/vnd.oasis.opendocument.chart-template': '.otc',
- 'application/vnd.oasis.opendocument.image': '.odi',
- 'application/vnd.oasis.opendocument.image-template': '.oti',
- 'application/vnd.oasis.opendocument.formula': '.odf',
- 'application/vnd.oasis.opendocument.formula-template': '.otf',
- 'application/vnd.oasis.opendocument.text-master': '.odm',
- 'application/vnd.oasis.opendocument.text-web': '.oth',
-}
-
-class OpaqueObject:
- def __init__(self, filename, mediatype, content=None):
- self.mediatype = mediatype
- self.filename = filename
- self.content = content
-
-class OpenDocument:
- """ A class to hold the content of an OpenDocument document
- Use the xml method to write the XML
- source to the screen or to a file
- d = OpenDocument(mimetype)
- fd.write(d.xml())
- """
- thumbnail = None
-
- def __init__(self, mimetype, add_generator=True):
- self.mimetype = mimetype
- self.childobjects = []
- self._extra = []
- self.folder = "" # Always empty for toplevel documents
- self.topnode = Document(mimetype=self.mimetype)
- self.topnode.ownerDocument = self
-
- self.clear_caches()
-
- self.Pictures = {}
- self.meta = Meta()
- self.topnode.addElement(self.meta)
- if add_generator:
- self.meta.addElement(meta.Generator(text=TOOLSVERSION))
- self.scripts = Scripts()
- self.topnode.addElement(self.scripts)
- self.fontfacedecls = FontFaceDecls()
- self.topnode.addElement(self.fontfacedecls)
- self.settings = Settings()
- self.topnode.addElement(self.settings)
- self.styles = Styles()
- self.topnode.addElement(self.styles)
- self.automaticstyles = AutomaticStyles()
- self.topnode.addElement(self.automaticstyles)
- self.masterstyles = MasterStyles()
- self.topnode.addElement(self.masterstyles)
- self.body = Body()
- self.topnode.addElement(self.body)
-
- def rebuild_caches(self, node=None):
- if node is None: node = self.topnode
- self.build_caches(node)
- for e in node.childNodes:
- if e.nodeType == element.Node.ELEMENT_NODE:
- self.rebuild_caches(e)
-
- def clear_caches(self):
- self.element_dict = {}
- self._styles_dict = {}
- self._styles_ooo_fix = {}
-
- def build_caches(self, element):
- """ Called from element.py
- """
- if not self.element_dict.has_key(element.qname):
- self.element_dict[element.qname] = []
- self.element_dict[element.qname].append(element)
- if element.qname == (STYLENS, u'style'):
- self.__register_stylename(element) # Add to style dictionary
- styleref = element.getAttrNS(TEXTNS,u'style-name')
- if styleref is not None and self._styles_ooo_fix.has_key(styleref):
- element.setAttrNS(TEXTNS,u'style-name', self._styles_ooo_fix[styleref])
-
- def __register_stylename(self, element):
- ''' Register a style. But there are three style dictionaries:
- office:styles, office:automatic-styles and office:master-styles
- Chapter 14
- '''
- name = element.getAttrNS(STYLENS, u'name')
- if name is None:
- return
- if element.parentNode.qname in ((OFFICENS,u'styles'), (OFFICENS,u'automatic-styles')):
- if self._styles_dict.has_key(name):
- newname = 'M'+name # Rename style
- self._styles_ooo_fix[name] = newname
- # From here on all references to the old name will refer to the new one
- name = newname
- element.setAttrNS(STYLENS, u'name', name)
- self._styles_dict[name] = element
-
- def toXml(self, filename=''):
- xml=StringIO()
- xml.write(_XMLPROLOGUE)
- self.body.toXml(0, xml)
- if not filename:
- return xml.getvalue()
- else:
- f=file(filename,'w')
- f.write(xml.getvalue())
- f.close()
-
- def xml(self):
- """ Generates the full document as an XML file
- Always written as a bytestream in UTF-8 encoding
- """
- self.__replaceGenerator()
- xml=StringIO()
- xml.write(_XMLPROLOGUE)
- self.topnode.toXml(0, xml)
- return xml.getvalue()
-
-
- def contentxml(self):
- """ Generates the content.xml file
- Always written as a bytestream in UTF-8 encoding
- """
- xml=StringIO()
- xml.write(_XMLPROLOGUE)
- x = DocumentContent()
- x.write_open_tag(0, xml)
- if self.scripts.hasChildNodes():
- self.scripts.toXml(1, xml)
- if self.fontfacedecls.hasChildNodes():
- self.fontfacedecls.toXml(1, xml)
- a = AutomaticStyles()
- stylelist = self._used_auto_styles([self.styles, self.automaticstyles, self.body])
- if len(stylelist) > 0:
- a.write_open_tag(1, xml)
- for s in stylelist:
- s.toXml(2, xml)
- a.write_close_tag(1, xml)
- else:
- a.toXml(1, xml)
- self.body.toXml(1, xml)
- x.write_close_tag(0, xml)
- return xml.getvalue()
-
- def __manifestxml(self):
- """ Generates the manifest.xml file
- The self.manifest isn't avaible unless the document is being saved
- """
- xml=StringIO()
- xml.write(_XMLPROLOGUE)
- self.manifest.toXml(0,xml)
- return xml.getvalue()
-
- def metaxml(self):
- """ Generates the meta.xml file """
- self.__replaceGenerator()
- x = DocumentMeta()
- x.addElement(self.meta)
- xml=StringIO()
- xml.write(_XMLPROLOGUE)
- x.toXml(0,xml)
- return xml.getvalue()
-
- def settingsxml(self):
- """ Generates the settings.xml file """
- x = DocumentSettings()
- x.addElement(self.settings)
- xml=StringIO()
- xml.write(_XMLPROLOGUE)
- x.toXml(0,xml)
- return xml.getvalue()
-
- def _parseoneelement(self, top, stylenamelist):
- """ Finds references to style objects in master-styles
- and add the style name to the style list if not already there.
- Recursive
- """
- for e in top.childNodes:
- if e.nodeType == element.Node.ELEMENT_NODE:
- for styleref in ( (DRAWNS,u'style-name'),
- (DRAWNS,u'text-style-name'),
- (PRESENTATIONNS,u'style-name'),
- (STYLENS,u'data-style-name'),
- (STYLENS,u'list-style-name'),
- (STYLENS,u'page-layout-name'),
- (STYLENS,u'style-name'),
- (TABLENS,u'default-cell-style-name'),
- (TABLENS,u'style-name'),
- (TEXTNS,u'style-name') ):
- if e.getAttrNS(styleref[0],styleref[1]):
- stylename = e.getAttrNS(styleref[0],styleref[1])
- if stylename not in stylenamelist:
- stylenamelist.append(stylename)
- stylenamelist = self._parseoneelement(e, stylenamelist)
- return stylenamelist
-
- def _used_auto_styles(self, segments):
- """ Loop through the masterstyles elements, and find the automatic
- styles that are used. These will be added to the automatic-styles
- element in styles.xml
- """
- stylenamelist = []
- for top in segments:
- stylenamelist = self._parseoneelement(top, stylenamelist)
- stylelist = []
- for e in self.automaticstyles.childNodes:
- if e.getAttrNS(STYLENS,u'name') in stylenamelist:
- stylelist.append(e)
- return stylelist
-
- def stylesxml(self):
- """ Generates the styles.xml file """
- xml=StringIO()
- xml.write(_XMLPROLOGUE)
- x = DocumentStyles()
- x.write_open_tag(0, xml)
- if self.fontfacedecls.hasChildNodes():
- self.fontfacedecls.toXml(1, xml)
- self.styles.toXml(1, xml)
- a = AutomaticStyles()
- a.write_open_tag(1, xml)
- for s in self._used_auto_styles([self.masterstyles]):
- s.toXml(2, xml)
- a.write_close_tag(1, xml)
- if self.masterstyles.hasChildNodes():
- self.masterstyles.toXml(1, xml)
- x.write_close_tag(0, xml)
- return xml.getvalue()
-
- def addPicture(self, filename, mediatype=None, content=None):
- """ Add a picture
- It uses the same convention as OOo, in that it saves the picture in
- the zipfile in the subdirectory 'Pictures'
- If passed a file ptr, mediatype must be set
- """
- if content is None:
- if mediatype is None:
- mediatype, encoding = mimetypes.guess_type(filename)
- if mediatype is None:
- mediatype = ''
- try: ext = filename[filename.rindex('.'):]
- except: ext=''
- else:
- ext = mimetypes.guess_extension(mediatype)
- manifestfn = "Pictures/%0.0f%s" % ((time.time()*10000000000), ext)
- self.Pictures[manifestfn] = (IS_FILENAME, filename, mediatype)
- else:
- manifestfn = filename
- self.Pictures[manifestfn] = (IS_IMAGE, content, mediatype)
- return manifestfn
-
- def addPictureFromFile(self, filename, mediatype=None):
- """ Add a picture
- It uses the same convention as OOo, in that it saves the picture in
- the zipfile in the subdirectory 'Pictures'.
- If mediatype is not given, it will be guessed from the filename
- extension.
- """
- if mediatype is None:
- mediatype, encoding = mimetypes.guess_type(filename)
- if mediatype is None:
- mediatype = ''
- try: ext = filename[filename.rindex('.'):]
- except ValueError: ext=''
- else:
- ext = mimetypes.guess_extension(mediatype)
- manifestfn = "Pictures/%0.0f%s" % ((time.time()*10000000000), ext)
- self.Pictures[manifestfn] = (IS_FILENAME, filename, mediatype)
- return manifestfn
-
- def addPictureFromString(self, content, mediatype):
- """ Add a picture
- It uses the same convention as OOo, in that it saves the picture in
- the zipfile in the subdirectory 'Pictures'. The content variable
- is a string that contains the binary image data. The mediatype
- indicates the image format.
- """
- ext = mimetypes.guess_extension(mediatype)
- manifestfn = "Pictures/%0.0f%s" % ((time.time()*10000000000), ext)
- self.Pictures[manifestfn] = (IS_IMAGE, content, mediatype)
- return manifestfn
-
- def addThumbnail(self, filecontent=None):
- """ Add a fixed thumbnail
- The thumbnail in the library is big, so this is pretty useless.
- """
- if filecontent is None:
- import thumbnail
- self.thumbnail = thumbnail.thumbnail()
- else:
- self.thumbnail = filecontent
-
- def addObject(self, document, objectname=None):
- """ Adds an object (subdocument). The object must be an OpenDocument class
- The return value will be the folder in the zipfile the object is stored in
- """
- self.childobjects.append(document)
- if objectname is None:
- document.folder = "%s/Object %d" % (self.folder, len(self.childobjects))
- else:
- document.folder = objectname
- return ".%s" % document.folder
-
- def _savePictures(self, object, folder):
- hasPictures = False
- for arcname, picturerec in object.Pictures.items():
- what_it_is, fileobj, mediatype = picturerec
- self.manifest.addElement(manifest.FileEntry(fullpath="%s%s" % ( folder ,arcname), mediatype=mediatype))
- hasPictures = True
- if what_it_is == IS_FILENAME:
- self._z.write(fileobj, arcname, zipfile.ZIP_STORED)
- else:
- zi = zipfile.ZipInfo(str(arcname), self._now)
- zi.compress_type = zipfile.ZIP_STORED
- zi.external_attr = UNIXPERMS
- self._z.writestr(zi, fileobj)
- # According to section 17.7.3 in ODF 1.1, the pictures folder should not have a manifest entry
-# if hasPictures:
-# self.manifest.addElement(manifest.FileEntry(fullpath="%sPictures/" % folder, mediatype=""))
- # Look in subobjects
- subobjectnum = 1
- for subobject in object.childobjects:
- self._savePictures(subobject,'%sObject %d/' % (folder, subobjectnum))
- subobjectnum += 1
-
- def __replaceGenerator(self):
- """ Section 3.1.1: The application MUST NOT export the original identifier
- belonging to the application that created the document.
- """
- for m in self.meta.childNodes[:]:
- if m.qname == (METANS, u'generator'):
- self.meta.removeChild(m)
- self.meta.addElement(meta.Generator(text=TOOLSVERSION))
-
- def save(self, outputfile, addsuffix=False):
- """ Save the document under the filename.
- If the filename is '-' then save to stdout
- """
- if outputfile == '-':
- outputfp = zipfile.ZipFile(sys.stdout,"w")
- else:
- if addsuffix:
- outputfile = outputfile + odmimetypes.get(self.mimetype,'.xxx')
- outputfp = zipfile.ZipFile(outputfile, "w")
- self.__zipwrite(outputfp)
- outputfp.close()
-
- def write(self, outputfp):
- """ User API to write the ODF file to an open file descriptor
- Writes the ZIP format
- """
- zipoutputfp = zipfile.ZipFile(outputfp,"w")
- self.__zipwrite(zipoutputfp)
-
- def __zipwrite(self, outputfp):
- """ Write the document to an open file pointer
- This is where the real work is done
- """
- self._z = outputfp
- self._now = time.localtime()[:6]
- self.manifest = manifest.Manifest()
-
- # Write mimetype
- zi = zipfile.ZipInfo('mimetype', self._now)
- zi.compress_type = zipfile.ZIP_STORED
- zi.external_attr = UNIXPERMS
- self._z.writestr(zi, self.mimetype)
-
- self._saveXmlObjects(self,"")
-
- # Write pictures
- self._savePictures(self,"")
-
- # Write the thumbnail
- if self.thumbnail is not None:
- self.manifest.addElement(manifest.FileEntry(fullpath="Thumbnails/", mediatype=''))
- self.manifest.addElement(manifest.FileEntry(fullpath="Thumbnails/thumbnail.png", mediatype=''))
- zi = zipfile.ZipInfo("Thumbnails/thumbnail.png", self._now)
- zi.compress_type = zipfile.ZIP_DEFLATED
- zi.external_attr = UNIXPERMS
- self._z.writestr(zi, self.thumbnail)
-
- # Write any extra files
- for op in self._extra:
- if op.filename == "META-INF/documentsignatures.xml": continue # Don't save signatures
- self.manifest.addElement(manifest.FileEntry(fullpath=op.filename, mediatype=op.mediatype))
- zi = zipfile.ZipInfo(op.filename.encode('utf-8'), self._now)
- zi.compress_type = zipfile.ZIP_DEFLATED
- zi.external_attr = UNIXPERMS
- if op.content is not None:
- self._z.writestr(zi, op.content)
- # Write manifest
- zi = zipfile.ZipInfo("META-INF/manifest.xml", self._now)
- zi.compress_type = zipfile.ZIP_DEFLATED
- zi.external_attr = UNIXPERMS
- self._z.writestr(zi, self.__manifestxml() )
- del self._z
- del self._now
- del self.manifest
-
-
- def _saveXmlObjects(self, object, folder):
- if self == object:
- self.manifest.addElement(manifest.FileEntry(fullpath="/", mediatype=object.mimetype))
- else:
- self.manifest.addElement(manifest.FileEntry(fullpath=folder, mediatype=object.mimetype))
- # Write styles
- self.manifest.addElement(manifest.FileEntry(fullpath="%sstyles.xml" % folder, mediatype="text/xml"))
- zi = zipfile.ZipInfo("%sstyles.xml" % folder, self._now)
- zi.compress_type = zipfile.ZIP_DEFLATED
- zi.external_attr = UNIXPERMS
- self._z.writestr(zi, object.stylesxml() )
-
- # Write content
- self.manifest.addElement(manifest.FileEntry(fullpath="%scontent.xml" % folder, mediatype="text/xml"))
- zi = zipfile.ZipInfo("%scontent.xml" % folder, self._now)
- zi.compress_type = zipfile.ZIP_DEFLATED
- zi.external_attr = UNIXPERMS
- self._z.writestr(zi, object.contentxml() )
-
- # Write settings
- if object.settings.hasChildNodes():
- self.manifest.addElement(manifest.FileEntry(fullpath="%ssettings.xml" % folder, mediatype="text/xml"))
- zi = zipfile.ZipInfo("%ssettings.xml" % folder, self._now)
- zi.compress_type = zipfile.ZIP_DEFLATED
- zi.external_attr = UNIXPERMS
- self._z.writestr(zi, object.settingsxml() )
-
- # Write meta
- if self == object:
- self.manifest.addElement(manifest.FileEntry(fullpath="meta.xml", mediatype="text/xml"))
- zi = zipfile.ZipInfo("meta.xml", self._now)
- zi.compress_type = zipfile.ZIP_DEFLATED
- zi.external_attr = UNIXPERMS
- self._z.writestr(zi, object.metaxml() )
-
- # Write subobjects
- subobjectnum = 1
- for subobject in object.childobjects:
- self._saveXmlObjects(subobject, '%sObject %d/' % (folder, subobjectnum))
- subobjectnum += 1
-
-# Document's DOM methods
- def createElement(self, element):
- """ Inconvenient interface to create an element, but follows XML-DOM.
- Does not allow attributes as argument, therefore can't check grammar.
- """
- return element(check_grammar=False)
-
- def createTextNode(self, data):
- """ Method to create a text node """
- return element.Text(data)
-
- def createCDATASection(self, data):
- """ Method to create a CDATA section """
- return element.CDATASection(cdata)
-
- def getMediaType(self):
- """ Returns the media type """
- return self.mimetype
-
- def getStyleByName(self, name):
- """ Finds a style object based on the name """
- ncname = make_NCName(name)
- if self._styles_dict == {}:
- self.rebuild_caches()
- return self._styles_dict.get(ncname, None)
-
- def getElementsByType(self, element):
- """ Gets elements based on the type, which is function from text.py, draw.py etc. """
- obj = element(check_grammar=False)
- if self.element_dict == {}:
- self.rebuild_caches()
- return self.element_dict.get(obj.qname, [])
-
-# Convenience functions
-def OpenDocumentChart():
- """ Creates a chart document """
- doc = OpenDocument('application/vnd.oasis.opendocument.chart')
- doc.chart = Chart()
- doc.body.addElement(doc.chart)
- return doc
-
-def OpenDocumentDrawing():
- """ Creates a drawing document """
- doc = OpenDocument('application/vnd.oasis.opendocument.graphics')
- doc.drawing = Drawing()
- doc.body.addElement(doc.drawing)
- return doc
-
-def OpenDocumentImage():
- """ Creates an image document """
- doc = OpenDocument('application/vnd.oasis.opendocument.image')
- doc.image = Image()
- doc.body.addElement(doc.image)
- return doc
-
-def OpenDocumentPresentation():
- """ Creates a presentation document """
- doc = OpenDocument('application/vnd.oasis.opendocument.presentation')
- doc.presentation = Presentation()
- doc.body.addElement(doc.presentation)
- return doc
-
-def OpenDocumentSpreadsheet():
- """ Creates a spreadsheet document """
- doc = OpenDocument('application/vnd.oasis.opendocument.spreadsheet')
- doc.spreadsheet = Spreadsheet()
- doc.body.addElement(doc.spreadsheet)
- return doc
-
-def OpenDocumentText():
- """ Creates a text document """
- doc = OpenDocument('application/vnd.oasis.opendocument.text')
- doc.text = Text()
- doc.body.addElement(doc.text)
- return doc
-
-def OpenDocumentTextMaster():
- """ Creates a text master document """
- doc = OpenDocument('application/vnd.oasis.opendocument.text-master')
- doc.text = Text()
- doc.body.addElement(doc.text)
- return doc
-
-def __loadxmlparts(z, manifest, doc, objectpath):
- from load import LoadParser
- from xml.sax import make_parser, handler
-
- for xmlfile in (objectpath+'settings.xml', objectpath+'meta.xml', objectpath+'content.xml', objectpath+'styles.xml'):
- if not manifest.has_key(xmlfile):
- continue
- try:
- xmlpart = z.read(xmlfile)
- doc._parsing = xmlfile
-
- parser = make_parser()
- parser.setFeature(handler.feature_namespaces, 1)
- parser.setContentHandler(LoadParser(doc))
- parser.setErrorHandler(handler.ErrorHandler())
-
- inpsrc = InputSource()
- inpsrc.setByteStream(StringIO(xmlpart))
- parser.parse(inpsrc)
- del doc._parsing
- except KeyError, v: pass
-
-def load(odffile):
- """ Load an ODF file into memory
- Returns a reference to the structure
- """
- z = zipfile.ZipFile(odffile)
- mimetype = z.read('mimetype')
- doc = OpenDocument(mimetype, add_generator=False)
-
- # Look in the manifest file to see if which of the four files there are
- manifestpart = z.read('META-INF/manifest.xml')
- manifest = manifestlist(manifestpart)
- __loadxmlparts(z, manifest, doc, '')
- for mentry,mvalue in manifest.items():
- if mentry[:9] == "Pictures/" and len(mentry) > 9:
- doc.addPicture(mvalue['full-path'], mvalue['media-type'], z.read(mentry))
- elif mentry == "Thumbnails/thumbnail.png":
- doc.addThumbnail(z.read(mentry))
- elif mentry in ('settings.xml', 'meta.xml', 'content.xml', 'styles.xml'):
- pass
- # Load subobjects into structure
- elif mentry[:7] == "Object " and len(mentry) < 11 and mentry[-1] == "/":
- subdoc = OpenDocument(mvalue['media-type'], add_generator=False)
- doc.addObject(subdoc, "/" + mentry[:-1])
- __loadxmlparts(z, manifest, subdoc, mentry)
- elif mentry[:7] == "Object ":
- pass # Don't load subobjects as opaque objects
- else:
- if mvalue['full-path'][-1] == '/':
- doc._extra.append(OpaqueObject(mvalue['full-path'], mvalue['media-type'], None))
- else:
- doc._extra.append(OpaqueObject(mvalue['full-path'], mvalue['media-type'], z.read(mentry)))
- # Add the SUN junk here to the struct somewhere
- # It is cached data, so it can be out-of-date
- z.close()
- b = doc.getElementsByType(Body)
- if mimetype[:39] == 'application/vnd.oasis.opendocument.text':
- doc.text = b[0].firstChild
- elif mimetype[:43] == 'application/vnd.oasis.opendocument.graphics':
- doc.graphics = b[0].firstChild
- elif mimetype[:47] == 'application/vnd.oasis.opendocument.presentation':
- doc.presentation = b[0].firstChild
- elif mimetype[:46] == 'application/vnd.oasis.opendocument.spreadsheet':
- doc.spreadsheet = b[0].firstChild
- elif mimetype[:40] == 'application/vnd.oasis.opendocument.chart':
- doc.chart = b[0].firstChild
- elif mimetype[:40] == 'application/vnd.oasis.opendocument.image':
- doc.image = b[0].firstChild
- elif mimetype[:42] == 'application/vnd.oasis.opendocument.formula':
- doc.formula = b[0].firstChild
- return doc
-
-# vim: set expandtab sw=4 :
diff --git a/tablib/packages/odf/presentation.py b/tablib/packages/odf/presentation.py
deleted file mode 100644
index c1f2135..0000000
--- a/tablib/packages/odf/presentation.py
+++ /dev/null
@@ -1,85 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import PRESENTATIONNS
-from element import Element
-
-# ODF 1.0 section 9.6 and 9.7
-# Autogenerated
-def AnimationGroup(**args):
- return Element(qname = (PRESENTATIONNS,'animation-group'), **args)
-
-def Animations(**args):
- return Element(qname = (PRESENTATIONNS,'animations'), **args)
-
-def DateTime(**args):
- return Element(qname = (PRESENTATIONNS,'date-time'), **args)
-
-def DateTimeDecl(**args):
- return Element(qname = (PRESENTATIONNS,'date-time-decl'), **args)
-
-def Dim(**args):
- return Element(qname = (PRESENTATIONNS,'dim'), **args)
-
-def EventListener(**args):
- return Element(qname = (PRESENTATIONNS,'event-listener'), **args)
-
-def Footer(**args):
- return Element(qname = (PRESENTATIONNS,'footer'), **args)
-
-def FooterDecl(**args):
- return Element(qname = (PRESENTATIONNS,'footer-decl'), **args)
-
-def Header(**args):
- return Element(qname = (PRESENTATIONNS,'header'), **args)
-
-def HeaderDecl(**args):
- return Element(qname = (PRESENTATIONNS,'header-decl'), **args)
-
-def HideShape(**args):
- return Element(qname = (PRESENTATIONNS,'hide-shape'), **args)
-
-def HideText(**args):
- return Element(qname = (PRESENTATIONNS,'hide-text'), **args)
-
-def Notes(**args):
- return Element(qname = (PRESENTATIONNS,'notes'), **args)
-
-def Placeholder(**args):
- return Element(qname = (PRESENTATIONNS,'placeholder'), **args)
-
-def Play(**args):
- return Element(qname = (PRESENTATIONNS,'play'), **args)
-
-def Settings(**args):
- return Element(qname = (PRESENTATIONNS,'settings'), **args)
-
-def Show(**args):
- return Element(qname = (PRESENTATIONNS,'show'), **args)
-
-def ShowShape(**args):
- return Element(qname = (PRESENTATIONNS,'show-shape'), **args)
-
-def ShowText(**args):
- return Element(qname = (PRESENTATIONNS,'show-text'), **args)
-
-def Sound(**args):
- return Element(qname = (PRESENTATIONNS,'sound'), **args)
-
diff --git a/tablib/packages/odf/script.py b/tablib/packages/odf/script.py
deleted file mode 100644
index adbc73f..0000000
--- a/tablib/packages/odf/script.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import SCRIPTNS
-from element import Element
-
-# ODF 1.0 section 12.4.1
-# The <script:event-listener> element binds an event to a macro.
-
-# Autogenerated
-def EventListener(**args):
- return Element(qname = (SCRIPTNS,'event-listener'), **args)
-
diff --git a/tablib/packages/odf/style.py b/tablib/packages/odf/style.py
deleted file mode 100644
index f64d7c8..0000000
--- a/tablib/packages/odf/style.py
+++ /dev/null
@@ -1,148 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import STYLENS
-from element import Element
-
-def StyleElement(**args):
- e = Element(**args)
- if args.get('check_grammar', True) == True:
- if not args.has_key('displayname'):
- e.setAttrNS(STYLENS,'display-name', args.get('name'))
- return e
-
-# Autogenerated
-def BackgroundImage(**args):
- return Element(qname = (STYLENS,'background-image'), **args)
-
-def ChartProperties(**args):
- return Element(qname = (STYLENS,'chart-properties'), **args)
-
-def Column(**args):
- return Element(qname = (STYLENS,'column'), **args)
-
-def ColumnSep(**args):
- return Element(qname = (STYLENS,'column-sep'), **args)
-
-def Columns(**args):
- return Element(qname = (STYLENS,'columns'), **args)
-
-def DefaultStyle(**args):
- return Element(qname = (STYLENS,'default-style'), **args)
-
-def DrawingPageProperties(**args):
- return Element(qname = (STYLENS,'drawing-page-properties'), **args)
-
-def DropCap(**args):
- return Element(qname = (STYLENS,'drop-cap'), **args)
-
-def FontFace(**args):
- return Element(qname = (STYLENS,'font-face'), **args)
-
-def Footer(**args):
- return Element(qname = (STYLENS,'footer'), **args)
-
-def FooterLeft(**args):
- return Element(qname = (STYLENS,'footer-left'), **args)
-
-def FooterStyle(**args):
- return Element(qname = (STYLENS,'footer-style'), **args)
-
-def FootnoteSep(**args):
- return Element(qname = (STYLENS,'footnote-sep'), **args)
-
-def GraphicProperties(**args):
- return Element(qname = (STYLENS,'graphic-properties'), **args)
-
-def HandoutMaster(**args):
- return Element(qname = (STYLENS,'handout-master'), **args)
-
-def Header(**args):
- return Element(qname = (STYLENS,'header'), **args)
-
-def HeaderFooterProperties(**args):
- return Element(qname = (STYLENS,'header-footer-properties'), **args)
-
-def HeaderLeft(**args):
- return Element(qname = (STYLENS,'header-left'), **args)
-
-def HeaderStyle(**args):
- return Element(qname = (STYLENS,'header-style'), **args)
-
-def ListLevelProperties(**args):
- return Element(qname = (STYLENS,'list-level-properties'), **args)
-
-def Map(**args):
- return Element(qname = (STYLENS,'map'), **args)
-
-def MasterPage(**args):
- return StyleElement(qname = (STYLENS,'master-page'), **args)
-
-def PageLayout(**args):
- return Element(qname = (STYLENS,'page-layout'), **args)
-
-def PageLayoutProperties(**args):
- return Element(qname = (STYLENS,'page-layout-properties'), **args)
-
-def ParagraphProperties(**args):
- return Element(qname = (STYLENS,'paragraph-properties'), **args)
-
-def PresentationPageLayout(**args):
- return StyleElement(qname = (STYLENS,'presentation-page-layout'), **args)
-
-def RegionCenter(**args):
- return Element(qname = (STYLENS,'region-center'), **args)
-
-def RegionLeft(**args):
- return Element(qname = (STYLENS,'region-left'), **args)
-
-def RegionRight(**args):
- return Element(qname = (STYLENS,'region-right'), **args)
-
-def RubyProperties(**args):
- return Element(qname = (STYLENS,'ruby-properties'), **args)
-
-def SectionProperties(**args):
- return Element(qname = (STYLENS,'section-properties'), **args)
-
-def Style(**args):
- return StyleElement(qname = (STYLENS,'style'), **args)
-
-def TabStop(**args):
- return Element(qname = (STYLENS,'tab-stop'), **args)
-
-def TabStops(**args):
- return Element(qname = (STYLENS,'tab-stops'), **args)
-
-def TableCellProperties(**args):
- return Element(qname = (STYLENS,'table-cell-properties'), **args)
-
-def TableColumnProperties(**args):
- return Element(qname = (STYLENS,'table-column-properties'), **args)
-
-def TableProperties(**args):
- return Element(qname = (STYLENS,'table-properties'), **args)
-
-def TableRowProperties(**args):
- return Element(qname = (STYLENS,'table-row-properties'), **args)
-
-def TextProperties(**args):
- return Element(qname = (STYLENS,'text-properties'), **args)
-
diff --git a/tablib/packages/odf/svg.py b/tablib/packages/odf/svg.py
deleted file mode 100644
index 346c490..0000000
--- a/tablib/packages/odf/svg.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import SVGNS
-from element import Element
-from draw import DrawElement
-
-# Autogenerated
-def DefinitionSrc(**args):
- return Element(qname = (SVGNS,'definition-src'), **args)
-
-def Desc(**args):
- return Element(qname = (SVGNS,'desc'), **args)
-
-def FontFaceFormat(**args):
- return Element(qname = (SVGNS,'font-face-format'), **args)
-
-def FontFaceName(**args):
- return Element(qname = (SVGNS,'font-face-name'), **args)
-
-def FontFaceSrc(**args):
- return Element(qname = (SVGNS,'font-face-src'), **args)
-
-def FontFaceUri(**args):
- return Element(qname = (SVGNS,'font-face-uri'), **args)
-
-def Lineargradient(**args):
- return DrawElement(qname = (SVGNS,'linearGradient'), **args)
-
-def Radialgradient(**args):
- return DrawElement(qname = (SVGNS,'radialGradient'), **args)
-
-def Stop(**args):
- return Element(qname = (SVGNS,'stop'), **args)
-
-def Title(**args):
- return Element(qname = (SVGNS,'title'), **args)
diff --git a/tablib/packages/odf/table.py b/tablib/packages/odf/table.py
deleted file mode 100644
index 4ba0c36..0000000
--- a/tablib/packages/odf/table.py
+++ /dev/null
@@ -1,307 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import TABLENS
-from element import Element
-
-
-# Autogenerated
-def Body(**args):
- return Element(qname = (TABLENS,'body'), **args)
-
-def CalculationSettings(**args):
- return Element(qname = (TABLENS,'calculation-settings'), **args)
-
-def CellAddress(**args):
- return Element(qname = (TABLENS,'cell-address'), **args)
-
-def CellContentChange(**args):
- return Element(qname = (TABLENS,'cell-content-change'), **args)
-
-def CellContentDeletion(**args):
- return Element(qname = (TABLENS,'cell-content-deletion'), **args)
-
-def CellRangeSource(**args):
- return Element(qname = (TABLENS,'cell-range-source'), **args)
-
-def ChangeDeletion(**args):
- return Element(qname = (TABLENS,'change-deletion'), **args)
-
-def ChangeTrackTableCell(**args):
- return Element(qname = (TABLENS,'change-track-table-cell'), **args)
-
-def Consolidation(**args):
- return Element(qname = (TABLENS,'consolidation'), **args)
-
-def ContentValidation(**args):
- return Element(qname = (TABLENS,'content-validation'), **args)
-
-def ContentValidations(**args):
- return Element(qname = (TABLENS,'content-validations'), **args)
-
-def CoveredTableCell(**args):
- return Element(qname = (TABLENS,'covered-table-cell'), **args)
-
-def CutOffs(**args):
- return Element(qname = (TABLENS,'cut-offs'), **args)
-
-def DataPilotDisplayInfo(**args):
- return Element(qname = (TABLENS,'data-pilot-display-info'), **args)
-
-def DataPilotField(**args):
- return Element(qname = (TABLENS,'data-pilot-field'), **args)
-
-def DataPilotFieldReference(**args):
- return Element(qname = (TABLENS,'data-pilot-field-reference'), **args)
-
-def DataPilotGroup(**args):
- return Element(qname = (TABLENS,'data-pilot-group'), **args)
-
-def DataPilotGroupMember(**args):
- return Element(qname = (TABLENS,'data-pilot-group-member'), **args)
-
-def DataPilotGroups(**args):
- return Element(qname = (TABLENS,'data-pilot-groups'), **args)
-
-def DataPilotLayoutInfo(**args):
- return Element(qname = (TABLENS,'data-pilot-layout-info'), **args)
-
-def DataPilotLevel(**args):
- return Element(qname = (TABLENS,'data-pilot-level'), **args)
-
-def DataPilotMember(**args):
- return Element(qname = (TABLENS,'data-pilot-member'), **args)
-
-def DataPilotMembers(**args):
- return Element(qname = (TABLENS,'data-pilot-members'), **args)
-
-def DataPilotSortInfo(**args):
- return Element(qname = (TABLENS,'data-pilot-sort-info'), **args)
-
-def DataPilotSubtotal(**args):
- return Element(qname = (TABLENS,'data-pilot-subtotal'), **args)
-
-def DataPilotSubtotals(**args):
- return Element(qname = (TABLENS,'data-pilot-subtotals'), **args)
-
-def DataPilotTable(**args):
- return Element(qname = (TABLENS,'data-pilot-table'), **args)
-
-def DataPilotTables(**args):
- return Element(qname = (TABLENS,'data-pilot-tables'), **args)
-
-def DatabaseRange(**args):
- return Element(qname = (TABLENS,'database-range'), **args)
-
-def DatabaseRanges(**args):
- return Element(qname = (TABLENS,'database-ranges'), **args)
-
-def DatabaseSourceQuery(**args):
- return Element(qname = (TABLENS,'database-source-query'), **args)
-
-def DatabaseSourceSql(**args):
- return Element(qname = (TABLENS,'database-source-sql'), **args)
-
-def DatabaseSourceTable(**args):
- return Element(qname = (TABLENS,'database-source-table'), **args)
-
-def DdeLink(**args):
- return Element(qname = (TABLENS,'dde-link'), **args)
-
-def DdeLinks(**args):
- return Element(qname = (TABLENS,'dde-links'), **args)
-
-def Deletion(**args):
- return Element(qname = (TABLENS,'deletion'), **args)
-
-def Deletions(**args):
- return Element(qname = (TABLENS,'deletions'), **args)
-
-def Dependencies(**args):
- return Element(qname = (TABLENS,'dependencies'), **args)
-
-def Dependency(**args):
- return Element(qname = (TABLENS,'dependency'), **args)
-
-def Detective(**args):
- return Element(qname = (TABLENS,'detective'), **args)
-
-def ErrorMacro(**args):
- return Element(qname = (TABLENS,'error-macro'), **args)
-
-def ErrorMessage(**args):
- return Element(qname = (TABLENS,'error-message'), **args)
-
-def EvenColumns(**args):
- return Element(qname = (TABLENS,'even-columns'), **args)
-
-def EvenRows(**args):
- return Element(qname = (TABLENS,'even-rows'), **args)
-
-def Filter(**args):
- return Element(qname = (TABLENS,'filter'), **args)
-
-def FilterAnd(**args):
- return Element(qname = (TABLENS,'filter-and'), **args)
-
-def FilterCondition(**args):
- return Element(qname = (TABLENS,'filter-condition'), **args)
-
-def FilterOr(**args):
- return Element(qname = (TABLENS,'filter-or'), **args)
-
-def FirstColumn(**args):
- return Element(qname = (TABLENS,'first-column'), **args)
-
-def FirstRow(**args):
- return Element(qname = (TABLENS,'first-row'), **args)
-
-def HelpMessage(**args):
- return Element(qname = (TABLENS,'help-message'), **args)
-
-def HighlightedRange(**args):
- return Element(qname = (TABLENS,'highlighted-range'), **args)
-
-def Insertion(**args):
- return Element(qname = (TABLENS,'insertion'), **args)
-
-def InsertionCutOff(**args):
- return Element(qname = (TABLENS,'insertion-cut-off'), **args)
-
-def Iteration(**args):
- return Element(qname = (TABLENS,'iteration'), **args)
-
-def LabelRange(**args):
- return Element(qname = (TABLENS,'label-range'), **args)
-
-def LabelRanges(**args):
- return Element(qname = (TABLENS,'label-ranges'), **args)
-
-def LastColumn(**args):
- return Element(qname = (TABLENS,'last-column'), **args)
-
-def LastRow(**args):
- return Element(qname = (TABLENS,'last-row'), **args)
-
-def Movement(**args):
- return Element(qname = (TABLENS,'movement'), **args)
-
-def MovementCutOff(**args):
- return Element(qname = (TABLENS,'movement-cut-off'), **args)
-
-def NamedExpression(**args):
- return Element(qname = (TABLENS,'named-expression'), **args)
-
-def NamedExpressions(**args):
- return Element(qname = (TABLENS,'named-expressions'), **args)
-
-def NamedRange(**args):
- return Element(qname = (TABLENS,'named-range'), **args)
-
-def NullDate(**args):
- return Element(qname = (TABLENS,'null-date'), **args)
-
-def OddColumns(**args):
- return Element(qname = (TABLENS,'odd-columns'), **args)
-
-def OddRows(**args):
- return Element(qname = (TABLENS,'odd-rows'), **args)
-
-def Operation(**args):
- return Element(qname = (TABLENS,'operation'), **args)
-
-def Previous(**args):
- return Element(qname = (TABLENS,'previous'), **args)
-
-def Scenario(**args):
- return Element(qname = (TABLENS,'scenario'), **args)
-
-def Shapes(**args):
- return Element(qname = (TABLENS,'shapes'), **args)
-
-def Sort(**args):
- return Element(qname = (TABLENS,'sort'), **args)
-
-def SortBy(**args):
- return Element(qname = (TABLENS,'sort-by'), **args)
-
-def SortGroups(**args):
- return Element(qname = (TABLENS,'sort-groups'), **args)
-
-def SourceCellRange(**args):
- return Element(qname = (TABLENS,'source-cell-range'), **args)
-
-def SourceRangeAddress(**args):
- return Element(qname = (TABLENS,'source-range-address'), **args)
-
-def SourceService(**args):
- return Element(qname = (TABLENS,'source-service'), **args)
-
-def SubtotalField(**args):
- return Element(qname = (TABLENS,'subtotal-field'), **args)
-
-def SubtotalRule(**args):
- return Element(qname = (TABLENS,'subtotal-rule'), **args)
-
-def SubtotalRules(**args):
- return Element(qname = (TABLENS,'subtotal-rules'), **args)
-
-def Table(**args):
- return Element(qname = (TABLENS,'table'), **args)
-
-def TableCell(**args):
- return Element(qname = (TABLENS,'table-cell'), **args)
-
-def TableColumn(**args):
- return Element(qname = (TABLENS,'table-column'), **args)
-
-def TableColumnGroup(**args):
- return Element(qname = (TABLENS,'table-column-group'), **args)
-
-def TableColumns(**args):
- return Element(qname = (TABLENS,'table-columns'), **args)
-
-def TableHeaderColumns(**args):
- return Element(qname = (TABLENS,'table-header-columns'), **args)
-
-def TableHeaderRows(**args):
- return Element(qname = (TABLENS,'table-header-rows'), **args)
-
-def TableRow(**args):
- return Element(qname = (TABLENS,'table-row'), **args)
-
-def TableRowGroup(**args):
- return Element(qname = (TABLENS,'table-row-group'), **args)
-
-def TableRows(**args):
- return Element(qname = (TABLENS,'table-rows'), **args)
-
-def TableSource(**args):
- return Element(qname = (TABLENS,'table-source'), **args)
-
-def TableTemplate(**args):
- return Element(qname = (TABLENS,'table-template'), **args)
-
-def TargetRangeAddress(**args):
- return Element(qname = (TABLENS,'target-range-address'), **args)
-
-def TrackedChanges(**args):
- return Element(qname = (TABLENS,'tracked-changes'), **args)
-
diff --git a/tablib/packages/odf/teletype.py b/tablib/packages/odf/teletype.py
deleted file mode 100644
index 53b58fd..0000000
--- a/tablib/packages/odf/teletype.py
+++ /dev/null
@@ -1,137 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# Create and extract text from ODF, handling whitespace correctly.
-# Copyright (C) 2008 J. David Eisenberg
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-
-"""
-Class for handling whitespace properly in OpenDocument.
-
-While it is possible to use getTextContent() and setTextContent()
-to extract or create ODF content, these won't extract or create
-the appropriate <text:s>, <text:tab>, or <text:line-break>
-elements. This module takes care of that problem.
-"""
-
-from odf.element import Node
-import odf.opendocument
-from odf.text import S,LineBreak,Tab
-
-class WhitespaceText(object):
-
- def __init__(self):
- self.textBuffer = []
- self.spaceCount = 0
-
- def addTextToElement(self, odfElement, s):
- """ Process an input string, inserting
- <text:tab> elements for '\t',
- <text:line-break> elements for '\n', and
- <text:s> elements for runs of more than one blank.
- These will be added to the given element.
- """
- i = 0
- ch = ' '
-
- # When we encounter a tab or newline, we can immediately
- # dump any accumulated text and then emit the appropriate
- # ODF element.
- #
- # When we encounter a space, we add it to the text buffer,
- # and then collect more spaces. If there are more spaces
- # after the first one, we dump the text buffer and then
- # then emit the appropriate <text:s> element.
-
- while i < len(s):
- ch = s[i]
- if ch == '\t':
- self._emitTextBuffer(odfElement)
- odfElement.addElement(Tab())
- i += 1
- elif ch == '\n':
- self._emitTextBuffer(odfElement);
- odfElement.addElement(LineBreak())
- i += 1
- elif ch == ' ':
- self.textBuffer.append(' ')
- i += 1
- self.spaceCount = 0
- while i < len(s) and (s[i] == ' '):
- self.spaceCount += 1
- i += 1
- if self.spaceCount > 0:
- self._emitTextBuffer(odfElement)
- self._emitSpaces(odfElement)
- else:
- self.textBuffer.append(ch)
- i += 1
-
- self._emitTextBuffer(odfElement)
-
- def _emitTextBuffer(self, odfElement):
- """ Creates a Text Node whose contents are the current textBuffer.
- Side effect: clears the text buffer.
- """
- if len(self.textBuffer) > 0:
- odfElement.addText(''.join(self.textBuffer))
- self.textBuffer = []
-
-
- def _emitSpaces(self, odfElement):
- """ Creates a <text:s> element for the current spaceCount.
- Side effect: sets spaceCount back to zero
- """
- if self.spaceCount > 0:
- spaceElement = S(c=self.spaceCount)
- odfElement.addElement(spaceElement)
- self.spaceCount = 0
-
-def addTextToElement(odfElement, s):
- wst = WhitespaceText()
- wst.addTextToElement(odfElement, s)
-
-def extractText(odfElement):
- """ Extract text content from an Element, with whitespace represented
- properly. Returns the text, with tabs, spaces, and newlines
- correctly evaluated. This method recursively descends through the
- children of the given element, accumulating text and "unwrapping"
- <text:s>, <text:tab>, and <text:line-break> elements along the way.
- """
- result = [];
-
- if len(odfElement.childNodes) != 0:
- for child in odfElement.childNodes:
- if child.nodeType == Node.TEXT_NODE:
- result.append(child.data)
- elif child.nodeType == Node.ELEMENT_NODE:
- subElement = child
- tagName = subElement.qname;
- if tagName == (u"urn:oasis:names:tc:opendocument:xmlns:text:1.0", u"line-break"):
- result.append("\n")
- elif tagName == (u"urn:oasis:names:tc:opendocument:xmlns:text:1.0", u"tab"):
- result.append("\t")
- elif tagName == (u"urn:oasis:names:tc:opendocument:xmlns:text:1.0", u"s"):
- c = subElement.getAttribute('c')
- if c:
- spaceCount = int(c)
- else:
- spaceCount = 1
-
- result.append(" " * spaceCount)
- else:
- result.append(extractText(subElement))
- return ''.join(result)
diff --git a/tablib/packages/odf/text.py b/tablib/packages/odf/text.py
deleted file mode 100644
index b55a3a4..0000000
--- a/tablib/packages/odf/text.py
+++ /dev/null
@@ -1,562 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import TEXTNS
-from element import Element
-from style import StyleElement
-
-# Autogenerated
-def A(**args):
- return Element(qname = (TEXTNS,'a'), **args)
-
-def AlphabeticalIndex(**args):
- return Element(qname = (TEXTNS,'alphabetical-index'), **args)
-
-def AlphabeticalIndexAutoMarkFile(**args):
- return Element(qname = (TEXTNS,'alphabetical-index-auto-mark-file'), **args)
-
-def AlphabeticalIndexEntryTemplate(**args):
- return Element(qname = (TEXTNS,'alphabetical-index-entry-template'), **args)
-
-def AlphabeticalIndexMark(**args):
- return Element(qname = (TEXTNS,'alphabetical-index-mark'), **args)
-
-def AlphabeticalIndexMarkEnd(**args):
- return Element(qname = (TEXTNS,'alphabetical-index-mark-end'), **args)
-
-def AlphabeticalIndexMarkStart(**args):
- return Element(qname = (TEXTNS,'alphabetical-index-mark-start'), **args)
-
-def AlphabeticalIndexSource(**args):
- return Element(qname = (TEXTNS,'alphabetical-index-source'), **args)
-
-def AuthorInitials(**args):
- return Element(qname = (TEXTNS,'author-initials'), **args)
-
-def AuthorName(**args):
- return Element(qname = (TEXTNS,'author-name'), **args)
-
-def Bibliography(**args):
- return Element(qname = (TEXTNS,'bibliography'), **args)
-
-def BibliographyConfiguration(**args):
- return Element(qname = (TEXTNS,'bibliography-configuration'), **args)
-
-def BibliographyEntryTemplate(**args):
- return Element(qname = (TEXTNS,'bibliography-entry-template'), **args)
-
-def BibliographyMark(**args):
- return Element(qname = (TEXTNS,'bibliography-mark'), **args)
-
-def BibliographySource(**args):
- return Element(qname = (TEXTNS,'bibliography-source'), **args)
-
-def Bookmark(**args):
- return Element(qname = (TEXTNS,'bookmark'), **args)
-
-def BookmarkEnd(**args):
- return Element(qname = (TEXTNS,'bookmark-end'), **args)
-
-def BookmarkRef(**args):
- return Element(qname = (TEXTNS,'bookmark-ref'), **args)
-
-def BookmarkStart(**args):
- return Element(qname = (TEXTNS,'bookmark-start'), **args)
-
-def Change(**args):
- return Element(qname = (TEXTNS,'change'), **args)
-
-def ChangeEnd(**args):
- return Element(qname = (TEXTNS,'change-end'), **args)
-
-def ChangeStart(**args):
- return Element(qname = (TEXTNS,'change-start'), **args)
-
-def ChangedRegion(**args):
- return Element(qname = (TEXTNS,'changed-region'), **args)
-
-def Chapter(**args):
- return Element(qname = (TEXTNS,'chapter'), **args)
-
-def CharacterCount(**args):
- return Element(qname = (TEXTNS,'character-count'), **args)
-
-def ConditionalText(**args):
- return Element(qname = (TEXTNS,'conditional-text'), **args)
-
-def CreationDate(**args):
- return Element(qname = (TEXTNS,'creation-date'), **args)
-
-def CreationTime(**args):
- return Element(qname = (TEXTNS,'creation-time'), **args)
-
-def Creator(**args):
- return Element(qname = (TEXTNS,'creator'), **args)
-
-def DatabaseDisplay(**args):
- return Element(qname = (TEXTNS,'database-display'), **args)
-
-def DatabaseName(**args):
- return Element(qname = (TEXTNS,'database-name'), **args)
-
-def DatabaseNext(**args):
- return Element(qname = (TEXTNS,'database-next'), **args)
-
-def DatabaseRowNumber(**args):
- return Element(qname = (TEXTNS,'database-row-number'), **args)
-
-def DatabaseRowSelect(**args):
- return Element(qname = (TEXTNS,'database-row-select'), **args)
-
-def Date(**args):
- return Element(qname = (TEXTNS,'date'), **args)
-
-def DdeConnection(**args):
- return Element(qname = (TEXTNS,'dde-connection'), **args)
-
-def DdeConnectionDecl(**args):
- return Element(qname = (TEXTNS,'dde-connection-decl'), **args)
-
-def DdeConnectionDecls(**args):
- return Element(qname = (TEXTNS,'dde-connection-decls'), **args)
-
-def Deletion(**args):
- return Element(qname = (TEXTNS,'deletion'), **args)
-
-def Description(**args):
- return Element(qname = (TEXTNS,'description'), **args)
-
-def EditingCycles(**args):
- return Element(qname = (TEXTNS,'editing-cycles'), **args)
-
-def EditingDuration(**args):
- return Element(qname = (TEXTNS,'editing-duration'), **args)
-
-def ExecuteMacro(**args):
- return Element(qname = (TEXTNS,'execute-macro'), **args)
-
-def Expression(**args):
- return Element(qname = (TEXTNS,'expression'), **args)
-
-def FileName(**args):
- return Element(qname = (TEXTNS,'file-name'), **args)
-
-def FormatChange(**args):
- return Element(qname = (TEXTNS,'format-change'), **args)
-
-def H(**args):
- return Element(qname = (TEXTNS, 'h'), **args)
-
-def HiddenParagraph(**args):
- return Element(qname = (TEXTNS,'hidden-paragraph'), **args)
-
-def HiddenText(**args):
- return Element(qname = (TEXTNS,'hidden-text'), **args)
-
-def IllustrationIndex(**args):
- return Element(qname = (TEXTNS,'illustration-index'), **args)
-
-def IllustrationIndexEntryTemplate(**args):
- return Element(qname = (TEXTNS,'illustration-index-entry-template'), **args)
-
-def IllustrationIndexSource(**args):
- return Element(qname = (TEXTNS,'illustration-index-source'), **args)
-
-def ImageCount(**args):
- return Element(qname = (TEXTNS,'image-count'), **args)
-
-def IndexBody(**args):
- return Element(qname = (TEXTNS,'index-body'), **args)
-
-def IndexEntryBibliography(**args):
- return Element(qname = (TEXTNS,'index-entry-bibliography'), **args)
-
-def IndexEntryChapter(**args):
- return Element(qname = (TEXTNS,'index-entry-chapter'), **args)
-
-def IndexEntryLinkEnd(**args):
- return Element(qname = (TEXTNS,'index-entry-link-end'), **args)
-
-def IndexEntryLinkStart(**args):
- return Element(qname = (TEXTNS,'index-entry-link-start'), **args)
-
-def IndexEntryPageNumber(**args):
- return Element(qname = (TEXTNS,'index-entry-page-number'), **args)
-
-def IndexEntrySpan(**args):
- return Element(qname = (TEXTNS,'index-entry-span'), **args)
-
-def IndexEntryTabStop(**args):
- return Element(qname = (TEXTNS,'index-entry-tab-stop'), **args)
-
-def IndexEntryText(**args):
- return Element(qname = (TEXTNS,'index-entry-text'), **args)
-
-def IndexSourceStyle(**args):
- return Element(qname = (TEXTNS,'index-source-style'), **args)
-
-def IndexSourceStyles(**args):
- return Element(qname = (TEXTNS,'index-source-styles'), **args)
-
-def IndexTitle(**args):
- return Element(qname = (TEXTNS,'index-title'), **args)
-
-def IndexTitleTemplate(**args):
- return Element(qname = (TEXTNS,'index-title-template'), **args)
-
-def InitialCreator(**args):
- return Element(qname = (TEXTNS,'initial-creator'), **args)
-
-def Insertion(**args):
- return Element(qname = (TEXTNS,'insertion'), **args)
-
-def Keywords(**args):
- return Element(qname = (TEXTNS,'keywords'), **args)
-
-def LineBreak(**args):
- return Element(qname = (TEXTNS,'line-break'), **args)
-
-def LinenumberingConfiguration(**args):
- return Element(qname = (TEXTNS,'linenumbering-configuration'), **args)
-
-def LinenumberingSeparator(**args):
- return Element(qname = (TEXTNS,'linenumbering-separator'), **args)
-
-def List(**args):
- return Element(qname = (TEXTNS,'list'), **args)
-
-def ListHeader(**args):
- return Element(qname = (TEXTNS,'list-header'), **args)
-
-def ListItem(**args):
- return Element(qname = (TEXTNS,'list-item'), **args)
-
-def ListLevelStyleBullet(**args):
- return Element(qname = (TEXTNS,'list-level-style-bullet'), **args)
-
-def ListLevelStyleImage(**args):
- return Element(qname = (TEXTNS,'list-level-style-image'), **args)
-
-def ListLevelStyleNumber(**args):
- return Element(qname = (TEXTNS,'list-level-style-number'), **args)
-
-def ListStyle(**args):
- return StyleElement(qname = (TEXTNS,'list-style'), **args)
-
-def Measure(**args):
- return Element(qname = (TEXTNS,'measure'), **args)
-
-def ModificationDate(**args):
- return Element(qname = (TEXTNS,'modification-date'), **args)
-
-def ModificationTime(**args):
- return Element(qname = (TEXTNS,'modification-time'), **args)
-
-def Note(**args):
- return Element(qname = (TEXTNS,'note'), **args)
-
-def NoteBody(**args):
- return Element(qname = (TEXTNS,'note-body'), **args)
-
-def NoteCitation(**args):
- return Element(qname = (TEXTNS,'note-citation'), **args)
-
-def NoteContinuationNoticeBackward(**args):
- return Element(qname = (TEXTNS,'note-continuation-notice-backward'), **args)
-
-def NoteContinuationNoticeForward(**args):
- return Element(qname = (TEXTNS,'note-continuation-notice-forward'), **args)
-
-def NoteRef(**args):
- return Element(qname = (TEXTNS,'note-ref'), **args)
-
-def NotesConfiguration(**args):
- return Element(qname = (TEXTNS,'notes-configuration'), **args)
-
-def Number(**args):
- return Element(qname = (TEXTNS,'number'), **args)
-
-def NumberedParagraph(**args):
- return Element(qname = (TEXTNS,'numbered-paragraph'), **args)
-
-def ObjectCount(**args):
- return Element(qname = (TEXTNS,'object-count'), **args)
-
-def ObjectIndex(**args):
- return Element(qname = (TEXTNS,'object-index'), **args)
-
-def ObjectIndexEntryTemplate(**args):
- return Element(qname = (TEXTNS,'object-index-entry-template'), **args)
-
-def ObjectIndexSource(**args):
- return Element(qname = (TEXTNS,'object-index-source'), **args)
-
-def OutlineLevelStyle(**args):
- return Element(qname = (TEXTNS,'outline-level-style'), **args)
-
-def OutlineStyle(**args):
- return Element(qname = (TEXTNS,'outline-style'), **args)
-
-def P(**args):
- return Element(qname = (TEXTNS, 'p'), **args)
-
-def Page(**args):
- return Element(qname = (TEXTNS,'page'), **args)
-
-def PageContinuation(**args):
- return Element(qname = (TEXTNS,'page-continuation'), **args)
-
-def PageCount(**args):
- return Element(qname = (TEXTNS,'page-count'), **args)
-
-def PageNumber(**args):
- return Element(qname = (TEXTNS,'page-number'), **args)
-
-def PageSequence(**args):
- return Element(qname = (TEXTNS,'page-sequence'), **args)
-
-def PageVariableGet(**args):
- return Element(qname = (TEXTNS,'page-variable-get'), **args)
-
-def PageVariableSet(**args):
- return Element(qname = (TEXTNS,'page-variable-set'), **args)
-
-def ParagraphCount(**args):
- return Element(qname = (TEXTNS,'paragraph-count'), **args)
-
-def Placeholder(**args):
- return Element(qname = (TEXTNS,'placeholder'), **args)
-
-def PrintDate(**args):
- return Element(qname = (TEXTNS,'print-date'), **args)
-
-def PrintTime(**args):
- return Element(qname = (TEXTNS,'print-time'), **args)
-
-def PrintedBy(**args):
- return Element(qname = (TEXTNS,'printed-by'), **args)
-
-def ReferenceMark(**args):
- return Element(qname = (TEXTNS,'reference-mark'), **args)
-
-def ReferenceMarkEnd(**args):
- return Element(qname = (TEXTNS,'reference-mark-end'), **args)
-
-def ReferenceMarkStart(**args):
- return Element(qname = (TEXTNS,'reference-mark-start'), **args)
-
-def ReferenceRef(**args):
- return Element(qname = (TEXTNS,'reference-ref'), **args)
-
-def Ruby(**args):
- return Element(qname = (TEXTNS,'ruby'), **args)
-
-def RubyBase(**args):
- return Element(qname = (TEXTNS,'ruby-base'), **args)
-
-def RubyText(**args):
- return Element(qname = (TEXTNS,'ruby-text'), **args)
-
-def S(**args):
- return Element(qname = (TEXTNS,'s'), **args)
-
-def Script(**args):
- return Element(qname = (TEXTNS,'script'), **args)
-
-def Section(**args):
- return Element(qname = (TEXTNS,'section'), **args)
-
-def SectionSource(**args):
- return Element(qname = (TEXTNS,'section-source'), **args)
-
-def SenderCity(**args):
- return Element(qname = (TEXTNS,'sender-city'), **args)
-
-def SenderCompany(**args):
- return Element(qname = (TEXTNS,'sender-company'), **args)
-
-def SenderCountry(**args):
- return Element(qname = (TEXTNS,'sender-country'), **args)
-
-def SenderEmail(**args):
- return Element(qname = (TEXTNS,'sender-email'), **args)
-
-def SenderFax(**args):
- return Element(qname = (TEXTNS,'sender-fax'), **args)
-
-def SenderFirstname(**args):
- return Element(qname = (TEXTNS,'sender-firstname'), **args)
-
-def SenderInitials(**args):
- return Element(qname = (TEXTNS,'sender-initials'), **args)
-
-def SenderLastname(**args):
- return Element(qname = (TEXTNS,'sender-lastname'), **args)
-
-def SenderPhonePrivate(**args):
- return Element(qname = (TEXTNS,'sender-phone-private'), **args)
-
-def SenderPhoneWork(**args):
- return Element(qname = (TEXTNS,'sender-phone-work'), **args)
-
-def SenderPosition(**args):
- return Element(qname = (TEXTNS,'sender-position'), **args)
-
-def SenderPostalCode(**args):
- return Element(qname = (TEXTNS,'sender-postal-code'), **args)
-
-def SenderStateOrProvince(**args):
- return Element(qname = (TEXTNS,'sender-state-or-province'), **args)
-
-def SenderStreet(**args):
- return Element(qname = (TEXTNS,'sender-street'), **args)
-
-def SenderTitle(**args):
- return Element(qname = (TEXTNS,'sender-title'), **args)
-
-def Sequence(**args):
- return Element(qname = (TEXTNS,'sequence'), **args)
-
-def SequenceDecl(**args):
- return Element(qname = (TEXTNS,'sequence-decl'), **args)
-
-def SequenceDecls(**args):
- return Element(qname = (TEXTNS,'sequence-decls'), **args)
-
-def SequenceRef(**args):
- return Element(qname = (TEXTNS,'sequence-ref'), **args)
-
-def SheetName(**args):
- return Element(qname = (TEXTNS,'sheet-name'), **args)
-
-def SoftPageBreak(**args):
- return Element(qname = (TEXTNS,'soft-page-break'), **args)
-
-def SortKey(**args):
- return Element(qname = (TEXTNS,'sort-key'), **args)
-
-def Span(**args):
- return Element(qname = (TEXTNS,'span'), **args)
-
-def Subject(**args):
- return Element(qname = (TEXTNS,'subject'), **args)
-
-def Tab(**args):
- return Element(qname = (TEXTNS,'tab'), **args)
-
-def TableCount(**args):
- return Element(qname = (TEXTNS,'table-count'), **args)
-
-def TableFormula(**args):
- return Element(qname = (TEXTNS,'table-formula'), **args)
-
-def TableIndex(**args):
- return Element(qname = (TEXTNS,'table-index'), **args)
-
-def TableIndexEntryTemplate(**args):
- return Element(qname = (TEXTNS,'table-index-entry-template'), **args)
-
-def TableIndexSource(**args):
- return Element(qname = (TEXTNS,'table-index-source'), **args)
-
-def TableOfContent(**args):
- return Element(qname = (TEXTNS,'table-of-content'), **args)
-
-def TableOfContentEntryTemplate(**args):
- return Element(qname = (TEXTNS,'table-of-content-entry-template'), **args)
-
-def TableOfContentSource(**args):
- return Element(qname = (TEXTNS,'table-of-content-source'), **args)
-
-def TemplateName(**args):
- return Element(qname = (TEXTNS,'template-name'), **args)
-
-def TextInput(**args):
- return Element(qname = (TEXTNS,'text-input'), **args)
-
-def Time(**args):
- return Element(qname = (TEXTNS,'time'), **args)
-
-def Title(**args):
- return Element(qname = (TEXTNS,'title'), **args)
-
-def TocMark(**args):
- return Element(qname = (TEXTNS,'toc-mark'), **args)
-
-def TocMarkEnd(**args):
- return Element(qname = (TEXTNS,'toc-mark-end'), **args)
-
-def TocMarkStart(**args):
- return Element(qname = (TEXTNS,'toc-mark-start'), **args)
-
-def TrackedChanges(**args):
- return Element(qname = (TEXTNS,'tracked-changes'), **args)
-
-def UserDefined(**args):
- return Element(qname = (TEXTNS,'user-defined'), **args)
-
-def UserFieldDecl(**args):
- return Element(qname = (TEXTNS,'user-field-decl'), **args)
-
-def UserFieldDecls(**args):
- return Element(qname = (TEXTNS,'user-field-decls'), **args)
-
-def UserFieldGet(**args):
- return Element(qname = (TEXTNS,'user-field-get'), **args)
-
-def UserFieldInput(**args):
- return Element(qname = (TEXTNS,'user-field-input'), **args)
-
-def UserIndex(**args):
- return Element(qname = (TEXTNS,'user-index'), **args)
-
-def UserIndexEntryTemplate(**args):
- return Element(qname = (TEXTNS,'user-index-entry-template'), **args)
-
-def UserIndexMark(**args):
- return Element(qname = (TEXTNS,'user-index-mark'), **args)
-
-def UserIndexMarkEnd(**args):
- return Element(qname = (TEXTNS,'user-index-mark-end'), **args)
-
-def UserIndexMarkStart(**args):
- return Element(qname = (TEXTNS,'user-index-mark-start'), **args)
-
-def UserIndexSource(**args):
- return Element(qname = (TEXTNS,'user-index-source'), **args)
-
-def VariableDecl(**args):
- return Element(qname = (TEXTNS,'variable-decl'), **args)
-
-def VariableDecls(**args):
- return Element(qname = (TEXTNS,'variable-decls'), **args)
-
-def VariableGet(**args):
- return Element(qname = (TEXTNS,'variable-get'), **args)
-
-def VariableInput(**args):
- return Element(qname = (TEXTNS,'variable-input'), **args)
-
-def VariableSet(**args):
- return Element(qname = (TEXTNS,'variable-set'), **args)
-
-def WordCount(**args):
- return Element(qname = (TEXTNS,'word-count'), **args)
-
diff --git a/tablib/packages/odf/thumbnail.py b/tablib/packages/odf/thumbnail.py
deleted file mode 100644
index d6388cc..0000000
--- a/tablib/packages/odf/thumbnail.py
+++ /dev/null
@@ -1,427 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# This contains a 128x128 px thumbnail in PNG format
-# Taken from http://www.zwahlendesign.ch/en/node/20
-# openoffice_icons/openoffice_icons_linux/openoffice11.png
-# License: Freeware
-import base64
-
-iconstr = """\
-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
-N38FAAAAAElFTkSuQmCC\
-"""
-
-def thumbnail():
- icon = base64.decodestring(iconstr)
- return icon
-
-if __name__ == "__main__":
- icon = thumbnail()
- f = file("thumbnail.png","wb")
- f.write(icon)
- f.close()
diff --git a/tablib/packages/odf/userfield.py b/tablib/packages/odf/userfield.py
deleted file mode 100644
index 196bae1..0000000
--- a/tablib/packages/odf/userfield.py
+++ /dev/null
@@ -1,169 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2009 Søren Roug, European Environment Agency
-#
-# This is free software. You may redistribute it under the terms
-# of the Apache license and the GNU General Public License Version
-# 2 or at your option any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public
-# License along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s): Michael Howitz, gocept gmbh & co. kg
-#
-# $Id: userfield.py 447 2008-07-10 20:01:30Z roug $
-
-"""Class to show and manipulate user fields in odf documents."""
-
-import sys
-import zipfile
-
-from odf.text import UserFieldDecl
-from odf.namespaces import OFFICENS
-from odf.opendocument import load
-
-OUTENCODING = "utf-8"
-
-
-# OpenDocument v.1.0 section 6.7.1
-VALUE_TYPES = {
- 'float': (OFFICENS, u'value'),
- 'percentage': (OFFICENS, u'value'),
- 'currency': (OFFICENS, u'value'),
- 'date': (OFFICENS, u'date-value'),
- 'time': (OFFICENS, u'time-value'),
- 'boolean': (OFFICENS, u'boolean-value'),
- 'string': (OFFICENS, u'string-value'),
- }
-
-
-class UserFields(object):
- """List, view and manipulate user fields."""
-
- # these attributes can be a filename or a file like object
- src_file = None
- dest_file = None
-
- def __init__(self, src=None, dest=None):
- """Constructor
-
- src ... source document name, file like object or None for stdin
- dest ... destination document name, file like object or None for stdout
-
- """
- self.src_file = src
- self.dest_file = dest
- self.document = None
-
- def loaddoc(self):
- if isinstance(self.src_file, basestring):
- # src_file is a filename, check if it is a zip-file
- if not zipfile.is_zipfile(self.src_file):
- raise TypeError("%s is no odt file." % self.src_file)
- elif self.src_file is None:
- # use stdin if no file given
- self.src_file = sys.stdin
-
- self.document = load(self.src_file)
-
- def savedoc(self):
- # write output
- if self.dest_file is None:
- # use stdout if no filename given
- self.document.save('-')
- else:
- self.document.save(self.dest_file)
-
- def list_fields(self):
- """List (extract) all known user-fields.
-
- Returns list of user-field names.
-
- """
- return [x[0] for x in self.list_fields_and_values()]
-
- def list_fields_and_values(self, field_names=None):
- """List (extract) user-fields with type and value.
-
- field_names ... list of field names to show or None for all.
-
- Returns list of tuples (<field name>, <field type>, <value>).
-
- """
- self.loaddoc()
- found_fields = []
- all_fields = self.document.getElementsByType(UserFieldDecl)
- for f in all_fields:
- value_type = f.getAttribute('valuetype')
- if value_type == 'string':
- value = f.getAttribute('stringvalue')
- else:
- value = f.getAttribute('value')
- field_name = f.getAttribute('name')
-
- if field_names is None or field_name in field_names:
- found_fields.append((field_name.encode(OUTENCODING),
- value_type.encode(OUTENCODING),
- value.encode(OUTENCODING)))
- return found_fields
-
- def list_values(self, field_names):
- """Extract the contents of given field names from the file.
-
- field_names ... list of field names
-
- Returns list of field values.
-
- """
- return [x[2] for x in self.list_fields_and_values(field_names)]
-
- def get(self, field_name):
- """Extract the contents of this field from the file.
-
- Returns field value or None if field does not exist.
-
- """
- values = self.list_values([field_name])
- if not values:
- return None
- return values[0]
-
- def get_type_and_value(self, field_name):
- """Extract the type and contents of this field from the file.
-
- Returns tuple (<type>, <field-value>) or None if field does not exist.
-
- """
- fields = self.list_fields_and_values([field_name])
- if not fields:
- return None
- field_name, value_type, value = fields[0]
- return value_type, value
-
- def update(self, data):
- """Set the value of user fields. The field types will be the same.
-
- data ... dict, with field name as key, field value as value
-
- Returns None
-
- """
- self.loaddoc()
- all_fields = self.document.getElementsByType(UserFieldDecl)
- for f in all_fields:
- field_name = f.getAttribute('name')
- if data.has_key(field_name):
- value_type = f.getAttribute('valuetype')
- value = data.get(field_name)
- if value_type == 'string':
- f.setAttribute('stringvalue', value)
- else:
- f.setAttribute('value', value)
- self.savedoc()
-
diff --git a/tablib/packages/odf/xforms.py b/tablib/packages/odf/xforms.py
deleted file mode 100644
index f28b96e..0000000
--- a/tablib/packages/odf/xforms.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from namespaces import XFORMSNS
-from element import Element
-
-# ODF 1.0 section 11.2
-# XForms is designed to be embedded in another XML format.
-# Autogenerated
-def Model(**args):
- return Element(qname = (XFORMSNS,'model'), **args)
-
-def Instance(**args):
- return Element(qname = (XFORMSNS,'instance'), **args)
-
-def Bind(**args):
- return Element(qname = (XFORMSNS,'bind'), **args)
diff --git a/tablib/packages/odf3/__init__.py b/tablib/packages/odf3/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/tablib/packages/odf3/__init__.py
+++ /dev/null
diff --git a/tablib/packages/odf3/anim.py b/tablib/packages/odf3/anim.py
deleted file mode 100644
index 21a7852..0000000
--- a/tablib/packages/odf3/anim.py
+++ /dev/null
@@ -1,61 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import ANIMNS
-from .element import Element
-
-
-# Autogenerated
-def Animate(**args):
- return Element(qname = (ANIMNS,'animate'), **args)
-
-def Animatecolor(**args):
- return Element(qname = (ANIMNS,'animateColor'), **args)
-
-def Animatemotion(**args):
- return Element(qname = (ANIMNS,'animateMotion'), **args)
-
-def Animatetransform(**args):
- return Element(qname = (ANIMNS,'animateTransform'), **args)
-
-def Audio(**args):
- return Element(qname = (ANIMNS,'audio'), **args)
-
-def Command(**args):
- return Element(qname = (ANIMNS,'command'), **args)
-
-def Iterate(**args):
- return Element(qname = (ANIMNS,'iterate'), **args)
-
-def Par(**args):
- return Element(qname = (ANIMNS,'par'), **args)
-
-def Param(**args):
- return Element(qname = (ANIMNS,'param'), **args)
-
-def Seq(**args):
- return Element(qname = (ANIMNS,'seq'), **args)
-
-def Set(**args):
- return Element(qname = (ANIMNS,'set'), **args)
-
-def Transitionfilter(**args):
- return Element(qname = (ANIMNS,'transitionFilter'), **args)
-
diff --git a/tablib/packages/odf3/attrconverters.py b/tablib/packages/odf3/attrconverters.py
deleted file mode 100644
index c6cb8bf..0000000
--- a/tablib/packages/odf3/attrconverters.py
+++ /dev/null
@@ -1,1484 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2010 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-from .namespaces import *
-import re, types
-
-pattern_color = re.compile(r'#[0-9a-fA-F]{6}')
-pattern_vector3D = re.compile(r'\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\)')
-
-def make_NCName(arg):
- for c in (':',' '):
- arg = arg.replace(c,"_%x_" % ord(c))
- return arg
-
-def cnv_anyURI(attribute, arg, element):
- return str(arg)
-
-def cnv_boolean(attribute, arg, element):
- if arg.lower() in ("false","no"):
- return "false"
- if arg:
- return "true"
- return "false"
-
-# Potentially accept color values
-def cnv_color(attribute, arg, element):
- """ A RGB color in conformance with §5.9.11 of [XSL], that is a RGB color in notation “#rrggbb”, where
- rr, gg and bb are 8-bit hexadecimal digits.
- """
- return str(arg)
-
-def cnv_configtype(attribute, arg, element):
- if str(arg) not in ("boolean", "short", "int", "long",
- "double", "string", "datetime", "base64Binary"):
- raise ValueError("'%s' not allowed" % str(arg))
- return str(arg)
-
-def cnv_data_source_has_labels(attribute, arg, element):
- if str(arg) not in ("none","row","column","both"):
- raise ValueError("'%s' not allowed" % str(arg))
- return str(arg)
-
-# Understand different date formats
-def cnv_date(attribute, arg, element):
- """ A dateOrDateTime value is either an [xmlschema-2] date value or an [xmlschema-2] dateTime
- value.
- """
- return str(arg)
-
-def cnv_dateTime(attribute, arg, element):
- """ A dateOrDateTime value is either an [xmlschema-2] date value or an [xmlschema-2] dateTime
- value.
- """
- return str(arg)
-
-def cnv_double(attribute, arg, element):
- return str(arg)
-
-def cnv_duration(attribute, arg, element):
- return str(arg)
-
-def cnv_family(attribute, arg, element):
- """ A style family """
- if str(arg) not in ("text", "paragraph", "section", "ruby", "table", "table-column", "table-row", "table-cell",
- "graphic", "presentation", "drawing-page", "chart"):
- raise ValueError("'%s' not allowed" % str(arg))
- return str(arg)
-
-def __save_prefix(attribute, arg, element):
- prefix = arg.split(':',1)[0]
- if prefix == arg:
- return str(arg)
- namespace = element.get_knownns(prefix)
- if namespace is None:
- #raise ValueError, "'%s' is an unknown prefix" % str(prefix)
- return str(arg)
- p = element.get_nsprefix(namespace)
- return str(arg)
-
-def cnv_formula(attribute, arg, element):
- """ A string containing a formula. Formulas do not have a predefined syntax, but the string should
- begin with a namespace prefix, followed by a “:” (COLON, U+003A) separator, followed by the text
- of the formula. The namespace bound to the prefix determines the syntax and semantics of the
- formula.
- """
- return __save_prefix(attribute, arg, element)
-
-def cnv_ID(attribute, arg, element):
- return str(arg)
-
-def cnv_IDREF(attribute, arg, element):
- return str(arg)
-
-def cnv_integer(attribute, arg, element):
- return str(arg)
-
-def cnv_legend_position(attribute, arg, element):
- if str(arg) not in ("start", "end", "top", "bottom", "top-start", "bottom-start", "top-end", "bottom-end"):
- raise ValueError("'%s' not allowed" % str(arg))
- return str(arg)
-
-pattern_length = re.compile(r'-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))')
-
-def cnv_length(attribute, arg, element):
- """ A (positive or negative) physical length, consisting of magnitude and unit, in conformance with the
- Units of Measure defined in §5.9.13 of [XSL].
- """
- global pattern_length
- if not pattern_length.match(arg):
- raise ValueError("'%s' is not a valid length" % arg)
- return arg
-
-def cnv_lengthorpercent(attribute, arg, element):
- failed = False
- try: return cnv_length(attribute, arg, element)
- except: failed = True
- try: return cnv_percent(attribute, arg, element)
- except: failed = True
- if failed:
- raise ValueError("'%s' is not a valid length or percent" % arg)
- return arg
-
-def cnv_metavaluetype(attribute, arg, element):
- if str(arg) not in ("float", "date", "time", "boolean", "string"):
- raise ValueError("'%s' not allowed" % str(arg))
- return str(arg)
-
-def cnv_major_minor(attribute, arg, element):
- if arg not in ('major','minor'):
- raise ValueError("'%s' is not either 'minor' or 'major'" % arg)
-
-pattern_namespacedToken = re.compile(r'[0-9a-zA-Z_]+:[0-9a-zA-Z._\-]+')
-
-def cnv_namespacedToken(attribute, arg, element):
- global pattern_namespacedToken
-
- if not pattern_namespacedToken.match(arg):
- raise ValueError("'%s' is not a valid namespaced token" % arg)
- return __save_prefix(attribute, arg, element)
-
-def cnv_NCName(attribute, arg, element):
- """ NCName is defined in http://www.w3.org/TR/REC-xml-names/#NT-NCName
- Essentially an XML name minus ':'
- """
- if isinstance(arg, str):
- return make_NCName(arg)
- else:
- return arg.getAttrNS(STYLENS, 'name')
-
-# This function takes either an instance of a style (preferred)
-# or a text string naming the style. If it is a text string, then it must
-# already have been converted to an NCName
-# The text-string argument is mainly for when we build a structure from XML
-def cnv_StyleNameRef(attribute, arg, element):
- try:
- return arg.getAttrNS(STYLENS, 'name')
- except:
- return arg
-
-# This function takes either an instance of a style (preferred)
-# or a text string naming the style. If it is a text string, then it must
-# already have been converted to an NCName
-# The text-string argument is mainly for when we build a structure from XML
-def cnv_DrawNameRef(attribute, arg, element):
- try:
- return arg.getAttrNS(DRAWNS, 'name')
- except:
- return arg
-
-# Must accept list of Style objects
-def cnv_NCNames(attribute, arg, element):
- return ' '.join(arg)
-
-def cnv_nonNegativeInteger(attribute, arg, element):
- return str(arg)
-
-pattern_percent = re.compile(r'-?([0-9]+(\.[0-9]*)?|\.[0-9]+)%')
-
-def cnv_percent(attribute, arg, element):
- global pattern_percent
- if not pattern_percent.match(arg):
- raise ValueError("'%s' is not a valid length" % arg)
- return arg
-
-# Real one doesn't allow floating point values
-pattern_points = re.compile(r'-?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)*')
-#pattern_points = re.compile(r'-?[0-9.]+,-?[0-9.]+([ ]+-?[0-9.]+,-?[0-9.]+)*')
-def cnv_points(attribute, arg, element):
- global pattern_points
- if type(arg) in str:
- if not pattern_points.match(arg):
- raise ValueError("x,y are separated by a comma and the points are separated by white spaces")
- return arg
- else:
- try:
- strarg = ' '.join([ "%d,%d" % p for p in arg])
- except:
- raise ValueError("Points must be string or [(0,0),(1,1)] - not %s" % arg)
- return strarg
-
-def cnv_positiveInteger(attribute, arg, element):
- return str(arg)
-
-def cnv_string(attribute, arg, element):
- return str(arg)
-
-def cnv_textnoteclass(attribute, arg, element):
- if str(arg) not in ("footnote", "endnote"):
- raise ValueError("'%s' not allowed" % str(arg))
- return str(arg)
-
-# Understand different time formats
-def cnv_time(attribute, arg, element):
- return str(arg)
-
-def cnv_token(attribute, arg, element):
- return str(arg)
-
-pattern_viewbox = re.compile(r'-?[0-9]+([ ]+-?[0-9]+){3}$')
-
-def cnv_viewbox(attribute, arg, element):
- global pattern_viewbox
- if not pattern_viewbox.match(arg):
- raise ValueError("viewBox must be four integers separated by whitespaces")
- return arg
-
-def cnv_xlinkshow(attribute, arg, element):
- if str(arg) not in ("new", "replace", "embed"):
- raise ValueError("'%s' not allowed" % str(arg))
- return str(arg)
-
-
-attrconverters = {
- ((ANIMNS,'audio-level'), None): cnv_double,
- ((ANIMNS,'color-interpolation'), None): cnv_string,
- ((ANIMNS,'color-interpolation-direction'), None): cnv_string,
- ((ANIMNS,'command'), None): cnv_string,
- ((ANIMNS,'formula'), None): cnv_string,
- ((ANIMNS,'id'), None): cnv_ID,
- ((ANIMNS,'iterate-interval'), None): cnv_duration,
- ((ANIMNS,'iterate-type'), None): cnv_string,
- ((ANIMNS,'name'), None): cnv_string,
- ((ANIMNS,'sub-item'), None): cnv_string,
- ((ANIMNS,'value'), None): cnv_string,
-# ((DBNS,u'type'), None): cnv_namespacedToken,
- ((CHARTNS,'attached-axis'), None): cnv_string,
- ((CHARTNS,'class'), (CHARTNS,'grid')): cnv_major_minor,
- ((CHARTNS,'class'), None): cnv_namespacedToken,
- ((CHARTNS,'column-mapping'), None): cnv_string,
- ((CHARTNS,'connect-bars'), None): cnv_boolean,
- ((CHARTNS,'data-label-number'), None): cnv_string,
- ((CHARTNS,'data-label-symbol'), None): cnv_boolean,
- ((CHARTNS,'data-label-text'), None): cnv_boolean,
- ((CHARTNS,'data-source-has-labels'), None): cnv_data_source_has_labels,
- ((CHARTNS,'deep'), None): cnv_boolean,
- ((CHARTNS,'dimension'), None): cnv_string,
- ((CHARTNS,'display-label'), None): cnv_boolean,
- ((CHARTNS,'error-category'), None): cnv_string,
- ((CHARTNS,'error-lower-indicator'), None): cnv_boolean,
- ((CHARTNS,'error-lower-limit'), None): cnv_string,
- ((CHARTNS,'error-margin'), None): cnv_string,
- ((CHARTNS,'error-percentage'), None): cnv_string,
- ((CHARTNS,'error-upper-indicator'), None): cnv_boolean,
- ((CHARTNS,'error-upper-limit'), None): cnv_string,
- ((CHARTNS,'gap-width'), None): cnv_string,
- ((CHARTNS,'interpolation'), None): cnv_string,
- ((CHARTNS,'interval-major'), None): cnv_string,
- ((CHARTNS,'interval-minor-divisor'), None): cnv_string,
- ((CHARTNS,'japanese-candle-stick'), None): cnv_boolean,
- ((CHARTNS,'label-arrangement'), None): cnv_string,
- ((CHARTNS,'label-cell-address'), None): cnv_string,
- ((CHARTNS,'legend-align'), None): cnv_string,
- ((CHARTNS,'legend-position'), None): cnv_legend_position,
- ((CHARTNS,'lines'), None): cnv_boolean,
- ((CHARTNS,'link-data-style-to-source'), None): cnv_boolean,
- ((CHARTNS,'logarithmic'), None): cnv_boolean,
- ((CHARTNS,'maximum'), None): cnv_string,
- ((CHARTNS,'mean-value'), None): cnv_boolean,
- ((CHARTNS,'minimum'), None): cnv_string,
- ((CHARTNS,'name'), None): cnv_string,
- ((CHARTNS,'origin'), None): cnv_string,
- ((CHARTNS,'overlap'), None): cnv_string,
- ((CHARTNS,'percentage'), None): cnv_boolean,
- ((CHARTNS,'pie-offset'), None): cnv_string,
- ((CHARTNS,'regression-type'), None): cnv_string,
- ((CHARTNS,'repeated'), None): cnv_nonNegativeInteger,
- ((CHARTNS,'row-mapping'), None): cnv_string,
- ((CHARTNS,'scale-text'), None): cnv_boolean,
- ((CHARTNS,'series-source'), None): cnv_string,
- ((CHARTNS,'solid-type'), None): cnv_string,
- ((CHARTNS,'spline-order'), None): cnv_string,
- ((CHARTNS,'spline-resolution'), None): cnv_string,
- ((CHARTNS,'stacked'), None): cnv_boolean,
- ((CHARTNS,'style-name'), None): cnv_StyleNameRef,
- ((CHARTNS,'symbol-height'), None): cnv_string,
- ((CHARTNS,'symbol-name'), None): cnv_string,
- ((CHARTNS,'symbol-type'), None): cnv_string,
- ((CHARTNS,'symbol-width'), None): cnv_string,
- ((CHARTNS,'text-overlap'), None): cnv_boolean,
- ((CHARTNS,'three-dimensional'), None): cnv_boolean,
- ((CHARTNS,'tick-marks-major-inner'), None): cnv_boolean,
- ((CHARTNS,'tick-marks-major-outer'), None): cnv_boolean,
- ((CHARTNS,'tick-marks-minor-inner'), None): cnv_boolean,
- ((CHARTNS,'tick-marks-minor-outer'), None): cnv_boolean,
- ((CHARTNS,'values-cell-range-address'), None): cnv_string,
- ((CHARTNS,'vertical'), None): cnv_boolean,
- ((CHARTNS,'visible'), None): cnv_boolean,
- ((CONFIGNS,'name'), None): cnv_formula,
- ((CONFIGNS,'type'), None): cnv_configtype,
- ((DR3DNS,'ambient-color'), None): cnv_string,
- ((DR3DNS,'back-scale'), None): cnv_string,
- ((DR3DNS,'backface-culling'), None): cnv_string,
- ((DR3DNS,'center'), None): cnv_string,
- ((DR3DNS,'close-back'), None): cnv_boolean,
- ((DR3DNS,'close-front'), None): cnv_boolean,
- ((DR3DNS,'depth'), None): cnv_length,
- ((DR3DNS,'diffuse-color'), None): cnv_string,
- ((DR3DNS,'direction'), None): cnv_string,
- ((DR3DNS,'distance'), None): cnv_length,
- ((DR3DNS,'edge-rounding'), None): cnv_string,
- ((DR3DNS,'edge-rounding-mode'), None): cnv_string,
- ((DR3DNS,'emissive-color'), None): cnv_string,
- ((DR3DNS,'enabled'), None): cnv_boolean,
- ((DR3DNS,'end-angle'), None): cnv_string,
- ((DR3DNS,'focal-length'), None): cnv_length,
- ((DR3DNS,'horizontal-segments'), None): cnv_string,
- ((DR3DNS,'lighting-mode'), None): cnv_boolean,
- ((DR3DNS,'max-edge'), None): cnv_string,
- ((DR3DNS,'min-edge'), None): cnv_string,
- ((DR3DNS,'normals-direction'), None): cnv_string,
- ((DR3DNS,'normals-kind'), None): cnv_string,
- ((DR3DNS,'projection'), None): cnv_string,
- ((DR3DNS,'shade-mode'), None): cnv_string,
- ((DR3DNS,'shadow'), None): cnv_string,
- ((DR3DNS,'shadow-slant'), None): cnv_nonNegativeInteger,
- ((DR3DNS,'shininess'), None): cnv_string,
- ((DR3DNS,'size'), None): cnv_string,
- ((DR3DNS,'specular'), None): cnv_boolean,
- ((DR3DNS,'specular-color'), None): cnv_string,
- ((DR3DNS,'texture-filter'), None): cnv_string,
- ((DR3DNS,'texture-generation-mode-x'), None): cnv_string,
- ((DR3DNS,'texture-generation-mode-y'), None): cnv_string,
- ((DR3DNS,'texture-kind'), None): cnv_string,
- ((DR3DNS,'texture-mode'), None): cnv_string,
- ((DR3DNS,'transform'), None): cnv_string,
- ((DR3DNS,'vertical-segments'), None): cnv_string,
- ((DR3DNS,'vpn'), None): cnv_string,
- ((DR3DNS,'vrp'), None): cnv_string,
- ((DR3DNS,'vup'), None): cnv_string,
- ((DRAWNS,'align'), None): cnv_string,
- ((DRAWNS,'angle'), None): cnv_integer,
- ((DRAWNS,'archive'), None): cnv_string,
- ((DRAWNS,'auto-grow-height'), None): cnv_boolean,
- ((DRAWNS,'auto-grow-width'), None): cnv_boolean,
- ((DRAWNS,'background-size'), None): cnv_string,
- ((DRAWNS,'blue'), None): cnv_string,
- ((DRAWNS,'border'), None): cnv_string,
- ((DRAWNS,'caption-angle'), None): cnv_string,
- ((DRAWNS,'caption-angle-type'), None): cnv_string,
- ((DRAWNS,'caption-escape'), None): cnv_string,
- ((DRAWNS,'caption-escape-direction'), None): cnv_string,
- ((DRAWNS,'caption-fit-line-length'), None): cnv_boolean,
- ((DRAWNS,'caption-gap'), None): cnv_string,
- ((DRAWNS,'caption-line-length'), None): cnv_length,
- ((DRAWNS,'caption-point-x'), None): cnv_string,
- ((DRAWNS,'caption-point-y'), None): cnv_string,
- ((DRAWNS,'caption-id'), None): cnv_IDREF,
- ((DRAWNS,'caption-type'), None): cnv_string,
- ((DRAWNS,'chain-next-name'), None): cnv_string,
- ((DRAWNS,'class-id'), None): cnv_string,
- ((DRAWNS,'class-names'), None): cnv_NCNames,
- ((DRAWNS,'code'), None): cnv_string,
- ((DRAWNS,'color'), None): cnv_string,
- ((DRAWNS,'color-inversion'), None): cnv_boolean,
- ((DRAWNS,'color-mode'), None): cnv_string,
- ((DRAWNS,'concave'), None): cnv_string,
- ((DRAWNS,'concentric-gradient-fill-allowed'), None): cnv_boolean,
- ((DRAWNS,'contrast'), None): cnv_string,
- ((DRAWNS,'control'), None): cnv_IDREF,
- ((DRAWNS,'copy-of'), None): cnv_string,
- ((DRAWNS,'corner-radius'), None): cnv_length,
- ((DRAWNS,'corners'), None): cnv_positiveInteger,
- ((DRAWNS,'cx'), None): cnv_string,
- ((DRAWNS,'cy'), None): cnv_string,
- ((DRAWNS,'data'), None): cnv_string,
- ((DRAWNS,'decimal-places'), None): cnv_string,
- ((DRAWNS,'display'), None): cnv_string,
- ((DRAWNS,'display-name'), None): cnv_string,
- ((DRAWNS,'distance'), None): cnv_lengthorpercent,
- ((DRAWNS,'dots1'), None): cnv_integer,
- ((DRAWNS,'dots1-length'), None): cnv_lengthorpercent,
- ((DRAWNS,'dots2'), None): cnv_integer,
- ((DRAWNS,'dots2-length'), None): cnv_lengthorpercent,
- ((DRAWNS,'end-angle'), None): cnv_double,
- ((DRAWNS,'end'), None): cnv_string,
- ((DRAWNS,'end-color'), None): cnv_string,
- ((DRAWNS,'end-glue-point'), None): cnv_nonNegativeInteger,
- ((DRAWNS,'end-guide'), None): cnv_length,
- ((DRAWNS,'end-intensity'), None): cnv_string,
- ((DRAWNS,'end-line-spacing-horizontal'), None): cnv_string,
- ((DRAWNS,'end-line-spacing-vertical'), None): cnv_string,
- ((DRAWNS,'end-shape'), None): cnv_IDREF,
- ((DRAWNS,'engine'), None): cnv_namespacedToken,
- ((DRAWNS,'enhanced-path'), None): cnv_string,
- ((DRAWNS,'escape-direction'), None): cnv_string,
- ((DRAWNS,'extrusion-allowed'), None): cnv_boolean,
- ((DRAWNS,'extrusion-brightness'), None): cnv_string,
- ((DRAWNS,'extrusion'), None): cnv_boolean,
- ((DRAWNS,'extrusion-color'), None): cnv_boolean,
- ((DRAWNS,'extrusion-depth'), None): cnv_double,
- ((DRAWNS,'extrusion-diffusion'), None): cnv_string,
- ((DRAWNS,'extrusion-first-light-direction'), None): cnv_string,
- ((DRAWNS,'extrusion-first-light-harsh'), None): cnv_boolean,
- ((DRAWNS,'extrusion-first-light-level'), None): cnv_string,
- ((DRAWNS,'extrusion-light-face'), None): cnv_boolean,
- ((DRAWNS,'extrusion-metal'), None): cnv_boolean,
- ((DRAWNS,'extrusion-number-of-line-segments'), None): cnv_integer,
- ((DRAWNS,'extrusion-origin'), None): cnv_double,
- ((DRAWNS,'extrusion-rotation-angle'), None): cnv_double,
- ((DRAWNS,'extrusion-rotation-center'), None): cnv_string,
- ((DRAWNS,'extrusion-second-light-direction'), None): cnv_string,
- ((DRAWNS,'extrusion-second-light-harsh'), None): cnv_boolean,
- ((DRAWNS,'extrusion-second-light-level'), None): cnv_string,
- ((DRAWNS,'extrusion-shininess'), None): cnv_string,
- ((DRAWNS,'extrusion-skew'), None): cnv_double,
- ((DRAWNS,'extrusion-specularity'), None): cnv_string,
- ((DRAWNS,'extrusion-viewpoint'), None): cnv_string,
- ((DRAWNS,'fill'), None): cnv_string,
- ((DRAWNS,'fill-color'), None): cnv_string,
- ((DRAWNS,'fill-gradient-name'), None): cnv_string,
- ((DRAWNS,'fill-hatch-name'), None): cnv_string,
- ((DRAWNS,'fill-hatch-solid'), None): cnv_boolean,
- ((DRAWNS,'fill-image-height'), None): cnv_lengthorpercent,
- ((DRAWNS,'fill-image-name'), None): cnv_DrawNameRef,
- ((DRAWNS,'fill-image-ref-point'), None): cnv_string,
- ((DRAWNS,'fill-image-ref-point-x'), None): cnv_string,
- ((DRAWNS,'fill-image-ref-point-y'), None): cnv_string,
- ((DRAWNS,'fill-image-width'), None): cnv_lengthorpercent,
- ((DRAWNS,'filter-name'), None): cnv_string,
- ((DRAWNS,'fit-to-contour'), None): cnv_boolean,
- ((DRAWNS,'fit-to-size'), None): cnv_boolean,
- ((DRAWNS,'formula'), None): cnv_string,
- ((DRAWNS,'frame-display-border'), None): cnv_boolean,
- ((DRAWNS,'frame-display-scrollbar'), None): cnv_boolean,
- ((DRAWNS,'frame-margin-horizontal'), None): cnv_string,
- ((DRAWNS,'frame-margin-vertical'), None): cnv_string,
- ((DRAWNS,'frame-name'), None): cnv_string,
- ((DRAWNS,'gamma'), None): cnv_string,
- ((DRAWNS,'glue-point-leaving-directions'), None): cnv_string,
- ((DRAWNS,'glue-point-type'), None): cnv_string,
- ((DRAWNS,'glue-points'), None): cnv_string,
- ((DRAWNS,'gradient-step-count'), None): cnv_string,
- ((DRAWNS,'green'), None): cnv_string,
- ((DRAWNS,'guide-distance'), None): cnv_string,
- ((DRAWNS,'guide-overhang'), None): cnv_length,
- ((DRAWNS,'handle-mirror-horizontal'), None): cnv_boolean,
- ((DRAWNS,'handle-mirror-vertical'), None): cnv_boolean,
- ((DRAWNS,'handle-polar'), None): cnv_string,
- ((DRAWNS,'handle-position'), None): cnv_string,
- ((DRAWNS,'handle-radius-range-maximum'), None): cnv_string,
- ((DRAWNS,'handle-radius-range-minimum'), None): cnv_string,
- ((DRAWNS,'handle-range-x-maximum'), None): cnv_string,
- ((DRAWNS,'handle-range-x-minimum'), None): cnv_string,
- ((DRAWNS,'handle-range-y-maximum'), None): cnv_string,
- ((DRAWNS,'handle-range-y-minimum'), None): cnv_string,
- ((DRAWNS,'handle-switched'), None): cnv_boolean,
-# ((DRAWNS,u'id'), None): cnv_ID,
-# ((DRAWNS,u'id'), None): cnv_nonNegativeInteger, # ?? line 6581 in RNG
- ((DRAWNS,'id'), None): cnv_string,
- ((DRAWNS,'image-opacity'), None): cnv_string,
- ((DRAWNS,'kind'), None): cnv_string,
- ((DRAWNS,'layer'), None): cnv_string,
- ((DRAWNS,'line-distance'), None): cnv_string,
- ((DRAWNS,'line-skew'), None): cnv_string,
- ((DRAWNS,'luminance'), None): cnv_string,
- ((DRAWNS,'marker-end-center'), None): cnv_boolean,
- ((DRAWNS,'marker-end'), None): cnv_string,
- ((DRAWNS,'marker-end-width'), None): cnv_length,
- ((DRAWNS,'marker-start-center'), None): cnv_boolean,
- ((DRAWNS,'marker-start'), None): cnv_string,
- ((DRAWNS,'marker-start-width'), None): cnv_length,
- ((DRAWNS,'master-page-name'), None): cnv_StyleNameRef,
- ((DRAWNS,'may-script'), None): cnv_boolean,
- ((DRAWNS,'measure-align'), None): cnv_string,
- ((DRAWNS,'measure-vertical-align'), None): cnv_string,
- ((DRAWNS,'mime-type'), None): cnv_string,
- ((DRAWNS,'mirror-horizontal'), None): cnv_boolean,
- ((DRAWNS,'mirror-vertical'), None): cnv_boolean,
- ((DRAWNS,'modifiers'), None): cnv_string,
- ((DRAWNS,'name'), None): cnv_NCName,
-# ((DRAWNS,u'name'), None): cnv_string,
- ((DRAWNS,'nav-order'), None): cnv_IDREF,
- ((DRAWNS,'nohref'), None): cnv_string,
- ((DRAWNS,'notify-on-update-of-ranges'), None): cnv_string,
- ((DRAWNS,'object'), None): cnv_string,
- ((DRAWNS,'ole-draw-aspect'), None): cnv_string,
- ((DRAWNS,'opacity'), None): cnv_string,
- ((DRAWNS,'opacity-name'), None): cnv_string,
- ((DRAWNS,'page-number'), None): cnv_positiveInteger,
- ((DRAWNS,'parallel'), None): cnv_boolean,
- ((DRAWNS,'path-stretchpoint-x'), None): cnv_double,
- ((DRAWNS,'path-stretchpoint-y'), None): cnv_double,
- ((DRAWNS,'placing'), None): cnv_string,
- ((DRAWNS,'points'), None): cnv_points,
- ((DRAWNS,'protected'), None): cnv_boolean,
- ((DRAWNS,'recreate-on-edit'), None): cnv_boolean,
- ((DRAWNS,'red'), None): cnv_string,
- ((DRAWNS,'rotation'), None): cnv_integer,
- ((DRAWNS,'secondary-fill-color'), None): cnv_string,
- ((DRAWNS,'shadow'), None): cnv_string,
- ((DRAWNS,'shadow-color'), None): cnv_string,
- ((DRAWNS,'shadow-offset-x'), None): cnv_length,
- ((DRAWNS,'shadow-offset-y'), None): cnv_length,
- ((DRAWNS,'shadow-opacity'), None): cnv_string,
- ((DRAWNS,'shape-id'), None): cnv_IDREF,
- ((DRAWNS,'sharpness'), None): cnv_string,
- ((DRAWNS,'show-unit'), None): cnv_boolean,
- ((DRAWNS,'start-angle'), None): cnv_double,
- ((DRAWNS,'start'), None): cnv_string,
- ((DRAWNS,'start-color'), None): cnv_string,
- ((DRAWNS,'start-glue-point'), None): cnv_nonNegativeInteger,
- ((DRAWNS,'start-guide'), None): cnv_length,
- ((DRAWNS,'start-intensity'), None): cnv_string,
- ((DRAWNS,'start-line-spacing-horizontal'), None): cnv_string,
- ((DRAWNS,'start-line-spacing-vertical'), None): cnv_string,
- ((DRAWNS,'start-shape'), None): cnv_IDREF,
- ((DRAWNS,'stroke'), None): cnv_string,
- ((DRAWNS,'stroke-dash'), None): cnv_string,
- ((DRAWNS,'stroke-dash-names'), None): cnv_string,
- ((DRAWNS,'stroke-linejoin'), None): cnv_string,
- ((DRAWNS,'style'), None): cnv_string,
- ((DRAWNS,'style-name'), None): cnv_StyleNameRef,
- ((DRAWNS,'symbol-color'), None): cnv_string,
- ((DRAWNS,'text-areas'), None): cnv_string,
- ((DRAWNS,'text-path-allowed'), None): cnv_boolean,
- ((DRAWNS,'text-path'), None): cnv_boolean,
- ((DRAWNS,'text-path-mode'), None): cnv_string,
- ((DRAWNS,'text-path-same-letter-heights'), None): cnv_boolean,
- ((DRAWNS,'text-path-scale'), None): cnv_string,
- ((DRAWNS,'text-rotate-angle'), None): cnv_double,
- ((DRAWNS,'text-style-name'), None): cnv_StyleNameRef,
- ((DRAWNS,'textarea-horizontal-align'), None): cnv_string,
- ((DRAWNS,'textarea-vertical-align'), None): cnv_string,
- ((DRAWNS,'tile-repeat-offset'), None): cnv_string,
- ((DRAWNS,'transform'), None): cnv_string,
- ((DRAWNS,'type'), None): cnv_string,
- ((DRAWNS,'unit'), None): cnv_string,
- ((DRAWNS,'value'), None): cnv_string,
- ((DRAWNS,'visible-area-height'), None): cnv_string,
- ((DRAWNS,'visible-area-left'), None): cnv_string,
- ((DRAWNS,'visible-area-top'), None): cnv_string,
- ((DRAWNS,'visible-area-width'), None): cnv_string,
- ((DRAWNS,'wrap-influence-on-position'), None): cnv_string,
- ((DRAWNS,'z-index'), None): cnv_nonNegativeInteger,
- ((FONS,'background-color'), None): cnv_string,
- ((FONS,'border-bottom'), None): cnv_string,
- ((FONS,'border'), None): cnv_string,
- ((FONS,'border-left'), None): cnv_string,
- ((FONS,'border-right'), None): cnv_string,
- ((FONS,'border-top'), None): cnv_string,
- ((FONS,'break-after'), None): cnv_string,
- ((FONS,'break-before'), None): cnv_string,
- ((FONS,'clip'), None): cnv_string,
- ((FONS,'color'), None): cnv_string,
- ((FONS,'column-count'), None): cnv_positiveInteger,
- ((FONS,'column-gap'), None): cnv_length,
- ((FONS,'country'), None): cnv_token,
- ((FONS,'end-indent'), None): cnv_length,
- ((FONS,'font-family'), None): cnv_string,
- ((FONS,'font-size'), None): cnv_string,
- ((FONS,'font-style'), None): cnv_string,
- ((FONS,'font-variant'), None): cnv_string,
- ((FONS,'font-weight'), None): cnv_string,
- ((FONS,'height'), None): cnv_string,
- ((FONS,'hyphenate'), None): cnv_boolean,
- ((FONS,'hyphenation-keep'), None): cnv_string,
- ((FONS,'hyphenation-ladder-count'), None): cnv_string,
- ((FONS,'hyphenation-push-char-count'), None): cnv_string,
- ((FONS,'hyphenation-remain-char-count'), None): cnv_string,
- ((FONS,'keep-together'), None): cnv_string,
- ((FONS,'keep-with-next'), None): cnv_string,
- ((FONS,'language'), None): cnv_token,
- ((FONS,'letter-spacing'), None): cnv_string,
- ((FONS,'line-height'), None): cnv_string,
- ((FONS,'margin-bottom'), None): cnv_string,
- ((FONS,'margin'), None): cnv_string,
- ((FONS,'margin-left'), None): cnv_string,
- ((FONS,'margin-right'), None): cnv_string,
- ((FONS,'margin-top'), None): cnv_string,
- ((FONS,'max-height'), None): cnv_string,
- ((FONS,'max-width'), None): cnv_string,
- ((FONS,'min-height'), None): cnv_length,
- ((FONS,'min-width'), None): cnv_string,
- ((FONS,'orphans'), None): cnv_string,
- ((FONS,'padding-bottom'), None): cnv_string,
- ((FONS,'padding'), None): cnv_string,
- ((FONS,'padding-left'), None): cnv_string,
- ((FONS,'padding-right'), None): cnv_string,
- ((FONS,'padding-top'), None): cnv_string,
- ((FONS,'page-height'), None): cnv_length,
- ((FONS,'page-width'), None): cnv_length,
- ((FONS,'space-after'), None): cnv_length,
- ((FONS,'space-before'), None): cnv_length,
- ((FONS,'start-indent'), None): cnv_length,
- ((FONS,'text-align'), None): cnv_string,
- ((FONS,'text-align-last'), None): cnv_string,
- ((FONS,'text-indent'), None): cnv_string,
- ((FONS,'text-shadow'), None): cnv_string,
- ((FONS,'text-transform'), None): cnv_string,
- ((FONS,'widows'), None): cnv_string,
- ((FONS,'width'), None): cnv_string,
- ((FONS,'wrap-option'), None): cnv_string,
- ((FORMNS,'allow-deletes'), None): cnv_boolean,
- ((FORMNS,'allow-inserts'), None): cnv_boolean,
- ((FORMNS,'allow-updates'), None): cnv_boolean,
- ((FORMNS,'apply-design-mode'), None): cnv_boolean,
- ((FORMNS,'apply-filter'), None): cnv_boolean,
- ((FORMNS,'auto-complete'), None): cnv_boolean,
- ((FORMNS,'automatic-focus'), None): cnv_boolean,
- ((FORMNS,'bound-column'), None): cnv_string,
- ((FORMNS,'button-type'), None): cnv_string,
- ((FORMNS,'command'), None): cnv_string,
- ((FORMNS,'command-type'), None): cnv_string,
- ((FORMNS,'control-implementation'), None): cnv_namespacedToken,
- ((FORMNS,'convert-empty-to-null'), None): cnv_boolean,
- ((FORMNS,'current-selected'), None): cnv_boolean,
- ((FORMNS,'current-state'), None): cnv_string,
-# ((FORMNS,u'current-value'), None): cnv_date,
-# ((FORMNS,u'current-value'), None): cnv_double,
- ((FORMNS,'current-value'), None): cnv_string,
-# ((FORMNS,u'current-value'), None): cnv_time,
- ((FORMNS,'data-field'), None): cnv_string,
- ((FORMNS,'datasource'), None): cnv_string,
- ((FORMNS,'default-button'), None): cnv_boolean,
- ((FORMNS,'delay-for-repeat'), None): cnv_duration,
- ((FORMNS,'detail-fields'), None): cnv_string,
- ((FORMNS,'disabled'), None): cnv_boolean,
- ((FORMNS,'dropdown'), None): cnv_boolean,
- ((FORMNS,'echo-char'), None): cnv_string,
- ((FORMNS,'enctype'), None): cnv_string,
- ((FORMNS,'escape-processing'), None): cnv_boolean,
- ((FORMNS,'filter'), None): cnv_string,
- ((FORMNS,'focus-on-click'), None): cnv_boolean,
- ((FORMNS,'for'), None): cnv_string,
- ((FORMNS,'id'), None): cnv_ID,
- ((FORMNS,'ignore-result'), None): cnv_boolean,
- ((FORMNS,'image-align'), None): cnv_string,
- ((FORMNS,'image-data'), None): cnv_anyURI,
- ((FORMNS,'image-position'), None): cnv_string,
- ((FORMNS,'is-tristate'), None): cnv_boolean,
- ((FORMNS,'label'), None): cnv_string,
- ((FORMNS,'list-source'), None): cnv_string,
- ((FORMNS,'list-source-type'), None): cnv_string,
- ((FORMNS,'master-fields'), None): cnv_string,
- ((FORMNS,'max-length'), None): cnv_nonNegativeInteger,
-# ((FORMNS,u'max-value'), None): cnv_date,
-# ((FORMNS,u'max-value'), None): cnv_double,
- ((FORMNS,'max-value'), None): cnv_string,
-# ((FORMNS,u'max-value'), None): cnv_time,
- ((FORMNS,'method'), None): cnv_string,
-# ((FORMNS,u'min-value'), None): cnv_date,
-# ((FORMNS,u'min-value'), None): cnv_double,
- ((FORMNS,'min-value'), None): cnv_string,
-# ((FORMNS,u'min-value'), None): cnv_time,
- ((FORMNS,'multi-line'), None): cnv_boolean,
- ((FORMNS,'multiple'), None): cnv_boolean,
- ((FORMNS,'name'), None): cnv_string,
- ((FORMNS,'navigation-mode'), None): cnv_string,
- ((FORMNS,'order'), None): cnv_string,
- ((FORMNS,'orientation'), None): cnv_string,
- ((FORMNS,'page-step-size'), None): cnv_positiveInteger,
- ((FORMNS,'printable'), None): cnv_boolean,
- ((FORMNS,'property-name'), None): cnv_string,
- ((FORMNS,'readonly'), None): cnv_boolean,
- ((FORMNS,'selected'), None): cnv_boolean,
- ((FORMNS,'size'), None): cnv_nonNegativeInteger,
- ((FORMNS,'state'), None): cnv_string,
- ((FORMNS,'step-size'), None): cnv_positiveInteger,
- ((FORMNS,'tab-cycle'), None): cnv_string,
- ((FORMNS,'tab-index'), None): cnv_nonNegativeInteger,
- ((FORMNS,'tab-stop'), None): cnv_boolean,
- ((FORMNS,'text-style-name'), None): cnv_StyleNameRef,
- ((FORMNS,'title'), None): cnv_string,
- ((FORMNS,'toggle'), None): cnv_boolean,
- ((FORMNS,'validation'), None): cnv_boolean,
-# ((FORMNS,u'value'), None): cnv_date,
-# ((FORMNS,u'value'), None): cnv_double,
- ((FORMNS,'value'), None): cnv_string,
-# ((FORMNS,u'value'), None): cnv_time,
- ((FORMNS,'visual-effect'), None): cnv_string,
- ((FORMNS,'xforms-list-source'), None): cnv_string,
- ((FORMNS,'xforms-submission'), None): cnv_string,
- ((MANIFESTNS,'algorithm-name'), None): cnv_string,
- ((MANIFESTNS,'checksum'), None): cnv_string,
- ((MANIFESTNS,'checksum-type'), None): cnv_string,
- ((MANIFESTNS,'full-path'), None): cnv_string,
- ((MANIFESTNS,'initialisation-vector'), None): cnv_string,
- ((MANIFESTNS,'iteration-count'), None): cnv_nonNegativeInteger,
- ((MANIFESTNS,'key-derivation-name'), None): cnv_string,
- ((MANIFESTNS,'media-type'), None): cnv_string,
- ((MANIFESTNS,'salt'), None): cnv_string,
- ((MANIFESTNS,'size'), None): cnv_nonNegativeInteger,
- ((METANS,'cell-count'), None): cnv_nonNegativeInteger,
- ((METANS,'character-count'), None): cnv_nonNegativeInteger,
- ((METANS,'date'), None): cnv_dateTime,
- ((METANS,'delay'), None): cnv_duration,
- ((METANS,'draw-count'), None): cnv_nonNegativeInteger,
- ((METANS,'frame-count'), None): cnv_nonNegativeInteger,
- ((METANS,'image-count'), None): cnv_nonNegativeInteger,
- ((METANS,'name'), None): cnv_string,
- ((METANS,'non-whitespace-character-count'), None): cnv_nonNegativeInteger,
- ((METANS,'object-count'), None): cnv_nonNegativeInteger,
- ((METANS,'ole-object-count'), None): cnv_nonNegativeInteger,
- ((METANS,'page-count'), None): cnv_nonNegativeInteger,
- ((METANS,'paragraph-count'), None): cnv_nonNegativeInteger,
- ((METANS,'row-count'), None): cnv_nonNegativeInteger,
- ((METANS,'sentence-count'), None): cnv_nonNegativeInteger,
- ((METANS,'syllable-count'), None): cnv_nonNegativeInteger,
- ((METANS,'table-count'), None): cnv_nonNegativeInteger,
- ((METANS,'value-type'), None): cnv_metavaluetype,
- ((METANS,'word-count'), None): cnv_nonNegativeInteger,
- ((NUMBERNS,'automatic-order'), None): cnv_boolean,
- ((NUMBERNS,'calendar'), None): cnv_string,
- ((NUMBERNS,'country'), None): cnv_token,
- ((NUMBERNS,'decimal-places'), None): cnv_integer,
- ((NUMBERNS,'decimal-replacement'), None): cnv_string,
- ((NUMBERNS,'denominator-value'), None): cnv_integer,
- ((NUMBERNS,'display-factor'), None): cnv_double,
- ((NUMBERNS,'format-source'), None): cnv_string,
- ((NUMBERNS,'grouping'), None): cnv_boolean,
- ((NUMBERNS,'language'), None): cnv_token,
- ((NUMBERNS,'min-denominator-digits'), None): cnv_integer,
- ((NUMBERNS,'min-exponent-digits'), None): cnv_integer,
- ((NUMBERNS,'min-integer-digits'), None): cnv_integer,
- ((NUMBERNS,'min-numerator-digits'), None): cnv_integer,
- ((NUMBERNS,'position'), None): cnv_integer,
- ((NUMBERNS,'possessive-form'), None): cnv_boolean,
- ((NUMBERNS,'style'), None): cnv_string,
- ((NUMBERNS,'textual'), None): cnv_boolean,
- ((NUMBERNS,'title'), None): cnv_string,
- ((NUMBERNS,'transliteration-country'), None): cnv_token,
- ((NUMBERNS,'transliteration-format'), None): cnv_string,
- ((NUMBERNS,'transliteration-language'), None): cnv_token,
- ((NUMBERNS,'transliteration-style'), None): cnv_string,
- ((NUMBERNS,'truncate-on-overflow'), None): cnv_boolean,
- ((OFFICENS,'automatic-update'), None): cnv_boolean,
- ((OFFICENS,'boolean-value'), None): cnv_boolean,
- ((OFFICENS,'conversion-mode'), None): cnv_string,
- ((OFFICENS,'currency'), None): cnv_string,
- ((OFFICENS,'date-value'), None): cnv_dateTime,
- ((OFFICENS,'dde-application'), None): cnv_string,
- ((OFFICENS,'dde-item'), None): cnv_string,
- ((OFFICENS,'dde-topic'), None): cnv_string,
- ((OFFICENS,'display'), None): cnv_boolean,
- ((OFFICENS,'mimetype'), None): cnv_string,
- ((OFFICENS,'name'), None): cnv_string,
- ((OFFICENS,'process-content'), None): cnv_boolean,
- ((OFFICENS,'server-map'), None): cnv_boolean,
- ((OFFICENS,'string-value'), None): cnv_string,
- ((OFFICENS,'target-frame'), None): cnv_string,
- ((OFFICENS,'target-frame-name'), None): cnv_string,
- ((OFFICENS,'time-value'), None): cnv_duration,
- ((OFFICENS,'title'), None): cnv_string,
- ((OFFICENS,'value'), None): cnv_double,
- ((OFFICENS,'value-type'), None): cnv_string,
- ((OFFICENS,'version'), None): cnv_string,
- ((PRESENTATIONNS,'action'), None): cnv_string,
- ((PRESENTATIONNS,'animations'), None): cnv_string,
- ((PRESENTATIONNS,'background-objects-visible'), None): cnv_boolean,
- ((PRESENTATIONNS,'background-visible'), None): cnv_boolean,
- ((PRESENTATIONNS,'class'), None): cnv_string,
- ((PRESENTATIONNS,'class-names'), None): cnv_NCNames,
- ((PRESENTATIONNS,'delay'), None): cnv_duration,
- ((PRESENTATIONNS,'direction'), None): cnv_string,
- ((PRESENTATIONNS,'display-date-time'), None): cnv_boolean,
- ((PRESENTATIONNS,'display-footer'), None): cnv_boolean,
- ((PRESENTATIONNS,'display-header'), None): cnv_boolean,
- ((PRESENTATIONNS,'display-page-number'), None): cnv_boolean,
- ((PRESENTATIONNS,'duration'), None): cnv_string,
- ((PRESENTATIONNS,'effect'), None): cnv_string,
- ((PRESENTATIONNS,'endless'), None): cnv_boolean,
- ((PRESENTATIONNS,'force-manual'), None): cnv_boolean,
- ((PRESENTATIONNS,'full-screen'), None): cnv_boolean,
- ((PRESENTATIONNS,'group-id'), None): cnv_string,
- ((PRESENTATIONNS,'master-element'), None): cnv_IDREF,
- ((PRESENTATIONNS,'mouse-as-pen'), None): cnv_boolean,
- ((PRESENTATIONNS,'mouse-visible'), None): cnv_boolean,
- ((PRESENTATIONNS,'name'), None): cnv_string,
- ((PRESENTATIONNS,'node-type'), None): cnv_string,
- ((PRESENTATIONNS,'object'), None): cnv_string,
- ((PRESENTATIONNS,'pages'), None): cnv_string,
- ((PRESENTATIONNS,'path-id'), None): cnv_string,
- ((PRESENTATIONNS,'pause'), None): cnv_duration,
- ((PRESENTATIONNS,'placeholder'), None): cnv_boolean,
- ((PRESENTATIONNS,'play-full'), None): cnv_boolean,
- ((PRESENTATIONNS,'presentation-page-layout-name'), None): cnv_StyleNameRef,
- ((PRESENTATIONNS,'preset-class'), None): cnv_string,
- ((PRESENTATIONNS,'preset-id'), None): cnv_string,
- ((PRESENTATIONNS,'preset-sub-type'), None): cnv_string,
- ((PRESENTATIONNS,'show'), None): cnv_string,
- ((PRESENTATIONNS,'show-end-of-presentation-slide'), None): cnv_boolean,
- ((PRESENTATIONNS,'show-logo'), None): cnv_boolean,
- ((PRESENTATIONNS,'source'), None): cnv_string,
- ((PRESENTATIONNS,'speed'), None): cnv_string,
- ((PRESENTATIONNS,'start-page'), None): cnv_string,
- ((PRESENTATIONNS,'start-scale'), None): cnv_string,
- ((PRESENTATIONNS,'start-with-navigator'), None): cnv_boolean,
- ((PRESENTATIONNS,'stay-on-top'), None): cnv_boolean,
- ((PRESENTATIONNS,'style-name'), None): cnv_StyleNameRef,
- ((PRESENTATIONNS,'transition-on-click'), None): cnv_string,
- ((PRESENTATIONNS,'transition-speed'), None): cnv_string,
- ((PRESENTATIONNS,'transition-style'), None): cnv_string,
- ((PRESENTATIONNS,'transition-type'), None): cnv_string,
- ((PRESENTATIONNS,'use-date-time-name'), None): cnv_string,
- ((PRESENTATIONNS,'use-footer-name'), None): cnv_string,
- ((PRESENTATIONNS,'use-header-name'), None): cnv_string,
- ((PRESENTATIONNS,'user-transformed'), None): cnv_boolean,
- ((PRESENTATIONNS,'verb'), None): cnv_nonNegativeInteger,
- ((PRESENTATIONNS,'visibility'), None): cnv_string,
- ((SCRIPTNS,'event-name'), None): cnv_formula,
- ((SCRIPTNS,'language'), None): cnv_formula,
- ((SCRIPTNS,'macro-name'), None): cnv_string,
- ((SMILNS,'accelerate'), None): cnv_double,
- ((SMILNS,'accumulate'), None): cnv_string,
- ((SMILNS,'additive'), None): cnv_string,
- ((SMILNS,'attributeName'), None): cnv_string,
- ((SMILNS,'autoReverse'), None): cnv_boolean,
- ((SMILNS,'begin'), None): cnv_string,
- ((SMILNS,'by'), None): cnv_string,
- ((SMILNS,'calcMode'), None): cnv_string,
- ((SMILNS,'decelerate'), None): cnv_double,
- ((SMILNS,'direction'), None): cnv_string,
- ((SMILNS,'dur'), None): cnv_string,
- ((SMILNS,'end'), None): cnv_string,
- ((SMILNS,'endsync'), None): cnv_string,
- ((SMILNS,'fadeColor'), None): cnv_string,
- ((SMILNS,'fill'), None): cnv_string,
- ((SMILNS,'fillDefault'), None): cnv_string,
- ((SMILNS,'from'), None): cnv_string,
- ((SMILNS,'keySplines'), None): cnv_string,
- ((SMILNS,'keyTimes'), None): cnv_string,
- ((SMILNS,'mode'), None): cnv_string,
- ((SMILNS,'repeatCount'), None): cnv_nonNegativeInteger,
- ((SMILNS,'repeatDur'), None): cnv_string,
- ((SMILNS,'restart'), None): cnv_string,
- ((SMILNS,'restartDefault'), None): cnv_string,
- ((SMILNS,'subtype'), None): cnv_string,
- ((SMILNS,'targetElement'), None): cnv_IDREF,
- ((SMILNS,'to'), None): cnv_string,
- ((SMILNS,'type'), None): cnv_string,
- ((SMILNS,'values'), None): cnv_string,
- ((STYLENS,'adjustment'), None): cnv_string,
- ((STYLENS,'apply-style-name'), None): cnv_StyleNameRef,
- ((STYLENS,'auto-text-indent'), None): cnv_boolean,
- ((STYLENS,'auto-update'), None): cnv_boolean,
- ((STYLENS,'background-transparency'), None): cnv_string,
- ((STYLENS,'base-cell-address'), None): cnv_string,
- ((STYLENS,'border-line-width-bottom'), None): cnv_string,
- ((STYLENS,'border-line-width'), None): cnv_string,
- ((STYLENS,'border-line-width-left'), None): cnv_string,
- ((STYLENS,'border-line-width-right'), None): cnv_string,
- ((STYLENS,'border-line-width-top'), None): cnv_string,
- ((STYLENS,'cell-protect'), None): cnv_string,
- ((STYLENS,'char'), None): cnv_string,
- ((STYLENS,'class'), None): cnv_string,
- ((STYLENS,'color'), None): cnv_string,
- ((STYLENS,'column-width'), None): cnv_string,
- ((STYLENS,'condition'), None): cnv_string,
- ((STYLENS,'country-asian'), None): cnv_string,
- ((STYLENS,'country-complex'), None): cnv_string,
- ((STYLENS,'data-style-name'), None): cnv_StyleNameRef,
- ((STYLENS,'decimal-places'), None): cnv_string,
- ((STYLENS,'default-outline-level'), None): cnv_positiveInteger,
- ((STYLENS,'diagonal-bl-tr'), None): cnv_string,
- ((STYLENS,'diagonal-bl-tr-widths'), None): cnv_string,
- ((STYLENS,'diagonal-tl-br'), None): cnv_string,
- ((STYLENS,'diagonal-tl-br-widths'), None): cnv_string,
- ((STYLENS,'direction'), None): cnv_string,
- ((STYLENS,'display'), None): cnv_boolean,
- ((STYLENS,'display-name'), None): cnv_string,
- ((STYLENS,'distance-after-sep'), None): cnv_length,
- ((STYLENS,'distance-before-sep'), None): cnv_length,
- ((STYLENS,'distance'), None): cnv_length,
- ((STYLENS,'dynamic-spacing'), None): cnv_boolean,
- ((STYLENS,'editable'), None): cnv_boolean,
- ((STYLENS,'family'), None): cnv_family,
- ((STYLENS,'filter-name'), None): cnv_string,
- ((STYLENS,'first-page-number'), None): cnv_string,
- ((STYLENS,'flow-with-text'), None): cnv_boolean,
- ((STYLENS,'font-adornments'), None): cnv_string,
- ((STYLENS,'font-charset'), None): cnv_string,
- ((STYLENS,'font-charset-asian'), None): cnv_string,
- ((STYLENS,'font-charset-complex'), None): cnv_string,
- ((STYLENS,'font-family-asian'), None): cnv_string,
- ((STYLENS,'font-family-complex'), None): cnv_string,
- ((STYLENS,'font-family-generic-asian'), None): cnv_string,
- ((STYLENS,'font-family-generic'), None): cnv_string,
- ((STYLENS,'font-family-generic-complex'), None): cnv_string,
- ((STYLENS,'font-independent-line-spacing'), None): cnv_boolean,
- ((STYLENS,'font-name-asian'), None): cnv_string,
- ((STYLENS,'font-name'), None): cnv_string,
- ((STYLENS,'font-name-complex'), None): cnv_string,
- ((STYLENS,'font-pitch-asian'), None): cnv_string,
- ((STYLENS,'font-pitch'), None): cnv_string,
- ((STYLENS,'font-pitch-complex'), None): cnv_string,
- ((STYLENS,'font-relief'), None): cnv_string,
- ((STYLENS,'font-size-asian'), None): cnv_string,
- ((STYLENS,'font-size-complex'), None): cnv_string,
- ((STYLENS,'font-size-rel-asian'), None): cnv_length,
- ((STYLENS,'font-size-rel'), None): cnv_length,
- ((STYLENS,'font-size-rel-complex'), None): cnv_length,
- ((STYLENS,'font-style-asian'), None): cnv_string,
- ((STYLENS,'font-style-complex'), None): cnv_string,
- ((STYLENS,'font-style-name-asian'), None): cnv_string,
- ((STYLENS,'font-style-name'), None): cnv_string,
- ((STYLENS,'font-style-name-complex'), None): cnv_string,
- ((STYLENS,'font-weight-asian'), None): cnv_string,
- ((STYLENS,'font-weight-complex'), None): cnv_string,
- ((STYLENS,'footnote-max-height'), None): cnv_length,
- ((STYLENS,'glyph-orientation-vertical'), None): cnv_string,
- ((STYLENS,'height'), None): cnv_string,
- ((STYLENS,'horizontal-pos'), None): cnv_string,
- ((STYLENS,'horizontal-rel'), None): cnv_string,
- ((STYLENS,'justify-single-word'), None): cnv_boolean,
- ((STYLENS,'language-asian'), None): cnv_string,
- ((STYLENS,'language-complex'), None): cnv_string,
- ((STYLENS,'layout-grid-base-height'), None): cnv_length,
- ((STYLENS,'layout-grid-color'), None): cnv_string,
- ((STYLENS,'layout-grid-display'), None): cnv_boolean,
- ((STYLENS,'layout-grid-lines'), None): cnv_string,
- ((STYLENS,'layout-grid-mode'), None): cnv_string,
- ((STYLENS,'layout-grid-print'), None): cnv_boolean,
- ((STYLENS,'layout-grid-ruby-below'), None): cnv_boolean,
- ((STYLENS,'layout-grid-ruby-height'), None): cnv_length,
- ((STYLENS,'leader-char'), None): cnv_string,
- ((STYLENS,'leader-color'), None): cnv_string,
- ((STYLENS,'leader-style'), None): cnv_string,
- ((STYLENS,'leader-text'), None): cnv_string,
- ((STYLENS,'leader-text-style'), None): cnv_StyleNameRef,
- ((STYLENS,'leader-type'), None): cnv_string,
- ((STYLENS,'leader-width'), None): cnv_string,
- ((STYLENS,'legend-expansion-aspect-ratio'), None): cnv_double,
- ((STYLENS,'legend-expansion'), None): cnv_string,
- ((STYLENS,'length'), None): cnv_positiveInteger,
- ((STYLENS,'letter-kerning'), None): cnv_boolean,
- ((STYLENS,'line-break'), None): cnv_string,
- ((STYLENS,'line-height-at-least'), None): cnv_string,
- ((STYLENS,'line-spacing'), None): cnv_length,
- ((STYLENS,'line-style'), None): cnv_string,
- ((STYLENS,'lines'), None): cnv_positiveInteger,
- ((STYLENS,'list-style-name'), None): cnv_StyleNameRef,
- ((STYLENS,'master-page-name'), None): cnv_StyleNameRef,
- ((STYLENS,'may-break-between-rows'), None): cnv_boolean,
- ((STYLENS,'min-row-height'), None): cnv_string,
- ((STYLENS,'mirror'), None): cnv_string,
- ((STYLENS,'name'), None): cnv_NCName,
- ((STYLENS,'name'), (STYLENS,'font-face')): cnv_string,
- ((STYLENS,'next-style-name'), None): cnv_StyleNameRef,
- ((STYLENS,'num-format'), None): cnv_string,
- ((STYLENS,'num-letter-sync'), None): cnv_boolean,
- ((STYLENS,'num-prefix'), None): cnv_string,
- ((STYLENS,'num-suffix'), None): cnv_string,
- ((STYLENS,'number-wrapped-paragraphs'), None): cnv_string,
- ((STYLENS,'overflow-behavior'), None): cnv_string,
- ((STYLENS,'page-layout-name'), None): cnv_StyleNameRef,
- ((STYLENS,'page-number'), None): cnv_string,
- ((STYLENS,'page-usage'), None): cnv_string,
- ((STYLENS,'paper-tray-name'), None): cnv_string,
- ((STYLENS,'parent-style-name'), None): cnv_StyleNameRef,
- ((STYLENS,'position'), (STYLENS,'tab-stop')): cnv_length,
- ((STYLENS,'position'), None): cnv_string,
- ((STYLENS,'print'), None): cnv_string,
- ((STYLENS,'print-content'), None): cnv_boolean,
- ((STYLENS,'print-orientation'), None): cnv_string,
- ((STYLENS,'print-page-order'), None): cnv_string,
- ((STYLENS,'protect'), None): cnv_boolean,
- ((STYLENS,'punctuation-wrap'), None): cnv_string,
- ((STYLENS,'register-true'), None): cnv_boolean,
- ((STYLENS,'register-truth-ref-style-name'), None): cnv_string,
- ((STYLENS,'rel-column-width'), None): cnv_string,
- ((STYLENS,'rel-height'), None): cnv_string,
- ((STYLENS,'rel-width'), None): cnv_string,
- ((STYLENS,'repeat'), None): cnv_string,
- ((STYLENS,'repeat-content'), None): cnv_boolean,
- ((STYLENS,'rotation-align'), None): cnv_string,
- ((STYLENS,'rotation-angle'), None): cnv_string,
- ((STYLENS,'row-height'), None): cnv_string,
- ((STYLENS,'ruby-align'), None): cnv_string,
- ((STYLENS,'ruby-position'), None): cnv_string,
- ((STYLENS,'run-through'), None): cnv_string,
- ((STYLENS,'scale-to'), None): cnv_string,
- ((STYLENS,'scale-to-pages'), None): cnv_string,
- ((STYLENS,'script-type'), None): cnv_string,
- ((STYLENS,'shadow'), None): cnv_string,
- ((STYLENS,'shrink-to-fit'), None): cnv_boolean,
- ((STYLENS,'snap-to-layout-grid'), None): cnv_boolean,
- ((STYLENS,'style'), None): cnv_string,
- ((STYLENS,'style-name'), None): cnv_StyleNameRef,
- ((STYLENS,'tab-stop-distance'), None): cnv_string,
- ((STYLENS,'table-centering'), None): cnv_string,
- ((STYLENS,'text-align-source'), None): cnv_string,
- ((STYLENS,'text-autospace'), None): cnv_string,
- ((STYLENS,'text-blinking'), None): cnv_boolean,
- ((STYLENS,'text-combine'), None): cnv_string,
- ((STYLENS,'text-combine-end-char'), None): cnv_string,
- ((STYLENS,'text-combine-start-char'), None): cnv_string,
- ((STYLENS,'text-emphasize'), None): cnv_string,
- ((STYLENS,'text-line-through-color'), None): cnv_string,
- ((STYLENS,'text-line-through-mode'), None): cnv_string,
- ((STYLENS,'text-line-through-style'), None): cnv_string,
- ((STYLENS,'text-line-through-text'), None): cnv_string,
- ((STYLENS,'text-line-through-text-style'), None): cnv_string,
- ((STYLENS,'text-line-through-type'), None): cnv_string,
- ((STYLENS,'text-line-through-width'), None): cnv_string,
- ((STYLENS,'text-outline'), None): cnv_boolean,
- ((STYLENS,'text-position'), None): cnv_string,
- ((STYLENS,'text-rotation-angle'), None): cnv_string,
- ((STYLENS,'text-rotation-scale'), None): cnv_string,
- ((STYLENS,'text-scale'), None): cnv_string,
- ((STYLENS,'text-underline-color'), None): cnv_string,
- ((STYLENS,'text-underline-mode'), None): cnv_string,
- ((STYLENS,'text-underline-style'), None): cnv_string,
- ((STYLENS,'text-underline-type'), None): cnv_string,
- ((STYLENS,'text-underline-width'), None): cnv_string,
- ((STYLENS,'type'), None): cnv_string,
- ((STYLENS,'use-optimal-column-width'), None): cnv_boolean,
- ((STYLENS,'use-optimal-row-height'), None): cnv_boolean,
- ((STYLENS,'use-window-font-color'), None): cnv_boolean,
- ((STYLENS,'vertical-align'), None): cnv_string,
- ((STYLENS,'vertical-pos'), None): cnv_string,
- ((STYLENS,'vertical-rel'), None): cnv_string,
- ((STYLENS,'volatile'), None): cnv_boolean,
- ((STYLENS,'width'), None): cnv_string,
- ((STYLENS,'wrap'), None): cnv_string,
- ((STYLENS,'wrap-contour'), None): cnv_boolean,
- ((STYLENS,'wrap-contour-mode'), None): cnv_string,
- ((STYLENS,'wrap-dynamic-threshold'), None): cnv_length,
- ((STYLENS,'writing-mode-automatic'), None): cnv_boolean,
- ((STYLENS,'writing-mode'), None): cnv_string,
- ((SVGNS,'accent-height'), None): cnv_integer,
- ((SVGNS,'alphabetic'), None): cnv_integer,
- ((SVGNS,'ascent'), None): cnv_integer,
- ((SVGNS,'bbox'), None): cnv_string,
- ((SVGNS,'cap-height'), None): cnv_integer,
- ((SVGNS,'cx'), None): cnv_string,
- ((SVGNS,'cy'), None): cnv_string,
- ((SVGNS,'d'), None): cnv_string,
- ((SVGNS,'descent'), None): cnv_integer,
- ((SVGNS,'fill-rule'), None): cnv_string,
- ((SVGNS,'font-family'), None): cnv_string,
- ((SVGNS,'font-size'), None): cnv_string,
- ((SVGNS,'font-stretch'), None): cnv_string,
- ((SVGNS,'font-style'), None): cnv_string,
- ((SVGNS,'font-variant'), None): cnv_string,
- ((SVGNS,'font-weight'), None): cnv_string,
- ((SVGNS,'fx'), None): cnv_string,
- ((SVGNS,'fy'), None): cnv_string,
- ((SVGNS,'gradientTransform'), None): cnv_string,
- ((SVGNS,'gradientUnits'), None): cnv_string,
- ((SVGNS,'hanging'), None): cnv_integer,
- ((SVGNS,'height'), None): cnv_length,
- ((SVGNS,'ideographic'), None): cnv_integer,
- ((SVGNS,'mathematical'), None): cnv_integer,
- ((SVGNS,'name'), None): cnv_string,
- ((SVGNS,'offset'), None): cnv_string,
- ((SVGNS,'origin'), None): cnv_string,
- ((SVGNS,'overline-position'), None): cnv_integer,
- ((SVGNS,'overline-thickness'), None): cnv_integer,
- ((SVGNS,'panose-1'), None): cnv_string,
- ((SVGNS,'path'), None): cnv_string,
- ((SVGNS,'r'), None): cnv_length,
- ((SVGNS,'rx'), None): cnv_length,
- ((SVGNS,'ry'), None): cnv_length,
- ((SVGNS,'slope'), None): cnv_integer,
- ((SVGNS,'spreadMethod'), None): cnv_string,
- ((SVGNS,'stemh'), None): cnv_integer,
- ((SVGNS,'stemv'), None): cnv_integer,
- ((SVGNS,'stop-color'), None): cnv_string,
- ((SVGNS,'stop-opacity'), None): cnv_double,
- ((SVGNS,'strikethrough-position'), None): cnv_integer,
- ((SVGNS,'strikethrough-thickness'), None): cnv_integer,
- ((SVGNS,'string'), None): cnv_string,
- ((SVGNS,'stroke-color'), None): cnv_string,
- ((SVGNS,'stroke-opacity'), None): cnv_string,
- ((SVGNS,'stroke-width'), None): cnv_length,
- ((SVGNS,'type'), None): cnv_string,
- ((SVGNS,'underline-position'), None): cnv_integer,
- ((SVGNS,'underline-thickness'), None): cnv_integer,
- ((SVGNS,'unicode-range'), None): cnv_string,
- ((SVGNS,'units-per-em'), None): cnv_integer,
- ((SVGNS,'v-alphabetic'), None): cnv_integer,
- ((SVGNS,'v-hanging'), None): cnv_integer,
- ((SVGNS,'v-ideographic'), None): cnv_integer,
- ((SVGNS,'v-mathematical'), None): cnv_integer,
- ((SVGNS,'viewBox'), None): cnv_viewbox,
- ((SVGNS,'width'), None): cnv_length,
- ((SVGNS,'widths'), None): cnv_string,
- ((SVGNS,'x'), None): cnv_length,
- ((SVGNS,'x-height'), None): cnv_integer,
- ((SVGNS,'x1'), None): cnv_lengthorpercent,
- ((SVGNS,'x2'), None): cnv_lengthorpercent,
- ((SVGNS,'y'), None): cnv_length,
- ((SVGNS,'y1'), None): cnv_lengthorpercent,
- ((SVGNS,'y2'), None): cnv_lengthorpercent,
- ((TABLENS,'acceptance-state'), None): cnv_string,
- ((TABLENS,'add-empty-lines'), None): cnv_boolean,
- ((TABLENS,'algorithm'), None): cnv_formula,
- ((TABLENS,'align'), None): cnv_string,
- ((TABLENS,'allow-empty-cell'), None): cnv_boolean,
- ((TABLENS,'application-data'), None): cnv_string,
- ((TABLENS,'automatic-find-labels'), None): cnv_boolean,
- ((TABLENS,'base-cell-address'), None): cnv_string,
- ((TABLENS,'bind-styles-to-content'), None): cnv_boolean,
- ((TABLENS,'border-color'), None): cnv_string,
- ((TABLENS,'border-model'), None): cnv_string,
- ((TABLENS,'buttons'), None): cnv_string,
- ((TABLENS,'buttons'), None): cnv_string,
- ((TABLENS,'case-sensitive'), None): cnv_boolean,
- ((TABLENS,'case-sensitive'), None): cnv_string,
- ((TABLENS,'cell-address'), None): cnv_string,
- ((TABLENS,'cell-range-address'), None): cnv_string,
- ((TABLENS,'cell-range-address'), None): cnv_string,
- ((TABLENS,'cell-range'), None): cnv_string,
- ((TABLENS,'column'), None): cnv_integer,
- ((TABLENS,'comment'), None): cnv_string,
- ((TABLENS,'condition'), None): cnv_formula,
- ((TABLENS,'condition-source'), None): cnv_string,
- ((TABLENS,'condition-source-range-address'), None): cnv_string,
- ((TABLENS,'contains-error'), None): cnv_boolean,
- ((TABLENS,'contains-header'), None): cnv_boolean,
- ((TABLENS,'content-validation-name'), None): cnv_string,
- ((TABLENS,'copy-back'), None): cnv_boolean,
- ((TABLENS,'copy-formulas'), None): cnv_boolean,
- ((TABLENS,'copy-styles'), None): cnv_boolean,
- ((TABLENS,'count'), None): cnv_positiveInteger,
- ((TABLENS,'country'), None): cnv_token,
- ((TABLENS,'data-cell-range-address'), None): cnv_string,
- ((TABLENS,'data-field'), None): cnv_string,
- ((TABLENS,'data-type'), None): cnv_string,
- ((TABLENS,'database-name'), None): cnv_string,
- ((TABLENS,'database-table-name'), None): cnv_string,
- ((TABLENS,'date-end'), None): cnv_string,
- ((TABLENS,'date-start'), None): cnv_string,
- ((TABLENS,'date-value'), None): cnv_date,
- ((TABLENS,'default-cell-style-name'), None): cnv_StyleNameRef,
- ((TABLENS,'direction'), None): cnv_string,
- ((TABLENS,'display-border'), None): cnv_boolean,
- ((TABLENS,'display'), None): cnv_boolean,
- ((TABLENS,'display-duplicates'), None): cnv_boolean,
- ((TABLENS,'display-filter-buttons'), None): cnv_boolean,
- ((TABLENS,'display-list'), None): cnv_string,
- ((TABLENS,'display-member-mode'), None): cnv_string,
- ((TABLENS,'drill-down-on-double-click'), None): cnv_boolean,
- ((TABLENS,'enabled'), None): cnv_boolean,
- ((TABLENS,'end-cell-address'), None): cnv_string,
- ((TABLENS,'end'), None): cnv_string,
- ((TABLENS,'end-column'), None): cnv_integer,
- ((TABLENS,'end-position'), None): cnv_integer,
- ((TABLENS,'end-row'), None): cnv_integer,
- ((TABLENS,'end-table'), None): cnv_integer,
- ((TABLENS,'end-x'), None): cnv_length,
- ((TABLENS,'end-y'), None): cnv_length,
- ((TABLENS,'execute'), None): cnv_boolean,
- ((TABLENS,'expression'), None): cnv_formula,
- ((TABLENS,'field-name'), None): cnv_string,
- ((TABLENS,'field-number'), None): cnv_nonNegativeInteger,
- ((TABLENS,'field-number'), None): cnv_string,
- ((TABLENS,'filter-name'), None): cnv_string,
- ((TABLENS,'filter-options'), None): cnv_string,
- ((TABLENS,'formula'), None): cnv_formula,
- ((TABLENS,'function'), None): cnv_string,
- ((TABLENS,'function'), None): cnv_string,
- ((TABLENS,'grand-total'), None): cnv_string,
- ((TABLENS,'group-by-field-number'), None): cnv_nonNegativeInteger,
- ((TABLENS,'grouped-by'), None): cnv_string,
- ((TABLENS,'has-persistent-data'), None): cnv_boolean,
- ((TABLENS,'id'), None): cnv_string,
- ((TABLENS,'identify-categories'), None): cnv_boolean,
- ((TABLENS,'ignore-empty-rows'), None): cnv_boolean,
- ((TABLENS,'index'), None): cnv_nonNegativeInteger,
- ((TABLENS,'is-active'), None): cnv_boolean,
- ((TABLENS,'is-data-layout-field'), None): cnv_string,
- ((TABLENS,'is-selection'), None): cnv_boolean,
- ((TABLENS,'is-sub-table'), None): cnv_boolean,
- ((TABLENS,'label-cell-range-address'), None): cnv_string,
- ((TABLENS,'language'), None): cnv_token,
- ((TABLENS,'language'), None): cnv_token,
- ((TABLENS,'last-column-spanned'), None): cnv_positiveInteger,
- ((TABLENS,'last-row-spanned'), None): cnv_positiveInteger,
- ((TABLENS,'layout-mode'), None): cnv_string,
- ((TABLENS,'link-to-source-data'), None): cnv_boolean,
- ((TABLENS,'marked-invalid'), None): cnv_boolean,
- ((TABLENS,'matrix-covered'), None): cnv_boolean,
- ((TABLENS,'maximum-difference'), None): cnv_double,
- ((TABLENS,'member-count'), None): cnv_nonNegativeInteger,
- ((TABLENS,'member-name'), None): cnv_string,
- ((TABLENS,'member-type'), None): cnv_string,
- ((TABLENS,'message-type'), None): cnv_string,
- ((TABLENS,'mode'), None): cnv_string,
- ((TABLENS,'multi-deletion-spanned'), None): cnv_integer,
- ((TABLENS,'name'), None): cnv_string,
- ((TABLENS,'name'), None): cnv_string,
- ((TABLENS,'null-year'), None): cnv_positiveInteger,
- ((TABLENS,'number-columns-repeated'), None): cnv_positiveInteger,
- ((TABLENS,'number-columns-spanned'), None): cnv_positiveInteger,
- ((TABLENS,'number-matrix-columns-spanned'), None): cnv_positiveInteger,
- ((TABLENS,'number-matrix-rows-spanned'), None): cnv_positiveInteger,
- ((TABLENS,'number-rows-repeated'), None): cnv_positiveInteger,
- ((TABLENS,'number-rows-spanned'), None): cnv_positiveInteger,
- ((TABLENS,'object-name'), None): cnv_string,
- ((TABLENS,'on-update-keep-size'), None): cnv_boolean,
- ((TABLENS,'on-update-keep-styles'), None): cnv_boolean,
- ((TABLENS,'operator'), None): cnv_string,
- ((TABLENS,'operator'), None): cnv_string,
- ((TABLENS,'order'), None): cnv_string,
- ((TABLENS,'orientation'), None): cnv_string,
- ((TABLENS,'orientation'), None): cnv_string,
- ((TABLENS,'page-breaks-on-group-change'), None): cnv_boolean,
- ((TABLENS,'parse-sql-statement'), None): cnv_boolean,
- ((TABLENS,'password'), None): cnv_string,
- ((TABLENS,'position'), None): cnv_integer,
- ((TABLENS,'precision-as-shown'), None): cnv_boolean,
- ((TABLENS,'print'), None): cnv_boolean,
- ((TABLENS,'print-ranges'), None): cnv_string,
- ((TABLENS,'protect'), None): cnv_boolean,
- ((TABLENS,'protected'), None): cnv_boolean,
- ((TABLENS,'protection-key'), None): cnv_string,
- ((TABLENS,'query-name'), None): cnv_string,
- ((TABLENS,'range-usable-as'), None): cnv_string,
- ((TABLENS,'refresh-delay'), None): cnv_boolean,
- ((TABLENS,'refresh-delay'), None): cnv_duration,
- ((TABLENS,'rejecting-change-id'), None): cnv_string,
- ((TABLENS,'row'), None): cnv_integer,
- ((TABLENS,'scenario-ranges'), None): cnv_string,
- ((TABLENS,'search-criteria-must-apply-to-whole-cell'), None): cnv_boolean,
- ((TABLENS,'selected-page'), None): cnv_string,
- ((TABLENS,'show-details'), None): cnv_boolean,
- ((TABLENS,'show-empty'), None): cnv_boolean,
- ((TABLENS,'show-empty'), None): cnv_string,
- ((TABLENS,'show-filter-button'), None): cnv_boolean,
- ((TABLENS,'sort-mode'), None): cnv_string,
- ((TABLENS,'source-cell-range-addresses'), None): cnv_string,
- ((TABLENS,'source-cell-range-addresses'), None): cnv_string,
- ((TABLENS,'source-field-name'), None): cnv_string,
- ((TABLENS,'source-field-name'), None): cnv_string,
- ((TABLENS,'source-name'), None): cnv_string,
- ((TABLENS,'sql-statement'), None): cnv_string,
- ((TABLENS,'start'), None): cnv_string,
- ((TABLENS,'start-column'), None): cnv_integer,
- ((TABLENS,'start-position'), None): cnv_integer,
- ((TABLENS,'start-row'), None): cnv_integer,
- ((TABLENS,'start-table'), None): cnv_integer,
- ((TABLENS,'status'), None): cnv_string,
- ((TABLENS,'step'), None): cnv_double,
- ((TABLENS,'steps'), None): cnv_positiveInteger,
- ((TABLENS,'structure-protected'), None): cnv_boolean,
- ((TABLENS,'style-name'), None): cnv_StyleNameRef,
- ((TABLENS,'table-background'), None): cnv_boolean,
- ((TABLENS,'table'), None): cnv_integer,
- ((TABLENS,'table-name'), None): cnv_string,
- ((TABLENS,'target-cell-address'), None): cnv_string,
- ((TABLENS,'target-cell-address'), None): cnv_string,
- ((TABLENS,'target-range-address'), None): cnv_string,
- ((TABLENS,'target-range-address'), None): cnv_string,
- ((TABLENS,'title'), None): cnv_string,
- ((TABLENS,'track-changes'), None): cnv_boolean,
- ((TABLENS,'type'), None): cnv_string,
- ((TABLENS,'use-labels'), None): cnv_string,
- ((TABLENS,'use-regular-expressions'), None): cnv_boolean,
- ((TABLENS,'used-hierarchy'), None): cnv_integer,
- ((TABLENS,'user-name'), None): cnv_string,
- ((TABLENS,'value'), None): cnv_string,
- ((TABLENS,'value'), None): cnv_string,
- ((TABLENS,'value-type'), None): cnv_string,
- ((TABLENS,'visibility'), None): cnv_string,
- ((TEXTNS,'active'), None): cnv_boolean,
- ((TEXTNS,'address'), None): cnv_string,
- ((TEXTNS,'alphabetical-separators'), None): cnv_boolean,
- ((TEXTNS,'anchor-page-number'), None): cnv_positiveInteger,
- ((TEXTNS,'anchor-type'), None): cnv_string,
- ((TEXTNS,'animation'), None): cnv_string,
- ((TEXTNS,'animation-delay'), None): cnv_string,
- ((TEXTNS,'animation-direction'), None): cnv_string,
- ((TEXTNS,'animation-repeat'), None): cnv_string,
- ((TEXTNS,'animation-start-inside'), None): cnv_boolean,
- ((TEXTNS,'animation-steps'), None): cnv_length,
- ((TEXTNS,'animation-stop-inside'), None): cnv_boolean,
- ((TEXTNS,'annote'), None): cnv_string,
- ((TEXTNS,'author'), None): cnv_string,
- ((TEXTNS,'bibliography-data-field'), None): cnv_string,
- ((TEXTNS,'bibliography-type'), None): cnv_string,
- ((TEXTNS,'booktitle'), None): cnv_string,
- ((TEXTNS,'bullet-char'), None): cnv_string,
- ((TEXTNS,'bullet-relative-size'), None): cnv_string,
- ((TEXTNS,'c'), None): cnv_nonNegativeInteger,
- ((TEXTNS,'capitalize-entries'), None): cnv_boolean,
- ((TEXTNS,'caption-sequence-format'), None): cnv_string,
- ((TEXTNS,'caption-sequence-name'), None): cnv_string,
- ((TEXTNS,'change-id'), None): cnv_IDREF,
- ((TEXTNS,'chapter'), None): cnv_string,
- ((TEXTNS,'citation-body-style-name'), None): cnv_StyleNameRef,
- ((TEXTNS,'citation-style-name'), None): cnv_StyleNameRef,
- ((TEXTNS,'class-names'), None): cnv_NCNames,
- ((TEXTNS,'column-name'), None): cnv_string,
- ((TEXTNS,'combine-entries'), None): cnv_boolean,
- ((TEXTNS,'combine-entries-with-dash'), None): cnv_boolean,
- ((TEXTNS,'combine-entries-with-pp'), None): cnv_boolean,
- ((TEXTNS,'comma-separated'), None): cnv_boolean,
- ((TEXTNS,'cond-style-name'), None): cnv_StyleNameRef,
- ((TEXTNS,'condition'), None): cnv_formula,
- ((TEXTNS,'connection-name'), None): cnv_string,
- ((TEXTNS,'consecutive-numbering'), None): cnv_boolean,
- ((TEXTNS,'continue-numbering'), None): cnv_boolean,
- ((TEXTNS,'copy-outline-levels'), None): cnv_boolean,
- ((TEXTNS,'count-empty-lines'), None): cnv_boolean,
- ((TEXTNS,'count-in-text-boxes'), None): cnv_boolean,
- ((TEXTNS,'current-value'), None): cnv_boolean,
- ((TEXTNS,'custom1'), None): cnv_string,
- ((TEXTNS,'custom2'), None): cnv_string,
- ((TEXTNS,'custom3'), None): cnv_string,
- ((TEXTNS,'custom4'), None): cnv_string,
- ((TEXTNS,'custom5'), None): cnv_string,
- ((TEXTNS,'database-name'), None): cnv_string,
- ((TEXTNS,'date-adjust'), None): cnv_duration,
- ((TEXTNS,'date-value'), None): cnv_date,
-# ((TEXTNS,u'date-value'), None): cnv_dateTime,
- ((TEXTNS,'default-style-name'), None): cnv_StyleNameRef,
- ((TEXTNS,'description'), None): cnv_string,
- ((TEXTNS,'display'), None): cnv_string,
- ((TEXTNS,'display-levels'), None): cnv_positiveInteger,
- ((TEXTNS,'display-outline-level'), None): cnv_nonNegativeInteger,
- ((TEXTNS,'dont-balance-text-columns'), None): cnv_boolean,
- ((TEXTNS,'duration'), None): cnv_duration,
- ((TEXTNS,'edition'), None): cnv_string,
- ((TEXTNS,'editor'), None): cnv_string,
- ((TEXTNS,'filter-name'), None): cnv_string,
- ((TEXTNS,'first-row-end-column'), None): cnv_string,
- ((TEXTNS,'first-row-start-column'), None): cnv_string,
- ((TEXTNS,'fixed'), None): cnv_boolean,
- ((TEXTNS,'footnotes-position'), None): cnv_string,
- ((TEXTNS,'formula'), None): cnv_formula,
- ((TEXTNS,'global'), None): cnv_boolean,
- ((TEXTNS,'howpublished'), None): cnv_string,
- ((TEXTNS,'id'), None): cnv_ID,
-# ((TEXTNS,u'id'), None): cnv_string,
- ((TEXTNS,'identifier'), None): cnv_string,
- ((TEXTNS,'ignore-case'), None): cnv_boolean,
- ((TEXTNS,'increment'), None): cnv_nonNegativeInteger,
- ((TEXTNS,'index-name'), None): cnv_string,
- ((TEXTNS,'index-scope'), None): cnv_string,
- ((TEXTNS,'institution'), None): cnv_string,
- ((TEXTNS,'is-hidden'), None): cnv_boolean,
- ((TEXTNS,'is-list-header'), None): cnv_boolean,
- ((TEXTNS,'isbn'), None): cnv_string,
- ((TEXTNS,'issn'), None): cnv_string,
- ((TEXTNS,'issn'), None): cnv_string,
- ((TEXTNS,'journal'), None): cnv_string,
- ((TEXTNS,'key'), None): cnv_string,
- ((TEXTNS,'key1'), None): cnv_string,
- ((TEXTNS,'key1-phonetic'), None): cnv_string,
- ((TEXTNS,'key2'), None): cnv_string,
- ((TEXTNS,'key2-phonetic'), None): cnv_string,
- ((TEXTNS,'kind'), None): cnv_string,
- ((TEXTNS,'label'), None): cnv_string,
- ((TEXTNS,'last-row-end-column'), None): cnv_string,
- ((TEXTNS,'last-row-start-column'), None): cnv_string,
- ((TEXTNS,'level'), None): cnv_positiveInteger,
- ((TEXTNS,'line-break'), None): cnv_boolean,
- ((TEXTNS,'line-number'), None): cnv_string,
- ((TEXTNS,'main-entry'), None): cnv_boolean,
- ((TEXTNS,'main-entry-style-name'), None): cnv_StyleNameRef,
- ((TEXTNS,'master-page-name'), None): cnv_StyleNameRef,
- ((TEXTNS,'min-label-distance'), None): cnv_string,
- ((TEXTNS,'min-label-width'), None): cnv_string,
- ((TEXTNS,'month'), None): cnv_string,
- ((TEXTNS,'name'), None): cnv_string,
- ((TEXTNS,'note-class'), None): cnv_textnoteclass,
- ((TEXTNS,'note'), None): cnv_string,
- ((TEXTNS,'number'), None): cnv_string,
- ((TEXTNS,'number-lines'), None): cnv_boolean,
- ((TEXTNS,'number-position'), None): cnv_string,
- ((TEXTNS,'numbered-entries'), None): cnv_boolean,
- ((TEXTNS,'offset'), None): cnv_string,
- ((TEXTNS,'organizations'), None): cnv_string,
- ((TEXTNS,'outline-level'), None): cnv_string,
- ((TEXTNS,'page-adjust'), None): cnv_integer,
- ((TEXTNS,'pages'), None): cnv_string,
- ((TEXTNS,'paragraph-style-name'), None): cnv_StyleNameRef,
- ((TEXTNS,'placeholder-type'), None): cnv_string,
- ((TEXTNS,'prefix'), None): cnv_string,
- ((TEXTNS,'protected'), None): cnv_boolean,
- ((TEXTNS,'protection-key'), None): cnv_string,
- ((TEXTNS,'publisher'), None): cnv_string,
- ((TEXTNS,'ref-name'), None): cnv_string,
- ((TEXTNS,'reference-format'), None): cnv_string,
- ((TEXTNS,'relative-tab-stop-position'), None): cnv_boolean,
- ((TEXTNS,'report-type'), None): cnv_string,
- ((TEXTNS,'restart-numbering'), None): cnv_boolean,
- ((TEXTNS,'restart-on-page'), None): cnv_boolean,
- ((TEXTNS,'row-number'), None): cnv_nonNegativeInteger,
- ((TEXTNS,'school'), None): cnv_string,
- ((TEXTNS,'section-name'), None): cnv_string,
- ((TEXTNS,'select-page'), None): cnv_string,
- ((TEXTNS,'separation-character'), None): cnv_string,
- ((TEXTNS,'series'), None): cnv_string,
- ((TEXTNS,'sort-algorithm'), None): cnv_string,
- ((TEXTNS,'sort-ascending'), None): cnv_boolean,
- ((TEXTNS,'sort-by-position'), None): cnv_boolean,
- ((TEXTNS,'space-before'), None): cnv_string,
- ((TEXTNS,'start-numbering-at'), None): cnv_string,
- ((TEXTNS,'start-value'), None): cnv_nonNegativeInteger,
- ((TEXTNS,'start-value'), None): cnv_positiveInteger,
- ((TEXTNS,'string-value'), None): cnv_string,
- ((TEXTNS,'string-value-if-false'), None): cnv_string,
- ((TEXTNS,'string-value-if-true'), None): cnv_string,
- ((TEXTNS,'string-value-phonetic'), None): cnv_string,
- ((TEXTNS,'style-name'), None): cnv_StyleNameRef,
- ((TEXTNS,'suffix'), None): cnv_string,
- ((TEXTNS,'tab-ref'), None): cnv_nonNegativeInteger,
- ((TEXTNS,'table-name'), None): cnv_string,
- ((TEXTNS,'table-type'), None): cnv_string,
- ((TEXTNS,'time-adjust'), None): cnv_duration,
- ((TEXTNS,'time-value'), None): cnv_dateTime,
- ((TEXTNS,'time-value'), None): cnv_time,
- ((TEXTNS,'title'), None): cnv_string,
- ((TEXTNS,'track-changes'), None): cnv_boolean,
- ((TEXTNS,'url'), None): cnv_string,
- ((TEXTNS,'use-caption'), None): cnv_boolean,
- ((TEXTNS,'use-chart-objects'), None): cnv_boolean,
- ((TEXTNS,'use-draw-objects'), None): cnv_boolean,
- ((TEXTNS,'use-floating-frames'), None): cnv_boolean,
- ((TEXTNS,'use-graphics'), None): cnv_boolean,
- ((TEXTNS,'use-index-marks'), None): cnv_boolean,
- ((TEXTNS,'use-index-source-styles'), None): cnv_boolean,
- ((TEXTNS,'use-keys-as-entries'), None): cnv_boolean,
- ((TEXTNS,'use-math-objects'), None): cnv_boolean,
- ((TEXTNS,'use-objects'), None): cnv_boolean,
- ((TEXTNS,'use-other-objects'), None): cnv_boolean,
- ((TEXTNS,'use-outline-level'), None): cnv_boolean,
- ((TEXTNS,'use-soft-page-breaks'), None): cnv_boolean,
- ((TEXTNS,'use-spreadsheet-objects'), None): cnv_boolean,
- ((TEXTNS,'use-tables'), None): cnv_boolean,
- ((TEXTNS,'value'), None): cnv_nonNegativeInteger,
- ((TEXTNS,'visited-style-name'), None): cnv_StyleNameRef,
- ((TEXTNS,'volume'), None): cnv_string,
- ((TEXTNS,'year'), None): cnv_string,
- ((XFORMSNS,'bind'), None): cnv_string,
- ((XLINKNS,'actuate'), None): cnv_string,
- ((XLINKNS,'href'), None): cnv_anyURI,
- ((XLINKNS,'show'), None): cnv_xlinkshow,
- ((XLINKNS,'title'), None): cnv_string,
- ((XLINKNS,'type'), None): cnv_string,
-}
-
-class AttrConverters:
- def convert(self, attribute, value, element):
- """ Based on the element, figures out how to check/convert the attribute value
- All values are converted to string
- """
- conversion = attrconverters.get((attribute, element.qname), None)
- if conversion is not None:
- return conversion(attribute, value, element)
- else:
- conversion = attrconverters.get((attribute, None), None)
- if conversion is not None:
- return conversion(attribute, value, element)
- return str(value)
-
diff --git a/tablib/packages/odf3/chart.py b/tablib/packages/odf3/chart.py
deleted file mode 100644
index a05e7e6..0000000
--- a/tablib/packages/odf3/chart.py
+++ /dev/null
@@ -1,87 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import CHARTNS
-from .element import Element
-
-# Autogenerated
-def Axis(**args):
- return Element(qname = (CHARTNS,'axis'), **args)
-
-def Categories(**args):
- return Element(qname = (CHARTNS,'categories'), **args)
-
-def Chart(**args):
- return Element(qname = (CHARTNS,'chart'), **args)
-
-def DataPoint(**args):
- return Element(qname = (CHARTNS,'data-point'), **args)
-
-def Domain(**args):
- return Element(qname = (CHARTNS,'domain'), **args)
-
-def ErrorIndicator(**args):
- return Element(qname = (CHARTNS,'error-indicator'), **args)
-
-def Floor(**args):
- return Element(qname = (CHARTNS,'floor'), **args)
-
-def Footer(**args):
- return Element(qname = (CHARTNS,'footer'), **args)
-
-def Grid(**args):
- return Element(qname = (CHARTNS,'grid'), **args)
-
-def Legend(**args):
- return Element(qname = (CHARTNS,'legend'), **args)
-
-def MeanValue(**args):
- return Element(qname = (CHARTNS,'mean-value'), **args)
-
-def PlotArea(**args):
- return Element(qname = (CHARTNS,'plot-area'), **args)
-
-def RegressionCurve(**args):
- return Element(qname = (CHARTNS,'regression-curve'), **args)
-
-def Series(**args):
- return Element(qname = (CHARTNS,'series'), **args)
-
-def StockGainMarker(**args):
- return Element(qname = (CHARTNS,'stock-gain-marker'), **args)
-
-def StockLossMarker(**args):
- return Element(qname = (CHARTNS,'stock-loss-marker'), **args)
-
-def StockRangeLine(**args):
- return Element(qname = (CHARTNS,'stock-range-line'), **args)
-
-def Subtitle(**args):
- return Element(qname = (CHARTNS,'subtitle'), **args)
-
-def SymbolImage(**args):
- return Element(qname = (CHARTNS,'symbol-image'), **args)
-
-def Title(**args):
- return Element(qname = (CHARTNS,'title'), **args)
-
-def Wall(**args):
- return Element(qname = (CHARTNS,'wall'), **args)
-
diff --git a/tablib/packages/odf3/config.py b/tablib/packages/odf3/config.py
deleted file mode 100644
index d73c530..0000000
--- a/tablib/packages/odf3/config.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import CONFIGNS
-from .element import Element
-
-# Autogenerated
-def ConfigItem(**args):
- return Element(qname = (CONFIGNS, 'config-item'), **args)
-
-def ConfigItemMapEntry(**args):
- return Element(qname = (CONFIGNS,'config-item-map-entry'), **args)
-
-def ConfigItemMapIndexed(**args):
- return Element(qname = (CONFIGNS,'config-item-map-indexed'), **args)
-
-def ConfigItemMapNamed(**args):
- return Element(qname = (CONFIGNS,'config-item-map-named'), **args)
-
-def ConfigItemSet(**args):
- return Element(qname = (CONFIGNS, 'config-item-set'), **args)
-
diff --git a/tablib/packages/odf3/dc.py b/tablib/packages/odf3/dc.py
deleted file mode 100644
index 387e6db..0000000
--- a/tablib/packages/odf3/dc.py
+++ /dev/null
@@ -1,72 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import DCNS
-from .element import Element
-
-# Autogenerated
-def Creator(**args):
- return Element(qname = (DCNS,'creator'), **args)
-
-def Date(**args):
- return Element(qname = (DCNS,'date'), **args)
-
-def Description(**args):
- return Element(qname = (DCNS,'description'), **args)
-
-def Language(**args):
- return Element(qname = (DCNS,'language'), **args)
-
-def Subject(**args):
- return Element(qname = (DCNS,'subject'), **args)
-
-def Title(**args):
- return Element(qname = (DCNS,'title'), **args)
-
-# The following complete the Dublin Core elements, but there is no
-# guarantee a compliant implementation of OpenDocument will preserve
-# these elements
-
-#def Contributor(**args):
-# return Element(qname = (DCNS,'contributor'), **args)
-
-#def Coverage(**args):
-# return Element(qname = (DCNS,'coverage'), **args)
-
-#def Format(**args):
-# return Element(qname = (DCNS,'format'), **args)
-
-#def Identifier(**args):
-# return Element(qname = (DCNS,'identifier'), **args)
-
-#def Publisher(**args):
-# return Element(qname = (DCNS,'publisher'), **args)
-
-#def Relation(**args):
-# return Element(qname = (DCNS,'relation'), **args)
-
-#def Rights(**args):
-# return Element(qname = (DCNS,'rights'), **args)
-
-#def Source(**args):
-# return Element(qname = (DCNS,'source'), **args)
-
-#def Type(**args):
-# return Element(qname = (DCNS,'type'), **args)
diff --git a/tablib/packages/odf3/dr3d.py b/tablib/packages/odf3/dr3d.py
deleted file mode 100644
index 003c791..0000000
--- a/tablib/packages/odf3/dr3d.py
+++ /dev/null
@@ -1,43 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import DR3DNS
-from .element import Element
-from .draw import StyleRefElement
-
-# Autogenerated
-def Cube(**args):
- return StyleRefElement(qname = (DR3DNS,'cube'), **args)
-
-def Extrude(**args):
- return StyleRefElement(qname = (DR3DNS,'extrude'), **args)
-
-def Light(Element):
- return StyleRefElement(qname = (DR3DNS,'light'), **args)
-
-def Rotate(**args):
- return StyleRefElement(qname = (DR3DNS,'rotate'), **args)
-
-def Scene(**args):
- return StyleRefElement(qname = (DR3DNS,'scene'), **args)
-
-def Sphere(**args):
- return StyleRefElement(qname = (DR3DNS,'sphere'), **args)
-
diff --git a/tablib/packages/odf3/draw.py b/tablib/packages/odf3/draw.py
deleted file mode 100644
index 6cc112e..0000000
--- a/tablib/packages/odf3/draw.py
+++ /dev/null
@@ -1,182 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import DRAWNS, STYLENS, PRESENTATIONNS
-from .element import Element
-
-def StyleRefElement(stylename=None, classnames=None, **args):
- qattrs = {}
- if stylename is not None:
- f = stylename.getAttrNS(STYLENS, 'family')
- if f == 'graphic':
- qattrs[(DRAWNS,'style-name')]= stylename
- elif f == 'presentation':
- qattrs[(PRESENTATIONNS,'style-name')]= stylename
- else:
- raise ValueError("Style's family must be either 'graphic' or 'presentation'")
- if classnames is not None:
- f = classnames[0].getAttrNS(STYLENS, 'family')
- if f == 'graphic':
- qattrs[(DRAWNS,'class-names')]= classnames
- elif f == 'presentation':
- qattrs[(PRESENTATIONNS,'class-names')]= classnames
- else:
- raise ValueError("Style's family must be either 'graphic' or 'presentation'")
- return Element(qattributes=qattrs, **args)
-
-def DrawElement(name=None, **args):
- e = Element(name=name, **args)
- if 'displayname' not in args:
- e.setAttrNS(DRAWNS,'display-name', name)
- return e
-
-# Autogenerated
-def A(**args):
- return Element(qname = (DRAWNS,'a'), **args)
-
-def Applet(**args):
- return Element(qname = (DRAWNS,'applet'), **args)
-
-def AreaCircle(**args):
- return Element(qname = (DRAWNS,'area-circle'), **args)
-
-def AreaPolygon(**args):
- return Element(qname = (DRAWNS,'area-polygon'), **args)
-
-def AreaRectangle(**args):
- return Element(qname = (DRAWNS,'area-rectangle'), **args)
-
-def Caption(**args):
- return StyleRefElement(qname = (DRAWNS,'caption'), **args)
-
-def Circle(**args):
- return StyleRefElement(qname = (DRAWNS,'circle'), **args)
-
-def Connector(**args):
- return StyleRefElement(qname = (DRAWNS,'connector'), **args)
-
-def ContourPath(**args):
- return Element(qname = (DRAWNS,'contour-path'), **args)
-
-def ContourPolygon(**args):
- return Element(qname = (DRAWNS,'contour-polygon'), **args)
-
-def Control(**args):
- return StyleRefElement(qname = (DRAWNS,'control'), **args)
-
-def CustomShape(**args):
- return StyleRefElement(qname = (DRAWNS,'custom-shape'), **args)
-
-def Ellipse(**args):
- return StyleRefElement(qname = (DRAWNS,'ellipse'), **args)
-
-def EnhancedGeometry(**args):
- return Element(qname = (DRAWNS,'enhanced-geometry'), **args)
-
-def Equation(**args):
- return Element(qname = (DRAWNS,'equation'), **args)
-
-def FillImage(**args):
- return DrawElement(qname = (DRAWNS,'fill-image'), **args)
-
-def FloatingFrame(**args):
- return Element(qname = (DRAWNS,'floating-frame'), **args)
-
-def Frame(**args):
- return StyleRefElement(qname = (DRAWNS,'frame'), **args)
-
-def G(**args):
- return StyleRefElement(qname = (DRAWNS,'g'), **args)
-
-def GluePoint(**args):
- return Element(qname = (DRAWNS,'glue-point'), **args)
-
-def Gradient(**args):
- return DrawElement(qname = (DRAWNS,'gradient'), **args)
-
-def Handle(**args):
- return Element(qname = (DRAWNS,'handle'), **args)
-
-def Hatch(**args):
- return DrawElement(qname = (DRAWNS,'hatch'), **args)
-
-def Image(**args):
- return Element(qname = (DRAWNS,'image'), **args)
-
-def ImageMap(**args):
- return Element(qname = (DRAWNS,'image-map'), **args)
-
-def Layer(**args):
- return Element(qname = (DRAWNS,'layer'), **args)
-
-def LayerSet(**args):
- return Element(qname = (DRAWNS,'layer-set'), **args)
-
-def Line(**args):
- return StyleRefElement(qname = (DRAWNS,'line'), **args)
-
-def Marker(**args):
- return DrawElement(qname = (DRAWNS,'marker'), **args)
-
-def Measure(**args):
- return StyleRefElement(qname = (DRAWNS,'measure'), **args)
-
-def Object(**args):
- return Element(qname = (DRAWNS,'object'), **args)
-
-def ObjectOle(**args):
- return Element(qname = (DRAWNS,'object-ole'), **args)
-
-def Opacity(**args):
- return DrawElement(qname = (DRAWNS,'opacity'), **args)
-
-def Page(**args):
- return Element(qname = (DRAWNS,'page'), **args)
-
-def PageThumbnail(**args):
- return StyleRefElement(qname = (DRAWNS,'page-thumbnail'), **args)
-
-def Param(**args):
- return Element(qname = (DRAWNS,'param'), **args)
-
-def Path(**args):
- return StyleRefElement(qname = (DRAWNS,'path'), **args)
-
-def Plugin(**args):
- return Element(qname = (DRAWNS,'plugin'), **args)
-
-def Polygon(**args):
- return StyleRefElement(qname = (DRAWNS,'polygon'), **args)
-
-def Polyline(**args):
- return StyleRefElement(qname = (DRAWNS,'polyline'), **args)
-
-def Rect(**args):
- return StyleRefElement(qname = (DRAWNS,'rect'), **args)
-
-def RegularPolygon(**args):
- return StyleRefElement(qname = (DRAWNS,'regular-polygon'), **args)
-
-def StrokeDash(**args):
- return DrawElement(qname = (DRAWNS,'stroke-dash'), **args)
-
-def TextBox(**args):
- return Element(qname = (DRAWNS,'text-box'), **args)
-
diff --git a/tablib/packages/odf3/easyliststyle.py b/tablib/packages/odf3/easyliststyle.py
deleted file mode 100644
index d676588..0000000
--- a/tablib/packages/odf3/easyliststyle.py
+++ /dev/null
@@ -1,103 +0,0 @@
-# -*- coding: utf-8 -*-
-# Create a <text:list-style> element from a text string.
-# Copyright (C) 2008 J. David Eisenberg
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Contributor(s):
-#
-
-import re
-from .style import Style, TextProperties, ListLevelProperties
-from .text import ListStyle,ListLevelStyleNumber,ListLevelStyleBullet
-
-"""
-Create a <text:list-style> element from a string or array.
-
-List styles require a lot of code to create one level at a time.
-These routines take a string and delimiter, or a list of
-strings, and creates a <text:list-style> element for you.
-Each item in the string (or array) represents a list level
- * style for levels 1-10.</p>
- *
- * <p>If an item contains <code>1</code>, <code>I</code>,
- * <code>i</code>, <code>A</code>, or <code>a</code>, then it is presumed
- * to be a numbering style; otherwise it is a bulleted style.</p>
-"""
-
-_MAX_LIST_LEVEL = 10
-SHOW_ALL_LEVELS = True
-SHOW_ONE_LEVEL = False
-
-def styleFromString(name, specifiers, delim, spacing, showAllLevels):
- specArray = specifiers.split(delim)
- return styleFromList( name, specArray, spacing, showAllLevels )
-
-def styleFromList( styleName, specArray, spacing, showAllLevels):
- bullet = ""
- numPrefix = ""
- numSuffix = ""
- numberFormat = ""
- cssLengthNum = 0
- cssLengthUnits = ""
- numbered = False
- displayLevels = 0
- listStyle = ListStyle(name=styleName)
- numFormatPattern = re.compile("([1IiAa])")
- cssLengthPattern = re.compile("([^a-z]+)\\s*([a-z]+)?")
- m = cssLengthPattern.search( spacing )
- if (m != None):
- cssLengthNum = float(m.group(1))
- if (m.lastindex == 2):
- cssLengthUnits = m.group(2)
- i = 0
- while i < len(specArray):
- specification = specArray[i]
- m = numFormatPattern.search(specification)
- if (m != None):
- numberFormat = m.group(1)
- numPrefix = specification[0:m.start(1)]
- numSuffix = specification[m.end(1):]
- bullet = ""
- numbered = True
- if (showAllLevels):
- displayLevels = i + 1
- else:
- displayLevels = 1
- else: # it's a bullet style
- bullet = specification
- numPrefix = ""
- numSuffix = ""
- numberFormat = ""
- displayLevels = 1
- numbered = False
- if (numbered):
- lls = ListLevelStyleNumber(level=(i+1))
- if (numPrefix != ''):
- lls.setAttribute('numprefix', numPrefix)
- if (numSuffix != ''):
- lls.setAttribute('numsuffix', numSuffix)
- lls.setAttribute('displaylevels', displayLevels)
- else:
- lls = ListLevelStyleBullet(level=(i+1),bulletchar=bullet[0])
- llp = ListLevelProperties()
- llp.setAttribute('spacebefore', str(cssLengthNum * (i+1)) + cssLengthUnits)
- llp.setAttribute('minlabelwidth', str(cssLengthNum) + cssLengthUnits)
- lls.addElement( llp )
- listStyle.addElement(lls)
- i += 1
- return listStyle
-
-# vim: set expandtab sw=4 :
diff --git a/tablib/packages/odf3/element.py b/tablib/packages/odf3/element.py
deleted file mode 100644
index ed17278..0000000
--- a/tablib/packages/odf3/element.py
+++ /dev/null
@@ -1,519 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2010 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-# Note: This script has copied a lot of text from xml.dom.minidom.
-# Whatever license applies to that file also applies to this file.
-#
-import xml.dom
-from xml.dom.minicompat import *
-from .namespaces import nsdict
-from . import grammar
-from .attrconverters import AttrConverters
-
-# The following code is pasted form xml.sax.saxutils
-# Tt makes it possible to run the code without the xml sax package installed
-# To make it possible to have <rubbish> in your text elements, it is necessary to escape the texts
-def _escape(data, entities={}):
- """ Escape &, <, and > in a string of data.
-
- You can escape other strings of data by passing a dictionary as
- the optional entities parameter. The keys and values must all be
- strings; each key will be replaced with its corresponding value.
- """
- try:
- data = data.decode('utf-8')
- except (TypeError, AttributeError):
- ## Make sure our stream is a string
- ## If it comes through as bytes it fails
- pass
- data = data.replace("&", "&amp;")
- data = data.replace("<", "&lt;")
- data = data.replace(">", "&gt;")
- for chars, entity in list(entities.items()):
- data = data.replace(chars, entity)
- return data
-
-def _quoteattr(data, entities={}):
- """ Escape and quote an attribute value.
-
- Escape &, <, and > in a string of data, then quote it for use as
- an attribute value. The \" character will be escaped as well, if
- necessary.
-
- You can escape other strings of data by passing a dictionary as
- the optional entities parameter. The keys and values must all be
- strings; each key will be replaced with its corresponding value.
- """
- entities['\n']='&#10;'
- entities['\r']='&#12;'
- data = _escape(data, entities)
- if '"' in data:
- if "'" in data:
- data = '"%s"' % data.replace('"', "&quot;")
- else:
- data = "'%s'" % data
- else:
- data = '"%s"' % data
- return data
-
-def _nssplit(qualifiedName):
- """ Split a qualified name into namespace part and local part. """
- fields = qualifiedName.split(':', 1)
- if len(fields) == 2:
- return fields
- else:
- return (None, fields[0])
-
-def _nsassign(namespace):
- return nsdict.setdefault(namespace,"ns" + str(len(nsdict)))
-
-# Exceptions
-class IllegalChild(Exception):
- """ Complains if you add an element to a parent where it is not allowed """
-class IllegalText(Exception):
- """ Complains if you add text or cdata to an element where it is not allowed """
-
-class Node(xml.dom.Node):
- """ super class for more specific nodes """
- parentNode = None
- nextSibling = None
- previousSibling = None
-
- def hasChildNodes(self):
- """ Tells whether this element has any children; text nodes,
- subelements, whatever.
- """
- if self.childNodes:
- return True
- else:
- return False
-
- def _get_childNodes(self):
- return self.childNodes
-
- def _get_firstChild(self):
- if self.childNodes:
- return self.childNodes[0]
-
- def _get_lastChild(self):
- if self.childNodes:
- return self.childNodes[-1]
-
- def insertBefore(self, newChild, refChild):
- """ Inserts the node newChild before the existing child node refChild.
- If refChild is null, insert newChild at the end of the list of children.
- """
- if newChild.nodeType not in self._child_node_types:
- raise IllegalChild("%s cannot be child of %s" % (newChild.tagName, self.tagName))
- if newChild.parentNode is not None:
- newChild.parentNode.removeChild(newChild)
- if refChild is None:
- self.appendChild(newChild)
- else:
- try:
- index = self.childNodes.index(refChild)
- except ValueError:
- raise xml.dom.NotFoundErr()
- self.childNodes.insert(index, newChild)
- newChild.nextSibling = refChild
- refChild.previousSibling = newChild
- if index:
- node = self.childNodes[index-1]
- node.nextSibling = newChild
- newChild.previousSibling = node
- else:
- newChild.previousSibling = None
- newChild.parentNode = self
- return newChild
-
- def appendChild(self, newChild):
- """ Adds the node newChild to the end of the list of children of this node.
- If the newChild is already in the tree, it is first removed.
- """
- if newChild.nodeType == self.DOCUMENT_FRAGMENT_NODE:
- for c in tuple(newChild.childNodes):
- self.appendChild(c)
- ### The DOM does not clearly specify what to return in this case
- return newChild
- if newChild.nodeType not in self._child_node_types:
- raise IllegalChild("<%s> is not allowed in %s" % ( newChild.tagName, self.tagName))
- if newChild.parentNode is not None:
- newChild.parentNode.removeChild(newChild)
- _append_child(self, newChild)
- newChild.nextSibling = None
- return newChild
-
- def removeChild(self, oldChild):
- """ Removes the child node indicated by oldChild from the list of children, and returns it.
- """
- #FIXME: update ownerDocument.element_dict or find other solution
- try:
- self.childNodes.remove(oldChild)
- except ValueError:
- raise xml.dom.NotFoundErr()
- if oldChild.nextSibling is not None:
- oldChild.nextSibling.previousSibling = oldChild.previousSibling
- if oldChild.previousSibling is not None:
- oldChild.previousSibling.nextSibling = oldChild.nextSibling
- oldChild.nextSibling = oldChild.previousSibling = None
- if self.ownerDocument:
- self.ownerDocument.clear_caches()
- oldChild.parentNode = None
- return oldChild
-
- def __str__(self):
- val = []
- for c in self.childNodes:
- val.append(str(c))
- return ''.join(val)
-
- def __unicode__(self):
- val = []
- for c in self.childNodes:
- val.append(str(c))
- return ''.join(val)
-
-defproperty(Node, "firstChild", doc="First child node, or None.")
-defproperty(Node, "lastChild", doc="Last child node, or None.")
-
-def _append_child(self, node):
- # fast path with less checks; usable by DOM builders if careful
- childNodes = self.childNodes
- if childNodes:
- last = childNodes[-1]
- node.__dict__["previousSibling"] = last
- last.__dict__["nextSibling"] = node
- childNodes.append(node)
- node.__dict__["parentNode"] = self
-
-class Childless(object):
- """ Mixin that makes childless-ness easy to implement and avoids
- the complexity of the Node methods that deal with children.
- """
-
- attributes = None
- childNodes = EmptyNodeList()
- firstChild = None
- lastChild = None
-
- def _get_firstChild(self):
- return None
-
- def _get_lastChild(self):
- return None
-
- def appendChild(self, node):
- """ Raises an error """
- raise xml.dom.HierarchyRequestErr(
- self.tagName + " nodes cannot have children")
-
- def hasChildNodes(self):
- return False
-
- def insertBefore(self, newChild, refChild):
- """ Raises an error """
- raise xml.dom.HierarchyRequestErr(
- self.tagName + " nodes do not have children")
-
- def removeChild(self, oldChild):
- """ Raises an error """
- raise xml.dom.NotFoundErr(
- self.tagName + " nodes do not have children")
-
- def replaceChild(self, newChild, oldChild):
- """ Raises an error """
- raise xml.dom.HierarchyRequestErr(
- self.tagName + " nodes do not have children")
-
-class Text(Childless, Node):
- nodeType = Node.TEXT_NODE
- tagName = "Text"
-
- def __init__(self, data):
- self.data = data
-
- def __str__(self):
- return self.data.encode()
-
- def __unicode__(self):
- return self.data
-
- def toXml(self,level,f):
- """ Write XML in UTF-8 """
- if self.data:
- f.write(_escape(str(self.data).encode('utf-8')))
-
-class CDATASection(Text, Childless):
- nodeType = Node.CDATA_SECTION_NODE
-
- def toXml(self,level,f):
- """ Generate XML output of the node. If the text contains "]]>", then
- escape it by going out of CDATA mode (]]>), then write the string
- and then go into CDATA mode again. (<![CDATA[)
- """
- if self.data:
- f.write('<![CDATA[%s]]>' % self.data.replace(']]>',']]>]]><![CDATA['))
-
-class Element(Node):
- """ Creates a arbitrary element and is intended to be subclassed not used on its own.
- This element is the base of every element it defines a class which resembles
- a xml-element. The main advantage of this kind of implementation is that you don't
- have to create a toXML method for every different object. Every element
- consists of an attribute, optional subelements, optional text and optional cdata.
- """
-
- nodeType = Node.ELEMENT_NODE
- namespaces = {} # Due to shallow copy this is a static variable
-
- _child_node_types = (Node.ELEMENT_NODE,
- Node.PROCESSING_INSTRUCTION_NODE,
- Node.COMMENT_NODE,
- Node.TEXT_NODE,
- Node.CDATA_SECTION_NODE,
- Node.ENTITY_REFERENCE_NODE)
-
- def __init__(self, attributes=None, text=None, cdata=None, qname=None, qattributes=None, check_grammar=True, **args):
- if qname is not None:
- self.qname = qname
- assert(hasattr(self, 'qname'))
- self.ownerDocument = None
- self.childNodes=[]
- self.allowed_children = grammar.allowed_children.get(self.qname)
- prefix = self.get_nsprefix(self.qname[0])
- self.tagName = prefix + ":" + self.qname[1]
- if text is not None:
- self.addText(text)
- if cdata is not None:
- self.addCDATA(cdata)
-
- allowed_attrs = self.allowed_attributes()
- if allowed_attrs is not None:
- allowed_args = [ a[1].lower().replace('-','') for a in allowed_attrs]
- self.attributes={}
- # Load the attributes from the 'attributes' argument
- if attributes:
- for attr, value in list(attributes.items()):
- self.setAttribute(attr, value)
- # Load the qualified attributes
- if qattributes:
- for attr, value in list(qattributes.items()):
- self.setAttrNS(attr[0], attr[1], value)
- if allowed_attrs is not None:
- # Load the attributes from the 'args' argument
- for arg in list(args.keys()):
- self.setAttribute(arg, args[arg])
- else:
- for arg in list(args.keys()): # If any attribute is allowed
- self.attributes[arg]=args[arg]
- if not check_grammar:
- return
- # Test that all mandatory attributes have been added.
- required = grammar.required_attributes.get(self.qname)
- if required:
- for r in required:
- if self.getAttrNS(r[0],r[1]) is None:
- raise AttributeError("Required attribute missing: %s in <%s>" % (r[1].lower().replace('-',''), self.tagName))
-
- def get_knownns(self, prefix):
- """ Odfpy maintains a list of known namespaces. In some cases a prefix is used, and
- we need to know which namespace it resolves to.
- """
- global nsdict
- for ns,p in list(nsdict.items()):
- if p == prefix: return ns
- return None
-
- def get_nsprefix(self, namespace):
- """ Odfpy maintains a list of known namespaces. In some cases we have a namespace URL,
- and needs to look up or assign the prefix for it.
- """
- if namespace is None: namespace = ""
- prefix = _nsassign(namespace)
- if namespace not in self.namespaces:
- self.namespaces[namespace] = prefix
- return prefix
-
- def allowed_attributes(self):
- return grammar.allowed_attributes.get(self.qname)
-
- def _setOwnerDoc(self, element):
- element.ownerDocument = self.ownerDocument
- for child in element.childNodes:
- self._setOwnerDoc(child)
-
- def addElement(self, element, check_grammar=True):
- """ adds an element to an Element
-
- Element.addElement(Element)
- """
- if check_grammar and self.allowed_children is not None:
- if element.qname not in self.allowed_children:
- raise IllegalChild("<%s> is not allowed in <%s>" % ( element.tagName, self.tagName))
- self.appendChild(element)
- self._setOwnerDoc(element)
- if self.ownerDocument:
- self.ownerDocument.rebuild_caches(element)
-
- def addText(self, text, check_grammar=True):
- """ Adds text to an element
- Setting check_grammar=False turns off grammar checking
- """
- if check_grammar and self.qname not in grammar.allows_text:
- raise IllegalText("The <%s> element does not allow text" % self.tagName)
- else:
- if text != '':
- self.appendChild(Text(text))
-
- def addCDATA(self, cdata, check_grammar=True):
- """ Adds CDATA to an element
- Setting check_grammar=False turns off grammar checking
- """
- if check_grammar and self.qname not in grammar.allows_text:
- raise IllegalText("The <%s> element does not allow text" % self.tagName)
- else:
- self.appendChild(CDATASection(cdata))
-
- def removeAttribute(self, attr, check_grammar=True):
- """ Removes an attribute by name. """
- allowed_attrs = self.allowed_attributes()
- if allowed_attrs is None:
- if type(attr) == type(()):
- prefix, localname = attr
- self.removeAttrNS(prefix, localname)
- else:
- raise AttributeError("Unable to add simple attribute - use (namespace, localpart)")
- else:
- # Construct a list of allowed arguments
- allowed_args = [ a[1].lower().replace('-','') for a in allowed_attrs]
- if check_grammar and attr not in allowed_args:
- raise AttributeError("Attribute %s is not allowed in <%s>" % ( attr, self.tagName))
- i = allowed_args.index(attr)
- self.removeAttrNS(allowed_attrs[i][0], allowed_attrs[i][1])
-
- def setAttribute(self, attr, value, check_grammar=True):
- """ Add an attribute to the element
- This is sort of a convenience method. All attributes in ODF have
- namespaces. The library knows what attributes are legal and then allows
- the user to provide the attribute as a keyword argument and the
- library will add the correct namespace.
- Must overwrite, If attribute already exists.
- """
- allowed_attrs = self.allowed_attributes()
- if allowed_attrs is None:
- if type(attr) == type(()):
- prefix, localname = attr
- self.setAttrNS(prefix, localname, value)
- else:
- raise AttributeError("Unable to add simple attribute - use (namespace, localpart)")
- else:
- # Construct a list of allowed arguments
- allowed_args = [ a[1].lower().replace('-','') for a in allowed_attrs]
- if check_grammar and attr not in allowed_args:
- raise AttributeError("Attribute %s is not allowed in <%s>" % ( attr, self.tagName))
- i = allowed_args.index(attr)
- self.setAttrNS(allowed_attrs[i][0], allowed_attrs[i][1], value)
-
- def setAttrNS(self, namespace, localpart, value):
- """ Add an attribute to the element
- In case you need to add an attribute the library doesn't know about
- then you must provide the full qualified name
- It will not check that the attribute is legal according to the schema.
- Must overwrite, If attribute already exists.
- """
- allowed_attrs = self.allowed_attributes()
- prefix = self.get_nsprefix(namespace)
-# if allowed_attrs and (namespace, localpart) not in allowed_attrs:
-# raise AttributeError, "Attribute %s:%s is not allowed in element <%s>" % ( prefix, localpart, self.tagName)
- c = AttrConverters()
- self.attributes[(namespace, localpart)] = c.convert((namespace, localpart), value, self)
-
- def getAttrNS(self, namespace, localpart):
- prefix = self.get_nsprefix(namespace)
- return self.attributes.get((namespace, localpart))
-
- def removeAttrNS(self, namespace, localpart):
- del self.attributes[(namespace, localpart)]
-
- def getAttribute(self, attr):
- """ Get an attribute value. The method knows which namespace the attribute is in
- """
- allowed_attrs = self.allowed_attributes()
- if allowed_attrs is None:
- if type(attr) == type(()):
- prefix, localname = attr
- return self.getAttrNS(prefix, localname)
- else:
- raise AttributeError("Unable to get simple attribute - use (namespace, localpart)")
- else:
- # Construct a list of allowed arguments
- allowed_args = [ a[1].lower().replace('-','') for a in allowed_attrs]
- i = allowed_args.index(attr)
- return self.getAttrNS(allowed_attrs[i][0], allowed_attrs[i][1])
-
- def write_open_tag(self, level, f):
- f.write('<'+self.tagName)
- if level == 0:
- for namespace, prefix in list(self.namespaces.items()):
- f.write(' xmlns:' + prefix + '="'+ _escape(str(namespace))+'"')
- for qname in list(self.attributes.keys()):
- prefix = self.get_nsprefix(qname[0])
- f.write(' '+_escape(str(prefix+':'+qname[1]))+'='+_quoteattr(str(self.attributes[qname]).encode('utf-8')))
- f.write('>')
-
- def write_close_tag(self, level, f):
- f.write('</'+self.tagName+'>')
-
- def toXml(self, level, f):
- """ Generate XML stream out of the tree structure """
- f.write('<'+self.tagName)
- if level == 0:
- for namespace, prefix in list(self.namespaces.items()):
- f.write(' xmlns:' + prefix + '="'+ _escape(str(namespace))+'"')
- for qname in list(self.attributes.keys()):
- prefix = self.get_nsprefix(qname[0])
- f.write(' '+_escape(str(prefix+':'+qname[1]))+'='+_quoteattr(str(self.attributes[qname]).encode('utf-8')))
- if self.childNodes:
- f.write('>')
- for element in self.childNodes:
- element.toXml(level+1,f)
- f.write('</'+self.tagName+'>')
- else:
- f.write('/>')
-
- def _getElementsByObj(self, obj, accumulator):
- if self.qname == obj.qname:
- accumulator.append(self)
- for e in self.childNodes:
- if e.nodeType == Node.ELEMENT_NODE:
- accumulator = e._getElementsByObj(obj, accumulator)
- return accumulator
-
- def getElementsByType(self, element):
- """ Gets elements based on the type, which is function from text.py, draw.py etc. """
- obj = element(check_grammar=False)
- return self._getElementsByObj(obj,[])
-
- def isInstanceOf(self, element):
- """ This is a check to see if the object is an instance of a type """
- obj = element(check_grammar=False)
- return self.qname == obj.qname
-
-
diff --git a/tablib/packages/odf3/elementtypes.py b/tablib/packages/odf3/elementtypes.py
deleted file mode 100644
index b9aa5e4..0000000
--- a/tablib/packages/odf3/elementtypes.py
+++ /dev/null
@@ -1,325 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2008 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import *
-
-# Inline element don't cause a box
-# They are analogous to the HTML elements SPAN, B, I etc.
-inline_elements = (
- (TEXTNS,'a'),
- (TEXTNS,'author-initials'),
- (TEXTNS,'author-name'),
- (TEXTNS,'bibliography-mark'),
- (TEXTNS,'bookmark-ref'),
- (TEXTNS,'chapter'),
- (TEXTNS,'character-count'),
- (TEXTNS,'conditional-text'),
- (TEXTNS,'creation-date'),
- (TEXTNS,'creation-time'),
- (TEXTNS,'creator'),
- (TEXTNS,'database-display'),
- (TEXTNS,'database-name'),
- (TEXTNS,'database-next'),
- (TEXTNS,'database-row-number'),
- (TEXTNS,'database-row-select'),
- (TEXTNS,'date'),
- (TEXTNS,'dde-connection'),
- (TEXTNS,'description'),
- (TEXTNS,'editing-cycles'),
- (TEXTNS,'editing-duration'),
- (TEXTNS,'execute-macro'),
- (TEXTNS,'expression'),
- (TEXTNS,'file-name'),
- (TEXTNS,'hidden-paragraph'),
- (TEXTNS,'hidden-text'),
- (TEXTNS,'image-count'),
- (TEXTNS,'initial-creator'),
- (TEXTNS,'keywords'),
- (TEXTNS,'measure'),
- (TEXTNS,'modification-date'),
- (TEXTNS,'modification-time'),
- (TEXTNS,'note-ref'),
- (TEXTNS,'object-count'),
- (TEXTNS,'page-continuation'),
- (TEXTNS,'page-count'),
- (TEXTNS,'page-number'),
- (TEXTNS,'page-variable-get'),
- (TEXTNS,'page-variable-set'),
- (TEXTNS,'paragraph-count'),
- (TEXTNS,'placeholder'),
- (TEXTNS,'print-date'),
- (TEXTNS,'printed-by'),
- (TEXTNS,'print-time'),
- (TEXTNS,'reference-ref'),
- (TEXTNS,'ruby'),
- (TEXTNS,'ruby-base'),
- (TEXTNS,'ruby-text'),
- (TEXTNS,'script'),
- (TEXTNS,'sender-city'),
- (TEXTNS,'sender-company'),
- (TEXTNS,'sender-country'),
- (TEXTNS,'sender-email'),
- (TEXTNS,'sender-fax'),
- (TEXTNS,'sender-firstname'),
- (TEXTNS,'sender-initials'),
- (TEXTNS,'sender-lastname'),
- (TEXTNS,'sender-phone-private'),
- (TEXTNS,'sender-phone-work'),
- (TEXTNS,'sender-position'),
- (TEXTNS,'sender-postal-code'),
- (TEXTNS,'sender-state-or-province'),
- (TEXTNS,'sender-street'),
- (TEXTNS,'sender-title'),
- (TEXTNS,'sequence'),
- (TEXTNS,'sequence-ref'),
- (TEXTNS,'sheet-name'),
- (TEXTNS,'span'),
- (TEXTNS,'subject'),
- (TEXTNS,'table-count'),
- (TEXTNS,'table-formula'),
- (TEXTNS,'template-name'),
- (TEXTNS,'text-input'),
- (TEXTNS,'time'),
- (TEXTNS,'title'),
- (TEXTNS,'user-defined'),
- (TEXTNS,'user-field-get'),
- (TEXTNS,'user-field-input'),
- (TEXTNS,'variable-get'),
- (TEXTNS,'variable-input'),
- (TEXTNS,'variable-set'),
- (TEXTNS,'word-count'),
-)
-
-
-# It is almost impossible to determine what elements are block elements.
-# There are so many that don't fit the form
-block_elements = (
- (TEXTNS,'h'),
- (TEXTNS,'p'),
- (TEXTNS,'list'),
- (TEXTNS,'list-item'),
- (TEXTNS,'section'),
-)
-
-declarative_elements = (
- (OFFICENS,'font-face-decls'),
- (PRESENTATIONNS,'date-time-decl'),
- (PRESENTATIONNS,'footer-decl'),
- (PRESENTATIONNS,'header-decl'),
- (TABLENS,'table-template'),
- (TEXTNS,'alphabetical-index-entry-template'),
- (TEXTNS,'alphabetical-index-source'),
- (TEXTNS,'bibliography-entry-template'),
- (TEXTNS,'bibliography-source'),
- (TEXTNS,'dde-connection-decls'),
- (TEXTNS,'illustration-index-entry-template'),
- (TEXTNS,'illustration-index-source'),
- (TEXTNS,'index-source-styles'),
- (TEXTNS,'index-title-template'),
- (TEXTNS,'note-continuation-notice-backward'),
- (TEXTNS,'note-continuation-notice-forward'),
- (TEXTNS,'notes-configuration'),
- (TEXTNS,'object-index-entry-template'),
- (TEXTNS,'object-index-source'),
- (TEXTNS,'sequence-decls'),
- (TEXTNS,'table-index-entry-template'),
- (TEXTNS,'table-index-source'),
- (TEXTNS,'table-of-content-entry-template'),
- (TEXTNS,'table-of-content-source'),
- (TEXTNS,'user-field-decls'),
- (TEXTNS,'user-index-entry-template'),
- (TEXTNS,'user-index-source'),
- (TEXTNS,'variable-decls'),
-)
-
-empty_elements = (
- (ANIMNS,'animate'),
- (ANIMNS,'animateColor'),
- (ANIMNS,'animateMotion'),
- (ANIMNS,'animateTransform'),
- (ANIMNS,'audio'),
- (ANIMNS,'param'),
- (ANIMNS,'set'),
- (ANIMNS,'transitionFilter'),
- (CHARTNS,'categories'),
- (CHARTNS,'data-point'),
- (CHARTNS,'domain'),
- (CHARTNS,'error-indicator'),
- (CHARTNS,'floor'),
- (CHARTNS,'grid'),
- (CHARTNS,'legend'),
- (CHARTNS,'mean-value'),
- (CHARTNS,'regression-curve'),
- (CHARTNS,'stock-gain-marker'),
- (CHARTNS,'stock-loss-marker'),
- (CHARTNS,'stock-range-line'),
- (CHARTNS,'symbol-image'),
- (CHARTNS,'wall'),
- (DR3DNS,'cube'),
- (DR3DNS,'extrude'),
- (DR3DNS,'light'),
- (DR3DNS,'rotate'),
- (DR3DNS,'sphere'),
- (DRAWNS,'contour-path'),
- (DRAWNS,'contour-polygon'),
- (DRAWNS,'equation'),
- (DRAWNS,'fill-image'),
- (DRAWNS,'floating-frame'),
- (DRAWNS,'glue-point'),
- (DRAWNS,'gradient'),
- (DRAWNS,'handle'),
- (DRAWNS,'hatch'),
- (DRAWNS,'layer'),
- (DRAWNS,'marker'),
- (DRAWNS,'opacity'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'param'),
- (DRAWNS,'stroke-dash'),
- (FORMNS,'connection-resource'),
- (FORMNS,'list-value'),
- (FORMNS,'property'),
- (MANIFESTNS,'algorithm'),
- (MANIFESTNS,'key-derivation'),
- (METANS,'auto-reload'),
- (METANS,'document-statistic'),
- (METANS,'hyperlink-behaviour'),
- (METANS,'template'),
- (NUMBERNS,'am-pm'),
- (NUMBERNS,'boolean'),
- (NUMBERNS,'day'),
- (NUMBERNS,'day-of-week'),
- (NUMBERNS,'era'),
- (NUMBERNS,'fraction'),
- (NUMBERNS,'hours'),
- (NUMBERNS,'minutes'),
- (NUMBERNS,'month'),
- (NUMBERNS,'quarter'),
- (NUMBERNS,'scientific-number'),
- (NUMBERNS,'seconds'),
- (NUMBERNS,'text-content'),
- (NUMBERNS,'week-of-year'),
- (NUMBERNS,'year'),
- (OFFICENS,'dde-source'),
- (PRESENTATIONNS,'date-time'),
- (PRESENTATIONNS,'footer'),
- (PRESENTATIONNS,'header'),
- (PRESENTATIONNS,'placeholder'),
- (PRESENTATIONNS,'play'),
- (PRESENTATIONNS,'show'),
- (PRESENTATIONNS,'sound'),
- (SCRIPTNS,'event-listener'),
- (STYLENS,'column'),
- (STYLENS,'column-sep'),
- (STYLENS,'drop-cap'),
- (STYLENS,'footnote-sep'),
- (STYLENS,'list-level-properties'),
- (STYLENS,'map'),
- (STYLENS,'ruby-properties'),
- (STYLENS,'table-column-properties'),
- (STYLENS,'tab-stop'),
- (STYLENS,'text-properties'),
- (SVGNS,'definition-src'),
- (SVGNS,'font-face-format'),
- (SVGNS,'font-face-name'),
- (SVGNS,'stop'),
- (TABLENS,'body'),
- (TABLENS,'cell-address'),
- (TABLENS,'cell-range-source'),
- (TABLENS,'change-deletion'),
- (TABLENS,'consolidation'),
- (TABLENS,'database-source-query'),
- (TABLENS,'database-source-sql'),
- (TABLENS,'database-source-table'),
- (TABLENS,'data-pilot-display-info'),
- (TABLENS,'data-pilot-field-reference'),
- (TABLENS,'data-pilot-group-member'),
- (TABLENS,'data-pilot-layout-info'),
- (TABLENS,'data-pilot-member'),
- (TABLENS,'data-pilot-sort-info'),
- (TABLENS,'data-pilot-subtotal'),
- (TABLENS,'dependency'),
- (TABLENS,'error-macro'),
- (TABLENS,'even-columns'),
- (TABLENS,'even-rows'),
- (TABLENS,'filter-condition'),
- (TABLENS,'first-column'),
- (TABLENS,'first-row'),
- (TABLENS,'highlighted-range'),
- (TABLENS,'insertion-cut-off'),
- (TABLENS,'iteration'),
- (TABLENS,'label-range'),
- (TABLENS,'last-column'),
- (TABLENS,'last-row'),
- (TABLENS,'movement-cut-off'),
- (TABLENS,'named-expression'),
- (TABLENS,'named-range'),
- (TABLENS,'null-date'),
- (TABLENS,'odd-columns'),
- (TABLENS,'odd-rows'),
- (TABLENS,'operation'),
- (TABLENS,'scenario'),
- (TABLENS,'sort-by'),
- (TABLENS,'sort-groups'),
- (TABLENS,'source-range-address'),
- (TABLENS,'source-service'),
- (TABLENS,'subtotal-field'),
- (TABLENS,'table-column'),
- (TABLENS,'table-source'),
- (TABLENS,'target-range-address'),
- (TEXTNS,'alphabetical-index-auto-mark-file'),
- (TEXTNS,'alphabetical-index-mark'),
- (TEXTNS,'alphabetical-index-mark-end'),
- (TEXTNS,'alphabetical-index-mark-start'),
- (TEXTNS,'bookmark'),
- (TEXTNS,'bookmark-end'),
- (TEXTNS,'bookmark-start'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'dde-connection-decl'),
- (TEXTNS,'index-entry-bibliography'),
- (TEXTNS,'index-entry-chapter'),
- (TEXTNS,'index-entry-link-end'),
- (TEXTNS,'index-entry-link-start'),
- (TEXTNS,'index-entry-page-number'),
- (TEXTNS,'index-entry-tab-stop'),
- (TEXTNS,'index-entry-text'),
- (TEXTNS,'index-source-style'),
- (TEXTNS,'line-break'),
- (TEXTNS,'page'),
- (TEXTNS,'reference-mark'),
- (TEXTNS,'reference-mark-end'),
- (TEXTNS,'reference-mark-start'),
- (TEXTNS,'s'),
- (TEXTNS,'section-source'),
- (TEXTNS,'sequence-decl'),
- (TEXTNS,'soft-page-break'),
- (TEXTNS,'sort-key'),
- (TEXTNS,'tab'),
- (TEXTNS,'toc-mark'),
- (TEXTNS,'toc-mark-end'),
- (TEXTNS,'toc-mark-start'),
- (TEXTNS,'user-field-decl'),
- (TEXTNS,'user-index-mark'),
- (TEXTNS,'user-index-mark-end'),
- (TEXTNS,'user-index-mark-start'),
- (TEXTNS,'variable-decl')
-)
diff --git a/tablib/packages/odf3/form.py b/tablib/packages/odf3/form.py
deleted file mode 100644
index 8b5a359..0000000
--- a/tablib/packages/odf3/form.py
+++ /dev/null
@@ -1,115 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import FORMNS
-from .element import Element
-
-
-# Autogenerated
-def Button(**args):
- return Element(qname = (FORMNS,'button'), **args)
-
-def Checkbox(**args):
- return Element(qname = (FORMNS,'checkbox'), **args)
-
-def Column(**args):
- return Element(qname = (FORMNS,'column'), **args)
-
-def Combobox(**args):
- return Element(qname = (FORMNS,'combobox'), **args)
-
-def ConnectionResource(**args):
- return Element(qname = (FORMNS,'connection-resource'), **args)
-
-def Date(**args):
- return Element(qname = (FORMNS,'date'), **args)
-
-def File(**args):
- return Element(qname = (FORMNS,'file'), **args)
-
-def FixedText(**args):
- return Element(qname = (FORMNS,'fixed-text'), **args)
-
-def Form(**args):
- return Element(qname = (FORMNS,'form'), **args)
-
-def FormattedText(**args):
- return Element(qname = (FORMNS,'formatted-text'), **args)
-
-def Frame(**args):
- return Element(qname = (FORMNS,'frame'), **args)
-
-def GenericControl(**args):
- return Element(qname = (FORMNS,'generic-control'), **args)
-
-def Grid(**args):
- return Element(qname = (FORMNS,'grid'), **args)
-
-def Hidden(**args):
- return Element(qname = (FORMNS,'hidden'), **args)
-
-def Image(**args):
- return Element(qname = (FORMNS,'image'), **args)
-
-def ImageFrame(**args):
- return Element(qname = (FORMNS,'image-frame'), **args)
-
-def Item(**args):
- return Element(qname = (FORMNS,'item'), **args)
-
-def ListProperty(**args):
- return Element(qname = (FORMNS,'list-property'), **args)
-
-def ListValue(**args):
- return Element(qname = (FORMNS,'list-value'), **args)
-
-def Listbox(**args):
- return Element(qname = (FORMNS,'listbox'), **args)
-
-def Number(**args):
- return Element(qname = (FORMNS,'number'), **args)
-
-def Option(**args):
- return Element(qname = (FORMNS,'option'), **args)
-
-def Password(**args):
- return Element(qname = (FORMNS,'password'), **args)
-
-def Properties(**args):
- return Element(qname = (FORMNS,'properties'), **args)
-
-def Property(**args):
- return Element(qname = (FORMNS,'property'), **args)
-
-def Radio(**args):
- return Element(qname = (FORMNS,'radio'), **args)
-
-def Text(**args):
- return Element(qname = (FORMNS,'text'), **args)
-
-def Textarea(**args):
- return Element(qname = (FORMNS,'textarea'), **args)
-
-def Time(**args):
- return Element(qname = (FORMNS,'time'), **args)
-
-def ValueRange(**args):
- return Element(qname = (FORMNS,'value-range'), **args)
-
diff --git a/tablib/packages/odf3/grammar.py b/tablib/packages/odf3/grammar.py
deleted file mode 100644
index 04b57ff..0000000
--- a/tablib/packages/odf3/grammar.py
+++ /dev/null
@@ -1,8426 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2010 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-__doc__=""" In principle the OpenDocument schema converted to python structures.
-Currently it contains the legal child elements of a given element.
-To be used for validation check in the API
-"""
-
-from .namespaces import *
-
-# The following code is generated from the RelaxNG schema with this notice:
-
-# OASIS OpenDocument v1.1
-# OASIS Standard, 1 Feb 2007
-# Relax-NG Schema
-
-# $Id$
-
-# © 2002-2007 OASIS Open
-# © 1999-2007 Sun Microsystems, Inc.
-
-# This document and translations of it may be copied and furnished
-# to others, and derivative works that comment on or otherwise explain
-# it or assist in its implementation may be prepared, copied,
-# published and distributed, in whole or in part, without restriction
-# of any kind, provided that the above copyright notice and this
-# paragraph are included on all such copies and derivative works.
-# However, this document itself does not be modified in any way, such
-# as by removing the copyright notice or references to OASIS, except
-# as needed for the purpose of developing OASIS specifications, in
-# which case the procedures for copyrights defined in the OASIS
-# Intellectual Property Rights document must be followed, or as
-# required to translate it into languages other than English.
-#
-
-allowed_children = {
- (DCNS,'creator') : (
- ),
- (DCNS,'date') : (
- ),
- (DCNS,'description') : (
- ),
- (DCNS,'language') : (
- ),
- (DCNS,'subject') : (
- ),
- (DCNS,'title') : (
- ),
-# Completes Dublin Core start
-# (DCNS,'contributor') : (
-# ),
-# (DCNS,'coverage') : (
-# ),
-# (DCNS,'format') : (
-# ),
-# (DCNS,'identifier') : (
-# ),
-# (DCNS,'publisher') : (
-# ),
-# (DCNS,'relation') : (
-# ),
-# (DCNS,'rights') : (
-# ),
-# (DCNS,'source') : (
-# ),
-# (DCNS,'type') : (
-# ),
-# Completes Dublin Core end
- (MATHNS,'math') : None,
-
- (XFORMSNS,'model') : None,
-
- (ANIMNS,'animate') : (
- ),
- (ANIMNS,'animateColor') : (
- ),
- (ANIMNS,'animateMotion') : (
- ),
- (ANIMNS,'animateTransform') : (
- ),
- (ANIMNS,'audio') : (
- ),
- (ANIMNS,'command') : (
- (ANIMNS,'param'),
- ),
-# allowed_children
- (ANIMNS,'iterate') : (
- (ANIMNS,'animate'),
- (ANIMNS,'animateColor'),
- (ANIMNS,'animateMotion'),
- (ANIMNS,'animateTransform'),
- (ANIMNS,'audio'),
- (ANIMNS,'command'),
- (ANIMNS,'iterate'),
- (ANIMNS,'par'),
- (ANIMNS,'seq'),
- (ANIMNS,'set'),
- (ANIMNS,'transitionFilter'),
- ),
- (ANIMNS,'par') : (
- (ANIMNS,'animate'),
- (ANIMNS,'animateColor'),
- (ANIMNS,'animateMotion'),
- (ANIMNS,'animateTransform'),
- (ANIMNS,'audio'),
- (ANIMNS,'command'),
- (ANIMNS,'iterate'),
- (ANIMNS,'par'),
- (ANIMNS,'seq'),
- (ANIMNS,'set'),
- (ANIMNS,'transitionFilter'),
- ),
-# allowed_children
- (ANIMNS,'param') : (
- ),
- (ANIMNS,'seq') : (
- (ANIMNS,'animate'),
- (ANIMNS,'animateColor'),
- (ANIMNS,'animateMotion'),
- (ANIMNS,'animateTransform'),
- (ANIMNS,'audio'),
- (ANIMNS,'command'),
- (ANIMNS,'iterate'),
- (ANIMNS,'par'),
- (ANIMNS,'seq'),
- (ANIMNS,'set'),
- (ANIMNS,'transitionFilter'),
- ),
- (ANIMNS,'set') : (
- ),
- (ANIMNS,'transitionFilter') : (
- ),
- (CHARTNS,'axis') : (
- (CHARTNS,'categories'),
- (CHARTNS,'grid'),
- (CHARTNS,'title'),
- ),
-# allowed_children
- (CHARTNS,'categories') : (
- ),
- (CHARTNS,'chart') : (
- (CHARTNS,'footer'),
- (CHARTNS,'legend'),
- (CHARTNS,'plot-area'),
- (CHARTNS,'subtitle'),
- (CHARTNS,'title'),
- (TABLENS,'table'),
- ),
- (CHARTNS,'data-point') : (
- ),
- (CHARTNS,'domain') : (
- ),
- (CHARTNS,'error-indicator') : (
- ),
- (CHARTNS,'floor') : (
- ),
- (CHARTNS,'footer') : (
- (TEXTNS,'p'),
- ),
- (CHARTNS,'grid') : (
- ),
- (CHARTNS,'legend') : (
- ),
-# allowed_children
- (CHARTNS,'mean-value') : (
- ),
- (CHARTNS,'plot-area') : (
- (CHARTNS,'axis'),
- (CHARTNS,'floor'),
- (CHARTNS,'series'),
- (CHARTNS,'stock-gain-marker'),
- (CHARTNS,'stock-loss-marker'),
- (CHARTNS,'stock-range-line'),
- (CHARTNS,'wall'),
- (DR3DNS,'light'),
- ),
- (CHARTNS,'regression-curve') : (
- ),
- (CHARTNS,'series') : (
- (CHARTNS,'data-point'),
- (CHARTNS,'domain'),
- (CHARTNS,'error-indicator'),
- (CHARTNS,'mean-value'),
- (CHARTNS,'regression-curve'),
- ),
- (CHARTNS,'stock-gain-marker') : (
- ),
- (CHARTNS,'stock-loss-marker') : (
- ),
-# allowed_children
- (CHARTNS,'stock-range-line') : (
- ),
- (CHARTNS,'subtitle') : (
- (TEXTNS,'p'),
- ),
- (CHARTNS,'symbol-image') : (
- ),
- (CHARTNS,'title') : (
- (TEXTNS,'p'),
- ),
- (CHARTNS,'wall') : (
- ),
- (CONFIGNS,'config-item') : (
- ),
- (CONFIGNS,'config-item-map-entry') : (
- (CONFIGNS,'config-item'),
- (CONFIGNS,'config-item-map-indexed'),
- (CONFIGNS,'config-item-map-named'),
- (CONFIGNS,'config-item-set'),
- ),
- (CONFIGNS,'config-item-map-indexed') : (
- (CONFIGNS,'config-item-map-entry'),
- ),
- (CONFIGNS,'config-item-map-named') : (
- (CONFIGNS,'config-item-map-entry'),
- ),
-# allowed_children
- (CONFIGNS,'config-item-set') : (
- (CONFIGNS,'config-item'),
- (CONFIGNS,'config-item-map-indexed'),
- (CONFIGNS,'config-item-map-named'),
- (CONFIGNS,'config-item-set'),
- ),
- (MANIFESTNS,'algorithm') : (
- ),
- (MANIFESTNS,'encryption-data') : (
- (MANIFESTNS,'algorithm'),
- (MANIFESTNS,'key-derivation'),
- ),
- (MANIFESTNS,'file-entry') : (
- (MANIFESTNS,'encryption-data'),
- ),
- (MANIFESTNS,'key-derivation') : (
- ),
- (MANIFESTNS,'manifest') : (
- (MANIFESTNS,'file-entry'),
- ),
- (NUMBERNS,'am-pm') : (
- ),
- (NUMBERNS,'boolean') : (
- ),
-# allowed_children
- (NUMBERNS,'boolean-style') : (
- (NUMBERNS,'boolean'),
- (NUMBERNS,'text'),
- (STYLENS,'map'),
- (STYLENS,'text-properties'),
- ),
- (NUMBERNS,'currency-style') : (
- (NUMBERNS,'currency-symbol'),
- (NUMBERNS,'number'),
- (NUMBERNS,'text'),
- (STYLENS,'map'),
- (STYLENS,'text-properties'),
- ),
- (NUMBERNS,'currency-symbol') : (
- ),
- (NUMBERNS,'date-style') : (
- (NUMBERNS,'am-pm'),
- (NUMBERNS,'day'),
- (NUMBERNS,'day-of-week'),
- (NUMBERNS,'era'),
- (NUMBERNS,'hours'),
- (NUMBERNS,'minutes'),
- (NUMBERNS,'month'),
- (NUMBERNS,'quarter'),
- (NUMBERNS,'seconds'),
- (NUMBERNS,'text'),
- (NUMBERNS,'week-of-year'),
- (NUMBERNS,'year'),
- (STYLENS,'map'),
- (STYLENS,'text-properties'),
- ),
-# allowed_children
- (NUMBERNS,'day') : (
- ),
- (NUMBERNS,'day-of-week') : (
- ),
- (NUMBERNS,'embedded-text') : (
- ),
- (NUMBERNS,'era') : (
- ),
- (NUMBERNS,'fraction') : (
- ),
- (NUMBERNS,'hours') : (
- ),
- (NUMBERNS,'minutes') : (
- ),
- (NUMBERNS,'month') : (
- ),
- (NUMBERNS,'number') : (
- (NUMBERNS,'embedded-text'),
- ),
- (NUMBERNS,'number-style') : (
- (NUMBERNS,'fraction'),
- (NUMBERNS,'number'),
- (NUMBERNS,'scientific-number'),
- (NUMBERNS,'text'),
- (STYLENS,'map'),
- (STYLENS,'text-properties'),
- ),
-# allowed_children
- (NUMBERNS,'percentage-style') : (
- (NUMBERNS,'number'),
- (NUMBERNS,'text'),
- (STYLENS,'map'),
- (STYLENS,'text-properties'),
- ),
- (NUMBERNS,'quarter') : (
- ),
- (NUMBERNS,'scientific-number') : (
- ),
- (NUMBERNS,'seconds') : (
- ),
- (NUMBERNS,'text') : (
- ),
- (NUMBERNS,'text-content') : (
- ),
- (NUMBERNS,'text-style') : (
- (NUMBERNS,'text'),
- (NUMBERNS,'text-content'),
- (STYLENS,'map'),
- (STYLENS,'text-properties'),
- ),
-# allowed_children
- (NUMBERNS,'time-style') : (
- (NUMBERNS,'am-pm'),
- (NUMBERNS,'hours'),
- (NUMBERNS,'minutes'),
- (NUMBERNS,'seconds'),
- (NUMBERNS,'text'),
- (STYLENS,'map'),
- (STYLENS,'text-properties'),
- ),
-# allowed_children
- (NUMBERNS,'week-of-year') : (
- ),
- (NUMBERNS,'year') : (
- ),
- (DR3DNS,'cube') : (
- ),
- (DR3DNS,'extrude') : (
- ),
- (DR3DNS,'light') : (
- ),
- (DR3DNS,'rotate') : (
- ),
- (DR3DNS,'scene') : (
- (DR3DNS,'cube'),
- (DR3DNS,'extrude'),
- (DR3DNS,'light'),
- (DR3DNS,'rotate'),
- (DR3DNS,'scene'),
- (DR3DNS,'sphere'),
- (SVGNS,'title'),
- (SVGNS,'desc'),
- ),
- (DR3DNS,'sphere') : (
- ),
- (DRAWNS,'a') : (
- (DRAWNS,'frame'),
- ),
-# allowed_children
- (DRAWNS,'applet') : (
- (DRAWNS,'param'),
- ),
- (DRAWNS,'area-circle') : (
- (OFFICENS,'event-listeners'),
- (SVGNS,'desc'),
- (SVGNS,'title'),
- ),
- (DRAWNS,'area-polygon') : (
- (OFFICENS,'event-listeners'),
- (SVGNS,'desc'),
- (SVGNS,'title'),
- ),
- (DRAWNS,'area-rectangle') : (
- (OFFICENS,'event-listeners'),
- (SVGNS,'desc'),
- (SVGNS,'title'),
- ),
- (DRAWNS,'caption') : (
- (DRAWNS,'glue-point'),
- (OFFICENS,'event-listeners'),
- (SVGNS,'desc'),
- (SVGNS,'title'),
- (TEXTNS,'list'),
- (TEXTNS,'p'),
- ),
- (DRAWNS,'circle') : (
- (DRAWNS,'glue-point'),
- (OFFICENS,'event-listeners'),
- (SVGNS,'desc'),
- (SVGNS,'title'),
- (TEXTNS,'list'),
- (TEXTNS,'p'),
- ),
-# allowed_children
- (DRAWNS,'connector') : (
- (DRAWNS,'glue-point'),
- (OFFICENS,'event-listeners'),
- (SVGNS,'desc'),
- (SVGNS,'title'),
- (TEXTNS,'list'),
- (TEXTNS,'p'),
- ),
- (DRAWNS,'contour-path') : (
- ),
- (DRAWNS,'contour-polygon') : (
- ),
- (DRAWNS,'control') : (
- (DRAWNS,'glue-point'),
- (SVGNS,'desc'),
- (SVGNS,'title'),
- ),
- (DRAWNS,'custom-shape') : (
- (DRAWNS,'enhanced-geometry'),
- (DRAWNS,'glue-point'),
- (OFFICENS,'event-listeners'),
- (SVGNS,'desc'),
- (SVGNS,'title'),
- (TEXTNS,'list'),
- (TEXTNS,'p'),
- ),
-# allowed_children
- (DRAWNS,'ellipse') : (
- (DRAWNS,'glue-point'),
- (OFFICENS,'event-listeners'),
- (SVGNS,'desc'),
- (SVGNS,'title'),
- (TEXTNS,'list'),
- (TEXTNS,'p'),
- ),
- (DRAWNS,'enhanced-geometry') : (
- (DRAWNS,'equation'),
- (DRAWNS,'handle'),
- ),
- (DRAWNS,'equation') : (
- ),
-# allowed_children
- (DRAWNS,'fill-image') : (
- ),
- (DRAWNS,'floating-frame') : (
- ),
- (DRAWNS,'frame') : (
- (DRAWNS,'applet'),
- (DRAWNS,'contour-path'),
- (DRAWNS,'contour-polygon'),
- (DRAWNS,'floating-frame'),
- (DRAWNS,'glue-point'),
- (DRAWNS,'image'),
- (DRAWNS,'image-map'),
- (DRAWNS,'object'),
- (DRAWNS,'object-ole'),
- (DRAWNS,'plugin'),
- (DRAWNS,'text-box'),
- (OFFICENS,'event-listeners'),
- (SVGNS,'desc'),
- (SVGNS,'title'),
- ),
-# allowed_children
- (DRAWNS,'g') : (
- (DR3DNS,'scene'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'glue-point'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- (SVGNS,'desc'),
- (SVGNS,'title'),
- (OFFICENS,'event-listeners'),
- ),
- (DRAWNS,'glue-point') : (
- ),
- (DRAWNS,'gradient') : (
- ),
- (DRAWNS,'handle') : (
- ),
- (DRAWNS,'hatch') : (
- ),
-# allowed_children
- (DRAWNS,'image') : (
- (OFFICENS,'binary-data'),
- (TEXTNS,'list'),
- (TEXTNS,'p'),
- ),
- (DRAWNS,'image-map') : (
- (DRAWNS,'area-circle'),
- (DRAWNS,'area-polygon'),
- (DRAWNS,'area-rectangle'),
- ),
- (DRAWNS,'layer') : (
- (SVGNS,'desc'),
- (SVGNS,'title'),
- ),
- (DRAWNS,'layer-set') : (
- (DRAWNS,'layer'),
- ),
- (DRAWNS,'line') : (
- (DRAWNS,'glue-point'),
- (OFFICENS,'event-listeners'),
- (SVGNS,'desc'),
- (SVGNS,'title'),
- (TEXTNS,'list'),
- (TEXTNS,'p'),
- ),
- (DRAWNS,'marker') : (
- ),
- (DRAWNS,'measure') : (
- (DRAWNS,'glue-point'),
- (OFFICENS,'event-listeners'),
- (TEXTNS,'list'),
- (TEXTNS,'p'),
- (SVGNS,'title'),
- (SVGNS,'desc'),
- ),
- (DRAWNS,'object') : (
- (MATHNS,'math'),
- (OFFICENS,'document'),
- ),
-# allowed_children
- (DRAWNS,'object-ole') : (
- (OFFICENS,'binary-data'),
- ),
- (DRAWNS,'opacity') : (
- ),
- (DRAWNS,'page') : (
- (ANIMNS,'animate'),
- (ANIMNS,'animateColor'),
- (ANIMNS,'animateMotion'),
- (ANIMNS,'animateTransform'),
- (ANIMNS,'audio'),
- (ANIMNS,'command'),
- (ANIMNS,'iterate'),
- (ANIMNS,'par'),
- (ANIMNS,'seq'),
- (ANIMNS,'set'),
- (ANIMNS,'transitionFilter'),
- (DR3DNS,'scene'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- (OFFICENS,'forms'),
- (PRESENTATIONNS,'animations'),
- (PRESENTATIONNS,'notes'),
- ),
-# allowed_children
- (DRAWNS,'page-thumbnail') : (
- (SVGNS,'desc'),
- (SVGNS,'title'),
- ),
- (DRAWNS,'param') : (
- ),
- (DRAWNS,'path') : (
- (DRAWNS,'glue-point'),
- (OFFICENS,'event-listeners'),
- (SVGNS,'desc'),
- (SVGNS,'title'),
- (TEXTNS,'list'),
- (TEXTNS,'p'),
- ),
- (DRAWNS,'plugin') : (
- (DRAWNS,'param'),
- ),
- (DRAWNS,'polygon') : (
- (DRAWNS,'glue-point'),
- (OFFICENS,'event-listeners'),
- (SVGNS,'title'),
- (SVGNS,'desc'),
- (TEXTNS,'list'),
- (TEXTNS,'p'),
- ),
- (DRAWNS,'polyline') : (
- (DRAWNS,'glue-point'),
- (OFFICENS,'event-listeners'),
- (SVGNS,'desc'),
- (SVGNS,'title'),
- (TEXTNS,'list'),
- (TEXTNS,'p'),
- ),
-# allowed_children
- (DRAWNS,'rect') : (
- (DRAWNS,'glue-point'),
- (OFFICENS,'event-listeners'),
- (SVGNS,'desc'),
- (SVGNS,'title'),
- (TEXTNS,'list'),
- (TEXTNS,'p'),
- ),
- (DRAWNS,'regular-polygon') : (
- (DRAWNS,'glue-point'),
- (OFFICENS,'event-listeners'),
- (SVGNS,'desc'),
- (SVGNS,'title'),
- (TEXTNS,'list'),
- (TEXTNS,'p'),
- ),
- (DRAWNS,'stroke-dash') : (
- ),
- (DRAWNS,'text-box') : (
- (DR3DNS,'scene'),
- (DRAWNS,'a'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- (TABLENS,'table'),
- (TEXTNS,'alphabetical-index'),
- (TEXTNS,'bibliography'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'h'),
- (TEXTNS,'illustration-index'),
- (TEXTNS,'list'),
- (TEXTNS,'numbered-paragraph'),
- (TEXTNS,'object-index'),
- (TEXTNS,'p'),
- (TEXTNS,'section'),
- (TEXTNS,'soft-page-break'),
- (TEXTNS,'table-index'),
- (TEXTNS,'table-of-content'),
- (TEXTNS,'user-index'),
- ),
-# allowed_children
- (FORMNS,'button') : (
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
- (FORMNS,'checkbox') : (
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
- (FORMNS,'column') : (
- (FORMNS,'checkbox'),
- (FORMNS,'combobox'),
- (FORMNS,'date'),
- (FORMNS,'formatted-text'),
- (FORMNS,'listbox'),
- (FORMNS,'number'),
- (FORMNS,'text'),
- (FORMNS,'textarea'),
- ),
- (FORMNS,'combobox') : (
- (FORMNS,'item'),
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
- (FORMNS,'connection-resource') : (
- ),
- (FORMNS,'date') : (
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
- (FORMNS,'file') : (
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
- (FORMNS,'fixed-text') : (
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
-# allowed_children
- (FORMNS,'form') : (
- (FORMNS,'button'),
- (FORMNS,'checkbox'),
- (FORMNS,'combobox'),
- (FORMNS,'connection-resource'),
- (FORMNS,'date'),
- (FORMNS,'file'),
- (FORMNS,'fixed-text'),
- (FORMNS,'form'),
- (FORMNS,'formatted-text'),
- (FORMNS,'frame'),
- (FORMNS,'generic-control'),
- (FORMNS,'grid'),
- (FORMNS,'hidden'),
- (FORMNS,'image'),
- (FORMNS,'image-frame'),
- (FORMNS,'listbox'),
- (FORMNS,'number'),
- (FORMNS,'password'),
- (FORMNS,'properties'),
- (FORMNS,'radio'),
- (FORMNS,'text'),
- (FORMNS,'textarea'),
- (FORMNS,'time'),
- (FORMNS,'value-range'),
- (OFFICENS,'event-listeners'),
- ),
- (FORMNS,'formatted-text') : (
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
- (FORMNS,'frame') : (
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
- (FORMNS,'generic-control') : (
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
- (FORMNS,'grid') : (
- (FORMNS,'column'),
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
- (FORMNS,'hidden') : (
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
- (FORMNS,'image') : (
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
-# allowed_children
- (FORMNS,'image-frame') : (
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
- (FORMNS,'item') : (
- ),
- (FORMNS,'list-property') : (
- (FORMNS,'list-value'),
- (FORMNS,'list-value'),
- (FORMNS,'list-value'),
- (FORMNS,'list-value'),
- (FORMNS,'list-value'),
- (FORMNS,'list-value'),
- (FORMNS,'list-value'),
- ),
- (FORMNS,'list-value') : (
- ),
- (FORMNS,'listbox') : (
- (FORMNS,'option'),
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
- (FORMNS,'number') : (
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
- (FORMNS,'option') : (
- ),
- (FORMNS,'password') : (
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
- (FORMNS,'properties') : (
- (FORMNS,'list-property'),
- (FORMNS,'property'),
- ),
- (FORMNS,'property') : (
- ),
- (FORMNS,'radio') : (
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
- (FORMNS,'text') : (
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
- (FORMNS,'textarea') : (
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- (TEXTNS,'p'),
- ),
- (FORMNS,'time') : (
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
- (FORMNS,'value-range') : (
- (FORMNS,'properties'),
- (OFFICENS,'event-listeners'),
- ),
- (METANS,'auto-reload') : (
- ),
- (METANS,'creation-date') : (
- ),
- (METANS,'date-string') : (
- ),
- (METANS,'document-statistic') : (
- ),
- (METANS,'editing-cycles') : (
- ),
- (METANS,'editing-duration') : (
- ),
- (METANS,'generator') : (
- ),
- (METANS,'hyperlink-behaviour') : (
- ),
- (METANS,'initial-creator') : (
- ),
- (METANS,'keyword') : (
- ),
- (METANS,'print-date') : (
- ),
- (METANS,'printed-by') : (
- ),
- (METANS,'template') : (
- ),
- (METANS,'user-defined') : (
- ),
-# allowed_children
- (OFFICENS,'annotation') : (
- (DCNS,'creator'),
- (DCNS,'date'),
- (METANS,'date-string'),
- (TEXTNS,'list'),
- (TEXTNS,'p'),
- ),
- (OFFICENS,'automatic-styles') : (
- (NUMBERNS,'boolean-style'),
- (NUMBERNS,'currency-style'),
- (NUMBERNS,'date-style'),
- (NUMBERNS,'number-style'),
- (NUMBERNS,'percentage-style'),
- (NUMBERNS,'text-style'),
- (NUMBERNS,'time-style'),
- (STYLENS,'page-layout'),
- (STYLENS,'style'),
- (TEXTNS,'list-style'),
- ),
- (OFFICENS,'binary-data') : (
- ),
- (OFFICENS,'body') : (
- (OFFICENS,'chart'),
- (OFFICENS,'drawing'),
- (OFFICENS,'image'),
- (OFFICENS,'presentation'),
- (OFFICENS,'spreadsheet'),
- (OFFICENS,'text'),
- ),
- (OFFICENS,'change-info') : (
- (DCNS,'creator'),
- (DCNS,'date'),
- (TEXTNS,'p'),
- ),
- (OFFICENS,'chart') : (
- (CHARTNS,'chart'),
- (TABLENS,'calculation-settings'),
- (TABLENS,'consolidation'),
- (TABLENS,'content-validations'),
- (TABLENS,'data-pilot-tables'),
- (TABLENS,'database-ranges'),
- (TABLENS,'dde-links'),
- (TABLENS,'label-ranges'),
- (TABLENS,'named-expressions'),
- (TEXTNS,'alphabetical-index-auto-mark-file'),
- (TEXTNS,'dde-connection-decls'),
- (TEXTNS,'sequence-decls'),
- (TEXTNS,'user-field-decls'),
- (TEXTNS,'variable-decls'),
- ),
- (OFFICENS,'dde-source') : (
- ),
- (OFFICENS,'document') : (
- (OFFICENS,'automatic-styles'),
- (OFFICENS,'body'),
- (OFFICENS,'font-face-decls'),
- (OFFICENS,'master-styles'),
- (OFFICENS,'meta'),
- (OFFICENS,'scripts'),
- (OFFICENS,'settings'),
- (OFFICENS,'styles'),
- ),
- (OFFICENS,'document-content') : (
- (OFFICENS,'automatic-styles'),
- (OFFICENS,'body'),
- (OFFICENS,'font-face-decls'),
- (OFFICENS,'scripts'),
- ),
- (OFFICENS,'document-meta') : (
- (OFFICENS,'meta'),
- ),
- (OFFICENS,'document-settings') : (
- (OFFICENS,'settings'),
- ),
- (OFFICENS,'document-styles') : (
- (OFFICENS,'automatic-styles'),
- (OFFICENS,'font-face-decls'),
- (OFFICENS,'master-styles'),
- (OFFICENS,'styles'),
- ),
- (OFFICENS,'drawing') : (
- (DRAWNS,'page'),
- (TABLENS,'calculation-settings'),
- (TABLENS,'consolidation'),
- (TABLENS,'content-validations'),
- (TABLENS,'data-pilot-tables'),
- (TABLENS,'database-ranges'),
- (TABLENS,'dde-links'),
- (TABLENS,'label-ranges'),
- (TABLENS,'named-expressions'),
- (TEXTNS,'alphabetical-index-auto-mark-file'),
- (TEXTNS,'dde-connection-decls'),
- (TEXTNS,'sequence-decls'),
- (TEXTNS,'user-field-decls'),
- (TEXTNS,'variable-decls'),
- ),
- (OFFICENS,'event-listeners') : (
- (PRESENTATIONNS,'event-listener'),
- (SCRIPTNS,'event-listener'),
- ),
- (OFFICENS,'font-face-decls') : (
- (STYLENS,'font-face'),
- ),
-# allowed_children
- (OFFICENS,'forms') : (
- (XFORMSNS,'model'),
- (FORMNS,'form'),
- ),
- (OFFICENS,'image') : (
- (DRAWNS,'frame'),
- ),
- (OFFICENS,'master-styles') : (
- (DRAWNS,'layer-set'),
- (STYLENS,'handout-master'),
- (STYLENS,'master-page'),
- (TABLENS,'table-template'),
- ),
- (OFFICENS,'meta') : (
- (DCNS,'creator'),
- (DCNS,'date'),
- (DCNS,'description'),
- (DCNS,'language'),
- (DCNS,'subject'),
- (DCNS,'title'),
-# Completes Dublin Core start
-# (DCNS,'contributor'),
-# (DCNS,'coverage'),
-# (DCNS,'format'),
-# (DCNS,'identifier'),
-# (DCNS,'publisher'),
-# (DCNS,'relation'),
-# (DCNS,'rights'),
-# (DCNS,'source'),
-# (DCNS,'type'),
-# Completes Dublin Core end
- (METANS,'auto-reload'),
- (METANS,'creation-date'),
- (METANS,'document-statistic'),
- (METANS,'editing-cycles'),
- (METANS,'editing-duration'),
- (METANS,'generator'),
- (METANS,'hyperlink-behaviour'),
- (METANS,'initial-creator'),
- (METANS,'keyword'),
- (METANS,'print-date'),
- (METANS,'printed-by'),
- (METANS,'template'),
- (METANS,'user-defined'),
- ),
- (OFFICENS,'presentation') : (
- (DRAWNS,'page'),
- (PRESENTATIONNS,'date-time-decl'),
- (PRESENTATIONNS,'footer-decl'),
- (PRESENTATIONNS,'header-decl'),
- (PRESENTATIONNS,'settings'),
- (TABLENS,'calculation-settings'),
- (TABLENS,'consolidation'),
- (TABLENS,'content-validations'),
- (TABLENS,'data-pilot-tables'),
- (TABLENS,'database-ranges'),
- (TABLENS,'dde-links'),
- (TABLENS,'label-ranges'),
- (TABLENS,'named-expressions'),
- (TEXTNS,'alphabetical-index-auto-mark-file'),
- (TEXTNS,'dde-connection-decls'),
- (TEXTNS,'sequence-decls'),
- (TEXTNS,'user-field-decls'),
- (TEXTNS,'variable-decls'),
- ),
-# allowed_children
- (OFFICENS,'script') : None,
-
- (OFFICENS,'scripts') : (
- (OFFICENS,'event-listeners'),
- (OFFICENS,'script'),
- ),
- (OFFICENS,'settings') : (
- (CONFIGNS,'config-item-set'),
- ),
- (OFFICENS,'spreadsheet') : (
- (TABLENS,'calculation-settings'),
- (TABLENS,'consolidation'),
- (TABLENS,'content-validations'),
- (TABLENS,'data-pilot-tables'),
- (TABLENS,'database-ranges'),
- (TABLENS,'dde-links'),
- (TABLENS,'label-ranges'),
- (TABLENS,'named-expressions'),
- (TABLENS,'table'),
- (TABLENS,'tracked-changes'),
- (TEXTNS,'alphabetical-index-auto-mark-file'),
- (TEXTNS,'dde-connection-decls'),
- (TEXTNS,'sequence-decls'),
- (TEXTNS,'user-field-decls'),
- (TEXTNS,'variable-decls'),
- ),
- (OFFICENS,'styles') : (
- (NUMBERNS,'boolean-style'),
- (NUMBERNS,'currency-style'),
- (NUMBERNS,'date-style'),
- (NUMBERNS,'number-style'),
- (NUMBERNS,'percentage-style'),
- (NUMBERNS,'text-style'),
- (NUMBERNS,'time-style'),
- (DRAWNS,'fill-image'),
- (DRAWNS,'gradient'),
- (DRAWNS,'hatch'),
- (DRAWNS,'marker'),
- (DRAWNS,'opacity'),
- (DRAWNS,'stroke-dash'),
- (STYLENS,'default-style'),
- (STYLENS,'presentation-page-layout'),
- (STYLENS,'style'),
- (SVGNS,'linearGradient'),
- (SVGNS,'radialGradient'),
- (TEXTNS,'bibliography-configuration'),
- (TEXTNS,'linenumbering-configuration'),
- (TEXTNS,'list-style'),
- (TEXTNS,'notes-configuration'),
- (TEXTNS,'outline-style'),
- ),
- (OFFICENS,'text') : (
- (DR3DNS,'scene'),
- (DRAWNS,'a'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- (OFFICENS,'forms'),
- (TABLENS,'calculation-settings'),
- (TABLENS,'consolidation'),
- (TABLENS,'content-validations'),
- (TABLENS,'data-pilot-tables'),
- (TABLENS,'database-ranges'),
- (TABLENS,'dde-links'),
- (TABLENS,'label-ranges'),
- (TABLENS,'named-expressions'),
- (TABLENS,'table'),
- (TEXTNS,'alphabetical-index'),
- (TEXTNS,'alphabetical-index-auto-mark-file'),
- (TEXTNS,'bibliography'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'dde-connection-decls'),
- (TEXTNS,'h'),
- (TEXTNS,'illustration-index'),
- (TEXTNS,'list'),
- (TEXTNS,'numbered-paragraph'),
- (TEXTNS,'object-index'),
- (TEXTNS,'p'),
- (TEXTNS,'page-sequence'),
- (TEXTNS,'section'),
- (TEXTNS,'sequence-decls'),
- (TEXTNS,'soft-page-break'),
- (TEXTNS,'table-index'),
- (TEXTNS,'table-of-content'),
- (TEXTNS,'tracked-changes'),
- (TEXTNS,'user-field-decls'),
- (TEXTNS,'user-index'),
- (TEXTNS,'variable-decls'),
- ),
- (PRESENTATIONNS,'animation-group') : (
- (PRESENTATIONNS,'dim'),
- (PRESENTATIONNS,'hide-shape'),
- (PRESENTATIONNS,'hide-text'),
- (PRESENTATIONNS,'play'),
- (PRESENTATIONNS,'show-shape'),
- (PRESENTATIONNS,'show-text'),
- ),
- (PRESENTATIONNS,'animations') : (
- (PRESENTATIONNS,'animation-group'),
- (PRESENTATIONNS,'dim'),
- (PRESENTATIONNS,'hide-shape'),
- (PRESENTATIONNS,'hide-text'),
- (PRESENTATIONNS,'play'),
- (PRESENTATIONNS,'show-shape'),
- (PRESENTATIONNS,'show-text'),
- ),
- (PRESENTATIONNS,'date-time') : (
- ),
- (PRESENTATIONNS,'date-time-decl') : (
- ),
- (PRESENTATIONNS,'dim') : (
- (PRESENTATIONNS,'sound'),
- ),
- (PRESENTATIONNS,'event-listener') : (
- (PRESENTATIONNS,'sound'),
- ),
- (PRESENTATIONNS,'footer') : (
- ),
- (PRESENTATIONNS,'footer-decl') : (
- ),
- (PRESENTATIONNS,'header') : (
- ),
- (PRESENTATIONNS,'header-decl') : (
- ),
- (PRESENTATIONNS,'hide-shape') : (
- (PRESENTATIONNS,'sound'),
- ),
- (PRESENTATIONNS,'hide-text') : (
- (PRESENTATIONNS,'sound'),
- ),
-# allowed_children
- (PRESENTATIONNS,'notes') : (
- (DR3DNS,'scene'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- (OFFICENS,'forms'),
- ),
- (PRESENTATIONNS,'placeholder') : (
- ),
- (PRESENTATIONNS,'play') : (
- ),
- (PRESENTATIONNS,'settings') : (
- (PRESENTATIONNS,'show'),
- ),
- (PRESENTATIONNS,'show') : (
- ),
- (PRESENTATIONNS,'show-shape') : (
- (PRESENTATIONNS,'sound'),
- ),
- (PRESENTATIONNS,'show-text') : (
- (PRESENTATIONNS,'sound'),
- ),
- (PRESENTATIONNS,'sound') : (
- ),
- (SCRIPTNS,'event-listener') : (
- ),
- (STYLENS,'background-image') : (
- (OFFICENS,'binary-data'),
- ),
- (STYLENS,'chart-properties') : (
- (CHARTNS,'symbol-image'),
- ),
- (STYLENS,'column') : (
- ),
- (STYLENS,'column-sep') : (
- ),
- (STYLENS,'columns') : (
- (STYLENS,'column'),
- (STYLENS,'column-sep'),
- ),
- (STYLENS,'default-style') : (
- (STYLENS,'chart-properties'),
- (STYLENS,'drawing-page-properties'),
- (STYLENS,'graphic-properties'),
- (STYLENS,'paragraph-properties'),
- (STYLENS,'ruby-properties'),
- (STYLENS,'section-properties'),
- (STYLENS,'table-cell-properties'),
- (STYLENS,'table-column-properties'),
- (STYLENS,'table-properties'),
- (STYLENS,'table-row-properties'),
- (STYLENS,'text-properties'),
- ),
- (STYLENS,'drawing-page-properties') : (
- (PRESENTATIONNS,'sound'),
- ),
- (STYLENS,'drop-cap') : (
- ),
- (STYLENS,'font-face') : (
- (SVGNS,'definition-src'),
- (SVGNS,'font-face-src'),
- ),
- (STYLENS,'footer') : (
- (STYLENS,'region-center'),
- (STYLENS,'region-left'),
- (STYLENS,'region-right'),
- (TABLENS,'table'),
- (TEXTNS,'alphabetical-index'),
- (TEXTNS,'alphabetical-index-auto-mark-file'),
- (TEXTNS,'bibliography'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'dde-connection-decls'),
- (TEXTNS,'h'),
- (TEXTNS,'illustration-index'),
- (TEXTNS,'index-title'),
- (TEXTNS,'list'),
- (TEXTNS,'object-index'),
- (TEXTNS,'p'),
- (TEXTNS,'section'),
- (TEXTNS,'sequence-decls'),
- (TEXTNS,'table-index'),
- (TEXTNS,'table-of-content'),
- (TEXTNS,'tracked-changes'),
- (TEXTNS,'user-field-decls'),
- (TEXTNS,'user-index'),
- (TEXTNS,'variable-decls'),
- ),
-# allowed_children
- (STYLENS,'footer-left') : (
- (STYLENS,'region-center'),
- (STYLENS,'region-left'),
- (STYLENS,'region-right'),
- (TABLENS,'table'),
- (TEXTNS,'alphabetical-index'),
- (TEXTNS,'alphabetical-index-auto-mark-file'),
- (TEXTNS,'bibliography'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'dde-connection-decls'),
- (TEXTNS,'h'),
- (TEXTNS,'illustration-index'),
- (TEXTNS,'index-title'),
- (TEXTNS,'list'),
- (TEXTNS,'object-index'),
- (TEXTNS,'p'),
- (TEXTNS,'section'),
- (TEXTNS,'sequence-decls'),
- (TEXTNS,'table-index'),
- (TEXTNS,'table-of-content'),
- (TEXTNS,'tracked-changes'),
- (TEXTNS,'user-field-decls'),
- (TEXTNS,'user-index'),
- (TEXTNS,'variable-decls'),
- ),
- (STYLENS,'footer-style') : (
- (STYLENS,'header-footer-properties'),
- ),
- (STYLENS,'footnote-sep') : (
- ),
- (STYLENS,'graphic-properties') : (
- (STYLENS,'background-image'),
- (STYLENS,'columns'),
- (TEXTNS,'list-style'),
- ),
-# allowed_children
- (STYLENS,'handout-master') : (
- (DR3DNS,'scene'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- ),
- (STYLENS,'header') : (
- (STYLENS,'region-center'),
- (STYLENS,'region-left'),
- (STYLENS,'region-right'),
- (TABLENS,'table'),
- (TEXTNS,'alphabetical-index'),
- (TEXTNS,'alphabetical-index-auto-mark-file'),
- (TEXTNS,'bibliography'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'dde-connection-decls'),
- (TEXTNS,'h'),
- (TEXTNS,'illustration-index'),
- (TEXTNS,'index-title'),
- (TEXTNS,'list'),
- (TEXTNS,'object-index'),
- (TEXTNS,'p'),
- (TEXTNS,'section'),
- (TEXTNS,'sequence-decls'),
- (TEXTNS,'table-index'),
- (TEXTNS,'table-of-content'),
- (TEXTNS,'tracked-changes'),
- (TEXTNS,'user-field-decls'),
- (TEXTNS,'user-index'),
- (TEXTNS,'variable-decls'),
- ),
-# allowed_children
- (STYLENS,'header-footer-properties') : (
- (STYLENS,'background-image'),
- ),
- (STYLENS,'header-left') : (
- (STYLENS,'region-center'),
- (STYLENS,'region-left'),
- (STYLENS,'region-right'),
- (TABLENS,'table'),
- (TEXTNS,'alphabetical-index'),
- (TEXTNS,'alphabetical-index-auto-mark-file'),
- (TEXTNS,'bibliography'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'dde-connection-decls'),
- (TEXTNS,'h'),
- (TEXTNS,'illustration-index'),
- (TEXTNS,'index-title'),
- (TEXTNS,'list'),
- (TEXTNS,'object-index'),
- (TEXTNS,'p'),
- (TEXTNS,'section'),
- (TEXTNS,'sequence-decls'),
- (TEXTNS,'table-index'),
- (TEXTNS,'table-of-content'),
- (TEXTNS,'tracked-changes'),
- (TEXTNS,'user-field-decls'),
- (TEXTNS,'user-index'),
- (TEXTNS,'variable-decls'),
- ),
- (STYLENS,'header-style') : (
- (STYLENS,'header-footer-properties'),
- ),
- (STYLENS,'list-level-properties') : (
- ),
- (STYLENS,'map') : (
- ),
- (STYLENS,'master-page') : (
- (DR3DNS,'scene'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- (OFFICENS,'forms'),
- (PRESENTATIONNS,'notes'),
- (STYLENS,'footer'),
- (STYLENS,'footer-left'),
- (STYLENS,'header'),
- (STYLENS,'header-left'),
- (STYLENS,'style'),
- ),
- (STYLENS,'page-layout') : (
- (STYLENS,'footer-style'),
- (STYLENS,'header-style'),
- (STYLENS,'page-layout-properties'),
- ),
- (STYLENS,'page-layout-properties') : (
- (STYLENS,'background-image'),
- (STYLENS,'columns'),
- (STYLENS,'footnote-sep'),
- ),
-# allowed_children
- (STYLENS,'paragraph-properties') : (
- (STYLENS,'background-image'),
- (STYLENS,'drop-cap'),
- (STYLENS,'tab-stops'),
- ),
- (STYLENS,'presentation-page-layout') : (
- (PRESENTATIONNS,'placeholder'),
- ),
- (STYLENS,'region-center') : (
- (TEXTNS,'p'),
- ),
- (STYLENS,'region-left') : (
- (TEXTNS,'p'),
- ),
- (STYLENS,'region-right') : (
- (TEXTNS,'p'),
- ),
- (STYLENS,'ruby-properties') : (
- ),
- (STYLENS,'section-properties') : (
- (STYLENS,'background-image'),
- (STYLENS,'columns'),
- (TEXTNS,'notes-configuration'),
- ),
- (STYLENS,'style') : (
- (STYLENS,'chart-properties'),
- (STYLENS,'drawing-page-properties'),
- (STYLENS,'graphic-properties'),
- (STYLENS,'map'),
- (STYLENS,'paragraph-properties'),
- (STYLENS,'ruby-properties'),
- (STYLENS,'section-properties'),
- (STYLENS,'table-cell-properties'),
- (STYLENS,'table-column-properties'),
- (STYLENS,'table-properties'),
- (STYLENS,'table-row-properties'),
- (STYLENS,'text-properties'),
- ),
- (STYLENS,'tab-stop') : (
- ),
- (STYLENS,'tab-stops') : (
- (STYLENS,'tab-stop'),
- ),
-# allowed_children
- (STYLENS,'table-cell-properties') : (
- (STYLENS,'background-image'),
- ),
- (STYLENS,'table-column-properties') : (
- ),
- (STYLENS,'table-properties') : (
- (STYLENS,'background-image'),
- ),
- (STYLENS,'table-row-properties') : (
- (STYLENS,'background-image'),
- ),
- (STYLENS,'text-properties') : (
- ),
- (SVGNS,'definition-src') : (
- ),
- (SVGNS,'desc') : (
- ),
- (SVGNS,'font-face-format') : (
- ),
- (SVGNS,'font-face-name') : (
- ),
- (SVGNS,'font-face-src') : (
- (SVGNS,'font-face-name'),
- (SVGNS,'font-face-uri'),
- ),
- (SVGNS,'font-face-uri') : (
- (SVGNS,'font-face-format'),
- ),
- (SVGNS,'linearGradient') : (
- (SVGNS,'stop'),
- ),
- (SVGNS,'radialGradient') : (
- (SVGNS,'stop'),
- ),
- (SVGNS,'stop') : (
- ),
- (SVGNS,'title') : (
- ),
- (TABLENS,'body') : (
- ),
- (TABLENS,'calculation-settings') : (
- (TABLENS,'iteration'),
- (TABLENS,'null-date'),
- ),
-# allowed_children
- (TABLENS,'cell-address') : (
- ),
- (TABLENS,'cell-content-change') : (
- (OFFICENS,'change-info'),
- (TABLENS,'cell-address'),
- (TABLENS,'deletions'),
- (TABLENS,'dependencies'),
- (TABLENS,'previous'),
- ),
- (TABLENS,'cell-content-deletion') : (
- (TABLENS,'cell-address'),
- (TABLENS,'change-track-table-cell'),
- ),
- (TABLENS,'cell-range-source') : (
- ),
- (TABLENS,'change-deletion') : (
- ),
- (TABLENS,'change-track-table-cell') : (
- (TEXTNS,'p'),
- ),
- (TABLENS,'consolidation') : (
- ),
- (TABLENS,'content-validation') : (
- (OFFICENS,'event-listeners'),
- (TABLENS,'error-macro'),
- (TABLENS,'error-message'),
- (TABLENS,'help-message'),
- ),
-# allowed_children
- (TABLENS,'content-validations') : (
- (TABLENS,'content-validation'),
- ),
- (TABLENS,'covered-table-cell') : (
- (DR3DNS,'scene'),
- (DRAWNS,'a'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- (OFFICENS,'annotation'),
- (TABLENS,'cell-range-source'),
- (TABLENS,'detective'),
- (TABLENS,'table'),
- (TEXTNS,'alphabetical-index'),
- (TEXTNS,'bibliography'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'h'),
- (TEXTNS,'illustration-index'),
- (TEXTNS,'list'),
- (TEXTNS,'numbered-paragraph'),
- (TEXTNS,'object-index'),
- (TEXTNS,'p'),
- (TEXTNS,'section'),
- (TEXTNS,'soft-page-break'),
- (TEXTNS,'table-index'),
- (TEXTNS,'table-of-content'),
- (TEXTNS,'user-index'),
- ),
-# allowed_children
- (TABLENS,'cut-offs') : (
- (TABLENS,'insertion-cut-off'),
- (TABLENS,'movement-cut-off'),
- ),
- (TABLENS,'data-pilot-display-info') : (
- ),
- (TABLENS,'data-pilot-field') : (
- (TABLENS,'data-pilot-field-reference'),
- (TABLENS,'data-pilot-groups'),
- (TABLENS,'data-pilot-level'),
- ),
- (TABLENS,'data-pilot-field-reference') : (
- ),
- (TABLENS,'data-pilot-group') : (
- (TABLENS,'data-pilot-group-member'),
- ),
- (TABLENS,'data-pilot-group-member') : (
- ),
- (TABLENS,'data-pilot-groups') : (
- (TABLENS,'data-pilot-group'),
- ),
- (TABLENS,'data-pilot-layout-info') : (
- ),
- (TABLENS,'data-pilot-level') : (
- (TABLENS,'data-pilot-display-info'),
- (TABLENS,'data-pilot-layout-info'),
- (TABLENS,'data-pilot-members'),
- (TABLENS,'data-pilot-sort-info'),
- (TABLENS,'data-pilot-subtotals'),
- ),
- (TABLENS,'data-pilot-member') : (
- ),
- (TABLENS,'data-pilot-members') : (
- (TABLENS,'data-pilot-member'),
- ),
- (TABLENS,'data-pilot-sort-info') : (
- ),
- (TABLENS,'data-pilot-subtotal') : (
- ),
- (TABLENS,'data-pilot-subtotals') : (
- (TABLENS,'data-pilot-subtotal'),
- ),
-# allowed_children
- (TABLENS,'data-pilot-table') : (
- (TABLENS,'data-pilot-field'),
- (TABLENS,'database-source-query'),
- (TABLENS,'database-source-sql'),
- (TABLENS,'database-source-table'),
- (TABLENS,'source-cell-range'),
- (TABLENS,'source-service'),
- ),
- (TABLENS,'data-pilot-tables') : (
- (TABLENS,'data-pilot-table'),
- ),
- (TABLENS,'database-range') : (
- (TABLENS,'database-source-query'),
- (TABLENS,'database-source-sql'),
- (TABLENS,'database-source-table'),
- (TABLENS,'filter'),
- (TABLENS,'sort'),
- (TABLENS,'subtotal-rules'),
- ),
- (TABLENS,'database-ranges') : (
- (TABLENS,'database-range'),
- ),
- (TABLENS,'database-source-query') : (
- ),
- (TABLENS,'database-source-sql') : (
- ),
- (TABLENS,'database-source-table') : (
- ),
-# allowed_children
- (TABLENS,'dde-link') : (
- (OFFICENS,'dde-source'),
- (TABLENS,'table'),
- ),
- (TABLENS,'dde-links') : (
- (TABLENS,'dde-link'),
- ),
- (TABLENS,'deletion') : (
- (OFFICENS,'change-info'),
- (TABLENS,'cut-offs'),
- (TABLENS,'deletions'),
- (TABLENS,'dependencies'),
- ),
- (TABLENS,'deletions') : (
- (TABLENS,'cell-content-deletion'),
- (TABLENS,'change-deletion'),
- ),
- (TABLENS,'dependencies') : (
- (TABLENS,'dependency'),
- ),
- (TABLENS,'dependency') : (
- ),
- (TABLENS,'detective') : (
- (TABLENS,'highlighted-range'),
- (TABLENS,'operation'),
- ),
-# allowed_children
- (TABLENS,'error-macro') : (
- ),
- (TABLENS,'error-message') : (
- (TEXTNS,'p'),
- ),
- (TABLENS,'even-columns') : (
- ),
- (TABLENS,'even-rows') : (
- ),
- (TABLENS,'filter') : (
- (TABLENS,'filter-and'),
- (TABLENS,'filter-condition'),
- (TABLENS,'filter-or'),
- ),
- (TABLENS,'filter-and') : (
- (TABLENS,'filter-condition'),
- (TABLENS,'filter-or'),
- ),
- (TABLENS,'filter-condition') : (
- ),
- (TABLENS,'filter-or') : (
- (TABLENS,'filter-and'),
- (TABLENS,'filter-condition'),
- ),
-# allowed_children
- (TABLENS,'first-column') : (
- ),
- (TABLENS,'first-row') : (
- ),
- (TABLENS,'help-message') : (
- (TEXTNS,'p'),
- ),
- (TABLENS,'highlighted-range') : (
- ),
- (TABLENS,'insertion') : (
- (OFFICENS,'change-info'),
- (TABLENS,'deletions'),
- (TABLENS,'dependencies'),
- ),
- (TABLENS,'insertion-cut-off') : (
- ),
- (TABLENS,'iteration') : (
- ),
- (TABLENS,'label-range') : (
- ),
- (TABLENS,'label-ranges') : (
- (TABLENS,'label-range'),
- ),
- (TABLENS,'last-column') : (
- ),
- (TABLENS,'last-row') : (
- ),
- (TABLENS,'movement') : (
- (OFFICENS,'change-info'),
- (TABLENS,'deletions'),
- (TABLENS,'dependencies'),
- (TABLENS,'source-range-address'),
- (TABLENS,'target-range-address'),
- ),
- (TABLENS,'movement-cut-off') : (
- ),
- (TABLENS,'named-expression') : (
- ),
- (TABLENS,'named-expressions') : (
- (TABLENS,'named-expression'),
- (TABLENS,'named-range'),
- ),
-# allowed_children
- (TABLENS,'named-range') : (
- ),
- (TABLENS,'null-date') : (
- ),
- (TABLENS,'odd-columns') : (
- ),
- (TABLENS,'odd-rows') : (
- ),
- (TABLENS,'operation') : (
- ),
- (TABLENS,'previous') : (
- (TABLENS,'change-track-table-cell'),
- ),
- (TABLENS,'scenario') : (
- ),
- (TABLENS,'shapes') : (
- (DR3DNS,'scene'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- ),
-# allowed_children
- (TABLENS,'sort') : (
- (TABLENS,'sort-by'),
- ),
- (TABLENS,'sort-by') : (
- ),
- (TABLENS,'sort-groups') : (
- ),
- (TABLENS,'source-cell-range') : (
- (TABLENS,'filter'),
- ),
- (TABLENS,'source-range-address') : (
- ),
- (TABLENS,'source-service') : (
- ),
- (TABLENS,'subtotal-field') : (
- ),
- (TABLENS,'subtotal-rule') : (
- (TABLENS,'subtotal-field'),
- ),
- (TABLENS,'subtotal-rules') : (
- (TABLENS,'sort-groups'),
- (TABLENS,'subtotal-rule'),
- ),
-# allowed_children
- (TABLENS,'table') : (
- (OFFICENS,'dde-source'),
- (OFFICENS,'forms'),
- (TEXTNS,'soft-page-break'),
- (TABLENS,'scenario'),
- (TABLENS,'shapes'),
- (TABLENS,'table-column'),
- (TABLENS,'table-column-group'),
- (TABLENS,'table-columns'),
- (TABLENS,'table-header-columns'),
- (TABLENS,'table-header-rows'),
- (TABLENS,'table-row'),
- (TABLENS,'table-row-group'),
- (TABLENS,'table-rows'),
- (TABLENS,'table-source'),
- ),
- (TABLENS,'table-cell') : (
- (DR3DNS,'scene'),
- (DRAWNS,'a'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- (OFFICENS,'annotation'),
- (TABLENS,'cell-range-source'),
- (TABLENS,'detective'),
- (TABLENS,'table'),
- (TEXTNS,'alphabetical-index'),
- (TEXTNS,'bibliography'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'h'),
- (TEXTNS,'illustration-index'),
- (TEXTNS,'list'),
- (TEXTNS,'numbered-paragraph'),
- (TEXTNS,'object-index'),
- (TEXTNS,'p'),
- (TEXTNS,'section'),
- (TEXTNS,'soft-page-break'),
- (TEXTNS,'table-index'),
- (TEXTNS,'table-of-content'),
- (TEXTNS,'user-index'),
- ),
-# allowed_children
- (TABLENS,'table-column') : (
- ),
- (TABLENS,'table-column-group') : (
- (TABLENS,'table-column'),
- (TABLENS,'table-column-group'),
- (TABLENS,'table-columns'),
- (TABLENS,'table-header-columns'),
- ),
- (TABLENS,'table-columns') : (
- (TABLENS,'table-column'),
- ),
- (TABLENS,'table-header-columns') : (
- (TABLENS,'table-column'),
- ),
- (TABLENS,'table-header-rows') : (
- (TABLENS,'table-row'),
- (TEXTNS,'soft-page-break'),
- ),
- (TABLENS,'table-row') : (
- (TABLENS,'covered-table-cell'),
- (TABLENS,'table-cell'),
- ),
- (TABLENS,'table-row-group') : (
- (TABLENS,'table-header-rows'),
- (TABLENS,'table-row'),
- (TABLENS,'table-row-group'),
- (TABLENS,'table-rows'),
- (TEXTNS,'soft-page-break'),
- ),
- (TABLENS,'table-rows') : (
- (TABLENS,'table-row'),
- (TEXTNS,'soft-page-break'),
- ),
-# allowed_children
- (TABLENS,'table-source') : (
- ),
- (TABLENS,'table-template') : (
- (TABLENS,'body'),
- (TABLENS,'even-columns'),
- (TABLENS,'even-rows'),
- (TABLENS,'first-column'),
- (TABLENS,'first-row'),
- (TABLENS,'last-column'),
- (TABLENS,'last-row'),
- (TABLENS,'odd-columns'),
- (TABLENS,'odd-rows'),
- ),
- (TABLENS,'target-range-address') : (
- ),
- (TABLENS,'tracked-changes') : (
- (TABLENS,'cell-content-change'),
- (TABLENS,'deletion'),
- (TABLENS,'insertion'),
- (TABLENS,'movement'),
- ),
-# allowed_children
- (TEXTNS,'a') : (
- (DR3DNS,'scene'),
- (DRAWNS,'a'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- (OFFICENS,'annotation'),
- (OFFICENS,'event-listeners'),
- (PRESENTATIONNS,'date-time'),
- (PRESENTATIONNS,'footer'),
- (PRESENTATIONNS,'header'),
- (TEXTNS,'a'),
- (TEXTNS,'alphabetical-index-mark'),
- (TEXTNS,'alphabetical-index-mark-end'),
- (TEXTNS,'alphabetical-index-mark-start'),
- (TEXTNS,'author-initials'),
- (TEXTNS,'author-name'),
- (TEXTNS,'bibliography-mark'),
- (TEXTNS,'bookmark'),
- (TEXTNS,'bookmark-end'),
- (TEXTNS,'bookmark-ref'),
- (TEXTNS,'bookmark-start'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'chapter'),
- (TEXTNS,'conditional-text'),
- (TEXTNS,'creation-date'),
- (TEXTNS,'creation-time'),
- (TEXTNS,'creator'),
- (TEXTNS,'database-display'),
- (TEXTNS,'database-name'),
- (TEXTNS,'database-next'),
- (TEXTNS,'database-row-number'),
- (TEXTNS,'database-row-select'),
- (TEXTNS,'date'),
- (TEXTNS,'dde-connection'),
- (TEXTNS,'description'),
- (TEXTNS,'editing-cycles'),
- (TEXTNS,'editing-duration'),
- (TEXTNS,'execute-macro'),
- (TEXTNS,'expression'),
- (TEXTNS,'file-name'),
- (TEXTNS,'hidden-paragraph'),
- (TEXTNS,'hidden-text'),
- (TEXTNS,'initial-creator'),
- (TEXTNS,'keywords'),
- (TEXTNS,'line-break'),
- (TEXTNS,'measure'),
- (TEXTNS,'modification-date'),
- (TEXTNS,'modification-time'),
- (TEXTNS,'note'),
- (TEXTNS,'note-ref'),
- (TEXTNS,'page-count'),
- (TEXTNS,'paragraph-count'),
- (TEXTNS,'word-count'),
- (TEXTNS,'character-count'),
- (TEXTNS,'table-count'),
- (TEXTNS,'image-count'),
- (TEXTNS,'object-count'),
- (TEXTNS,'page-continuation'),
- (TEXTNS,'page-number'),
- (TEXTNS,'page-variable-get'),
- (TEXTNS,'page-variable-set'),
- (TEXTNS,'placeholder'),
- (TEXTNS,'print-date'),
- (TEXTNS,'print-time'),
- (TEXTNS,'printed-by'),
- (TEXTNS,'reference-mark'),
- (TEXTNS,'reference-mark-end'),
- (TEXTNS,'reference-mark-start'),
- (TEXTNS,'reference-ref'),
- (TEXTNS,'ruby'),
- (TEXTNS,'s'),
- (TEXTNS,'script'),
- (TEXTNS,'sender-city'),
- (TEXTNS,'sender-company'),
- (TEXTNS,'sender-country'),
- (TEXTNS,'sender-email'),
- (TEXTNS,'sender-fax'),
- (TEXTNS,'sender-firstname'),
- (TEXTNS,'sender-initials'),
- (TEXTNS,'sender-lastname'),
- (TEXTNS,'sender-phone-private'),
- (TEXTNS,'sender-phone-work'),
- (TEXTNS,'sender-position'),
- (TEXTNS,'sender-postal-code'),
- (TEXTNS,'sender-state-or-province'),
- (TEXTNS,'sender-street'),
- (TEXTNS,'sender-title'),
- (TEXTNS,'sequence'),
- (TEXTNS,'sequence-ref'),
- (TEXTNS,'sheet-name'),
- (TEXTNS,'soft-page-break'),
- (TEXTNS,'span'),
- (TEXTNS,'subject'),
- (TEXTNS,'tab'),
- (TEXTNS,'table-formula'),
- (TEXTNS,'template-name'),
- (TEXTNS,'text-input'),
- (TEXTNS,'time'),
- (TEXTNS,'title'),
- (TEXTNS,'toc-mark'),
- (TEXTNS,'toc-mark-end'),
- (TEXTNS,'toc-mark-start'),
- (TEXTNS,'user-defined'),
- (TEXTNS,'user-field-get'),
- (TEXTNS,'user-field-input'),
- (TEXTNS,'user-index-mark'),
- (TEXTNS,'user-index-mark-end'),
- (TEXTNS,'user-index-mark-start'),
- (TEXTNS,'variable-get'),
- (TEXTNS,'variable-input'),
- (TEXTNS,'variable-set'),
- ),
-# allowed_children
- (TEXTNS,'alphabetical-index') : (
- (TEXTNS,'alphabetical-index-source'),
- (TEXTNS,'index-body'),
- ),
- (TEXTNS,'alphabetical-index-auto-mark-file') : (
- ),
- (TEXTNS,'alphabetical-index-entry-template') : (
- (TEXTNS,'index-entry-chapter'),
- (TEXTNS,'index-entry-page-number'),
- (TEXTNS,'index-entry-span'),
- (TEXTNS,'index-entry-tab-stop'),
- (TEXTNS,'index-entry-text'),
- ),
- (TEXTNS,'alphabetical-index-mark') : (
- ),
- (TEXTNS,'alphabetical-index-mark-end') : (
- ),
- (TEXTNS,'alphabetical-index-mark-start') : (
- ),
- (TEXTNS,'alphabetical-index-source') : (
- (TEXTNS,'alphabetical-index-entry-template'),
- (TEXTNS,'index-title-template'),
- ),
- (TEXTNS,'author-initials') : (
- ),
- (TEXTNS,'author-name') : (
- ),
- (TEXTNS,'bibliography') : (
- (TEXTNS,'bibliography-source'),
- (TEXTNS,'index-body'),
- ),
- (TEXTNS,'bibliography-configuration') : (
- (TEXTNS,'sort-key'),
- ),
- (TEXTNS,'bibliography-entry-template') : (
- (TEXTNS,'index-entry-bibliography'),
- (TEXTNS,'index-entry-span'),
- (TEXTNS,'index-entry-tab-stop'),
- ),
-# allowed_children
- (TEXTNS,'bibliography-mark') : (
- ),
- (TEXTNS,'bibliography-source') : (
- (TEXTNS,'bibliography-entry-template'),
- (TEXTNS,'index-title-template'),
- ),
- (TEXTNS,'bookmark') : (
- ),
- (TEXTNS,'bookmark-end') : (
- ),
- (TEXTNS,'bookmark-ref') : (
- ),
- (TEXTNS,'bookmark-start') : (
- ),
- (TEXTNS,'change') : (
- ),
- (TEXTNS,'change-end') : (
- ),
- (TEXTNS,'change-start') : (
- ),
- (TEXTNS,'changed-region') : (
- (TEXTNS,'deletion'),
- (TEXTNS,'format-change'),
- (TEXTNS,'insertion'),
- ),
- (TEXTNS,'chapter') : (
- ),
- (TEXTNS,'character-count') : (
- ),
- (TEXTNS,'conditional-text') : (
- ),
- (TEXTNS,'creation-date') : (
- ),
- (TEXTNS,'creation-time') : (
- ),
- (TEXTNS,'creator') : (
- ),
- (TEXTNS,'database-display') : (
- (FORMNS,'connection-resource'),
- ),
- (TEXTNS,'database-name') : (
- (FORMNS,'connection-resource'),
- ),
- (TEXTNS,'database-next') : (
- (FORMNS,'connection-resource'),
- ),
- (TEXTNS,'database-row-number') : (
- (FORMNS,'connection-resource'),
- ),
- (TEXTNS,'database-row-select') : (
- (FORMNS,'connection-resource'),
- ),
- (TEXTNS,'date') : (
- ),
- (TEXTNS,'dde-connection') : (
- ),
- (TEXTNS,'dde-connection-decl') : (
- ),
- (TEXTNS,'dde-connection-decls') : (
- (TEXTNS,'dde-connection-decl'),
- ),
-# allowed_children
- (TEXTNS,'deletion') : (
- (DR3DNS,'scene'),
- (DRAWNS,'a'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- (OFFICENS,'change-info'),
- (TABLENS,'table'),
- (TEXTNS,'alphabetical-index'),
- (TEXTNS,'bibliography'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'h'),
- (TEXTNS,'illustration-index'),
- (TEXTNS,'list'),
- (TEXTNS,'numbered-paragraph'),
- (TEXTNS,'object-index'),
- (TEXTNS,'p'),
- (TEXTNS,'section'),
- (TEXTNS,'soft-page-break'),
- (TEXTNS,'table-index'),
- (TEXTNS,'table-of-content'),
- (TEXTNS,'user-index'),
- ),
- (TEXTNS,'description') : (
- ),
- (TEXTNS,'editing-cycles') : (
- ),
- (TEXTNS,'editing-duration') : (
- ),
- (TEXTNS,'execute-macro') : (
- (OFFICENS,'event-listeners'),
- ),
- (TEXTNS,'expression') : (
- ),
- (TEXTNS,'file-name') : (
- ),
- (TEXTNS,'format-change') : (
- (OFFICENS,'change-info'),
- ),
-# allowed_children
- (TEXTNS,'h') : (
- (DR3DNS,'scene'),
- (DRAWNS,'a'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- (OFFICENS,'annotation'),
- (PRESENTATIONNS,'date-time'),
- (PRESENTATIONNS,'footer'),
- (PRESENTATIONNS,'header'),
- (TEXTNS,'a'),
- (TEXTNS,'alphabetical-index-mark'),
- (TEXTNS,'alphabetical-index-mark-end'),
- (TEXTNS,'alphabetical-index-mark-start'),
- (TEXTNS,'author-initials'),
- (TEXTNS,'author-name'),
- (TEXTNS,'bibliography-mark'),
- (TEXTNS,'bookmark'),
- (TEXTNS,'bookmark-end'),
- (TEXTNS,'bookmark-ref'),
- (TEXTNS,'bookmark-start'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'chapter'),
- (TEXTNS,'conditional-text'),
- (TEXTNS,'creation-date'),
- (TEXTNS,'creation-time'),
- (TEXTNS,'creator'),
- (TEXTNS,'database-display'),
- (TEXTNS,'database-name'),
- (TEXTNS,'database-next'),
- (TEXTNS,'database-row-number'),
- (TEXTNS,'database-row-select'),
- (TEXTNS,'date'),
- (TEXTNS,'dde-connection'),
- (TEXTNS,'description'),
- (TEXTNS,'editing-cycles'),
- (TEXTNS,'editing-duration'),
- (TEXTNS,'execute-macro'),
- (TEXTNS,'expression'),
- (TEXTNS,'file-name'),
- (TEXTNS,'hidden-paragraph'),
- (TEXTNS,'hidden-text'),
- (TEXTNS,'initial-creator'),
- (TEXTNS,'keywords'),
- (TEXTNS,'line-break'),
- (TEXTNS,'measure'),
- (TEXTNS,'modification-date'),
- (TEXTNS,'modification-time'),
- (TEXTNS,'note'),
- (TEXTNS,'note-ref'),
- (TEXTNS,'number'),
- (TEXTNS,'page-count'),
- (TEXTNS,'paragraph-count'),
- (TEXTNS,'word-count'),
- (TEXTNS,'character-count'),
- (TEXTNS,'table-count'),
- (TEXTNS,'image-count'),
- (TEXTNS,'object-count'),
- (TEXTNS,'page-continuation'),
- (TEXTNS,'page-number'),
- (TEXTNS,'page-variable-get'),
- (TEXTNS,'page-variable-set'),
- (TEXTNS,'placeholder'),
- (TEXTNS,'print-date'),
- (TEXTNS,'print-time'),
- (TEXTNS,'printed-by'),
- (TEXTNS,'reference-mark'),
- (TEXTNS,'reference-mark-end'),
- (TEXTNS,'reference-mark-start'),
- (TEXTNS,'reference-ref'),
- (TEXTNS,'ruby'),
- (TEXTNS,'s'),
- (TEXTNS,'script'),
- (TEXTNS,'sender-city'),
- (TEXTNS,'sender-company'),
- (TEXTNS,'sender-country'),
- (TEXTNS,'sender-email'),
- (TEXTNS,'sender-fax'),
- (TEXTNS,'sender-firstname'),
- (TEXTNS,'sender-initials'),
- (TEXTNS,'sender-lastname'),
- (TEXTNS,'sender-phone-private'),
- (TEXTNS,'sender-phone-work'),
- (TEXTNS,'sender-position'),
- (TEXTNS,'sender-postal-code'),
- (TEXTNS,'sender-state-or-province'),
- (TEXTNS,'sender-street'),
- (TEXTNS,'sender-title'),
- (TEXTNS,'sequence'),
- (TEXTNS,'sequence-ref'),
- (TEXTNS,'sheet-name'),
- (TEXTNS,'soft-page-break'),
- (TEXTNS,'span'),
- (TEXTNS,'subject'),
- (TEXTNS,'tab'),
- (TEXTNS,'table-formula'),
- (TEXTNS,'template-name'),
- (TEXTNS,'text-input'),
- (TEXTNS,'time'),
- (TEXTNS,'title'),
- (TEXTNS,'toc-mark'),
- (TEXTNS,'toc-mark-end'),
- (TEXTNS,'toc-mark-start'),
- (TEXTNS,'user-defined'),
- (TEXTNS,'user-field-get'),
- (TEXTNS,'user-field-input'),
- (TEXTNS,'user-index-mark'),
- (TEXTNS,'user-index-mark-end'),
- (TEXTNS,'user-index-mark-start'),
- (TEXTNS,'variable-get'),
- (TEXTNS,'variable-input'),
- (TEXTNS,'variable-set'),
- ),
-# allowed_children
- (TEXTNS,'hidden-paragraph') : (
- ),
- (TEXTNS,'hidden-text') : (
- ),
- (TEXTNS,'illustration-index') : (
- (TEXTNS,'illustration-index-source'),
- (TEXTNS,'index-body'),
- ),
- (TEXTNS,'illustration-index-entry-template') : (
- (TEXTNS,'index-entry-page-number'),
- (TEXTNS,'index-entry-span'),
- (TEXTNS,'index-entry-tab-stop'),
- (TEXTNS,'index-entry-text'),
- ),
- (TEXTNS,'illustration-index-source') : (
- (TEXTNS,'illustration-index-entry-template'),
- (TEXTNS,'index-title-template'),
- ),
- (TEXTNS,'image-count') : (
- ),
-# allowed_children
- (TEXTNS,'index-body') : (
- (DR3DNS,'scene'),
- (DRAWNS,'a'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- (TABLENS,'table'),
- (TEXTNS,'alphabetical-index'),
- (TEXTNS,'bibliography'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'h'),
- (TEXTNS,'illustration-index'),
- (TEXTNS,'index-title'),
- (TEXTNS,'list'),
- (TEXTNS,'numbered-paragraph'),
- (TEXTNS,'object-index'),
- (TEXTNS,'p'),
- (TEXTNS,'section'),
- (TEXTNS,'soft-page-break'),
- (TEXTNS,'table-index'),
- (TEXTNS,'table-of-content'),
- (TEXTNS,'user-index'),
- ),
- (TEXTNS,'index-entry-bibliography') : (
- ),
- (TEXTNS,'index-entry-chapter') : (
- ),
- (TEXTNS,'index-entry-link-end') : (
- ),
- (TEXTNS,'index-entry-link-start') : (
- ),
- (TEXTNS,'index-entry-page-number') : (
- ),
- (TEXTNS,'index-entry-span') : (
- ),
- (TEXTNS,'index-entry-tab-stop') : (
- ),
- (TEXTNS,'index-entry-text') : (
- ),
- (TEXTNS,'index-source-style') : (
- ),
- (TEXTNS,'index-source-styles') : (
- (TEXTNS,'index-source-style'),
- ),
-# allowed_children
- (TEXTNS,'index-title') : (
- (DR3DNS,'scene'),
- (DRAWNS,'a'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- (TABLENS,'table'),
- (TEXTNS,'alphabetical-index'),
- (TEXTNS,'bibliography'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'h'),
- (TEXTNS,'illustration-index'),
- (TEXTNS,'index-title'),
- (TEXTNS,'list'),
- (TEXTNS,'numbered-paragraph'),
- (TEXTNS,'object-index'),
- (TEXTNS,'p'),
- (TEXTNS,'section'),
- (TEXTNS,'soft-page-break'),
- (TEXTNS,'table-index'),
- (TEXTNS,'table-of-content'),
- (TEXTNS,'user-index'),
- ),
- (TEXTNS,'index-title-template') : (
- ),
- (TEXTNS,'initial-creator') : (
- ),
- (TEXTNS,'insertion') : (
- (OFFICENS,'change-info'),
- ),
- (TEXTNS,'keywords') : (
- ),
- (TEXTNS,'line-break') : (
- ),
- (TEXTNS,'linenumbering-configuration') : (
- (TEXTNS,'linenumbering-separator'),
- ),
- (TEXTNS,'linenumbering-separator') : (
- ),
- (TEXTNS,'list') : (
- (TEXTNS,'list-header'),
- (TEXTNS,'list-item'),
- ),
- (TEXTNS,'list-header') : (
- (TEXTNS,'h'),
- (TEXTNS,'list'),
- (TEXTNS,'number'),
- (TEXTNS,'p'),
- (TEXTNS,'soft-page-break'),
- ),
- (TEXTNS,'list-item') : (
- (TEXTNS,'h'),
- (TEXTNS,'list'),
- (TEXTNS,'number'),
- (TEXTNS,'p'),
- (TEXTNS,'soft-page-break'),
- ),
- (TEXTNS,'list-level-style-bullet') : (
- (STYLENS,'list-level-properties'),
- (STYLENS,'text-properties'),
- ),
- (TEXTNS,'list-level-style-image') : (
- (OFFICENS,'binary-data'),
- (STYLENS,'list-level-properties'),
- ),
- (TEXTNS,'list-level-style-number') : (
- (STYLENS,'list-level-properties'),
- (STYLENS,'text-properties'),
- ),
- (TEXTNS,'list-style') : (
- (TEXTNS,'list-level-style-bullet'),
- (TEXTNS,'list-level-style-image'),
- (TEXTNS,'list-level-style-number'),
- ),
- (TEXTNS,'measure') : (
- ),
- (TEXTNS,'modification-date') : (
- ),
- (TEXTNS,'modification-time') : (
- ),
- (TEXTNS,'note') : (
- (TEXTNS,'note-body'),
- (TEXTNS,'note-citation'),
- ),
-# allowed_children
- (TEXTNS,'note-body') : (
- (DR3DNS,'scene'),
- (DRAWNS,'a'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- (TABLENS,'table'),
- (TEXTNS,'alphabetical-index'),
- (TEXTNS,'bibliography'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'h'),
- (TEXTNS,'illustration-index'),
- (TEXTNS,'list'),
- (TEXTNS,'numbered-paragraph'),
- (TEXTNS,'object-index'),
- (TEXTNS,'p'),
- (TEXTNS,'section'),
- (TEXTNS,'soft-page-break'),
- (TEXTNS,'table-index'),
- (TEXTNS,'table-of-content'),
- (TEXTNS,'user-index'),
- ),
- (TEXTNS,'note-citation') : (
- ),
- (TEXTNS,'note-continuation-notice-backward') : (
- ),
- (TEXTNS,'note-continuation-notice-forward') : (
- ),
- (TEXTNS,'note-ref') : (
- ),
- (TEXTNS,'notes-configuration') : (
- (TEXTNS,'note-continuation-notice-backward'),
- (TEXTNS,'note-continuation-notice-forward'),
- ),
- (TEXTNS,'number') : (
- ),
- (TEXTNS,'numbered-paragraph') : (
- (TEXTNS,'h'),
- (TEXTNS,'number'),
- (TEXTNS,'p'),
- ),
- (TEXTNS,'object-count') : (
- ),
- (TEXTNS,'object-index') : (
- (TEXTNS,'index-body'),
- (TEXTNS,'object-index-source'),
- ),
- (TEXTNS,'object-index-entry-template') : (
- (TEXTNS,'index-entry-page-number'),
- (TEXTNS,'index-entry-span'),
- (TEXTNS,'index-entry-tab-stop'),
- (TEXTNS,'index-entry-text'),
- ),
- (TEXTNS,'object-index-source') : (
- (TEXTNS,'index-title-template'),
- (TEXTNS,'object-index-entry-template'),
- ),
- (TEXTNS,'outline-level-style') : (
- (STYLENS,'list-level-properties'),
- (STYLENS,'text-properties'),
- ),
- (TEXTNS,'outline-style') : (
- (TEXTNS,'outline-level-style'),
- ),
-# allowed_children
- (TEXTNS,'p') : (
- (DR3DNS,'scene'),
- (DRAWNS,'a'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- (OFFICENS,'annotation'),
- (PRESENTATIONNS,'date-time'),
- (PRESENTATIONNS,'footer'),
- (PRESENTATIONNS,'header'),
- (TEXTNS,'a'),
- (TEXTNS,'alphabetical-index-mark'),
- (TEXTNS,'alphabetical-index-mark-end'),
- (TEXTNS,'alphabetical-index-mark-start'),
- (TEXTNS,'author-initials'),
- (TEXTNS,'author-name'),
- (TEXTNS,'bibliography-mark'),
- (TEXTNS,'bookmark'),
- (TEXTNS,'bookmark-end'),
- (TEXTNS,'bookmark-ref'),
- (TEXTNS,'bookmark-start'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'chapter'),
- (TEXTNS,'character-count'),
- (TEXTNS,'conditional-text'),
- (TEXTNS,'creation-date'),
- (TEXTNS,'creation-time'),
- (TEXTNS,'creator'),
- (TEXTNS,'database-display'),
- (TEXTNS,'database-name'),
- (TEXTNS,'database-next'),
- (TEXTNS,'database-row-number'),
- (TEXTNS,'database-row-select'),
- (TEXTNS,'date'),
- (TEXTNS,'dde-connection'),
- (TEXTNS,'description'),
- (TEXTNS,'editing-cycles'),
- (TEXTNS,'editing-duration'),
- (TEXTNS,'execute-macro'),
- (TEXTNS,'expression'),
- (TEXTNS,'file-name'),
- (TEXTNS,'hidden-paragraph'),
- (TEXTNS,'hidden-text'),
- (TEXTNS,'image-count'),
- (TEXTNS,'initial-creator'),
- (TEXTNS,'keywords'),
- (TEXTNS,'line-break'),
- (TEXTNS,'measure'),
- (TEXTNS,'modification-date'),
- (TEXTNS,'modification-time'),
- (TEXTNS,'note'),
- (TEXTNS,'note-ref'),
- (TEXTNS,'object-count'),
- (TEXTNS,'page-continuation'),
- (TEXTNS,'page-count'),
- (TEXTNS,'page-number'),
- (TEXTNS,'page-variable-get'),
- (TEXTNS,'page-variable-set'),
- (TEXTNS,'paragraph-count'),
- (TEXTNS,'placeholder'),
- (TEXTNS,'print-date'),
- (TEXTNS,'printed-by'),
- (TEXTNS,'print-time'),
- (TEXTNS,'reference-mark'),
- (TEXTNS,'reference-mark-end'),
- (TEXTNS,'reference-mark-start'),
- (TEXTNS,'reference-ref'),
- (TEXTNS,'ruby'),
- (TEXTNS,'s'),
- (TEXTNS,'script'),
- (TEXTNS,'sender-city'),
- (TEXTNS,'sender-company'),
- (TEXTNS,'sender-country'),
- (TEXTNS,'sender-email'),
- (TEXTNS,'sender-fax'),
- (TEXTNS,'sender-firstname'),
- (TEXTNS,'sender-initials'),
- (TEXTNS,'sender-lastname'),
- (TEXTNS,'sender-phone-private'),
- (TEXTNS,'sender-phone-work'),
- (TEXTNS,'sender-position'),
- (TEXTNS,'sender-postal-code'),
- (TEXTNS,'sender-state-or-province'),
- (TEXTNS,'sender-street'),
- (TEXTNS,'sender-title'),
- (TEXTNS,'sequence'),
- (TEXTNS,'sequence-ref'),
- (TEXTNS,'sheet-name'),
- (TEXTNS,'soft-page-break'),
- (TEXTNS,'span'),
- (TEXTNS,'subject'),
- (TEXTNS,'tab'),
- (TEXTNS,'table-count'),
- (TEXTNS,'table-formula'),
- (TEXTNS,'template-name'),
- (TEXTNS,'text-input'),
- (TEXTNS,'time'),
- (TEXTNS,'title'),
- (TEXTNS,'toc-mark'),
- (TEXTNS,'toc-mark-end'),
- (TEXTNS,'toc-mark-start'),
- (TEXTNS,'user-defined'),
- (TEXTNS,'user-field-get'),
- (TEXTNS,'user-field-input'),
- (TEXTNS,'user-index-mark'),
- (TEXTNS,'user-index-mark-end'),
- (TEXTNS,'user-index-mark-start'),
- (TEXTNS,'variable-get'),
- (TEXTNS,'variable-input'),
- (TEXTNS,'variable-set'),
- (TEXTNS,'word-count'),
- ),
- (TEXTNS,'page') : (
- ),
- (TEXTNS,'page-count') : (
- ),
- (TEXTNS,'page-continuation') : (
- ),
- (TEXTNS,'page-number') : (
- ),
- (TEXTNS,'page-sequence') : (
- (TEXTNS,'page'),
- ),
- (TEXTNS,'page-variable-get') : (
- ),
- (TEXTNS,'page-variable-set') : (
- ),
- (TEXTNS,'paragraph-count') : (
- ),
- (TEXTNS,'placeholder') : (
- ),
- (TEXTNS,'print-date') : (
- ),
- (TEXTNS,'print-time') : (
- ),
- (TEXTNS,'printed-by') : (
- ),
- (TEXTNS,'reference-mark') : (
- ),
- (TEXTNS,'reference-mark-end') : (
- ),
-# allowed_children
- (TEXTNS,'reference-mark-start') : (
- ),
- (TEXTNS,'reference-ref') : (
- ),
- (TEXTNS,'ruby') : (
- (TEXTNS,'ruby-base'),
- (TEXTNS,'ruby-text'),
- ),
- (TEXTNS,'ruby-base') : (
- (DR3DNS,'scene'),
- (DRAWNS,'a'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- (OFFICENS,'annotation'),
- (PRESENTATIONNS,'date-time'),
- (PRESENTATIONNS,'footer'),
- (PRESENTATIONNS,'header'),
- (TEXTNS,'a'),
- (TEXTNS,'alphabetical-index-mark'),
- (TEXTNS,'alphabetical-index-mark-end'),
- (TEXTNS,'alphabetical-index-mark-start'),
- (TEXTNS,'author-initials'),
- (TEXTNS,'author-name'),
- (TEXTNS,'bibliography-mark'),
- (TEXTNS,'bookmark'),
- (TEXTNS,'bookmark-end'),
- (TEXTNS,'bookmark-ref'),
- (TEXTNS,'bookmark-start'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'chapter'),
- (TEXTNS,'conditional-text'),
- (TEXTNS,'creation-date'),
- (TEXTNS,'creation-time'),
- (TEXTNS,'creator'),
- (TEXTNS,'database-display'),
- (TEXTNS,'database-name'),
- (TEXTNS,'database-next'),
- (TEXTNS,'database-row-number'),
- (TEXTNS,'database-row-select'),
- (TEXTNS,'date'),
- (TEXTNS,'dde-connection'),
- (TEXTNS,'description'),
- (TEXTNS,'editing-cycles'),
- (TEXTNS,'editing-duration'),
- (TEXTNS,'execute-macro'),
- (TEXTNS,'expression'),
- (TEXTNS,'file-name'),
- (TEXTNS,'hidden-paragraph'),
- (TEXTNS,'hidden-text'),
- (TEXTNS,'initial-creator'),
- (TEXTNS,'keywords'),
- (TEXTNS,'line-break'),
- (TEXTNS,'measure'),
- (TEXTNS,'modification-date'),
- (TEXTNS,'modification-time'),
- (TEXTNS,'note'),
- (TEXTNS,'note-ref'),
- (TEXTNS,'page-count'),
- (TEXTNS,'paragraph-count'),
- (TEXTNS,'word-count'),
- (TEXTNS,'character-count'),
- (TEXTNS,'table-count'),
- (TEXTNS,'image-count'),
- (TEXTNS,'object-count'),
- (TEXTNS,'page-continuation'),
- (TEXTNS,'page-number'),
- (TEXTNS,'page-variable-get'),
- (TEXTNS,'page-variable-set'),
- (TEXTNS,'placeholder'),
- (TEXTNS,'print-date'),
- (TEXTNS,'print-time'),
- (TEXTNS,'printed-by'),
- (TEXTNS,'reference-mark'),
- (TEXTNS,'reference-mark-end'),
- (TEXTNS,'reference-mark-start'),
- (TEXTNS,'reference-ref'),
- (TEXTNS,'ruby'),
- (TEXTNS,'s'),
- (TEXTNS,'script'),
- (TEXTNS,'sender-city'),
- (TEXTNS,'sender-company'),
- (TEXTNS,'sender-country'),
- (TEXTNS,'sender-email'),
- (TEXTNS,'sender-fax'),
- (TEXTNS,'sender-firstname'),
- (TEXTNS,'sender-initials'),
- (TEXTNS,'sender-lastname'),
- (TEXTNS,'sender-phone-private'),
- (TEXTNS,'sender-phone-work'),
- (TEXTNS,'sender-position'),
- (TEXTNS,'sender-postal-code'),
- (TEXTNS,'sender-state-or-province'),
- (TEXTNS,'sender-street'),
- (TEXTNS,'sender-title'),
- (TEXTNS,'sequence'),
- (TEXTNS,'sequence-ref'),
- (TEXTNS,'sheet-name'),
- (TEXTNS,'soft-page-break'),
- (TEXTNS,'span'),
- (TEXTNS,'subject'),
- (TEXTNS,'tab'),
- (TEXTNS,'table-formula'),
- (TEXTNS,'template-name'),
- (TEXTNS,'text-input'),
- (TEXTNS,'time'),
- (TEXTNS,'title'),
- (TEXTNS,'toc-mark'),
- (TEXTNS,'toc-mark-end'),
- (TEXTNS,'toc-mark-start'),
- (TEXTNS,'user-defined'),
- (TEXTNS,'user-field-get'),
- (TEXTNS,'user-field-input'),
- (TEXTNS,'user-index-mark'),
- (TEXTNS,'user-index-mark-end'),
- (TEXTNS,'user-index-mark-start'),
- (TEXTNS,'variable-get'),
- (TEXTNS,'variable-input'),
- (TEXTNS,'variable-set'),
- ),
-# allowed_children
- (TEXTNS,'ruby-text') : (
- ),
- (TEXTNS,'s') : (
- ),
- (TEXTNS,'script') : (
- ),
- (TEXTNS,'section') : (
- (DR3DNS,'scene'),
- (DRAWNS,'a'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- (OFFICENS,'dde-source'),
- (TABLENS,'table'),
- (TEXTNS,'alphabetical-index'),
- (TEXTNS,'bibliography'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'h'),
- (TEXTNS,'illustration-index'),
- (TEXTNS,'list'),
- (TEXTNS,'numbered-paragraph'),
- (TEXTNS,'object-index'),
- (TEXTNS,'p'),
- (TEXTNS,'section'),
- (TEXTNS,'section-source'),
- (TEXTNS,'soft-page-break'),
- (TEXTNS,'table-index'),
- (TEXTNS,'table-of-content'),
- (TEXTNS,'user-index'),
- ),
- (TEXTNS,'section-source') : (
- ),
- (TEXTNS,'sender-city') : (
- ),
- (TEXTNS,'sender-company') : (
- ),
- (TEXTNS,'sender-country') : (
- ),
-# allowed_children
- (TEXTNS,'sender-email') : (
- ),
- (TEXTNS,'sender-fax') : (
- ),
- (TEXTNS,'sender-firstname') : (
- ),
- (TEXTNS,'sender-initials') : (
- ),
- (TEXTNS,'sender-lastname') : (
- ),
- (TEXTNS,'sender-phone-private') : (
- ),
- (TEXTNS,'sender-phone-work') : (
- ),
- (TEXTNS,'sender-position') : (
- ),
- (TEXTNS,'sender-postal-code') : (
- ),
- (TEXTNS,'sender-state-or-province') : (
- ),
- (TEXTNS,'sender-street') : (
- ),
- (TEXTNS,'sender-title') : (
- ),
- (TEXTNS,'sequence') : (
- ),
- (TEXTNS,'sequence-decl') : (
- ),
- (TEXTNS,'sequence-decls') : (
- (TEXTNS,'sequence-decl'),
- ),
- (TEXTNS,'sequence-ref') : (
- ),
- (TEXTNS,'sheet-name') : (
- ),
- (TEXTNS,'soft-page-break') : (
- ),
- (TEXTNS,'sort-key') : (
- ),
-# allowed_children
- (TEXTNS,'span') : (
- (DR3DNS,'scene'),
- (DRAWNS,'a'),
- (DRAWNS,'caption'),
- (DRAWNS,'circle'),
- (DRAWNS,'connector'),
- (DRAWNS,'control'),
- (DRAWNS,'custom-shape'),
- (DRAWNS,'ellipse'),
- (DRAWNS,'frame'),
- (DRAWNS,'g'),
- (DRAWNS,'line'),
- (DRAWNS,'measure'),
- (DRAWNS,'page-thumbnail'),
- (DRAWNS,'path'),
- (DRAWNS,'polygon'),
- (DRAWNS,'polyline'),
- (DRAWNS,'rect'),
- (DRAWNS,'regular-polygon'),
- (OFFICENS,'annotation'),
- (PRESENTATIONNS,'date-time'),
- (PRESENTATIONNS,'footer'),
- (PRESENTATIONNS,'header'),
- (TEXTNS,'a'),
- (TEXTNS,'alphabetical-index-mark'),
- (TEXTNS,'alphabetical-index-mark-end'),
- (TEXTNS,'alphabetical-index-mark-start'),
- (TEXTNS,'author-initials'),
- (TEXTNS,'author-name'),
- (TEXTNS,'bibliography-mark'),
- (TEXTNS,'bookmark'),
- (TEXTNS,'bookmark-end'),
- (TEXTNS,'bookmark-ref'),
- (TEXTNS,'bookmark-start'),
- (TEXTNS,'change'),
- (TEXTNS,'change-end'),
- (TEXTNS,'change-start'),
- (TEXTNS,'chapter'),
- (TEXTNS,'conditional-text'),
- (TEXTNS,'creation-date'),
- (TEXTNS,'creation-time'),
- (TEXTNS,'creator'),
- (TEXTNS,'database-display'),
- (TEXTNS,'database-name'),
- (TEXTNS,'database-next'),
- (TEXTNS,'database-row-number'),
- (TEXTNS,'database-row-select'),
- (TEXTNS,'date'),
- (TEXTNS,'dde-connection'),
- (TEXTNS,'description'),
- (TEXTNS,'editing-cycles'),
- (TEXTNS,'editing-duration'),
- (TEXTNS,'execute-macro'),
- (TEXTNS,'expression'),
- (TEXTNS,'file-name'),
- (TEXTNS,'hidden-paragraph'),
- (TEXTNS,'hidden-text'),
- (TEXTNS,'initial-creator'),
- (TEXTNS,'keywords'),
- (TEXTNS,'line-break'),
- (TEXTNS,'measure'),
- (TEXTNS,'modification-date'),
- (TEXTNS,'modification-time'),
- (TEXTNS,'note'),
- (TEXTNS,'note-ref'),
- (TEXTNS,'page-count'),
- (TEXTNS,'paragraph-count'),
- (TEXTNS,'word-count'),
- (TEXTNS,'character-count'),
- (TEXTNS,'table-count'),
- (TEXTNS,'image-count'),
- (TEXTNS,'object-count'),
- (TEXTNS,'page-continuation'),
- (TEXTNS,'page-number'),
- (TEXTNS,'page-variable-get'),
- (TEXTNS,'page-variable-set'),
- (TEXTNS,'placeholder'),
- (TEXTNS,'print-date'),
- (TEXTNS,'print-time'),
- (TEXTNS,'printed-by'),
- (TEXTNS,'reference-mark'),
- (TEXTNS,'reference-mark-end'),
- (TEXTNS,'reference-mark-start'),
- (TEXTNS,'reference-ref'),
- (TEXTNS,'ruby'),
- (TEXTNS,'s'),
- (TEXTNS,'script'),
- (TEXTNS,'sender-city'),
- (TEXTNS,'sender-company'),
- (TEXTNS,'sender-country'),
- (TEXTNS,'sender-email'),
- (TEXTNS,'sender-fax'),
- (TEXTNS,'sender-firstname'),
- (TEXTNS,'sender-initials'),
- (TEXTNS,'sender-lastname'),
- (TEXTNS,'sender-phone-private'),
- (TEXTNS,'sender-phone-work'),
- (TEXTNS,'sender-position'),
- (TEXTNS,'sender-postal-code'),
- (TEXTNS,'sender-state-or-province'),
- (TEXTNS,'sender-street'),
- (TEXTNS,'sender-title'),
- (TEXTNS,'sequence'),
- (TEXTNS,'sequence-ref'),
- (TEXTNS,'sheet-name'),
- (TEXTNS,'soft-page-break'),
- (TEXTNS,'span'),
- (TEXTNS,'subject'),
- (TEXTNS,'tab'),
- (TEXTNS,'table-formula'),
- (TEXTNS,'template-name'),
- (TEXTNS,'text-input'),
- (TEXTNS,'time'),
- (TEXTNS,'title'),
- (TEXTNS,'toc-mark'),
- (TEXTNS,'toc-mark-end'),
- (TEXTNS,'toc-mark-start'),
- (TEXTNS,'user-defined'),
- (TEXTNS,'user-field-get'),
- (TEXTNS,'user-field-input'),
- (TEXTNS,'user-index-mark'),
- (TEXTNS,'user-index-mark-end'),
- (TEXTNS,'user-index-mark-start'),
- (TEXTNS,'variable-get'),
- (TEXTNS,'variable-input'),
- (TEXTNS,'variable-set'),
- ),
-# allowed_children
- (TEXTNS,'subject') : (
- ),
- (TEXTNS,'tab') : (
- ),
- (TEXTNS,'table-count') : (
- ),
- (TEXTNS,'table-formula') : (
- ),
- (TEXTNS,'table-index') : (
- (TEXTNS,'index-body'),
- (TEXTNS,'table-index-source'),
- ),
- (TEXTNS,'table-index-entry-template') : (
- (TEXTNS,'index-entry-page-number'),
- (TEXTNS,'index-entry-span'),
- (TEXTNS,'index-entry-tab-stop'),
- (TEXTNS,'index-entry-text'),
- ),
- (TEXTNS,'table-index-source') : (
- (TEXTNS,'index-title-template'),
- (TEXTNS,'table-index-entry-template'),
- ),
- (TEXTNS,'table-of-content') : (
- (TEXTNS,'index-body'),
- (TEXTNS,'table-of-content-source'),
- ),
- (TEXTNS,'table-of-content-entry-template') : (
- (TEXTNS,'index-entry-chapter'),
- (TEXTNS,'index-entry-link-end'),
- (TEXTNS,'index-entry-link-start'),
- (TEXTNS,'index-entry-page-number'),
- (TEXTNS,'index-entry-span'),
- (TEXTNS,'index-entry-tab-stop'),
- (TEXTNS,'index-entry-text'),
- ),
- (TEXTNS,'table-of-content-source') : (
- (TEXTNS,'index-source-styles'),
- (TEXTNS,'index-title-template'),
- (TEXTNS,'table-of-content-entry-template'),
- ),
- (TEXTNS,'template-name') : (
- ),
- (TEXTNS,'text-input') : (
- ),
- (TEXTNS,'time') : (
- ),
- (TEXTNS,'title') : (
- ),
- (TEXTNS,'toc-mark') : (
- ),
- (TEXTNS,'toc-mark-end') : (
- ),
- (TEXTNS,'toc-mark-start') : (
- ),
-# allowed_children
- (TEXTNS,'tracked-changes') : (
- (TEXTNS,'changed-region'),
- ),
- (TEXTNS,'user-defined') : (
- ),
- (TEXTNS,'user-field-decl') : (
- ),
- (TEXTNS,'user-field-decls') : (
- (TEXTNS,'user-field-decl'),
- ),
- (TEXTNS,'user-field-get') : (
- ),
- (TEXTNS,'user-field-input') : (
- ),
- (TEXTNS,'user-index') : (
- (TEXTNS,'index-body'),
- (TEXTNS,'user-index-source'),
- ),
- (TEXTNS,'user-index-entry-template') : (
- (TEXTNS,'index-entry-chapter'),
- (TEXTNS,'index-entry-page-number'),
- (TEXTNS,'index-entry-span'),
- (TEXTNS,'index-entry-tab-stop'),
- (TEXTNS,'index-entry-text'),
- ),
-# allowed_children
- (TEXTNS,'user-index-mark') : (
- ),
- (TEXTNS,'user-index-mark-end') : (
- ),
- (TEXTNS,'user-index-mark-start') : (
- ),
- (TEXTNS,'user-index-source') : (
- (TEXTNS,'index-source-styles'),
- (TEXTNS,'index-title-template'),
- (TEXTNS,'user-index-entry-template'),
- ),
- (TEXTNS,'variable-decl') : (
- ),
- (TEXTNS,'variable-decls') : (
- (TEXTNS,'variable-decl'),
- ),
- (TEXTNS,'variable-get') : (
- ),
- (TEXTNS,'variable-input') : (
- ),
- (TEXTNS,'variable-set') : (
- ),
- (TEXTNS,'word-count') : (
- ),
-}
-
-#
-# List of elements that allows text nodes
-#
-allows_text = (
- (CONFIGNS,'config-item'),
- (DCNS,'creator'),
- (DCNS,'date'),
- (DCNS,'description'),
- (DCNS,'language'),
- (DCNS,'subject'),
- (DCNS,'title'),
-# Completes Dublin Core start
-# (DCNS,'contributor'),
-# (DCNS,'coverage'),
-# (DCNS,'format'),
-# (DCNS,'identifier'),
-# (DCNS,'publisher'),
-# (DCNS,'relation'),
-# (DCNS,'rights'),
-# (DCNS,'source'),
-# (DCNS,'type'),
-# Completes Dublin Core end
- (FORMNS,'item'),
- (FORMNS,'option'),
- (MATHNS,'math'),
- (METANS,'creation-date'),
- (METANS,'date-string'),
- (METANS,'editing-cycles'),
- (METANS,'editing-duration'),
-# allows_text
- (METANS,'generator'),
- (METANS,'initial-creator'),
- (METANS,'keyword'),
- (METANS,'print-date'),
- (METANS,'printed-by'),
- (METANS,'user-defined'),
- (NUMBERNS,'currency-symbol'),
- (NUMBERNS,'embedded-text'),
- (NUMBERNS,'text'),
- (OFFICENS,'binary-data'),
- (OFFICENS,'script'),
- (PRESENTATIONNS,'date-time-decl'),
- (PRESENTATIONNS,'footer-decl'),
- (PRESENTATIONNS,'header-decl'),
- (SVGNS,'desc'),
- (SVGNS,'title'),
- (TEXTNS,'a'),
- (TEXTNS,'author-initials'),
- (TEXTNS,'author-name'),
- (TEXTNS,'bibliography-mark'),
- (TEXTNS,'bookmark-ref'),
- (TEXTNS,'chapter'),
- (TEXTNS,'character-count'),
- (TEXTNS,'conditional-text'),
- (TEXTNS,'creation-date'),
- (TEXTNS,'creation-time'),
- (TEXTNS,'creator'),
- (TEXTNS,'database-display'),
- (TEXTNS,'database-name'),
- (TEXTNS,'database-row-number'),
- (TEXTNS,'date'),
- (TEXTNS,'dde-connection'),
- (TEXTNS,'description'),
- (TEXTNS,'editing-cycles'),
- (TEXTNS,'editing-duration'),
- (TEXTNS,'execute-macro'),
- (TEXTNS,'expression'),
- (TEXTNS,'file-name'),
- (TEXTNS,'h'),
- (TEXTNS,'hidden-paragraph'),
- (TEXTNS,'hidden-text'),
- (TEXTNS,'image-count'),
-# allowed_children
- (TEXTNS,'index-entry-span'),
- (TEXTNS,'index-title-template'),
- (TEXTNS,'initial-creator'),
- (TEXTNS,'keywords'),
- (TEXTNS,'linenumbering-separator'),
- (TEXTNS,'measure'),
- (TEXTNS,'modification-date'),
- (TEXTNS,'modification-time'),
- (TEXTNS,'note-citation'),
- (TEXTNS,'note-continuation-notice-backward'),
- (TEXTNS,'note-continuation-notice-forward'),
- (TEXTNS,'note-ref'),
- (TEXTNS,'number'),
- (TEXTNS,'object-count'),
- (TEXTNS,'p'),
- (TEXTNS,'page-continuation'),
- (TEXTNS,'page-count'),
- (TEXTNS,'page-number'),
- (TEXTNS,'page-variable-get'),
- (TEXTNS,'page-variable-set'),
- (TEXTNS,'paragraph-count'),
- (TEXTNS,'placeholder'),
- (TEXTNS,'print-date'),
- (TEXTNS,'print-time'),
- (TEXTNS,'printed-by'),
- (TEXTNS,'reference-ref'),
- (TEXTNS,'ruby-base'),
- (TEXTNS,'ruby-text'),
- (TEXTNS,'script'),
- (TEXTNS,'sender-city'),
- (TEXTNS,'sender-company'),
- (TEXTNS,'sender-country'),
- (TEXTNS,'sender-email'),
- (TEXTNS,'sender-fax'),
- (TEXTNS,'sender-firstname'),
- (TEXTNS,'sender-initials'),
- (TEXTNS,'sender-lastname'),
- (TEXTNS,'sender-phone-private'),
- (TEXTNS,'sender-phone-work'),
- (TEXTNS,'sender-position'),
- (TEXTNS,'sender-postal-code'),
- (TEXTNS,'sender-state-or-province'),
- (TEXTNS,'sender-street'),
- (TEXTNS,'sender-title'),
- (TEXTNS,'sequence'),
- (TEXTNS,'sequence-ref'),
- (TEXTNS,'sheet-name'),
-# allowed_children
- (TEXTNS,'span'),
- (TEXTNS,'subject'),
- (TEXTNS,'table-count'),
- (TEXTNS,'table-formula'),
- (TEXTNS,'template-name'),
- (TEXTNS,'text-input'),
- (TEXTNS,'time'),
- (TEXTNS,'title'),
- (TEXTNS,'user-defined'),
- (TEXTNS,'user-field-get'),
- (TEXTNS,'user-field-input'),
- (TEXTNS,'variable-get'),
- (TEXTNS,'variable-input'),
- (TEXTNS,'variable-set'),
- (TEXTNS,'word-count'),
-)
-
-# Only the elements with at least one required attribute is listed
-
-required_attributes = {
- (ANIMNS,'animate'): (
- (SMILNS,'attributeName'),
- ),
- (ANIMNS,'animateColor'): (
- (SMILNS,'attributeName'),
- ),
- (ANIMNS,'animateMotion'): (
- (SMILNS,'attributeName'),
- ),
- (ANIMNS,'animateTransform'): (
- (SVGNS,'type'),
- (SMILNS,'attributeName'),
- ),
- (ANIMNS,'command'): (
- (ANIMNS,'command'),
- ),
- (ANIMNS,'param'): (
- (ANIMNS,'name'),
- (ANIMNS,'value'),
- ),
- (ANIMNS,'set'): (
- (SMILNS,'attributeName'),
- ),
-# required_attributes
- (ANIMNS,'transitionFilter'): (
- (SMILNS,'type'),
- ),
- (CHARTNS,'axis'): (
- (CHARTNS,'dimension'),
- ),
- (CHARTNS,'chart'): (
- (CHARTNS,'class'),
- ),
- (CHARTNS,'symbol-image'): (
- (XLINKNS,'href'),
- ),
- (CONFIGNS,'config-item'): (
- (CONFIGNS,'type'),
- (CONFIGNS,'name'),
- ),
- (CONFIGNS,'config-item-map-indexed'): (
- (CONFIGNS,'name'),
- ),
- (CONFIGNS,'config-item-map-named'): (
- (CONFIGNS,'name'),
- ),
- (CONFIGNS,'config-item-set'): (
- (CONFIGNS,'name'),
- ),
-# required_attributes
- (NUMBERNS,'boolean-style'): (
- (STYLENS,'name'),
- ),
- (NUMBERNS,'currency-style'): (
- (STYLENS,'name'),
- ),
- (NUMBERNS,'date-style'): (
- (STYLENS,'name'),
- ),
- (NUMBERNS,'embedded-text'): (
- (NUMBERNS,'position'),
- ),
- (NUMBERNS,'number-style'): (
- (STYLENS,'name'),
- ),
- (NUMBERNS,'percentage-style'): (
- (STYLENS,'name'),
- ),
- (NUMBERNS,'text-style'): (
- (STYLENS,'name'),
- ),
- (NUMBERNS,'time-style'): (
- (STYLENS,'name'),
- ),
- (DR3DNS,'extrude'): (
- (SVGNS,'d'),
- (SVGNS,'viewBox'),
- ),
- (DR3DNS,'light'): (
- (DR3DNS,'direction'),
- ),
- (DR3DNS,'rotate'): (
- (SVGNS,'viewBox'),
- (SVGNS,'d'),
- ),
-# required_attributes
- (DRAWNS,'a'): (
- (XLINKNS,'href'),
- ),
- (DRAWNS,'area-circle'): (
- (SVGNS,'cy'),
- (SVGNS,'cx'),
- (SVGNS,'r'),
- ),
- (DRAWNS,'area-polygon'): (
- (SVGNS,'height'),
- (SVGNS,'width'),
- (DRAWNS,'points'),
- (SVGNS,'y'),
- (SVGNS,'x'),
- (SVGNS,'viewBox'),
- ),
- (DRAWNS,'area-rectangle'): (
- (SVGNS,'y'),
- (SVGNS,'x'),
- (SVGNS,'height'),
- (SVGNS,'width'),
- ),
- (DRAWNS,'contour-path'): (
- (DRAWNS,'recreate-on-edit'),
- (SVGNS,'viewBox'),
- (SVGNS,'d'),
- ),
- (DRAWNS,'contour-polygon'): (
- (DRAWNS,'points'),
- (DRAWNS,'recreate-on-edit'),
- (SVGNS,'viewBox'),
- ),
- (DRAWNS,'control'): (
- (DRAWNS,'control'),
- ),
- (DRAWNS,'fill-image'): (
- (XLINKNS,'href'),
- (DRAWNS,'name'),
- ),
- (DRAWNS,'floating-frame'): (
- (XLINKNS,'href'),
- ),
- (DRAWNS,'glue-point'): (
- (SVGNS,'y'),
- (SVGNS,'x'),
- (DRAWNS,'id'),
- (DRAWNS,'escape-direction'),
- ),
-# required_attributes
- (DRAWNS,'gradient'): (
- (DRAWNS,'style'),
- ),
- (DRAWNS,'handle'): (
- (DRAWNS,'handle-position'),
- ),
- (DRAWNS,'hatch'): (
- (DRAWNS,'style'),
- (DRAWNS,'name'),
- ),
- (DRAWNS,'layer'): (
- (DRAWNS,'name'),
- ),
- (DRAWNS,'line'): (
- (SVGNS,'y1'),
- (SVGNS,'x2'),
- (SVGNS,'x1'),
- (SVGNS,'y2'),
- ),
- (DRAWNS,'marker'): (
- (SVGNS,'d'),
- (DRAWNS,'name'),
- (SVGNS,'viewBox'),
- ),
- (DRAWNS,'measure'): (
- (SVGNS,'y1'),
- (SVGNS,'x2'),
- (SVGNS,'x1'),
- (SVGNS,'y2'),
- ),
- (DRAWNS,'opacity'): (
- (DRAWNS,'style'),
- ),
- (DRAWNS,'page'): (
- (DRAWNS,'master-page-name'),
- ),
- (DRAWNS,'path'): (
- (SVGNS,'d'),
- (SVGNS,'viewBox'),
- ),
- (DRAWNS,'plugin'): (
- (XLINKNS,'href'),
- ),
- (DRAWNS,'polygon'): (
- (DRAWNS,'points'),
- (SVGNS,'viewBox'),
- ),
-# required_attributes
- (DRAWNS,'polyline'): (
- (DRAWNS,'points'),
- (SVGNS,'viewBox'),
- ),
- (DRAWNS,'regular-polygon'): (
- (DRAWNS,'corners'),
- ),
- (DRAWNS,'stroke-dash'): (
- (DRAWNS,'name'),
- ),
- (FORMNS,'button'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'checkbox'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'combobox'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'connection-resource'): (
- (XLINKNS,'href'),
- ),
- (FORMNS,'date'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'file'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'fixed-text'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'formatted-text'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'frame'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'generic-control'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'grid'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'hidden'): (
- (FORMNS,'id'),
- ),
-# required_attributes
- (FORMNS,'image'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'image-frame'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'list-property'): (
- (FORMNS,'property-name'),
- ),
- (FORMNS,'list-value'): (
- (OFFICENS,'string-value'),
- ),
- (FORMNS,'listbox'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'number'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'password'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'property'): (
- (FORMNS,'property-name'),
- ),
- (FORMNS,'radio'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'text'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'textarea'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'time'): (
- (FORMNS,'id'),
- ),
- (FORMNS,'value-range'): (
- (FORMNS,'id'),
- ),
- (MANIFESTNS,'algorithm') : (
- (MANIFESTNS,'algorithm-name'),
- (MANIFESTNS,'initialisation-vector'),
- ),
- (MANIFESTNS,'encryption-data') : (
- (MANIFESTNS,'checksum-type'),
- (MANIFESTNS,'checksum'),
- ),
- (MANIFESTNS,'file-entry') : (
- (MANIFESTNS,'full-path'),
- (MANIFESTNS,'media-type'),
- ),
- (MANIFESTNS,'key-derivation') : (
- (MANIFESTNS,'key-derivation-name'),
- (MANIFESTNS,'salt'),
- (MANIFESTNS,'iteration-count'),
- ),
-# required_attributes
- (METANS,'template'): (
- (XLINKNS,'href'),
- ),
- (METANS,'user-defined'): (
- (METANS,'name'),
- ),
- (OFFICENS,'dde-source'): (
- (OFFICENS,'dde-topic'),
- (OFFICENS,'dde-application'),
- (OFFICENS,'dde-item'),
- ),
- (OFFICENS,'document'): (
- (OFFICENS,'mimetype'),
- ),
- (OFFICENS,'script'): (
- (SCRIPTNS,'language'),
- ),
- (PRESENTATIONNS,'date-time-decl'): (
- (PRESENTATIONNS,'source'),
- (PRESENTATIONNS,'name'),
- ),
- (PRESENTATIONNS,'dim'): (
- (DRAWNS,'color'),
- (DRAWNS,'shape-id'),
- ),
-# required_attributes
- (PRESENTATIONNS,'event-listener'): (
- (PRESENTATIONNS,'action'),
- (SCRIPTNS,'event-name'),
- ),
- (PRESENTATIONNS,'footer-decl'): (
- (PRESENTATIONNS,'name'),
- ),
- (PRESENTATIONNS,'header-decl'): (
- (PRESENTATIONNS,'name'),
- ),
- (PRESENTATIONNS,'hide-shape'): (
- (DRAWNS,'shape-id'),
- ),
- (PRESENTATIONNS,'hide-text'): (
- (DRAWNS,'shape-id'),
- ),
- (PRESENTATIONNS,'placeholder'): (
- (SVGNS,'y'),
- (SVGNS,'x'),
- (SVGNS,'height'),
- (PRESENTATIONNS,'object'),
- (SVGNS,'width'),
- ),
- (PRESENTATIONNS,'play'): (
- (DRAWNS,'shape-id'),
- ),
- (PRESENTATIONNS,'show'): (
- (PRESENTATIONNS,'name'),
- (PRESENTATIONNS,'pages'),
- ),
- (PRESENTATIONNS,'show-shape'): (
- (DRAWNS,'shape-id'),
- ),
- (PRESENTATIONNS,'show-text'): (
- (DRAWNS,'shape-id'),
- ),
- (PRESENTATIONNS,'sound'): (
- (XLINKNS,'href'),
- ),
- (SCRIPTNS,'event-listener'): (
- (SCRIPTNS,'language'),
- (SCRIPTNS,'event-name'),
- ),
- (STYLENS,'column'): (
- (STYLENS,'rel-width'),
- ),
-# required_attributes
- (STYLENS,'column-sep'): (
- (STYLENS,'width'),
- ),
- (STYLENS,'columns'): (
- (FONS,'column-count'),
- ),
- (STYLENS,'font-face'): (
- (STYLENS,'name'),
- ),
- (STYLENS,'handout-master'): (
- (STYLENS,'page-layout-name'),
- ),
- (STYLENS,'map'): (
- (STYLENS,'apply-style-name'),
- (STYLENS,'condition'),
- ),
- (STYLENS,'master-page'): (
- (STYLENS,'page-layout-name'),
- (STYLENS,'name'),
- ),
- (STYLENS,'page-layout'): (
- (STYLENS,'name'),
- ),
- (STYLENS,'presentation-page-layout'): (
- (STYLENS,'name'),
- ),
- (STYLENS,'style'): (
- (STYLENS,'name'),
- ),
- (STYLENS,'tab-stop'): (
- (STYLENS,'position'),
- ),
- (SVGNS,'definition-src'): (
- (XLINKNS,'href'),
- ),
- (SVGNS,'font-face-uri'): (
- (XLINKNS,'href'),
- ),
- (SVGNS,'linearGradient'): (
- (DRAWNS,'name'),
- ),
- (SVGNS,'radialGradient'): (
- (DRAWNS,'name'),
- ),
- (SVGNS,'stop'): (
- (SVGNS,'offset'),
- ),
-# required_attributes
- (TABLENS,'body'): (
- (TEXTNS,'style-name'),
- ),
- (TABLENS,'cell-address'): (
- (TABLENS,'column'),
- (TABLENS,'table'),
- (TABLENS,'row'),
- ),
- (TABLENS,'cell-content-change'): (
- (TABLENS,'id'),
- ),
- (TABLENS,'cell-range-source'): (
- (TABLENS,'last-row-spanned'),
- (TABLENS,'last-column-spanned'),
- (XLINKNS,'href'),
- (TABLENS,'name'),
- ),
- (TABLENS,'consolidation'): (
- (TABLENS,'function'),
- (TABLENS,'source-cell-range-addresses'),
- (TABLENS,'target-cell-address'),
- ),
- (TABLENS,'content-validation'): (
- (TABLENS,'name'),
- ),
- (TABLENS,'data-pilot-display-info'): (
- (TABLENS,'member-count'),
- (TABLENS,'data-field'),
- (TABLENS,'enabled'),
- (TABLENS,'display-member-mode'),
- ),
-# required_attributes
- (TABLENS,'data-pilot-field'): (
- (TABLENS,'source-field-name'),
- ),
- (TABLENS,'data-pilot-field-reference'): (
- (TABLENS,'field-name'),
- (TABLENS,'type'),
- ),
- (TABLENS,'data-pilot-group'): (
- (TABLENS,'name'),
- ),
- (TABLENS,'data-pilot-group-member'): (
- (TABLENS,'name'),
- ),
- (TABLENS,'data-pilot-groups'): (
- (TABLENS,'source-field-name'),
- (TABLENS,'step'),
- (TABLENS,'grouped-by'),
- ),
- (TABLENS,'data-pilot-layout-info'): (
- (TABLENS,'add-empty-lines'),
- (TABLENS,'layout-mode'),
- ),
- (TABLENS,'data-pilot-member'): (
- (TABLENS,'name'),
- ),
- (TABLENS,'data-pilot-sort-info'): (
- (TABLENS,'order'),
- ),
- (TABLENS,'data-pilot-subtotal'): (
- (TABLENS,'function'),
- ),
- (TABLENS,'data-pilot-table'): (
- (TABLENS,'target-range-address'),
- (TABLENS,'name'),
- ),
- (TABLENS,'database-range'): (
- (TABLENS,'target-range-address'),
- ),
-# required_attributes
- (TABLENS,'database-source-query'): (
- (TABLENS,'query-name'),
- (TABLENS,'database-name'),
- ),
- (TABLENS,'database-source-sql'): (
- (TABLENS,'database-name'),
- (TABLENS,'sql-statement'),
- ),
- (TABLENS,'database-source-table'): (
- (TABLENS,'database-table-name'),
- (TABLENS,'database-name'),
- ),
- (TABLENS,'deletion'): (
- (TABLENS,'position'),
- (TABLENS,'type'),
- (TABLENS,'id'),
- ),
- (TABLENS,'dependency'): (
- (TABLENS,'id'),
- ),
- (TABLENS,'even-columns'): (
- (TEXTNS,'style-name'),
- ),
- (TABLENS,'even-rows'): (
- (TEXTNS,'style-name'),
- ),
- (TABLENS,'filter-condition'): (
- (TABLENS,'operator'),
- (TABLENS,'field-number'),
- (TABLENS,'value'),
- ),
- (TABLENS,'first-column'): (
- (TEXTNS,'style-name'),
- ),
- (TABLENS,'first-row'): (
- (TEXTNS,'style-name'),
- ),
- (TABLENS,'insertion'): (
- (TABLENS,'position'),
- (TABLENS,'type'),
- (TABLENS,'id'),
- ),
- (TABLENS,'insertion-cut-off'): (
- (TABLENS,'position'),
- (TABLENS,'id'),
- ),
-# required_attributes
- (TABLENS,'label-range'): (
- (TABLENS,'label-cell-range-address'),
- (TABLENS,'data-cell-range-address'),
- (TABLENS,'orientation'),
- ),
- (TABLENS,'last-column'): (
- (TEXTNS,'style-name'),
- ),
- (TABLENS,'last-row'): (
- (TEXTNS,'style-name'),
- ),
- (TABLENS,'movement'): (
- (TABLENS,'id'),
- ),
- (TABLENS,'named-expression'): (
- (TABLENS,'expression'),
- (TABLENS,'name'),
- ),
- (TABLENS,'named-range'): (
- (TABLENS,'name'),
- (TABLENS,'cell-range-address'),
- ),
- (TABLENS,'odd-columns'): (
- (TEXTNS,'style-name'),
- ),
- (TABLENS,'odd-rows'): (
- (TEXTNS,'style-name'),
- ),
- (TABLENS,'operation'): (
- (TABLENS,'index'),
- (TABLENS,'name'),
- ),
-# required_attributes
- (TABLENS,'scenario'): (
- (TABLENS,'is-active'),
- (TABLENS,'scenario-ranges'),
- ),
- (TABLENS,'sort-by'): (
- (TABLENS,'field-number'),
- ),
- (TABLENS,'source-cell-range'): (
- (TABLENS,'cell-range-address'),
- ),
- (TABLENS,'source-service'): (
- (TABLENS,'source-name'),
- (TABLENS,'object-name'),
- (TABLENS,'name'),
- ),
- (TABLENS,'subtotal-field'): (
- (TABLENS,'function'),
- (TABLENS,'field-number'),
- ),
- (TABLENS,'subtotal-rule'): (
- (TABLENS,'group-by-field-number'),
- ),
- (TABLENS,'table-source'): (
- (XLINKNS,'href'),
- ),
- (TABLENS,'table-template'): (
- (TEXTNS,'last-row-end-column'),
- (TEXTNS,'first-row-end-column'),
- (TEXTNS,'name'),
- (TEXTNS,'last-row-start-column'),
- (TEXTNS,'first-row-start-column'),
- ),
- (TEXTNS,'a'): (
- (XLINKNS,'href'),
- ),
-# required_attributes
- (TEXTNS,'alphabetical-index'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'alphabetical-index-auto-mark-file'): (
- (XLINKNS,'href'),
- ),
- (TEXTNS,'alphabetical-index-entry-template'): (
- (TEXTNS,'style-name'),
- (TEXTNS,'outline-level'),
- ),
- (TEXTNS,'alphabetical-index-mark'): (
- (TEXTNS,'string-value'),
- ),
- (TEXTNS,'alphabetical-index-mark-end'): (
- (TEXTNS,'id'),
- ),
- (TEXTNS,'alphabetical-index-mark-start'): (
- (TEXTNS,'id'),
- ),
- (TEXTNS,'bibliography'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'bibliography-entry-template'): (
- (TEXTNS,'style-name'),
- (TEXTNS,'bibliography-type'),
- ),
- (TEXTNS,'bibliography-mark'): (
- (TEXTNS,'bibliography-type'),
- ),
- (TEXTNS,'bookmark'): (
- (TEXTNS,'name'),
- ),
-# required_attributes
- (TEXTNS,'bookmark-end'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'bookmark-start'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'change'): (
- (TEXTNS,'change-id'),
- ),
- (TEXTNS,'change-end'): (
- (TEXTNS,'change-id'),
- ),
- (TEXTNS,'change-start'): (
- (TEXTNS,'change-id'),
- ),
- (TEXTNS,'changed-region'): (
- (TEXTNS,'id'),
- ),
- (TEXTNS,'chapter'): (
- (TEXTNS,'display'),
- (TEXTNS,'outline-level'),
- ),
- (TEXTNS,'conditional-text'): (
- (TEXTNS,'string-value-if-true'),
- (TEXTNS,'string-value-if-false'),
- (TEXTNS,'condition'),
- ),
- (TEXTNS,'database-display'): (
- (TEXTNS,'column-name'),
- (TEXTNS,'table-name'),
- ),
- (TEXTNS,'database-name'): (
- (TEXTNS,'table-name'),
- ),
- (TEXTNS,'database-next'): (
- (TEXTNS,'table-name'),
- ),
- (TEXTNS,'database-row-number'): (
- (TEXTNS,'table-name'),
- ),
- (TEXTNS,'database-row-select'): (
- (TEXTNS,'table-name'),
- ),
- (TEXTNS,'dde-connection'): (
- (TEXTNS,'connection-name'),
- ),
-# required_attributes
- (TEXTNS,'dde-connection-decl'): (
- (OFFICENS,'dde-topic'),
- (OFFICENS,'dde-application'),
- (OFFICENS,'name'),
- (OFFICENS,'dde-item'),
- ),
- (TEXTNS,'h'): (
- (TEXTNS,'outline-level'),
- ),
- (TEXTNS,'hidden-paragraph'): (
- (TEXTNS,'condition'),
- ),
- (TEXTNS,'hidden-text'): (
- (TEXTNS,'string-value'),
- (TEXTNS,'condition'),
- ),
- (TEXTNS,'illustration-index'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'illustration-index-entry-template'): (
- (TEXTNS,'style-name'),
- ),
- (TEXTNS,'index-entry-bibliography'): (
- (TEXTNS,'bibliography-data-field'),
- ),
- (TEXTNS,'index-source-style'): (
- (TEXTNS,'style-name'),
- ),
- (TEXTNS,'index-source-styles'): (
- (TEXTNS,'outline-level'),
- ),
- (TEXTNS,'index-title'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'list-level-style-bullet'): (
- (TEXTNS,'bullet-char'),
- (TEXTNS,'level'),
- ),
- (TEXTNS,'list-level-style-image'): (
- (TEXTNS,'level'),
- ),
- (TEXTNS,'list-level-style-number'): (
- (TEXTNS,'level'),
- ),
- (TEXTNS,'list-style'): (
- (STYLENS,'name'),
- ),
-# required_attributes
- (TEXTNS,'measure'): (
- (TEXTNS,'kind'),
- ),
- (TEXTNS,'note'): (
- (TEXTNS,'note-class'),
- ),
- (TEXTNS,'note-ref'): (
- (TEXTNS,'note-class'),
- ),
- (TEXTNS,'notes-configuration'): (
- (TEXTNS,'note-class'),
- ),
- (TEXTNS,'object-index'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'object-index-entry-template'): (
- (TEXTNS,'style-name'),
- ),
- (TEXTNS,'outline-level-style'): (
- (TEXTNS,'level'),
- ),
- (TEXTNS,'page'): (
- (TEXTNS,'master-page-name'),
- ),
- (TEXTNS,'page-continuation'): (
- (TEXTNS,'select-page'),
- ),
- (TEXTNS,'placeholder'): (
- (TEXTNS,'placeholder-type'),
- ),
- (TEXTNS,'reference-mark'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'reference-mark-end'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'reference-mark-start'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'section'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'sequence'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'sequence-decl'): (
- (TEXTNS,'display-outline-level'),
- (TEXTNS,'name'),
- ),
-# required_attributes
- (TEXTNS,'sort-key'): (
- (TEXTNS,'key'),
- ),
- (TEXTNS,'table-index'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'table-index-entry-template'): (
- (TEXTNS,'style-name'),
- ),
- (TEXTNS,'table-of-content'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'table-of-content-entry-template'): (
- (TEXTNS,'style-name'),
- (TEXTNS,'outline-level'),
- ),
- (TEXTNS,'toc-mark'): (
- (TEXTNS,'string-value'),
- ),
- (TEXTNS,'toc-mark-end'): (
- (TEXTNS,'id'),
- ),
- (TEXTNS,'toc-mark-start'): (
- (TEXTNS,'id'),
- ),
- (TEXTNS,'user-defined'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'user-field-decl'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'user-field-get'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'user-field-input'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'user-index'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'user-index-entry-template'): (
- (TEXTNS,'style-name'),
- (TEXTNS,'outline-level'),
- ),
-# required_attributes
- (TEXTNS,'user-index-mark'): (
- (TEXTNS,'index-name'),
- (TEXTNS,'string-value'),
- ),
- (TEXTNS,'user-index-mark-end'): (
- (TEXTNS,'id'),
- ),
- (TEXTNS,'user-index-mark-start'): (
- (TEXTNS,'index-name'),
- (TEXTNS,'id'),
- ),
- (TEXTNS,'user-index-source'): (
- (TEXTNS,'index-name'),
- ),
- (TEXTNS,'variable-decl'): (
- (TEXTNS,'name'),
- (OFFICENS,'value-type'),
- ),
- (TEXTNS,'variable-get'): (
- (TEXTNS,'name'),
- ),
- (TEXTNS,'variable-input'): (
- (TEXTNS,'name'),
- (OFFICENS,'value-type'),
- ),
- (TEXTNS,'variable-set'): (
- (TEXTNS,'name'),
- ),
-}
-
-# Empty list means the element has no allowed attributes
-# None means anything goes
-
-allowed_attributes = {
- (DCNS,'creator'):(
- ),
- (DCNS,'date'):(
- ),
- (DCNS,'description'):(
- ),
- (DCNS,'language'):(
- ),
- (DCNS,'subject'):(
- ),
- (DCNS,'title'):(
- ),
-# Completes Dublin Core start
-# (DCNS,'contributor') : (
-# ),
-# (DCNS,'coverage') : (
-# ),
-# (DCNS,'format') : (
-# ),
-# (DCNS,'identifier') : (
-# ),
-# (DCNS,'publisher') : (
-# ),
-# (DCNS,'relation') : (
-# ),
-# (DCNS,'rights') : (
-# ),
-# (DCNS,'source') : (
-# ),
-# (DCNS,'type') : (
-# ),
-# Completes Dublin Core end
- (MATHNS,'math'): None,
- (XFORMSNS,'model'): None,
-# allowed_attributes
- (ANIMNS,'animate'):(
- (ANIMNS,'formula'),
- (ANIMNS,'sub-item'),
- (SMILNS,'accelerate'),
- (SMILNS,'accumulate'),
- (SMILNS,'additive'),
- (SMILNS,'attributeName'),
- (SMILNS,'autoReverse'),
- (SMILNS,'begin'),
- (SMILNS,'by'),
- (SMILNS,'calcMode'),
- (SMILNS,'decelerate'),
- (SMILNS,'dur'),
- (SMILNS,'end'),
- (SMILNS,'fill'),
- (SMILNS,'fillDefault'),
- (SMILNS,'from'),
- (SMILNS,'keySplines'),
- (SMILNS,'keyTimes'),
- (SMILNS,'repeatCount'),
- (SMILNS,'repeatDur'),
- (SMILNS,'restart'),
- (SMILNS,'restartDefault'),
- (SMILNS,'targetElement'),
- (SMILNS,'to'),
- (SMILNS,'values'),
- ),
-# allowed_attributes
- (ANIMNS,'animateColor'):(
- (ANIMNS,'color-interpolation'),
- (ANIMNS,'color-interpolation-direction'),
- (ANIMNS,'formula'),
- (ANIMNS,'sub-item'),
- (SMILNS,'accelerate'),
- (SMILNS,'accumulate'),
- (SMILNS,'additive'),
- (SMILNS,'attributeName'),
- (SMILNS,'autoReverse'),
- (SMILNS,'begin'),
- (SMILNS,'by'),
- (SMILNS,'calcMode'),
- (SMILNS,'decelerate'),
- (SMILNS,'dur'),
- (SMILNS,'end'),
- (SMILNS,'fill'),
- (SMILNS,'fillDefault'),
- (SMILNS,'from'),
- (SMILNS,'keySplines'),
- (SMILNS,'keyTimes'),
- (SMILNS,'repeatCount'),
- (SMILNS,'repeatDur'),
- (SMILNS,'restart'),
- (SMILNS,'restartDefault'),
- (SMILNS,'targetElement'),
- (SMILNS,'to'),
- (SMILNS,'values'),
- ),
-# allowed_attributes
- (ANIMNS,'animateMotion'):(
- (ANIMNS,'formula'),
- (ANIMNS,'sub-item'),
- (SMILNS,'accelerate'),
- (SMILNS,'accumulate'),
- (SMILNS,'additive'),
- (SMILNS,'attributeName'),
- (SMILNS,'autoReverse'),
- (SMILNS,'begin'),
- (SMILNS,'by'),
- (SMILNS,'calcMode'),
- (SMILNS,'decelerate'),
- (SMILNS,'dur'),
- (SMILNS,'end'),
- (SMILNS,'fill'),
- (SMILNS,'fillDefault'),
- (SMILNS,'from'),
- (SMILNS,'keySplines'),
- (SMILNS,'keyTimes'),
- (SMILNS,'repeatCount'),
- (SMILNS,'repeatDur'),
- (SMILNS,'restart'),
- (SMILNS,'restartDefault'),
- (SMILNS,'targetElement'),
- (SMILNS,'to'),
- (SMILNS,'values'),
- (SVGNS,'origin'),
- (SVGNS,'path'),
- ),
-# allowed_attributes
- (ANIMNS,'animateTransform'):(
- (ANIMNS,'formula'),
- (ANIMNS,'sub-item'),
- (SMILNS,'accelerate'),
- (SMILNS,'accumulate'),
- (SMILNS,'additive'),
- (SMILNS,'attributeName'),
- (SMILNS,'autoReverse'),
- (SMILNS,'begin'),
- (SMILNS,'by'),
- (SMILNS,'decelerate'),
- (SMILNS,'dur'),
- (SMILNS,'end'),
- (SMILNS,'fill'),
- (SMILNS,'fillDefault'),
- (SMILNS,'from'),
- (SMILNS,'repeatCount'),
- (SMILNS,'repeatDur'),
- (SMILNS,'restart'),
- (SMILNS,'restartDefault'),
- (SMILNS,'targetElement'),
- (SMILNS,'to'),
- (SMILNS,'values'),
- (SVGNS,'type'),
- ),
-# allowed_attributes
- (ANIMNS,'audio'):(
- (ANIMNS,'audio-level'),
- (ANIMNS,'id'),
- (PRESENTATIONNS,'group-id'),
- (PRESENTATIONNS,'master-element'),
- (PRESENTATIONNS,'node-type'),
- (PRESENTATIONNS,'preset-class'),
- (PRESENTATIONNS,'preset-id'),
- (PRESENTATIONNS,'preset-sub-type'),
- (SMILNS,'begin'),
- (SMILNS,'dur'),
- (SMILNS,'end'),
- (SMILNS,'repeatCount'),
- (SMILNS,'repeatDur'),
- (XLINKNS,'href'),
- ),
- (ANIMNS,'command'):(
- (PRESENTATIONNS,'node-type'),
- (SMILNS,'begin'),
- (SMILNS,'end'),
- (PRESENTATIONNS,'group-id'),
- (PRESENTATIONNS,'preset-class'),
- (PRESENTATIONNS,'preset-id'),
- (ANIMNS,'sub-item'),
- (ANIMNS,'command'),
- (PRESENTATIONNS,'preset-sub-type'),
- (SMILNS,'targetElement'),
- (ANIMNS,'id'),
- (PRESENTATIONNS,'master-element'),
- ),
-# allowed_attributes
- (ANIMNS,'iterate'):(
- (ANIMNS,'id'),
- (ANIMNS,'iterate-interval'),
- (ANIMNS,'iterate-type'),
- (ANIMNS,'sub-item'),
- (PRESENTATIONNS,'group-id'),
- (PRESENTATIONNS,'master-element'),
- (PRESENTATIONNS,'node-type'),
- (PRESENTATIONNS,'preset-class'),
- (PRESENTATIONNS,'preset-id'),
- (PRESENTATIONNS,'preset-sub-type'),
- (SMILNS,'accelerate'),
- (SMILNS,'autoReverse'),
- (SMILNS,'begin'),
- (SMILNS,'decelerate'),
- (SMILNS,'dur'),
- (SMILNS,'end'),
- (SMILNS,'endsync'),
- (SMILNS,'fill'),
- (SMILNS,'fillDefault'),
- (SMILNS,'repeatCount'),
- (SMILNS,'repeatDur'),
- (SMILNS,'restart'),
- (SMILNS,'restartDefault'),
- (SMILNS,'targetElement'),
- ),
- (ANIMNS,'par'):(
- (PRESENTATIONNS,'node-type'),
- (SMILNS,'decelerate'),
- (SMILNS,'begin'),
- (SMILNS,'end'),
- (PRESENTATIONNS,'group-id'),
- (SMILNS,'accelerate'),
- (SMILNS,'repeatDur'),
- (SMILNS,'repeatCount'),
- (SMILNS,'autoReverse'),
- (PRESENTATIONNS,'preset-class'),
- (SMILNS,'fillDefault'),
- (PRESENTATIONNS,'preset-id'),
- (PRESENTATIONNS,'preset-sub-type'),
- (SMILNS,'restartDefault'),
- (SMILNS,'endsync'),
- (SMILNS,'dur'),
- (SMILNS,'fill'),
- (ANIMNS,'id'),
- (SMILNS,'restart'),
- (PRESENTATIONNS,'master-element'),
- ),
-# allowed_attributes
- (ANIMNS,'param'):(
- (ANIMNS,'name'),
- (ANIMNS,'value'),
- ),
- (ANIMNS,'seq'):(
- (ANIMNS,'id'),
- (PRESENTATIONNS,'group-id'),
- (PRESENTATIONNS,'master-element'),
- (PRESENTATIONNS,'node-type'),
- (PRESENTATIONNS,'preset-class'),
- (PRESENTATIONNS,'preset-id'),
- (PRESENTATIONNS,'preset-sub-type'),
- (SMILNS,'accelerate'),
- (SMILNS,'autoReverse'),
- (SMILNS,'begin'),
- (SMILNS,'decelerate'),
- (SMILNS,'dur'),
- (SMILNS,'end'),
- (SMILNS,'endsync'),
- (SMILNS,'fill'),
- (SMILNS,'fillDefault'),
- (SMILNS,'repeatCount'),
- (SMILNS,'repeatDur'),
- (SMILNS,'restart'),
- (SMILNS,'restartDefault'),
- ),
- (ANIMNS,'set'):(
- (ANIMNS,'sub-item'),
- (SMILNS,'accelerate'),
- (SMILNS,'accumulate'),
- (SMILNS,'autoReverse'),
- (SMILNS,'additive'),
- (SMILNS,'attributeName'),
- (SMILNS,'begin'),
- (SMILNS,'decelerate'),
- (SMILNS,'dur'),
- (SMILNS,'end'),
- (SMILNS,'fill'),
- (SMILNS,'fillDefault'),
- (SMILNS,'repeatCount'),
- (SMILNS,'repeatDur'),
- (SMILNS,'restart'),
- (SMILNS,'restartDefault'),
- (SMILNS,'targetElement'),
- (SMILNS,'to'),
-
- ),
-# allowed_attributes
- (ANIMNS,'transitionFilter'):(
- (ANIMNS,'formula'),
- (ANIMNS,'sub-item'),
- (SMILNS,'accelerate'),
- (SMILNS,'accumulate'),
- (SMILNS,'additive'),
- (SMILNS,'autoReverse'),
- (SMILNS,'begin'),
- (SMILNS,'by'),
- (SMILNS,'calcMode'),
- (SMILNS,'decelerate'),
- (SMILNS,'direction'),
- (SMILNS,'dur'),
- (SMILNS,'end'),
- (SMILNS,'fadeColor'),
- (SMILNS,'fill'),
- (SMILNS,'fillDefault'),
- (SMILNS,'from'),
- (SMILNS,'mode'),
- (SMILNS,'repeatCount'),
- (SMILNS,'repeatDur'),
- (SMILNS,'restart'),
- (SMILNS,'restartDefault'),
- (SMILNS,'subtype'),
- (SMILNS,'targetElement'),
- (SMILNS,'to'),
- (SMILNS,'type'),
- (SMILNS,'values'),
-
- ),
-# allowed_attributes
- (CHARTNS,'axis'):(
- (CHARTNS,'style-name'),
- (CHARTNS,'dimension'),
- (CHARTNS,'name'),
- ),
- (CHARTNS,'categories'):(
- (TABLENS,'cell-range-address'),
- ),
- (CHARTNS,'chart'):(
- (CHARTNS,'column-mapping'),
- (CHARTNS,'row-mapping'),
- (SVGNS,'height'),
- (SVGNS,'width'),
- (CHARTNS,'style-name'),
- (CHARTNS,'class'),
- ),
- (CHARTNS,'data-point'):(
- (CHARTNS,'repeated'),
- (CHARTNS,'style-name'),
- ),
- (CHARTNS,'domain'):(
- (TABLENS,'cell-range-address'),
- ),
- (CHARTNS,'error-indicator'):(
- (CHARTNS,'style-name'),
- ),
- (CHARTNS,'floor'):(
- (SVGNS,'width'),
- (CHARTNS,'style-name'),
- ),
-# allowed_attributes
- (CHARTNS,'footer'):(
- (SVGNS,'y'),
- (SVGNS,'x'),
- (TABLENS,'cell-range'),
- (CHARTNS,'style-name'),
- ),
- (CHARTNS,'grid'):(
- (CHARTNS,'style-name'),
- (CHARTNS,'class'),
- ),
- (CHARTNS,'legend'):(
- (CHARTNS,'legend-align'),
- (STYLENS,'legend-expansion-aspect-ratio'),
- (STYLENS,'legend-expansion'),
- (CHARTNS,'legend-position'),
- (CHARTNS,'style-name'),
- (SVGNS,'y'),
- (SVGNS,'x'),
- ),
- (CHARTNS,'mean-value'):(
- (CHARTNS,'style-name'),
- ),
- (CHARTNS,'plot-area'):(
- (DR3DNS,'ambient-color'),
- (DR3DNS,'distance'),
- (DR3DNS,'vrp'),
- (DR3DNS,'focal-length'),
- (CHARTNS,'data-source-has-labels'),
- (DR3DNS,'lighting-mode'),
- (DR3DNS,'shade-mode'),
- (DR3DNS,'transform'),
- (DR3DNS,'shadow-slant'),
- (SVGNS,'height'),
- (SVGNS,'width'),
- (CHARTNS,'style-name'),
- (DR3DNS,'vup'),
- (SVGNS,'y'),
- (SVGNS,'x'),
- (DR3DNS,'vpn'),
- (TABLENS,'cell-range-address'),
- (DR3DNS,'projection'),
- ),
- (CHARTNS,'regression-curve'):(
- (CHARTNS,'style-name'),
- ),
- (CHARTNS,'series'):(
- (CHARTNS,'style-name'),
- (CHARTNS,'attached-axis'),
- (CHARTNS,'values-cell-range-address'),
- (CHARTNS,'label-cell-address'),
- (CHARTNS,'class'),
- ),
- (CHARTNS,'stock-gain-marker'):(
- (CHARTNS,'style-name'),
- ),
-# allowed_attributes
- (CHARTNS,'stock-loss-marker'):(
- (CHARTNS,'style-name'),
- ),
- (CHARTNS,'stock-range-line'):(
- (CHARTNS,'style-name'),
- ),
- (CHARTNS,'subtitle'):(
- (SVGNS,'y'),
- (SVGNS,'x'),
- (TABLENS,'cell-range'),
- (CHARTNS,'style-name'),
- ),
- (CHARTNS,'symbol-image'):(
- (XLINKNS,'href'),
- ),
- (CHARTNS,'title'):(
- (SVGNS,'y'),
- (SVGNS,'x'),
- (TABLENS,'cell-range'),
- (CHARTNS,'style-name'),
- ),
- (CHARTNS,'wall'):(
- (SVGNS,'width'),
- (CHARTNS,'style-name'),
- ),
- (CONFIGNS,'config-item'):(
- (CONFIGNS,'type'),
- (CONFIGNS,'name'),
- ),
- (CONFIGNS,'config-item-map-entry'):(
- (CONFIGNS,'name'),
- ),
- (CONFIGNS,'config-item-map-indexed'):(
- (CONFIGNS,'name'),
- ),
- (CONFIGNS,'config-item-map-named'):(
- (CONFIGNS,'name'),
- ),
- (CONFIGNS,'config-item-set'):(
- (CONFIGNS,'name'),
- ),
-# allowed_attributes
- (NUMBERNS,'am-pm'):(
- ),
- (NUMBERNS,'boolean'):(
- ),
- (NUMBERNS,'boolean-style'):(
- (NUMBERNS,'transliteration-language'),
- (STYLENS,'name'),
- (STYLENS,'display-name'),
- (NUMBERNS,'language'),
- (NUMBERNS,'title'),
- (NUMBERNS,'country'),
- (NUMBERNS,'transliteration-format'),
- (NUMBERNS,'transliteration-style'),
- (STYLENS,'volatile'),
- (NUMBERNS,'transliteration-country'),
- ),
- (NUMBERNS,'currency-style'):(
- (NUMBERNS,'transliteration-language'),
- (STYLENS,'name'),
- (STYLENS,'display-name'),
- (NUMBERNS,'language'),
- (NUMBERNS,'title'),
- (NUMBERNS,'country'),
- (NUMBERNS,'transliteration-format'),
- (NUMBERNS,'transliteration-style'),
- (STYLENS,'volatile'),
- (NUMBERNS,'transliteration-country'),
- (NUMBERNS,'automatic-order'),
- ),
- (NUMBERNS,'currency-symbol'):(
- (NUMBERNS,'country'),
- (NUMBERNS,'language'),
- ),
-# allowed_attributes
- (NUMBERNS,'date-style'):(
- (NUMBERNS,'transliteration-language'),
- (STYLENS,'name'),
- (STYLENS,'display-name'),
- (NUMBERNS,'language'),
- (NUMBERNS,'title'),
- (NUMBERNS,'country'),
- (NUMBERNS,'transliteration-format'),
- (NUMBERNS,'transliteration-style'),
- (NUMBERNS,'format-source'),
- (STYLENS,'volatile'),
- (NUMBERNS,'transliteration-country'),
- (NUMBERNS,'automatic-order'),
- ),
- (NUMBERNS,'day'):(
- (NUMBERNS,'style'),
- (NUMBERNS,'calendar'),
- ),
- (NUMBERNS,'day-of-week'):(
- (NUMBERNS,'style'),
- (NUMBERNS,'calendar'),
- ),
- (NUMBERNS,'embedded-text'):(
- (NUMBERNS,'position'),
- ),
- (NUMBERNS,'era'):(
- (NUMBERNS,'style'),
- (NUMBERNS,'calendar'),
- ),
- (NUMBERNS,'fraction'):(
- (NUMBERNS,'grouping'),
- (NUMBERNS,'min-denominator-digits'),
- (NUMBERNS,'min-numerator-digits'),
- (NUMBERNS,'min-integer-digits'),
- (NUMBERNS,'denominator-value'),
- ),
- (NUMBERNS,'hours'):(
- (NUMBERNS,'style'),
- ),
-# allowed_attributes
- (NUMBERNS,'minutes'):(
- (NUMBERNS,'style'),
- ),
- (NUMBERNS,'month'):(
- (NUMBERNS,'style'),
- (NUMBERNS,'calendar'),
- (NUMBERNS,'possessive-form'),
- (NUMBERNS,'textual'),
- ),
- (NUMBERNS,'number'):(
- (NUMBERNS,'display-factor'),
- (NUMBERNS,'decimal-places'),
- (NUMBERNS,'decimal-replacement'),
- (NUMBERNS,'min-integer-digits'),
- (NUMBERNS,'grouping'),
- ),
- (NUMBERNS,'number-style'):(
- (NUMBERNS,'transliteration-language'),
- (STYLENS,'name'),
- (STYLENS,'display-name'),
- (NUMBERNS,'language'),
- (NUMBERNS,'title'),
- (NUMBERNS,'country'),
- (NUMBERNS,'transliteration-format'),
- (NUMBERNS,'transliteration-style'),
- (STYLENS,'volatile'),
- (NUMBERNS,'transliteration-country'),
- ),
-# allowed_attributes
- (NUMBERNS,'percentage-style'):(
- (NUMBERNS,'transliteration-language'),
- (STYLENS,'name'),
- (STYLENS,'display-name'),
- (NUMBERNS,'language'),
- (NUMBERNS,'title'),
- (NUMBERNS,'country'),
- (NUMBERNS,'transliteration-format'),
- (NUMBERNS,'transliteration-style'),
- (STYLENS,'volatile'),
- (NUMBERNS,'transliteration-country'),
- ),
- (NUMBERNS,'quarter'):(
- (NUMBERNS,'style'),
- (NUMBERNS,'calendar'),
- ),
- (NUMBERNS,'scientific-number'):(
- (NUMBERNS,'min-exponent-digits'),
- (NUMBERNS,'decimal-places'),
- (NUMBERNS,'min-integer-digits'),
- (NUMBERNS,'grouping'),
- ),
- (NUMBERNS,'seconds'):(
- (NUMBERNS,'style'),
- (NUMBERNS,'decimal-places'),
- ),
- (NUMBERNS,'text'):(
- ),
- (NUMBERNS,'text-content'):(
- ),
- (NUMBERNS,'text-style'):(
- (NUMBERNS,'transliteration-language'),
- (STYLENS,'name'),
- (STYLENS,'display-name'),
- (NUMBERNS,'language'),
- (NUMBERNS,'title'),
- (NUMBERNS,'country'),
- (NUMBERNS,'transliteration-format'),
- (NUMBERNS,'transliteration-style'),
- (STYLENS,'volatile'),
- (NUMBERNS,'transliteration-country'),
- ),
- (NUMBERNS,'time-style'):(
- (NUMBERNS,'transliteration-language'),
- (NUMBERNS,'transliteration-format'),
- (STYLENS,'name'),
- (STYLENS,'display-name'),
- (NUMBERNS,'language'),
- (NUMBERNS,'title'),
- (NUMBERNS,'country'),
- (NUMBERNS,'truncate-on-overflow'),
- (NUMBERNS,'transliteration-style'),
- (NUMBERNS,'format-source'),
- (STYLENS,'volatile'),
- (NUMBERNS,'transliteration-country'),
- ),
- (NUMBERNS,'week-of-year'):(
- (NUMBERNS,'calendar'),
- ),
- (NUMBERNS,'year'):(
- (NUMBERNS,'style'),
- (NUMBERNS,'calendar'),
- ),
- (DR3DNS,'cube'):(
- (DR3DNS,'min-edge'),
- (DR3DNS,'max-edge'),
- (DRAWNS,'layer'),
- (DR3DNS,'transform'),
- (DRAWNS,'z-index'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'style-name'),
- (PRESENTATIONNS,'class-names'),
- (DRAWNS,'id'),
- ),
- (DR3DNS,'extrude'):(
- (DRAWNS,'layer'),
- (SVGNS,'d'),
- (DR3DNS,'transform'),
- (SVGNS,'viewBox'),
- (DRAWNS,'z-index'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'style-name'),
- (PRESENTATIONNS,'class-names'),
- (DRAWNS,'id'),
- ),
- (DR3DNS,'light'):(
- (DR3DNS,'diffuse-color'),
- (DR3DNS,'direction'),
- (DR3DNS,'specular'),
- (DR3DNS,'enabled'),
- ),
- (DR3DNS,'rotate'):(
- (DRAWNS,'layer'),
- (SVGNS,'d'),
- (DR3DNS,'transform'),
- (SVGNS,'viewBox'),
- (DRAWNS,'z-index'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'style-name'),
- (PRESENTATIONNS,'class-names'),
- (DRAWNS,'id'),
- ),
-# allowed_attributes
- (DR3DNS,'scene'):(
- (DR3DNS,'ambient-color'),
- (DR3DNS,'distance'),
- (DR3DNS,'focal-length'),
- (DR3DNS,'lighting-mode'),
- (DR3DNS,'projection'),
- (DR3DNS,'shade-mode'),
- (DR3DNS,'shadow-slant'),
- (DR3DNS,'transform'),
- (DR3DNS,'vpn'),
- (DR3DNS,'vrp'),
- (DR3DNS,'vup'),
- (DRAWNS,'id'),
- (DRAWNS,'caption-id'),
- (DRAWNS,'layer'),
- (DRAWNS,'z-index'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'class-names'),
- (PRESENTATIONNS,'style-name'),
- (SVGNS,'height'),
- (SVGNS,'width'),
- (SVGNS,'x'),
- (SVGNS,'y'),
- (TABLENS,'end-cell-address'),
- (TABLENS,'end-x'),
- (TABLENS,'end-y'),
- (TABLENS,'table-background'),
- (TEXTNS,'anchor-page-number'),
- (TEXTNS,'anchor-type'),
- ),
- (DR3DNS,'sphere'):(
- (DRAWNS,'layer'),
- (DR3DNS,'center'),
- (DR3DNS,'transform'),
- (DRAWNS,'z-index'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'style-name'),
- (PRESENTATIONNS,'class-names'),
- (DRAWNS,'id'),
- (DR3DNS,'size'),
- ),
- (DRAWNS,'a'):(
- (OFFICENS,'name'),
- (OFFICENS,'title'),
- (XLINKNS,'show'),
- (OFFICENS,'target-frame-name'),
- (XLINKNS,'actuate'),
- (XLINKNS,'href'),
- (XLINKNS,'type'),
- (OFFICENS,'server-map'),
- ),
- (DRAWNS,'applet'):(
- (DRAWNS,'code'),
- (XLINKNS,'show'),
- (DRAWNS,'object'),
- (XLINKNS,'actuate'),
- (XLINKNS,'href'),
- (XLINKNS,'type'),
- (DRAWNS,'archive'),
- (DRAWNS,'may-script'),
- ),
- (DRAWNS,'area-circle'):(
- (OFFICENS,'name'),
- (XLINKNS,'show'),
- (SVGNS,'cx'),
- (XLINKNS,'type'),
- (DRAWNS,'nohref'),
- (SVGNS,'cy'),
- (XLINKNS,'href'),
- (SVGNS,'r'),
- (OFFICENS,'target-frame-name'),
- ),
- (DRAWNS,'area-polygon'):(
- (OFFICENS,'name'),
- (XLINKNS,'show'),
- (XLINKNS,'type'),
- (SVGNS,'height'),
- (DRAWNS,'nohref'),
- (SVGNS,'width'),
- (XLINKNS,'href'),
- (SVGNS,'y'),
- (SVGNS,'x'),
- (OFFICENS,'target-frame-name'),
- (SVGNS,'viewBox'),
- (DRAWNS,'points'),
- ),
- (DRAWNS,'area-rectangle'):(
- (OFFICENS,'name'),
- (XLINKNS,'show'),
- (XLINKNS,'type'),
- (SVGNS,'height'),
- (DRAWNS,'nohref'),
- (SVGNS,'width'),
- (XLINKNS,'href'),
- (SVGNS,'y'),
- (SVGNS,'x'),
- (OFFICENS,'target-frame-name'),
- ),
- (DRAWNS,'caption'):(
- (TABLENS,'table-background'),
- (DRAWNS,'layer'),
- (DRAWNS,'caption-id'),
- (TABLENS,'end-cell-address'),
- (DRAWNS,'name'),
- (DRAWNS,'text-style-name'),
- (DRAWNS,'caption-point-y'),
- (DRAWNS,'caption-point-x'),
- (DRAWNS,'transform'),
- (TABLENS,'end-y'),
- (DRAWNS,'corner-radius'),
- (SVGNS,'width'),
- (DRAWNS,'z-index'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'style-name'),
- (PRESENTATIONNS,'class-names'),
- (TABLENS,'end-x'),
- (TEXTNS,'anchor-page-number'),
- (SVGNS,'y'),
- (SVGNS,'x'),
- (SVGNS,'height'),
- (DRAWNS,'id'),
- (TEXTNS,'anchor-type'),
- ),
- (DRAWNS,'circle'):(
- (DRAWNS,'end-angle'),
- (DRAWNS,'id'),
- (DRAWNS,'kind'),
- (DRAWNS,'layer'),
- (DRAWNS,'name'),
- (DRAWNS,'start-angle'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (DRAWNS,'caption-id'),
- (DRAWNS,'text-style-name'),
- (DRAWNS,'transform'),
- (DRAWNS,'z-index'),
- (PRESENTATIONNS,'class-names'),
- (PRESENTATIONNS,'style-name'),
- (SVGNS,'cx'),
- (SVGNS,'cy'),
- (SVGNS,'height'),
- (SVGNS,'r'),
- (SVGNS,'width'),
- (SVGNS,'x'),
- (SVGNS,'y'),
- (TABLENS,'end-cell-address'),
- (TABLENS,'end-x'),
- (TABLENS,'end-y'),
- (TABLENS,'table-background'),
- (TEXTNS,'anchor-page-number'),
- (TEXTNS,'anchor-type'),
- ),
- (DRAWNS,'connector'):(
- (DRAWNS,'layer'),
- (DRAWNS,'end-shape'),
- (TEXTNS,'anchor-page-number'),
- (SVGNS,'y1'),
- (SVGNS,'y2'),
- (TABLENS,'table-background'),
- (TABLENS,'end-cell-address'),
- (DRAWNS,'transform'),
- (DRAWNS,'id'),
- (TABLENS,'end-y'),
- (TABLENS,'end-x'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'class-names'),
- (DRAWNS,'caption-id'),
- (DRAWNS,'type'),
- (DRAWNS,'start-shape'),
- (DRAWNS,'z-index'),
- (PRESENTATIONNS,'style-name'),
- (DRAWNS,'start-glue-point'),
- (SVGNS,'x2'),
- (SVGNS,'x1'),
- (TEXTNS,'anchor-type'),
- (DRAWNS,'line-skew'),
- (DRAWNS,'name'),
- (DRAWNS,'end-glue-point'),
- (DRAWNS,'text-style-name'),
- ),
- (DRAWNS,'contour-path'):(
- (SVGNS,'d'),
- (SVGNS,'width'),
- (DRAWNS,'recreate-on-edit'),
- (SVGNS,'viewBox'),
- (SVGNS,'height'),
- ),
- (DRAWNS,'contour-polygon'):(
- (SVGNS,'width'),
- (DRAWNS,'points'),
- (DRAWNS,'recreate-on-edit'),
- (SVGNS,'viewBox'),
- (SVGNS,'height'),
- ),
- (DRAWNS,'control'):(
- (DRAWNS,'control'),
- (DRAWNS,'layer'),
- (DRAWNS,'caption-id'),
- (TABLENS,'end-cell-address'),
- (DRAWNS,'name'),
- (DRAWNS,'text-style-name'),
- (TABLENS,'table-background'),
- (DRAWNS,'transform'),
- (SVGNS,'height'),
- (SVGNS,'width'),
- (DRAWNS,'z-index'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'style-name'),
- (PRESENTATIONNS,'class-names'),
- (TABLENS,'end-x'),
- (TEXTNS,'anchor-page-number'),
- (SVGNS,'y'),
- (SVGNS,'x'),
- (TABLENS,'end-y'),
- (DRAWNS,'id'),
- (TEXTNS,'anchor-type'),
- ),
- (DRAWNS,'custom-shape'):(
- (DRAWNS,'engine'),
- (DRAWNS,'caption-id'),
- (DRAWNS,'layer'),
- (TABLENS,'end-cell-address'),
- (DRAWNS,'name'),
- (DRAWNS,'text-style-name'),
- (TABLENS,'table-background'),
- (DRAWNS,'transform'),
- (SVGNS,'height'),
- (SVGNS,'width'),
- (DRAWNS,'z-index'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'style-name'),
- (PRESENTATIONNS,'class-names'),
- (TABLENS,'end-x'),
- (TEXTNS,'anchor-page-number'),
- (SVGNS,'y'),
- (SVGNS,'x'),
- (TABLENS,'end-y'),
- (DRAWNS,'data'),
- (DRAWNS,'id'),
- (TEXTNS,'anchor-type'),
- ),
-# allowed_attributes
- (DRAWNS,'ellipse'):(
- (DRAWNS,'layer'),
- (DRAWNS,'start-angle'),
- (SVGNS,'cy'),
- (SVGNS,'cx'),
- (TABLENS,'table-background'),
- (TABLENS,'end-cell-address'),
- (SVGNS,'rx'),
- (DRAWNS,'transform'),
- (DRAWNS,'id'),
- (SVGNS,'width'),
- (TABLENS,'end-y'),
- (TABLENS,'end-x'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'class-names'),
- (DRAWNS,'end-angle'),
- (DRAWNS,'z-index'),
- (DRAWNS,'caption-id'),
- (PRESENTATIONNS,'style-name'),
- (SVGNS,'height'),
- (TEXTNS,'anchor-type'),
- (SVGNS,'ry'),
- (DRAWNS,'kind'),
- (DRAWNS,'name'),
- (TEXTNS,'anchor-page-number'),
- (SVGNS,'y'),
- (SVGNS,'x'),
- (DRAWNS,'text-style-name'),
- ),
-# allowed_attributes
- (DRAWNS,'enhanced-geometry'):(
- (DRAWNS,'extrusion-rotation-center'),
- (DRAWNS,'extrusion-shininess'),
- (DRAWNS,'extrusion-rotation-angle'),
- (DRAWNS,'extrusion-allowed'),
- (DRAWNS,'extrusion-first-light-level'),
- (DRAWNS,'extrusion-specularity'),
- (DRAWNS,'extrusion-viewpoint'),
- (DRAWNS,'extrusion-second-light-level'),
- (DRAWNS,'extrusion-origin'),
- (DRAWNS,'extrusion-color'),
- (SVGNS,'viewBox'),
- (DR3DNS,'projection'),
- (DRAWNS,'extrusion-metal'),
- (DRAWNS,'extrusion-number-of-line-segments'),
- (DRAWNS,'text-path-same-letter-heights'),
- (DRAWNS,'extrusion-first-light-harsh'),
- (DRAWNS,'enhanced-path'),
- (DRAWNS,'text-rotate-angle'),
- (DRAWNS,'type'),
- (DRAWNS,'glue-point-leaving-directions'),
- (DRAWNS,'concentric-gradient-fill-allowed'),
- (DRAWNS,'text-path-scale'),
- (DRAWNS,'extrusion-brightness'),
- (DRAWNS,'extrusion-first-light-direction'),
- (DRAWNS,'extrusion-light-face'),
- (DRAWNS,'text-path-allowed'),
- (DRAWNS,'glue-points'),
- (DRAWNS,'mirror-vertical'),
- (DRAWNS,'extrusion-depth'),
- (DRAWNS,'extrusion-diffusion'),
- (DRAWNS,'extrusion-second-light-direction'),
- (DRAWNS,'extrusion-skew'),
- (DR3DNS,'shade-mode'),
- (DRAWNS,'path-stretchpoint-y'),
- (DRAWNS,'modifiers'),
- (DRAWNS,'extrusion'),
- (DRAWNS,'path-stretchpoint-x'),
- (DRAWNS,'text-areas'),
- (DRAWNS,'mirror-horizontal'),
- (DRAWNS,'text-path-mode'),
- (DRAWNS,'extrusion-second-light-harsh'),
- (DRAWNS,'glue-point-type'),
- (DRAWNS,'text-path'),
- ),
-# allowed_attributes
- (DRAWNS,'equation'):(
- (DRAWNS,'formula'),
- (DRAWNS,'name'),
- ),
- (DRAWNS,'fill-image'):(
- (DRAWNS,'name'),
- (XLINKNS,'show'),
- (XLINKNS,'actuate'),
- (SVGNS,'height'),
- (SVGNS,'width'),
- (XLINKNS,'href'),
- (DRAWNS,'display-name'),
- (XLINKNS,'type'),
- ),
- (DRAWNS,'floating-frame'):(
- (XLINKNS,'href'),
- (XLINKNS,'actuate'),
- (DRAWNS,'frame-name'),
- (XLINKNS,'type'),
- (XLINKNS,'show'),
- ),
- (DRAWNS,'frame'):(
- (DRAWNS,'copy-of'),
- (DRAWNS,'id'),
- (DRAWNS,'layer'),
- (DRAWNS,'name'),
- (DRAWNS,'class-names'),
- (DRAWNS,'caption-id'),
- (DRAWNS,'style-name'),
- (DRAWNS,'text-style-name'),
- (DRAWNS,'transform'),
- (DRAWNS,'z-index'),
- (PRESENTATIONNS,'class'),
- (PRESENTATIONNS,'class-names'),
- (PRESENTATIONNS,'placeholder'),
- (PRESENTATIONNS,'style-name'),
- (PRESENTATIONNS,'user-transformed'),
- (STYLENS,'rel-height'),
- (STYLENS,'rel-width'),
- (SVGNS,'height'),
- (SVGNS,'width'),
- (SVGNS,'x'),
- (SVGNS,'y'),
- (TABLENS,'end-cell-address'),
- (TABLENS,'end-x'),
- (TABLENS,'end-y'),
- (TABLENS,'table-background'),
- (TEXTNS,'anchor-page-number'),
- (TEXTNS,'anchor-type'),
- ),
-# allowed_attributes
- (DRAWNS,'g'):(
- (DRAWNS,'id'),
- (DRAWNS,'caption-id'),
- (DRAWNS,'name'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (DRAWNS,'z-index'),
- (PRESENTATIONNS,'class-names'),
- (PRESENTATIONNS,'style-name'),
- (SVGNS,'y'),
- (TABLENS,'end-cell-address'),
- (TABLENS,'end-x'),
- (TABLENS,'end-y'),
- (TABLENS,'table-background'),
- (TEXTNS,'anchor-page-number'),
- (TEXTNS,'anchor-type'),
- ),
- (DRAWNS,'glue-point'):(
- (SVGNS,'y'),
- (SVGNS,'x'),
- (DRAWNS,'align'),
- (DRAWNS,'id'),
- (DRAWNS,'escape-direction'),
- ),
- (DRAWNS,'gradient'):(
- (DRAWNS,'style'),
- (DRAWNS,'angle'),
- (DRAWNS,'name'),
- (DRAWNS,'end-color'),
- (DRAWNS,'start-color'),
- (DRAWNS,'cy'),
- (DRAWNS,'cx'),
- (DRAWNS,'display-name'),
- (DRAWNS,'border'),
- (DRAWNS,'end-intensity'),
- (DRAWNS,'start-intensity'),
- ),
- (DRAWNS,'handle'):(
- (DRAWNS,'handle-radius-range-minimum'),
- (DRAWNS,'handle-switched'),
- (DRAWNS,'handle-range-y-maximum'),
- (DRAWNS,'handle-mirror-horizontal'),
- (DRAWNS,'handle-range-x-maximum'),
- (DRAWNS,'handle-mirror-vertical'),
- (DRAWNS,'handle-range-y-minimum'),
- (DRAWNS,'handle-radius-range-maximum'),
- (DRAWNS,'handle-range-x-minimum'),
- (DRAWNS,'handle-position'),
- (DRAWNS,'handle-polar'),
- ),
- (DRAWNS,'hatch'):(
- (DRAWNS,'distance'),
- (DRAWNS,'style'),
- (DRAWNS,'name'),
- (DRAWNS,'color'),
- (DRAWNS,'display-name'),
- (DRAWNS,'rotation'),
- ),
- (DRAWNS,'image'):(
- (DRAWNS,'filter-name'),
- (XLINKNS,'href'),
- (XLINKNS,'type'),
- (XLINKNS,'actuate'),
- (XLINKNS,'show'),
- ),
- (DRAWNS,'image-map'):(
- ),
- (DRAWNS,'layer'):(
- (DRAWNS,'protected'),
- (DRAWNS,'name'),
- (DRAWNS,'display'),
- ),
-# allowed_attributes
- (DRAWNS,'layer-set'):(
- ),
- (DRAWNS,'line'):(
- (DRAWNS,'class-names'),
- (DRAWNS,'id'),
- (DRAWNS,'caption-id'),
- (DRAWNS,'layer'),
- (DRAWNS,'name'),
- (DRAWNS,'style-name'),
- (DRAWNS,'text-style-name'),
- (DRAWNS,'transform'),
- (DRAWNS,'z-index'),
- (PRESENTATIONNS,'class-names'),
- (PRESENTATIONNS,'style-name'),
- (SVGNS,'x1'),
- (SVGNS,'x2'),
- (SVGNS,'y1'),
- (SVGNS,'y2'),
- (TABLENS,'end-cell-address'),
- (TABLENS,'end-x'),
- (TABLENS,'end-y'),
- (TABLENS,'table-background'),
- (TEXTNS,'anchor-page-number'),
- (TEXTNS,'anchor-type'),
- ),
- (DRAWNS,'marker'):(
- (SVGNS,'d'),
- (DRAWNS,'display-name'),
- (DRAWNS,'name'),
- (SVGNS,'viewBox'),
- ),
-# allowed_attributes
- (DRAWNS,'measure'):(
- (TABLENS,'end-cell-address'),
- (DRAWNS,'layer'),
- (SVGNS,'y2'),
- (DRAWNS,'name'),
- (DRAWNS,'text-style-name'),
- (DRAWNS,'transform'),
- (TABLENS,'table-background'),
- (SVGNS,'x2'),
- (DRAWNS,'z-index'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'style-name'),
- (PRESENTATIONNS,'class-names'),
- (TABLENS,'end-x'),
- (TEXTNS,'anchor-page-number'),
- (SVGNS,'y1'),
- (DRAWNS,'caption-id'),
- (TABLENS,'end-y'),
- (SVGNS,'x1'),
- (DRAWNS,'id'),
- (TEXTNS,'anchor-type'),
- ),
- (DRAWNS,'object'):(
- (XLINKNS,'type'),
- (XLINKNS,'href'),
- (DRAWNS,'notify-on-update-of-ranges'),
- (XLINKNS,'actuate'),
- (XLINKNS,'show'),
- ),
- (DRAWNS,'object-ole'):(
- (XLINKNS,'actuate'),
- (XLINKNS,'href'),
- (XLINKNS,'type'),
- (DRAWNS,'class-id'),
- (XLINKNS,'show'),
- ),
- (DRAWNS,'opacity'):(
- (DRAWNS,'style'),
- (DRAWNS,'angle'),
- (DRAWNS,'name'),
- (DRAWNS,'start'),
- (DRAWNS,'cy'),
- (DRAWNS,'cx'),
- (DRAWNS,'end'),
- (DRAWNS,'display-name'),
- (DRAWNS,'border'),
- ),
- (DRAWNS,'page'):(
- (PRESENTATIONNS,'presentation-page-layout-name'),
- (DRAWNS,'name'),
- (DRAWNS,'nav-order'),
- (PRESENTATIONNS,'use-footer-name'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'use-header-name'),
- (DRAWNS,'master-page-name'),
- (DRAWNS,'id'),
- (PRESENTATIONNS,'use-date-time-name'),
- ),
- (DRAWNS,'page-thumbnail'):(
- (TABLENS,'table-background'),
- (DRAWNS,'caption-id'),
- (PRESENTATIONNS,'user-transformed'),
- (DRAWNS,'layer'),
- (TABLENS,'end-cell-address'),
- (DRAWNS,'name'),
- (DRAWNS,'id'),
- (DRAWNS,'transform'),
- (DRAWNS,'page-number'),
- (SVGNS,'height'),
- (SVGNS,'width'),
- (DRAWNS,'z-index'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'style-name'),
- (PRESENTATIONNS,'class-names'),
- (TABLENS,'end-x'),
- (TEXTNS,'anchor-page-number'),
- (SVGNS,'y'),
- (SVGNS,'x'),
- (TABLENS,'end-y'),
- (PRESENTATIONNS,'placeholder'),
- (PRESENTATIONNS,'class'),
- (TEXTNS,'anchor-type'),
- ),
- (DRAWNS,'param'):(
- (DRAWNS,'name'),
- (DRAWNS,'value'),
- ),
-# allowed_attributes
- (DRAWNS,'path'):(
- (TABLENS,'table-background'),
- (DRAWNS,'layer'),
- (TABLENS,'end-cell-address'),
- (DRAWNS,'caption-id'),
- (SVGNS,'d'),
- (DRAWNS,'text-style-name'),
- (DRAWNS,'id'),
- (DRAWNS,'transform'),
- (SVGNS,'height'),
- (SVGNS,'width'),
- (DRAWNS,'z-index'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'style-name'),
- (PRESENTATIONNS,'class-names'),
- (TABLENS,'end-x'),
- (TEXTNS,'anchor-type'),
- (TEXTNS,'anchor-page-number'),
- (SVGNS,'y'),
- (SVGNS,'x'),
- (TABLENS,'end-y'),
- (SVGNS,'viewBox'),
- (DRAWNS,'name'),
- ),
- (DRAWNS,'plugin'):(
- (XLINKNS,'type'),
- (XLINKNS,'href'),
- (DRAWNS,'mime-type'),
- (XLINKNS,'actuate'),
- (XLINKNS,'show'),
- ),
- (DRAWNS,'polygon'):(
- (DRAWNS,'caption-id'),
- (TABLENS,'table-background'),
- (DRAWNS,'layer'),
- (TABLENS,'end-cell-address'),
- (DRAWNS,'name'),
- (DRAWNS,'text-style-name'),
- (DRAWNS,'id'),
- (DRAWNS,'transform'),
- (PRESENTATIONNS,'style-name'),
- (SVGNS,'height'),
- (SVGNS,'width'),
- (DRAWNS,'z-index'),
- (DRAWNS,'points'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'class-names'),
- (TABLENS,'end-x'),
- (TEXTNS,'anchor-page-number'),
- (SVGNS,'y'),
- (SVGNS,'x'),
- (TABLENS,'end-y'),
- (SVGNS,'viewBox'),
- (TEXTNS,'anchor-type'),
- ),
-# allowed_attributes
- (DRAWNS,'polyline'):(
- (TABLENS,'table-background'),
- (DRAWNS,'layer'),
- (TABLENS,'end-cell-address'),
- (DRAWNS,'name'),
- (DRAWNS,'text-style-name'),
- (DRAWNS,'id'),
- (DRAWNS,'caption-id'),
- (DRAWNS,'transform'),
- (PRESENTATIONNS,'style-name'),
- (SVGNS,'height'),
- (SVGNS,'width'),
- (DRAWNS,'z-index'),
- (DRAWNS,'points'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'class-names'),
- (TABLENS,'end-x'),
- (TEXTNS,'anchor-page-number'),
- (SVGNS,'y'),
- (SVGNS,'x'),
- (TABLENS,'end-y'),
- (SVGNS,'viewBox'),
- (TEXTNS,'anchor-type'),
- ),
- (DRAWNS,'rect'):(
- (DRAWNS,'corner-radius'),
- (DRAWNS,'caption-id'),
- (DRAWNS,'id'),
- (DRAWNS,'layer'),
- (DRAWNS,'name'),
- (DRAWNS,'text-style-name'),
- (DRAWNS,'transform'),
- (DRAWNS,'z-index'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'class-names'),
- (PRESENTATIONNS,'style-name'),
- (SVGNS,'height'),
- (SVGNS,'width'),
- (SVGNS,'x'),
- (SVGNS,'y'),
- (TABLENS,'end-cell-address'),
- (TABLENS,'end-x'),
- (TABLENS,'end-y'),
- (TABLENS,'table-background'),
- (TEXTNS,'anchor-page-number'),
- (TEXTNS,'anchor-type'),
- ),
-# allowed_attributes
- (DRAWNS,'regular-polygon'):(
- (TABLENS,'table-background'),
- (DRAWNS,'layer'),
- (TABLENS,'end-cell-address'),
- (DRAWNS,'caption-id'),
- (DRAWNS,'name'),
- (DRAWNS,'text-style-name'),
- (TEXTNS,'anchor-page-number'),
- (DRAWNS,'concave'),
- (DRAWNS,'sharpness'),
- (DRAWNS,'transform'),
- (SVGNS,'height'),
- (SVGNS,'width'),
- (DRAWNS,'z-index'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'style-name'),
- (PRESENTATIONNS,'class-names'),
- (TABLENS,'end-x'),
- (DRAWNS,'corners'),
- (SVGNS,'y'),
- (SVGNS,'x'),
- (TABLENS,'end-y'),
- (DRAWNS,'id'),
- (TEXTNS,'anchor-type'),
- ),
- (DRAWNS,'stroke-dash'):(
- (DRAWNS,'distance'),
- (DRAWNS,'dots1-length'),
- (DRAWNS,'name'),
- (DRAWNS,'dots2-length'),
- (DRAWNS,'style'),
- (DRAWNS,'dots1'),
- (DRAWNS,'display-name'),
- (DRAWNS,'dots2'),
- ),
- (DRAWNS,'text-box'):(
- (FONS,'min-width'),
- (DRAWNS,'corner-radius'),
- (FONS,'max-height'),
- (FONS,'min-height'),
- (DRAWNS,'chain-next-name'),
- (FONS,'max-width'),
- (TEXTNS,'id'),
- ),
-# allowed_attributes
- (FORMNS,'button'):(
- (FORMNS,'tab-stop'),
- (FORMNS,'focus-on-click'),
- (FORMNS,'image-align'),
- (FORMNS,'name'),
- (FORMNS,'tab-index'),
- (FORMNS,'control-implementation'),
- (XFORMSNS,'bind'),
- (FORMNS,'button-type'),
- (FORMNS,'title'),
- (FORMNS,'default-button'),
- (FORMNS,'value'),
- (FORMNS,'label'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'image-data'),
- (XLINKNS,'href'),
- (FORMNS,'toggle'),
- (FORMNS,'xforms-submission'),
- (OFFICENS,'target-frame'),
- (FORMNS,'id'),
- (FORMNS,'image-position'),
- ),
- (FORMNS,'checkbox'):(
- (FORMNS,'tab-stop'),
- (FORMNS,'image-align'),
- (FORMNS,'name'),
- (FORMNS,'tab-index'),
- (FORMNS,'control-implementation'),
- (XFORMSNS,'bind'),
- (FORMNS,'data-field'),
- (FORMNS,'title'),
- (FORMNS,'is-tristate'),
- (FORMNS,'current-state'),
- (FORMNS,'value'),
- (FORMNS,'label'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'state'),
- (FORMNS,'visual-effect'),
- (FORMNS,'id'),
- (FORMNS,'image-position'),
- ),
- (FORMNS,'column'):(
- (FORMNS,'control-implementation'),
- (FORMNS,'text-style-name'),
- (FORMNS,'name'),
- (FORMNS,'label'),
- ),
- (FORMNS,'combobox'):(
- (FORMNS,'convert-empty-to-null'),
- (FORMNS,'max-length'),
- (FORMNS,'tab-stop'),
- (FORMNS,'name'),
- (FORMNS,'dropdown'),
- (FORMNS,'control-implementation'),
- (XFORMSNS,'bind'),
- (FORMNS,'data-field'),
- (FORMNS,'tab-index'),
- (FORMNS,'auto-complete'),
- (FORMNS,'value'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'readonly'),
- (FORMNS,'list-source'),
- (FORMNS,'title'),
- (FORMNS,'list-source-type'),
- (FORMNS,'id'),
- (FORMNS,'current-value'),
- (FORMNS,'size'),
- ),
-# allowed_attributes
- (FORMNS,'connection-resource'):(
- (XLINKNS,'href'),
- ),
- (FORMNS,'date'):(
- (FORMNS,'convert-empty-to-null'),
- (FORMNS,'max-length'),
- (FORMNS,'tab-stop'),
- (FORMNS,'name'),
- (FORMNS,'tab-index'),
- (FORMNS,'control-implementation'),
- (FORMNS,'min-value'),
- (FORMNS,'data-field'),
- (FORMNS,'max-value'),
- (FORMNS,'value'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'readonly'),
- (XFORMSNS,'bind'),
- (FORMNS,'title'),
- (FORMNS,'id'),
- (FORMNS,'current-value'),
- ),
- (FORMNS,'file'):(
- (FORMNS,'max-length'),
- (FORMNS,'tab-stop'),
- (FORMNS,'name'),
- (FORMNS,'tab-index'),
- (FORMNS,'control-implementation'),
- (XFORMSNS,'bind'),
- (FORMNS,'title'),
- (FORMNS,'value'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'readonly'),
- (FORMNS,'id'),
- (FORMNS,'current-value'),
- ),
- (FORMNS,'fixed-text'):(
- (FORMNS,'name'),
- (FORMNS,'for'),
- (FORMNS,'title'),
- (FORMNS,'control-implementation'),
- (XFORMSNS,'bind'),
- (FORMNS,'multi-line'),
- (FORMNS,'label'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'id'),
- ),
-# allowed_attributes
- (FORMNS,'form'):(
- (XLINKNS,'actuate'),
- (XLINKNS,'href'),
- (FORMNS,'allow-deletes'),
- (FORMNS,'command-type'),
- (FORMNS,'apply-filter'),
- (XLINKNS,'type'),
- (FORMNS,'method'),
- (OFFICENS,'target-frame'),
- (FORMNS,'navigation-mode'),
- (FORMNS,'detail-fields'),
- (FORMNS,'master-fields'),
- (FORMNS,'allow-updates'),
- (FORMNS,'name'),
- (FORMNS,'tab-cycle'),
- (FORMNS,'control-implementation'),
- (FORMNS,'escape-processing'),
- (FORMNS,'filter'),
- (FORMNS,'command'),
- (FORMNS,'datasource'),
- (FORMNS,'enctype'),
- (FORMNS,'allow-inserts'),
- (FORMNS,'ignore-result'),
- (FORMNS,'order'),
- ),
- (FORMNS,'formatted-text'):(
- (FORMNS,'convert-empty-to-null'),
- (FORMNS,'max-length'),
- (FORMNS,'tab-stop'),
- (FORMNS,'max-value'),
- (FORMNS,'name'),
- (FORMNS,'tab-index'),
- (FORMNS,'control-implementation'),
- (XFORMSNS,'bind'),
- (FORMNS,'data-field'),
- (FORMNS,'title'),
- (FORMNS,'value'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'readonly'),
- (FORMNS,'min-value'),
- (FORMNS,'validation'),
- (FORMNS,'id'),
- (FORMNS,'current-value'),
- ),
- (FORMNS,'frame'):(
- (FORMNS,'name'),
- (FORMNS,'for'),
- (FORMNS,'title'),
- (FORMNS,'control-implementation'),
- (XFORMSNS,'bind'),
- (FORMNS,'label'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'id'),
- ),
-# allowed_attributes
- (FORMNS,'generic-control'):(
- (FORMNS,'control-implementation'),
- (XFORMSNS,'bind'),
- (FORMNS,'name'),
- (FORMNS,'id'),
- ),
- (FORMNS,'grid'):(
- (FORMNS,'tab-stop'),
- (FORMNS,'name'),
- (FORMNS,'tab-index'),
- (FORMNS,'control-implementation'),
- (XFORMSNS,'bind'),
- (FORMNS,'title'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'id'),
- ),
- (FORMNS,'hidden'):(
- (FORMNS,'control-implementation'),
- (XFORMSNS,'bind'),
- (FORMNS,'name'),
- (FORMNS,'value'),
- (FORMNS,'id'),
- ),
- (FORMNS,'image'):(
- (FORMNS,'tab-stop'),
- (FORMNS,'name'),
- (FORMNS,'tab-index'),
- (FORMNS,'control-implementation'),
- (XFORMSNS,'bind'),
- (FORMNS,'button-type'),
- (FORMNS,'title'),
- (FORMNS,'value'),
- (OFFICENS,'target-frame'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'image-data'),
- (XLINKNS,'href'),
- (FORMNS,'id'),
- ),
- (FORMNS,'image-frame'):(
- (FORMNS,'name'),
- (FORMNS,'title'),
- (FORMNS,'control-implementation'),
- (XFORMSNS,'bind'),
- (FORMNS,'data-field'),
- (FORMNS,'readonly'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'image-data'),
- (FORMNS,'id'),
- ),
- (FORMNS,'item'):(
- (FORMNS,'label'),
- ),
- (FORMNS,'list-property'):(
- (FORMNS,'property-name'),
- (OFFICENS,'value-type'),
- ),
- (FORMNS,'list-value'):(
- (OFFICENS,'string-value'),
- ),
-# allowed_attributes
- (FORMNS,'listbox'):(
- (FORMNS,'tab-stop'),
- (FORMNS,'bound-column'),
- (FORMNS,'multiple'),
- (FORMNS,'name'),
- (FORMNS,'dropdown'),
- (FORMNS,'control-implementation'),
- (XFORMSNS,'bind'),
- (FORMNS,'data-field'),
- (FORMNS,'tab-index'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'list-source'),
- (FORMNS,'title'),
- (FORMNS,'list-source-type'),
- (FORMNS,'id'),
- (FORMNS,'xforms-list-source'),
- (FORMNS,'size'),
- ),
- (FORMNS,'number'):(
- (FORMNS,'convert-empty-to-null'),
- (FORMNS,'max-length'),
- (FORMNS,'tab-stop'),
- (FORMNS,'name'),
- (FORMNS,'tab-index'),
- (FORMNS,'control-implementation'),
- (FORMNS,'min-value'),
- (FORMNS,'data-field'),
- (FORMNS,'max-value'),
- (FORMNS,'value'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'readonly'),
- (XFORMSNS,'bind'),
- (FORMNS,'title'),
- (FORMNS,'id'),
- (FORMNS,'current-value'),
- ),
- (FORMNS,'option'):(
- (FORMNS,'current-selected'),
- (FORMNS,'selected'),
- (FORMNS,'value'),
- (FORMNS,'label'),
- ),
- (FORMNS,'password'):(
- (FORMNS,'convert-empty-to-null'),
- (FORMNS,'max-length'),
- (FORMNS,'tab-stop'),
- (FORMNS,'name'),
- (FORMNS,'tab-index'),
- (FORMNS,'control-implementation'),
- (XFORMSNS,'bind'),
- (FORMNS,'title'),
- (FORMNS,'value'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'echo-char'),
- (FORMNS,'id'),
- ),
- (FORMNS,'properties'):(
- ),
- (FORMNS,'property'):(
- (OFFICENS,'string-value'),
- (OFFICENS,'value'),
- (OFFICENS,'boolean-value'),
- (FORMNS,'property-name'),
- (OFFICENS,'currency'),
- (OFFICENS,'date-value'),
- (OFFICENS,'value-type'),
- (OFFICENS,'time-value'),
- ),
- (FORMNS,'radio'):(
- (FORMNS,'tab-stop'),
- (FORMNS,'selected'),
- (FORMNS,'image-align'),
- (FORMNS,'name'),
- (FORMNS,'tab-index'),
- (FORMNS,'control-implementation'),
- (XFORMSNS,'bind'),
- (FORMNS,'data-field'),
- (FORMNS,'current-selected'),
- (FORMNS,'value'),
- (FORMNS,'label'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'title'),
- (FORMNS,'visual-effect'),
- (FORMNS,'id'),
- (FORMNS,'image-position'),
- ),
- (FORMNS,'text'):(
- (FORMNS,'convert-empty-to-null'),
- (FORMNS,'max-length'),
- (FORMNS,'tab-stop'),
- (FORMNS,'name'),
- (FORMNS,'tab-index'),
- (FORMNS,'control-implementation'),
- (XFORMSNS,'bind'),
- (FORMNS,'data-field'),
- (FORMNS,'title'),
- (FORMNS,'value'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'readonly'),
- (FORMNS,'id'),
- (FORMNS,'current-value'),
- ),
- (FORMNS,'textarea'):(
- (FORMNS,'convert-empty-to-null'),
- (FORMNS,'max-length'),
- (FORMNS,'tab-stop'),
- (FORMNS,'name'),
- (FORMNS,'tab-index'),
- (FORMNS,'control-implementation'),
- (XFORMSNS,'bind'),
- (FORMNS,'data-field'),
- (FORMNS,'title'),
- (FORMNS,'value'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'readonly'),
- (FORMNS,'id'),
- (FORMNS,'current-value'),
- ),
- (FORMNS,'time'):(
- (FORMNS,'convert-empty-to-null'),
- (FORMNS,'max-length'),
- (FORMNS,'tab-stop'),
- (FORMNS,'name'),
- (FORMNS,'tab-index'),
- (FORMNS,'control-implementation'),
- (FORMNS,'min-value'),
- (FORMNS,'data-field'),
- (FORMNS,'max-value'),
- (FORMNS,'value'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'readonly'),
- (XFORMSNS,'bind'),
- (FORMNS,'title'),
- (FORMNS,'id'),
- (FORMNS,'current-value'),
- ),
- (FORMNS,'value-range'):(
- (FORMNS,'tab-stop'),
- (FORMNS,'max-value'),
- (FORMNS,'name'),
- (FORMNS,'tab-index'),
- (FORMNS,'control-implementation'),
- (XFORMSNS,'bind'),
- (FORMNS,'title'),
- (FORMNS,'value'),
- (FORMNS,'disabled'),
- (FORMNS,'printable'),
- (FORMNS,'orientation'),
- (FORMNS,'page-step-size'),
- (FORMNS,'delay-for-repeat'),
- (FORMNS,'min-value'),
- (FORMNS,'id'),
- (FORMNS,'step-size'),
- ),
- (MANIFESTNS,'algorithm') : (
- (MANIFESTNS,'algorithm-name'),
- (MANIFESTNS,'initialisation-vector'),
- ),
- (MANIFESTNS,'encryption-data') : (
- (MANIFESTNS,'checksum-type'),
- (MANIFESTNS,'checksum'),
- ),
- (MANIFESTNS,'file-entry') : (
- (MANIFESTNS,'full-path'),
- (MANIFESTNS,'media-type'),
- (MANIFESTNS,'size'),
- ),
- (MANIFESTNS,'key-derivation') : (
- (MANIFESTNS,'key-derivation-name'),
- (MANIFESTNS,'salt'),
- (MANIFESTNS,'iteration-count'),
- ),
- (MANIFESTNS,'manifest'):(
- ),
-# allowed_attributes
- (METANS,'auto-reload'):(
- (METANS,'delay'),
- (XLINKNS,'actuate'),
- (XLINKNS,'href'),
- (XLINKNS,'type'),
- (XLINKNS,'show'),
- ),
- (METANS,'creation-date'):(
- ),
- (METANS,'date-string'):(
- ),
- (METANS,'document-statistic'):(
- (METANS,'non-whitespace-character-count'),
- (METANS,'ole-object-count'),
- (METANS,'table-count'),
- (METANS,'row-count'),
- (METANS,'character-count'),
- (METANS,'sentence-count'),
- (METANS,'draw-count'),
- (METANS,'paragraph-count'),
- (METANS,'word-count'),
- (METANS,'object-count'),
- (METANS,'syllable-count'),
- (METANS,'image-count'),
- (METANS,'page-count'),
- (METANS,'frame-count'),
- (METANS,'cell-count'),
- ),
- (METANS,'editing-cycles'):(
- ),
- (METANS,'editing-duration'):(
- ),
- (METANS,'generator'):(
- ),
-# allowed_attributes
- (METANS,'hyperlink-behaviour'):(
- (OFFICENS,'target-frame-name'),
- (XLINKNS,'show'),
- ),
- (METANS,'initial-creator'):(
- ),
- (METANS,'keyword'):(
- ),
- (METANS,'print-date'):(
- ),
- (METANS,'printed-by'):(
- ),
- (METANS,'template'):(
- (METANS,'date'),
- (XLINKNS,'actuate'),
- (XLINKNS,'href'),
- (XLINKNS,'type'),
- (XLINKNS,'title'),
- ),
- (METANS,'user-defined'):(
- (METANS,'name'),
- (METANS,'value-type'),
- ),
- (OFFICENS,'annotation'):(
- (DRAWNS,'layer'),
- (SVGNS,'height'),
- (TEXTNS,'anchor-page-number'),
- (TABLENS,'table-background'),
- (TABLENS,'end-cell-address'),
- (DRAWNS,'transform'),
- (DRAWNS,'id'),
- (SVGNS,'width'),
- (DRAWNS,'class-names'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'class-names'),
- (TABLENS,'end-x'),
- (DRAWNS,'text-style-name'),
- (DRAWNS,'z-index'),
- (PRESENTATIONNS,'style-name'),
- (TEXTNS,'anchor-type'),
- (DRAWNS,'name'),
- (DRAWNS,'caption-point-y'),
- (DRAWNS,'caption-point-x'),
- (DRAWNS,'corner-radius'),
- (SVGNS,'y'),
- (SVGNS,'x'),
- (TABLENS,'end-y'),
- (OFFICENS,'display'),
- ),
- (OFFICENS,'automatic-styles'):(
- ),
- (OFFICENS,'binary-data'):(
- ),
- (OFFICENS,'body'):(
- ),
- (OFFICENS,'change-info'):(
- ),
- (OFFICENS,'chart'):(
- ),
- (OFFICENS,'dde-source'):(
- (OFFICENS,'dde-application'),
- (OFFICENS,'automatic-update'),
- (OFFICENS,'conversion-mode'),
- (OFFICENS,'dde-item'),
- (OFFICENS,'dde-topic'),
- (OFFICENS,'name'),
- ),
- (OFFICENS,'document'):(
- (OFFICENS,'mimetype'),
- (OFFICENS,'version'),
- ),
- (OFFICENS,'document-content'):(
- (OFFICENS,'version'),
- ),
- (OFFICENS,'document-meta'):(
- (OFFICENS,'version'),
- ),
- (OFFICENS,'document-settings'):(
- (OFFICENS,'version'),
- ),
- (OFFICENS,'document-styles'):(
- (OFFICENS,'version'),
- ),
- (OFFICENS,'drawing'):(
- ),
- (OFFICENS,'event-listeners'):(
- ),
- (OFFICENS,'font-face-decls'):(
- ),
- (OFFICENS,'forms'):(
- (FORMNS,'automatic-focus'),
- (FORMNS,'apply-design-mode'),
- ),
- (OFFICENS,'image'):(
- ),
-# allowed_attributes
- (OFFICENS,'master-styles'):(
- ),
- (OFFICENS,'meta'):(
- ),
- (OFFICENS,'presentation'):(
- ),
- (OFFICENS,'script'):(
- (SCRIPTNS,'language'),
- ),
- (OFFICENS,'scripts'):(
- ),
- (OFFICENS,'settings'):(
- ),
- (OFFICENS,'spreadsheet'):(
- (TABLENS,'structure-protected'),
- (TABLENS,'protection-key'),
- ),
- (OFFICENS,'styles'):(
- ),
- (OFFICENS,'text'):(
- (TEXTNS,'global'),
- (TEXTNS,'use-soft-page-breaks'),
- ),
- (PRESENTATIONNS,'animation-group'):(
- ),
- (PRESENTATIONNS,'animations'):(
- ),
- (PRESENTATIONNS,'date-time'):(
- ),
- (PRESENTATIONNS,'date-time-decl'):(
- (PRESENTATIONNS,'source'),
- (STYLENS,'data-style-name'),
- (PRESENTATIONNS,'name'),
- ),
- (PRESENTATIONNS,'dim'):(
- (DRAWNS,'color'),
- (DRAWNS,'shape-id'),
- ),
- (PRESENTATIONNS,'event-listener'):(
- (PRESENTATIONNS,'direction'),
- (XLINKNS,'show'),
- (XLINKNS,'type'),
- (XLINKNS,'actuate'),
- (PRESENTATIONNS,'effect'),
- (SCRIPTNS,'event-name'),
- (PRESENTATIONNS,'start-scale'),
- (XLINKNS,'href'),
- (PRESENTATIONNS,'verb'),
- (PRESENTATIONNS,'action'),
- (PRESENTATIONNS,'speed'),
- ),
- (PRESENTATIONNS,'footer'):(
- ),
- (PRESENTATIONNS,'footer-decl'):(
- (PRESENTATIONNS,'name'),
- ),
- (PRESENTATIONNS,'header'):(
- ),
- (PRESENTATIONNS,'header-decl'):(
- (PRESENTATIONNS,'name'),
- ),
- (PRESENTATIONNS,'hide-shape'):(
- (PRESENTATIONNS,'direction'),
- (PRESENTATIONNS,'effect'),
- (PRESENTATIONNS,'delay'),
- (PRESENTATIONNS,'start-scale'),
- (PRESENTATIONNS,'path-id'),
- (PRESENTATIONNS,'speed'),
- (DRAWNS,'shape-id'),
- ),
-# allowed_attributes
- (PRESENTATIONNS,'hide-text'):(
- (PRESENTATIONNS,'direction'),
- (PRESENTATIONNS,'effect'),
- (PRESENTATIONNS,'delay'),
- (PRESENTATIONNS,'start-scale'),
- (PRESENTATIONNS,'path-id'),
- (PRESENTATIONNS,'speed'),
- (DRAWNS,'shape-id'),
- ),
- (PRESENTATIONNS,'notes'):(
- (STYLENS,'page-layout-name'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'use-header-name'),
- (PRESENTATIONNS,'use-date-time-name'),
- (PRESENTATIONNS,'use-footer-name'),
- ),
- (PRESENTATIONNS,'placeholder'):(
- (SVGNS,'y'),
- (SVGNS,'x'),
- (SVGNS,'height'),
- (PRESENTATIONNS,'object'),
- (SVGNS,'width'),
- ),
- (PRESENTATIONNS,'play'):(
- (PRESENTATIONNS,'speed'),
- (DRAWNS,'shape-id'),
- ),
-# allowed_attributes
- (PRESENTATIONNS,'settings'):(
- (PRESENTATIONNS,'animations'),
- (PRESENTATIONNS,'endless'),
- (PRESENTATIONNS,'force-manual'),
- (PRESENTATIONNS,'full-screen'),
- (PRESENTATIONNS,'mouse-as-pen'),
- (PRESENTATIONNS,'mouse-visible'),
- (PRESENTATIONNS,'pause'),
- (PRESENTATIONNS,'show'),
- (PRESENTATIONNS,'show-end-of-presentation-slide'),
- (PRESENTATIONNS,'show-logo'),
- (PRESENTATIONNS,'start-page'),
- (PRESENTATIONNS,'start-with-navigator'),
- (PRESENTATIONNS,'stay-on-top'),
- (PRESENTATIONNS,'transition-on-click'),
- ),
- (PRESENTATIONNS,'show'):(
- (PRESENTATIONNS,'name'),
- (PRESENTATIONNS,'pages'),
- ),
- (PRESENTATIONNS,'show-shape'):(
- (PRESENTATIONNS,'direction'),
- (PRESENTATIONNS,'effect'),
- (PRESENTATIONNS,'delay'),
- (PRESENTATIONNS,'start-scale'),
- (PRESENTATIONNS,'path-id'),
- (PRESENTATIONNS,'speed'),
- (DRAWNS,'shape-id'),
- ),
- (PRESENTATIONNS,'show-text'):(
- (PRESENTATIONNS,'direction'),
- (PRESENTATIONNS,'effect'),
- (PRESENTATIONNS,'delay'),
- (PRESENTATIONNS,'start-scale'),
- (PRESENTATIONNS,'path-id'),
- (PRESENTATIONNS,'speed'),
- (DRAWNS,'shape-id'),
- ),
- (PRESENTATIONNS,'sound'):(
- (XLINKNS,'actuate'),
- (XLINKNS,'href'),
- (XLINKNS,'type'),
- (PRESENTATIONNS,'play-full'),
- (XLINKNS,'show'),
- ),
-# allowed_attributes
- (SCRIPTNS,'event-listener'):(
- (SCRIPTNS,'language'),
- (SCRIPTNS,'macro-name'),
- (XLINKNS,'actuate'),
- (SCRIPTNS,'event-name'),
- (XLINKNS,'href'),
- (XLINKNS,'type'),
- ),
- (STYLENS,'background-image'):(
- (DRAWNS,'opacity'),
- (STYLENS,'repeat'),
- (XLINKNS,'show'),
- (XLINKNS,'actuate'),
- (STYLENS,'filter-name'),
- (XLINKNS,'href'),
- (STYLENS,'position'),
- (XLINKNS,'type'),
- ),
- (STYLENS,'chart-properties'): (
- (CHARTNS,'connect-bars'),
- (CHARTNS,'data-label-number'),
- (CHARTNS,'data-label-symbol'),
- (CHARTNS,'data-label-text'),
- (CHARTNS,'deep'),
- (CHARTNS,'display-label'),
- (CHARTNS,'error-category'),
- (CHARTNS,'error-lower-indicator'),
- (CHARTNS,'error-lower-limit'),
- (CHARTNS,'error-margin'),
- (CHARTNS,'error-percentage'),
- (CHARTNS,'error-upper-indicator'),
- (CHARTNS,'error-upper-limit'),
- (CHARTNS,'gap-width'),
- (CHARTNS,'interpolation'),
- (CHARTNS,'interval-major'),
- (CHARTNS,'interval-minor-divisor'),
- (CHARTNS,'japanese-candle-stick'),
- (CHARTNS,'label-arrangement'),
- (CHARTNS,'lines'),
- (CHARTNS,'link-data-style-to-source'),
- (CHARTNS,'logarithmic'),
- (CHARTNS,'maximum'),
- (CHARTNS,'mean-value'),
- (CHARTNS,'minimum'),
- (CHARTNS,'origin'),
- (CHARTNS,'overlap'),
- (CHARTNS,'percentage'),
- (CHARTNS,'pie-offset'),
- (CHARTNS,'regression-type'),
- (CHARTNS,'scale-text'),
- (CHARTNS,'series-source'),
- (CHARTNS,'solid-type'),
- (CHARTNS,'spline-order'),
- (CHARTNS,'spline-resolution'),
- (CHARTNS,'stacked'),
- (CHARTNS,'symbol-height'),
- (CHARTNS,'symbol-name'),
- (CHARTNS,'symbol-type'),
- (CHARTNS,'symbol-width'),
- (CHARTNS,'text-overlap'),
- (CHARTNS,'three-dimensional'),
- (CHARTNS,'tick-marks-major-inner'),
- (CHARTNS,'tick-marks-major-outer'),
- (CHARTNS,'tick-marks-minor-inner'),
- (CHARTNS,'tick-marks-minor-outer'),
- (CHARTNS,'vertical'),
- (CHARTNS,'visible'),
- (STYLENS,'direction'),
- (STYLENS,'rotation-angle'),
- (TEXTNS,'line-break'),
- ),
- (STYLENS,'column'):(
- (FONS,'end-indent'),
- (FONS,'space-before'),
- (FONS,'start-indent'),
- (FONS,'space-after'),
- (STYLENS,'rel-width'),
- ),
- (STYLENS,'column-sep'):(
- (STYLENS,'color'),
- (STYLENS,'width'),
- (STYLENS,'style'),
- (STYLENS,'vertical-align'),
- (STYLENS,'height'),
- ),
- (STYLENS,'columns'):(
- (FONS,'column-count'),
- (FONS,'column-gap'),
- ),
- (STYLENS,'default-style'):(
- (STYLENS,'family'),
- ),
-# allowed_attributes
- (STYLENS,'drawing-page-properties'): (
- (DRAWNS,'fill'),
- (DRAWNS,'fill-color'),
- (DRAWNS,'secondary-fill-color'),
- (DRAWNS,'fill-gradient-name'),
- (DRAWNS,'gradient-step-count'),
- (DRAWNS,'fill-hatch-name'),
- (DRAWNS,'fill-hatch-solid'),
- (DRAWNS,'fill-image-name'),
- (STYLENS,'repeat'),
- (DRAWNS,'fill-image-width'),
- (DRAWNS,'fill-image-height'),
- (DRAWNS,'fill-image-ref-point-x'),
- (DRAWNS,'fill-image-ref-point-y'),
- (DRAWNS,'fill-image-ref-point'),
- (DRAWNS,'tile-repeat-offset'),
- (DRAWNS,'opacity'),
- (DRAWNS,'opacity-name'),
- (SVGNS,'fill-rule'),
- (PRESENTATIONNS,'transition-type'),
- (PRESENTATIONNS,'transition-style'),
- (PRESENTATIONNS,'transition-speed'),
- (SMILNS,'type'),
- (SMILNS,'subtype'),
- (SMILNS,'direction'),
- (SMILNS,'fadeColor'),
- (PRESENTATIONNS,'duration'),
- (PRESENTATIONNS,'visibility'),
- (DRAWNS,'background-size'),
- (PRESENTATIONNS,'background-objects-visible'),
- (PRESENTATIONNS,'background-visible'),
- (PRESENTATIONNS,'display-header'),
- (PRESENTATIONNS,'display-footer'),
- (PRESENTATIONNS,'display-page-number'),
- (PRESENTATIONNS,'display-date-time'),
- ),
- (STYLENS,'drop-cap'):(
- (STYLENS,'distance'),
- (STYLENS,'length'),
- (STYLENS,'style-name'),
- (STYLENS,'lines'),
- ),
-# allowed_attributes
- (STYLENS,'font-face'):(
- (STYLENS,'font-adornments'),
- (STYLENS,'font-charset'),
- (STYLENS,'font-family-generic'),
- (STYLENS,'font-pitch'),
- (STYLENS,'name'),
- (SVGNS,'accent-height'),
- (SVGNS,'alphabetic'),
- (SVGNS,'ascent'),
- (SVGNS,'bbox'),
- (SVGNS,'cap-height'),
- (SVGNS,'descent'),
- (SVGNS,'font-family'),
- (SVGNS,'font-size'),
- (SVGNS,'font-stretch'),
- (SVGNS,'font-style'),
- (SVGNS,'font-variant'),
- (SVGNS,'font-weight'),
- (SVGNS,'hanging'),
- (SVGNS,'ideographic'),
- (SVGNS,'mathematical'),
- (SVGNS,'overline-position'),
- (SVGNS,'overline-thickness'),
- (SVGNS,'panose-1'),
- (SVGNS,'slope'),
- (SVGNS,'stemh'),
- (SVGNS,'stemv'),
- (SVGNS,'strikethrough-position'),
- (SVGNS,'strikethrough-thickness'),
- (SVGNS,'underline-position'),
- (SVGNS,'underline-thickness'),
- (SVGNS,'unicode-range'),
- (SVGNS,'units-per-em'),
- (SVGNS,'v-alphabetic'),
- (SVGNS,'v-hanging'),
- (SVGNS,'v-ideographic'),
- (SVGNS,'v-mathematical'),
- (SVGNS,'widths'),
- (SVGNS,'x-height'),
- ),
- (STYLENS,'footer'):(
- (STYLENS,'display'),
- ),
- (STYLENS,'footer-left'):(
- (STYLENS,'display'),
- ),
- (STYLENS,'footer-style'):(
- ),
- (STYLENS,'footnote-sep'):(
- (STYLENS,'distance-after-sep'),
- (STYLENS,'color'),
- (STYLENS,'rel-width'),
- (STYLENS,'width'),
- (STYLENS,'distance-before-sep'),
- (STYLENS,'line-style'),
- (STYLENS,'adjustment'),
- ),
-# allowed_attributes
- (STYLENS,'graphic-properties'): (
- (DR3DNS,'ambient-color'),
- (DR3DNS,'back-scale'),
- (DR3DNS,'backface-culling'),
- (DR3DNS,'close-back'),
- (DR3DNS,'close-front'),
- (DR3DNS,'depth'),
- (DR3DNS,'diffuse-color'),
- (DR3DNS,'edge-rounding'),
- (DR3DNS,'edge-rounding-mode'),
- (DR3DNS,'emissive-color'),
- (DR3DNS,'end-angle'),
- (DR3DNS,'horizontal-segments'),
- (DR3DNS,'lighting-mode'),
- (DR3DNS,'normals-direction'),
- (DR3DNS,'normals-kind'),
- (DR3DNS,'shadow'),
- (DR3DNS,'shininess'),
- (DR3DNS,'specular-color'),
- (DR3DNS,'texture-filter'),
- (DR3DNS,'texture-generation-mode-x'),
- (DR3DNS,'texture-generation-mode-y'),
- (DR3DNS,'texture-kind'),
- (DR3DNS,'texture-mode'),
- (DR3DNS,'vertical-segments'),
- (DRAWNS,'auto-grow-height'),
- (DRAWNS,'auto-grow-width'),
- (DRAWNS,'blue'),
- (DRAWNS,'caption-angle'),
- (DRAWNS,'caption-angle-type'),
- (DRAWNS,'caption-escape'),
- (DRAWNS,'caption-escape-direction'),
- (DRAWNS,'caption-fit-line-length'),
- (DRAWNS,'caption-gap'),
- (DRAWNS,'caption-line-length'),
- (DRAWNS,'caption-type'),
- (DRAWNS,'color-inversion'),
- (DRAWNS,'color-mode'),
- (DRAWNS,'contrast'),
- (DRAWNS,'decimal-places'),
- (DRAWNS,'end-guide'),
- (DRAWNS,'end-line-spacing-horizontal'),
- (DRAWNS,'end-line-spacing-vertical'),
- (DRAWNS,'fill'),
- (DRAWNS,'fill-color'),
- (DRAWNS,'fill-gradient-name'),
- (DRAWNS,'fill-hatch-name'),
- (DRAWNS,'fill-hatch-solid'),
- (DRAWNS,'fill-image-height'),
- (DRAWNS,'fill-image-name'),
- (DRAWNS,'fill-image-ref-point'),
- (DRAWNS,'fill-image-ref-point-x'),
- (DRAWNS,'fill-image-ref-point-y'),
- (DRAWNS,'fill-image-width'),
-# allowed_attributes
- (DRAWNS,'fit-to-contour'),
- (DRAWNS,'fit-to-size'),
- (DRAWNS,'frame-display-border'),
- (DRAWNS,'frame-display-scrollbar'),
- (DRAWNS,'frame-margin-horizontal'),
- (DRAWNS,'frame-margin-vertical'),
- (DRAWNS,'gamma'),
- (DRAWNS,'gradient-step-count'),
- (DRAWNS,'green'),
- (DRAWNS,'guide-distance'),
- (DRAWNS,'guide-overhang'),
- (DRAWNS,'image-opacity'),
- (DRAWNS,'line-distance'),
- (DRAWNS,'luminance'),
- (DRAWNS,'marker-end'),
- (DRAWNS,'marker-end-center'),
- (DRAWNS,'marker-end-width'),
- (DRAWNS,'marker-start'),
- (DRAWNS,'marker-start-center'),
- (DRAWNS,'marker-start-width'),
- (DRAWNS,'measure-align'),
- (DRAWNS,'measure-vertical-align'),
- (DRAWNS,'ole-draw-aspect'),
- (DRAWNS,'opacity'),
- (DRAWNS,'opacity-name'),
- (DRAWNS,'parallel'),
- (DRAWNS,'placing'),
- (DRAWNS,'red'),
- (DRAWNS,'secondary-fill-color'),
- (DRAWNS,'shadow'),
- (DRAWNS,'shadow-color'),
- (DRAWNS,'shadow-offset-x'),
- (DRAWNS,'shadow-offset-y'),
- (DRAWNS,'shadow-opacity'),
- (DRAWNS,'show-unit'),
- (DRAWNS,'start-guide'),
- (DRAWNS,'start-line-spacing-horizontal'),
- (DRAWNS,'start-line-spacing-vertical'),
- (DRAWNS,'stroke'),
- (DRAWNS,'stroke-dash'),
- (DRAWNS,'stroke-dash-names'),
- (DRAWNS,'stroke-linejoin'),
- (DRAWNS,'symbol-color'),
- (DRAWNS,'textarea-horizontal-align'),
- (DRAWNS,'textarea-vertical-align'),
- (DRAWNS,'tile-repeat-offset'),
- (DRAWNS,'unit'),
- (DRAWNS,'visible-area-height'),
- (DRAWNS,'visible-area-left'),
- (DRAWNS,'visible-area-top'),
- (DRAWNS,'visible-area-width'),
- (DRAWNS,'wrap-influence-on-position'),
-# allowed_attributes
- (FONS,'background-color'),
- (FONS,'border'),
- (FONS,'border-bottom'),
- (FONS,'border-left'),
- (FONS,'border-right'),
- (FONS,'border-top'),
- (FONS,'clip'),
- (FONS,'margin'),
- (FONS,'margin-bottom'),
- (FONS,'margin-left'),
- (FONS,'margin-right'),
- (FONS,'margin-top'),
- (FONS,'max-height'),
- (FONS,'max-width'),
- (FONS,'min-height'),
- (FONS,'min-width'),
- (FONS,'padding'),
- (FONS,'padding-bottom'),
- (FONS,'padding-left'),
- (FONS,'padding-right'),
- (FONS,'padding-top'),
- (FONS,'wrap-option'),
- (STYLENS,'border-line-width'),
- (STYLENS,'border-line-width-bottom'),
- (STYLENS,'border-line-width-left'),
- (STYLENS,'border-line-width-right'),
- (STYLENS,'border-line-width-top'),
- (STYLENS,'editable'),
- (STYLENS,'flow-with-text'),
- (STYLENS,'horizontal-pos'),
- (STYLENS,'horizontal-rel'),
- (STYLENS,'mirror'),
- (STYLENS,'number-wrapped-paragraphs'),
- (STYLENS,'overflow-behavior'),
- (STYLENS,'print-content'),
- (STYLENS,'protect'),
- (STYLENS,'rel-height'),
- (STYLENS,'rel-width'),
- (STYLENS,'repeat'),
- (STYLENS,'run-through'),
- (STYLENS,'shadow'),
- (STYLENS,'vertical-pos'),
- (STYLENS,'vertical-rel'),
- (STYLENS,'wrap'),
- (STYLENS,'wrap-contour'),
- (STYLENS,'wrap-contour-mode'),
- (STYLENS,'wrap-dynamic-threshold'),
- (STYLENS,'writing-mode'),
- (SVGNS,'fill-rule'),
- (SVGNS,'height'),
- (SVGNS,'stroke-color'),
- (SVGNS,'stroke-opacity'),
- (SVGNS,'stroke-width'),
- (SVGNS,'width'),
- (SVGNS,'x'),
- (SVGNS,'y'),
- (TEXTNS,'anchor-page-number'),
- (TEXTNS,'anchor-type'),
- (TEXTNS,'animation'),
- (TEXTNS,'animation-delay'),
- (TEXTNS,'animation-direction'),
- (TEXTNS,'animation-repeat'),
- (TEXTNS,'animation-start-inside'),
- (TEXTNS,'animation-steps'),
- (TEXTNS,'animation-stop-inside'),
- ),
- (STYLENS,'handout-master'):(
- (PRESENTATIONNS,'presentation-page-layout-name'),
- (STYLENS,'page-layout-name'),
- (PRESENTATIONNS,'use-footer-name'),
- (DRAWNS,'style-name'),
- (PRESENTATIONNS,'use-header-name'),
- (PRESENTATIONNS,'use-date-time-name'),
- ),
-# allowed_attributes
- (STYLENS,'header'):(
- (STYLENS,'display'),
- ),
- (STYLENS,'header-footer-properties'): (
- (FONS,'background-color'),
- (FONS,'border'),
- (FONS,'border-bottom'),
- (FONS,'border-left'),
- (FONS,'border-right'),
- (FONS,'border-top'),
- (FONS,'margin'),
- (FONS,'margin-bottom'),
- (FONS,'margin-left'),
- (FONS,'margin-right'),
- (FONS,'margin-top'),
- (FONS,'min-height'),
- (FONS,'padding'),
- (FONS,'padding-bottom'),
- (FONS,'padding-left'),
- (FONS,'padding-right'),
- (FONS,'padding-top'),
- (STYLENS,'border-line-width'),
- (STYLENS,'border-line-width-bottom'),
- (STYLENS,'border-line-width-left'),
- (STYLENS,'border-line-width-right'),
- (STYLENS,'border-line-width-top'),
- (STYLENS,'dynamic-spacing'),
- (STYLENS,'shadow'),
- (SVGNS,'height'),
- ),
- (STYLENS,'header-left'):(
- (STYLENS,'display'),
- ),
- (STYLENS,'header-style'):(
- ),
-# allowed_attributes
- (STYLENS,'list-level-properties'): (
- (FONS,'height'),
- (FONS,'text-align'),
- (FONS,'width'),
- (STYLENS,'font-name'),
- (STYLENS,'vertical-pos'),
- (STYLENS,'vertical-rel'),
- (SVGNS,'y'),
- (TEXTNS,'min-label-distance'),
- (TEXTNS,'min-label-width'),
- (TEXTNS,'space-before'),
- ),
- (STYLENS,'map'):(
- (STYLENS,'apply-style-name'),
- (STYLENS,'base-cell-address'),
- (STYLENS,'condition'),
- ),
- (STYLENS,'master-page'):(
- (STYLENS,'page-layout-name'),
- (STYLENS,'display-name'),
- (DRAWNS,'style-name'),
- (STYLENS,'name'),
- (STYLENS,'next-style-name'),
- ),
- (STYLENS,'page-layout'):(
- (STYLENS,'name'),
- (STYLENS,'page-usage'),
- ),
-# allowed_attributes
- (STYLENS,'page-layout-properties'): (
- (FONS,'background-color'),
- (FONS,'border'),
- (FONS,'border-bottom'),
- (FONS,'border-left'),
- (FONS,'border-right'),
- (FONS,'border-top'),
- (FONS,'margin'),
- (FONS,'margin-bottom'),
- (FONS,'margin-left'),
- (FONS,'margin-right'),
- (FONS,'margin-top'),
- (FONS,'padding'),
- (FONS,'padding-bottom'),
- (FONS,'padding-left'),
- (FONS,'padding-right'),
- (FONS,'padding-top'),
- (FONS,'page-height'),
- (FONS,'page-width'),
- (STYLENS,'border-line-width'),
- (STYLENS,'border-line-width-bottom'),
- (STYLENS,'border-line-width-left'),
- (STYLENS,'border-line-width-right'),
- (STYLENS,'border-line-width-top'),
- (STYLENS,'first-page-number'),
- (STYLENS,'footnote-max-height'),
- (STYLENS,'layout-grid-base-height'),
- (STYLENS,'layout-grid-color'),
- (STYLENS,'layout-grid-display'),
- (STYLENS,'layout-grid-lines'),
- (STYLENS,'layout-grid-mode'),
- (STYLENS,'layout-grid-print'),
- (STYLENS,'layout-grid-ruby-below'),
- (STYLENS,'layout-grid-ruby-height'),
- (STYLENS,'num-format'),
- (STYLENS,'num-letter-sync'),
- (STYLENS,'num-prefix'),
- (STYLENS,'num-suffix'),
- (STYLENS,'paper-tray-name'),
- (STYLENS,'print'),
- (STYLENS,'print-orientation'),
- (STYLENS,'print-page-order'),
- (STYLENS,'register-truth-ref-style-name'),
- (STYLENS,'scale-to'),
- (STYLENS,'scale-to-pages'),
- (STYLENS,'shadow'),
- (STYLENS,'table-centering'),
- (STYLENS,'writing-mode'),
- ),
-# allowed_attributes
- (STYLENS,'paragraph-properties'): (
- (FONS,'background-color'),
- (FONS,'border'),
- (FONS,'border-bottom'),
- (FONS,'border-left'),
- (FONS,'border-right'),
- (FONS,'border-top'),
- (FONS,'break-after'),
- (FONS,'break-before'),
- (FONS,'hyphenation-keep'),
- (FONS,'hyphenation-ladder-count'),
- (FONS,'keep-together'),
- (FONS,'keep-with-next'),
- (FONS,'line-height'),
- (FONS,'margin'),
- (FONS,'margin-bottom'),
- (FONS,'margin-left'),
- (FONS,'margin-right'),
- (FONS,'margin-top'),
- (FONS,'orphans'),
- (FONS,'padding'),
- (FONS,'padding-bottom'),
- (FONS,'padding-left'),
- (FONS,'padding-right'),
- (FONS,'padding-top'),
- (FONS,'text-align'),
- (FONS,'text-align-last'),
- (FONS,'text-indent'),
- (FONS,'widows'),
- (STYLENS,'auto-text-indent'),
- (STYLENS,'background-transparency'),
- (STYLENS,'border-line-width'),
- (STYLENS,'border-line-width-bottom'),
- (STYLENS,'border-line-width-left'),
- (STYLENS,'border-line-width-right'),
- (STYLENS,'border-line-width-top'),
- (STYLENS,'font-independent-line-spacing'),
- (STYLENS,'justify-single-word'),
- (STYLENS,'line-break'),
- (STYLENS,'line-height-at-least'),
- (STYLENS,'line-spacing'),
- (STYLENS,'page-number'),
- (STYLENS,'punctuation-wrap'),
- (STYLENS,'register-true'),
- (STYLENS,'shadow'),
- (STYLENS,'snap-to-layout-grid'),
- (STYLENS,'tab-stop-distance'),
- (STYLENS,'text-autospace'),
- (STYLENS,'vertical-align'),
- (STYLENS,'writing-mode'),
- (STYLENS,'writing-mode-automatic'),
- (TEXTNS,'line-number'),
- (TEXTNS,'number-lines'),
- ),
- (STYLENS,'presentation-page-layout'):(
- (STYLENS,'display-name'),
- (STYLENS,'name'),
- ),
-# allowed_attributes
- (STYLENS,'region-center'):(
- ),
- (STYLENS,'region-left'):(
- ),
- (STYLENS,'region-right'):(
- ),
- (STYLENS,'ruby-properties'): (
- (STYLENS,'ruby-position'),
- (STYLENS,'ruby-align'),
- ),
- (STYLENS,'section-properties'): (
- (FONS,'background-color'),
- (FONS,'margin-left'),
- (FONS,'margin-right'),
- (STYLENS,'protect'),
- (STYLENS,'writing-mode'),
- (TEXTNS,'dont-balance-text-columns'),
- ),
- (STYLENS,'style'):(
- (STYLENS,'family'),
- (STYLENS,'list-style-name'),
- (STYLENS,'name'),
- (STYLENS,'auto-update'),
- (STYLENS,'default-outline-level'),
- (STYLENS,'class'),
- (STYLENS,'next-style-name'),
- (STYLENS,'data-style-name'),
- (STYLENS,'master-page-name'),
- (STYLENS,'display-name'),
- (STYLENS,'parent-style-name'),
- ),
-# allowed_attributes
- (STYLENS,'tab-stop'):(
- (STYLENS,'leader-text-style'),
- (STYLENS,'leader-width'),
- (STYLENS,'leader-style'),
- (STYLENS,'char'),
- (STYLENS,'leader-color'),
- (STYLENS,'position'),
- (STYLENS,'leader-text'),
- (STYLENS,'type'),
- (STYLENS,'leader-type'),
- ),
- (STYLENS,'tab-stops'):(
- ),
- (STYLENS,'table-cell-properties'): (
- (FONS,'background-color'),
- (FONS,'border'),
- (FONS,'border-bottom'),
- (FONS,'border-left'),
- (FONS,'border-right'),
- (FONS,'border-top'),
- (FONS,'padding'),
- (FONS,'padding-bottom'),
- (FONS,'padding-left'),
- (FONS,'padding-right'),
- (FONS,'padding-top'),
- (FONS,'wrap-option'),
- (STYLENS,'border-line-width'),
- (STYLENS,'border-line-width-bottom'),
- (STYLENS,'border-line-width-left'),
- (STYLENS,'border-line-width-right'),
- (STYLENS,'border-line-width-top'),
- (STYLENS,'cell-protect'),
- (STYLENS,'decimal-places'),
- (STYLENS,'diagonal-bl-tr'),
- (STYLENS,'diagonal-bl-tr-widths'),
- (STYLENS,'diagonal-tl-br'),
- (STYLENS,'diagonal-tl-br-widths'),
- (STYLENS,'direction'),
- (STYLENS,'glyph-orientation-vertical'),
- (STYLENS,'print-content'),
- (STYLENS,'repeat-content'),
- (STYLENS,'rotation-align'),
- (STYLENS,'rotation-angle'),
- (STYLENS,'shadow'),
- (STYLENS,'shrink-to-fit'),
- (STYLENS,'text-align-source'),
- (STYLENS,'vertical-align'),
- ),
-# allowed_attributes
- (STYLENS,'table-column-properties'): (
- (FONS,'break-after'),
- (FONS,'break-before'),
- (STYLENS,'column-width'),
- (STYLENS,'rel-column-width'),
- (STYLENS,'use-optimal-column-width'),
- ),
- (STYLENS,'table-properties'): (
- (FONS,'background-color'),
- (FONS,'break-after'),
- (FONS,'break-before'),
- (FONS,'keep-with-next'),
- (FONS,'margin'),
- (FONS,'margin-bottom'),
- (FONS,'margin-left'),
- (FONS,'margin-right'),
- (FONS,'margin-top'),
- (STYLENS,'may-break-between-rows'),
- (STYLENS,'page-number'),
- (STYLENS,'rel-width'),
- (STYLENS,'shadow'),
- (STYLENS,'width'),
- (STYLENS,'writing-mode'),
- (TABLENS,'align'),
- (TABLENS,'border-model'),
- (TABLENS,'display'),
- ),
- (STYLENS,'table-row-properties'): (
- (FONS,'background-color'),
- (FONS,'break-after'),
- (FONS,'break-before'),
- (FONS,'keep-together'),
- (STYLENS,'min-row-height'),
- (STYLENS,'row-height'),
- (STYLENS,'use-optimal-row-height'),
- ),
-# allowed_attributes
- (STYLENS,'text-properties'): (
- (FONS,'background-color'),
- (FONS,'color'),
- (FONS,'country'),
- (FONS,'font-family'),
- (FONS,'font-size'),
- (FONS,'font-style'),
- (FONS,'font-variant'),
- (FONS,'font-weight'),
- (FONS,'hyphenate'),
- (FONS,'hyphenation-push-char-count'),
- (FONS,'hyphenation-remain-char-count'),
- (FONS,'language'),
- (FONS,'letter-spacing'),
- (FONS,'text-shadow'),
- (FONS,'text-transform'),
- (STYLENS,'country-asian'),
- (STYLENS,'country-complex'),
- (STYLENS,'font-charset'),
- (STYLENS,'font-charset-asian'),
- (STYLENS,'font-charset-complex'),
- (STYLENS,'font-family-asian'),
- (STYLENS,'font-family-complex'),
- (STYLENS,'font-family-generic'),
- (STYLENS,'font-family-generic-asian'),
- (STYLENS,'font-family-generic-complex'),
- (STYLENS,'font-name'),
- (STYLENS,'font-name-asian'),
- (STYLENS,'font-name-complex'),
- (STYLENS,'font-pitch'),
- (STYLENS,'font-pitch-asian'),
- (STYLENS,'font-pitch-complex'),
- (STYLENS,'font-relief'),
- (STYLENS,'font-size-asian'),
- (STYLENS,'font-size-complex'),
- (STYLENS,'font-size-rel'),
- (STYLENS,'font-size-rel-asian'),
- (STYLENS,'font-size-rel-complex'),
- (STYLENS,'font-style-asian'),
- (STYLENS,'font-style-complex'),
- (STYLENS,'font-style-name'),
- (STYLENS,'font-style-name-asian'),
- (STYLENS,'font-style-name-complex'),
- (STYLENS,'font-weight-asian'),
- (STYLENS,'font-weight-complex'),
- (STYLENS,'language-asian'),
- (STYLENS,'language-complex'),
- (STYLENS,'letter-kerning'),
- (STYLENS,'script-type'),
- (STYLENS,'text-blinking'),
- (STYLENS,'text-combine'),
- (STYLENS,'text-combine-end-char'),
- (STYLENS,'text-combine-start-char'),
- (STYLENS,'text-emphasize'),
- (STYLENS,'text-line-through-color'),
- (STYLENS,'text-line-through-mode'),
- (STYLENS,'text-line-through-style'),
- (STYLENS,'text-line-through-text'),
- (STYLENS,'text-line-through-text-style'),
- (STYLENS,'text-line-through-type'),
- (STYLENS,'text-line-through-width'),
- (STYLENS,'text-outline'),
- (STYLENS,'text-position'),
- (STYLENS,'text-rotation-angle'),
- (STYLENS,'text-rotation-scale'),
- (STYLENS,'text-scale'),
- (STYLENS,'text-underline-color'),
- (STYLENS,'text-underline-mode'),
- (STYLENS,'text-underline-style'),
- (STYLENS,'text-underline-type'),
- (STYLENS,'text-underline-width'),
- (STYLENS,'use-window-font-color'),
- (TEXTNS,'condition'),
- (TEXTNS,'display'),
- ),
- (SVGNS,'definition-src'):(
- (XLINKNS,'actuate'),
- (XLINKNS,'href'),
- (XLINKNS,'type'),
- ),
- (SVGNS,'desc'):(
- ),
- (SVGNS,'font-face-format'):(
- (SVGNS,'string'),
- ),
-# allowed_attributes
- (SVGNS,'font-face-name'):(
- (SVGNS,'name'),
- ),
- (SVGNS,'font-face-src'):(
- ),
- (SVGNS,'font-face-uri'):(
- (XLINKNS,'actuate'),
- (XLINKNS,'href'),
- (XLINKNS,'type'),
- ),
- (SVGNS,'linearGradient'):(
- (SVGNS,'y2'),
- (DRAWNS,'name'),
- (SVGNS,'spreadMethod'),
- (SVGNS,'gradientUnits'),
- (SVGNS,'x2'),
- (SVGNS,'gradientTransform'),
- (SVGNS,'y1'),
- (DRAWNS,'display-name'),
- (SVGNS,'x1'),
- ),
- (SVGNS,'radialGradient'):(
- (DRAWNS,'name'),
- (SVGNS,'fx'),
- (SVGNS,'fy'),
- (SVGNS,'spreadMethod'),
- (SVGNS,'gradientUnits'),
- (SVGNS,'cy'),
- (SVGNS,'cx'),
- (SVGNS,'gradientTransform'),
- (DRAWNS,'display-name'),
- (SVGNS,'r'),
- ),
- (SVGNS,'stop'):(
- (SVGNS,'stop-color'),
- (SVGNS,'stop-opacity'),
- (SVGNS,'offset'),
- ),
- (SVGNS,'title'):(
- ),
-# allowed_attributes
- (TABLENS,'body'):(
- (TEXTNS,'paragraph-style-name'),
- (TEXTNS,'style-name'),
- ),
- (TABLENS,'calculation-settings'):(
- (TABLENS,'automatic-find-labels'),
- (TABLENS,'case-sensitive'),
- (TABLENS,'search-criteria-must-apply-to-whole-cell'),
- (TABLENS,'precision-as-shown'),
- (TABLENS,'use-regular-expressions'),
- (TABLENS,'null-year'),
- ),
- (TABLENS,'cell-address'):(
- (TABLENS,'column'),
- (TABLENS,'table'),
- (TABLENS,'row'),
- ),
- (TABLENS,'cell-content-change'):(
- (TABLENS,'id'),
- (TABLENS,'rejecting-change-id'),
- (TABLENS,'acceptance-state'),
- ),
- (TABLENS,'cell-content-deletion'):(
- (TABLENS,'id'),
- ),
- (TABLENS,'cell-range-source'):(
- (TABLENS,'last-row-spanned'),
- (TABLENS,'last-column-spanned'),
- (TABLENS,'name'),
- (TABLENS,'filter-options'),
- (XLINKNS,'actuate'),
- (TABLENS,'filter-name'),
- (XLINKNS,'href'),
- (TABLENS,'refresh-delay'),
- (XLINKNS,'type'),
- ),
- (TABLENS,'change-deletion'):(
- (TABLENS,'id'),
- ),
- (TABLENS,'change-track-table-cell'):(
- (OFFICENS,'string-value'),
- (TABLENS,'cell-address'),
- (TABLENS,'number-matrix-columns-spanned'),
- (TABLENS,'number-matrix-rows-spanned'),
- (TABLENS,'matrix-covered'),
- (OFFICENS,'value-type'),
- (OFFICENS,'boolean-value'),
- (OFFICENS,'currency'),
- (OFFICENS,'date-value'),
- (OFFICENS,'value'),
- (TABLENS,'formula'),
- (OFFICENS,'time-value'),
- ),
- (TABLENS,'consolidation'):(
- (TABLENS,'function'),
- (TABLENS,'source-cell-range-addresses'),
- (TABLENS,'target-cell-address'),
- (TABLENS,'link-to-source-data'),
- (TABLENS,'use-labels'),
- ),
- (TABLENS,'content-validation'):(
- (TABLENS,'base-cell-address'),
- (TABLENS,'display-list'),
- (TABLENS,'allow-empty-cell'),
- (TABLENS,'name'),
- (TABLENS,'condition'),
- ),
- (TABLENS,'content-validations'):(
- ),
-# allowed_attributes
- (TABLENS,'covered-table-cell'):(
- (TABLENS,'protect'),
- (OFFICENS,'string-value'),
- (OFFICENS,'value'),
- (OFFICENS,'boolean-value'),
- (OFFICENS,'currency'),
- (OFFICENS,'date-value'),
- (TABLENS,'style-name'),
- (TABLENS,'content-validation-name'),
- (OFFICENS,'value-type'),
- (TABLENS,'number-columns-repeated'),
- (TABLENS,'formula'),
- (OFFICENS,'time-value'),
- ),
- (TABLENS,'cut-offs'):(
- ),
- (TABLENS,'data-pilot-display-info'):(
- (TABLENS,'member-count'),
- (TABLENS,'data-field'),
- (TABLENS,'enabled'),
- (TABLENS,'display-member-mode'),
- ),
- (TABLENS,'data-pilot-field'):(
- (TABLENS,'selected-page'),
- (TABLENS,'function'),
- (TABLENS,'orientation'),
- (TABLENS,'used-hierarchy'),
- (TABLENS,'is-data-layout-field'),
- (TABLENS,'source-field-name'),
- ),
- (TABLENS,'data-pilot-field-reference'):(
- (TABLENS,'member-name'),
- (TABLENS,'field-name'),
- (TABLENS,'member-type'),
- (TABLENS,'type'),
- ),
-# allowed_attributes
- (TABLENS,'data-pilot-group'):(
- (TABLENS,'name'),
- ),
- (TABLENS,'data-pilot-group-member'):(
- (TABLENS,'name'),
- ),
- (TABLENS,'data-pilot-groups'):(
- (TABLENS,'date-end'),
- (TABLENS,'end'),
- (TABLENS,'start'),
- (TABLENS,'source-field-name'),
- (TABLENS,'step'),
- (TABLENS,'date-start'),
- (TABLENS,'grouped-by'),
- ),
- (TABLENS,'data-pilot-layout-info'):(
- (TABLENS,'add-empty-lines'),
- (TABLENS,'layout-mode'),
- ),
- (TABLENS,'data-pilot-level'):(
- (TABLENS,'show-empty'),
- ),
-# allowed_attributes
- (TABLENS,'data-pilot-member'):(
- (TABLENS,'show-details'),
- (TABLENS,'name'),
- (TABLENS,'display'),
- ),
- (TABLENS,'data-pilot-members'):(
- ),
- (TABLENS,'data-pilot-sort-info'):(
- (TABLENS,'data-field'),
- (TABLENS,'sort-mode'),
- (TABLENS,'order'),
- ),
- (TABLENS,'data-pilot-subtotal'):(
- (TABLENS,'function'),
- ),
- (TABLENS,'data-pilot-subtotals'):(
- ),
- (TABLENS,'data-pilot-table'):(
- (TABLENS,'buttons'),
- (TABLENS,'application-data'),
- (TABLENS,'name'),
- (TABLENS,'drill-down-on-double-click'),
- (TABLENS,'target-range-address'),
- (TABLENS,'ignore-empty-rows'),
- (TABLENS,'identify-categories'),
- (TABLENS,'show-filter-button'),
- (TABLENS,'grand-total'),
- ),
-# allowed_attributes
- (TABLENS,'data-pilot-tables'):(
- ),
- (TABLENS,'database-range'):(
- (TABLENS,'orientation'),
- (TABLENS,'target-range-address'),
- (TABLENS,'contains-header'),
- (TABLENS,'on-update-keep-size'),
- (TABLENS,'name'),
- (TABLENS,'is-selection'),
- (TABLENS,'refresh-delay'),
- (TABLENS,'display-filter-buttons'),
- (TABLENS,'has-persistent-data'),
- (TABLENS,'on-update-keep-styles'),
- ),
- (TABLENS,'database-ranges'):(
- ),
- (TABLENS,'database-source-query'):(
- (TABLENS,'query-name'),
- (TABLENS,'database-name'),
- ),
-# allowed_attributes
- (TABLENS,'database-source-sql'):(
- (TABLENS,'parse-sql-statement'),
- (TABLENS,'database-name'),
- (TABLENS,'sql-statement'),
- ),
- (TABLENS,'database-source-table'):(
- (TABLENS,'database-table-name'),
- (TABLENS,'database-name'),
- ),
- (TABLENS,'dde-link'):(
- ),
- (TABLENS,'dde-links'):(
- ),
- (TABLENS,'deletion'):(
- (TABLENS,'rejecting-change-id'),
- (TABLENS,'multi-deletion-spanned'),
- (TABLENS,'acceptance-state'),
- (TABLENS,'table'),
- (TABLENS,'position'),
- (TABLENS,'type'),
- (TABLENS,'id'),
- ),
-# allowed_attributes
- (TABLENS,'deletions'):(
- ),
- (TABLENS,'dependencies'):(
- ),
- (TABLENS,'dependency'):(
- (TABLENS,'id'),
- ),
- (TABLENS,'detective'):(
- ),
- (TABLENS,'error-macro'):(
- (TABLENS,'execute'),
- ),
- (TABLENS,'error-message'):(
- (TABLENS,'display'),
- (TABLENS,'message-type'),
- (TABLENS,'title'),
- ),
- (TABLENS,'even-columns'):(
- (TEXTNS,'paragraph-style-name'),
- (TEXTNS,'style-name'),
- ),
- (TABLENS,'even-rows'):(
- (TEXTNS,'paragraph-style-name'),
- (TEXTNS,'style-name'),
- ),
-# allowed_attributes
- (TABLENS,'filter'):(
- (TABLENS,'target-range-address'),
- (TABLENS,'display-duplicates'),
- (TABLENS,'condition-source-range-address'),
- (TABLENS,'condition-source'),
- ),
- (TABLENS,'filter-and'):(
- ),
- (TABLENS,'filter-condition'):(
- (TABLENS,'operator'),
- (TABLENS,'field-number'),
- (TABLENS,'data-type'),
- (TABLENS,'case-sensitive'),
- (TABLENS,'value'),
- ),
- (TABLENS,'filter-or'):(
- ),
- (TABLENS,'first-column'):(
- (TEXTNS,'paragraph-style-name'),
- (TEXTNS,'style-name'),
- ),
- (TABLENS,'first-row'):(
- (TEXTNS,'paragraph-style-name'),
- (TEXTNS,'style-name'),
- ),
-# allowed_attributes
- (TABLENS,'help-message'):(
- (TABLENS,'display'),
- (TABLENS,'title'),
- ),
- (TABLENS,'highlighted-range'):(
- (TABLENS,'contains-error'),
- (TABLENS,'direction'),
- (TABLENS,'marked-invalid'),
- (TABLENS,'cell-range-address'),
- ),
- (TABLENS,'insertion'):(
- (TABLENS,'count'),
- (TABLENS,'rejecting-change-id'),
- (TABLENS,'acceptance-state'),
- (TABLENS,'table'),
- (TABLENS,'position'),
- (TABLENS,'type'),
- (TABLENS,'id'),
- ),
- (TABLENS,'insertion-cut-off'):(
- (TABLENS,'position'),
- (TABLENS,'id'),
- ),
- (TABLENS,'iteration'):(
- (TABLENS,'status'),
- (TABLENS,'maximum-difference'),
- (TABLENS,'steps'),
- ),
-# allowed_attributes
- (TABLENS,'label-range'):(
- (TABLENS,'label-cell-range-address'),
- (TABLENS,'data-cell-range-address'),
- (TABLENS,'orientation'),
- ),
- (TABLENS,'label-ranges'):(
- ),
- (TABLENS,'last-column'):(
- (TEXTNS,'paragraph-style-name'),
- (TEXTNS,'style-name'),
- ),
- (TABLENS,'last-row'):(
- (TEXTNS,'paragraph-style-name'),
- (TEXTNS,'style-name'),
- ),
- (TABLENS,'movement'):(
- (TABLENS,'id'),
- (TABLENS,'rejecting-change-id'),
- (TABLENS,'acceptance-state'),
- ),
- (TABLENS,'movement-cut-off'):(
- (TABLENS,'position'),
- (TABLENS,'end-position'),
- (TABLENS,'start-position'),
- ),
- (TABLENS,'named-expression'):(
- (TABLENS,'base-cell-address'),
- (TABLENS,'expression'),
- (TABLENS,'name'),
- ),
- (TABLENS,'named-expressions'):(
- ),
- (TABLENS,'named-range'):(
- (TABLENS,'range-usable-as'),
- (TABLENS,'base-cell-address'),
- (TABLENS,'name'),
- (TABLENS,'cell-range-address'),
- ),
- (TABLENS,'null-date'):(
- (TABLENS,'date-value'),
- (TABLENS,'value-type'),
- ),
- (TABLENS,'odd-columns'):(
- (TEXTNS,'paragraph-style-name'),
- (TEXTNS,'style-name'),
- ),
- (TABLENS,'odd-rows'):(
- (TEXTNS,'paragraph-style-name'),
- (TEXTNS,'style-name'),
- ),
- (TABLENS,'operation'):(
- (TABLENS,'index'),
- (TABLENS,'name'),
- ),
- (TABLENS,'previous'):(
- (TABLENS,'id'),
- ),
- (TABLENS,'scenario'):(
- (TABLENS,'comment'),
- (TABLENS,'border-color'),
- (TABLENS,'copy-back'),
- (TABLENS,'is-active'),
- (TABLENS,'protected'),
- (TABLENS,'copy-formulas'),
- (TABLENS,'copy-styles'),
- (TABLENS,'scenario-ranges'),
- (TABLENS,'display-border'),
- ),
- (TABLENS,'shapes'):(
- ),
- (TABLENS,'sort'):(
- (TABLENS,'case-sensitive'),
- (TABLENS,'algorithm'),
- (TABLENS,'target-range-address'),
- (TABLENS,'country'),
- (TABLENS,'language'),
- (TABLENS,'bind-styles-to-content'),
- ),
- (TABLENS,'sort-by'):(
- (TABLENS,'field-number'),
- (TABLENS,'data-type'),
- (TABLENS,'order'),
- ),
- (TABLENS,'sort-groups'):(
- (TABLENS,'data-type'),
- (TABLENS,'order'),
- ),
- (TABLENS,'source-cell-range'):(
- (TABLENS,'cell-range-address'),
- ),
- (TABLENS,'source-range-address'):(
- (TABLENS,'column'),
- (TABLENS,'end-column'),
- (TABLENS,'start-table'),
- (TABLENS,'end-row'),
- (TABLENS,'table'),
- (TABLENS,'start-row'),
- (TABLENS,'row'),
- (TABLENS,'end-table'),
- (TABLENS,'start-column'),
- ),
-# allowed_attributes
- (TABLENS,'source-service'):(
- (TABLENS,'user-name'),
- (TABLENS,'source-name'),
- (TABLENS,'password'),
- (TABLENS,'object-name'),
- (TABLENS,'name'),
- ),
- (TABLENS,'subtotal-field'):(
- (TABLENS,'function'),
- (TABLENS,'field-number'),
- ),
- (TABLENS,'subtotal-rule'):(
- (TABLENS,'group-by-field-number'),
- ),
- (TABLENS,'subtotal-rules'):(
- (TABLENS,'bind-styles-to-content'),
- (TABLENS,'page-breaks-on-group-change'),
- (TABLENS,'case-sensitive'),
- ),
- (TABLENS,'table'):(
- (TABLENS,'name'),
- (TABLENS,'is-sub-table'),
- (TABLENS,'style-name'),
- (TABLENS,'protected'),
- (TABLENS,'print-ranges'),
- (TABLENS,'print'),
- (TABLENS,'protection-key'),
- ),
- (TABLENS,'table-cell'):(
- (TABLENS,'protect'),
- (TABLENS,'number-matrix-rows-spanned'),
- (TABLENS,'number-matrix-columns-spanned'),
- (OFFICENS,'string-value'),
- (TABLENS,'number-columns-spanned'),
- (OFFICENS,'value'),
- (OFFICENS,'boolean-value'),
- (OFFICENS,'currency'),
- (OFFICENS,'date-value'),
- (TABLENS,'style-name'),
- (TABLENS,'content-validation-name'),
- (OFFICENS,'value-type'),
- (TABLENS,'number-rows-spanned'),
- (TABLENS,'number-columns-repeated'),
- (TABLENS,'formula'),
- (OFFICENS,'time-value'),
- ),
-# allowed_attributes
- (TABLENS,'table-column'):(
- (TABLENS,'style-name'),
- (TABLENS,'default-cell-style-name'),
- (TABLENS,'visibility'),
- (TABLENS,'number-columns-repeated'),
- ),
- (TABLENS,'table-column-group'):(
- (TABLENS,'display'),
- ),
- (TABLENS,'table-columns'):(
- ),
- (TABLENS,'table-header-columns'):(
- ),
- (TABLENS,'table-header-rows'):(
- ),
- (TABLENS,'table-row'):(
- (TABLENS,'number-rows-repeated'),
- (TABLENS,'style-name'),
- (TABLENS,'visibility'),
- (TABLENS,'default-cell-style-name'),
- ),
- (TABLENS,'table-row-group'):(
- (TABLENS,'display'),
- ),
- (TABLENS,'table-rows'):(
- ),
- (TABLENS,'table-source'):(
- (TABLENS,'filter-options'),
- (XLINKNS,'actuate'),
- (TABLENS,'filter-name'),
- (XLINKNS,'href'),
- (TABLENS,'mode'),
- (TABLENS,'table-name'),
- (XLINKNS,'type'),
- (TABLENS,'refresh-delay'),
- ),
- (TABLENS,'table-template'):(
- (TEXTNS,'last-row-end-column'),
- (TEXTNS,'first-row-end-column'),
- (TEXTNS,'name'),
- (TEXTNS,'last-row-start-column'),
- (TEXTNS,'first-row-start-column'),
- ),
- (TABLENS,'target-range-address'):(
- (TABLENS,'column'),
- (TABLENS,'end-column'),
- (TABLENS,'start-table'),
- (TABLENS,'end-row'),
- (TABLENS,'table'),
- (TABLENS,'start-row'),
- (TABLENS,'row'),
- (TABLENS,'end-table'),
- (TABLENS,'start-column'),
- ),
- (TABLENS,'tracked-changes'):(
- (TABLENS,'track-changes'),
- ),
-# allowed_attributes
- (TEXTNS,'a'):(
- (TEXTNS,'visited-style-name'),
- (OFFICENS,'name'),
- (OFFICENS,'title'),
- (XLINKNS,'show'),
- (OFFICENS,'target-frame-name'),
- (XLINKNS,'actuate'),
- (TEXTNS,'style-name'),
- (XLINKNS,'href'),
- (XLINKNS,'type'),
- ),
- (TEXTNS,'alphabetical-index'):(
- (TEXTNS,'protected'),
- (TEXTNS,'style-name'),
- (TEXTNS,'name'),
- (TEXTNS,'protection-key'),
- ),
- (TEXTNS,'alphabetical-index-auto-mark-file'):(
- (XLINKNS,'href'),
- (XLINKNS,'type'),
- ),
- (TEXTNS,'alphabetical-index-entry-template'):(
- (TEXTNS,'style-name'),
- (TEXTNS,'outline-level'),
- ),
- (TEXTNS,'alphabetical-index-mark'):(
- (TEXTNS,'main-entry'),
- (TEXTNS,'key1-phonetic'),
- (TEXTNS,'key2'),
- (TEXTNS,'key1'),
- (TEXTNS,'string-value'),
- (TEXTNS,'key2-phonetic'),
- (TEXTNS,'string-value-phonetic'),
- ),
-# allowed_attributes
- (TEXTNS,'alphabetical-index-mark-end'):(
- (TEXTNS,'id'),
- ),
- (TEXTNS,'alphabetical-index-mark-start'):(
- (TEXTNS,'main-entry'),
- (TEXTNS,'key1-phonetic'),
- (TEXTNS,'key2'),
- (TEXTNS,'key1'),
- (TEXTNS,'string-value-phonetic'),
- (TEXTNS,'key2-phonetic'),
- (TEXTNS,'id'),
- ),
- (TEXTNS,'alphabetical-index-source'):(
- (TEXTNS,'capitalize-entries'),
- (FONS,'language'),
- (TEXTNS,'relative-tab-stop-position'),
- (TEXTNS,'alphabetical-separators'),
- (TEXTNS,'combine-entries-with-pp'),
- (TEXTNS,'combine-entries-with-dash'),
- (TEXTNS,'sort-algorithm'),
- (TEXTNS,'ignore-case'),
- (TEXTNS,'combine-entries'),
- (TEXTNS,'comma-separated'),
- (FONS,'country'),
- (TEXTNS,'index-scope'),
- (TEXTNS,'main-entry-style-name'),
- (TEXTNS,'use-keys-as-entries'),
- ),
-# allowed_attributes
- (TEXTNS,'author-initials'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'author-name'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'bibliography'):(
- (TEXTNS,'protected'),
- (TEXTNS,'style-name'),
- (TEXTNS,'name'),
- (TEXTNS,'protection-key'),
- ),
- (TEXTNS,'bibliography-configuration'):(
- (TEXTNS,'suffix'),
- (FONS,'language'),
- (TEXTNS,'numbered-entries'),
- (FONS,'country'),
- (TEXTNS,'sort-by-position'),
- (TEXTNS,'sort-algorithm'),
- (TEXTNS,'prefix'),
- ),
- (TEXTNS,'bibliography-entry-template'):(
- (TEXTNS,'style-name'),
- (TEXTNS,'bibliography-type'),
- ),
-# allowed_attributes
- (TEXTNS,'bibliography-mark'):(
- (TEXTNS,'address'),
- (TEXTNS,'annote'),
- (TEXTNS,'author'),
- (TEXTNS,'bibliography-type'),
- (TEXTNS,'booktitle'),
- (TEXTNS,'chapter'),
- (TEXTNS,'custom1'),
- (TEXTNS,'custom2'),
- (TEXTNS,'custom3'),
- (TEXTNS,'custom4'),
- (TEXTNS,'custom5'),
- (TEXTNS,'edition'),
- (TEXTNS,'editor'),
- (TEXTNS,'howpublished'),
- (TEXTNS,'identifier'),
- (TEXTNS,'institution'),
- (TEXTNS,'isbn'),
- (TEXTNS,'issn'),
- (TEXTNS,'journal'),
- (TEXTNS,'month'),
- (TEXTNS,'note'),
- (TEXTNS,'number'),
- (TEXTNS,'organizations'),
- (TEXTNS,'pages'),
- (TEXTNS,'publisher'),
- (TEXTNS,'report-type'),
- (TEXTNS,'school'),
- (TEXTNS,'series'),
- (TEXTNS,'title'),
- (TEXTNS,'url'),
- (TEXTNS,'volume'),
- (TEXTNS,'year'),
- ),
- (TEXTNS,'bibliography-source'):(
- ),
- (TEXTNS,'bookmark'):(
- (TEXTNS,'name'),
- ),
- (TEXTNS,'bookmark-end'):(
- (TEXTNS,'name'),
- ),
- (TEXTNS,'bookmark-ref'):(
- (TEXTNS,'ref-name'),
- (TEXTNS,'reference-format'),
- ),
- (TEXTNS,'bookmark-start'):(
- (TEXTNS,'name'),
- ),
-# allowed_attributes
- (TEXTNS,'change'):(
- (TEXTNS,'change-id'),
- ),
- (TEXTNS,'change-end'):(
- (TEXTNS,'change-id'),
- ),
- (TEXTNS,'change-start'):(
- (TEXTNS,'change-id'),
- ),
- (TEXTNS,'changed-region'):(
- (TEXTNS,'id'),
- ),
- (TEXTNS,'chapter'):(
- (TEXTNS,'display'),
- (TEXTNS,'outline-level'),
- ),
- (TEXTNS,'conditional-text'):(
- (TEXTNS,'string-value-if-true'),
- (TEXTNS,'current-value'),
- (TEXTNS,'string-value-if-false'),
- (TEXTNS,'condition'),
- ),
- (TEXTNS,'creation-date'):(
- (TEXTNS,'date-value'),
- (TEXTNS,'fixed'),
- (STYLENS,'data-style-name'),
- ),
- (TEXTNS,'creation-time'):(
- (TEXTNS,'fixed'),
- (TEXTNS,'time-value'),
- (STYLENS,'data-style-name'),
- ),
- (TEXTNS,'creator'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'database-display'):(
- (TEXTNS,'column-name'),
- (TEXTNS,'table-name'),
- (TEXTNS,'table-type'),
- (TEXTNS,'database-name'),
- (STYLENS,'data-style-name'),
- ),
- (TEXTNS,'database-name'):(
- (TEXTNS,'table-name'),
- (TEXTNS,'table-type'),
- (TEXTNS,'database-name'),
- ),
- (TEXTNS,'database-next'):(
- (TEXTNS,'table-name'),
- (TEXTNS,'table-type'),
- (TEXTNS,'database-name'),
- (TEXTNS,'condition'),
- ),
- (TEXTNS,'database-row-number'):(
- (STYLENS,'num-format'),
- (TEXTNS,'database-name'),
- (TEXTNS,'value'),
- (STYLENS,'num-letter-sync'),
- (TEXTNS,'table-name'),
- (TEXTNS,'table-type'),
- ),
- (TEXTNS,'database-row-select'):(
- (TEXTNS,'row-number'),
- (TEXTNS,'table-name'),
- (TEXTNS,'table-type'),
- (TEXTNS,'database-name'),
- (TEXTNS,'condition'),
- ),
-# allowed_attributes
- (TEXTNS,'date'):(
- (TEXTNS,'date-value'),
- (TEXTNS,'fixed'),
- (TEXTNS,'date-adjust'),
- (STYLENS,'data-style-name'),
- ),
- (TEXTNS,'dde-connection'):(
- (TEXTNS,'connection-name'),
- ),
- (TEXTNS,'dde-connection-decl'):(
- (OFFICENS,'automatic-update'),
- (OFFICENS,'dde-topic'),
- (OFFICENS,'dde-application'),
- (OFFICENS,'name'),
- (OFFICENS,'dde-item'),
- ),
- (TEXTNS,'dde-connection-decls'):(
- ),
- (TEXTNS,'deletion'):(
- ),
- (TEXTNS,'description'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'editing-cycles'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'editing-duration'):(
- (TEXTNS,'duration'),
- (TEXTNS,'fixed'),
- (STYLENS,'data-style-name'),
- ),
- (TEXTNS,'execute-macro'):(
- (TEXTNS,'name'),
- ),
- (TEXTNS,'expression'):(
- (TEXTNS,'display'),
- (OFFICENS,'string-value'),
- (OFFICENS,'value'),
- (OFFICENS,'boolean-value'),
- (OFFICENS,'currency'),
- (OFFICENS,'date-value'),
- (STYLENS,'data-style-name'),
- (OFFICENS,'value-type'),
- (TEXTNS,'formula'),
- (OFFICENS,'time-value'),
- ),
- (TEXTNS,'file-name'):(
- (TEXTNS,'fixed'),
- (TEXTNS,'display'),
- ),
-# allowed_attributes
- (TEXTNS,'format-change'):(
- ),
- (TEXTNS,'h'):(
- (TEXTNS,'restart-numbering'),
- (TEXTNS,'cond-style-name'),
- (TEXTNS,'is-list-header'),
- (TEXTNS,'style-name'),
- (TEXTNS,'class-names'),
- (TEXTNS,'start-value'),
- (TEXTNS,'id'),
- (TEXTNS,'outline-level'),
- ),
- (TEXTNS,'hidden-paragraph'):(
- (TEXTNS,'is-hidden'),
- (TEXTNS,'condition'),
- ),
- (TEXTNS,'hidden-text'):(
- (TEXTNS,'string-value'),
- (TEXTNS,'is-hidden'),
- (TEXTNS,'condition'),
- ),
- (TEXTNS,'illustration-index'):(
- (TEXTNS,'protected'),
- (TEXTNS,'style-name'),
- (TEXTNS,'name'),
- (TEXTNS,'protection-key'),
- ),
- (TEXTNS,'illustration-index-entry-template'):(
- (TEXTNS,'style-name'),
- ),
- (TEXTNS,'illustration-index-source'):(
- (TEXTNS,'index-scope'),
- (TEXTNS,'caption-sequence-name'),
- (TEXTNS,'use-caption'),
- (TEXTNS,'caption-sequence-format'),
- (TEXTNS,'relative-tab-stop-position'),
- ),
- (TEXTNS,'index-body'):(
- ),
- (TEXTNS,'index-entry-bibliography'):(
- (TEXTNS,'bibliography-data-field'),
- (TEXTNS,'style-name'),
- ),
- (TEXTNS,'index-entry-chapter'):(
- (TEXTNS,'style-name'),
- (TEXTNS,'display'),
- ),
-# allowed_attributes
- (TEXTNS,'index-entry-link-end'):(
- (TEXTNS,'style-name'),
- ),
- (TEXTNS,'index-entry-link-start'):(
- (TEXTNS,'style-name'),
- ),
- (TEXTNS,'index-entry-page-number'):(
- (TEXTNS,'style-name'),
- ),
- (TEXTNS,'index-entry-span'):(
- (TEXTNS,'style-name'),
- ),
- (TEXTNS,'index-entry-tab-stop'):(
- (STYLENS,'position'),
- (TEXTNS,'style-name'),
- (STYLENS,'type'),
- (STYLENS,'leader-char'),
- ),
- (TEXTNS,'index-entry-text'):(
- (TEXTNS,'style-name'),
- ),
- (TEXTNS,'index-source-style'):(
- (TEXTNS,'style-name'),
- ),
- (TEXTNS,'index-source-styles'):(
- (TEXTNS,'outline-level'),
- ),
- (TEXTNS,'index-title'):(
- (TEXTNS,'protected'),
- (TEXTNS,'style-name'),
- (TEXTNS,'name'),
- (TEXTNS,'protection-key'),
- ),
- (TEXTNS,'index-title-template'):(
- (TEXTNS,'style-name'),
- ),
- (TEXTNS,'initial-creator'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'insertion'):(
- ),
-# allowed_attributes
- (TEXTNS,'keywords'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'line-break'):(
- ),
- (TEXTNS,'linenumbering-configuration'):(
- (TEXTNS,'number-position'),
- (TEXTNS,'number-lines'),
- (STYLENS,'num-format'),
- (TEXTNS,'count-empty-lines'),
- (TEXTNS,'count-in-text-boxes'),
- (TEXTNS,'style-name'),
- (STYLENS,'num-letter-sync'),
- (TEXTNS,'increment'),
- (TEXTNS,'offset'),
- (TEXTNS,'restart-on-page'),
- ),
- (TEXTNS,'linenumbering-separator'):(
- (TEXTNS,'increment'),
- ),
- (TEXTNS,'list'):(
- (TEXTNS,'style-name'),
- (TEXTNS,'continue-numbering'),
- ),
- (TEXTNS,'list-header'):(
- ),
- (TEXTNS,'list-item'):(
- (TEXTNS,'start-value'),
- ),
- (TEXTNS,'list-level-style-bullet'):(
- (TEXTNS,'level'),
- (STYLENS,'num-prefix'),
- (STYLENS,'num-suffix'),
- (TEXTNS,'bullet-relative-size'),
- (TEXTNS,'style-name'),
- (TEXTNS,'bullet-char'),
- ),
- (TEXTNS,'list-level-style-image'):(
- (XLINKNS,'show'),
- (XLINKNS,'actuate'),
- (XLINKNS,'href'),
- (XLINKNS,'type'),
- (TEXTNS,'level'),
- ),
- (TEXTNS,'list-level-style-number'):(
- (TEXTNS,'level'),
- (TEXTNS,'display-levels'),
- (STYLENS,'num-format'),
- (STYLENS,'num-suffix'),
- (TEXTNS,'style-name'),
- (STYLENS,'num-prefix'),
- (STYLENS,'num-letter-sync'),
- (TEXTNS,'start-value'),
- ),
-# allowed_attributes
- (TEXTNS,'list-style'):(
- (TEXTNS,'consecutive-numbering'),
- (STYLENS,'display-name'),
- (STYLENS,'name'),
- ),
- (TEXTNS,'measure'):(
- (TEXTNS,'kind'),
- ),
- (TEXTNS,'modification-date'):(
- (TEXTNS,'date-value'),
- (TEXTNS,'fixed'),
- (STYLENS,'data-style-name'),
- ),
- (TEXTNS,'modification-time'):(
- (TEXTNS,'fixed'),
- (TEXTNS,'time-value'),
- (STYLENS,'data-style-name'),
- ),
- (TEXTNS,'note'):(
- (TEXTNS,'note-class'),
- (TEXTNS,'id'),
- ),
- (TEXTNS,'note-body'):(
- ),
- (TEXTNS,'note-citation'):(
- (TEXTNS,'label'),
- ),
- (TEXTNS,'note-continuation-notice-backward'):(
- ),
- (TEXTNS,'note-continuation-notice-forward'):(
- ),
- (TEXTNS,'note-ref'):(
- (TEXTNS,'ref-name'),
- (TEXTNS,'note-class'),
- (TEXTNS,'reference-format'),
- ),
- (TEXTNS,'notes-configuration'):(
- (TEXTNS,'citation-body-style-name'),
- (STYLENS,'num-format'),
- (TEXTNS,'default-style-name'),
- (STYLENS,'num-suffix'),
- (TEXTNS,'start-numbering-at'),
- (STYLENS,'num-prefix'),
- (STYLENS,'num-letter-sync'),
- (TEXTNS,'citation-style-name'),
- (TEXTNS,'footnotes-position'),
- (TEXTNS,'master-page-name'),
- (TEXTNS,'start-value'),
- (TEXTNS,'note-class'),
- ),
- (TEXTNS,'number'):(
- ),
- (TEXTNS,'numbered-paragraph'):(
- (TEXTNS,'continue-numbering'),
- (TEXTNS,'style-name'),
- (TEXTNS,'start-value'),
- (TEXTNS,'level'),
- ),
- (TEXTNS,'object-count'):(
- (STYLENS,'num-format'),
- (STYLENS,'num-letter-sync'),
- ),
- (TEXTNS,'object-index'):(
- (TEXTNS,'protected'),
- (TEXTNS,'style-name'),
- (TEXTNS,'name'),
- (TEXTNS,'protection-key'),
- ),
-# allowed_attributes
- (TEXTNS,'object-index-entry-template'):(
- (TEXTNS,'style-name'),
- ),
- (TEXTNS,'object-index-source'):(
- (TEXTNS,'use-draw-objects'),
- (TEXTNS,'use-math-objects'),
- (TEXTNS,'relative-tab-stop-position'),
- (TEXTNS,'use-chart-objects'),
- (TEXTNS,'index-scope'),
- (TEXTNS,'use-spreadsheet-objects'),
- (TEXTNS,'use-other-objects'),
- ),
- (TEXTNS,'outline-level-style'):(
- (TEXTNS,'level'),
- (TEXTNS,'display-levels'),
- (STYLENS,'num-format'),
- (STYLENS,'num-suffix'),
- (TEXTNS,'style-name'),
- (STYLENS,'num-prefix'),
- (STYLENS,'num-letter-sync'),
- (TEXTNS,'start-value'),
- ),
- (TEXTNS,'outline-style'):(
- ),
- (TEXTNS,'p'):(
- (TEXTNS,'cond-style-name'),
- (TEXTNS,'style-name'),
- (TEXTNS,'class-names'),
- (TEXTNS,'id'),
- ),
- (TEXTNS,'page'):(
- (TEXTNS,'master-page-name'),
- ),
- (TEXTNS,'page-continuation'):(
- (TEXTNS,'string-value'),
- (TEXTNS,'select-page'),
- ),
- (TEXTNS,'page-number'):(
- (TEXTNS,'page-adjust'),
- (STYLENS,'num-format'),
- (TEXTNS,'fixed'),
- (STYLENS,'num-letter-sync'),
- (TEXTNS,'select-page'),
- ),
- (TEXTNS,'page-sequence'):(
- ),
- (TEXTNS,'page-variable-get'):(
- (STYLENS,'num-format'),
- (STYLENS,'num-letter-sync'),
- ),
- (TEXTNS,'page-variable-set'):(
- (TEXTNS,'active'),
- (TEXTNS,'page-adjust'),
- ),
- (TEXTNS,'placeholder'):(
- (TEXTNS,'placeholder-type'),
- (TEXTNS,'description'),
- ),
- (TEXTNS,'print-date'):(
- (TEXTNS,'date-value'),
- (TEXTNS,'fixed'),
- (STYLENS,'data-style-name'),
- ),
- (TEXTNS,'print-time'):(
- (TEXTNS,'fixed'),
- (TEXTNS,'time-value'),
- (STYLENS,'data-style-name'),
- ),
- (TEXTNS,'printed-by'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'reference-mark'):(
- (TEXTNS,'name'),
- ),
- (TEXTNS,'reference-mark-end'):(
- (TEXTNS,'name'),
- ),
- (TEXTNS,'reference-mark-start'):(
- (TEXTNS,'name'),
- ),
- (TEXTNS,'ruby'):(
- (TEXTNS,'style-name'),
- ),
- (TEXTNS,'ruby-base'):(
- ),
- (TEXTNS,'ruby-text'):(
- (TEXTNS,'style-name'),
- ),
- (TEXTNS,'s'):(
- (TEXTNS,'c'),
- ),
- (TEXTNS,'script'):(
- (XLINKNS,'href'),
- (XLINKNS,'type'),
- (SCRIPTNS,'language'),
- ),
- (TEXTNS,'section'):(
- (TEXTNS,'name'),
- (TEXTNS,'protection-key'),
- (TEXTNS,'style-name'),
- (TEXTNS,'protected'),
- (TEXTNS,'display'),
- (TEXTNS,'condition'),
- ),
- (TEXTNS,'section-source'):(
- (TEXTNS,'filter-name'),
- (XLINKNS,'href'),
- (XLINKNS,'type'),
- (TEXTNS,'section-name'),
- (XLINKNS,'show'),
- ),
- (TEXTNS,'sender-city'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'sender-company'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'sender-country'):(
- (TEXTNS,'fixed'),
- ),
-# allowed_attributes
- (TEXTNS,'sender-email'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'sender-fax'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'sender-firstname'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'sender-initials'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'sender-lastname'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'sender-phone-private'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'sender-phone-work'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'sender-position'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'sender-postal-code'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'sender-state-or-province'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'sender-street'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'sender-title'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'sequence'):(
- (TEXTNS,'formula'),
- (STYLENS,'num-format'),
- (STYLENS,'num-letter-sync'),
- (TEXTNS,'name'),
- (TEXTNS,'ref-name'),
- ),
- (TEXTNS,'sequence-decl'):(
- (TEXTNS,'separation-character'),
- (TEXTNS,'display-outline-level'),
- (TEXTNS,'name'),
- ),
- (TEXTNS,'sequence-decls'):(
- ),
- (TEXTNS,'sequence-ref'):(
- (TEXTNS,'ref-name'),
- (TEXTNS,'reference-format'),
- ),
- (TEXTNS,'sheet-name'):(
- ),
- (TEXTNS,'soft-page-break'):(
- ),
- (TEXTNS,'sort-key'):(
- (TEXTNS,'sort-ascending'),
- (TEXTNS,'key'),
- ),
-# allowed_attributes
- (TEXTNS,'span'):(
- (TEXTNS,'style-name'),
- (TEXTNS,'class-names'),
- ),
- (TEXTNS,'subject'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'tab'):(
- (TEXTNS,'tab-ref'),
- ),
- (TEXTNS,'table-formula'):(
- (TEXTNS,'formula'),
- (STYLENS,'data-style-name'),
- (TEXTNS,'display'),
- ),
- (TEXTNS,'table-index'):(
- (TEXTNS,'protected'),
- (TEXTNS,'style-name'),
- (TEXTNS,'name'),
- (TEXTNS,'protection-key'),
- ),
- (TEXTNS,'table-index-entry-template'):(
- (TEXTNS,'style-name'),
- ),
- (TEXTNS,'table-index-source'):(
- (TEXTNS,'index-scope'),
- (TEXTNS,'caption-sequence-name'),
- (TEXTNS,'use-caption'),
- (TEXTNS,'caption-sequence-format'),
- (TEXTNS,'relative-tab-stop-position'),
- ),
-# allowed_attributes
- (TEXTNS,'table-of-content'):(
- (TEXTNS,'protected'),
- (TEXTNS,'style-name'),
- (TEXTNS,'name'),
- (TEXTNS,'protection-key'),
- ),
- (TEXTNS,'table-of-content-entry-template'):(
- (TEXTNS,'style-name'),
- (TEXTNS,'outline-level'),
- ),
- (TEXTNS,'table-of-content-source'):(
- (TEXTNS,'index-scope'),
- (TEXTNS,'outline-level'),
- (TEXTNS,'relative-tab-stop-position'),
- (TEXTNS,'use-index-marks'),
- (TEXTNS,'use-outline-level'),
- (TEXTNS,'use-index-source-styles'),
- ),
- (TEXTNS,'template-name'):(
- (TEXTNS,'display'),
- ),
- (TEXTNS,'text-input'):(
- (TEXTNS,'description'),
- ),
- (TEXTNS,'time'):(
- (TEXTNS,'time-adjust'),
- (TEXTNS,'fixed'),
- (TEXTNS,'time-value'),
- (STYLENS,'data-style-name'),
- ),
- (TEXTNS,'title'):(
- (TEXTNS,'fixed'),
- ),
- (TEXTNS,'toc-mark'):(
- (TEXTNS,'string-value'),
- (TEXTNS,'outline-level'),
- ),
- (TEXTNS,'toc-mark-end'):(
- (TEXTNS,'id'),
- ),
- (TEXTNS,'toc-mark-start'):(
- (TEXTNS,'id'),
- (TEXTNS,'outline-level'),
- ),
- (TEXTNS,'tracked-changes'):(
- (TEXTNS,'track-changes'),
- ),
- (TEXTNS,'user-defined'):(
- (TEXTNS,'name'),
- (OFFICENS,'string-value'),
- (OFFICENS,'value'),
- (OFFICENS,'boolean-value'),
- (OFFICENS,'date-value'),
- (STYLENS,'data-style-name'),
- (TEXTNS,'fixed'),
- (OFFICENS,'time-value'),
- ),
- (TEXTNS,'user-field-decl'):(
- (TEXTNS,'name'),
- (OFFICENS,'string-value'),
- (OFFICENS,'value'),
- (OFFICENS,'boolean-value'),
- (OFFICENS,'currency'),
- (OFFICENS,'date-value'),
- (OFFICENS,'value-type'),
- (TEXTNS,'formula'),
- (OFFICENS,'time-value'),
- ),
- (TEXTNS,'user-field-decls'):(
- ),
- (TEXTNS,'user-field-get'):(
- (STYLENS,'data-style-name'),
- (TEXTNS,'name'),
- (TEXTNS,'display'),
- ),
-# allowed_attributes
- (TEXTNS,'user-field-input'):(
- (STYLENS,'data-style-name'),
- (TEXTNS,'name'),
- (TEXTNS,'description'),
- ),
- (TEXTNS,'user-index'):(
- (TEXTNS,'protected'),
- (TEXTNS,'style-name'),
- (TEXTNS,'name'),
- (TEXTNS,'protection-key'),
- ),
- (TEXTNS,'user-index-entry-template'):(
- (TEXTNS,'style-name'),
- (TEXTNS,'outline-level'),
- ),
- (TEXTNS,'user-index-mark'):(
- (TEXTNS,'index-name'),
- (TEXTNS,'string-value'),
- (TEXTNS,'outline-level'),
- ),
- (TEXTNS,'user-index-mark-end'):(
- (TEXTNS,'id'),
- (TEXTNS,'outline-level'),
- ),
- (TEXTNS,'user-index-mark-start'):(
- (TEXTNS,'index-name'),
- (TEXTNS,'id'),
- (TEXTNS,'outline-level'),
- ),
-# allowed_attributes
- (TEXTNS,'user-index-source'):(
- (TEXTNS,'copy-outline-levels'),
- (TEXTNS,'index-name'),
- (TEXTNS,'index-scope'),
- (TEXTNS,'relative-tab-stop-position'),
- (TEXTNS,'use-floating-frames'),
- (TEXTNS,'use-graphics'),
- (TEXTNS,'use-index-marks'),
- (TEXTNS,'use-objects'),
- (TEXTNS,'use-tables'),
- ),
- (TEXTNS,'variable-decl'):(
- (TEXTNS,'name'),
- (OFFICENS,'value-type'),
- ),
- (TEXTNS,'variable-decls'):(
- ),
- (TEXTNS,'variable-get'):(
- (STYLENS,'data-style-name'),
- (TEXTNS,'name'),
- (TEXTNS,'display'),
- ),
- (TEXTNS,'variable-input'):(
- (STYLENS,'data-style-name'),
- (TEXTNS,'display'),
- (TEXTNS,'name'),
- (OFFICENS,'value-type'),
- (TEXTNS,'description'),
- ),
- (TEXTNS,'variable-set'):(
- (TEXTNS,'name'),
- (TEXTNS,'display'),
- (OFFICENS,'string-value'),
- (OFFICENS,'value'),
- (OFFICENS,'boolean-value'),
- (OFFICENS,'currency'),
- (OFFICENS,'date-value'),
- (STYLENS,'data-style-name'),
- (OFFICENS,'value-type'),
- (TEXTNS,'formula'),
- (OFFICENS,'time-value'),
- ),
-# allowed_attributes
-}
diff --git a/tablib/packages/odf3/load.py b/tablib/packages/odf3/load.py
deleted file mode 100644
index cf275c4..0000000
--- a/tablib/packages/odf3/load.py
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2008 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-# This script is to be embedded in opendocument.py later
-# The purpose is to read an ODT/ODP/ODS file and create the datastructure
-# in memory. The user should then be able to make operations and then save
-# the structure again.
-
-from xml.sax import make_parser,handler
-from xml.sax.xmlreader import InputSource
-import xml.sax.saxutils
-from .element import Element
-from .namespaces import OFFICENS
-from io import StringIO
-
-#
-# Parse the XML files
-#
-class LoadParser(handler.ContentHandler):
- """ Extract headings from content.xml of an ODT file """
- triggers = (
- (OFFICENS, 'automatic-styles'), (OFFICENS, 'body'),
- (OFFICENS, 'font-face-decls'), (OFFICENS, 'master-styles'),
- (OFFICENS, 'meta'), (OFFICENS, 'scripts'),
- (OFFICENS, 'settings'), (OFFICENS, 'styles') )
-
- def __init__(self, document):
- self.doc = document
- self.data = []
- self.level = 0
- self.parse = False
-
- def characters(self, data):
- if self.parse == False:
- return
- self.data.append(data)
-
- def startElementNS(self, tag, qname, attrs):
- if tag in self.triggers:
- self.parse = True
- if self.doc._parsing != "styles.xml" and tag == (OFFICENS, 'font-face-decls'):
- self.parse = False
- if self.parse == False:
- return
-
- self.level = self.level + 1
- # Add any accumulated text content
- content = ''.join(self.data)
- if len(content.strip()) > 0:
- self.parent.addText(content, check_grammar=False)
- self.data = []
- # Create the element
- attrdict = {}
- for (att,value) in list(attrs.items()):
- attrdict[att] = value
- try:
- e = Element(qname = tag, qattributes=attrdict, check_grammar=False)
- self.curr = e
- except AttributeError as v:
- print("Error: %s" % v)
-
- if tag == (OFFICENS, 'automatic-styles'):
- e = self.doc.automaticstyles
- elif tag == (OFFICENS, 'body'):
- e = self.doc.body
- elif tag == (OFFICENS, 'master-styles'):
- e = self.doc.masterstyles
- elif tag == (OFFICENS, 'meta'):
- e = self.doc.meta
- elif tag == (OFFICENS,'scripts'):
- e = self.doc.scripts
- elif tag == (OFFICENS,'settings'):
- e = self.doc.settings
- elif tag == (OFFICENS,'styles'):
- e = self.doc.styles
- elif self.doc._parsing == "styles.xml" and tag == (OFFICENS, 'font-face-decls'):
- e = self.doc.fontfacedecls
- elif hasattr(self,'parent'):
- self.parent.addElement(e, check_grammar=False)
- self.parent = e
-
-
- def endElementNS(self, tag, qname):
- if self.parse == False:
- return
- self.level = self.level - 1
- str = ''.join(self.data)
- if len(str.strip()) > 0:
- self.curr.addText(str, check_grammar=False)
- self.data = []
- self.curr = self.curr.parentNode
- self.parent = self.curr
- if tag in self.triggers:
- self.parse = False
diff --git a/tablib/packages/odf3/manifest.py b/tablib/packages/odf3/manifest.py
deleted file mode 100644
index 20830f9..0000000
--- a/tablib/packages/odf3/manifest.py
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-#
-
-from .namespaces import MANIFESTNS
-from .element import Element
-
-# Autogenerated
-def Manifest(**args):
- return Element(qname = (MANIFESTNS,'manifest'), **args)
-
-def FileEntry(**args):
- return Element(qname = (MANIFESTNS,'file-entry'), **args)
-
-def EncryptionData(**args):
- return Element(qname = (MANIFESTNS,'encryption-data'), **args)
-
-def Algorithm(**args):
- return Element(qname = (MANIFESTNS,'algorithm'), **args)
-
-def KeyDerivation(**args):
- return Element(qname = (MANIFESTNS,'key-derivation'), **args)
-
diff --git a/tablib/packages/odf3/math.py b/tablib/packages/odf3/math.py
deleted file mode 100644
index 498987d..0000000
--- a/tablib/packages/odf3/math.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import MATHNS
-from .element import Element
-
-# ODF 1.0 section 12.5
-# Mathematical content is represented by MathML 2.0
-
-# Autogenerated
-def Math(**args):
- return Element(qname = (MATHNS,'math'), **args)
-
diff --git a/tablib/packages/odf3/meta.py b/tablib/packages/odf3/meta.py
deleted file mode 100644
index 94d41b5..0000000
--- a/tablib/packages/odf3/meta.py
+++ /dev/null
@@ -1,66 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import METANS
-from .element import Element
-
-# Autogenerated
-def AutoReload(**args):
- return Element(qname = (METANS,'auto-reload'), **args)
-
-def CreationDate(**args):
- return Element(qname = (METANS,'creation-date'), **args)
-
-def DateString(**args):
- return Element(qname = (METANS,'date-string'), **args)
-
-def DocumentStatistic(**args):
- return Element(qname = (METANS,'document-statistic'), **args)
-
-def EditingCycles(**args):
- return Element(qname = (METANS,'editing-cycles'), **args)
-
-def EditingDuration(**args):
- return Element(qname = (METANS,'editing-duration'), **args)
-
-def Generator(**args):
- return Element(qname = (METANS,'generator'), **args)
-
-def HyperlinkBehaviour(**args):
- return Element(qname = (METANS,'hyperlink-behaviour'), **args)
-
-def InitialCreator(**args):
- return Element(qname = (METANS,'initial-creator'), **args)
-
-def Keyword(**args):
- return Element(qname = (METANS,'keyword'), **args)
-
-def PrintDate(**args):
- return Element(qname = (METANS,'print-date'), **args)
-
-def PrintedBy(**args):
- return Element(qname = (METANS,'printed-by'), **args)
-
-def Template(**args):
- return Element(qname = (METANS,'template'), **args)
-
-def UserDefined(**args):
- return Element(qname = (METANS,'user-defined'), **args)
-
diff --git a/tablib/packages/odf3/namespaces.py b/tablib/packages/odf3/namespaces.py
deleted file mode 100644
index 14f0494..0000000
--- a/tablib/packages/odf3/namespaces.py
+++ /dev/null
@@ -1,97 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2010 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-TOOLSVERSION = "ODFPY/0.9.3"
-
-ANIMNS = "urn:oasis:names:tc:opendocument:xmlns:animation:1.0"
-DBNS = "urn:oasis:names:tc:opendocument:xmlns:database:1.0"
-CHARTNS = "urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
-CONFIGNS = "urn:oasis:names:tc:opendocument:xmlns:config:1.0"
-#DBNS = u"http://openoffice.org/2004/database"
-DCNS = "http://purl.org/dc/elements/1.1/"
-DOMNS = "http://www.w3.org/2001/xml-events"
-DR3DNS = "urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
-DRAWNS = "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
-FIELDNS = "urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0"
-FONS = "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
-FORMNS = "urn:oasis:names:tc:opendocument:xmlns:form:1.0"
-GRDDLNS = "http://www.w3.org/2003/g/data-view#"
-KOFFICENS = "http://www.koffice.org/2005/"
-MANIFESTNS = "urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"
-MATHNS = "http://www.w3.org/1998/Math/MathML"
-METANS = "urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
-NUMBERNS = "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
-OFFICENS = "urn:oasis:names:tc:opendocument:xmlns:office:1.0"
-OFNS = "urn:oasis:names:tc:opendocument:xmlns:of:1.2"
-OOONS = "http://openoffice.org/2004/office"
-OOOWNS = "http://openoffice.org/2004/writer"
-OOOCNS = "http://openoffice.org/2004/calc"
-PRESENTATIONNS = "urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"
-RDFANS = "http://docs.oasis-open.org/opendocument/meta/rdfa#"
-RPTNS = "http://openoffice.org/2005/report"
-SCRIPTNS = "urn:oasis:names:tc:opendocument:xmlns:script:1.0"
-SMILNS = "urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0"
-STYLENS = "urn:oasis:names:tc:opendocument:xmlns:style:1.0"
-SVGNS = "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
-TABLENS = "urn:oasis:names:tc:opendocument:xmlns:table:1.0"
-TEXTNS = "urn:oasis:names:tc:opendocument:xmlns:text:1.0"
-XFORMSNS = "http://www.w3.org/2002/xforms"
-XLINKNS = "http://www.w3.org/1999/xlink"
-XMLNS = "http://www.w3.org/XML/1998/namespace"
-XSDNS = "http://www.w3.org/2001/XMLSchema"
-XSINS = "http://www.w3.org/2001/XMLSchema-instance"
-
-nsdict = {
- ANIMNS: 'anim',
- CHARTNS: 'chart',
- CONFIGNS: 'config',
- DBNS: 'db',
- DCNS: 'dc',
- DOMNS: 'dom',
- DR3DNS: 'dr3d',
- DRAWNS: 'draw',
- FIELDNS: 'field',
- FONS: 'fo',
- FORMNS: 'form',
- GRDDLNS: 'grddl',
- KOFFICENS: 'koffice',
- MANIFESTNS: 'manifest',
- MATHNS: 'math',
- METANS: 'meta',
- NUMBERNS: 'number',
- OFFICENS: 'office',
- OFNS: 'of',
- OOONS: 'ooo',
- OOOWNS: 'ooow',
- OOOCNS: 'oooc',
- PRESENTATIONNS: 'presentation',
- RDFANS: 'rdfa',
- RPTNS: 'rpt',
- SCRIPTNS: 'script',
- SMILNS: 'smil',
- STYLENS: 'style',
- SVGNS: 'svg',
- TABLENS: 'table',
- TEXTNS: 'text',
- XFORMSNS: 'xforms',
- XLINKNS: 'xlink',
- XMLNS: 'xml',
- XSDNS: 'xsd',
- XSINS: 'xsi',
-}
diff --git a/tablib/packages/odf3/number.py b/tablib/packages/odf3/number.py
deleted file mode 100644
index 78e001c..0000000
--- a/tablib/packages/odf3/number.py
+++ /dev/null
@@ -1,104 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import NUMBERNS
-from .element import Element
-from .style import StyleElement
-
-
-# Autogenerated
-def AmPm(**args):
- return Element(qname = (NUMBERNS,'am-pm'), **args)
-
-def Boolean(**args):
- return Element(qname = (NUMBERNS,'boolean'), **args)
-
-def BooleanStyle(**args):
- return StyleElement(qname = (NUMBERNS,'boolean-style'), **args)
-
-def CurrencyStyle(**args):
- return StyleElement(qname = (NUMBERNS,'currency-style'), **args)
-
-def CurrencySymbol(**args):
- return Element(qname = (NUMBERNS,'currency-symbol'), **args)
-
-def DateStyle(**args):
- return StyleElement(qname = (NUMBERNS,'date-style'), **args)
-
-def Day(**args):
- return Element(qname = (NUMBERNS,'day'), **args)
-
-def DayOfWeek(**args):
- return Element(qname = (NUMBERNS,'day-of-week'), **args)
-
-def EmbeddedText(**args):
- return Element(qname = (NUMBERNS,'embedded-text'), **args)
-
-def Era(**args):
- return Element(qname = (NUMBERNS,'era'), **args)
-
-def Fraction(**args):
- return Element(qname = (NUMBERNS,'fraction'), **args)
-
-def Hours(**args):
- return Element(qname = (NUMBERNS,'hours'), **args)
-
-def Minutes(**args):
- return Element(qname = (NUMBERNS,'minutes'), **args)
-
-def Month(**args):
- return Element(qname = (NUMBERNS,'month'), **args)
-
-def Number(**args):
- return Element(qname = (NUMBERNS,'number'), **args)
-
-def NumberStyle(**args):
- return StyleElement(qname = (NUMBERNS,'number-style'), **args)
-
-def PercentageStyle(**args):
- return StyleElement(qname = (NUMBERNS,'percentage-style'), **args)
-
-def Quarter(**args):
- return Element(qname = (NUMBERNS,'quarter'), **args)
-
-def ScientificNumber(**args):
- return Element(qname = (NUMBERNS,'scientific-number'), **args)
-
-def Seconds(**args):
- return Element(qname = (NUMBERNS,'seconds'), **args)
-
-def Text(**args):
- return Element(qname = (NUMBERNS,'text'), **args)
-
-def TextContent(**args):
- return Element(qname = (NUMBERNS,'text-content'), **args)
-
-def TextStyle(**args):
- return StyleElement(qname = (NUMBERNS,'text-style'), **args)
-
-def TimeStyle(**args):
- return StyleElement(qname = (NUMBERNS,'time-style'), **args)
-
-def WeekOfYear(**args):
- return Element(qname = (NUMBERNS,'week-of-year'), **args)
-
-def Year(**args):
- return Element(qname = (NUMBERNS,'year'), **args)
-
diff --git a/tablib/packages/odf3/odf2moinmoin.py b/tablib/packages/odf3/odf2moinmoin.py
deleted file mode 100644
index c4f5ca1..0000000
--- a/tablib/packages/odf3/odf2moinmoin.py
+++ /dev/null
@@ -1,579 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2008 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# See http://trac.edgewall.org/wiki/WikiFormatting
-#
-# Contributor(s):
-#
-
-import sys, zipfile, xml.dom.minidom
-from .namespaces import nsdict
-from .elementtypes import *
-
-IGNORED_TAGS = [
- 'draw:a'
- 'draw:g',
- 'draw:line',
- 'draw:object-ole',
- 'office:annotation',
- 'presentation:notes',
- 'svg:desc',
-] + [ nsdict[item[0]]+":"+item[1] for item in empty_elements]
-
-INLINE_TAGS = [ nsdict[item[0]]+":"+item[1] for item in inline_elements]
-
-
-class TextProps:
- """ Holds properties for a text style. """
-
- def __init__(self):
-
- self.italic = False
- self.bold = False
- self.fixed = False
- self.underlined = False
- self.strikethrough = False
- self.superscript = False
- self.subscript = False
-
- def setItalic(self, value):
- if value == "italic":
- self.italic = True
- elif value == "normal":
- self.italic = False
-
- def setBold(self, value):
- if value == "bold":
- self.bold = True
- elif value == "normal":
- self.bold = False
-
- def setFixed(self, value):
- self.fixed = value
-
- def setUnderlined(self, value):
- if value and value != "none":
- self.underlined = True
-
- def setStrikethrough(self, value):
- if value and value != "none":
- self.strikethrough = True
-
- def setPosition(self, value):
- if value is None or value == '':
- return
- posisize = value.split(' ')
- textpos = posisize[0]
- if textpos.find('%') == -1:
- if textpos == "sub":
- self.superscript = False
- self.subscript = True
- elif textpos == "super":
- self.superscript = True
- self.subscript = False
- else:
- itextpos = int(textpos[:textpos.find('%')])
- if itextpos > 10:
- self.superscript = False
- self.subscript = True
- elif itextpos < -10:
- self.superscript = True
- self.subscript = False
-
- def __str__(self):
-
- return "[italic=%s, bold=i%s, fixed=%s]" % (str(self.italic),
- str(self.bold),
- str(self.fixed))
-
-class ParagraphProps:
- """ Holds properties of a paragraph style. """
-
- def __init__(self):
-
- self.blockquote = False
- self.headingLevel = 0
- self.code = False
- self.title = False
- self.indented = 0
-
- def setIndented(self, value):
- self.indented = value
-
- def setHeading(self, level):
- self.headingLevel = level
-
- def setTitle(self, value):
- self.title = value
-
- def setCode(self, value):
- self.code = value
-
-
- def __str__(self):
-
- return "[bq=%s, h=%d, code=%s]" % (str(self.blockquote),
- self.headingLevel,
- str(self.code))
-
-
-class ListProperties:
- """ Holds properties for a list style. """
-
- def __init__(self):
- self.ordered = False
-
- def setOrdered(self, value):
- self.ordered = value
-
-
-
-class ODF2MoinMoin(object):
-
-
- def __init__(self, filepath):
- self.footnotes = []
- self.footnoteCounter = 0
- self.textStyles = {"Standard": TextProps()}
- self.paragraphStyles = {"Standard": ParagraphProps()}
- self.listStyles = {}
- self.fixedFonts = []
- self.hasTitle = 0
- self.lastsegment = None
-
- # Tags
- self.elements = {
- 'draw:page': self.textToString,
- 'draw:frame': self.textToString,
- 'draw:image': self.draw_image,
- 'draw:text-box': self.textToString,
- 'text:a': self.text_a,
- 'text:note': self.text_note,
- }
- for tag in IGNORED_TAGS:
- self.elements[tag] = self.do_nothing
-
- for tag in INLINE_TAGS:
- self.elements[tag] = self.inline_markup
- self.elements['text:line-break'] = self.text_line_break
- self.elements['text:s'] = self.text_s
- self.elements['text:tab'] = self.text_tab
-
- self.load(filepath)
-
- def processFontDeclarations(self, fontDecl):
- """ Extracts necessary font information from a font-declaration
- element.
- """
- for fontFace in fontDecl.getElementsByTagName("style:font-face"):
- if fontFace.getAttribute("style:font-pitch") == "fixed":
- self.fixedFonts.append(fontFace.getAttribute("style:name"))
-
-
-
- def extractTextProperties(self, style, parent=None):
- """ Extracts text properties from a style element. """
-
- textProps = TextProps()
-
- if parent:
- parentProp = self.textStyles.get(parent, None)
- if parentProp:
- textProp = parentProp
-
- textPropEl = style.getElementsByTagName("style:text-properties")
- if not textPropEl: return textProps
-
- textPropEl = textPropEl[0]
-
- textProps.setItalic(textPropEl.getAttribute("fo:font-style"))
- textProps.setBold(textPropEl.getAttribute("fo:font-weight"))
- textProps.setUnderlined(textPropEl.getAttribute("style:text-underline-style"))
- textProps.setStrikethrough(textPropEl.getAttribute("style:text-line-through-style"))
- textProps.setPosition(textPropEl.getAttribute("style:text-position"))
-
- if textPropEl.getAttribute("style:font-name") in self.fixedFonts:
- textProps.setFixed(True)
-
- return textProps
-
- def extractParagraphProperties(self, style, parent=None):
- """ Extracts paragraph properties from a style element. """
-
- paraProps = ParagraphProps()
-
- name = style.getAttribute("style:name")
-
- if name.startswith("Heading_20_"):
- level = name[11:]
- try:
- level = int(level)
- paraProps.setHeading(level)
- except:
- level = 0
-
- if name == "Title":
- paraProps.setTitle(True)
-
- paraPropEl = style.getElementsByTagName("style:paragraph-properties")
- if paraPropEl:
- paraPropEl = paraPropEl[0]
- leftMargin = paraPropEl.getAttribute("fo:margin-left")
- if leftMargin:
- try:
- leftMargin = float(leftMargin[:-2])
- if leftMargin > 0.01:
- paraProps.setIndented(True)
- except:
- pass
-
- textProps = self.extractTextProperties(style)
- if textProps.fixed:
- paraProps.setCode(True)
-
- return paraProps
-
-
- def processStyles(self, styleElements):
- """ Runs through "style" elements extracting necessary information.
- """
-
- for style in styleElements:
-
- name = style.getAttribute("style:name")
-
- if name == "Standard": continue
-
- family = style.getAttribute("style:family")
- parent = style.getAttribute("style:parent-style-name")
-
- if family == "text":
- self.textStyles[name] = self.extractTextProperties(style, parent)
-
- elif family == "paragraph":
- self.paragraphStyles[name] = \
- self.extractParagraphProperties(style, parent)
- self.textStyles[name] = self.extractTextProperties(style, parent)
-
- def processListStyles(self, listStyleElements):
-
- for style in listStyleElements:
- name = style.getAttribute("style:name")
-
- prop = ListProperties()
- if style.hasChildNodes():
- subitems = [el for el in style.childNodes
- if el.nodeType == xml.dom.Node.ELEMENT_NODE
- and el.tagName == "text:list-level-style-number"]
- if len(subitems) > 0:
- prop.setOrdered(True)
-
- self.listStyles[name] = prop
-
-
- def load(self, filepath):
- """ Loads an ODT file. """
-
- zip = zipfile.ZipFile(filepath)
-
- styles_doc = xml.dom.minidom.parseString(zip.read("styles.xml"))
- fontfacedecls = styles_doc.getElementsByTagName("office:font-face-decls")
- if fontfacedecls:
- self.processFontDeclarations(fontfacedecls[0])
- self.processStyles(styles_doc.getElementsByTagName("style:style"))
- self.processListStyles(styles_doc.getElementsByTagName("text:list-style"))
-
- self.content = xml.dom.minidom.parseString(zip.read("content.xml"))
- fontfacedecls = self.content.getElementsByTagName("office:font-face-decls")
- if fontfacedecls:
- self.processFontDeclarations(fontfacedecls[0])
-
- self.processStyles(self.content.getElementsByTagName("style:style"))
- self.processListStyles(self.content.getElementsByTagName("text:list-style"))
-
- def compressCodeBlocks(self, text):
- """ Removes extra blank lines from code blocks. """
-
- return text
- lines = text.split("\n")
- buffer = []
- numLines = len(lines)
- for i in range(numLines):
-
- if (lines[i].strip() or i == numLines-1 or i == 0 or
- not ( lines[i-1].startswith(" ")
- and lines[i+1].startswith(" ") ) ):
- buffer.append("\n" + lines[i])
-
- return ''.join(buffer)
-
-#-----------------------------------
- def do_nothing(self, node):
- return ''
-
- def draw_image(self, node):
- """
- """
-
- link = node.getAttribute("xlink:href")
- if link and link[:2] == './': # Indicates a sub-object, which isn't supported
- return "%s\n" % link
- if link and link[:9] == 'Pictures/':
- link = link[9:]
- return "[[Image(%s)]]\n" % link
-
- def text_a(self, node):
- text = self.textToString(node)
- link = node.getAttribute("xlink:href")
- if link.strip() == text.strip():
- return "[%s] " % link.strip()
- else:
- return "[%s %s] " % (link.strip(), text.strip())
-
-
- def text_line_break(self, node):
- return "[[BR]]"
-
- def text_note(self, node):
- cite = (node.getElementsByTagName("text:note-citation")[0]
- .childNodes[0].nodeValue)
- body = (node.getElementsByTagName("text:note-body")[0]
- .childNodes[0])
- self.footnotes.append((cite, self.textToString(body)))
- return "^%s^" % cite
-
- def text_s(self, node):
- try:
- num = int(node.getAttribute("text:c"))
- return " "*num
- except:
- return " "
-
- def text_tab(self, node):
- return " "
-
- def inline_markup(self, node):
- text = self.textToString(node)
-
- if not text.strip():
- return '' # don't apply styles to white space
-
- styleName = node.getAttribute("text:style-name")
- style = self.textStyles.get(styleName, TextProps())
-
- if style.fixed:
- return "`" + text + "`"
-
- mark = []
- if style:
- if style.italic:
- mark.append("''")
- if style.bold:
- mark.append("'''")
- if style.underlined:
- mark.append("__")
- if style.strikethrough:
- mark.append("~~")
- if style.superscript:
- mark.append("^")
- if style.subscript:
- mark.append(",,")
- revmark = mark[:]
- revmark.reverse()
- return "%s%s%s" % (''.join(mark), text, ''.join(revmark))
-
-#-----------------------------------
- def listToString(self, listElement, indent = 0):
-
- self.lastsegment = listElement.tagName
- buffer = []
-
- styleName = listElement.getAttribute("text:style-name")
- props = self.listStyles.get(styleName, ListProperties())
-
- i = 0
- for item in listElement.childNodes:
- buffer.append(" "*indent)
- i += 1
- if props.ordered:
- number = str(i)
- number = " " + number + ". "
- buffer.append(" 1. ")
- else:
- buffer.append(" * ")
- subitems = [el for el in item.childNodes
- if el.tagName in ["text:p", "text:h", "text:list"]]
- for subitem in subitems:
- if subitem.tagName == "text:list":
- buffer.append("\n")
- buffer.append(self.listToString(subitem, indent+3))
- else:
- buffer.append(self.paragraphToString(subitem, indent+3))
- self.lastsegment = subitem.tagName
- self.lastsegment = item.tagName
- buffer.append("\n")
-
- return ''.join(buffer)
-
- def tableToString(self, tableElement):
- """ MoinMoin uses || to delimit table cells
- """
-
- self.lastsegment = tableElement.tagName
- buffer = []
-
- for item in tableElement.childNodes:
- self.lastsegment = item.tagName
- if item.tagName == "table:table-header-rows":
- buffer.append(self.tableToString(item))
- if item.tagName == "table:table-row":
- buffer.append("\n||")
- for cell in item.childNodes:
- buffer.append(self.inline_markup(cell))
- buffer.append("||")
- self.lastsegment = cell.tagName
- return ''.join(buffer)
-
-
- def toString(self):
- """ Converts the document to a string.
- FIXME: Result from second call differs from first call
- """
- body = self.content.getElementsByTagName("office:body")[0]
- text = body.childNodes[0]
-
- buffer = []
-
- paragraphs = [el for el in text.childNodes
- if el.tagName in ["draw:page", "text:p", "text:h","text:section",
- "text:list", "table:table"]]
-
- for paragraph in paragraphs:
- if paragraph.tagName == "text:list":
- text = self.listToString(paragraph)
- elif paragraph.tagName == "text:section":
- text = self.textToString(paragraph)
- elif paragraph.tagName == "table:table":
- text = self.tableToString(paragraph)
- else:
- text = self.paragraphToString(paragraph)
- if text:
- buffer.append(text)
-
- if self.footnotes:
-
- buffer.append("----")
- for cite, body in self.footnotes:
- buffer.append("%s: %s" % (cite, body))
-
-
- buffer.append("")
- return self.compressCodeBlocks('\n'.join(buffer))
-
-
- def textToString(self, element):
-
- buffer = []
-
- for node in element.childNodes:
-
- if node.nodeType == xml.dom.Node.TEXT_NODE:
- buffer.append(node.nodeValue)
-
- elif node.nodeType == xml.dom.Node.ELEMENT_NODE:
- tag = node.tagName
-
- if tag in ("draw:text-box", "draw:frame"):
- buffer.append(self.textToString(node))
-
- elif tag in ("text:p", "text:h"):
- text = self.paragraphToString(node)
- if text:
- buffer.append(text)
- elif tag == "text:list":
- buffer.append(self.listToString(node))
- else:
- method = self.elements.get(tag)
- if method:
- buffer.append(method(node))
- else:
- buffer.append(" {" + tag + "} ")
-
- return ''.join(buffer)
-
- def paragraphToString(self, paragraph, indent = 0):
-
- dummyParaProps = ParagraphProps()
-
- style_name = paragraph.getAttribute("text:style-name")
- paraProps = self.paragraphStyles.get(style_name, dummyParaProps)
- text = self.inline_markup(paragraph)
-
- if paraProps and not paraProps.code:
- text = text.strip()
-
- if paragraph.tagName == "text:p" and self.lastsegment == "text:p":
- text = "\n" + text
-
- self.lastsegment = paragraph.tagName
-
- if paraProps.title:
- self.hasTitle = 1
- return "= " + text + " =\n"
-
- outlinelevel = paragraph.getAttribute("text:outline-level")
- if outlinelevel:
-
- level = int(outlinelevel)
- if self.hasTitle: level += 1
-
- if level >= 1:
- return "=" * level + " " + text + " " + "=" * level + "\n"
-
- elif paraProps.code:
- return "{{{\n" + text + "\n}}}\n"
-
- if paraProps.indented:
- return self.wrapParagraph(text, indent = indent, blockquote = True)
-
- else:
- return self.wrapParagraph(text, indent = indent)
-
-
- def wrapParagraph(self, text, indent = 0, blockquote=False):
-
- counter = 0
- buffer = []
- LIMIT = 50
-
- if blockquote:
- buffer.append(" ")
-
- return ''.join(buffer) + text
- # Unused from here
- for token in text.split():
-
- if counter > LIMIT - indent:
- buffer.append("\n" + " "*indent)
- if blockquote:
- buffer.append(" ")
- counter = 0
-
- buffer.append(token + " ")
- counter += len(token)
-
- return ''.join(buffer)
diff --git a/tablib/packages/odf3/odf2xhtml.py b/tablib/packages/odf3/odf2xhtml.py
deleted file mode 100644
index 7c54bb4..0000000
--- a/tablib/packages/odf3/odf2xhtml.py
+++ /dev/null
@@ -1,1582 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2010 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-#import pdb
-#pdb.set_trace()
-from xml.sax import handler
-from xml.sax.saxutils import escape, quoteattr
-from xml.dom import Node
-
-from .opendocument import load
-
-from .namespaces import ANIMNS, CHARTNS, CONFIGNS, DCNS, DR3DNS, DRAWNS, FONS, \
- FORMNS, MATHNS, METANS, NUMBERNS, OFFICENS, PRESENTATIONNS, SCRIPTNS, \
- SMILNS, STYLENS, SVGNS, TABLENS, TEXTNS, XLINKNS
-
-# Handling of styles
-#
-# First there are font face declarations. These set up a font style that will be
-# referenced from a text-property. The declaration describes the font making
-# it possible for the application to find a similar font should the system not
-# have that particular one. The StyleToCSS stores these attributes to be used
-# for the CSS2 font declaration.
-#
-# Then there are default-styles. These set defaults for various style types:
-# "text", "paragraph", "section", "ruby", "table", "table-column", "table-row",
-# "table-cell", "graphic", "presentation", "drawing-page", "chart".
-# Since CSS2 can't refer to another style, ODF2XHTML add these to all
-# styles unless overridden.
-#
-# The real styles are declared in the <style:style> element. They have a
-# family referring to the default-styles, and may have a parent style.
-#
-# Styles have scope. The same name can be used for both paragraph and
-# character etc. styles Since CSS2 has no scope we use a prefix. (Not elegant)
-# In ODF a style can have a parent, these parents can be chained.
-
-class StyleToCSS:
- """ The purpose of the StyleToCSS class is to contain the rules to convert
- ODF styles to CSS2. Since it needs the generic fonts, it would probably
- make sense to also contain the Styles in a dict as well..
- """
-
- def __init__(self):
- # Font declarations
- self.fontdict = {}
-
- # Fill-images from presentations for backgrounds
- self.fillimages = {}
-
- self.ruleconversions = {
- (DRAWNS,'fill-image-name'): self.c_drawfillimage,
- (FONS,"background-color"): self.c_fo,
- (FONS,"border"): self.c_fo,
- (FONS,"border-bottom"): self.c_fo,
- (FONS,"border-left"): self.c_fo,
- (FONS,"border-right"): self.c_fo,
- (FONS,"border-top"): self.c_fo,
- (FONS,"color"): self.c_fo,
- (FONS,"font-family"): self.c_fo,
- (FONS,"font-size"): self.c_fo,
- (FONS,"font-style"): self.c_fo,
- (FONS,"font-variant"): self.c_fo,
- (FONS,"font-weight"): self.c_fo,
- (FONS,"line-height"): self.c_fo,
- (FONS,"margin"): self.c_fo,
- (FONS,"margin-bottom"): self.c_fo,
- (FONS,"margin-left"): self.c_fo,
- (FONS,"margin-right"): self.c_fo,
- (FONS,"margin-top"): self.c_fo,
- (FONS,"min-height"): self.c_fo,
- (FONS,"padding"): self.c_fo,
- (FONS,"padding-bottom"): self.c_fo,
- (FONS,"padding-left"): self.c_fo,
- (FONS,"padding-right"): self.c_fo,
- (FONS,"padding-top"): self.c_fo,
- (FONS,"page-width"): self.c_page_width,
- (FONS,"page-height"): self.c_page_height,
- (FONS,"text-align"): self.c_text_align,
- (FONS,"text-indent") :self.c_fo,
- (TABLENS,'border-model') :self.c_border_model,
- (STYLENS,'column-width') : self.c_width,
- (STYLENS,"font-name"): self.c_fn,
- (STYLENS,'horizontal-pos'): self.c_hp,
- (STYLENS,'text-position'): self.c_text_position,
- (STYLENS,'text-line-through-style'): self.c_text_line_through_style,
- (STYLENS,'text-underline-style'): self.c_text_underline_style,
- (STYLENS,'width') : self.c_width,
- # FIXME Should do style:vertical-pos here
- }
-
- def save_font(self, name, family, generic):
- """ It is possible that the HTML browser doesn't know how to
- show a particular font. Fortunately ODF provides generic fallbacks.
- Unfortunately they are not the same as CSS2.
- CSS2: serif, sans-serif, cursive, fantasy, monospace
- ODF: roman, swiss, modern, decorative, script, system
- This method put the font and fallback into a dictionary
- """
- htmlgeneric = "sans-serif"
- if generic == "roman": htmlgeneric = "serif"
- elif generic == "swiss": htmlgeneric = "sans-serif"
- elif generic == "modern": htmlgeneric = "monospace"
- elif generic == "decorative": htmlgeneric = "sans-serif"
- elif generic == "script": htmlgeneric = "monospace"
- elif generic == "system": htmlgeneric = "serif"
- self.fontdict[name] = (family, htmlgeneric)
-
- def c_drawfillimage(self, ruleset, sdict, rule, val):
- """ Fill a figure with an image. Since CSS doesn't let you resize images
- this should really be implemented as an absolutely position <img>
- with a width and a height
- """
- sdict['background-image'] = "url('%s')" % self.fillimages[val]
-
- def c_fo(self, ruleset, sdict, rule, val):
- """ XSL formatting attributes """
- selector = rule[1]
- sdict[selector] = val
-
- def c_border_model(self, ruleset, sdict, rule, val):
- """ Convert to CSS2 border model """
- if val == 'collapsing':
- sdict['border-collapse'] ='collapse'
- else:
- sdict['border-collapse'] ='separate'
-
- def c_width(self, ruleset, sdict, rule, val):
- """ Set width of box """
- sdict['width'] = val
-
- def c_text_align(self, ruleset, sdict, rule, align):
- """ Text align """
- if align == "start": align = "left"
- if align == "end": align = "right"
- sdict['text-align'] = align
-
- def c_fn(self, ruleset, sdict, rule, fontstyle):
- """ Generate the CSS font family
- A generic font can be found in two ways. In a <style:font-face>
- element or as a font-family-generic attribute in text-properties.
- """
- generic = ruleset.get((STYLENS,'font-family-generic') )
- if generic is not None:
- self.save_font(fontstyle, fontstyle, generic)
- family, htmlgeneric = self.fontdict.get(fontstyle, (fontstyle, 'serif'))
- sdict['font-family'] = '%s, %s' % (family, htmlgeneric)
-
- def c_text_position(self, ruleset, sdict, rule, tp):
- """ Text position. This is used e.g. to make superscript and subscript
- This attribute can have one or two values.
-
- The first value must be present and specifies the vertical
- text position as a percentage that relates to the current font
- height or it takes one of the values sub or super. Negative
- percentages or the sub value place the text below the
- baseline. Positive percentages or the super value place
- the text above the baseline. If sub or super is specified,
- the application can choose an appropriate text position.
-
- The second value is optional and specifies the font height
- as a percentage that relates to the current font-height. If
- this value is not specified, an appropriate font height is
- used. Although this value may change the font height that
- is displayed, it never changes the current font height that
- is used for additional calculations.
- """
- textpos = tp.split(' ')
- if len(textpos) == 2 and textpos[0] != "0%":
- # Bug in OpenOffice. If vertical-align is 0% - ignore the text size.
- sdict['font-size'] = textpos[1]
- if textpos[0] == "super":
- sdict['vertical-align'] = "33%"
- elif textpos[0] == "sub":
- sdict['vertical-align'] = "-33%"
- else:
- sdict['vertical-align'] = textpos[0]
-
- def c_hp(self, ruleset, sdict, rule, hpos):
- #FIXME: Frames wrap-style defaults to 'parallel', graphics to 'none'.
- # It is properly set in the parent-styles, but the program doesn't
- # collect the information.
- wrap = ruleset.get((STYLENS,'wrap'),'parallel')
- # Can have: from-left, left, center, right, from-inside, inside, outside
- if hpos == "center":
- sdict['margin-left'] = "auto"
- sdict['margin-right'] = "auto"
-# else:
-# # force it to be *something* then delete it
-# sdict['margin-left'] = sdict['margin-right'] = ''
-# del sdict['margin-left'], sdict['margin-right']
-
- if hpos in ("right","outside"):
- if wrap in ( "left", "parallel","dynamic"):
- sdict['float'] = "right"
- elif wrap == "run-through":
- sdict['position'] = "absolute" # Simulate run-through
- sdict['top'] = "0"
- sdict['right'] = "0";
- else: # No wrapping
- sdict['margin-left'] = "auto"
- sdict['margin-right'] = "0px"
- elif hpos in ("left", "inside"):
- if wrap in ( "right", "parallel","dynamic"):
- sdict['float'] = "left"
- elif wrap == "run-through":
- sdict['position'] = "absolute" # Simulate run-through
- sdict['top'] = "0"
- sdict['left'] = "0"
- else: # No wrapping
- sdict['margin-left'] = "0px"
- sdict['margin-right'] = "auto"
- elif hpos in ("from-left", "from-inside"):
- if wrap in ( "right", "parallel"):
- sdict['float'] = "left"
- else:
- sdict['position'] = "relative" # No wrapping
- if (SVGNS,'x') in ruleset:
- sdict['left'] = ruleset[(SVGNS,'x')]
-
- def c_page_width(self, ruleset, sdict, rule, val):
- """ Set width of box
- HTML doesn't really have a page-width. It is always 100% of the browser width
- """
- sdict['width'] = val
-
- def c_text_underline_style(self, ruleset, sdict, rule, val):
- """ Set underline decoration
- HTML doesn't really have a page-width. It is always 100% of the browser width
- """
- if val and val != "none":
- sdict['text-decoration'] = "underline"
-
- def c_text_line_through_style(self, ruleset, sdict, rule, val):
- """ Set underline decoration
- HTML doesn't really have a page-width. It is always 100% of the browser width
- """
- if val and val != "none":
- sdict['text-decoration'] = "line-through"
-
- def c_page_height(self, ruleset, sdict, rule, val):
- """ Set height of box """
- sdict['height'] = val
-
- def convert_styles(self, ruleset):
- """ Rule is a tuple of (namespace, name). If the namespace is '' then
- it is already CSS2
- """
- sdict = {}
- for rule,val in list(ruleset.items()):
- if rule[0] == '':
- sdict[rule[1]] = val
- continue
- method = self.ruleconversions.get(rule, None )
- if method:
- method(ruleset, sdict, rule, val)
- return sdict
-
-
-class TagStack:
- def __init__(self):
- self.stack = []
-
- def push(self, tag, attrs):
- self.stack.append( (tag, attrs) )
-
- def pop(self):
- item = self.stack.pop()
- return item
-
- def stackparent(self):
- item = self.stack[-1]
- return item[1]
-
- def rfindattr(self, attr):
- """ Find a tag with the given attribute """
- for tag, attrs in self.stack:
- if attr in attrs:
- return attrs[attr]
- return None
- def count_tags(self, tag):
- c = 0
- for ttag, tattrs in self.stack:
- if ttag == tag: c = c + 1
- return c
-
-special_styles = {
- 'S-Emphasis':'em',
- 'S-Citation':'cite',
- 'S-Strong_20_Emphasis':'strong',
- 'S-Variable':'var',
- 'S-Definition':'dfn',
- 'S-Teletype':'tt',
- 'P-Heading_20_1':'h1',
- 'P-Heading_20_2':'h2',
- 'P-Heading_20_3':'h3',
- 'P-Heading_20_4':'h4',
- 'P-Heading_20_5':'h5',
- 'P-Heading_20_6':'h6',
-# 'P-Caption':'caption',
- 'P-Addressee':'address',
-# 'P-List_20_Heading':'dt',
-# 'P-List_20_Contents':'dd',
- 'P-Preformatted_20_Text':'pre',
-# 'P-Table_20_Heading':'th',
-# 'P-Table_20_Contents':'td',
-# 'P-Text_20_body':'p'
-}
-
-#-----------------------------------------------------------------------------
-#
-# ODFCONTENTHANDLER
-#
-#-----------------------------------------------------------------------------
-class ODF2XHTML(handler.ContentHandler):
- """ The ODF2XHTML parses an ODF file and produces XHTML"""
-
- def __init__(self, generate_css=True, embedable=False):
- # Tags
- self.generate_css = generate_css
- self.elements = {
- (DCNS, 'title'): (self.s_processcont, self.e_dc_title),
- (DCNS, 'language'): (self.s_processcont, self.e_dc_contentlanguage),
- (DCNS, 'creator'): (self.s_processcont, self.e_dc_creator),
- (DCNS, 'description'): (self.s_processcont, self.e_dc_metatag),
- (DCNS, 'date'): (self.s_processcont, self.e_dc_metatag),
- (DRAWNS, 'custom-shape'): (self.s_custom_shape, self.e_custom_shape),
- (DRAWNS, 'frame'): (self.s_draw_frame, self.e_draw_frame),
- (DRAWNS, 'image'): (self.s_draw_image, None),
- (DRAWNS, 'fill-image'): (self.s_draw_fill_image, None),
- (DRAWNS, "layer-set"):(self.s_ignorexml, None),
- (DRAWNS, 'object'): (self.s_draw_object, None),
- (DRAWNS, 'object-ole'): (self.s_draw_object_ole, None),
- (DRAWNS, 'page'): (self.s_draw_page, self.e_draw_page),
- (DRAWNS, 'text-box'): (self.s_draw_textbox, self.e_draw_textbox),
- (METANS, 'creation-date'):(self.s_processcont, self.e_dc_metatag),
- (METANS, 'generator'):(self.s_processcont, self.e_dc_metatag),
- (METANS, 'initial-creator'): (self.s_processcont, self.e_dc_metatag),
- (METANS, 'keyword'): (self.s_processcont, self.e_dc_metatag),
- (NUMBERNS, "boolean-style"):(self.s_ignorexml, None),
- (NUMBERNS, "currency-style"):(self.s_ignorexml, None),
- (NUMBERNS, "date-style"):(self.s_ignorexml, None),
- (NUMBERNS, "number-style"):(self.s_ignorexml, None),
- (NUMBERNS, "text-style"):(self.s_ignorexml, None),
- (OFFICENS, "annotation"):(self.s_ignorexml, None),
- (OFFICENS, "automatic-styles"):(self.s_office_automatic_styles, None),
- (OFFICENS, "document"):(self.s_office_document_content, self.e_office_document_content),
- (OFFICENS, "document-content"):(self.s_office_document_content, self.e_office_document_content),
- (OFFICENS, "forms"):(self.s_ignorexml, None),
- (OFFICENS, "master-styles"):(self.s_office_master_styles, None),
- (OFFICENS, "meta"):(self.s_ignorecont, None),
- (OFFICENS, "presentation"):(self.s_office_presentation, self.e_office_presentation),
- (OFFICENS, "spreadsheet"):(self.s_office_spreadsheet, self.e_office_spreadsheet),
- (OFFICENS, "styles"):(self.s_office_styles, None),
- (OFFICENS, "text"):(self.s_office_text, self.e_office_text),
- (OFFICENS, "scripts"):(self.s_ignorexml, None),
- (OFFICENS, "settings"):(self.s_ignorexml, None),
- (PRESENTATIONNS, "notes"):(self.s_ignorexml, None),
-# (STYLENS, "default-page-layout"):(self.s_style_default_page_layout, self.e_style_page_layout),
- (STYLENS, "default-page-layout"):(self.s_ignorexml, None),
- (STYLENS, "default-style"):(self.s_style_default_style, self.e_style_default_style),
- (STYLENS, "drawing-page-properties"):(self.s_style_handle_properties, None),
- (STYLENS, "font-face"):(self.s_style_font_face, None),
-# (STYLENS, "footer"):(self.s_style_footer, self.e_style_footer),
-# (STYLENS, "footer-style"):(self.s_style_footer_style, None),
- (STYLENS, "graphic-properties"):(self.s_style_handle_properties, None),
- (STYLENS, "handout-master"):(self.s_ignorexml, None),
-# (STYLENS, "header"):(self.s_style_header, self.e_style_header),
-# (STYLENS, "header-footer-properties"):(self.s_style_handle_properties, None),
-# (STYLENS, "header-style"):(self.s_style_header_style, None),
- (STYLENS, "master-page"):(self.s_style_master_page, None),
- (STYLENS, "page-layout-properties"):(self.s_style_handle_properties, None),
- (STYLENS, "page-layout"):(self.s_style_page_layout, self.e_style_page_layout),
-# (STYLENS, "page-layout"):(self.s_ignorexml, None),
- (STYLENS, "paragraph-properties"):(self.s_style_handle_properties, None),
- (STYLENS, "style"):(self.s_style_style, self.e_style_style),
- (STYLENS, "table-cell-properties"):(self.s_style_handle_properties, None),
- (STYLENS, "table-column-properties"):(self.s_style_handle_properties, None),
- (STYLENS, "table-properties"):(self.s_style_handle_properties, None),
- (STYLENS, "text-properties"):(self.s_style_handle_properties, None),
- (SVGNS, 'desc'): (self.s_ignorexml, None),
- (TABLENS, 'covered-table-cell'): (self.s_ignorexml, None),
- (TABLENS, 'table-cell'): (self.s_table_table_cell, self.e_table_table_cell),
- (TABLENS, 'table-column'): (self.s_table_table_column, None),
- (TABLENS, 'table-row'): (self.s_table_table_row, self.e_table_table_row),
- (TABLENS, 'table'): (self.s_table_table, self.e_table_table),
- (TEXTNS, 'a'): (self.s_text_a, self.e_text_a),
- (TEXTNS, "alphabetical-index-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, "bibliography-configuration"):(self.s_ignorexml, None),
- (TEXTNS, "bibliography-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, 'bookmark'): (self.s_text_bookmark, None),
- (TEXTNS, 'bookmark-start'): (self.s_text_bookmark, None),
- (TEXTNS, 'bookmark-ref'): (self.s_text_bookmark_ref, self.e_text_a),
- (TEXTNS, 'bookmark-ref-start'): (self.s_text_bookmark_ref, None),
- (TEXTNS, 'h'): (self.s_text_h, self.e_text_h),
- (TEXTNS, "illustration-index-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, 'line-break'):(self.s_text_line_break, None),
- (TEXTNS, "linenumbering-configuration"):(self.s_ignorexml, None),
- (TEXTNS, "list"):(self.s_text_list, self.e_text_list),
- (TEXTNS, "list-item"):(self.s_text_list_item, self.e_text_list_item),
- (TEXTNS, "list-level-style-bullet"):(self.s_text_list_level_style_bullet, self.e_text_list_level_style_bullet),
- (TEXTNS, "list-level-style-number"):(self.s_text_list_level_style_number, self.e_text_list_level_style_number),
- (TEXTNS, "list-style"):(None, None),
- (TEXTNS, "note"):(self.s_text_note, None),
- (TEXTNS, "note-body"):(self.s_text_note_body, self.e_text_note_body),
- (TEXTNS, "note-citation"):(None, self.e_text_note_citation),
- (TEXTNS, "notes-configuration"):(self.s_ignorexml, None),
- (TEXTNS, "object-index-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, 'p'): (self.s_text_p, self.e_text_p),
- (TEXTNS, 's'): (self.s_text_s, None),
- (TEXTNS, 'span'): (self.s_text_span, self.e_text_span),
- (TEXTNS, 'tab'): (self.s_text_tab, None),
- (TEXTNS, "table-index-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, "table-of-content-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, "user-index-source"):(self.s_text_x_source, self.e_text_x_source),
- }
- if embedable:
- self.make_embedable()
- self._resetobject()
-
- def set_plain(self):
- """ Tell the parser to not generate CSS """
- self.generate_css = False
-
- def set_embedable(self):
- """ Tells the converter to only output the parts inside the <body>"""
- self.elements[(OFFICENS, "text")] = (None,None)
- self.elements[(OFFICENS, "spreadsheet")] = (None,None)
- self.elements[(OFFICENS, "presentation")] = (None,None)
- self.elements[(OFFICENS, "document-content")] = (None,None)
-
-
- def add_style_file(self, stylefilename, media=None):
- """ Add a link to an external style file.
- Also turns of the embedding of styles in the HTML
- """
- self.use_internal_css = False
- self.stylefilename = stylefilename
- if media:
- self.metatags.append('<link rel="stylesheet" type="text/css" href="%s" media="%s"/>\n' % (stylefilename,media))
- else:
- self.metatags.append('<link rel="stylesheet" type="text/css" href="%s"/>\n' % (stylefilename))
-
- def _resetfootnotes(self):
- # Footnotes and endnotes
- self.notedict = {}
- self.currentnote = 0
- self.notebody = ''
-
- def _resetobject(self):
- self.lines = []
- self._wfunc = self._wlines
- self.xmlfile = ''
- self.title = ''
- self.language = ''
- self.creator = ''
- self.data = []
- self.tagstack = TagStack()
- self.htmlstack = []
- self.pstack = []
- self.processelem = True
- self.processcont = True
- self.listtypes = {}
- self.headinglevels = [0, 0,0,0,0,0, 0,0,0,0,0] # level 0 to 10
- self.use_internal_css = True
- self.cs = StyleToCSS()
- self.anchors = {}
-
- # Style declarations
- self.stylestack = []
- self.styledict = {}
- self.currentstyle = None
-
- self._resetfootnotes()
-
- # Tags from meta.xml
- self.metatags = []
-
-
- def writeout(self, s):
- if s != '':
- self._wfunc(s)
-
- def writedata(self):
- d = ''.join(self.data)
- if d != '':
- self.writeout(escape(d))
-
- def opentag(self, tag, attrs={}, block=False):
- """ Create an open HTML tag """
- self.htmlstack.append((tag,attrs,block))
- a = []
- for key,val in list(attrs.items()):
- a.append('''%s=%s''' % (key, quoteattr(val)))
- if len(a) == 0:
- self.writeout("<%s>" % tag)
- else:
- self.writeout("<%s %s>" % (tag, " ".join(a)))
- if block == True:
- self.writeout("\n")
-
- def closetag(self, tag, block=True):
- """ Close an open HTML tag """
- self.htmlstack.pop()
- self.writeout("</%s>" % tag)
- if block == True:
- self.writeout("\n")
-
- def emptytag(self, tag, attrs={}):
- a = []
- for key,val in list(attrs.items()):
- a.append('''%s=%s''' % (key, quoteattr(val)))
- self.writeout("<%s %s/>\n" % (tag, " ".join(a)))
-
-#--------------------------------------------------
-# Interface to parser
-#--------------------------------------------------
- def characters(self, data):
- if self.processelem and self.processcont:
- self.data.append(data)
-
- def startElementNS(self, tag, qname, attrs):
- self.pstack.append( (self.processelem, self.processcont) )
- if self.processelem:
- method = self.elements.get(tag, (None, None) )[0]
- if method:
- self.handle_starttag(tag, method, attrs)
- else:
- self.unknown_starttag(tag,attrs)
- self.tagstack.push( tag, attrs )
-
- def endElementNS(self, tag, qname):
- stag, attrs = self.tagstack.pop()
- if self.processelem:
- method = self.elements.get(tag, (None, None) )[1]
- if method:
- self.handle_endtag(tag, attrs, method)
- else:
- self.unknown_endtag(tag, attrs)
- self.processelem, self.processcont = self.pstack.pop()
-
-#--------------------------------------------------
- def handle_starttag(self, tag, method, attrs):
- method(tag,attrs)
-
- def handle_endtag(self, tag, attrs, method):
- method(tag, attrs)
-
- def unknown_starttag(self, tag, attrs):
- pass
-
- def unknown_endtag(self, tag, attrs):
- pass
-
- def s_ignorexml(self, tag, attrs):
- """ Ignore this xml element and all children of it
- It will automatically stop ignoring
- """
- self.processelem = False
-
- def s_ignorecont(self, tag, attrs):
- """ Stop processing the text nodes """
- self.processcont = False
-
- def s_processcont(self, tag, attrs):
- """ Start processing the text nodes """
- self.processcont = True
-
- def classname(self, attrs):
- """ Generate a class name from a style name """
- c = attrs.get((TEXTNS,'style-name'),'')
- c = c.replace(".","_")
- return c
-
- def get_anchor(self, name):
- """ Create a unique anchor id for a href name """
- if name not in self.anchors:
- self.anchors[name] = "anchor%03d" % (len(self.anchors) + 1)
- return self.anchors.get(name)
-
-
-#--------------------------------------------------
-
- def purgedata(self):
- self.data = []
-
-#-----------------------------------------------------------------------------
-#
-# Handle meta data
-#
-#-----------------------------------------------------------------------------
- def e_dc_title(self, tag, attrs):
- """ Get the title from the meta data and create a HTML <title>
- """
- self.title = ''.join(self.data)
- #self.metatags.append('<title>%s</title>\n' % escape(self.title))
- self.data = []
-
- def e_dc_metatag(self, tag, attrs):
- """ Any other meta data is added as a <meta> element
- """
- self.metatags.append('<meta name="%s" content=%s/>\n' % (tag[1], quoteattr(''.join(self.data))))
- self.data = []
-
- def e_dc_contentlanguage(self, tag, attrs):
- """ Set the content language. Identifies the targeted audience
- """
- self.language = ''.join(self.data)
- self.metatags.append('<meta http-equiv="content-language" content="%s"/>\n' % escape(self.language))
- self.data = []
-
- def e_dc_creator(self, tag, attrs):
- """ Set the content creator. Identifies the targeted audience
- """
- self.creator = ''.join(self.data)
- self.metatags.append('<meta http-equiv="creator" content="%s"/>\n' % escape(self.creator))
- self.data = []
-
- def s_custom_shape(self, tag, attrs):
- """ A <draw:custom-shape> is made into a <div> in HTML which is then styled
- """
- anchor_type = attrs.get((TEXTNS,'anchor-type'),'notfound')
- htmltag = 'div'
- name = "G-" + attrs.get( (DRAWNS,'style-name'), "")
- if name == 'G-':
- name = "PR-" + attrs.get( (PRESENTATIONNS,'style-name'), "")
- name = name.replace(".","_")
- if anchor_type == "paragraph":
- style = 'position:absolute;'
- elif anchor_type == 'char':
- style = "position:absolute;"
- elif anchor_type == 'as-char':
- htmltag = 'div'
- style = ''
- else:
- style = "position: absolute;"
- if (SVGNS,"width") in attrs:
- style = style + "width:" + attrs[(SVGNS,"width")] + ";"
- if (SVGNS,"height") in attrs:
- style = style + "height:" + attrs[(SVGNS,"height")] + ";"
- if (SVGNS,"x") in attrs:
- style = style + "left:" + attrs[(SVGNS,"x")] + ";"
- if (SVGNS,"y") in attrs:
- style = style + "top:" + attrs[(SVGNS,"y")] + ";"
- if self.generate_css:
- self.opentag(htmltag, {'class': name, 'style': style})
- else:
- self.opentag(htmltag)
-
- def e_custom_shape(self, tag, attrs):
- """ End the <draw:frame>
- """
- self.closetag('div')
-
- def s_draw_frame(self, tag, attrs):
- """ A <draw:frame> is made into a <div> in HTML which is then styled
- """
- anchor_type = attrs.get((TEXTNS,'anchor-type'),'notfound')
- htmltag = 'div'
- name = "G-" + attrs.get( (DRAWNS,'style-name'), "")
- if name == 'G-':
- name = "PR-" + attrs.get( (PRESENTATIONNS,'style-name'), "")
- name = name.replace(".","_")
- if anchor_type == "paragraph":
- style = 'position:relative;'
- elif anchor_type == 'char':
- style = "position:relative;"
- elif anchor_type == 'as-char':
- htmltag = 'div'
- style = ''
- else:
- style = "position:absolute;"
- if (SVGNS,"width") in attrs:
- style = style + "width:" + attrs[(SVGNS,"width")] + ";"
- if (SVGNS,"height") in attrs:
- style = style + "height:" + attrs[(SVGNS,"height")] + ";"
- if (SVGNS,"x") in attrs:
- style = style + "left:" + attrs[(SVGNS,"x")] + ";"
- if (SVGNS,"y") in attrs:
- style = style + "top:" + attrs[(SVGNS,"y")] + ";"
- if self.generate_css:
- self.opentag(htmltag, {'class': name, 'style': style})
- else:
- self.opentag(htmltag)
-
- def e_draw_frame(self, tag, attrs):
- """ End the <draw:frame>
- """
- self.closetag('div')
-
- def s_draw_fill_image(self, tag, attrs):
- name = attrs.get( (DRAWNS,'name'), "NoName")
- imghref = attrs[(XLINKNS,"href")]
- imghref = self.rewritelink(imghref)
- self.cs.fillimages[name] = imghref
-
- def rewritelink(self, imghref):
- """ Intended to be overloaded if you don't store your pictures
- in a Pictures subfolder
- """
- return imghref
-
- def s_draw_image(self, tag, attrs):
- """ A <draw:image> becomes an <img/> element
- """
- parent = self.tagstack.stackparent()
- anchor_type = parent.get((TEXTNS,'anchor-type'))
- imghref = attrs[(XLINKNS,"href")]
- imghref = self.rewritelink(imghref)
- htmlattrs = {'alt':"", 'src':imghref }
- if self.generate_css:
- if anchor_type != "char":
- htmlattrs['style'] = "display: block;"
- self.emptytag('img', htmlattrs)
-
- def s_draw_object(self, tag, attrs):
- """ A <draw:object> is embedded object in the document (e.g. spreadsheet in presentation).
- """
- objhref = attrs[(XLINKNS,"href")]
- # Remove leading "./": from "./Object 1" to "Object 1"
-# objhref = objhref [2:]
-
- # Not using os.path.join since it fails to find the file on Windows.
-# objcontentpath = '/'.join([objhref, 'content.xml'])
-
- for c in self.document.childnodes:
- if c.folder == objhref:
- self._walknode(c.topnode)
-
- def s_draw_object_ole(self, tag, attrs):
- """ A <draw:object-ole> is embedded OLE object in the document (e.g. MS Graph).
- """
- class_id = attrs[(DRAWNS,"class-id")]
- if class_id and class_id.lower() == "00020803-0000-0000-c000-000000000046": ## Microsoft Graph 97 Chart
- tagattrs = { 'name':'object_ole_graph', 'class':'ole-graph' }
- self.opentag('a', tagattrs)
- self.closetag('a', tagattrs)
-
- def s_draw_page(self, tag, attrs):
- """ A <draw:page> is a slide in a presentation. We use a <fieldset> element in HTML.
- Therefore if you convert a ODP file, you get a series of <fieldset>s.
- Override this for your own purpose.
- """
- name = attrs.get( (DRAWNS,'name'), "NoName")
- stylename = attrs.get( (DRAWNS,'style-name'), "")
- stylename = stylename.replace(".","_")
- masterpage = attrs.get( (DRAWNS,'master-page-name'),"")
- masterpage = masterpage.replace(".","_")
- if self.generate_css:
- self.opentag('fieldset', {'class':"DP-%s MP-%s" % (stylename, masterpage) })
- else:
- self.opentag('fieldset')
- self.opentag('legend')
- self.writeout(escape(name))
- self.closetag('legend')
-
- def e_draw_page(self, tag, attrs):
- self.closetag('fieldset')
-
- def s_draw_textbox(self, tag, attrs):
- style = ''
- if (FONS,"min-height") in attrs:
- style = style + "min-height:" + attrs[(FONS,"min-height")] + ";"
- self.opentag('div')
-# self.opentag('div', {'style': style})
-
- def e_draw_textbox(self, tag, attrs):
- """ End the <draw:text-box>
- """
- self.closetag('div')
-
- def html_body(self, tag, attrs):
- self.writedata()
- if self.generate_css and self.use_internal_css:
- self.opentag('style', {'type':"text/css"}, True)
- self.writeout('/*<![CDATA[*/\n')
- self.generate_stylesheet()
- self.writeout('/*]]>*/\n')
- self.closetag('style')
- self.purgedata()
- self.closetag('head')
- self.opentag('body', block=True)
-
- default_styles = """
-img { width: 100%; height: 100%; }
-* { padding: 0; margin: 0; background-color:white; }
-body { margin: 0 1em; }
-ol, ul { padding-left: 2em; }
-"""
-
- def generate_stylesheet(self):
- for name in self.stylestack:
- styles = self.styledict.get(name)
- # Preload with the family's default style
- if '__style-family' in styles and styles['__style-family'] in self.styledict:
- familystyle = self.styledict[styles['__style-family']].copy()
- del styles['__style-family']
- for style, val in list(styles.items()):
- familystyle[style] = val
- styles = familystyle
- # Resolve the remaining parent styles
- while '__parent-style-name' in styles and styles['__parent-style-name'] in self.styledict:
- parentstyle = self.styledict[styles['__parent-style-name']].copy()
- del styles['__parent-style-name']
- for style, val in list(styles.items()):
- parentstyle[style] = val
- styles = parentstyle
- self.styledict[name] = styles
- # Write the styles to HTML
- self.writeout(self.default_styles)
- for name in self.stylestack:
- styles = self.styledict.get(name)
- css2 = self.cs.convert_styles(styles)
- self.writeout("%s {\n" % name)
- for style, val in list(css2.items()):
- self.writeout("\t%s: %s;\n" % (style, val) )
- self.writeout("}\n")
-
- def generate_footnotes(self):
- if self.currentnote == 0:
- return
- if self.generate_css:
- self.opentag('ol', {'style':'border-top: 1px solid black'}, True)
- else:
- self.opentag('ol')
- for key in range(1,self.currentnote+1):
- note = self.notedict[key]
-# for key,note in self.notedict.items():
- self.opentag('li', { 'id':"footnote-%d" % key })
-# self.opentag('sup')
-# self.writeout(escape(note['citation']))
-# self.closetag('sup', False)
- self.writeout(note['body'])
- self.closetag('li')
- self.closetag('ol')
-
- def s_office_automatic_styles(self, tag, attrs):
- if self.xmlfile == 'styles.xml':
- self.autoprefix = "A"
- else:
- self.autoprefix = ""
-
- def s_office_document_content(self, tag, attrs):
- """ First tag in the content.xml file"""
- self.writeout('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" ')
- self.writeout('"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\n')
- self.opentag('html', {'xmlns':"http://www.w3.org/1999/xhtml"}, True)
- self.opentag('head', block=True)
- self.emptytag('meta', { 'http-equiv':"Content-Type", 'content':"text/html;charset=UTF-8"})
- for metaline in self.metatags:
- self.writeout(metaline)
- self.writeout('<title>%s</title>\n' % escape(self.title))
-
- def e_office_document_content(self, tag, attrs):
- """ Last tag """
- self.closetag('html')
-
- def s_office_master_styles(self, tag, attrs):
- """ """
-
- def s_office_presentation(self, tag, attrs):
- """ For some odd reason, OpenOffice Impress doesn't define a default-style
- for the 'paragraph'. We therefore force a standard when we see
- it is a presentation
- """
- self.styledict['p'] = {(FONS,'font-size'): "24pt" }
- self.styledict['presentation'] = {(FONS,'font-size'): "24pt" }
- self.html_body(tag, attrs)
-
- def e_office_presentation(self, tag, attrs):
- self.generate_footnotes()
- self.closetag('body')
-
- def s_office_spreadsheet(self, tag, attrs):
- self.html_body(tag, attrs)
-
- def e_office_spreadsheet(self, tag, attrs):
- self.generate_footnotes()
- self.closetag('body')
-
- def s_office_styles(self, tag, attrs):
- self.autoprefix = ""
-
- def s_office_text(self, tag, attrs):
- """ OpenDocument text """
- self.styledict['frame'] = { (STYLENS,'wrap'): 'parallel'}
- self.html_body(tag, attrs)
-
- def e_office_text(self, tag, attrs):
- self.generate_footnotes()
- self.closetag('body')
-
- def s_style_handle_properties(self, tag, attrs):
- """ Copy all attributes to a struct.
- We will later convert them to CSS2
- """
- for key,attr in list(attrs.items()):
- self.styledict[self.currentstyle][key] = attr
-
-
- familymap = {'frame':'frame', 'paragraph':'p', 'presentation':'presentation',
- 'text':'span','section':'div',
- 'table':'table','table-cell':'td','table-column':'col',
- 'table-row':'tr','graphic':'graphic' }
-
- def s_style_default_style(self, tag, attrs):
- """ A default style is like a style on an HTML tag
- """
- family = attrs[(STYLENS,'family')]
- htmlfamily = self.familymap.get(family,'unknown')
- self.currentstyle = htmlfamily
-# self.stylestack.append(self.currentstyle)
- self.styledict[self.currentstyle] = {}
-
- def e_style_default_style(self, tag, attrs):
- self.currentstyle = None
-
- def s_style_font_face(self, tag, attrs):
- """ It is possible that the HTML browser doesn't know how to
- show a particular font. Luckily ODF provides generic fallbacks
- Unfortunately they are not the same as CSS2.
- CSS2: serif, sans-serif, cursive, fantasy, monospace
- ODF: roman, swiss, modern, decorative, script, system
- """
- name = attrs[(STYLENS,"name")]
- family = attrs[(SVGNS,"font-family")]
- generic = attrs.get( (STYLENS,'font-family-generic'),"" )
- self.cs.save_font(name, family, generic)
-
- def s_style_footer(self, tag, attrs):
- self.opentag('div', { 'id':"footer" })
- self.purgedata()
-
- def e_style_footer(self, tag, attrs):
- self.writedata()
- self.closetag('div')
- self.purgedata()
-
- def s_style_footer_style(self, tag, attrs):
- self.currentstyle = "@print #footer"
- self.stylestack.append(self.currentstyle)
- self.styledict[self.currentstyle] = {}
-
- def s_style_header(self, tag, attrs):
- self.opentag('div', { 'id':"header" })
- self.purgedata()
-
- def e_style_header(self, tag, attrs):
- self.writedata()
- self.closetag('div')
- self.purgedata()
-
- def s_style_header_style(self, tag, attrs):
- self.currentstyle = "@print #header"
- self.stylestack.append(self.currentstyle)
- self.styledict[self.currentstyle] = {}
-
- def s_style_default_page_layout(self, tag, attrs):
- """ Collect the formatting for the default page layout style.
- """
- self.currentstyle = "@page"
- self.stylestack.append(self.currentstyle)
- self.styledict[self.currentstyle] = {}
-
- def s_style_page_layout(self, tag, attrs):
- """ Collect the formatting for the page layout style.
- This won't work in CSS 2.1, as page identifiers are not allowed.
- It is legal in CSS3, but the rest of the application doesn't specify when to use what page layout
- """
- name = attrs[(STYLENS,'name')]
- name = name.replace(".","_")
- self.currentstyle = ".PL-" + name
- self.stylestack.append(self.currentstyle)
- self.styledict[self.currentstyle] = {}
-
- def e_style_page_layout(self, tag, attrs):
- """ End this style
- """
- self.currentstyle = None
-
- def s_style_master_page(self, tag, attrs):
- """ Collect the formatting for the page layout style.
- """
- name = attrs[(STYLENS,'name')]
- name = name.replace(".","_")
-
- self.currentstyle = ".MP-" + name
- self.stylestack.append(self.currentstyle)
- self.styledict[self.currentstyle] = {('','position'):'relative'}
- # Then load the pagelayout style if we find it
- pagelayout = attrs.get( (STYLENS,'page-layout-name'), None)
- if pagelayout:
- pagelayout = ".PL-" + pagelayout
- if pagelayout in self.styledict:
- styles = self.styledict[pagelayout]
- for style, val in list(styles.items()):
- self.styledict[self.currentstyle][style] = val
- else:
- self.styledict[self.currentstyle]['__parent-style-name'] = pagelayout
- self.s_ignorexml(tag, attrs)
-
- # Short prefixes for class selectors
- _familyshort = {'drawing-page':'DP', 'paragraph':'P', 'presentation':'PR',
- 'text':'S', 'section':'D',
- 'table':'T', 'table-cell':'TD', 'table-column':'TC',
- 'table-row':'TR', 'graphic':'G' }
-
- def s_style_style(self, tag, attrs):
- """ Collect the formatting for the style.
- Styles have scope. The same name can be used for both paragraph and
- character styles Since CSS has no scope we use a prefix. (Not elegant)
- In ODF a style can have a parent, these parents can be chained.
- We may not have encountered the parent yet, but if we have, we resolve it.
- """
- name = attrs[(STYLENS,'name')]
- name = name.replace(".","_")
- family = attrs[(STYLENS,'family')]
- htmlfamily = self.familymap.get(family,'unknown')
- sfamily = self._familyshort.get(family,'X')
- name = "%s%s-%s" % (self.autoprefix, sfamily, name)
- parent = attrs.get( (STYLENS,'parent-style-name') )
- self.currentstyle = special_styles.get(name,"."+name)
- self.stylestack.append(self.currentstyle)
- if self.currentstyle not in self.styledict:
- self.styledict[self.currentstyle] = {}
-
- self.styledict[self.currentstyle]['__style-family'] = htmlfamily
-
- # Then load the parent style if we find it
- if parent:
- parent = "%s-%s" % (sfamily, parent)
- parent = special_styles.get(parent, "."+parent)
- if parent in self.styledict:
- styles = self.styledict[parent]
- for style, val in list(styles.items()):
- self.styledict[self.currentstyle][style] = val
- else:
- self.styledict[self.currentstyle]['__parent-style-name'] = parent
-
- def e_style_style(self, tag, attrs):
- """ End this style
- """
- self.currentstyle = None
-
- def s_table_table(self, tag, attrs):
- """ Start a table
- """
- c = attrs.get( (TABLENS,'style-name'), None)
- if c and self.generate_css:
- c = c.replace(".","_")
- self.opentag('table',{ 'class': "T-%s" % c })
- else:
- self.opentag('table')
- self.purgedata()
-
- def e_table_table(self, tag, attrs):
- """ End a table
- """
- self.writedata()
- self.closetag('table')
- self.purgedata()
-
- def s_table_table_cell(self, tag, attrs):
- """ Start a table cell """
- #FIXME: number-columns-repeated § 8.1.3
- #repeated = int(attrs.get( (TABLENS,'number-columns-repeated'), 1))
- htmlattrs = {}
- rowspan = attrs.get( (TABLENS,'number-rows-spanned') )
- if rowspan:
- htmlattrs['rowspan'] = rowspan
- colspan = attrs.get( (TABLENS,'number-columns-spanned') )
- if colspan:
- htmlattrs['colspan'] = colspan
-
- c = attrs.get( (TABLENS,'style-name') )
- if c:
- htmlattrs['class'] = 'TD-%s' % c.replace(".","_")
- self.opentag('td', htmlattrs)
- self.purgedata()
-
- def e_table_table_cell(self, tag, attrs):
- """ End a table cell """
- self.writedata()
- self.closetag('td')
- self.purgedata()
-
- def s_table_table_column(self, tag, attrs):
- """ Start a table column """
- c = attrs.get( (TABLENS,'style-name'), None)
- repeated = int(attrs.get( (TABLENS,'number-columns-repeated'), 1))
- htmlattrs = {}
- if c:
- htmlattrs['class'] = "TC-%s" % c.replace(".","_")
- for x in range(repeated):
- self.emptytag('col', htmlattrs)
- self.purgedata()
-
- def s_table_table_row(self, tag, attrs):
- """ Start a table row """
- #FIXME: table:number-rows-repeated
- c = attrs.get( (TABLENS,'style-name'), None)
- htmlattrs = {}
- if c:
- htmlattrs['class'] = "TR-%s" % c.replace(".","_")
- self.opentag('tr', htmlattrs)
- self.purgedata()
-
- def e_table_table_row(self, tag, attrs):
- """ End a table row """
- self.writedata()
- self.closetag('tr')
- self.purgedata()
-
- def s_text_a(self, tag, attrs):
- """ Anchors start """
- self.writedata()
- href = attrs[(XLINKNS,"href")].split("|")[0]
- if href[0] == "#":
- href = "#" + self.get_anchor(href[1:])
- self.opentag('a', {'href':href})
- self.purgedata()
-
- def e_text_a(self, tag, attrs):
- """ End an anchor or bookmark reference """
- self.writedata()
- self.closetag('a', False)
- self.purgedata()
-
- def s_text_bookmark(self, tag, attrs):
- """ Bookmark definition """
- name = attrs[(TEXTNS,'name')]
- html_id = self.get_anchor(name)
- self.writedata()
- self.opentag('span', {'id':html_id})
- self.closetag('span', False)
- self.purgedata()
-
- def s_text_bookmark_ref(self, tag, attrs):
- """ Bookmark reference """
- name = attrs[(TEXTNS,'ref-name')]
- html_id = "#" + self.get_anchor(name)
- self.writedata()
- self.opentag('a', {'href':html_id})
- self.purgedata()
-
- def s_text_h(self, tag, attrs):
- """ Headings start """
- level = int(attrs[(TEXTNS,'outline-level')])
- if level > 6: level = 6 # Heading levels go only to 6 in XHTML
- if level < 1: level = 1
- self.headinglevels[level] = self.headinglevels[level] + 1
- name = self.classname(attrs)
- for x in range(level + 1,10):
- self.headinglevels[x] = 0
- special = special_styles.get("P-"+name)
- if special or not self.generate_css:
- self.opentag('h%s' % level)
- else:
- self.opentag('h%s' % level, {'class':"P-%s" % name })
- self.purgedata()
-
- def e_text_h(self, tag, attrs):
- """ Headings end
- Side-effect: If there is no title in the metadata, then it is taken
- from the first heading of any level.
- """
- self.writedata()
- level = int(attrs[(TEXTNS,'outline-level')])
- if level > 6: level = 6 # Heading levels go only to 6 in XHTML
- if level < 1: level = 1
- lev = self.headinglevels[1:level+1]
- outline = '.'.join(map(str,lev) )
- heading = ''.join(self.data)
- if self.title == '': self.title = heading
- anchor = self.get_anchor("%s.%s" % ( outline, heading))
- self.opentag('a', {'id': anchor} )
- self.closetag('a', False)
- self.closetag('h%s' % level)
- self.purgedata()
-
- def s_text_line_break(self, tag, attrs):
- """ Force a line break (<br/>) """
- self.writedata()
- self.emptytag('br')
- self.purgedata()
-
- def s_text_list(self, tag, attrs):
- """ Start a list (<ul> or <ol>)
- To know which level we're at, we have to count the number
- of <text:list> elements on the tagstack.
- """
- name = attrs.get( (TEXTNS,'style-name') )
- level = self.tagstack.count_tags(tag) + 1
- if name:
- name = name.replace(".","_")
- else:
- # FIXME: If a list is contained in a table cell or text box,
- # the list level must return to 1, even though the table or
- # textbox itself may be nested within another list.
- name = self.tagstack.rfindattr( (TEXTNS,'style-name') )
- list_class = "%s_%d" % (name, level)
- if self.generate_css:
- self.opentag('%s' % self.listtypes.get(list_class,'ul'), {'class': list_class })
- else:
- self.opentag('%s' % self.listtypes.get(list_class,'ul'))
- self.purgedata()
-
- def e_text_list(self, tag, attrs):
- """ End a list """
- self.writedata()
- name = attrs.get( (TEXTNS,'style-name') )
- level = self.tagstack.count_tags(tag) + 1
- if name:
- name = name.replace(".","_")
- else:
- # FIXME: If a list is contained in a table cell or text box,
- # the list level must return to 1, even though the table or
- # textbox itself may be nested within another list.
- name = self.tagstack.rfindattr( (TEXTNS,'style-name') )
- list_class = "%s_%d" % (name, level)
- self.closetag(self.listtypes.get(list_class,'ul'))
- self.purgedata()
-
- def s_text_list_item(self, tag, attrs):
- """ Start list item """
- self.opentag('li')
- self.purgedata()
-
- def e_text_list_item(self, tag, attrs):
- """ End list item """
- self.writedata()
- self.closetag('li')
- self.purgedata()
-
- def s_text_list_level_style_bullet(self, tag, attrs):
- """ CSS doesn't have the ability to set the glyph
- to a particular character, so we just go through
- the available glyphs
- """
- name = self.tagstack.rfindattr( (STYLENS,'name') )
- level = attrs[(TEXTNS,'level')]
- self.prevstyle = self.currentstyle
- list_class = "%s_%s" % (name, level)
- self.listtypes[list_class] = 'ul'
- self.currentstyle = ".%s_%s" % ( name.replace(".","_"), level)
- self.stylestack.append(self.currentstyle)
- self.styledict[self.currentstyle] = {}
-
- level = int(level)
- listtype = ("square", "disc", "circle")[level % 3]
- self.styledict[self.currentstyle][('','list-style-type')] = listtype
-
- def e_text_list_level_style_bullet(self, tag, attrs):
- self.currentstyle = self.prevstyle
- del self.prevstyle
-
- def s_text_list_level_style_number(self, tag, attrs):
- name = self.tagstack.stackparent()[(STYLENS,'name')]
- level = attrs[(TEXTNS,'level')]
- num_format = attrs.get( (STYLENS,'name'),"1")
- list_class = "%s_%s" % (name, level)
- self.prevstyle = self.currentstyle
- self.currentstyle = ".%s_%s" % ( name.replace(".","_"), level)
- self.listtypes[list_class] = 'ol'
- self.stylestack.append(self.currentstyle)
- self.styledict[self.currentstyle] = {}
- if num_format == "1": listtype = "decimal"
- elif num_format == "I": listtype = "upper-roman"
- elif num_format == "i": listtype = "lower-roman"
- elif num_format == "A": listtype = "upper-alpha"
- elif num_format == "a": listtype = "lower-alpha"
- else: listtype = "decimal"
- self.styledict[self.currentstyle][('','list-style-type')] = listtype
-
- def e_text_list_level_style_number(self, tag, attrs):
- self.currentstyle = self.prevstyle
- del self.prevstyle
-
- def s_text_note(self, tag, attrs):
- self.writedata()
- self.purgedata()
- self.currentnote = self.currentnote + 1
- self.notedict[self.currentnote] = {}
- self.notebody = []
-
- def e_text_note(self, tag, attrs):
- pass
-
- def collectnote(self,s):
- if s != '':
- self.notebody.append(s)
-
- def s_text_note_body(self, tag, attrs):
- self._orgwfunc = self._wfunc
- self._wfunc = self.collectnote
-
- def e_text_note_body(self, tag, attrs):
- self._wfunc = self._orgwfunc
- self.notedict[self.currentnote]['body'] = ''.join(self.notebody)
- self.notebody = ''
- del self._orgwfunc
-
- def e_text_note_citation(self, tag, attrs):
- mark = ''.join(self.data)
- self.notedict[self.currentnote]['citation'] = mark
- self.opentag('a',{ 'href': "#footnote-%s" % self.currentnote })
- self.opentag('sup')
-# self.writeout( escape(mark) )
- # Since HTML only knows about endnotes, there is too much risk that the
- # marker is reused in the source. Therefore we force numeric markers
- self.writeout(str(self.currentnote))
- self.closetag('sup')
- self.closetag('a')
-
- def s_text_p(self, tag, attrs):
- """ Paragraph
- """
- htmlattrs = {}
- specialtag = "p"
- c = attrs.get( (TEXTNS,'style-name'), None)
- if c:
- c = c.replace(".","_")
- specialtag = special_styles.get("P-"+c)
- if specialtag is None:
- specialtag = 'p'
- if self.generate_css:
- htmlattrs['class'] = "P-%s" % c
- self.opentag(specialtag, htmlattrs)
- self.purgedata()
-
- def e_text_p(self, tag, attrs):
- """ End Paragraph
- """
- specialtag = "p"
- c = attrs.get( (TEXTNS,'style-name'), None)
- if c:
- c = c.replace(".","_")
- specialtag = special_styles.get("P-"+c)
- if specialtag is None:
- specialtag = 'p'
- self.writedata()
- self.closetag(specialtag)
- self.purgedata()
-
- def s_text_s(self, tag, attrs):
- """ Generate a number of spaces. ODF has an element; HTML uses &nbsp;
- We use &#160; so we can send the output through an XML parser if we desire to
- """
- c = attrs.get( (TEXTNS,'c'),"1")
- for x in range(int(c)):
- self.writeout('&#160;')
-
- def s_text_span(self, tag, attrs):
- """ The <text:span> element matches the <span> element in HTML. It is
- typically used to properties of the text.
- """
- self.writedata()
- c = attrs.get( (TEXTNS,'style-name'), None)
- htmlattrs = {}
- if c:
- c = c.replace(".","_")
- special = special_styles.get("S-"+c)
- if special is None and self.generate_css:
- htmlattrs['class'] = "S-%s" % c
- self.opentag('span', htmlattrs)
- self.purgedata()
-
- def e_text_span(self, tag, attrs):
- """ End the <text:span> """
- self.writedata()
- self.closetag('span', False)
- self.purgedata()
-
- def s_text_tab(self, tag, attrs):
- """ Move to the next tabstop. We ignore this in HTML
- """
- self.writedata()
- self.writeout(' ')
- self.purgedata()
-
- def s_text_x_source(self, tag, attrs):
- """ Various indexes and tables of contents. We ignore those.
- """
- self.writedata()
- self.purgedata()
- self.s_ignorexml(tag, attrs)
-
- def e_text_x_source(self, tag, attrs):
- """ Various indexes and tables of contents. We ignore those.
- """
- self.writedata()
- self.purgedata()
-
-
-#-----------------------------------------------------------------------------
-#
-# Reading the file
-#
-#-----------------------------------------------------------------------------
-
- def load(self, odffile):
- """ Loads a document into the parser and parses it.
- The argument can either be a filename or a document in memory.
- """
- self.lines = []
- self._wfunc = self._wlines
- if isinstance(odffile, str):
- self.document = load(odffile)
- else:
- self.document = odffile
- self._walknode(self.document.topnode)
-
- def _walknode(self, node):
- if node.nodeType == Node.ELEMENT_NODE:
- self.startElementNS(node.qname, node.tagName, node.attributes)
- for c in node.childNodes:
- self._walknode(c)
- self.endElementNS(node.qname, node.tagName)
- if node.nodeType == Node.TEXT_NODE or node.nodeType == Node.CDATA_SECTION_NODE:
- self.characters(str(node))
-
-
- def odf2xhtml(self, odffile):
- """ Load a file and return the XHTML
- """
- self.load(odffile)
- return self.xhtml()
-
- def _wlines(self,s):
- if s != '': self.lines.append(s)
-
- def xhtml(self):
- """ Returns the xhtml
- """
- return ''.join(self.lines)
-
- def _writecss(self, s):
- if s != '': self._csslines.append(s)
-
- def _writenothing(self, s):
- pass
-
- def css(self):
- """ Returns the CSS content """
- self._csslines = []
- self._wfunc = self._writecss
- self.generate_stylesheet()
- res = ''.join(self._csslines)
- self._wfunc = self._wlines
- del self._csslines
- return res
-
- def save(self, outputfile, addsuffix=False):
- """ Save the HTML under the filename.
- If the filename is '-' then save to stdout
- We have the last style filename in self.stylefilename
- """
- if outputfile == '-':
- outputfp = sys.stdout
- else:
- if addsuffix:
- outputfile = outputfile + ".html"
- outputfp = file(outputfile, "w")
- outputfp.write(self.xhtml().encode('us-ascii','xmlcharrefreplace'))
- outputfp.close()
-
-
-class ODF2XHTMLembedded(ODF2XHTML):
- """ The ODF2XHTML parses an ODF file and produces XHTML"""
-
- def __init__(self, lines, generate_css=True, embedable=False):
- self._resetobject()
- self.lines = lines
-
- # Tags
- self.generate_css = generate_css
- self.elements = {
-# (DCNS, 'title'): (self.s_processcont, self.e_dc_title),
-# (DCNS, 'language'): (self.s_processcont, self.e_dc_contentlanguage),
-# (DCNS, 'creator'): (self.s_processcont, self.e_dc_metatag),
-# (DCNS, 'description'): (self.s_processcont, self.e_dc_metatag),
-# (DCNS, 'date'): (self.s_processcont, self.e_dc_metatag),
- (DRAWNS, 'frame'): (self.s_draw_frame, self.e_draw_frame),
- (DRAWNS, 'image'): (self.s_draw_image, None),
- (DRAWNS, 'fill-image'): (self.s_draw_fill_image, None),
- (DRAWNS, "layer-set"):(self.s_ignorexml, None),
- (DRAWNS, 'page'): (self.s_draw_page, self.e_draw_page),
- (DRAWNS, 'object'): (self.s_draw_object, None),
- (DRAWNS, 'object-ole'): (self.s_draw_object_ole, None),
- (DRAWNS, 'text-box'): (self.s_draw_textbox, self.e_draw_textbox),
-# (METANS, 'creation-date'):(self.s_processcont, self.e_dc_metatag),
-# (METANS, 'generator'):(self.s_processcont, self.e_dc_metatag),
-# (METANS, 'initial-creator'): (self.s_processcont, self.e_dc_metatag),
-# (METANS, 'keyword'): (self.s_processcont, self.e_dc_metatag),
- (NUMBERNS, "boolean-style"):(self.s_ignorexml, None),
- (NUMBERNS, "currency-style"):(self.s_ignorexml, None),
- (NUMBERNS, "date-style"):(self.s_ignorexml, None),
- (NUMBERNS, "number-style"):(self.s_ignorexml, None),
- (NUMBERNS, "text-style"):(self.s_ignorexml, None),
-# (OFFICENS, "automatic-styles"):(self.s_office_automatic_styles, None),
-# (OFFICENS, "document-content"):(self.s_office_document_content, self.e_office_document_content),
- (OFFICENS, "forms"):(self.s_ignorexml, None),
-# (OFFICENS, "master-styles"):(self.s_office_master_styles, None),
- (OFFICENS, "meta"):(self.s_ignorecont, None),
-# (OFFICENS, "presentation"):(self.s_office_presentation, self.e_office_presentation),
-# (OFFICENS, "spreadsheet"):(self.s_office_spreadsheet, self.e_office_spreadsheet),
-# (OFFICENS, "styles"):(self.s_office_styles, None),
-# (OFFICENS, "text"):(self.s_office_text, self.e_office_text),
- (OFFICENS, "scripts"):(self.s_ignorexml, None),
- (PRESENTATIONNS, "notes"):(self.s_ignorexml, None),
-## (STYLENS, "default-page-layout"):(self.s_style_default_page_layout, self.e_style_page_layout),
-# (STYLENS, "default-page-layout"):(self.s_ignorexml, None),
-# (STYLENS, "default-style"):(self.s_style_default_style, self.e_style_default_style),
-# (STYLENS, "drawing-page-properties"):(self.s_style_handle_properties, None),
-# (STYLENS, "font-face"):(self.s_style_font_face, None),
-## (STYLENS, "footer"):(self.s_style_footer, self.e_style_footer),
-## (STYLENS, "footer-style"):(self.s_style_footer_style, None),
-# (STYLENS, "graphic-properties"):(self.s_style_handle_properties, None),
-# (STYLENS, "handout-master"):(self.s_ignorexml, None),
-## (STYLENS, "header"):(self.s_style_header, self.e_style_header),
-## (STYLENS, "header-footer-properties"):(self.s_style_handle_properties, None),
-## (STYLENS, "header-style"):(self.s_style_header_style, None),
-# (STYLENS, "master-page"):(self.s_style_master_page, None),
-# (STYLENS, "page-layout-properties"):(self.s_style_handle_properties, None),
-## (STYLENS, "page-layout"):(self.s_style_page_layout, self.e_style_page_layout),
-# (STYLENS, "page-layout"):(self.s_ignorexml, None),
-# (STYLENS, "paragraph-properties"):(self.s_style_handle_properties, None),
-# (STYLENS, "style"):(self.s_style_style, self.e_style_style),
-# (STYLENS, "table-cell-properties"):(self.s_style_handle_properties, None),
-# (STYLENS, "table-column-properties"):(self.s_style_handle_properties, None),
-# (STYLENS, "table-properties"):(self.s_style_handle_properties, None),
-# (STYLENS, "text-properties"):(self.s_style_handle_properties, None),
- (SVGNS, 'desc'): (self.s_ignorexml, None),
- (TABLENS, 'covered-table-cell'): (self.s_ignorexml, None),
- (TABLENS, 'table-cell'): (self.s_table_table_cell, self.e_table_table_cell),
- (TABLENS, 'table-column'): (self.s_table_table_column, None),
- (TABLENS, 'table-row'): (self.s_table_table_row, self.e_table_table_row),
- (TABLENS, 'table'): (self.s_table_table, self.e_table_table),
- (TEXTNS, 'a'): (self.s_text_a, self.e_text_a),
- (TEXTNS, "alphabetical-index-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, "bibliography-configuration"):(self.s_ignorexml, None),
- (TEXTNS, "bibliography-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, 'h'): (self.s_text_h, self.e_text_h),
- (TEXTNS, "illustration-index-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, 'line-break'):(self.s_text_line_break, None),
- (TEXTNS, "linenumbering-configuration"):(self.s_ignorexml, None),
- (TEXTNS, "list"):(self.s_text_list, self.e_text_list),
- (TEXTNS, "list-item"):(self.s_text_list_item, self.e_text_list_item),
- (TEXTNS, "list-level-style-bullet"):(self.s_text_list_level_style_bullet, self.e_text_list_level_style_bullet),
- (TEXTNS, "list-level-style-number"):(self.s_text_list_level_style_number, self.e_text_list_level_style_number),
- (TEXTNS, "list-style"):(None, None),
- (TEXTNS, "note"):(self.s_text_note, None),
- (TEXTNS, "note-body"):(self.s_text_note_body, self.e_text_note_body),
- (TEXTNS, "note-citation"):(None, self.e_text_note_citation),
- (TEXTNS, "notes-configuration"):(self.s_ignorexml, None),
- (TEXTNS, "object-index-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, 'p'): (self.s_text_p, self.e_text_p),
- (TEXTNS, 's'): (self.s_text_s, None),
- (TEXTNS, 'span'): (self.s_text_span, self.e_text_span),
- (TEXTNS, 'tab'): (self.s_text_tab, None),
- (TEXTNS, "table-index-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, "table-of-content-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, "user-index-source"):(self.s_text_x_source, self.e_text_x_source),
- (TEXTNS, "page-number"):(None, None),
- }
-
diff --git a/tablib/packages/odf3/odfmanifest.py b/tablib/packages/odf3/odfmanifest.py
deleted file mode 100644
index b6508c5..0000000
--- a/tablib/packages/odf3/odfmanifest.py
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-# This script lists the content of the manifest.xml file
-import zipfile
-from xml.sax import make_parser,handler
-from xml.sax.xmlreader import InputSource
-import xml.sax.saxutils
-from io import StringIO
-
-MANIFESTNS="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"
-
-#-----------------------------------------------------------------------------
-#
-# ODFMANIFESTHANDLER
-#
-#-----------------------------------------------------------------------------
-
-class ODFManifestHandler(handler.ContentHandler):
- """ The ODFManifestHandler parses a manifest file and produces a list of
- content """
-
- def __init__(self):
- self.manifest = {}
-
- # Tags
- # FIXME: Also handle encryption data
- self.elements = {
- (MANIFESTNS, 'file-entry'): (self.s_file_entry, self.donothing),
- }
-
- def handle_starttag(self, tag, method, attrs):
- method(tag,attrs)
-
- def handle_endtag(self, tag, method):
- method(tag)
-
- def startElementNS(self, tag, qname, attrs):
- method = self.elements.get(tag, (None, None))[0]
- if method:
- self.handle_starttag(tag, method, attrs)
- else:
- self.unknown_starttag(tag,attrs)
-
- def endElementNS(self, tag, qname):
- method = self.elements.get(tag, (None, None))[1]
- if method:
- self.handle_endtag(tag, method)
- else:
- self.unknown_endtag(tag)
-
- def unknown_starttag(self, tag, attrs):
- pass
-
- def unknown_endtag(self, tag):
- pass
-
- def donothing(self, tag, attrs=None):
- pass
-
- def s_file_entry(self, tag, attrs):
- m = attrs.get((MANIFESTNS, 'media-type'),"application/octet-stream")
- p = attrs.get((MANIFESTNS, 'full-path'))
- self.manifest[p] = { 'media-type':m, 'full-path':p }
-
-
-#-----------------------------------------------------------------------------
-#
-# Reading the file
-#
-#-----------------------------------------------------------------------------
-
-def manifestlist(manifestxml):
- odhandler = ODFManifestHandler()
- parser = make_parser()
- parser.setFeature(handler.feature_namespaces, 1)
- parser.setContentHandler(odhandler)
- parser.setErrorHandler(handler.ErrorHandler())
-
- inpsrc = InputSource()
- inpsrc.setByteStream(StringIO(manifestxml))
- parser.parse(inpsrc)
-
- return odhandler.manifest
-
-def odfmanifest(odtfile):
- z = zipfile.ZipFile(odtfile)
- manifest = z.read('META-INF/manifest.xml')
- z.close()
- return manifestlist(manifest)
-
-if __name__ == "__main__":
- import sys
- result = odfmanifest(sys.argv[1])
- for file in list(result.values()):
- print("%-40s %-40s" % (file['media-type'], file['full-path']))
-
diff --git a/tablib/packages/odf3/office.py b/tablib/packages/odf3/office.py
deleted file mode 100644
index eca47ad..0000000
--- a/tablib/packages/odf3/office.py
+++ /dev/null
@@ -1,104 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import OFFICENS
-from .element import Element
-from .draw import StyleRefElement
-
-# Autogenerated
-def Annotation(**args):
- return StyleRefElement(qname = (OFFICENS,'annotation'), **args)
-
-def AutomaticStyles(**args):
- return Element(qname = (OFFICENS, 'automatic-styles'), **args)
-
-def BinaryData(**args):
- return Element(qname = (OFFICENS,'binary-data'), **args)
-
-def Body(**args):
- return Element(qname = (OFFICENS, 'body'), **args)
-
-def ChangeInfo(**args):
- return Element(qname = (OFFICENS,'change-info'), **args)
-
-def Chart(**args):
- return Element(qname = (OFFICENS,'chart'), **args)
-
-def DdeSource(**args):
- return Element(qname = (OFFICENS,'dde-source'), **args)
-
-def Document(version="1.1", **args):
- return Element(qname = (OFFICENS,'document'), version=version, **args)
-
-def DocumentContent(version="1.1", **args):
- return Element(qname = (OFFICENS, 'document-content'), version=version, **args)
-
-def DocumentMeta(version="1.1", **args):
- return Element(qname = (OFFICENS, 'document-meta'), version=version, **args)
-
-def DocumentSettings(version="1.1", **args):
- return Element(qname = (OFFICENS, 'document-settings'), version=version, **args)
-
-def DocumentStyles(version="1.1", **args):
- return Element(qname = (OFFICENS, 'document-styles'), version=version, **args)
-
-def Drawing(**args):
- return Element(qname = (OFFICENS,'drawing'), **args)
-
-def EventListeners(**args):
- return Element(qname = (OFFICENS,'event-listeners'), **args)
-
-def FontFaceDecls(**args):
- return Element(qname = (OFFICENS, 'font-face-decls'), **args)
-
-def Forms(**args):
- return Element(qname = (OFFICENS,'forms'), **args)
-
-def Image(**args):
- return Element(qname = (OFFICENS,'image'), **args)
-
-def MasterStyles(**args):
- return Element(qname = (OFFICENS, 'master-styles'), **args)
-
-def Meta(**args):
- return Element(qname = (OFFICENS, 'meta'), **args)
-
-def Presentation(**args):
- return Element(qname = (OFFICENS,'presentation'), **args)
-
-def Script(**args):
- return Element(qname = (OFFICENS, 'script'), **args)
-
-def Scripts(**args):
- return Element(qname = (OFFICENS, 'scripts'), **args)
-
-def Settings(**args):
- return Element(qname = (OFFICENS, 'settings'), **args)
-
-def Spreadsheet(**args):
- return Element(qname = (OFFICENS, 'spreadsheet'), **args)
-
-def Styles(**args):
- return Element(qname = (OFFICENS, 'styles'), **args)
-
-def Text(**args):
- return Element(qname = (OFFICENS, 'text'), **args)
-
-# Autogenerated end
diff --git a/tablib/packages/odf3/opendocument.py b/tablib/packages/odf3/opendocument.py
deleted file mode 100644
index 006cd08..0000000
--- a/tablib/packages/odf3/opendocument.py
+++ /dev/null
@@ -1,654 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2010 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-__doc__="""Use OpenDocument to generate your documents."""
-
-import zipfile, time, sys, mimetypes, copy
-from io import StringIO
-from .namespaces import *
-from . import manifest, meta
-from .office import *
-from . import element
-from .attrconverters import make_NCName
-from xml.sax.xmlreader import InputSource
-from .odfmanifest import manifestlist
-
-__version__= TOOLSVERSION
-
-_XMLPROLOGUE = "<?xml version='1.0' encoding='UTF-8'?>\n"
-
-UNIXPERMS = 0o100644 << 16 # -rw-r--r--
-
-IS_FILENAME = 0
-IS_IMAGE = 1
-# We need at least Python 2.2
-assert sys.version_info[0]>=2
-
-#sys.setrecursionlimit(100)
-#The recursion limit is set conservative so mistakes like
-# s=content() s.addElement(s) won't eat up too much processor time.
-
-odmimetypes = {
- 'application/vnd.oasis.opendocument.text': '.odt',
- 'application/vnd.oasis.opendocument.text-template': '.ott',
- 'application/vnd.oasis.opendocument.graphics': '.odg',
- 'application/vnd.oasis.opendocument.graphics-template': '.otg',
- 'application/vnd.oasis.opendocument.presentation': '.odp',
- 'application/vnd.oasis.opendocument.presentation-template': '.otp',
- 'application/vnd.oasis.opendocument.spreadsheet': '.ods',
- 'application/vnd.oasis.opendocument.spreadsheet-template': '.ots',
- 'application/vnd.oasis.opendocument.chart': '.odc',
- 'application/vnd.oasis.opendocument.chart-template': '.otc',
- 'application/vnd.oasis.opendocument.image': '.odi',
- 'application/vnd.oasis.opendocument.image-template': '.oti',
- 'application/vnd.oasis.opendocument.formula': '.odf',
- 'application/vnd.oasis.opendocument.formula-template': '.otf',
- 'application/vnd.oasis.opendocument.text-master': '.odm',
- 'application/vnd.oasis.opendocument.text-web': '.oth',
-}
-
-class OpaqueObject:
- def __init__(self, filename, mediatype, content=None):
- self.mediatype = mediatype
- self.filename = filename
- self.content = content
-
-class OpenDocument:
- """ A class to hold the content of an OpenDocument document
- Use the xml method to write the XML
- source to the screen or to a file
- d = OpenDocument(mimetype)
- fd.write(d.xml())
- """
- thumbnail = None
-
- def __init__(self, mimetype, add_generator=True):
- self.mimetype = mimetype
- self.childobjects = []
- self._extra = []
- self.folder = "" # Always empty for toplevel documents
- self.topnode = Document(mimetype=self.mimetype)
- self.topnode.ownerDocument = self
-
- self.clear_caches()
-
- self.Pictures = {}
- self.meta = Meta()
- self.topnode.addElement(self.meta)
- if add_generator:
- self.meta.addElement(meta.Generator(text=TOOLSVERSION))
- self.scripts = Scripts()
- self.topnode.addElement(self.scripts)
- self.fontfacedecls = FontFaceDecls()
- self.topnode.addElement(self.fontfacedecls)
- self.settings = Settings()
- self.topnode.addElement(self.settings)
- self.styles = Styles()
- self.topnode.addElement(self.styles)
- self.automaticstyles = AutomaticStyles()
- self.topnode.addElement(self.automaticstyles)
- self.masterstyles = MasterStyles()
- self.topnode.addElement(self.masterstyles)
- self.body = Body()
- self.topnode.addElement(self.body)
-
- def rebuild_caches(self, node=None):
- if node is None: node = self.topnode
- self.build_caches(node)
- for e in node.childNodes:
- if e.nodeType == element.Node.ELEMENT_NODE:
- self.rebuild_caches(e)
-
- def clear_caches(self):
- self.element_dict = {}
- self._styles_dict = {}
- self._styles_ooo_fix = {}
-
- def build_caches(self, element):
- """ Called from element.py
- """
- if element.qname not in self.element_dict:
- self.element_dict[element.qname] = []
- self.element_dict[element.qname].append(element)
- if element.qname == (STYLENS, 'style'):
- self.__register_stylename(element) # Add to style dictionary
- styleref = element.getAttrNS(TEXTNS,'style-name')
- if styleref is not None and styleref in self._styles_ooo_fix:
- element.setAttrNS(TEXTNS,'style-name', self._styles_ooo_fix[styleref])
-
- def __register_stylename(self, element):
- ''' Register a style. But there are three style dictionaries:
- office:styles, office:automatic-styles and office:master-styles
- Chapter 14
- '''
- name = element.getAttrNS(STYLENS, 'name')
- if name is None:
- return
- if element.parentNode.qname in ((OFFICENS,'styles'), (OFFICENS,'automatic-styles')):
- if name in self._styles_dict:
- newname = 'M'+name # Rename style
- self._styles_ooo_fix[name] = newname
- # From here on all references to the old name will refer to the new one
- name = newname
- element.setAttrNS(STYLENS, 'name', name)
- self._styles_dict[name] = element
-
- def toXml(self, filename=''):
- xml=StringIO()
- xml.write(_XMLPROLOGUE)
- self.body.toXml(0, xml)
- if not filename:
- return xml.getvalue()
- else:
- f=file(filename,'w')
- f.write(xml.getvalue())
- f.close()
-
- def xml(self):
- """ Generates the full document as an XML file
- Always written as a bytestream in UTF-8 encoding
- """
- self.__replaceGenerator()
- xml=StringIO()
- xml.write(_XMLPROLOGUE)
- self.topnode.toXml(0, xml)
- return xml.getvalue()
-
-
- def contentxml(self):
- """ Generates the content.xml file
- Always written as a bytestream in UTF-8 encoding
- """
- xml=StringIO()
- xml.write(_XMLPROLOGUE)
- x = DocumentContent()
- x.write_open_tag(0, xml)
- if self.scripts.hasChildNodes():
- self.scripts.toXml(1, xml)
- if self.fontfacedecls.hasChildNodes():
- self.fontfacedecls.toXml(1, xml)
- a = AutomaticStyles()
- stylelist = self._used_auto_styles([self.styles, self.automaticstyles, self.body])
- if len(stylelist) > 0:
- a.write_open_tag(1, xml)
- for s in stylelist:
- s.toXml(2, xml)
- a.write_close_tag(1, xml)
- else:
- a.toXml(1, xml)
- self.body.toXml(1, xml)
- x.write_close_tag(0, xml)
- return xml.getvalue()
-
- def __manifestxml(self):
- """ Generates the manifest.xml file
- The self.manifest isn't avaible unless the document is being saved
- """
- xml=StringIO()
- xml.write(_XMLPROLOGUE)
- self.manifest.toXml(0,xml)
- return xml.getvalue()
-
- def metaxml(self):
- """ Generates the meta.xml file """
- self.__replaceGenerator()
- x = DocumentMeta()
- x.addElement(self.meta)
- xml=StringIO()
- xml.write(_XMLPROLOGUE)
- x.toXml(0,xml)
- return xml.getvalue()
-
- def settingsxml(self):
- """ Generates the settings.xml file """
- x = DocumentSettings()
- x.addElement(self.settings)
- xml=StringIO()
- xml.write(_XMLPROLOGUE)
- x.toXml(0,xml)
- return xml.getvalue()
-
- def _parseoneelement(self, top, stylenamelist):
- """ Finds references to style objects in master-styles
- and add the style name to the style list if not already there.
- Recursive
- """
- for e in top.childNodes:
- if e.nodeType == element.Node.ELEMENT_NODE:
- for styleref in ( (DRAWNS,'style-name'),
- (DRAWNS,'text-style-name'),
- (PRESENTATIONNS,'style-name'),
- (STYLENS,'data-style-name'),
- (STYLENS,'list-style-name'),
- (STYLENS,'page-layout-name'),
- (STYLENS,'style-name'),
- (TABLENS,'default-cell-style-name'),
- (TABLENS,'style-name'),
- (TEXTNS,'style-name') ):
- if e.getAttrNS(styleref[0],styleref[1]):
- stylename = e.getAttrNS(styleref[0],styleref[1])
- if stylename not in stylenamelist:
- stylenamelist.append(stylename)
- stylenamelist = self._parseoneelement(e, stylenamelist)
- return stylenamelist
-
- def _used_auto_styles(self, segments):
- """ Loop through the masterstyles elements, and find the automatic
- styles that are used. These will be added to the automatic-styles
- element in styles.xml
- """
- stylenamelist = []
- for top in segments:
- stylenamelist = self._parseoneelement(top, stylenamelist)
- stylelist = []
- for e in self.automaticstyles.childNodes:
- if e.getAttrNS(STYLENS,'name') in stylenamelist:
- stylelist.append(e)
- return stylelist
-
- def stylesxml(self):
- """ Generates the styles.xml file """
- xml=StringIO()
- xml.write(_XMLPROLOGUE)
- x = DocumentStyles()
- x.write_open_tag(0, xml)
- if self.fontfacedecls.hasChildNodes():
- self.fontfacedecls.toXml(1, xml)
- self.styles.toXml(1, xml)
- a = AutomaticStyles()
- a.write_open_tag(1, xml)
- for s in self._used_auto_styles([self.masterstyles]):
- s.toXml(2, xml)
- a.write_close_tag(1, xml)
- if self.masterstyles.hasChildNodes():
- self.masterstyles.toXml(1, xml)
- x.write_close_tag(0, xml)
- return xml.getvalue()
-
- def addPicture(self, filename, mediatype=None, content=None):
- """ Add a picture
- It uses the same convention as OOo, in that it saves the picture in
- the zipfile in the subdirectory 'Pictures'
- If passed a file ptr, mediatype must be set
- """
- if content is None:
- if mediatype is None:
- mediatype, encoding = mimetypes.guess_type(filename)
- if mediatype is None:
- mediatype = ''
- try: ext = filename[filename.rindex('.'):]
- except: ext=''
- else:
- ext = mimetypes.guess_extension(mediatype)
- manifestfn = "Pictures/%0.0f%s" % ((time.time()*10000000000), ext)
- self.Pictures[manifestfn] = (IS_FILENAME, filename, mediatype)
- else:
- manifestfn = filename
- self.Pictures[manifestfn] = (IS_IMAGE, content, mediatype)
- return manifestfn
-
- def addPictureFromFile(self, filename, mediatype=None):
- """ Add a picture
- It uses the same convention as OOo, in that it saves the picture in
- the zipfile in the subdirectory 'Pictures'.
- If mediatype is not given, it will be guessed from the filename
- extension.
- """
- if mediatype is None:
- mediatype, encoding = mimetypes.guess_type(filename)
- if mediatype is None:
- mediatype = ''
- try: ext = filename[filename.rindex('.'):]
- except ValueError: ext=''
- else:
- ext = mimetypes.guess_extension(mediatype)
- manifestfn = "Pictures/%0.0f%s" % ((time.time()*10000000000), ext)
- self.Pictures[manifestfn] = (IS_FILENAME, filename, mediatype)
- return manifestfn
-
- def addPictureFromString(self, content, mediatype):
- """ Add a picture
- It uses the same convention as OOo, in that it saves the picture in
- the zipfile in the subdirectory 'Pictures'. The content variable
- is a string that contains the binary image data. The mediatype
- indicates the image format.
- """
- ext = mimetypes.guess_extension(mediatype)
- manifestfn = "Pictures/%0.0f%s" % ((time.time()*10000000000), ext)
- self.Pictures[manifestfn] = (IS_IMAGE, content, mediatype)
- return manifestfn
-
- def addThumbnail(self, filecontent=None):
- """ Add a fixed thumbnail
- The thumbnail in the library is big, so this is pretty useless.
- """
- if filecontent is None:
- from . import thumbnail
- self.thumbnail = thumbnail.thumbnail()
- else:
- self.thumbnail = filecontent
-
- def addObject(self, document, objectname=None):
- """ Adds an object (subdocument). The object must be an OpenDocument class
- The return value will be the folder in the zipfile the object is stored in
- """
- self.childobjects.append(document)
- if objectname is None:
- document.folder = "%s/Object %d" % (self.folder, len(self.childobjects))
- else:
- document.folder = objectname
- return ".%s" % document.folder
-
- def _savePictures(self, object, folder):
- hasPictures = False
- for arcname, picturerec in list(object.Pictures.items()):
- what_it_is, fileobj, mediatype = picturerec
- self.manifest.addElement(manifest.FileEntry(fullpath="%s%s" % ( folder ,arcname), mediatype=mediatype))
- hasPictures = True
- if what_it_is == IS_FILENAME:
- self._z.write(fileobj, arcname, zipfile.ZIP_STORED)
- else:
- zi = zipfile.ZipInfo(str(arcname), self._now)
- zi.compress_type = zipfile.ZIP_STORED
- zi.external_attr = UNIXPERMS
- self._z.writestr(zi, fileobj)
- # According to section 17.7.3 in ODF 1.1, the pictures folder should not have a manifest entry
-# if hasPictures:
-# self.manifest.addElement(manifest.FileEntry(fullpath="%sPictures/" % folder, mediatype=""))
- # Look in subobjects
- subobjectnum = 1
- for subobject in object.childobjects:
- self._savePictures(subobject,'%sObject %d/' % (folder, subobjectnum))
- subobjectnum += 1
-
- def __replaceGenerator(self):
- """ Section 3.1.1: The application MUST NOT export the original identifier
- belonging to the application that created the document.
- """
- for m in self.meta.childNodes[:]:
- if m.qname == (METANS, 'generator'):
- self.meta.removeChild(m)
- self.meta.addElement(meta.Generator(text=TOOLSVERSION))
-
- def save(self, outputfile, addsuffix=False):
- """ Save the document under the filename.
- If the filename is '-' then save to stdout
- """
- if outputfile == '-':
- outputfp = zipfile.ZipFile(sys.stdout,"w")
- else:
- if addsuffix:
- outputfile = outputfile + odmimetypes.get(self.mimetype,'.xxx')
- outputfp = zipfile.ZipFile(outputfile, "w")
- self.__zipwrite(outputfp)
- outputfp.close()
-
- def write(self, outputfp):
- """ User API to write the ODF file to an open file descriptor
- Writes the ZIP format
- """
- zipoutputfp = zipfile.ZipFile(outputfp,"w")
- self.__zipwrite(zipoutputfp)
-
- def __zipwrite(self, outputfp):
- """ Write the document to an open file pointer
- This is where the real work is done
- """
- self._z = outputfp
- self._now = time.localtime()[:6]
- self.manifest = manifest.Manifest()
-
- # Write mimetype
- zi = zipfile.ZipInfo('mimetype', self._now)
- zi.compress_type = zipfile.ZIP_STORED
- zi.external_attr = UNIXPERMS
- self._z.writestr(zi, self.mimetype)
-
- self._saveXmlObjects(self,"")
-
- # Write pictures
- self._savePictures(self,"")
-
- # Write the thumbnail
- if self.thumbnail is not None:
- self.manifest.addElement(manifest.FileEntry(fullpath="Thumbnails/", mediatype=''))
- self.manifest.addElement(manifest.FileEntry(fullpath="Thumbnails/thumbnail.png", mediatype=''))
- zi = zipfile.ZipInfo("Thumbnails/thumbnail.png", self._now)
- zi.compress_type = zipfile.ZIP_DEFLATED
- zi.external_attr = UNIXPERMS
- self._z.writestr(zi, self.thumbnail)
-
- # Write any extra files
- for op in self._extra:
- if op.filename == "META-INF/documentsignatures.xml": continue # Don't save signatures
- self.manifest.addElement(manifest.FileEntry(fullpath=op.filename, mediatype=op.mediatype))
- zi = zipfile.ZipInfo(op.filename.encode('utf-8'), self._now)
- zi.compress_type = zipfile.ZIP_DEFLATED
- zi.external_attr = UNIXPERMS
- if op.content is not None:
- self._z.writestr(zi, op.content)
- # Write manifest
- zi = zipfile.ZipInfo("META-INF/manifest.xml", self._now)
- zi.compress_type = zipfile.ZIP_DEFLATED
- zi.external_attr = UNIXPERMS
- self._z.writestr(zi, self.__manifestxml() )
- del self._z
- del self._now
- del self.manifest
-
-
- def _saveXmlObjects(self, object, folder):
- if self == object:
- self.manifest.addElement(manifest.FileEntry(fullpath="/", mediatype=object.mimetype))
- else:
- self.manifest.addElement(manifest.FileEntry(fullpath=folder, mediatype=object.mimetype))
- # Write styles
- self.manifest.addElement(manifest.FileEntry(fullpath="%sstyles.xml" % folder, mediatype="text/xml"))
- zi = zipfile.ZipInfo("%sstyles.xml" % folder, self._now)
- zi.compress_type = zipfile.ZIP_DEFLATED
- zi.external_attr = UNIXPERMS
- self._z.writestr(zi, object.stylesxml() )
-
- # Write content
- self.manifest.addElement(manifest.FileEntry(fullpath="%scontent.xml" % folder, mediatype="text/xml"))
- zi = zipfile.ZipInfo("%scontent.xml" % folder, self._now)
- zi.compress_type = zipfile.ZIP_DEFLATED
- zi.external_attr = UNIXPERMS
- self._z.writestr(zi, object.contentxml() )
-
- # Write settings
- if object.settings.hasChildNodes():
- self.manifest.addElement(manifest.FileEntry(fullpath="%ssettings.xml" % folder, mediatype="text/xml"))
- zi = zipfile.ZipInfo("%ssettings.xml" % folder, self._now)
- zi.compress_type = zipfile.ZIP_DEFLATED
- zi.external_attr = UNIXPERMS
- self._z.writestr(zi, object.settingsxml() )
-
- # Write meta
- if self == object:
- self.manifest.addElement(manifest.FileEntry(fullpath="meta.xml", mediatype="text/xml"))
- zi = zipfile.ZipInfo("meta.xml", self._now)
- zi.compress_type = zipfile.ZIP_DEFLATED
- zi.external_attr = UNIXPERMS
- self._z.writestr(zi, object.metaxml() )
-
- # Write subobjects
- subobjectnum = 1
- for subobject in object.childobjects:
- self._saveXmlObjects(subobject, '%sObject %d/' % (folder, subobjectnum))
- subobjectnum += 1
-
-# Document's DOM methods
- def createElement(self, element):
- """ Inconvenient interface to create an element, but follows XML-DOM.
- Does not allow attributes as argument, therefore can't check grammar.
- """
- return element(check_grammar=False)
-
- def createTextNode(self, data):
- """ Method to create a text node """
- return element.Text(data)
-
- def createCDATASection(self, data):
- """ Method to create a CDATA section """
- return element.CDATASection(cdata)
-
- def getMediaType(self):
- """ Returns the media type """
- return self.mimetype
-
- def getStyleByName(self, name):
- """ Finds a style object based on the name """
- ncname = make_NCName(name)
- if self._styles_dict == {}:
- self.rebuild_caches()
- return self._styles_dict.get(ncname, None)
-
- def getElementsByType(self, element):
- """ Gets elements based on the type, which is function from text.py, draw.py etc. """
- obj = element(check_grammar=False)
- if self.element_dict == {}:
- self.rebuild_caches()
- return self.element_dict.get(obj.qname, [])
-
-# Convenience functions
-def OpenDocumentChart():
- """ Creates a chart document """
- doc = OpenDocument('application/vnd.oasis.opendocument.chart')
- doc.chart = Chart()
- doc.body.addElement(doc.chart)
- return doc
-
-def OpenDocumentDrawing():
- """ Creates a drawing document """
- doc = OpenDocument('application/vnd.oasis.opendocument.graphics')
- doc.drawing = Drawing()
- doc.body.addElement(doc.drawing)
- return doc
-
-def OpenDocumentImage():
- """ Creates an image document """
- doc = OpenDocument('application/vnd.oasis.opendocument.image')
- doc.image = Image()
- doc.body.addElement(doc.image)
- return doc
-
-def OpenDocumentPresentation():
- """ Creates a presentation document """
- doc = OpenDocument('application/vnd.oasis.opendocument.presentation')
- doc.presentation = Presentation()
- doc.body.addElement(doc.presentation)
- return doc
-
-def OpenDocumentSpreadsheet():
- """ Creates a spreadsheet document """
- doc = OpenDocument('application/vnd.oasis.opendocument.spreadsheet')
- doc.spreadsheet = Spreadsheet()
- doc.body.addElement(doc.spreadsheet)
- return doc
-
-def OpenDocumentText():
- """ Creates a text document """
- doc = OpenDocument('application/vnd.oasis.opendocument.text')
- doc.text = Text()
- doc.body.addElement(doc.text)
- return doc
-
-def OpenDocumentTextMaster():
- """ Creates a text master document """
- doc = OpenDocument('application/vnd.oasis.opendocument.text-master')
- doc.text = Text()
- doc.body.addElement(doc.text)
- return doc
-
-def __loadxmlparts(z, manifest, doc, objectpath):
- from .load import LoadParser
- from xml.sax import make_parser, handler
-
- for xmlfile in (objectpath+'settings.xml', objectpath+'meta.xml', objectpath+'content.xml', objectpath+'styles.xml'):
- if xmlfile not in manifest:
- continue
- try:
- xmlpart = z.read(xmlfile)
- doc._parsing = xmlfile
-
- parser = make_parser()
- parser.setFeature(handler.feature_namespaces, 1)
- parser.setContentHandler(LoadParser(doc))
- parser.setErrorHandler(handler.ErrorHandler())
-
- inpsrc = InputSource()
- inpsrc.setByteStream(StringIO(xmlpart))
- parser.parse(inpsrc)
- del doc._parsing
- except KeyError as v: pass
-
-def load(odffile):
- """ Load an ODF file into memory
- Returns a reference to the structure
- """
- z = zipfile.ZipFile(odffile)
- mimetype = z.read('mimetype')
- doc = OpenDocument(mimetype, add_generator=False)
-
- # Look in the manifest file to see if which of the four files there are
- manifestpart = z.read('META-INF/manifest.xml')
- manifest = manifestlist(manifestpart)
- __loadxmlparts(z, manifest, doc, '')
- for mentry,mvalue in list(manifest.items()):
- if mentry[:9] == "Pictures/" and len(mentry) > 9:
- doc.addPicture(mvalue['full-path'], mvalue['media-type'], z.read(mentry))
- elif mentry == "Thumbnails/thumbnail.png":
- doc.addThumbnail(z.read(mentry))
- elif mentry in ('settings.xml', 'meta.xml', 'content.xml', 'styles.xml'):
- pass
- # Load subobjects into structure
- elif mentry[:7] == "Object " and len(mentry) < 11 and mentry[-1] == "/":
- subdoc = OpenDocument(mvalue['media-type'], add_generator=False)
- doc.addObject(subdoc, "/" + mentry[:-1])
- __loadxmlparts(z, manifest, subdoc, mentry)
- elif mentry[:7] == "Object ":
- pass # Don't load subobjects as opaque objects
- else:
- if mvalue['full-path'][-1] == '/':
- doc._extra.append(OpaqueObject(mvalue['full-path'], mvalue['media-type'], None))
- else:
- doc._extra.append(OpaqueObject(mvalue['full-path'], mvalue['media-type'], z.read(mentry)))
- # Add the SUN junk here to the struct somewhere
- # It is cached data, so it can be out-of-date
- z.close()
- b = doc.getElementsByType(Body)
- if mimetype[:39] == 'application/vnd.oasis.opendocument.text':
- doc.text = b[0].firstChild
- elif mimetype[:43] == 'application/vnd.oasis.opendocument.graphics':
- doc.graphics = b[0].firstChild
- elif mimetype[:47] == 'application/vnd.oasis.opendocument.presentation':
- doc.presentation = b[0].firstChild
- elif mimetype[:46] == 'application/vnd.oasis.opendocument.spreadsheet':
- doc.spreadsheet = b[0].firstChild
- elif mimetype[:40] == 'application/vnd.oasis.opendocument.chart':
- doc.chart = b[0].firstChild
- elif mimetype[:40] == 'application/vnd.oasis.opendocument.image':
- doc.image = b[0].firstChild
- elif mimetype[:42] == 'application/vnd.oasis.opendocument.formula':
- doc.formula = b[0].firstChild
- return doc
-
-# vim: set expandtab sw=4 :
diff --git a/tablib/packages/odf3/presentation.py b/tablib/packages/odf3/presentation.py
deleted file mode 100644
index 71c3d83..0000000
--- a/tablib/packages/odf3/presentation.py
+++ /dev/null
@@ -1,85 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import PRESENTATIONNS
-from .element import Element
-
-# ODF 1.0 section 9.6 and 9.7
-# Autogenerated
-def AnimationGroup(**args):
- return Element(qname = (PRESENTATIONNS,'animation-group'), **args)
-
-def Animations(**args):
- return Element(qname = (PRESENTATIONNS,'animations'), **args)
-
-def DateTime(**args):
- return Element(qname = (PRESENTATIONNS,'date-time'), **args)
-
-def DateTimeDecl(**args):
- return Element(qname = (PRESENTATIONNS,'date-time-decl'), **args)
-
-def Dim(**args):
- return Element(qname = (PRESENTATIONNS,'dim'), **args)
-
-def EventListener(**args):
- return Element(qname = (PRESENTATIONNS,'event-listener'), **args)
-
-def Footer(**args):
- return Element(qname = (PRESENTATIONNS,'footer'), **args)
-
-def FooterDecl(**args):
- return Element(qname = (PRESENTATIONNS,'footer-decl'), **args)
-
-def Header(**args):
- return Element(qname = (PRESENTATIONNS,'header'), **args)
-
-def HeaderDecl(**args):
- return Element(qname = (PRESENTATIONNS,'header-decl'), **args)
-
-def HideShape(**args):
- return Element(qname = (PRESENTATIONNS,'hide-shape'), **args)
-
-def HideText(**args):
- return Element(qname = (PRESENTATIONNS,'hide-text'), **args)
-
-def Notes(**args):
- return Element(qname = (PRESENTATIONNS,'notes'), **args)
-
-def Placeholder(**args):
- return Element(qname = (PRESENTATIONNS,'placeholder'), **args)
-
-def Play(**args):
- return Element(qname = (PRESENTATIONNS,'play'), **args)
-
-def Settings(**args):
- return Element(qname = (PRESENTATIONNS,'settings'), **args)
-
-def Show(**args):
- return Element(qname = (PRESENTATIONNS,'show'), **args)
-
-def ShowShape(**args):
- return Element(qname = (PRESENTATIONNS,'show-shape'), **args)
-
-def ShowText(**args):
- return Element(qname = (PRESENTATIONNS,'show-text'), **args)
-
-def Sound(**args):
- return Element(qname = (PRESENTATIONNS,'sound'), **args)
-
diff --git a/tablib/packages/odf3/script.py b/tablib/packages/odf3/script.py
deleted file mode 100644
index 210e4eb..0000000
--- a/tablib/packages/odf3/script.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import SCRIPTNS
-from .element import Element
-
-# ODF 1.0 section 12.4.1
-# The <script:event-listener> element binds an event to a macro.
-
-# Autogenerated
-def EventListener(**args):
- return Element(qname = (SCRIPTNS,'event-listener'), **args)
-
diff --git a/tablib/packages/odf3/style.py b/tablib/packages/odf3/style.py
deleted file mode 100644
index ebaf3fb..0000000
--- a/tablib/packages/odf3/style.py
+++ /dev/null
@@ -1,148 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import STYLENS
-from .element import Element
-
-def StyleElement(**args):
- e = Element(**args)
- if args.get('check_grammar', True) == True:
- if 'displayname' not in args:
- e.setAttrNS(STYLENS,'display-name', args.get('name'))
- return e
-
-# Autogenerated
-def BackgroundImage(**args):
- return Element(qname = (STYLENS,'background-image'), **args)
-
-def ChartProperties(**args):
- return Element(qname = (STYLENS,'chart-properties'), **args)
-
-def Column(**args):
- return Element(qname = (STYLENS,'column'), **args)
-
-def ColumnSep(**args):
- return Element(qname = (STYLENS,'column-sep'), **args)
-
-def Columns(**args):
- return Element(qname = (STYLENS,'columns'), **args)
-
-def DefaultStyle(**args):
- return Element(qname = (STYLENS,'default-style'), **args)
-
-def DrawingPageProperties(**args):
- return Element(qname = (STYLENS,'drawing-page-properties'), **args)
-
-def DropCap(**args):
- return Element(qname = (STYLENS,'drop-cap'), **args)
-
-def FontFace(**args):
- return Element(qname = (STYLENS,'font-face'), **args)
-
-def Footer(**args):
- return Element(qname = (STYLENS,'footer'), **args)
-
-def FooterLeft(**args):
- return Element(qname = (STYLENS,'footer-left'), **args)
-
-def FooterStyle(**args):
- return Element(qname = (STYLENS,'footer-style'), **args)
-
-def FootnoteSep(**args):
- return Element(qname = (STYLENS,'footnote-sep'), **args)
-
-def GraphicProperties(**args):
- return Element(qname = (STYLENS,'graphic-properties'), **args)
-
-def HandoutMaster(**args):
- return Element(qname = (STYLENS,'handout-master'), **args)
-
-def Header(**args):
- return Element(qname = (STYLENS,'header'), **args)
-
-def HeaderFooterProperties(**args):
- return Element(qname = (STYLENS,'header-footer-properties'), **args)
-
-def HeaderLeft(**args):
- return Element(qname = (STYLENS,'header-left'), **args)
-
-def HeaderStyle(**args):
- return Element(qname = (STYLENS,'header-style'), **args)
-
-def ListLevelProperties(**args):
- return Element(qname = (STYLENS,'list-level-properties'), **args)
-
-def Map(**args):
- return Element(qname = (STYLENS,'map'), **args)
-
-def MasterPage(**args):
- return StyleElement(qname = (STYLENS,'master-page'), **args)
-
-def PageLayout(**args):
- return Element(qname = (STYLENS,'page-layout'), **args)
-
-def PageLayoutProperties(**args):
- return Element(qname = (STYLENS,'page-layout-properties'), **args)
-
-def ParagraphProperties(**args):
- return Element(qname = (STYLENS,'paragraph-properties'), **args)
-
-def PresentationPageLayout(**args):
- return StyleElement(qname = (STYLENS,'presentation-page-layout'), **args)
-
-def RegionCenter(**args):
- return Element(qname = (STYLENS,'region-center'), **args)
-
-def RegionLeft(**args):
- return Element(qname = (STYLENS,'region-left'), **args)
-
-def RegionRight(**args):
- return Element(qname = (STYLENS,'region-right'), **args)
-
-def RubyProperties(**args):
- return Element(qname = (STYLENS,'ruby-properties'), **args)
-
-def SectionProperties(**args):
- return Element(qname = (STYLENS,'section-properties'), **args)
-
-def Style(**args):
- return StyleElement(qname = (STYLENS,'style'), **args)
-
-def TabStop(**args):
- return Element(qname = (STYLENS,'tab-stop'), **args)
-
-def TabStops(**args):
- return Element(qname = (STYLENS,'tab-stops'), **args)
-
-def TableCellProperties(**args):
- return Element(qname = (STYLENS,'table-cell-properties'), **args)
-
-def TableColumnProperties(**args):
- return Element(qname = (STYLENS,'table-column-properties'), **args)
-
-def TableProperties(**args):
- return Element(qname = (STYLENS,'table-properties'), **args)
-
-def TableRowProperties(**args):
- return Element(qname = (STYLENS,'table-row-properties'), **args)
-
-def TextProperties(**args):
- return Element(qname = (STYLENS,'text-properties'), **args)
-
diff --git a/tablib/packages/odf3/svg.py b/tablib/packages/odf3/svg.py
deleted file mode 100644
index 1881dbf..0000000
--- a/tablib/packages/odf3/svg.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import SVGNS
-from .element import Element
-from .draw import DrawElement
-
-# Autogenerated
-def DefinitionSrc(**args):
- return Element(qname = (SVGNS,'definition-src'), **args)
-
-def Desc(**args):
- return Element(qname = (SVGNS,'desc'), **args)
-
-def FontFaceFormat(**args):
- return Element(qname = (SVGNS,'font-face-format'), **args)
-
-def FontFaceName(**args):
- return Element(qname = (SVGNS,'font-face-name'), **args)
-
-def FontFaceSrc(**args):
- return Element(qname = (SVGNS,'font-face-src'), **args)
-
-def FontFaceUri(**args):
- return Element(qname = (SVGNS,'font-face-uri'), **args)
-
-def Lineargradient(**args):
- return DrawElement(qname = (SVGNS,'linearGradient'), **args)
-
-def Radialgradient(**args):
- return DrawElement(qname = (SVGNS,'radialGradient'), **args)
-
-def Stop(**args):
- return Element(qname = (SVGNS,'stop'), **args)
-
-def Title(**args):
- return Element(qname = (SVGNS,'title'), **args)
diff --git a/tablib/packages/odf3/table.py b/tablib/packages/odf3/table.py
deleted file mode 100644
index 5d27881..0000000
--- a/tablib/packages/odf3/table.py
+++ /dev/null
@@ -1,307 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import TABLENS
-from .element import Element
-
-
-# Autogenerated
-def Body(**args):
- return Element(qname = (TABLENS,'body'), **args)
-
-def CalculationSettings(**args):
- return Element(qname = (TABLENS,'calculation-settings'), **args)
-
-def CellAddress(**args):
- return Element(qname = (TABLENS,'cell-address'), **args)
-
-def CellContentChange(**args):
- return Element(qname = (TABLENS,'cell-content-change'), **args)
-
-def CellContentDeletion(**args):
- return Element(qname = (TABLENS,'cell-content-deletion'), **args)
-
-def CellRangeSource(**args):
- return Element(qname = (TABLENS,'cell-range-source'), **args)
-
-def ChangeDeletion(**args):
- return Element(qname = (TABLENS,'change-deletion'), **args)
-
-def ChangeTrackTableCell(**args):
- return Element(qname = (TABLENS,'change-track-table-cell'), **args)
-
-def Consolidation(**args):
- return Element(qname = (TABLENS,'consolidation'), **args)
-
-def ContentValidation(**args):
- return Element(qname = (TABLENS,'content-validation'), **args)
-
-def ContentValidations(**args):
- return Element(qname = (TABLENS,'content-validations'), **args)
-
-def CoveredTableCell(**args):
- return Element(qname = (TABLENS,'covered-table-cell'), **args)
-
-def CutOffs(**args):
- return Element(qname = (TABLENS,'cut-offs'), **args)
-
-def DataPilotDisplayInfo(**args):
- return Element(qname = (TABLENS,'data-pilot-display-info'), **args)
-
-def DataPilotField(**args):
- return Element(qname = (TABLENS,'data-pilot-field'), **args)
-
-def DataPilotFieldReference(**args):
- return Element(qname = (TABLENS,'data-pilot-field-reference'), **args)
-
-def DataPilotGroup(**args):
- return Element(qname = (TABLENS,'data-pilot-group'), **args)
-
-def DataPilotGroupMember(**args):
- return Element(qname = (TABLENS,'data-pilot-group-member'), **args)
-
-def DataPilotGroups(**args):
- return Element(qname = (TABLENS,'data-pilot-groups'), **args)
-
-def DataPilotLayoutInfo(**args):
- return Element(qname = (TABLENS,'data-pilot-layout-info'), **args)
-
-def DataPilotLevel(**args):
- return Element(qname = (TABLENS,'data-pilot-level'), **args)
-
-def DataPilotMember(**args):
- return Element(qname = (TABLENS,'data-pilot-member'), **args)
-
-def DataPilotMembers(**args):
- return Element(qname = (TABLENS,'data-pilot-members'), **args)
-
-def DataPilotSortInfo(**args):
- return Element(qname = (TABLENS,'data-pilot-sort-info'), **args)
-
-def DataPilotSubtotal(**args):
- return Element(qname = (TABLENS,'data-pilot-subtotal'), **args)
-
-def DataPilotSubtotals(**args):
- return Element(qname = (TABLENS,'data-pilot-subtotals'), **args)
-
-def DataPilotTable(**args):
- return Element(qname = (TABLENS,'data-pilot-table'), **args)
-
-def DataPilotTables(**args):
- return Element(qname = (TABLENS,'data-pilot-tables'), **args)
-
-def DatabaseRange(**args):
- return Element(qname = (TABLENS,'database-range'), **args)
-
-def DatabaseRanges(**args):
- return Element(qname = (TABLENS,'database-ranges'), **args)
-
-def DatabaseSourceQuery(**args):
- return Element(qname = (TABLENS,'database-source-query'), **args)
-
-def DatabaseSourceSql(**args):
- return Element(qname = (TABLENS,'database-source-sql'), **args)
-
-def DatabaseSourceTable(**args):
- return Element(qname = (TABLENS,'database-source-table'), **args)
-
-def DdeLink(**args):
- return Element(qname = (TABLENS,'dde-link'), **args)
-
-def DdeLinks(**args):
- return Element(qname = (TABLENS,'dde-links'), **args)
-
-def Deletion(**args):
- return Element(qname = (TABLENS,'deletion'), **args)
-
-def Deletions(**args):
- return Element(qname = (TABLENS,'deletions'), **args)
-
-def Dependencies(**args):
- return Element(qname = (TABLENS,'dependencies'), **args)
-
-def Dependency(**args):
- return Element(qname = (TABLENS,'dependency'), **args)
-
-def Detective(**args):
- return Element(qname = (TABLENS,'detective'), **args)
-
-def ErrorMacro(**args):
- return Element(qname = (TABLENS,'error-macro'), **args)
-
-def ErrorMessage(**args):
- return Element(qname = (TABLENS,'error-message'), **args)
-
-def EvenColumns(**args):
- return Element(qname = (TABLENS,'even-columns'), **args)
-
-def EvenRows(**args):
- return Element(qname = (TABLENS,'even-rows'), **args)
-
-def Filter(**args):
- return Element(qname = (TABLENS,'filter'), **args)
-
-def FilterAnd(**args):
- return Element(qname = (TABLENS,'filter-and'), **args)
-
-def FilterCondition(**args):
- return Element(qname = (TABLENS,'filter-condition'), **args)
-
-def FilterOr(**args):
- return Element(qname = (TABLENS,'filter-or'), **args)
-
-def FirstColumn(**args):
- return Element(qname = (TABLENS,'first-column'), **args)
-
-def FirstRow(**args):
- return Element(qname = (TABLENS,'first-row'), **args)
-
-def HelpMessage(**args):
- return Element(qname = (TABLENS,'help-message'), **args)
-
-def HighlightedRange(**args):
- return Element(qname = (TABLENS,'highlighted-range'), **args)
-
-def Insertion(**args):
- return Element(qname = (TABLENS,'insertion'), **args)
-
-def InsertionCutOff(**args):
- return Element(qname = (TABLENS,'insertion-cut-off'), **args)
-
-def Iteration(**args):
- return Element(qname = (TABLENS,'iteration'), **args)
-
-def LabelRange(**args):
- return Element(qname = (TABLENS,'label-range'), **args)
-
-def LabelRanges(**args):
- return Element(qname = (TABLENS,'label-ranges'), **args)
-
-def LastColumn(**args):
- return Element(qname = (TABLENS,'last-column'), **args)
-
-def LastRow(**args):
- return Element(qname = (TABLENS,'last-row'), **args)
-
-def Movement(**args):
- return Element(qname = (TABLENS,'movement'), **args)
-
-def MovementCutOff(**args):
- return Element(qname = (TABLENS,'movement-cut-off'), **args)
-
-def NamedExpression(**args):
- return Element(qname = (TABLENS,'named-expression'), **args)
-
-def NamedExpressions(**args):
- return Element(qname = (TABLENS,'named-expressions'), **args)
-
-def NamedRange(**args):
- return Element(qname = (TABLENS,'named-range'), **args)
-
-def NullDate(**args):
- return Element(qname = (TABLENS,'null-date'), **args)
-
-def OddColumns(**args):
- return Element(qname = (TABLENS,'odd-columns'), **args)
-
-def OddRows(**args):
- return Element(qname = (TABLENS,'odd-rows'), **args)
-
-def Operation(**args):
- return Element(qname = (TABLENS,'operation'), **args)
-
-def Previous(**args):
- return Element(qname = (TABLENS,'previous'), **args)
-
-def Scenario(**args):
- return Element(qname = (TABLENS,'scenario'), **args)
-
-def Shapes(**args):
- return Element(qname = (TABLENS,'shapes'), **args)
-
-def Sort(**args):
- return Element(qname = (TABLENS,'sort'), **args)
-
-def SortBy(**args):
- return Element(qname = (TABLENS,'sort-by'), **args)
-
-def SortGroups(**args):
- return Element(qname = (TABLENS,'sort-groups'), **args)
-
-def SourceCellRange(**args):
- return Element(qname = (TABLENS,'source-cell-range'), **args)
-
-def SourceRangeAddress(**args):
- return Element(qname = (TABLENS,'source-range-address'), **args)
-
-def SourceService(**args):
- return Element(qname = (TABLENS,'source-service'), **args)
-
-def SubtotalField(**args):
- return Element(qname = (TABLENS,'subtotal-field'), **args)
-
-def SubtotalRule(**args):
- return Element(qname = (TABLENS,'subtotal-rule'), **args)
-
-def SubtotalRules(**args):
- return Element(qname = (TABLENS,'subtotal-rules'), **args)
-
-def Table(**args):
- return Element(qname = (TABLENS,'table'), **args)
-
-def TableCell(**args):
- return Element(qname = (TABLENS,'table-cell'), **args)
-
-def TableColumn(**args):
- return Element(qname = (TABLENS,'table-column'), **args)
-
-def TableColumnGroup(**args):
- return Element(qname = (TABLENS,'table-column-group'), **args)
-
-def TableColumns(**args):
- return Element(qname = (TABLENS,'table-columns'), **args)
-
-def TableHeaderColumns(**args):
- return Element(qname = (TABLENS,'table-header-columns'), **args)
-
-def TableHeaderRows(**args):
- return Element(qname = (TABLENS,'table-header-rows'), **args)
-
-def TableRow(**args):
- return Element(qname = (TABLENS,'table-row'), **args)
-
-def TableRowGroup(**args):
- return Element(qname = (TABLENS,'table-row-group'), **args)
-
-def TableRows(**args):
- return Element(qname = (TABLENS,'table-rows'), **args)
-
-def TableSource(**args):
- return Element(qname = (TABLENS,'table-source'), **args)
-
-def TableTemplate(**args):
- return Element(qname = (TABLENS,'table-template'), **args)
-
-def TargetRangeAddress(**args):
- return Element(qname = (TABLENS,'target-range-address'), **args)
-
-def TrackedChanges(**args):
- return Element(qname = (TABLENS,'tracked-changes'), **args)
-
diff --git a/tablib/packages/odf3/teletype.py b/tablib/packages/odf3/teletype.py
deleted file mode 100644
index 8dc5a57..0000000
--- a/tablib/packages/odf3/teletype.py
+++ /dev/null
@@ -1,137 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# Create and extract text from ODF, handling whitespace correctly.
-# Copyright (C) 2008 J. David Eisenberg
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-
-"""
-Class for handling whitespace properly in OpenDocument.
-
-While it is possible to use getTextContent() and setTextContent()
-to extract or create ODF content, these won't extract or create
-the appropriate <text:s>, <text:tab>, or <text:line-break>
-elements. This module takes care of that problem.
-"""
-
-from odf.element import Node
-import odf.opendocument
-from odf.text import S,LineBreak,Tab
-
-class WhitespaceText(object):
-
- def __init__(self):
- self.textBuffer = []
- self.spaceCount = 0
-
- def addTextToElement(self, odfElement, s):
- """ Process an input string, inserting
- <text:tab> elements for '\t',
- <text:line-break> elements for '\n', and
- <text:s> elements for runs of more than one blank.
- These will be added to the given element.
- """
- i = 0
- ch = ' '
-
- # When we encounter a tab or newline, we can immediately
- # dump any accumulated text and then emit the appropriate
- # ODF element.
- #
- # When we encounter a space, we add it to the text buffer,
- # and then collect more spaces. If there are more spaces
- # after the first one, we dump the text buffer and then
- # then emit the appropriate <text:s> element.
-
- while i < len(s):
- ch = s[i]
- if ch == '\t':
- self._emitTextBuffer(odfElement)
- odfElement.addElement(Tab())
- i += 1
- elif ch == '\n':
- self._emitTextBuffer(odfElement);
- odfElement.addElement(LineBreak())
- i += 1
- elif ch == ' ':
- self.textBuffer.append(' ')
- i += 1
- self.spaceCount = 0
- while i < len(s) and (s[i] == ' '):
- self.spaceCount += 1
- i += 1
- if self.spaceCount > 0:
- self._emitTextBuffer(odfElement)
- self._emitSpaces(odfElement)
- else:
- self.textBuffer.append(ch)
- i += 1
-
- self._emitTextBuffer(odfElement)
-
- def _emitTextBuffer(self, odfElement):
- """ Creates a Text Node whose contents are the current textBuffer.
- Side effect: clears the text buffer.
- """
- if len(self.textBuffer) > 0:
- odfElement.addText(''.join(self.textBuffer))
- self.textBuffer = []
-
-
- def _emitSpaces(self, odfElement):
- """ Creates a <text:s> element for the current spaceCount.
- Side effect: sets spaceCount back to zero
- """
- if self.spaceCount > 0:
- spaceElement = S(c=self.spaceCount)
- odfElement.addElement(spaceElement)
- self.spaceCount = 0
-
-def addTextToElement(odfElement, s):
- wst = WhitespaceText()
- wst.addTextToElement(odfElement, s)
-
-def extractText(odfElement):
- """ Extract text content from an Element, with whitespace represented
- properly. Returns the text, with tabs, spaces, and newlines
- correctly evaluated. This method recursively descends through the
- children of the given element, accumulating text and "unwrapping"
- <text:s>, <text:tab>, and <text:line-break> elements along the way.
- """
- result = [];
-
- if len(odfElement.childNodes) != 0:
- for child in odfElement.childNodes:
- if child.nodeType == Node.TEXT_NODE:
- result.append(child.data)
- elif child.nodeType == Node.ELEMENT_NODE:
- subElement = child
- tagName = subElement.qname;
- if tagName == ("urn:oasis:names:tc:opendocument:xmlns:text:1.0", "line-break"):
- result.append("\n")
- elif tagName == ("urn:oasis:names:tc:opendocument:xmlns:text:1.0", "tab"):
- result.append("\t")
- elif tagName == ("urn:oasis:names:tc:opendocument:xmlns:text:1.0", "s"):
- c = subElement.getAttribute('c')
- if c:
- spaceCount = int(c)
- else:
- spaceCount = 1
-
- result.append(" " * spaceCount)
- else:
- result.append(extractText(subElement))
- return ''.join(result)
diff --git a/tablib/packages/odf3/text.py b/tablib/packages/odf3/text.py
deleted file mode 100644
index 9191fb7..0000000
--- a/tablib/packages/odf3/text.py
+++ /dev/null
@@ -1,562 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import TEXTNS
-from .element import Element
-from .style import StyleElement
-
-# Autogenerated
-def A(**args):
- return Element(qname = (TEXTNS,'a'), **args)
-
-def AlphabeticalIndex(**args):
- return Element(qname = (TEXTNS,'alphabetical-index'), **args)
-
-def AlphabeticalIndexAutoMarkFile(**args):
- return Element(qname = (TEXTNS,'alphabetical-index-auto-mark-file'), **args)
-
-def AlphabeticalIndexEntryTemplate(**args):
- return Element(qname = (TEXTNS,'alphabetical-index-entry-template'), **args)
-
-def AlphabeticalIndexMark(**args):
- return Element(qname = (TEXTNS,'alphabetical-index-mark'), **args)
-
-def AlphabeticalIndexMarkEnd(**args):
- return Element(qname = (TEXTNS,'alphabetical-index-mark-end'), **args)
-
-def AlphabeticalIndexMarkStart(**args):
- return Element(qname = (TEXTNS,'alphabetical-index-mark-start'), **args)
-
-def AlphabeticalIndexSource(**args):
- return Element(qname = (TEXTNS,'alphabetical-index-source'), **args)
-
-def AuthorInitials(**args):
- return Element(qname = (TEXTNS,'author-initials'), **args)
-
-def AuthorName(**args):
- return Element(qname = (TEXTNS,'author-name'), **args)
-
-def Bibliography(**args):
- return Element(qname = (TEXTNS,'bibliography'), **args)
-
-def BibliographyConfiguration(**args):
- return Element(qname = (TEXTNS,'bibliography-configuration'), **args)
-
-def BibliographyEntryTemplate(**args):
- return Element(qname = (TEXTNS,'bibliography-entry-template'), **args)
-
-def BibliographyMark(**args):
- return Element(qname = (TEXTNS,'bibliography-mark'), **args)
-
-def BibliographySource(**args):
- return Element(qname = (TEXTNS,'bibliography-source'), **args)
-
-def Bookmark(**args):
- return Element(qname = (TEXTNS,'bookmark'), **args)
-
-def BookmarkEnd(**args):
- return Element(qname = (TEXTNS,'bookmark-end'), **args)
-
-def BookmarkRef(**args):
- return Element(qname = (TEXTNS,'bookmark-ref'), **args)
-
-def BookmarkStart(**args):
- return Element(qname = (TEXTNS,'bookmark-start'), **args)
-
-def Change(**args):
- return Element(qname = (TEXTNS,'change'), **args)
-
-def ChangeEnd(**args):
- return Element(qname = (TEXTNS,'change-end'), **args)
-
-def ChangeStart(**args):
- return Element(qname = (TEXTNS,'change-start'), **args)
-
-def ChangedRegion(**args):
- return Element(qname = (TEXTNS,'changed-region'), **args)
-
-def Chapter(**args):
- return Element(qname = (TEXTNS,'chapter'), **args)
-
-def CharacterCount(**args):
- return Element(qname = (TEXTNS,'character-count'), **args)
-
-def ConditionalText(**args):
- return Element(qname = (TEXTNS,'conditional-text'), **args)
-
-def CreationDate(**args):
- return Element(qname = (TEXTNS,'creation-date'), **args)
-
-def CreationTime(**args):
- return Element(qname = (TEXTNS,'creation-time'), **args)
-
-def Creator(**args):
- return Element(qname = (TEXTNS,'creator'), **args)
-
-def DatabaseDisplay(**args):
- return Element(qname = (TEXTNS,'database-display'), **args)
-
-def DatabaseName(**args):
- return Element(qname = (TEXTNS,'database-name'), **args)
-
-def DatabaseNext(**args):
- return Element(qname = (TEXTNS,'database-next'), **args)
-
-def DatabaseRowNumber(**args):
- return Element(qname = (TEXTNS,'database-row-number'), **args)
-
-def DatabaseRowSelect(**args):
- return Element(qname = (TEXTNS,'database-row-select'), **args)
-
-def Date(**args):
- return Element(qname = (TEXTNS,'date'), **args)
-
-def DdeConnection(**args):
- return Element(qname = (TEXTNS,'dde-connection'), **args)
-
-def DdeConnectionDecl(**args):
- return Element(qname = (TEXTNS,'dde-connection-decl'), **args)
-
-def DdeConnectionDecls(**args):
- return Element(qname = (TEXTNS,'dde-connection-decls'), **args)
-
-def Deletion(**args):
- return Element(qname = (TEXTNS,'deletion'), **args)
-
-def Description(**args):
- return Element(qname = (TEXTNS,'description'), **args)
-
-def EditingCycles(**args):
- return Element(qname = (TEXTNS,'editing-cycles'), **args)
-
-def EditingDuration(**args):
- return Element(qname = (TEXTNS,'editing-duration'), **args)
-
-def ExecuteMacro(**args):
- return Element(qname = (TEXTNS,'execute-macro'), **args)
-
-def Expression(**args):
- return Element(qname = (TEXTNS,'expression'), **args)
-
-def FileName(**args):
- return Element(qname = (TEXTNS,'file-name'), **args)
-
-def FormatChange(**args):
- return Element(qname = (TEXTNS,'format-change'), **args)
-
-def H(**args):
- return Element(qname = (TEXTNS, 'h'), **args)
-
-def HiddenParagraph(**args):
- return Element(qname = (TEXTNS,'hidden-paragraph'), **args)
-
-def HiddenText(**args):
- return Element(qname = (TEXTNS,'hidden-text'), **args)
-
-def IllustrationIndex(**args):
- return Element(qname = (TEXTNS,'illustration-index'), **args)
-
-def IllustrationIndexEntryTemplate(**args):
- return Element(qname = (TEXTNS,'illustration-index-entry-template'), **args)
-
-def IllustrationIndexSource(**args):
- return Element(qname = (TEXTNS,'illustration-index-source'), **args)
-
-def ImageCount(**args):
- return Element(qname = (TEXTNS,'image-count'), **args)
-
-def IndexBody(**args):
- return Element(qname = (TEXTNS,'index-body'), **args)
-
-def IndexEntryBibliography(**args):
- return Element(qname = (TEXTNS,'index-entry-bibliography'), **args)
-
-def IndexEntryChapter(**args):
- return Element(qname = (TEXTNS,'index-entry-chapter'), **args)
-
-def IndexEntryLinkEnd(**args):
- return Element(qname = (TEXTNS,'index-entry-link-end'), **args)
-
-def IndexEntryLinkStart(**args):
- return Element(qname = (TEXTNS,'index-entry-link-start'), **args)
-
-def IndexEntryPageNumber(**args):
- return Element(qname = (TEXTNS,'index-entry-page-number'), **args)
-
-def IndexEntrySpan(**args):
- return Element(qname = (TEXTNS,'index-entry-span'), **args)
-
-def IndexEntryTabStop(**args):
- return Element(qname = (TEXTNS,'index-entry-tab-stop'), **args)
-
-def IndexEntryText(**args):
- return Element(qname = (TEXTNS,'index-entry-text'), **args)
-
-def IndexSourceStyle(**args):
- return Element(qname = (TEXTNS,'index-source-style'), **args)
-
-def IndexSourceStyles(**args):
- return Element(qname = (TEXTNS,'index-source-styles'), **args)
-
-def IndexTitle(**args):
- return Element(qname = (TEXTNS,'index-title'), **args)
-
-def IndexTitleTemplate(**args):
- return Element(qname = (TEXTNS,'index-title-template'), **args)
-
-def InitialCreator(**args):
- return Element(qname = (TEXTNS,'initial-creator'), **args)
-
-def Insertion(**args):
- return Element(qname = (TEXTNS,'insertion'), **args)
-
-def Keywords(**args):
- return Element(qname = (TEXTNS,'keywords'), **args)
-
-def LineBreak(**args):
- return Element(qname = (TEXTNS,'line-break'), **args)
-
-def LinenumberingConfiguration(**args):
- return Element(qname = (TEXTNS,'linenumbering-configuration'), **args)
-
-def LinenumberingSeparator(**args):
- return Element(qname = (TEXTNS,'linenumbering-separator'), **args)
-
-def List(**args):
- return Element(qname = (TEXTNS,'list'), **args)
-
-def ListHeader(**args):
- return Element(qname = (TEXTNS,'list-header'), **args)
-
-def ListItem(**args):
- return Element(qname = (TEXTNS,'list-item'), **args)
-
-def ListLevelStyleBullet(**args):
- return Element(qname = (TEXTNS,'list-level-style-bullet'), **args)
-
-def ListLevelStyleImage(**args):
- return Element(qname = (TEXTNS,'list-level-style-image'), **args)
-
-def ListLevelStyleNumber(**args):
- return Element(qname = (TEXTNS,'list-level-style-number'), **args)
-
-def ListStyle(**args):
- return StyleElement(qname = (TEXTNS,'list-style'), **args)
-
-def Measure(**args):
- return Element(qname = (TEXTNS,'measure'), **args)
-
-def ModificationDate(**args):
- return Element(qname = (TEXTNS,'modification-date'), **args)
-
-def ModificationTime(**args):
- return Element(qname = (TEXTNS,'modification-time'), **args)
-
-def Note(**args):
- return Element(qname = (TEXTNS,'note'), **args)
-
-def NoteBody(**args):
- return Element(qname = (TEXTNS,'note-body'), **args)
-
-def NoteCitation(**args):
- return Element(qname = (TEXTNS,'note-citation'), **args)
-
-def NoteContinuationNoticeBackward(**args):
- return Element(qname = (TEXTNS,'note-continuation-notice-backward'), **args)
-
-def NoteContinuationNoticeForward(**args):
- return Element(qname = (TEXTNS,'note-continuation-notice-forward'), **args)
-
-def NoteRef(**args):
- return Element(qname = (TEXTNS,'note-ref'), **args)
-
-def NotesConfiguration(**args):
- return Element(qname = (TEXTNS,'notes-configuration'), **args)
-
-def Number(**args):
- return Element(qname = (TEXTNS,'number'), **args)
-
-def NumberedParagraph(**args):
- return Element(qname = (TEXTNS,'numbered-paragraph'), **args)
-
-def ObjectCount(**args):
- return Element(qname = (TEXTNS,'object-count'), **args)
-
-def ObjectIndex(**args):
- return Element(qname = (TEXTNS,'object-index'), **args)
-
-def ObjectIndexEntryTemplate(**args):
- return Element(qname = (TEXTNS,'object-index-entry-template'), **args)
-
-def ObjectIndexSource(**args):
- return Element(qname = (TEXTNS,'object-index-source'), **args)
-
-def OutlineLevelStyle(**args):
- return Element(qname = (TEXTNS,'outline-level-style'), **args)
-
-def OutlineStyle(**args):
- return Element(qname = (TEXTNS,'outline-style'), **args)
-
-def P(**args):
- return Element(qname = (TEXTNS, 'p'), **args)
-
-def Page(**args):
- return Element(qname = (TEXTNS,'page'), **args)
-
-def PageContinuation(**args):
- return Element(qname = (TEXTNS,'page-continuation'), **args)
-
-def PageCount(**args):
- return Element(qname = (TEXTNS,'page-count'), **args)
-
-def PageNumber(**args):
- return Element(qname = (TEXTNS,'page-number'), **args)
-
-def PageSequence(**args):
- return Element(qname = (TEXTNS,'page-sequence'), **args)
-
-def PageVariableGet(**args):
- return Element(qname = (TEXTNS,'page-variable-get'), **args)
-
-def PageVariableSet(**args):
- return Element(qname = (TEXTNS,'page-variable-set'), **args)
-
-def ParagraphCount(**args):
- return Element(qname = (TEXTNS,'paragraph-count'), **args)
-
-def Placeholder(**args):
- return Element(qname = (TEXTNS,'placeholder'), **args)
-
-def PrintDate(**args):
- return Element(qname = (TEXTNS,'print-date'), **args)
-
-def PrintTime(**args):
- return Element(qname = (TEXTNS,'print-time'), **args)
-
-def PrintedBy(**args):
- return Element(qname = (TEXTNS,'printed-by'), **args)
-
-def ReferenceMark(**args):
- return Element(qname = (TEXTNS,'reference-mark'), **args)
-
-def ReferenceMarkEnd(**args):
- return Element(qname = (TEXTNS,'reference-mark-end'), **args)
-
-def ReferenceMarkStart(**args):
- return Element(qname = (TEXTNS,'reference-mark-start'), **args)
-
-def ReferenceRef(**args):
- return Element(qname = (TEXTNS,'reference-ref'), **args)
-
-def Ruby(**args):
- return Element(qname = (TEXTNS,'ruby'), **args)
-
-def RubyBase(**args):
- return Element(qname = (TEXTNS,'ruby-base'), **args)
-
-def RubyText(**args):
- return Element(qname = (TEXTNS,'ruby-text'), **args)
-
-def S(**args):
- return Element(qname = (TEXTNS,'s'), **args)
-
-def Script(**args):
- return Element(qname = (TEXTNS,'script'), **args)
-
-def Section(**args):
- return Element(qname = (TEXTNS,'section'), **args)
-
-def SectionSource(**args):
- return Element(qname = (TEXTNS,'section-source'), **args)
-
-def SenderCity(**args):
- return Element(qname = (TEXTNS,'sender-city'), **args)
-
-def SenderCompany(**args):
- return Element(qname = (TEXTNS,'sender-company'), **args)
-
-def SenderCountry(**args):
- return Element(qname = (TEXTNS,'sender-country'), **args)
-
-def SenderEmail(**args):
- return Element(qname = (TEXTNS,'sender-email'), **args)
-
-def SenderFax(**args):
- return Element(qname = (TEXTNS,'sender-fax'), **args)
-
-def SenderFirstname(**args):
- return Element(qname = (TEXTNS,'sender-firstname'), **args)
-
-def SenderInitials(**args):
- return Element(qname = (TEXTNS,'sender-initials'), **args)
-
-def SenderLastname(**args):
- return Element(qname = (TEXTNS,'sender-lastname'), **args)
-
-def SenderPhonePrivate(**args):
- return Element(qname = (TEXTNS,'sender-phone-private'), **args)
-
-def SenderPhoneWork(**args):
- return Element(qname = (TEXTNS,'sender-phone-work'), **args)
-
-def SenderPosition(**args):
- return Element(qname = (TEXTNS,'sender-position'), **args)
-
-def SenderPostalCode(**args):
- return Element(qname = (TEXTNS,'sender-postal-code'), **args)
-
-def SenderStateOrProvince(**args):
- return Element(qname = (TEXTNS,'sender-state-or-province'), **args)
-
-def SenderStreet(**args):
- return Element(qname = (TEXTNS,'sender-street'), **args)
-
-def SenderTitle(**args):
- return Element(qname = (TEXTNS,'sender-title'), **args)
-
-def Sequence(**args):
- return Element(qname = (TEXTNS,'sequence'), **args)
-
-def SequenceDecl(**args):
- return Element(qname = (TEXTNS,'sequence-decl'), **args)
-
-def SequenceDecls(**args):
- return Element(qname = (TEXTNS,'sequence-decls'), **args)
-
-def SequenceRef(**args):
- return Element(qname = (TEXTNS,'sequence-ref'), **args)
-
-def SheetName(**args):
- return Element(qname = (TEXTNS,'sheet-name'), **args)
-
-def SoftPageBreak(**args):
- return Element(qname = (TEXTNS,'soft-page-break'), **args)
-
-def SortKey(**args):
- return Element(qname = (TEXTNS,'sort-key'), **args)
-
-def Span(**args):
- return Element(qname = (TEXTNS,'span'), **args)
-
-def Subject(**args):
- return Element(qname = (TEXTNS,'subject'), **args)
-
-def Tab(**args):
- return Element(qname = (TEXTNS,'tab'), **args)
-
-def TableCount(**args):
- return Element(qname = (TEXTNS,'table-count'), **args)
-
-def TableFormula(**args):
- return Element(qname = (TEXTNS,'table-formula'), **args)
-
-def TableIndex(**args):
- return Element(qname = (TEXTNS,'table-index'), **args)
-
-def TableIndexEntryTemplate(**args):
- return Element(qname = (TEXTNS,'table-index-entry-template'), **args)
-
-def TableIndexSource(**args):
- return Element(qname = (TEXTNS,'table-index-source'), **args)
-
-def TableOfContent(**args):
- return Element(qname = (TEXTNS,'table-of-content'), **args)
-
-def TableOfContentEntryTemplate(**args):
- return Element(qname = (TEXTNS,'table-of-content-entry-template'), **args)
-
-def TableOfContentSource(**args):
- return Element(qname = (TEXTNS,'table-of-content-source'), **args)
-
-def TemplateName(**args):
- return Element(qname = (TEXTNS,'template-name'), **args)
-
-def TextInput(**args):
- return Element(qname = (TEXTNS,'text-input'), **args)
-
-def Time(**args):
- return Element(qname = (TEXTNS,'time'), **args)
-
-def Title(**args):
- return Element(qname = (TEXTNS,'title'), **args)
-
-def TocMark(**args):
- return Element(qname = (TEXTNS,'toc-mark'), **args)
-
-def TocMarkEnd(**args):
- return Element(qname = (TEXTNS,'toc-mark-end'), **args)
-
-def TocMarkStart(**args):
- return Element(qname = (TEXTNS,'toc-mark-start'), **args)
-
-def TrackedChanges(**args):
- return Element(qname = (TEXTNS,'tracked-changes'), **args)
-
-def UserDefined(**args):
- return Element(qname = (TEXTNS,'user-defined'), **args)
-
-def UserFieldDecl(**args):
- return Element(qname = (TEXTNS,'user-field-decl'), **args)
-
-def UserFieldDecls(**args):
- return Element(qname = (TEXTNS,'user-field-decls'), **args)
-
-def UserFieldGet(**args):
- return Element(qname = (TEXTNS,'user-field-get'), **args)
-
-def UserFieldInput(**args):
- return Element(qname = (TEXTNS,'user-field-input'), **args)
-
-def UserIndex(**args):
- return Element(qname = (TEXTNS,'user-index'), **args)
-
-def UserIndexEntryTemplate(**args):
- return Element(qname = (TEXTNS,'user-index-entry-template'), **args)
-
-def UserIndexMark(**args):
- return Element(qname = (TEXTNS,'user-index-mark'), **args)
-
-def UserIndexMarkEnd(**args):
- return Element(qname = (TEXTNS,'user-index-mark-end'), **args)
-
-def UserIndexMarkStart(**args):
- return Element(qname = (TEXTNS,'user-index-mark-start'), **args)
-
-def UserIndexSource(**args):
- return Element(qname = (TEXTNS,'user-index-source'), **args)
-
-def VariableDecl(**args):
- return Element(qname = (TEXTNS,'variable-decl'), **args)
-
-def VariableDecls(**args):
- return Element(qname = (TEXTNS,'variable-decls'), **args)
-
-def VariableGet(**args):
- return Element(qname = (TEXTNS,'variable-get'), **args)
-
-def VariableInput(**args):
- return Element(qname = (TEXTNS,'variable-input'), **args)
-
-def VariableSet(**args):
- return Element(qname = (TEXTNS,'variable-set'), **args)
-
-def WordCount(**args):
- return Element(qname = (TEXTNS,'word-count'), **args)
-
diff --git a/tablib/packages/odf3/thumbnail.py b/tablib/packages/odf3/thumbnail.py
deleted file mode 100644
index d6388cc..0000000
--- a/tablib/packages/odf3/thumbnail.py
+++ /dev/null
@@ -1,427 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# This contains a 128x128 px thumbnail in PNG format
-# Taken from http://www.zwahlendesign.ch/en/node/20
-# openoffice_icons/openoffice_icons_linux/openoffice11.png
-# License: Freeware
-import base64
-
-iconstr = """\
-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
-N38FAAAAAElFTkSuQmCC\
-"""
-
-def thumbnail():
- icon = base64.decodestring(iconstr)
- return icon
-
-if __name__ == "__main__":
- icon = thumbnail()
- f = file("thumbnail.png","wb")
- f.write(icon)
- f.close()
diff --git a/tablib/packages/odf3/userfield.py b/tablib/packages/odf3/userfield.py
deleted file mode 100644
index fd36dec..0000000
--- a/tablib/packages/odf3/userfield.py
+++ /dev/null
@@ -1,169 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2009 Søren Roug, European Environment Agency
-#
-# This is free software. You may redistribute it under the terms
-# of the Apache license and the GNU General Public License Version
-# 2 or at your option any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public
-# License along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s): Michael Howitz, gocept gmbh & co. kg
-#
-# $Id: userfield.py 447 2008-07-10 20:01:30Z roug $
-
-"""Class to show and manipulate user fields in odf documents."""
-
-import sys
-import zipfile
-
-from odf.text import UserFieldDecl
-from odf.namespaces import OFFICENS
-from odf.opendocument import load
-
-OUTENCODING = "utf-8"
-
-
-# OpenDocument v.1.0 section 6.7.1
-VALUE_TYPES = {
- 'float': (OFFICENS, 'value'),
- 'percentage': (OFFICENS, 'value'),
- 'currency': (OFFICENS, 'value'),
- 'date': (OFFICENS, 'date-value'),
- 'time': (OFFICENS, 'time-value'),
- 'boolean': (OFFICENS, 'boolean-value'),
- 'string': (OFFICENS, 'string-value'),
- }
-
-
-class UserFields(object):
- """List, view and manipulate user fields."""
-
- # these attributes can be a filename or a file like object
- src_file = None
- dest_file = None
-
- def __init__(self, src=None, dest=None):
- """Constructor
-
- src ... source document name, file like object or None for stdin
- dest ... destination document name, file like object or None for stdout
-
- """
- self.src_file = src
- self.dest_file = dest
- self.document = None
-
- def loaddoc(self):
- if isinstance(self.src_file, str):
- # src_file is a filename, check if it is a zip-file
- if not zipfile.is_zipfile(self.src_file):
- raise TypeError("%s is no odt file." % self.src_file)
- elif self.src_file is None:
- # use stdin if no file given
- self.src_file = sys.stdin
-
- self.document = load(self.src_file)
-
- def savedoc(self):
- # write output
- if self.dest_file is None:
- # use stdout if no filename given
- self.document.save('-')
- else:
- self.document.save(self.dest_file)
-
- def list_fields(self):
- """List (extract) all known user-fields.
-
- Returns list of user-field names.
-
- """
- return [x[0] for x in self.list_fields_and_values()]
-
- def list_fields_and_values(self, field_names=None):
- """List (extract) user-fields with type and value.
-
- field_names ... list of field names to show or None for all.
-
- Returns list of tuples (<field name>, <field type>, <value>).
-
- """
- self.loaddoc()
- found_fields = []
- all_fields = self.document.getElementsByType(UserFieldDecl)
- for f in all_fields:
- value_type = f.getAttribute('valuetype')
- if value_type == 'string':
- value = f.getAttribute('stringvalue')
- else:
- value = f.getAttribute('value')
- field_name = f.getAttribute('name')
-
- if field_names is None or field_name in field_names:
- found_fields.append((field_name.encode(OUTENCODING),
- value_type.encode(OUTENCODING),
- value.encode(OUTENCODING)))
- return found_fields
-
- def list_values(self, field_names):
- """Extract the contents of given field names from the file.
-
- field_names ... list of field names
-
- Returns list of field values.
-
- """
- return [x[2] for x in self.list_fields_and_values(field_names)]
-
- def get(self, field_name):
- """Extract the contents of this field from the file.
-
- Returns field value or None if field does not exist.
-
- """
- values = self.list_values([field_name])
- if not values:
- return None
- return values[0]
-
- def get_type_and_value(self, field_name):
- """Extract the type and contents of this field from the file.
-
- Returns tuple (<type>, <field-value>) or None if field does not exist.
-
- """
- fields = self.list_fields_and_values([field_name])
- if not fields:
- return None
- field_name, value_type, value = fields[0]
- return value_type, value
-
- def update(self, data):
- """Set the value of user fields. The field types will be the same.
-
- data ... dict, with field name as key, field value as value
-
- Returns None
-
- """
- self.loaddoc()
- all_fields = self.document.getElementsByType(UserFieldDecl)
- for f in all_fields:
- field_name = f.getAttribute('name')
- if field_name in data:
- value_type = f.getAttribute('valuetype')
- value = data.get(field_name)
- if value_type == 'string':
- f.setAttribute('stringvalue', value)
- else:
- f.setAttribute('value', value)
- self.savedoc()
-
diff --git a/tablib/packages/odf3/xforms.py b/tablib/packages/odf3/xforms.py
deleted file mode 100644
index bbc05ac..0000000
--- a/tablib/packages/odf3/xforms.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-from .namespaces import XFORMSNS
-from .element import Element
-
-# ODF 1.0 section 11.2
-# XForms is designed to be embedded in another XML format.
-# Autogenerated
-def Model(**args):
- return Element(qname = (XFORMSNS,'model'), **args)
-
-def Instance(**args):
- return Element(qname = (XFORMSNS,'instance'), **args)
-
-def Bind(**args):
- return Element(qname = (XFORMSNS,'bind'), **args)