From 0070fce9a63290eebd7db21ef9933b8b3fce8239 Mon Sep 17 00:00:00 2001
From: Benjamin Dauvergne
Date: Sat, 2 Jul 2016 10:25:20 +0200
Subject: [PATCH] Rewrite ODS support based on loxun XMLWriter module
It uses constant memory and is a lot faster than odf and odf3 packages.
---
tablib/compat.py | 2 -
tablib/formats/_ods.py | 84 +-
tablib/packages/loxun.py | 1487 +++++
tablib/packages/odf/__init__.py | 0
tablib/packages/odf/anim.py | 61 -
tablib/packages/odf/attrconverters.py | 1484 -----
tablib/packages/odf/chart.py | 87 -
tablib/packages/odf/config.py | 39 -
tablib/packages/odf/dc.py | 72 -
tablib/packages/odf/dr3d.py | 43 -
tablib/packages/odf/draw.py | 182 -
tablib/packages/odf/easyliststyle.py | 103 -
tablib/packages/odf/element.py | 513 --
tablib/packages/odf/elementtypes.py | 325 -
tablib/packages/odf/form.py | 115 -
tablib/packages/odf/grammar.py | 8426 ------------------------
tablib/packages/odf/load.py | 112 -
tablib/packages/odf/manifest.py | 41 -
tablib/packages/odf/math.py | 30 -
tablib/packages/odf/meta.py | 66 -
tablib/packages/odf/namespaces.py | 97 -
tablib/packages/odf/number.py | 104 -
tablib/packages/odf/odf2moinmoin.py | 579 --
tablib/packages/odf/odf2xhtml.py | 1582 -----
tablib/packages/odf/odfmanifest.py | 115 -
tablib/packages/odf/office.py | 104 -
tablib/packages/odf/opendocument.py | 654 --
tablib/packages/odf/presentation.py | 85 -
tablib/packages/odf/script.py | 30 -
tablib/packages/odf/style.py | 148 -
tablib/packages/odf/svg.py | 54 -
tablib/packages/odf/table.py | 307 -
tablib/packages/odf/teletype.py | 137 -
tablib/packages/odf/text.py | 562 --
tablib/packages/odf/thumbnail.py | 427 --
tablib/packages/odf/userfield.py | 169 -
tablib/packages/odf/xforms.py | 34 -
tablib/packages/odf3/__init__.py | 0
tablib/packages/odf3/anim.py | 61 -
tablib/packages/odf3/attrconverters.py | 1484 -----
tablib/packages/odf3/chart.py | 87 -
tablib/packages/odf3/config.py | 39 -
tablib/packages/odf3/dc.py | 72 -
tablib/packages/odf3/dr3d.py | 43 -
tablib/packages/odf3/draw.py | 182 -
tablib/packages/odf3/easyliststyle.py | 103 -
tablib/packages/odf3/element.py | 519 --
tablib/packages/odf3/elementtypes.py | 325 -
tablib/packages/odf3/form.py | 115 -
tablib/packages/odf3/grammar.py | 8426 ------------------------
tablib/packages/odf3/load.py | 112 -
tablib/packages/odf3/manifest.py | 41 -
tablib/packages/odf3/math.py | 30 -
tablib/packages/odf3/meta.py | 66 -
tablib/packages/odf3/namespaces.py | 97 -
tablib/packages/odf3/number.py | 104 -
tablib/packages/odf3/odf2moinmoin.py | 579 --
tablib/packages/odf3/odf2xhtml.py | 1582 -----
tablib/packages/odf3/odfmanifest.py | 115 -
tablib/packages/odf3/office.py | 104 -
tablib/packages/odf3/opendocument.py | 654 --
tablib/packages/odf3/presentation.py | 85 -
tablib/packages/odf3/script.py | 30 -
tablib/packages/odf3/style.py | 148 -
tablib/packages/odf3/svg.py | 54 -
tablib/packages/odf3/table.py | 307 -
tablib/packages/odf3/teletype.py | 137 -
tablib/packages/odf3/text.py | 562 --
tablib/packages/odf3/thumbnail.py | 427 --
tablib/packages/odf3/userfield.py | 169 -
tablib/packages/odf3/xforms.py | 34 -
tablib/packages/ods.py | 150 +
72 files changed, 1664 insertions(+), 33839 deletions(-)
create mode 100644 tablib/packages/loxun.py
delete mode 100644 tablib/packages/odf/__init__.py
delete mode 100644 tablib/packages/odf/anim.py
delete mode 100644 tablib/packages/odf/attrconverters.py
delete mode 100644 tablib/packages/odf/chart.py
delete mode 100644 tablib/packages/odf/config.py
delete mode 100644 tablib/packages/odf/dc.py
delete mode 100644 tablib/packages/odf/dr3d.py
delete mode 100644 tablib/packages/odf/draw.py
delete mode 100644 tablib/packages/odf/easyliststyle.py
delete mode 100644 tablib/packages/odf/element.py
delete mode 100644 tablib/packages/odf/elementtypes.py
delete mode 100644 tablib/packages/odf/form.py
delete mode 100644 tablib/packages/odf/grammar.py
delete mode 100644 tablib/packages/odf/load.py
delete mode 100644 tablib/packages/odf/manifest.py
delete mode 100644 tablib/packages/odf/math.py
delete mode 100644 tablib/packages/odf/meta.py
delete mode 100644 tablib/packages/odf/namespaces.py
delete mode 100644 tablib/packages/odf/number.py
delete mode 100644 tablib/packages/odf/odf2moinmoin.py
delete mode 100644 tablib/packages/odf/odf2xhtml.py
delete mode 100644 tablib/packages/odf/odfmanifest.py
delete mode 100644 tablib/packages/odf/office.py
delete mode 100644 tablib/packages/odf/opendocument.py
delete mode 100644 tablib/packages/odf/presentation.py
delete mode 100644 tablib/packages/odf/script.py
delete mode 100644 tablib/packages/odf/style.py
delete mode 100644 tablib/packages/odf/svg.py
delete mode 100644 tablib/packages/odf/table.py
delete mode 100644 tablib/packages/odf/teletype.py
delete mode 100644 tablib/packages/odf/text.py
delete mode 100644 tablib/packages/odf/thumbnail.py
delete mode 100644 tablib/packages/odf/userfield.py
delete mode 100644 tablib/packages/odf/xforms.py
delete mode 100644 tablib/packages/odf3/__init__.py
delete mode 100644 tablib/packages/odf3/anim.py
delete mode 100644 tablib/packages/odf3/attrconverters.py
delete mode 100644 tablib/packages/odf3/chart.py
delete mode 100644 tablib/packages/odf3/config.py
delete mode 100644 tablib/packages/odf3/dc.py
delete mode 100644 tablib/packages/odf3/dr3d.py
delete mode 100644 tablib/packages/odf3/draw.py
delete mode 100644 tablib/packages/odf3/easyliststyle.py
delete mode 100644 tablib/packages/odf3/element.py
delete mode 100644 tablib/packages/odf3/elementtypes.py
delete mode 100644 tablib/packages/odf3/form.py
delete mode 100644 tablib/packages/odf3/grammar.py
delete mode 100644 tablib/packages/odf3/load.py
delete mode 100644 tablib/packages/odf3/manifest.py
delete mode 100644 tablib/packages/odf3/math.py
delete mode 100644 tablib/packages/odf3/meta.py
delete mode 100644 tablib/packages/odf3/namespaces.py
delete mode 100644 tablib/packages/odf3/number.py
delete mode 100644 tablib/packages/odf3/odf2moinmoin.py
delete mode 100644 tablib/packages/odf3/odf2xhtml.py
delete mode 100644 tablib/packages/odf3/odfmanifest.py
delete mode 100644 tablib/packages/odf3/office.py
delete mode 100644 tablib/packages/odf3/opendocument.py
delete mode 100644 tablib/packages/odf3/presentation.py
delete mode 100644 tablib/packages/odf3/script.py
delete mode 100644 tablib/packages/odf3/style.py
delete mode 100644 tablib/packages/odf3/svg.py
delete mode 100644 tablib/packages/odf3/table.py
delete mode 100644 tablib/packages/odf3/teletype.py
delete mode 100644 tablib/packages/odf3/text.py
delete mode 100644 tablib/packages/odf3/thumbnail.py
delete mode 100644 tablib/packages/odf3/userfield.py
delete mode 100644 tablib/packages/odf3/xforms.py
create mode 100644 tablib/packages/ods.py
diff --git a/tablib/compat.py b/tablib/compat.py
index e03526d3..402cf143 100644
--- a/tablib/compat.py
+++ b/tablib/compat.py
@@ -27,7 +27,6 @@
from tablib.packages.xlrd3.biffh import XLRDError
from tablib.packages import markup3 as markup
from tablib.packages import openpyxl3 as openpyxl
- from tablib.packages.odf3 import opendocument, style, text, table
import tablib.packages.dbfpy3 as dbfpy
import csv
@@ -48,7 +47,6 @@
from tablib.packages import markup
from itertools import ifilter
from tablib.packages import openpyxl
- from tablib.packages.odf import opendocument, style, text, table
from tablib.packages import unicodecsv as csv
import tablib.packages.dbfpy as dbfpy
diff --git a/tablib/formats/_ods.py b/tablib/formats/_ods.py
index f43a26c6..b2c04aae 100644
--- a/tablib/formats/_ods.py
+++ b/tablib/formats/_ods.py
@@ -11,90 +11,60 @@
else:
from cStringIO import StringIO as BytesIO
-from tablib.compat import opendocument, style, table, text, unicode
+
+from tablib.packages import ods
+from tablib.compat import unicode
title = 'ods'
extensions = ('ods',)
-bold = style.Style(name="bold", family="paragraph")
-bold.addElement(style.TextProperties(fontweight="bold", fontweightasian="bold", fontweightcomplex="bold"))
def export_set(dataset):
"""Returns ODF representation of Dataset."""
- wb = opendocument.OpenDocumentSpreadsheet()
- wb.automaticstyles.addElement(bold)
-
- ws = table.Table(name=dataset.title if dataset.title else 'Tablib Dataset')
- wb.spreadsheet.addElement(ws)
- dset_sheet(dataset, ws)
-
stream = BytesIO()
- wb.save(stream)
+ wb = ods.ODSWorkbook(stream)
+ dset_sheet(dataset, wb, title='Sheet')
+ wb.close()
return stream.getvalue()
def export_book(databook):
"""Returns ODF representation of DataBook."""
- wb = opendocument.OpenDocumentSpreadsheet()
- wb.automaticstyles.addElement(bold)
-
- for i, dset in enumerate(databook._datasets):
- ws = table.Table(name=dset.title if dset.title else 'Sheet%s' % (i))
- wb.spreadsheet.addElement(ws)
- dset_sheet(dset, ws)
-
-
stream = BytesIO()
- wb.save(stream)
+ wb = ods.ODSWorkbook(stream)
+
+ for i, dataset in enumerate(databook._datasets):
+ dset_sheet(dataset, wb, title='Sheet %d' % i)
+ wb.close()
return stream.getvalue()
-def dset_sheet(dataset, ws):
+def dset_sheet(dataset, wb, title=None):
"""Completes given worksheet from given Dataset."""
_package = dataset._package(dicts=False)
+ if not _package:
+ return
+
+ wb.start_sheet(len(_package[0]),
+ dataset.title if dataset.title else title)
for i, sep in enumerate(dataset._separators):
_offset = i
_package.insert((sep[0] + _offset), (sep[1],))
for i, row in enumerate(_package):
- row_number = i + 1
- odf_row = table.TableRow(stylename=bold, defaultcellstylename='bold')
- for j, col in enumerate(row):
+ cells = []
+ for cell in row:
try:
- col = unicode(col, errors='ignore')
+ cell = unicode(cell, errors='ignore')
except TypeError:
- ## col is already unicode
+ # col is already unicode
pass
- ws.addElement(table.TableColumn())
-
- # bold headers
- if (row_number == 1) and dataset.headers:
- odf_row.setAttribute('stylename', bold)
- ws.addElement(odf_row)
- cell = table.TableCell()
- p = text.P()
- p.addElement(text.Span(text=col, stylename=bold))
- cell.addElement(p)
- odf_row.addElement(cell)
-
- # wrap the rest
- else:
- try:
- if '\n' in col:
- ws.addElement(odf_row)
- cell = table.TableCell()
- cell.addElement(text.P(text=col))
- odf_row.addElement(cell)
- else:
- ws.addElement(odf_row)
- cell = table.TableCell()
- cell.addElement(text.P(text=col))
- odf_row.addElement(cell)
- except TypeError:
- ws.addElement(odf_row)
- cell = table.TableCell()
- cell.addElement(text.P(text=col))
- odf_row.addElement(cell)
\ No newline at end of file
+ cells.append(cell)
+ if i == 0:
+ wb.add_headers(cells)
+ else:
+ wb.add_row(cells)
+ wb.end_sheet()
diff --git a/tablib/packages/loxun.py b/tablib/packages/loxun.py
new file mode 100644
index 00000000..9b6726c2
--- /dev/null
+++ b/tablib/packages/loxun.py
@@ -0,0 +1,1487 @@
+"""
+loxun is a Python module to write large output in XML using Unicode and
+namespaces. Of course you can also use it for small XML output with plain 8
+bit strings and no namespaces.
+
+loxun's features are:
+
+* **small memory foot print**: the document is created on the fly by writing to
+ an output stream, no need to keep all of it in memory.
+
+* **easy to use namespaces**: simply add a namespace and refer to it using the
+ standard ``namespace:tag`` syntax.
+
+* **mix unicode and io.BytesIO**: pass both unicode or plain 8 bit strings to any
+ of the methods. Internally loxun converts them to unicode, so once a
+ parameter got accepted by the API you can rely on it not causing any
+ messy ``UnicodeError`` trouble.
+
+* **automatic escaping**: no need to manually handle special characters such
+ as ``<`` or ``&`` when writing text and attribute values.
+
+* **robustness**: while you write the document, sanity checks are performed on
+ everything you do. Many silly mistakes immediately result in an
+ ``XmlError``, for example missing end elements or references to undeclared
+ namespaces.
+
+* **open source**: distributed under the GNU Lesser General Public License 3
+ or later.
+
+Here is a very basic example. First you have to create an output stream. In
+many cases this would be a file, but for the sake of simplicity we use a
+``io.BytesIO`` here:
+
+ >>> from __future__ import unicode_literals
+ >>> import io
+ >>> out = io.BytesIO()
+
+Then you can create an `XmlWriter` to write to this output:
+
+ >>> xml = XmlWriter(out)
+
+Now write the content:
+
+ >>> xml.addNamespace("xhtml", "http://www.w3.org/1999/xhtml")
+ >>> xml.startTag("xhtml:html")
+ >>> xml.startTag("xhtml:body")
+ >>> xml.text("Hello world!")
+ >>> xml.tag("xhtml:img", {"src": "smile.png", "alt": ":-)"})
+ >>> xml.endTag()
+ >>> xml.endTag()
+ >>> xml.close()
+
+And the result is:
+
+ >>> print out.getvalue().rstrip("\\r\\n")
+
+
+
+ Hello world!
+
+
+
+
+Writing a simple document
+=========================
+
+The following example creates a very simple XHTML document.
+
+To make it simple, the output goes to a ``BytesIO``, but you could also use
+a binary file that has been created using ``io.open(filename, "wb")``.
+
+ >>> from __future__ import unicode_literals
+ >>> import io
+ >>> out = io.BytesIO()
+
+First create an `XmlWriter` to write the XML code to the specified output:
+
+ >>> xml = XmlWriter(out)
+
+This automatically adds the XML prolog:
+
+ >>> print out.getvalue().rstrip("\\r\\n")
+
+
+Next add the ```` start tag:
+
+ >>> xml.startTag("html")
+
+Now comes the . To pass attributes, specify them in a dictionary.
+So in order to add::
+
+
+
+use:
+
+ >>> xml.startTag("body", {"id": "top"})
+
+Let' add a little text so there is something to look at:
+
+ >>> xml.text("Hello world!")
+
+Wrap it up: close all elements and the document.
+
+ >>> xml.endTag()
+ >>> xml.endTag()
+ >>> xml.close()
+
+And this is what we get:
+
+ >>> print out.getvalue().rstrip("\\r\\n")
+
+
+
+ Hello world!
+
+
+
+Specifying attributes
+
+First create a writer:
+
+ >>> import io
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out)
+
+Now write the content:
+
+ >>> xml.tag("img", {"src": "smile.png", "alt": ":-)"})
+
+Attribute values do not have to be strings, other types will be converted to
+Unicode using Python's ``unicode()`` function:
+
+ >>> xml.tag("img", {"src": "wink.png", "alt": ";-)", "width": 32, "height": 24})
+
+And the result is:
+
+ >>> print out.getvalue().rstrip("\\r\\n")
+
+
+
+
+Using namespaces
+================
+
+Now the same thing but with a namespace. First create the prolog
+and header like above:
+
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out)
+
+Next add the namespace:
+
+ >>> xml.addNamespace("xhtml", "http://www.w3.org/1999/xhtml")
+
+Now elements can use qualified tag names using a colon (:) to separate
+namespace and tag name:
+
+ >>> xml.startTag("xhtml:html")
+ >>> xml.startTag("xhtml:body")
+ >>> xml.text("Hello world!")
+ >>> xml.endTag()
+ >>> xml.endTag()
+ >>> xml.close()
+
+As a result, tag names are now prefixed with "xhtml:":
+
+ >>> print out.getvalue().rstrip("\\r\\n")
+
+
+
+ Hello world!
+
+
+
+Working with non ASCII characters
+=================================
+
+Sometimes you want to use characters outside the ASCII range, for example
+German Umlauts, the Euro symbol or Japanese Kanji. The easiest and performance
+wise best way is to use Unicode strings. For example:
+
+ >>> import io
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out, prolog=False)
+ >>> xml.text(u"The price is \\u20ac 100") # Unicode of Euro symbol
+ >>> out.getvalue().rstrip("\\r\\n")
+ 'The price is \\xe2\\x82\\xac 100'
+
+Notice the "u" before the string passed to `XmlWriter.text()`, it declares the
+string to be a unicode string that can hold any character, even those that are
+beyond the 8 bit range.
+
+Also notice that in the output the Euro symbol looks very different from the
+input. This is because the output encoding is UTF-8 (the default), which
+has the advantage of keeping all ASCII characters the same and turning any
+characters with a code of 128 or more into a sequence of 8 bit bytes that
+can easily fit into an output stream to a binary file or ``io.BytesIO``.
+
+If you have to stick to classic 8 bit string parameters, loxun attempts to
+convert them to unicode. By default it assumes ASCII encoding, which does
+not work out as soon as you use a character outside the ASCII range:
+
+ >>> import io
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out, prolog=False)
+ >>> xml.text("The price is \\xa4 100") # ISO-8859-15 code of Euro symbol
+ Traceback (most recent call last):
+ ...
+ UnicodeDecodeError: 'ascii' codec can't decode byte 0xa4 in position 13: ordinal not in range(128)
+
+In this case you have to tell the writer the encoding you use by specifying
+the the ``sourceEncoding``:
+
+ >>> import io
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out, prolog=False, sourceEncoding="iso-8859-15")
+
+Now everything works out again:
+
+ >>> xml.text("The price is \\xa4 100") # ISO-8859-15 code of Euro symbol
+ >>> out.getvalue().rstrip("\\r\\n")
+ 'The price is \\xe2\\x82\\xac 100'
+
+Of course in practice you will not mess around with hex codes to pass your
+texts. Instead you just specify the source encoding using the mechanisms
+described in PEP 263,
+`Defining Python Source Code Encodings `_.
+
+Pretty printing and indentation
+===============================
+
+By default, loxun starts a new line for each ``startTag`` and indents the
+content with two spaces. You can change the spaces to any number of spaces and
+tabs you like:
+
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out, indent=" ") # <-- Indent with 4 spaces.
+ >>> xml.startTag("html")
+ >>> xml.startTag("body")
+ >>> xml.text("Hello world!")
+ >>> xml.endTag()
+ >>> xml.endTag()
+ >>> xml.close()
+ >>> print out.getvalue().rstrip("\\r\\n")
+
+
+
+ Hello world!
+
+
+
+You can disable pretty printing all together using ``pretty=False``, resulting
+in an output of a single large line:
+
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out, pretty=False) # <-- Disable pretty printing.
+ >>> xml.startTag("html")
+ >>> xml.startTag("body")
+ >>> xml.text("Hello world!")
+ >>> xml.endTag()
+ >>> xml.endTag()
+ >>> xml.close()
+ >>> print out.getvalue().rstrip("\\r\\n")
+ Hello world!
+
+Changing the XML prolog
+=======================
+
+When you create a writer, it automatically write an XML prolog
+processing instruction to the output. This is what the default prolog
+looks like:
+
+ >>> import io
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out)
+ >>> print out.getvalue().rstrip("\\r\\n")
+
+
+You can change the version or encoding:
+
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out, encoding=u"ascii", version=u"1.1")
+ >>> print out.getvalue().rstrip("\\r\\n")
+
+
+To completely omit the prolog, set the parameter ``prolog=False``:
+
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out, prolog=False)
+ >>> out.getvalue()
+ ''
+
+Adding other content
+====================
+
+Apart from text and tags, XML provides a few more things you can add to
+documents. Here's an example that shows how to do it with loxun.
+
+First, create a writer:
+
+ >>> import io
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out)
+
+Let's add a document type definition:
+
+ >>> xml.raw("")
+ >>> xml.newline()
+
+Notice that loxun uses the generic `XmlWriter.raw()` for that, which allows to
+add any content without validation or escaping. You can do all sorts of nasty
+things with ``raw()`` that will result in invalid XML, but this is one of its
+reasonable uses.
+
+Next, let's add a comment:
+
+ >>> xml.comment("Show case some rarely used XML constructs")
+
+Here is a processing instruction:
+
+ >>> xml.processingInstruction("xml-stylesheet", "href=\\"default.css\\" type=\\"text/css\\"")
+
+And finally a CDATA section:
+
+ >>> xml.cdata(">> this will not be parsed <<")
+
+And the result is:
+
+ >>> print out.getvalue().rstrip("\\r\\n")
+
+
+
+
+ > this will not be parsed <<]]>
+
+
+Optimization
+============
+
+Loxun automatically optimized pairs of empty start/end tags. For example:
+
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out)
+ >>> xml.startTag("customers")
+ >>> xml.startTag("person", {"id": "12345", "name": "Doe, John"})
+ >>> xml.endTag("person") # without optimization, this would add .
+ >>> xml.endTag()
+ >>> xml.close()
+ >>> print out.getvalue().rstrip("\\r\\n")
+
+
+
+
+
+Despite the explicit ``startTag("person")`` and matching ``endtag()``, the
+output only contains a simple ```` tag.
+
+Contributing
+------------
+
+If you want to help improve loxun, you can access the source code at
+.
+
+Future
+======
+
+Currently loxun does what it was built for.
+
+There are is no real plans to improve it in the near future, but here is a list
+of features that might be added at some point:
+
+* Add validation of tag and attribute names to ensure that all characters used
+ are allowed. For instance, currently loxun does not complain about a tag
+ named "a#b*c$d_".
+* Raise an `XmlError` when namespaces are added with attributes instead of
+ `XmlWriter.addNamespace()`.
+* Logging support to simplify debugging of the calling code. Probably
+ `XmlWriter` would get a property ``logger`` which is a standard
+ ``logging.Logger``. By default it could log original exceptions that
+ loxun turns into an `XmlError` and namespaces opened and closed.
+ Changing it to ``logging.DEBUG`` would log each tag and XML construct
+ written, including additional information about the internal tag stack.
+ That way you could dynamically increase or decrease logging output.
+* Rethink pretty printing. Instead of a global property that can only be set
+ when initializing an `XmlWriter`, it could be a optional parameter for
+ `XmlWriter.startTag()` where it could be turned on and off as needed. And
+ the property could be named ``literal`` instead of ``pretty`` (with an
+ inverse logic).
+* Add a ``DomWriter`` that creates a ``xml.dom.minidom.Document``.
+
+Some features other XML libraries support but I never saw any real use for:
+
+* Specify attribute order for tags.
+
+Version history
+===============
+
+Version 2.0, 2014-07-28
+
+* Added support for Python 3.2+ while retaining the option to run with
+ Python 2.6+ (issue #5; thanks go to `Stefan Schwarzer`_ who offered his
+ guidance during a "Python 2 to 3" sprint at EuroPython 2014).
+* Dropped support for Python 2.5, keep using loxun 1.3 if you are stuck
+ with with this version.
+
+.. _Stefan Schwarzer: http://www.sschwarzer.net
+
+Version 1.3, 2012-01-01
+
+* Added ``endTags()`` to close several or all open tags (issue #3,
+ contributed by Anton Kolechkin).
+* Added ``ChainXmlWriter`` which is similar to ``XmlWriter`` and allows to
+ chain methods for more concise source code (issue #3, contributed by Anton
+ Kolechkin).
+
+Version 1.2, 2011-03-12
+
+* Fixed ``AttributeError`` when ``XmlWriter(..., encoding=...)`` was set.
+
+Version 1.1, 08-Jan-2011
+
+* Fixed ``AssertionError`` when ``pretty`` was set to ``False``
+ (issue #1; fixed by David Cramer).
+
+Version 1.0, 11-Oct-2010
+
+* Added support for Python's ``with`` so you don not have to manually call
+ `XmlWriter.close()` anymore.
+* Added Git repository at .
+
+Version 0.8, 11-Jul-2010
+
+* Added possibility to pass attributes to `XmlWriter.startTag()` and
+ `XmlWriter.tag()` with values that have other types than ``str`` or
+ ``unicode``. When written to XML, the value is converted using Python's
+ built-in ``unicode()`` function.
+* Added a couple of files missing from the distribution, most important the
+ test suite.
+
+Version 0.7, 03-Jul-2010
+
+* Added optimization of matching start and end tag without any content in
+ between. For example, ``x.startTag("some"); x.endTag()`` results in
+ ```` instead of ````.
+* Fixed handling of unknown name spaces. They now raise an `XmlError` instead
+ of ``ValueError``.
+
+Version 0.6, 03-Jun-2010
+
+* Added option ``indent`` to specify the indentation text each new line starts with.
+* Added option ``newline`` to specify how lines written should end.
+* Fixed that `XmlWriter.tag()` did not remove namespaces declared immediately
+ before it.
+* Cleaned up documentation.
+
+Version 0.5, 25-May-2010
+
+* Fixed typo in namespace attribute name.
+* Fixed adding of namespaces before calls to `XmlWriter.tag()` which resulted
+ in an `XmlError`.
+
+Version 0.4, 21-May-2010
+
+* Added option ``sourceEncoding`` to simplify processing of classic strings.
+ The manual section "Working with non ASCII characters" explains how to use
+ it.
+
+Version 0.3, 17-May-2010
+
+* Added scoped namespaces which are removed automatically by
+ `XmlWriter.endTag()`.
+* Changed ``text()`` to normalize newlines and white space if pretty printing
+ is enabled.
+* Moved writing of XML prolog to the constructor and removed
+ ``XmlWriter.prolog()``. To omit the prolog, specify ``prolog=False`` when
+ creating the `XmlWriter`. If you later want to write the prolog yourself,
+ use `XmlWriter.processingInstruction()`.
+* Renamed ``*Element()`` to ``*Tag`` because they really only write tags, not
+ whole elements.
+
+Version 0.2, 16-May-2010
+
+* Added `XmlWriter.comment()`, `XmlWriter.cdata()` and
+ `XmlWriter.processingInstruction()` to write these specific XML constructs.
+* Added indentation and automatic newline to text if pretty printing is
+ enabled.
+* Removed newline from prolog in case pretty printing is disabled.
+* Fixed missing "?" in prolog.
+
+Version 0.1, 15-May-2010
+
+* Initial release.
+"""
+# Copyright (C) 2010-2012 Thomas Aglassinger
+#
+# This program 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 3 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 Lesser General Public
+# License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program. If not, see .
+from __future__ import unicode_literals
+
+import collections
+import io
+import os
+import re
+import sys
+import xml.sax.saxutils
+
+__version__ = "2.0"
+
+
+# Compatibility helpers for Python 2 and 3.
+if sys.version_info[0] == 2:
+ bytes_type = str
+ unicode_type = unicode
+else:
+ bytes_type = bytes
+ unicode_type = str
+
+
+class XmlError(Exception):
+ """
+ Error raised when XML can not be generated.
+ """
+ pass
+
+def _quoted(value):
+ _assertIsUnicode("value", value)
+ return xml.sax.saxutils.quoteattr(value)
+
+def _validateNotEmpty(name, value):
+ """
+ Validate that ``value`` is not empty and raise `XmlError` in case it is.
+ """
+ assert name
+ if not value:
+ raise XmlError("%s must not be empty" % name)
+
+def _validateNotNone(name, value):
+ """
+ Validate that ``value`` is not ``None`` and raise `XmlError` in case it is.
+ """
+ assert name
+ if value is None:
+ raise XmlError("%s must not be %r" % (name, None))
+
+def _validateNotNoneOrEmpty(name, value):
+ """
+ Validate that ``value`` is not empty or ``None`` and raise `XmlError` in case it is.
+ """
+ _validateNotNone(name, value)
+ _validateNotEmpty(name, value)
+
+def _assertIsUnicode(name, value):
+ assert (value is None) or isinstance(value, unicode_type), \
+ "value for %r must be of type %s but is: %r" % (name, unicode_type.__name__, value)
+
+def _splitPossiblyQualifiedName(name, value):
+ """
+ A pair ``(namespace, name)`` derived from ``name``.
+
+ A fully qualified name:
+
+ >>> _splitPossiblyQualifiedName(u"tag name", u"xhtml:img")
+ (u'xhtml', u'img')
+
+ A name in the default namespace:
+
+ >>> _splitPossiblyQualifiedName(u"tag name", u"img")
+ (None, u'img')
+
+ Improper names result in an `XmlError`:
+
+ >>> _splitPossiblyQualifiedName(u"x", u"")
+ Traceback (most recent call last):
+ ...
+ XmlError: x must not be empty
+ """
+ assert name
+ _assertIsUnicode("name", name)
+ _assertIsUnicode("value", value)
+
+ colonIndex = value.find(":")
+ if colonIndex == -1:
+ _validateNotEmpty(name, value)
+ result = (None, value)
+ else:
+ namespacePart = value[:colonIndex]
+ _validateNotEmpty("namespace part of %s", namespacePart)
+ namePart = value[colonIndex+1:]
+ _validateNotEmpty("name part of %s", namePart)
+ result = (namespacePart, namePart)
+ # TODO: validate that all parts are NCNAMEs.
+ return result
+
+def _joinPossiblyQualifiedName(namespace, name):
+ _assertIsUnicode("namespace", namespace)
+ assert name
+ _assertIsUnicode("name", name)
+ if namespace:
+ result = "%s:%s" % (namespace, name)
+ else:
+ result = name
+ return result
+
+class XmlWriter(object):
+ """
+ Writer for large output in XML optionally supporting Unicode and
+ namespaces.
+ """
+ # Marks to start/end CDATA.
+ _CDATA_START = ""
+
+ # Marks to start/end processing instruction.
+ _PROCESSING_START = ""
+ _PROCESSING_END = "?>"
+
+ # Possible value for _possiblyWriteTag()'s ``close`` parameter.
+ _CLOSE_NONE = "none"
+ _CLOSE_AT_START = "start"
+ _CLOSE_AT_END = "end"
+
+ # Build regular expressions to validate tag and attribute names.
+ _NAME_START_CHARS = "_a-zA-Z\u00c0-\u00d6\u00d8-\u00f6\00f8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c-\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd"
+ _NAME_CHARS = "\\-\\.0-9" + _NAME_START_CHARS + "\\u00b7\\u0300-\\u036f\\u203f-\\u2040"
+ _NAME_START_CHAR_PATTERN = "[" + _NAME_START_CHARS + "]"
+ _NAME_CHAR_PATTERN = "[" + _NAME_CHARS + "]"
+ _nameStartCharRegEx = re.compile(_NAME_START_CHAR_PATTERN, re.UNICODE)
+ _nameCharRegEx = re.compile(_NAME_START_CHAR_PATTERN, re.UNICODE)
+
+ def __init__(self, output, pretty=True, indent=" ", newline=os.linesep, encoding="utf-8", errors="strict", prolog=True, version="1.0", sourceEncoding="ascii"):
+ """
+ Initialize ``XmlWriter`` writing to ``output``.
+
+ The ``output`` can be anything that has a ``write(data)`` method,
+ typically a filelike object. The writer accesses the ``output`` as
+ stream, so it does not have to support any methods for random
+ access like ``seek()``.
+
+ In case you write to a file, use ``"wb"`` as ``mode`` for ``open()``
+ to prevent messed up newlines.
+
+ Set ``pretty`` to ``False`` if you do not want to the writer to pretty
+ print. Keep in mind though that this results in the whole output being
+ a single line unless you use `newline()` or write text with newline
+ characters in it.
+
+ Set ``indent`` to the string that should be used for each indentation
+ level.
+
+ Set ``newline`` to the string that should be used at the end of each
+ line.
+
+ Set ``encoding`` to the name of the preferred output encoding.
+
+ Set ``errors`` to one of the value possible value for
+ ``unicode(..., error=...)`` if you do not want the output to fail with
+ a `UnicodeError` in case a character cannot be encoded.
+
+ Set ``prolog`` to ``False`` if you do not want the writer to emit an
+ XML prolog processing instruction (like
+ ````).
+
+ Set ``version`` to the value the version attribute in the XML prolog
+ should have.
+
+ Set ``sourceEncoding`` to the name of the encoding that plain 8 bit
+ strings passed as parameters use.
+ """
+ assert output is not None
+ assert encoding
+ assert errors
+ assert sourceEncoding
+ _validateNotNoneOrEmpty("version", version)
+ self._output = output
+ self._pretty = pretty
+ self._sourceEncoding = sourceEncoding
+ self._encoding = self._unicodedFromString(encoding)
+ self._errors = self._unicodedFromString(errors)
+ self._namespaces = {}
+ self._elementStack = collections.deque()
+ self._namespacesToAdd = collections.deque()
+ self._isOpen = True
+ self._contentHasBeenWritten = False
+ self._indent = self._unicodedFromString(indent)
+
+ # `None` or a tuple of (indent, qualifiedTagName, attributes).
+ # See also: `_possiblyWriteTag()`.
+ self._startTagToWrite = None
+
+ indentWithoutWhiteSpace = self._indent.replace(" ", "").replace("\t", "")
+ assert not indentWithoutWhiteSpace, \
+ "`indent` must contain only blanks or tabs but also has: %r" % indentWithoutWhiteSpace
+ self._newline = self._unicodedFromString(newline)
+ _VALID_NEWLINES = ["\r", "\n", "\r\n"]
+ assert self._newline in _VALID_NEWLINES, \
+ "`newline` is %r but must be one of: %s" % (self._newline, _VALID_NEWLINES)
+ if prolog:
+ self.processingInstruction("xml", "version=%s encoding=%s" % ( \
+ _quoted(self._unicodedFromString(version)),
+ _quoted(self._encoding))
+ )
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, errorType, error, traceback):
+ if not error:
+ # There's no point in calling `close()` in case of previous errors
+ # because it most likely will cause another error and thus discard
+ # the original error which holds actually useful information.
+ #
+ # Not calling `close()` will *not* introduce any resource leaks.
+ self.close()
+
+ @property
+ def isPretty(self):
+ """Pretty print writes to the ``output``?"""
+ return self._pretty
+
+ @property
+ def encoding(self):
+ """The encoding used when writing to the ``output``."""
+ return self._encoding
+
+ @property
+ def output(self):
+ """The stream where the output goes."""
+ return self._output
+
+ def _scope(self):
+ return len(self._elementStack)
+
+ def _encoded(self, text):
+ assert text is not None
+ _assertIsUnicode("text", text)
+ return text.encode(self._encoding, self._errors)
+
+ def _unicodedFromString(self, text):
+ """
+ Same value as ``text`` but converted to unicode in case ``text`` is a
+ string. ``None`` remains ``None``.
+ """
+ if text is None:
+ result = None
+ elif isinstance(text, unicode_type):
+ result = text
+ else:
+ result = unicode_type(text, self._sourceEncoding)
+ return result
+
+ def _raiseStrOrUnicodeBroken(self, method, value, error):
+ """
+ Raise `XmlError` pointing out the ``__str__()`` or ``__unicode__`` of
+ of the type of ``value`` must be implemented properly.
+ """
+ assert method in ("str", "unicode")
+ assert error is not None
+
+ someTypeName = type(value).__name__
+ message = "%s.__%s()__ must return a value of type %s or %s but failed for value %r with: %s" % (
+ someTypeName, method, unicode_type.__name__, bytes_type.__name__, value, error
+ )
+ raise XmlError(message)
+
+ def _unicoded(self, some):
+ """
+ Same value as ``some`` but converted to unicode in case ``some`` is
+ not already a unicode string. ``None`` remains ``None``.
+
+ Examples:
+
+ >>> import io
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out)
+ >>> xml._unicoded(u"abc")
+ u'abc'
+ >>> xml._unicoded("abc")
+ u'abc'
+ >>> xml._unicoded(123)
+ u'123'
+
+ >>> import decimal
+ >>> xml._unicoded(decimal.Decimal("123.45"))
+ u'123.45'
+
+ In order for this to work, the type of ``some`` must have a proper
+ implementation of ``__unicode()__`` or ``__str__``.
+
+ Here is an example for a class with a broken ``__unicode__``, which
+ already fails if ``unicode()`` is called without loxun:
+
+ >>> class Broken(object):
+ ... def __unicode__(self):
+ ... return 123 # BROKEN: Return type must be str or unicode
+ >>> unicode(Broken())
+ Traceback (most recent call last):
+ ...
+ TypeError: coercing to Unicode: need string or buffer, int found
+
+ Consequently, using a value of ``Broken`` as attribute value will fail too:
+
+ >>> xml.tag("someTag", {"someAttribute": Broken()}) #doctest: +ELLIPSIS
+ Traceback (most recent call last):
+ ...
+ XmlError: Broken.__unicode()__ must return a value of type str or unicode but failed for value ... with: coercing to Unicode: need string or buffer, int found
+ """
+ if some is None:
+ result = None
+ elif isinstance(some, unicode_type):
+ result = some
+ else:
+ if isinstance(some, bytes_type):
+ result = some
+ else:
+ try:
+ result = unicode_type(some)
+ except Exception as error:
+ self._raiseStrOrUnicodeBroken("unicode", some, error)
+ # Ensure that the caller implemented __str__ / __unicode__ properly.
+ if not isinstance(result, unicode_type):
+ try:
+ result = unicode_type(some, self._sourceEncoding)
+ except Exception as error:
+ self._raiseStrOrUnicodeBroken("unicode", some, error)
+ return result
+
+ def _isNameStartChar(self, some):
+ """
+ NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6]
+ | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D]
+ | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF]
+ | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
+ """
+ assert some
+ return True
+
+ def _isNameChar(self, some):
+ """
+ NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7
+ | [#x0300-#x036F] | [#x203F-#x2040]
+ """
+ assert some
+ return True
+
+ def _elementName(self, name, namespace):
+ assert name
+ if namespace:
+ result = "%s:%s" % (namespace, name)
+ else:
+ result = name
+ return result
+
+ def _validateIsOpen(self):
+ if not self._isOpen:
+ raise XmlError("operation must be performed before writer is closed")
+
+ def _validateNamespaceItem(self, itemName, namespace, qualifiedName):
+ if namespace:
+ namespaceFound = False
+ scopeIndex = self._scope()
+ while not namespaceFound and (scopeIndex >= 0):
+ namespacesForScope = self._namespaces.get(scopeIndex)
+ if namespacesForScope:
+ if namespace in [namespaceToCompareWith for namespaceToCompareWith, _ in namespacesForScope]:
+ namespaceFound = True
+ scopeIndex -= 1
+ if not namespaceFound:
+ if namespace == "xmlns":
+ # TODO: raise XmlError("namespace '%s' must be added using `addNamespace()`.")
+ pass
+ else:
+ raise XmlError("namespace '%s' for %s '%s' must be added before use" % (namespace, itemName, qualifiedName))
+
+ def _write(self, text):
+ assert text is not None
+ _assertIsUnicode("text", text)
+ self._output.write(self._encoded(text))
+ if not self._contentHasBeenWritten and text:
+ self._contentHasBeenWritten = True
+
+ def _writeIndent(self):
+ self._write(self._indent * len(self._elementStack))
+
+ def _writePrettyIndent(self):
+ if self._pretty:
+ self._writeIndent()
+
+ def _writePrettyNewline(self):
+ if self._pretty:
+ self.newline()
+
+ def _writeEscaped(self, text):
+ assert text is not None
+ _assertIsUnicode("text", text)
+ self._write(xml.sax.saxutils.escape(text))
+
+ def newline(self):
+ self._possiblyFlushTag()
+ self._write(self._newline)
+
+ def addNamespace(self, name, uri):
+ """
+ Add namespace to the following elements by adding a ``xmlns``
+ attribute to the next tag that is written using `startTag()` or `tag()`.
+ """
+ # TODO: Validate that name is NCName.
+ _validateNotNoneOrEmpty("name", name)
+ _validateNotNoneOrEmpty("uri", uri)
+ uniName = self._unicodedFromString(name)
+ uniUri = self._unicodedFromString(uri)
+ namespacesForScope = self._namespaces.get(self._scope())
+ namespaceExists = (uniName in self._namespacesToAdd) or (
+ (namespacesForScope != None) and (uniName in namespacesForScope)
+ )
+ if namespaceExists:
+ raise XmlError("namespace %r must added only once for current scope but already is %r" % (uniName, uniUri))
+ self._namespacesToAdd.append((uniName, uniUri))
+
+ def _possiblyWriteTag(self, namespace, name, close, attributes={}):
+ _assertIsUnicode("namespace", namespace)
+ assert name
+ _assertIsUnicode("name", name)
+ assert close
+ assert close in (XmlWriter._CLOSE_NONE, XmlWriter._CLOSE_AT_START, XmlWriter._CLOSE_AT_END)
+ assert attributes is not None
+
+ actualAttributes = {}
+
+ # TODO: Validate that no "xmlns" attributes are specified by hand.
+
+ # Process new namespaces to add.
+ if close in [XmlWriter._CLOSE_NONE, XmlWriter._CLOSE_AT_END]:
+ while self._namespacesToAdd:
+ namespaceName, uri = self._namespacesToAdd.pop()
+ if namespaceName:
+ actualAttributes["xmlns:%s" % namespaceName] = uri
+ else:
+ actualAttributes["xmlns"] = uri
+ namespacesForScope = self._namespaces.get(self._scope())
+ if namespacesForScope == None:
+ namespacesForScope = []
+ self._namespaces[self._scope()] = namespacesForScope
+ assert namespaceName not in [existingName for existingName, _ in namespacesForScope]
+ namespacesForScope.append((namespaceName, uri))
+ self._namespaces[namespaceName] = uri
+ else:
+ if self._namespacesToAdd:
+ namespaceNames = ", ".join([name for name, _ in self._namespacesToAdd])
+ raise XmlError("namespaces must be added before startTag() or tag(): %s" % namespaceNames)
+
+ # Convert attributes to unicode.
+ for qualifiedAttributeName, attributeValue in list(attributes.items()):
+ uniQualifiedAttributeName = self._unicodedFromString(qualifiedAttributeName)
+ attributeNamespace, attributeName = _splitPossiblyQualifiedName("attribute name", uniQualifiedAttributeName)
+ self._validateNamespaceItem("attribute", attributeNamespace, attributeName)
+ actualAttributes[uniQualifiedAttributeName] = self._unicoded(attributeValue)
+
+ # Prepare indentation and qualified tag name to be written.
+ if self.isPretty:
+ indent = self._indent * len(self._elementStack)
+ else:
+ indent = ""
+ self._validateNamespaceItem("tag", namespace, name)
+ if namespace:
+ qualifiedTagName = "%s:%s" % (namespace, name)
+ else:
+ qualifiedTagName = name
+
+ if close == XmlWriter._CLOSE_NONE:
+ self._startTagToWrite = (indent, qualifiedTagName, actualAttributes)
+ else:
+ self._actuallyWriteTag(indent, qualifiedTagName, actualAttributes, close)
+
+ # Process name spaces to remove
+ if close in [XmlWriter._CLOSE_AT_END, XmlWriter._CLOSE_AT_START]:
+ scopeToRemove = self._scope()
+ if scopeToRemove in self._namespaces:
+ del self._namespaces[scopeToRemove]
+
+ def _actuallyWriteTag(self, indent, qualifiedTagName, attributes, close):
+ assert self._startTagToWrite is None
+ assert indent is not None
+ _assertIsUnicode("indent", indent)
+ assert qualifiedTagName
+ _assertIsUnicode("qualifiedTagName", qualifiedTagName)
+ assert close
+ assert close in (XmlWriter._CLOSE_NONE, XmlWriter._CLOSE_AT_START, XmlWriter._CLOSE_AT_END)
+ assert attributes is not None
+ if self._pretty:
+ self._write(indent)
+ self._write("<")
+ if close == XmlWriter._CLOSE_AT_START:
+ self._write("/")
+ self._write(qualifiedTagName)
+ for attributeName in sorted(attributes.keys()):
+ _assertIsUnicode("attribute name", attributeName)
+ value = attributes[attributeName]
+ _assertIsUnicode("value of attribute %r" % attributeName, value)
+ self._write(" %s=%s" % (attributeName, _quoted(value)))
+ if close == XmlWriter._CLOSE_AT_END:
+ if self.isPretty:
+ self._write(" ")
+ self._write("/")
+ self._write(">")
+ if self._pretty:
+ self.newline()
+
+ def _possiblyFlushTag(self):
+ """
+ If ``self._startTagToWrite`` is set, it contains a tuple
+ ``(indent, qualifiedTagName, attributes)`` describing a start tag that has not
+ been written yet. In this case, write the tag now and set
+ ``self._startTagToWrite`` to ``None``. This allows to optimize a sequence
+ of ``startTag()``/ ``endTag()`` with the same tag to be changed to
+ a simple ``tag()``.
+ """
+ if self._startTagToWrite:
+ indent, qualifiedTagName, attributes = self._startTagToWrite;
+ self._startTagToWrite = None
+ self._actuallyWriteTag(indent, qualifiedTagName, attributes, XmlWriter._CLOSE_NONE)
+
+ def startTag(self, qualifiedName, attributes={}):
+ """
+ Start tag with name ``qualifiedName``, optionally using a namespace
+ prefix separated with a colon (:) and ``attributes``.
+
+ Example names are "img" and "xhtml:img" (assuming the namespace prefix
+ "xtml" has been added before using `addNamespace()`).
+
+ Attributes are a dictionary containing the attribute name and value, for
+ example::
+
+ {"src": "../some.png", "xhtml:alt": "some image"}
+ """
+ self._possiblyFlushTag()
+ uniQualifiedName = self._unicodedFromString(qualifiedName)
+ namespace, name = _splitPossiblyQualifiedName("tag name", uniQualifiedName)
+ self._possiblyWriteTag(namespace, name, XmlWriter._CLOSE_NONE, attributes)
+ self._elementStack.append((namespace, name))
+
+ def endTag(self, expectedQualifiedName=None):
+ """
+ End tag that has been started before using `startTag()`,
+ optionally checking that the name matches ``expectedQualifiedName``.
+
+ As example, consider the following writer with a namespace:
+
+ >>> import io
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out)
+ >>> xml.addNamespace("xhtml", "http://www.w3.org/1999/xhtml")
+
+ Now start a couple of elements:
+
+ >>> xml.startTag("html")
+ >>> xml.startTag("xhtml:body")
+
+ Try to end a mistyped tag:
+
+ >>> xml.endTag("xhtml:doby")
+ Traceback (most recent call last):
+ ...
+ XmlError: tag name must be xhtml:doby but is xhtml:body
+
+ Try again properly:
+
+ >>> xml.endTag("xhtml:body")
+
+ Try to end another mistyped tag, this time without namespace:
+
+ >>> xml.endTag("xml")
+ Traceback (most recent call last):
+ ...
+ XmlError: tag name must be xml but is html
+
+ End the tag properly, this time without an expected name:
+
+ >>> xml.endTag()
+
+ Try to end another tag without any left:
+
+ >>> xml.endTag()
+ Traceback (most recent call last):
+ ...
+ XmlError: tag stack must not be empty
+ """
+ try:
+ (namespace, name) = self._elementStack.pop()
+ except IndexError:
+ raise XmlError("tag stack must not be empty")
+ actualQualifiedName = _joinPossiblyQualifiedName(namespace, name)
+ if expectedQualifiedName:
+ # Validate that actual tag name matches expected name.
+ uniExpectedQualifiedName = self._unicodedFromString(expectedQualifiedName)
+ if actualQualifiedName != expectedQualifiedName:
+ self._elementStack.append((namespace, name))
+ raise XmlError("tag name must be %s but is %s" % (uniExpectedQualifiedName, actualQualifiedName))
+
+ isConsolidatableStartEndTag = False
+ if self._startTagToWrite:
+ _, qualifiedStartTagName, attributes = self._startTagToWrite
+ if actualQualifiedName == qualifiedStartTagName:
+ isConsolidatableStartEndTag = True
+ if isConsolidatableStartEndTag:
+ self._startTagToWrite = None
+ self._possiblyWriteTag(namespace, name, XmlWriter._CLOSE_AT_END, attributes)
+ else:
+ self._possiblyFlushTag()
+ self._possiblyWriteTag(namespace, name, XmlWriter._CLOSE_AT_START)
+
+
+ def endTags(self, count=0):
+ """
+ End tags is useful if you need to close a couple of tags in one command
+ it might be useful when you need to close a few root tags.
+
+ As example, consider the following writer with a namespace:
+
+ >>> import io
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out)
+ >>> xml.addNamespace("xhtml", "http://www.w3.org/1999/xhtml")
+
+ Now start a couple of elements:
+
+ >>> xml.startTag("html")
+ >>> xml.startTag("xhtml:body")
+ >>> xml.startTag("xhtml:div")
+ >>> xml.startTag("xhtml:span")
+ >>> xml.startTag("xhtml:b")
+
+ Try to end bad number of tags:
+
+ >>> xml.endTags(7) # actually there are 5 tags, not 7
+ Traceback (most recent call last):
+ ...
+ XmlError: cannot close 7 tags, 5 remaining
+
+ Try to end 2 tags:
+
+ >>> xml.endTags(2)
+
+ And now finally end all started tags:
+
+ >>> xml.endTags()
+
+ But if all the tags closed it will raise the same error as endTag
+
+ >>> xml.endTags()
+ Traceback (most recent call last):
+ ...
+ XmlError: tag stack must not be empty
+ """
+
+ stackLen = int(len(self._elementStack))
+
+ if stackLen == 0:
+ raise XmlError("tag stack must not be empty")
+ if count == 0:
+ count = stackLen
+ elif stackLen < count:
+ raise XmlError("cannot close %d tags,"
+ " %d remaining" % (count, stackLen))
+
+ for _ in range(count):
+ self.endTag()
+
+ def tag(self, qualifiedName, attributes={}):
+ self._possiblyFlushTag()
+ uniQualifiedName = self._unicodedFromString(qualifiedName)
+ namespace, name = _splitPossiblyQualifiedName("tag name", uniQualifiedName)
+ self._possiblyWriteTag(namespace, name, XmlWriter._CLOSE_AT_END, attributes)
+
+ def text(self, text):
+ """
+ Write ``text`` using escape sequences if needed.
+
+ Using a writer like
+
+ >>> import io
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out, prolog=False)
+
+ you can write some text:
+
+ >>> xml.text(" & ")
+ >>> print out.getvalue().rstrip("\\r\\n")
+ <this> & <that>
+
+ If ``text`` contains line feeds, the will be normalized to `newline()`:
+
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out, prolog=False)
+ >>> xml.startTag("some")
+ >>> xml.text("a text\\nwith multiple lines\\n and indentation and trailing blanks ")
+ >>> xml.endTag()
+ >>> print out.getvalue().rstrip("\\r\\n")
+
+ a text
+ with multiple lines
+ and indentation and trailing blanks
+
+
+ Empty text does not result in any output:
+
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out, prolog=False)
+ >>> xml.startTag("some")
+ >>> xml.text("")
+ >>> xml.endTag()
+ >>> print out.getvalue().rstrip("\\r\\n")
+
+
+ """
+ self._possiblyFlushTag()
+ _validateNotNone("text", text)
+ uniText = self._unicodedFromString(text)
+ if self._pretty:
+ for uniLine in io.StringIO(uniText):
+ self._writeIndent()
+ uniLine = uniLine.lstrip(" \t").rstrip(" \t\r\n")
+ self._writeEscaped(uniLine)
+ self.newline()
+ else:
+ self._writeEscaped(uniText)
+
+
+ def comment(self, text, embedInBlanks=True):
+ """
+ Write an XML comment.
+
+ As example set up a writer:
+
+ >>> import io
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out, prolog=False)
+
+ Now add the comment
+
+ >>> xml.comment("some comment")
+
+ And the result is:
+
+ >>> print out.getvalue().rstrip("\\r\\n")
+
+
+ A comment can spawn multiple lines. If pretty is enabled, the lines
+ will be indented. Again, first set up a writer:
+
+ >>> import io
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out, prolog=False)
+
+ Then add the comment
+
+ >>> xml.comment("some comment\\nspawning mutiple\\nlines")
+
+ And the result is:
+
+ >>> print out.getvalue().rstrip("\\r\\n")
+
+ """
+ self._possiblyFlushTag()
+ uniText = self._unicodedFromString(text)
+ if not embedInBlanks and not uniText:
+ raise XmlError("text for comment must not be empty, or option embedInBlanks=True must be set")
+ if "--" in uniText:
+ raise XmlError("text for comment must not contain \"--\"")
+ hasNewline = ("\n" in uniText) or ("\r" in uniText)
+ hasStartBlank = uniText and uniText[0].isspace()
+ hasEndBlank = (len(uniText) > 1) and uniText[-1].isspace()
+ self._writePrettyIndent()
+ self._write("");
+ if self._pretty:
+ self.newline()
+
+
+ def cdata(self, text):
+ """
+ Write a CDATA section.
+
+ As example set up a writer:
+
+ >>> import io
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out, prolog=False)
+
+ Now add the CDATA section:
+
+ >>> xml.cdata("some data\\nlines\\n&&&")
+
+ And the result is:
+
+ >>> print out.getvalue().rstrip("\\r\\n")
+ &&&]]>
+ """
+ self._possiblyFlushTag()
+ self._rawBlock("CDATA section", XmlWriter._CDATA_START, XmlWriter._CDATA_END, text)
+
+ def processingInstruction(self, target, text):
+ """
+ Write a processing instruction.
+
+ As example set up a writer:
+
+ >>> import io
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out, prolog=False)
+
+ Now add the processing instruction:
+
+ >>> xml.processingInstruction("xsl-stylesheet", "href=\\"some.xsl\\" type=\\"text/xml\\"")
+
+ And the result is:
+
+ >>> print out.getvalue().rstrip("\\r\\n")
+
+ """
+ self._possiblyFlushTag()
+ targetName = "target for processing instrution"
+ _validateNotNone(targetName, text)
+ _validateNotEmpty(targetName, text)
+ uniFullText = self._unicodedFromString(target)
+ if text:
+ uniFullText += " "
+ uniFullText += self._unicodedFromString(text)
+ self._rawBlock("processing instruction", XmlWriter._PROCESSING_START, XmlWriter._PROCESSING_END, uniFullText)
+
+ def _rawBlock(self, name, start, end, text):
+ _assertIsUnicode("name", name)
+ _assertIsUnicode("start", start)
+ _assertIsUnicode("end", end)
+ _validateNotNone("text for %s" % name, text)
+ uniText = self._unicodedFromString(text)
+ if end in uniText:
+ raise XmlError("text for %s must not contain \"%s\"" % (name, end))
+ self._writePrettyIndent()
+ self._write(start)
+ self._write(uniText)
+ self._write(end)
+ self._writePrettyNewline()
+
+ def raw(self, text):
+ """
+ Write raw ``text`` without escaping, validation and pretty printing.
+
+ Using a writer like
+
+ >>> import io
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out, prolog=False)
+
+ you can use ``raw`` for good and add for exmaple a doctype declaration:
+
+ >>> xml.raw("")
+ >>> print out.getvalue().rstrip("\\r\\n")
+
+
+ but you can also do all sorts of evil things which can invalidate the XML document:
+
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out, prolog=False)
+ >>> xml.raw(">(^_^)< not particular valid XML &&&")
+ >>> print out.getvalue().rstrip("\\r\\n")
+ >(^_^)< not particular valid XML &&&
+ """
+ self._possiblyFlushTag()
+ _validateNotNone("text", text)
+ uniText = self._unicodedFromString(text)
+ self._write(uniText)
+
+ def close(self):
+ """
+ Close the writer, validate that all started elements have ended and
+ prevent further output.
+
+ Using a writer like
+
+ >>> import io
+ >>> out = io.BytesIO()
+ >>> xml = XmlWriter(out)
+
+ you can write a tag without closing it:
+
+ >>> xml.startTag("some")
+
+ However, once you try to close the writer, you get:
+
+ >>> xml.close()
+ Traceback (most recent call last):
+ ...
+ XmlError: missing end tags must be added:
+ """
+ self._possiblyFlushTag()
+ remainingElements = ""
+ while self._elementStack:
+ if remainingElements:
+ remainingElements += ", "
+ namespace, name = self._elementStack.pop()
+ remainingElements += "%s>" % self._elementName(name, namespace)
+ if remainingElements:
+ raise XmlError("missing end tags must be added: %s" % remainingElements)
+
+
+class ChainXmlWriter(XmlWriter):
+ """
+ XmlWriter-wrapper for method chaining, here is an example:
+ >>> import io
+ >>> out = io.BytesIO()
+ >>> xml = ChainXmlWriter(out)
+ >>> xml.addNamespace("xhtml", "http://www.w3.org/1999/xhtml") #doctest: +ELLIPSIS
+
+ >>> xml.startTag("xhtml:html").startTag("xhtml:body") #doctest: +ELLIPSIS
+
+ >>> xml.text("Hello world!").tag("xhtml:img", {"src": "smile.png", "alt": ":-)"}) #doctest: +ELLIPSIS
+
+ >>> xml.endTags().close()
+
+ And the result is:
+
+ >>> print out.getvalue().rstrip("\\r\\n")
+
+
+
+ Hello world!
+
+
+
+ """
+
+ chainableMethods = ('addNamespace', 'cdata', 'comment', 'endTag',
+ 'endTags', 'processingInstruction', 'startTag', 'tag',
+ 'text',)
+
+ def _chainDecorator(self, func):
+ def _wrapper(*args, **kwargs):
+ func(*args, **kwargs)
+ return self
+ return _wrapper
+
+ def __getattribute__(self, name):
+
+ if name in ChainXmlWriter.chainableMethods:
+ originalMethod = getattr(super(ChainXmlWriter, self), name)
+ return self._chainDecorator(originalMethod)
+
+ return super(ChainXmlWriter, self).__getattribute__(name)
+
+if __name__ == "__main__":
+ import doctest
+ print("loxun %s: running doctest" % __version__)
+ doctest.testmod()
+
diff --git a/tablib/packages/odf/__init__.py b/tablib/packages/odf/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/tablib/packages/odf/anim.py b/tablib/packages/odf/anim.py
deleted file mode 100644
index 27dca36c..00000000
--- 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 b75f80a2..00000000
--- 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 cca83961..00000000
--- 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 f33f3613..00000000
--- 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 7c967768..00000000
--- 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 324ae1cf..00000000
--- 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 7692e5aa..00000000
--- 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 b2a54c21..00000000
--- a/tablib/packages/odf/easyliststyle.py
+++ /dev/null
@@ -1,103 +0,0 @@
-# -*- coding: utf-8 -*-
-# Create a 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 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 element for you.
-Each item in the string (or array) represents a list level
- * style for levels 1-10.
- *
- * If an item contains 1
, I
,
- * i
, A
, or a
, then it is presumed
- * to be a numbering style; otherwise it is a bulleted style.
-"""
-
-_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 aad69804..00000000
--- 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 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("&", "&")
- data = data.replace("<", "<")
- data = data.replace(">", ">")
- 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']='
'
- entities['\r']=''
- data = _escape(data, entities)
- if '"' in data:
- if "'" in data:
- data = '"%s"' % data.replace('"', """)
- 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. (' % self.data.replace(']]>',']]>]]>" % (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 7c19412e..00000000
--- 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 7969b840..00000000
--- 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 d5d8d597..00000000
--- 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 e48fcaa4..00000000
--- 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 de59048b..00000000
--- 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 5dc38dfa..00000000
--- 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 dc031811..00000000
--- 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 95046b45..00000000
--- 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 12d81cba..00000000
--- 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 167fcdac..00000000
--- 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 4bf4553f..00000000
--- 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 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
- 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
- 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 """
- 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('\n' % (stylefilename,media))
- else:
- self.metatags.append('\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
- """
- self.title = ''.join(self.data)
- #self.metatags.append('%s\n' % escape(self.title))
- self.data = []
-
- def e_dc_metatag(self, tag, attrs):
- """ Any other meta data is added as a element
- """
- self.metatags.append('\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('\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('\n' % escape(self.creator))
- self.data = []
-
- def s_custom_shape(self, tag, attrs):
- """ A is made into a 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
- """
- self.closetag('div')
-
- def s_draw_frame(self, tag, attrs):
- """ A is made into a 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
- """
- 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 becomes an 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 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 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 is a slide in a presentation. We use a