[Python-modules-commits] [python-odf] 110/118: First working draft of version 1.2.

Wolfgang Borgert debacle at moszumanska.debian.org
Fri Oct 3 21:27:29 UTC 2014


This is an automated email from the git hooks/post-receive script.

debacle pushed a commit to reference refs/remotes/upstream/master
in repository python-odf.

commit e637c6ca1a4bab581a79663169ead04b3e063984
Author: Søren Roug <soren.roug at eea.europa.eu>
Date:   Mon Sep 9 14:56:18 2013 +0000

    First working draft of version 1.2.
---
 grammar/Makefile                |    5 +-
 grammar/gen_allowed_attrs.py    |    1 +
 grammar/gen_allowed_children.py |    6 +-
 grammar/gen_allows_text.py      |    3 +-
 grammar/gen_required_attrs.py   |    2 +
 grammar/test_grammar.py         |    5 -
 odf/attrconverters.py           |  141 +++-
 odf/chart.py                    |   11 +-
 odf/grammar.py                  | 1687 ++++++++++++++++++++++++++++-----------
 odf/namespaces.py               |    4 +-
 odf/office.py                   |   15 +-
 odf/style.py                    |    8 +-
 odf/table.py                    |   14 +-
 odf/text.py                     |    8 +-
 odflint/odflint                 |   21 -
 setup.py                        |    2 +-
 tests/testdrawelement.py        |    2 +-
 tests/testform.py               |   23 +
 tests/testlengths.py            |    4 +-
 tests/teststyleref.py           |    2 +-
 20 files changed, 1438 insertions(+), 526 deletions(-)

diff --git a/grammar/Makefile b/grammar/Makefile
index 7be29ce..55eab36 100644
--- a/grammar/Makefile
+++ b/grammar/Makefile
@@ -2,7 +2,8 @@ all: odf grammarnew.py
 
 #simplified-7-22.rng: OpenDocument-strict-schema-v1.2-draft7.rng OpenDocument-schema-v1.0-os.rng
 #simple-schema-7-22.rng: OpenDocument-strict-schema-v1.0-os.rng OpenDocument-schema-v1.0-os.rng simplification.xsl
-simple-schema-7-22.rng: OpenDocument-strict-schema-v1.1.rng OpenDocument-schema-v1.1.rng simplification.xsl
+#simple-schema-7-22.rng: OpenDocument-strict-schema-v1.1.rng OpenDocument-schema-v1.1.rng simplification.xsl
+simple-schema-7-22.rng: OpenDocument-v1.2-os-schema.rng simplification.xsl
 	xsltproc --stringparam out-name simple-schema- simplification.xsl $<
 
 simple-manifest-7-22.rng: OpenDocument-manifest-schema-v1.0-os.rng simplification.xsl
@@ -17,7 +18,7 @@ allowed_children.py: simple-schema-7-22.rng simple-manifest-7-22.rng gen_allowed
 allows_text.py: simple-schema-7-22.rng simple-manifest-7-22.rng gen_allows_text.py
 	python gen_allows_text.py > allows_text.py
 
-required_attrs.py: simple-schema-7-22.rng simple-manifest-7-22.rng simple-manifest-7-22.rng
+required_attrs.py: simple-schema-7-22.rng simple-manifest-7-22.rng simple-manifest-7-22.rng gen_required_attrs.py
 	python gen_required_attrs.py > required_attrs.py
 
 allowed_attrs.py: simple-schema-7-22.rng simple-manifest-7-22.rng gen_allowed_attrs.py
diff --git a/grammar/gen_allowed_attrs.py b/grammar/gen_allowed_attrs.py
index 49467ea..80a8e6d 100755
--- a/grammar/gen_allowed_attrs.py
+++ b/grammar/gen_allowed_attrs.py
@@ -102,6 +102,7 @@ if __name__ == "__main__":
         e = elements[s]
         if e.name == u'__ANYNAME__':
             continue
+        if e.ns == DBNS: continue
         print "# allowed_attributes"
         if len(e.attrs.keys()) == 1 and e.attrs.values()[0].name == u'__ANYNAME__':
             print "\t(%sNS,u'%s'): None," % (nsdict.get(e.ns,'unknown').upper(), e.name)
diff --git a/grammar/gen_allowed_children.py b/grammar/gen_allowed_children.py
index cf199e9..3f634bd 100755
--- a/grammar/gen_allowed_children.py
+++ b/grammar/gen_allowed_children.py
@@ -144,17 +144,19 @@ from odf.namespaces import *'''
     print "allowed_children = {"
     for key in keys:
         definition = definitions[key]
-        for elmname in definition['elements']:
+        for elmname in sorted(definition['elements']):
             if elmname == u'__ANYNAME__':
                 continue
             ns = definition.get('ns','UNKNOWN')
+            if ns == DBNS: continue
             refs = definition['refs']
+            print "# allowed_children"
             if len(refs) == 1 and u'__ANYNAME__' in definitions[refs[0]]['elements']:
                 print "\t(%sNS,u'%s') : " % (nsdict.get(ns,'unknown').upper(), elmname)
                 print "\t\tNone,"
             else:
                 print "\t(%sNS,u'%s') : (" % (nsdict.get(ns,'unknown').upper(), elmname)
-                for r in refs:
+                for r in sorted(refs):
                     ns = definitions[r].get('ns','UNKNOWN')
                     for elmref in definitions[r]['elements']:
                         print "\t\t(%sNS,u'%s'), " % (nsdict.get(ns,'unknown').upper(), elmref)
diff --git a/grammar/gen_allows_text.py b/grammar/gen_allows_text.py
index 9d8a23b..d2b0690 100755
--- a/grammar/gen_allows_text.py
+++ b/grammar/gen_allows_text.py
@@ -121,7 +121,8 @@ if __name__ == "__main__":
         if val.get('type') is None:
             continue
         ns = val.get('ns','UNKNOWN')
-        for elmname in val['elements']:
+        if ns == DBNS: continue
+        for elmname in sorted(val['elements']):
             if elmname == u'__ANYNAME__':
                 continue
             print "\t(%sNS,u'%s')," % (nsdict.get(ns,'unknown').upper(), elmname)
diff --git a/grammar/gen_required_attrs.py b/grammar/gen_required_attrs.py
index 5f27751..337a942 100755
--- a/grammar/gen_required_attrs.py
+++ b/grammar/gen_required_attrs.py
@@ -107,7 +107,9 @@ if __name__ == "__main__":
     print "required_attributes = {"
     for s in slist:
         e = elements[s]
+        if e.ns == DBNS: continue
         if len(e.attrs) > 0:
+            print "# required_attributes"
             print "\t(%sNS,u'%s'):" % (nsdict.get(e.ns,'unknown').upper(), e.name),
             print "("
             for a in e.attrs.values():
diff --git a/grammar/test_grammar.py b/grammar/test_grammar.py
index 3b4caa8..1077626 100644
--- a/grammar/test_grammar.py
+++ b/grammar/test_grammar.py
@@ -24,11 +24,6 @@ import grammarnew
 
 from odf.namespaces import *
 
-# Bug in simplification.xsl
-grammarnew.allowed_children[(STYLENS,u'chart-properties')] = (
-                        (CHARTNS,u'symbol-image'),
-                                )
-
 class TestAllowedAtts(unittest.TestCase):
     def testNewAllowedAtts(self):
         "Testing grammarnew keys"
diff --git a/odf/attrconverters.py b/odf/attrconverters.py
index 00b08be..c9fac9f 100644
--- a/odf/attrconverters.py
+++ b/odf/attrconverters.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2006-2012 Søren Roug, European Environment Agency
+# Copyright (C) 2006-2013 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
@@ -28,6 +28,9 @@ def make_NCName(arg):
         arg = arg.replace(c,"_%x_" % ord(c))
     return arg
 
+def cnv_angle(attribute, arg, element):
+    return unicode(arg)
+
 def cnv_anyURI(attribute, arg, element):
     return unicode(arg)
 
@@ -76,6 +79,11 @@ def cnv_dateTime(attribute, arg, element):
 def cnv_double(attribute, arg, element):
     return str(arg)
 
+def cnv_draw_aspect(attribute, arg, element):
+    if str(arg) not in ("content", "thumbnail", "icon", "print-view"):
+        raise ValueError, "'%s' not allowed" % str(arg)
+    return str(arg)
+
 def cnv_duration(attribute, arg, element):
     return str(arg)
 
@@ -114,6 +122,14 @@ def cnv_IDREF(attribute, arg, element):
 def cnv_integer(attribute, arg, element):
     return str(arg)
 
+pattern_language = re.compile(r'[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*')
+
+def cnv_language(attribute, arg, element):
+    global pattern_language
+    if not pattern_language.match(arg):
+        raise ValueError, "'%s' is not a valid language token" % arg
+    return 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)
@@ -140,6 +156,11 @@ def cnv_lengthorpercent(attribute, arg, element):
         raise ValueError, "'%s' is not a valid length or percent" % arg
     return arg
 
+def cnv_list_linkage_type(attribute, arg, element):
+    if arg not in ('selection','selection-indices'):
+        raise ValueError, "'%s' is not either 'selection' or 'selection-indices'" % arg
+    return str(arg)
+
 def cnv_metavaluetype(attribute, arg, element):
     if str(arg) not in ("float", "date", "time", "boolean", "string"):
         raise ValueError, "'%s' not allowed" % str(arg)
@@ -148,6 +169,7 @@ def cnv_metavaluetype(attribute, arg, element):
 def cnv_major_minor(attribute, arg, element):
     if arg not in ('major','minor'):
         raise ValueError, "'%s' is not either 'minor' or 'major'" % arg
+    return str(arg)
 
 pattern_namespacedToken = re.compile(r'[0-9a-zA-Z_]+:[0-9a-zA-Z._\-]+')
 
@@ -221,9 +243,19 @@ def cnv_points(attribute, arg, element):
 def cnv_positiveInteger(attribute, arg, element):
     return str(arg)
 
+def cnv_rowOrCol(attribute, arg, element):
+    if str(arg) not in ("row","column"):
+        raise ValueError, "'%s' not allowed" % str(arg)
+    return str(arg)
+
 def cnv_string(attribute, arg, element):
     return unicode(arg)
 
+def cnv_stroke_linecap(attribute, arg, element):
+    if str(arg) not in ("butt", "square", "round"):
+        raise ValueError, "'%s' not allowed" % str(arg)
+    return str(arg)
+
 def cnv_textnoteclass(attribute, arg, element):
     if str(arg) not in ("footnote", "endnote"):
         raise ValueError, "'%s' not allowed" % str(arg)
@@ -263,6 +295,12 @@ attrconverters = {
 	((ANIMNS,u'sub-item'), None): cnv_string,
 	((ANIMNS,u'value'), None): cnv_string,
 #	((DBNS,u'type'), None): cnv_namespacedToken,
+	((CHARTNS,u'angle-offset'), None): cnv_angle,
+	((CHARTNS,u'automatic-content'), None): cnv_boolean,
+	((CHARTNS,u'auto-position'), None): cnv_boolean,
+	((CHARTNS,u'auto-size'), None): cnv_boolean,
+	((CHARTNS,u'axis-label-position'), None): cnv_string, # Multi-value
+	((CHARTNS,u'axis-position'), None): cnv_string, # Multi-value
 	((CHARTNS,u'attached-axis'), None): cnv_string,
 	((CHARTNS,u'class'), (CHARTNS,u'grid')): cnv_major_minor,
 	((CHARTNS,u'class'), None): cnv_namespacedToken,
@@ -274,21 +312,30 @@ attrconverters = {
 	((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-equation'), None): cnv_boolean,
 	((CHARTNS,u'display-label'), None): cnv_boolean,
+	((CHARTNS,u'display-r-square'), 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-lower-range'), None): cnv_string,
 	((CHARTNS,u'error-upper-indicator'), None): cnv_boolean,
 	((CHARTNS,u'error-upper-limit'), None): cnv_string,
+	((CHARTNS,u'error-upper-range'), None): cnv_string,
 	((CHARTNS,u'gap-width'), None): cnv_string,
+	((CHARTNS,u'group-bars-per-axis'), None): cnv_boolean,
+	((CHARTNS,u'hole-size'), None): cnv_percent,
+	((CHARTNS,u'include-hidden-cells'), None): cnv_boolean,
 	((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'label-position'), None): cnv_string, # Multi-value
+	((CHARTNS,u'label-position-negative'), None): cnv_string, # Multi-value
 	((CHARTNS,u'legend-align'), None): cnv_string,
 	((CHARTNS,u'legend-position'), None): cnv_legend_position,
 	((CHARTNS,u'lines'), None): cnv_boolean,
@@ -304,10 +351,13 @@ attrconverters = {
 	((CHARTNS,u'pie-offset'), None): cnv_string,
 	((CHARTNS,u'regression-type'), None): cnv_string,
 	((CHARTNS,u'repeated'), None): cnv_nonNegativeInteger,
+	((CHARTNS,u'reverse-direction'), None): cnv_boolean,
+	((CHARTNS,u'right-angled-axes'), None): cnv_boolean,
 	((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'sort-by-x-values'), None): cnv_boolean,
 	((CHARTNS,u'spline-order'), None): cnv_string,
 	((CHARTNS,u'spline-resolution'), None): cnv_string,
 	((CHARTNS,u'stacked'), None): cnv_boolean,
@@ -318,10 +368,12 @@ attrconverters = {
 	((CHARTNS,u'symbol-width'), None): cnv_string,
 	((CHARTNS,u'text-overlap'), None): cnv_boolean,
 	((CHARTNS,u'three-dimensional'), None): cnv_boolean,
+	((CHARTNS,u'tick-mark-position'), None): cnv_string, # Multi-value
 	((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'treat-empty-cells'), None): cnv_string, # Multi-value
 	((CHARTNS,u'values-cell-range-address'), None): cnv_string,
 	((CHARTNS,u'vertical'), None): cnv_boolean,
 	((CHARTNS,u'visible'), None): cnv_boolean,
@@ -411,7 +463,8 @@ attrconverters = {
 	((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'draw-aspect'), None): cnv_draw_aspect,
+	((DRAWNS,u'end-angle'), None): cnv_angle,
 	((DRAWNS,u'end'), None): cnv_string,
 	((DRAWNS,u'end-color'), None): cnv_string,
 	((DRAWNS,u'end-glue-point'), None): cnv_nonNegativeInteger,
@@ -535,7 +588,7 @@ attrconverters = {
 	((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-angle'), None): cnv_angle,
 	((DRAWNS,u'start'), None): cnv_string,
 	((DRAWNS,u'start-color'), None): cnv_string,
 	((DRAWNS,u'start-glue-point'), None): cnv_nonNegativeInteger,
@@ -619,6 +672,7 @@ attrconverters = {
 	((FONS,u'padding-top'), None): cnv_string,
 	((FONS,u'page-height'), None): cnv_length,
 	((FONS,u'page-width'), None): cnv_length,
+	((FONS,u'script'), None): cnv_token,
 	((FONS,u'space-after'), None): cnv_length,
 	((FONS,u'space-before'), None): cnv_length,
 	((FONS,u'start-indent'), None): cnv_length,
@@ -669,6 +723,8 @@ attrconverters = {
 	((FORMNS,u'image-position'), None): cnv_string,
 	((FORMNS,u'is-tristate'), None): cnv_boolean,
 	((FORMNS,u'label'), None): cnv_string,
+	((FORMNS,u'linked-cell'), None): cnv_string,
+	((FORMNS,u'list-linkage-type'), None): cnv_list_linkage_type,
 	((FORMNS,u'list-source'), None): cnv_string,
 	((FORMNS,u'list-source-type'), None): cnv_string,
 	((FORMNS,u'master-fields'), None): cnv_string,
@@ -692,8 +748,11 @@ attrconverters = {
 	((FORMNS,u'printable'), None): cnv_boolean,
 	((FORMNS,u'property-name'), None): cnv_string,
 	((FORMNS,u'readonly'), None): cnv_boolean,
+	((FORMNS,u'repeat'), None): cnv_boolean,
 	((FORMNS,u'selected'), None): cnv_boolean,
 	((FORMNS,u'size'), None): cnv_nonNegativeInteger,
+	((FORMNS,u'source-cell-range'), None): cnv_string,
+	((FORMNS,u'spin-button'), None): cnv_boolean,
 	((FORMNS,u'state'), None): cnv_string,
 	((FORMNS,u'step-size'), None): cnv_positiveInteger,
 	((FORMNS,u'tab-cycle'), None): cnv_string,
@@ -710,16 +769,19 @@ attrconverters = {
 	((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,
+        ((GRDDLNS,u'transformation'), None): cnv_string,
+	((MANIFESTNS,u'algorithm-name'), None): cnv_string,
+	((MANIFESTNS,u'checksum'), None): cnv_string,
+	((MANIFESTNS,u'checksum-type'), None): cnv_string,
+	((MANIFESTNS,u'full-path'), None): cnv_string,
+	((MANIFESTNS,u'initialisation-vector'), None): cnv_string,
+	((MANIFESTNS,u'iteration-count'), None): cnv_nonNegativeInteger,
+	((MANIFESTNS,u'key-derivation-name'), None): cnv_string,
+	((MANIFESTNS,u'media-type'), None): cnv_string,
+	((MANIFESTNS,u'preferred-view-mode'), None): cnv_string,
+	((MANIFESTNS,u'salt'), None): cnv_string,
+	((MANIFESTNS,u'size'), None): cnv_nonNegativeInteger,
+	((MANIFESTNS,u'version'), None): cnv_string,
 	((METANS,u'cell-count'), None): cnv_nonNegativeInteger,
 	((METANS,u'character-count'), None): cnv_nonNegativeInteger,
 	((METANS,u'date'), None): cnv_dateTime,
@@ -755,6 +817,8 @@ attrconverters = {
 	((NUMBERNS,u'min-numerator-digits'), None): cnv_integer,
 	((NUMBERNS,u'position'), None): cnv_integer,
 	((NUMBERNS,u'possessive-form'), None): cnv_boolean,
+	((NUMBERNS,u'rfc-language-tag'), None): cnv_language,
+	((NUMBERNS,u'script'), None): cnv_token,
 	((NUMBERNS,u'style'), None): cnv_string,
 	((NUMBERNS,u'textual'), None): cnv_boolean,
 	((NUMBERNS,u'title'), None): cnv_string,
@@ -941,10 +1005,12 @@ attrconverters = {
 	((STYLENS,u'height'), None): cnv_string,
 	((STYLENS,u'horizontal-pos'), None): cnv_string,
 	((STYLENS,u'horizontal-rel'), None): cnv_string,
+	((STYLENS,u'join-border'), None): cnv_boolean,
 	((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-base-width'), 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,
@@ -952,6 +1018,8 @@ attrconverters = {
 	((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'layout-grid-snap-to'), None): cnv_boolean,
+	((STYLENS,u'layout-grid-standard-mode'), None): cnv_boolean,
 	((STYLENS,u'leader-char'), None): cnv_string,
 	((STYLENS,u'leader-color'), None): cnv_string,
 	((STYLENS,u'leader-style'), None): cnv_string,
@@ -968,6 +1036,7 @@ attrconverters = {
 	((STYLENS,u'line-spacing'), None): cnv_length,
 	((STYLENS,u'line-style'), None): cnv_string,
 	((STYLENS,u'lines'), None): cnv_positiveInteger,
+	((STYLENS,u'list-level'), 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,
@@ -987,6 +1056,7 @@ attrconverters = {
 	((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'percentage-data-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,
@@ -1004,6 +1074,9 @@ attrconverters = {
 	((STYLENS,u'rel-width'), None): cnv_string,
 	((STYLENS,u'repeat'), None): cnv_string,
 	((STYLENS,u'repeat-content'), None): cnv_boolean,
+	((STYLENS,u'rfc-language-tag'), None): cnv_language,
+	((STYLENS,u'rfc-language-tag-asian'), None): cnv_language,
+	((STYLENS,u'rfc-language-tag-complex'), None): cnv_language,
 	((STYLENS,u'rotation-align'), None): cnv_string,
 	((STYLENS,u'rotation-angle'), None): cnv_string,
 	((STYLENS,u'row-height'), None): cnv_string,
@@ -1012,6 +1085,8 @@ attrconverters = {
 	((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-asian'), None): cnv_string,
+	((STYLENS,u'script-complex'), None): cnv_string,
 	((STYLENS,u'script-type'), None): cnv_string,
 	((STYLENS,u'shadow'), None): cnv_string,
 	((STYLENS,u'shrink-to-fit'), None): cnv_boolean,
@@ -1035,6 +1110,11 @@ attrconverters = {
 	((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-overline-color'), None): cnv_string,
+	((STYLENS,u'text-overline-mode'), None): cnv_string,
+	((STYLENS,u'text-overline-style'), None): cnv_string,
+	((STYLENS,u'text-overline-type'), None): cnv_string,
+	((STYLENS,u'text-overline-width'), None): cnv_string,
 	((STYLENS,u'text-position'), None): cnv_string,
 	((STYLENS,u'text-rotation-angle'), None): cnv_string,
 	((STYLENS,u'text-rotation-scale'), None): cnv_string,
@@ -1103,6 +1183,7 @@ attrconverters = {
 	((SVGNS,u'strikethrough-thickness'), None): cnv_integer,
 	((SVGNS,u'string'), None): cnv_string,
 	((SVGNS,u'stroke-color'), None): cnv_string,
+	((SVGNS,u'stroke-linecap'), None): cnv_stroke_linecap,
 	((SVGNS,u'stroke-opacity'), None): cnv_string,
 	((SVGNS,u'stroke-width'), None): cnv_length,
 	((SVGNS,u'type'), None): cnv_string,
@@ -1173,6 +1254,7 @@ attrconverters = {
 	((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'embedded-number-behavior'), None): cnv_string,
 	((TABLENS,u'enabled'), None): cnv_boolean,
 	((TABLENS,u'end-cell-address'), None): cnv_string,
 	((TABLENS,u'end'), None): cnv_string,
@@ -1189,6 +1271,8 @@ attrconverters = {
 	((TABLENS,u'field-number'), None): cnv_string,
 	((TABLENS,u'filter-name'), None): cnv_string,
 	((TABLENS,u'filter-options'), None): cnv_string,
+	((TABLENS,u'first-row-end-column'), None): cnv_rowOrCol,
+	((TABLENS,u'first-row-start-column'), None): cnv_rowOrCol,
 	((TABLENS,u'formula'), None): cnv_formula,
 	((TABLENS,u'function'), None): cnv_string,
 	((TABLENS,u'function'), None): cnv_string,
@@ -1208,7 +1292,9 @@ attrconverters = {
 	((TABLENS,u'language'), None): cnv_token,
 	((TABLENS,u'language'), None): cnv_token,
 	((TABLENS,u'last-column-spanned'), None): cnv_positiveInteger,
+	((TABLENS,u'last-row-end-column'), None): cnv_rowOrCol,
 	((TABLENS,u'last-row-spanned'), None): cnv_positiveInteger,
+	((TABLENS,u'last-row-start-column'), None): cnv_rowOrCol,
 	((TABLENS,u'layout-mode'), None): cnv_string,
 	((TABLENS,u'link-to-source-data'), None): cnv_boolean,
 	((TABLENS,u'marked-invalid'), None): cnv_boolean,
@@ -1238,6 +1324,7 @@ attrconverters = {
 	((TABLENS,u'orientation'), None): cnv_string,
 	((TABLENS,u'orientation'), None): cnv_string,
 	((TABLENS,u'page-breaks-on-group-change'), None): cnv_boolean,
+	((TABLENS,u'paragraph-style-name'), None): cnv_StyleNameRef,
 	((TABLENS,u'parse-sql-statement'), None): cnv_boolean,
 	((TABLENS,u'password'), None): cnv_string,
 	((TABLENS,u'position'), None): cnv_integer,
@@ -1247,13 +1334,16 @@ attrconverters = {
 	((TABLENS,u'protect'), None): cnv_boolean,
 	((TABLENS,u'protected'), None): cnv_boolean,
 	((TABLENS,u'protection-key'), None): cnv_string,
+	((TABLENS,u'protection-key-digest-algorithm'), None): cnv_anyURI,
 	((TABLENS,u'query-name'), None): cnv_string,
 	((TABLENS,u'range-usable-as'), None): cnv_string,
+	((TABLENS,u'rfc-language-tag'), None): cnv_language,
 	((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'script'), 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,
@@ -1284,11 +1374,19 @@ attrconverters = {
 	((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'template-name'), 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-banding-columns-styles'), None): cnv_boolean,
+	((TABLENS,u'use-banding-rows-styles'), None): cnv_boolean,
+	((TABLENS,u'use-first-column-styles'), None): cnv_boolean,
+	((TABLENS,u'use-first-row-styles'), None): cnv_boolean,
 	((TABLENS,u'use-labels'), None): cnv_string,
+	((TABLENS,u'use-last-column-styles'), None): cnv_boolean,
+	((TABLENS,u'use-last-row-styles'), None): cnv_boolean,
 	((TABLENS,u'use-regular-expressions'), None): cnv_boolean,
+	((TABLENS,u'use-wildcards'), None): cnv_boolean,
 	((TABLENS,u'used-hierarchy'), None): cnv_integer,
 	((TABLENS,u'user-name'), None): cnv_string,
 	((TABLENS,u'value'), None): cnv_string,
@@ -1332,6 +1430,7 @@ attrconverters = {
 	((TEXTNS,u'condition'), None): cnv_formula,
 	((TEXTNS,u'connection-name'), None): cnv_string,
 	((TEXTNS,u'consecutive-numbering'), None): cnv_boolean,
+	((TEXTNS,u'continue-list'), None): cnv_IDREF,
 	((TEXTNS,u'continue-numbering'), None): cnv_boolean,
 	((TEXTNS,u'copy-outline-levels'), None): cnv_boolean,
 	((TEXTNS,u'count-empty-lines'), None): cnv_boolean,
@@ -1356,8 +1455,6 @@ attrconverters = {
 	((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,
@@ -1384,11 +1481,13 @@ attrconverters = {
 	((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'label-followed-by'), 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'list-id'), None): cnv_NCName,
+	((TEXTNS,u'list-level-position-and-space-mode'), None): cnv_string,
+	((TEXTNS,u'list-tab-stop-position'), None): cnv_length,
 	((TEXTNS,u'main-entry'), None): cnv_boolean,
 	((TEXTNS,u'main-entry-style-name'), None): cnv_StyleNameRef,
 	((TEXTNS,u'master-page-name'), None): cnv_StyleNameRef,
@@ -1407,11 +1506,11 @@ attrconverters = {
 	((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'protection-key-digest-algorithm'), None): cnv_anyURI,
 	((TEXTNS,u'publisher'), None): cnv_string,
 	((TEXTNS,u'ref-name'), None): cnv_string,
 	((TEXTNS,u'reference-format'), None): cnv_string,
@@ -1437,6 +1536,7 @@ attrconverters = {
 	((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'style-override'), None): cnv_StyleNameRef,
 	((TEXTNS,u'suffix'), None): cnv_string,
 	((TEXTNS,u'tab-ref'), None): cnv_nonNegativeInteger,
 	((TEXTNS,u'table-name'), None): cnv_string,
@@ -1467,11 +1567,16 @@ attrconverters = {
 	((TEXTNS,u'volume'), None): cnv_string,
 	((TEXTNS,u'year'), None): cnv_string,
 	((XFORMSNS,u'bind'), None): cnv_string,
+	((XHTMLNS,u'about'), None): cnv_anyURI,
+	((XHTMLNS,u'content'), None): cnv_string,
+	((XHTMLNS,u'datatype'), None): cnv_anyURI,
+	((XHTMLNS,u'property'), None): cnv_anyURI,
 	((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,
+	((XMLNS,u'id'), None): cnv_NCName,
 }
 
 class AttrConverters:
diff --git a/odf/chart.py b/odf/chart.py
index cca8396..98d572e 100644
--- a/odf/chart.py
+++ b/odf/chart.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
+# Copyright (C) 2006-2013 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
@@ -31,12 +31,18 @@ def Categories(**args):
 def Chart(**args):
     return Element(qname = (CHARTNS,'chart'), **args)
 
+def DataLabel(**args):
+    return Element(qname = (CHARTNS,'data-label'), **args)
+
 def DataPoint(**args):
     return Element(qname = (CHARTNS,'data-point'), **args)
 
 def Domain(**args):
     return Element(qname = (CHARTNS,'domain'), **args)
 
+def Equation(**args):
+    return Element(qname = (CHARTNS,'equation'), **args)
+
 def ErrorIndicator(**args):
     return Element(qname = (CHARTNS,'error-indicator'), **args)
 
@@ -49,6 +55,9 @@ def Footer(**args):
 def Grid(**args):
     return Element(qname = (CHARTNS,'grid'), **args)
 
+def LabelSeparator(**args):
+    return Element(qname = (CHARTNS,'label-separator'), **args)
+
 def Legend(**args):
     return Element(qname = (CHARTNS,'legend'), **args)
 
diff --git a/odf/grammar.py b/odf/grammar.py
index d5d8d59..debe34e 100644
--- a/odf/grammar.py
+++ b/odf/grammar.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2006-2010 Søren Roug, European Environment Agency
+# Copyright (C) 2006-2013 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
@@ -27,28 +27,36 @@ 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
+#       Open Document Format for Office Applications (OpenDocument) Version 1.2
+#       OASIS Standard, 29 September 2011
+#       Relax-NG Schema
+#       Source: http://docs.oasis-open.org/office/v1.2/os/
+#       Copyright (c) OASIS Open 2002-2011. All Rights Reserved.
 
-#   $Id$
+#       All capitalized terms in the following text have the meanings assigned to them
+#       in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The
+#       full Policy may be found at the OASIS website.
 
-#   © 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 section are included on all such copies and derivative works.
+#       However, this document itself may not be modified in any way, including by
+#       removing the copyright notice or references to OASIS, except as needed for the
+#       purpose of developing any document or deliverable produced by an OASIS
+#       Technical Committee (in which case the rules applicable to copyrights, as set
+#       forth in the OASIS IPR Policy, must be followed) or as required to translate it
+#       into languages other than English.
 
-#   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.
-#
+#       The limited permissions granted above are perpetual and will not be revoked by
+#       OASIS or its successors or assigns.
+
+#       This document and the information contained herein is provided on an "AS IS"
+#       basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+#       LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
+#       INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
+#       FITNESS FOR A PARTICULAR PURPOSE. 
 
 allowed_children = {
 	(DCNS,u'creator') : (
@@ -163,10 +171,18 @@ allowed_children = {
 		(CHARTNS,u'title'),
 		(TABLENS,u'table'),
 	),
+	(CHARTNS,u'data-label') : (
+		(TEXTNS,u'p'),
+	),
 	(CHARTNS,u'data-point') : (
+		(CHARTNS,u'data-label'),
 	),
 	(CHARTNS,u'domain') : (
 	),
+# allowed_children
+	(CHARTNS,u'equation') : (
+		(TEXTNS,u'p'),
+	),
 	(CHARTNS,u'error-indicator') : (
 	),
 	(CHARTNS,u'floor') : (
@@ -176,7 +192,11 @@ allowed_children = {
 	),
 	(CHARTNS,u'grid') : (
 	),
+	(CHARTNS,u'label-separator') : (
+		(TEXTNS,u'p'),
+	),
 	(CHARTNS,u'legend') : (
+		(TEXTNS,u'p'),
 	),
 # allowed_children
 	(CHARTNS,u'mean-value') : (
@@ -192,8 +212,10 @@ allowed_children = {
 		(DR3DNS,u'light'),
 	),
 	(CHARTNS,u'regression-curve') : (
+		(CHARTNS,u'equation'),
 	),
 	(CHARTNS,u'series') : (
+		(CHARTNS,u'data-label'),
 		(CHARTNS,u'data-point'),
 		(CHARTNS,u'domain'),
 		(CHARTNS,u'error-indicator'),
@@ -369,13 +391,30 @@ allowed_children = {
 		(DR3DNS,u'rotate'),
 		(DR3DNS,u'scene'),
 		(DR3DNS,u'sphere'),
+		(DRAWNS,u'glue-point'),
 		(SVGNS,u'title'),
 		(SVGNS,u'desc'),
 	),
 	(DR3DNS,u'sphere') : (
 	),
 	(DRAWNS,u'a') : (
-		(DRAWNS,u'frame'),
+		(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
 	(DRAWNS,u'applet') : (
@@ -474,10 +513,12 @@ allowed_children = {
 		(OFFICENS,u'event-listeners'),
 		(SVGNS,u'desc'),
 		(SVGNS,u'title'),
+		(TABLENS,u'table'),
 	),
 # allowed_children
 	(DRAWNS,u'g') : (
 		(DR3DNS,u'scene'),
+		(DRAWNS,u'a'),
 		(DRAWNS,u'caption'),
 		(DRAWNS,u'circle'),
 		(DRAWNS,u'connector'),
@@ -566,6 +607,7 @@ allowed_children = {
 		(ANIMNS,u'set'),
 		(ANIMNS,u'transitionFilter'),
 		(DR3DNS,u'scene'),
+		(DRAWNS,u'a'),
 		(DRAWNS,u'caption'),
 		(DRAWNS,u'circle'),
 		(DRAWNS,u'connector'),
@@ -574,6 +616,7 @@ allowed_children = {
 		(DRAWNS,u'ellipse'),
 		(DRAWNS,u'frame'),
 		(DRAWNS,u'g'),
+		(DRAWNS,u'layer-set'),
 		(DRAWNS,u'line'),
 		(DRAWNS,u'measure'),
 		(DRAWNS,u'page-thumbnail'),
@@ -585,6 +628,8 @@ allowed_children = {
 		(OFFICENS,u'forms'),
 		(PRESENTATIONNS,u'animations'),
 		(PRESENTATIONNS,u'notes'),
+		(SVGNS,u'desc'),
+		(SVGNS,u'title'),
 	),
 # allowed_children
 	(DRAWNS,u'page-thumbnail') : (
@@ -694,6 +739,7 @@ allowed_children = {
 		(FORMNS,u'number'),
 		(FORMNS,u'text'),
 		(FORMNS,u'textarea'),
+		(FORMNS,u'time'),
 	),
 	(FORMNS,u'combobox') : (
 		(FORMNS,u'item'),
@@ -790,6 +836,7 @@ allowed_children = {
 		(FORMNS,u'properties'),
 		(OFFICENS,u'event-listeners'),
 	),
+# allowed_children
 	(FORMNS,u'number') : (
 		(FORMNS,u'properties'),
 		(OFFICENS,u'event-listeners'),
@@ -819,6 +866,7 @@ allowed_children = {
 		(OFFICENS,u'event-listeners'),
 		(TEXTNS,u'p'),
 	),
+# allowed_children
 	(FORMNS,u'time') : (
 		(FORMNS,u'properties'),
 		(OFFICENS,u'event-listeners'),
@@ -863,6 +911,9 @@ allowed_children = {
 		(TEXTNS,u'list'),
 		(TEXTNS,u'p'),
 	),
+# allowed_children
+	(OFFICENS,u'annotation-end') : (
+	),
 	(OFFICENS,u'automatic-styles') : (
 		(NUMBERNS,u'boolean-style'),
 		(NUMBERNS,u'currency-style'),
@@ -971,7 +1022,6 @@ allowed_children = {
 		(DRAWNS,u'layer-set'),
 		(STYLENS,u'handout-master'),
 		(STYLENS,u'master-page'),
-		(TABLENS,u'table-template'),
 	),
 	(OFFICENS,u'meta') : (
 		(DCNS,u'creator'),
@@ -1066,11 +1116,13 @@ allowed_children = {
 		(DRAWNS,u'marker'),
 		(DRAWNS,u'opacity'),
 		(DRAWNS,u'stroke-dash'),
+		(STYLENS,u'default-page-layout'),
 		(STYLENS,u'default-style'),
 		(STYLENS,u'presentation-page-layout'),
 		(STYLENS,u'style'),
 		(SVGNS,u'linearGradient'),
 		(SVGNS,u'radialGradient'),
+		(TABLENS,u'table-template'),
 		(TEXTNS,u'bibliography-configuration'),
 		(TEXTNS,u'linenumbering-configuration'),
 		(TEXTNS,u'list-style'),
@@ -1174,6 +1226,7 @@ allowed_children = {
 # allowed_children
 	(PRESENTATIONNS,u'notes') : (
 		(DR3DNS,u'scene'),
+		(DRAWNS,u'a'),
 		(DRAWNS,u'caption'),
 		(DRAWNS,u'circle'),
 		(DRAWNS,u'connector'),
@@ -1214,7 +1267,9 @@ allowed_children = {
 	(STYLENS,u'background-image') : (
 		(OFFICENS,u'binary-data'),
 	),
+# allowed_children
 	(STYLENS,u'chart-properties') : (
+		(CHARTNS,u'label-separator'),
 		(CHARTNS,u'symbol-image'),
 	),
 	(STYLENS,u'column') : (
@@ -1225,6 +1280,12 @@ allowed_children = {
 		(STYLENS,u'column'),
 		(STYLENS,u'column-sep'),
 	),
+# allowed_children
+	(STYLENS,u'default-page-layout') : (
+		(STYLENS,u'page-layout-properties'),
+		(STYLENS,u'header-style'),
+		(STYLENS,u'footer-style'),
+	),
 	(STYLENS,u'default-style') : (
 		(STYLENS,u'chart-properties'),
 		(STYLENS,u'drawing-page-properties'),
@@ -1315,6 +1376,7 @@ allowed_children = {
 # allowed_children
 	(STYLENS,u'handout-master') : (
 		(DR3DNS,u'scene'),
+		(DRAWNS,u'a'),
 		(DRAWNS,u'caption'),
 		(DRAWNS,u'circle'),
 		(DRAWNS,u'connector'),
@@ -1393,35 +1455,51 @@ allowed_children = {
 	(STYLENS,u'header-style') : (
 		(STYLENS,u'header-footer-properties'),
 	),
+# allowed_children
+	(STYLENS,u'list-level-label-alignment') : (
+	),
 	(STYLENS,u'list-level-properties') : (
+		(STYLENS,u'list-level-label-alignment'),
 	),
 	(STYLENS,u'map') : (
 	),
 	(STYLENS,u'master-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'a'), 
 		(DRAWNS,u'caption'),
 		(DRAWNS,u'circle'),
-		(DRAWNS,u'connector'),
+		(DRAWNS,u'connector'), 
 		(DRAWNS,u'control'),
 		(DRAWNS,u'custom-shape'),
 		(DRAWNS,u'ellipse'),
-		(DRAWNS,u'frame'),
-		(DRAWNS,u'g'),
-		(DRAWNS,u'line'),
+		(DRAWNS,u'frame'), 
+		(DRAWNS,u'g'), 
+		(DRAWNS,u'layer-set'),
+		(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'),
+		(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'header-left'), 
 	),
 	(STYLENS,u'page-layout') : (
 		(STYLENS,u'footer-style'),
@@ -1516,6 +1594,9 @@ allowed_children = {
 	),
 	(SVGNS,u'title') : (
 	),
+# allowed_children
+	(TABLENS,u'background') : (
+	),
 	(TABLENS,u'body') : (
 	),
 	(TABLENS,u'calculation-settings') : (
@@ -1690,6 +1771,9 @@ allowed_children = {
 	),
 	(TABLENS,u'dependency') : (
 	),
+# allowed_children
+	(TABLENS,u'desc') : (
+	),
 	(TABLENS,u'detective') : (
 		(TABLENS,u'highlighted-range'),
 		(TABLENS,u'operation'),
@@ -1714,12 +1798,16 @@ allowed_children = {
 		(TABLENS,u'filter-or'),
 	),
 	(TABLENS,u'filter-condition') : (
+		(TABLENS,u'filter-set-item'),
 	),
 	(TABLENS,u'filter-or') : (
 		(TABLENS,u'filter-and'),
 		(TABLENS,u'filter-condition'),
 	),
 # allowed_children
+	(TABLENS,u'filter-set-item') : (
+	),
+# allowed_children
 	(TABLENS,u'first-column') : (
 	),
 	(TABLENS,u'first-row') : (
@@ -1780,6 +1868,7 @@ allowed_children = {
 	),
 	(TABLENS,u'shapes') : (
 		(DR3DNS,u'scene'),
+		(DRAWNS,u'a'),
 		(DRAWNS,u'caption'),
 		(DRAWNS,u'circle'),
 		(DRAWNS,u'connector'),
@@ -1825,7 +1914,8 @@ allowed_children = {
 	(TABLENS,u'table') : (
 		(OFFICENS,u'dde-source'),
 		(OFFICENS,u'forms'),
-		(TEXTNS,u'soft-page-break'),
+		(TABLENS,u'desc'),
+		(TABLENS,u'named-expressions'),
 		(TABLENS,u'scenario'),
 		(TABLENS,u'shapes'),
 		(TABLENS,u'table-column'),
@@ -1837,6 +1927,8 @@ allowed_children = {
 		(TABLENS,u'table-row-group'),
 		(TABLENS,u'table-rows'),
 		(TABLENS,u'table-source'),
+		(TABLENS,u'title'),
+		(TEXTNS,u'soft-page-break'),
 	),
 	(TABLENS,u'table-cell') : (
 		(DR3DNS,u'scene'),
@@ -1916,6 +2008,7 @@ allowed_children = {
 	(TABLENS,u'table-source') : (
 	),
 	(TABLENS,u'table-template') : (
+		(TABLENS,u'background'),
 		(TABLENS,u'body'),
 		(TABLENS,u'even-columns'),
 		(TABLENS,u'even-rows'),
@@ -1928,6 +2021,9 @@ allowed_children = {
 	),
 	(TABLENS,u'target-range-address') : (
 	),
+# allowed_children
+	(TABLENS,u'title') : (
+	),
 	(TABLENS,u'tracked-changes') : (
 		(TABLENS,u'cell-content-change'),
 		(TABLENS,u'deletion'),
@@ -1955,11 +2051,11 @@ allowed_children = {
 		(DRAWNS,u'rect'),
 		(DRAWNS,u'regular-polygon'),
 		(OFFICENS,u'annotation'),
+		(OFFICENS,u'annotation-end'),
 		(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'),
@@ -1974,6 +2070,7 @@ allowed_children = {
 		(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'),
@@ -1993,29 +2090,28 @@ allowed_children = {
 		(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'meta'),
+		(TEXTNS,u'meta-field'),
 		(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-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'print-time'),
 		(TEXTNS,u'reference-mark'),
 		(TEXTNS,u'reference-mark-end'),
 		(TEXTNS,u'reference-mark-start'),
@@ -2045,6 +2141,7 @@ allowed_children = {
 		(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'),
@@ -2062,6 +2159,8 @@ allowed_children = {
 		(TEXTNS,u'variable-get'),
 		(TEXTNS,u'variable-input'),
 		(TEXTNS,u'variable-set'),
+		(TEXTNS,u'word-count'),
+
 	),
 # allowed_children
 	(TEXTNS,u'alphabetical-index') : (
@@ -2241,6 +2340,7 @@ allowed_children = {
 		(DRAWNS,u'rect'),
 		(DRAWNS,u'regular-polygon'),
 		(OFFICENS,u'annotation'),
+		(OFFICENS,u'annotation-end'),
 		(PRESENTATIONNS,u'date-time'),
 		(PRESENTATIONNS,u'footer'),
 		(PRESENTATIONNS,u'header'),
@@ -2259,6 +2359,7 @@ allowed_children = {
 		(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'),
@@ -2278,30 +2379,29 @@ allowed_children = {
 		(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'meta'),
+		(TEXTNS,u'meta-field'),
 		(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-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'print-time'),
 		(TEXTNS,u'reference-mark'),
 		(TEXTNS,u'reference-mark-end'),
 		(TEXTNS,u'reference-mark-start'),
@@ -2331,6 +2431,7 @@ allowed_children = {
 		(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'),
@@ -2348,6 +2449,8 @@ allowed_children = {
 		(TEXTNS,u'variable-get'),
 		(TEXTNS,u'variable-input'),
 		(TEXTNS,u'variable-set'),
+		(TEXTNS,u'word-count'),
+
 	),
 # allowed_children
 	(TEXTNS,u'hidden-paragraph') : (
@@ -2359,6 +2462,7 @@ allowed_children = {
 		(TEXTNS,u'index-body'),
 	),
 	(TEXTNS,u'illustration-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'),
@@ -2522,119 +2626,32 @@ allowed_children = {
 	),
 	(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') : (
+	(TEXTNS,u'meta') : (
 		(DR3DNS,u'scene'),
-		(DRAWNS,u'a'),
-		(DRAWNS,u'caption'),
-		(DRAWNS,u'circle'),
+		(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'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'polygon'), 
+		(DRAWNS,u'polyline'), 
+		(DRAWNS,u'rect'), 
 		(DRAWNS,u'regular-polygon'),
 		(OFFICENS,u'annotation'),
+		(OFFICENS,u'annotation-end'),
 		(PRESENTATIONNS,u'date-time'),
 		(PRESENTATIONNS,u'footer'),
 		(PRESENTATIONNS,u'header'),
-		(TEXTNS,u'a'),
+		(TEXTNS,u'a'), 
 		(TEXTNS,u'alphabetical-index-mark'),
 		(TEXTNS,u'alphabetical-index-mark-end'),
 		(TEXTNS,u'alphabetical-index-mark-start'),
@@ -2674,6 +2691,8 @@ allowed_children = {
 		(TEXTNS,u'keywords'),
 		(TEXTNS,u'line-break'),
 		(TEXTNS,u'measure'),
+		(TEXTNS,u'meta'),
+		(TEXTNS,u'meta-field'),
 		(TEXTNS,u'modification-date'),
 		(TEXTNS,u'modification-time'),
 		(TEXTNS,u'note'),
@@ -2738,45 +2757,8 @@ allowed_children = {
 		(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') : (
+	(TEXTNS,u'meta-field') : (
 		(DR3DNS,u'scene'),
 		(DRAWNS,u'a'),
 		(DRAWNS,u'caption'),
@@ -2796,6 +2778,7 @@ allowed_children = {
 		(DRAWNS,u'rect'),
 		(DRAWNS,u'regular-polygon'),
 		(OFFICENS,u'annotation'),
+		(OFFICENS,u'annotation-end'),
 		(PRESENTATIONNS,u'date-time'),
 		(PRESENTATIONNS,u'footer'),
 		(PRESENTATIONNS,u'header'),
@@ -2814,6 +2797,7 @@ allowed_children = {
 		(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'),
@@ -2833,29 +2817,249 @@ allowed_children = {
 		(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'meta'),
+		(TEXTNS,u'meta-field'),
 		(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-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'),
+	),
+# allowed_children
+	(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-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'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'),
+		(OFFICENS,u'annotation-end'),
+		(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'meta'),
+		(TEXTNS,u'meta-field'),
+		(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'),
@@ -2885,6 +3089,7 @@ allowed_children = {
 		(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'),
@@ -2902,6 +3107,176 @@ allowed_children = {
 		(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'),
+		(OFFICENS,u'annotation-end'),
+		(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'meta'),
+		(TEXTNS,u'meta-field'),
+		(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'),
+
 	),
 # allowed_children
 	(TEXTNS,u'ruby-text') : (
@@ -3018,6 +3393,7 @@ allowed_children = {
 		(DRAWNS,u'rect'),
 		(DRAWNS,u'regular-polygon'),
 		(OFFICENS,u'annotation'),
+		(OFFICENS,u'annotation-end'),
 		(PRESENTATIONNS,u'date-time'),
 		(PRESENTATIONNS,u'footer'),
 		(PRESENTATIONNS,u'header'),
@@ -3059,6 +3435,8 @@ allowed_children = {
 		(TEXTNS,u'keywords'),
 		(TEXTNS,u'line-break'),
 		(TEXTNS,u'measure'),
+		(TEXTNS,u'meta'),
+		(TEXTNS,u'meta-field'),
 		(TEXTNS,u'modification-date'),
 		(TEXTNS,u'modification-time'),
 		(TEXTNS,u'note'),
@@ -3139,6 +3517,7 @@ allowed_children = {
 		(TEXTNS,u'table-index-source'),
 	),
 	(TEXTNS,u'table-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'),
@@ -3279,6 +3658,8 @@ allows_text = (
 	(PRESENTATIONNS,u'header-decl'),
 	(SVGNS,u'desc'),
 	(SVGNS,u'title'),
+	(TABLENS,u'desc'),
+	(TABLENS,u'title'),
 	(TEXTNS,u'a'),
 	(TEXTNS,u'author-initials'),
 	(TEXTNS,u'author-name'),
@@ -3305,13 +3686,15 @@ allows_text = (
 	(TEXTNS,u'hidden-paragraph'),
 	(TEXTNS,u'hidden-text'),
 	(TEXTNS,u'image-count'),
-# allowed_children
+# allows_text
 	(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'meta'),
+	(TEXTNS,u'meta-field'),
 	(TEXTNS,u'modification-date'),
 	(TEXTNS,u'modification-time'),
 	(TEXTNS,u'note-citation'),
@@ -3334,6 +3717,7 @@ allows_text = (
 	(TEXTNS,u'reference-ref'),
 	(TEXTNS,u'ruby-base'),
 	(TEXTNS,u'ruby-text'),
+# allows_text
 	(TEXTNS,u'script'),
 	(TEXTNS,u'sender-city'),
 	(TEXTNS,u'sender-company'),
@@ -3353,7 +3737,7 @@ allows_text = (
 	(TEXTNS,u'sequence'),
 	(TEXTNS,u'sequence-ref'),
 	(TEXTNS,u'sheet-name'),
-# allowed_children
+# allows_text
 	(TEXTNS,u'span'),
 	(TEXTNS,u'subject'),
 	(TEXTNS,u'table-count'),
@@ -3407,6 +3791,10 @@ required_attributes = {
 	(CHARTNS,u'chart'): (
 		(CHARTNS,u'class'),
 	),
+# required_attributes
+	(CHARTNS,u'error-indicator'): (
+		(CHARTNS,u'dimension'),
+	),
 	(CHARTNS,u'symbol-image'): (
 		(XLINKNS,u'href'),
 	),
@@ -3462,6 +3850,7 @@ required_attributes = {
 # required_attributes
 	(DRAWNS,u'a'): (
 		(XLINKNS,u'href'),
+		(XLINKNS,u'type'),
 	),
 	(DRAWNS,u'area-circle'): (
 		(SVGNS,u'cy'),
@@ -3482,6 +3871,10 @@ required_attributes = {
 		(SVGNS,u'height'),
 		(SVGNS,u'width'),
 	),
+# required_attributes
+	(DRAWNS,u'connector'): (
+		(SVGNS,u'viewBox'),
+	),
 	(DRAWNS,u'contour-path'): (
 		(DRAWNS,u'recreate-on-edit'),
 		(SVGNS,u'viewBox'),
@@ -3497,10 +3890,12 @@ required_attributes = {
 	),
 	(DRAWNS,u'fill-image'): (
 		(XLINKNS,u'href'),
+		(XLINKNS,u'type'),
 		(DRAWNS,u'name'),
 	),
 	(DRAWNS,u'floating-frame'): (
 		(XLINKNS,u'href'),
+		(XLINKNS,u'type'),
 	),
 	(DRAWNS,u'glue-point'): (
 		(SVGNS,u'y'),
@@ -3551,6 +3946,7 @@ required_attributes = {
 	),
 	(DRAWNS,u'plugin'): (
 		(XLINKNS,u'href'),
+		(XLINKNS,u'type'),
 	),
 	(DRAWNS,u'polygon'): (
 		(DRAWNS,u'points'),
@@ -3568,47 +3964,48 @@ required_attributes = {
 		(DRAWNS,u'name'),
 	),
 	(FORMNS,u'button'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(FORMNS,u'checkbox'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(FORMNS,u'combobox'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
+# required_attributes
 	(FORMNS,u'connection-resource'): (
 		(XLINKNS,u'href'),
 	),
 	(FORMNS,u'date'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(FORMNS,u'file'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(FORMNS,u'fixed-text'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(FORMNS,u'formatted-text'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(FORMNS,u'frame'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(FORMNS,u'generic-control'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(FORMNS,u'grid'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(FORMNS,u'hidden'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 # required_attributes
 	(FORMNS,u'image'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(FORMNS,u'image-frame'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(FORMNS,u'list-property'): (
 		(FORMNS,u'property-name'),
@@ -3617,31 +4014,31 @@ required_attributes = {
 		(OFFICENS,u'string-value'),
 	),
 	(FORMNS,u'listbox'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(FORMNS,u'number'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(FORMNS,u'password'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(FORMNS,u'property'): (
 		(FORMNS,u'property-name'),
 	),
 	(FORMNS,u'radio'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(FORMNS,u'text'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(FORMNS,u'textarea'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(FORMNS,u'time'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(FORMNS,u'value-range'): (
-		(FORMNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(MANIFESTNS,u'algorithm') : (
 		(MANIFESTNS,u'algorithm-name'),
@@ -3663,17 +4060,39 @@ required_attributes = {
 # required_attributes
 	(METANS,u'template'): (
 		(XLINKNS,u'href'),
+		(XLINKNS,u'type'),
 	),
 	(METANS,u'user-defined'): (
 		(METANS,u'name'),
 	),
-	(OFFICENS,u'dde-source'): (
-		(OFFICENS,u'dde-topic'),
-		(OFFICENS,u'dde-application'),
-		(OFFICENS,u'dde-item'),
+# required_attributes
+	(OFFICENS,u'annotation-end'): (
+		(OFFICENS,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'version'),
+	),
+# required_attributes
+	(OFFICENS,u'document-content'): (
+		(OFFICENS,u'version'),
+	),
+# required_attributes
+	(OFFICENS,u'document-meta'): (
+		(OFFICENS,u'version'),
+	),
+# required_attributes
+	(OFFICENS,u'document-settings'): (
+		(OFFICENS,u'version'),
 	),
-	(OFFICENS,u'document'): (
-		(OFFICENS,u'mimetype'),
+# required_attributes
+	(OFFICENS,u'document-styles'): (
+		(OFFICENS,u'version'),
 	),
 	(OFFICENS,u'script'): (
 		(SCRIPTNS,u'language'),
@@ -3725,6 +4144,7 @@ required_attributes = {
 	),
 	(PRESENTATIONNS,u'sound'): (
 		(XLINKNS,u'href'),
+		(XLINKNS,u'type'),
 	),
 	(SCRIPTNS,u'event-listener'): (
 		(SCRIPTNS,u'language'),
@@ -3750,6 +4170,10 @@ required_attributes = {
 		(STYLENS,u'apply-style-name'),
 		(STYLENS,u'condition'),
 	),
+# required_attributes
+	(STYLENS,u'list-level-label-alignment'): (
+		(TEXTNS,u'label-followed-by'),
+	),
 	(STYLENS,u'master-page'): (
 		(STYLENS,u'page-layout-name'),
 		(STYLENS,u'name'),
@@ -3768,9 +4192,11 @@ required_attributes = {
 	),
 	(SVGNS,u'definition-src'): (
 		(XLINKNS,u'href'),
+		(XLINKNS,u'type'),
 	),
 	(SVGNS,u'font-face-uri'): (
 		(XLINKNS,u'href'),
+		(XLINKNS,u'type'),
 	),
 	(SVGNS,u'linearGradient'): (
 		(DRAWNS,u'name'),
@@ -3782,8 +4208,11 @@ required_attributes = {
 		(SVGNS,u'offset'),
 	),
 # required_attributes
+	(TABLENS,u'background'): (
+		(TABLENS,u'style-name'),
+	),
 	(TABLENS,u'body'): (
-		(TEXTNS,u'style-name'),
+		(TABLENS,u'style-name'),
 	),
 	(TABLENS,u'cell-address'): (
 		(TABLENS,u'column'),
@@ -3797,6 +4226,7 @@ required_attributes = {
 		(TABLENS,u'last-row-spanned'),
 		(TABLENS,u'last-column-spanned'),
 		(XLINKNS,u'href'),
+		(XLINKNS,u'type'),
 		(TABLENS,u'name'),
 	),
 	(TABLENS,u'consolidation'): (
@@ -3873,22 +4303,27 @@ required_attributes = {
 	(TABLENS,u'dependency'): (
 		(TABLENS,u'id'),
 	),
+# required_attributes
 	(TABLENS,u'even-columns'): (
-		(TEXTNS,u'style-name'),
+		(TABLENS,u'style-name'),
 	),
 	(TABLENS,u'even-rows'): (
-		(TEXTNS,u'style-name'),
+		(TABLENS,u'style-name'),
 	),
 	(TABLENS,u'filter-condition'): (
 		(TABLENS,u'operator'),
 		(TABLENS,u'field-number'),
 		(TABLENS,u'value'),
 	),
+# required_attributes
+	(TABLENS,u'filter-set-item'): (
+		(TABLENS,u'value'),
+	),
 	(TABLENS,u'first-column'): (
-		(TEXTNS,u'style-name'),
+		(TABLENS,u'style-name'),
 	),
 	(TABLENS,u'first-row'): (
-		(TEXTNS,u'style-name'),
+		(TABLENS,u'style-name'),
 	),
 	(TABLENS,u'insertion'): (
 		(TABLENS,u'position'),
@@ -3906,10 +4341,10 @@ required_attributes = {
 		(TABLENS,u'orientation'),
 	),
 	(TABLENS,u'last-column'): (
-		(TEXTNS,u'style-name'),
+		(TABLENS,u'style-name'),
 	),
 	(TABLENS,u'last-row'): (
-		(TEXTNS,u'style-name'),
+		(TABLENS,u'style-name'),
 	),
 	(TABLENS,u'movement'): (
 		(TABLENS,u'id'),
@@ -3923,10 +4358,10 @@ required_attributes = {
 		(TABLENS,u'cell-range-address'),
 	),
 	(TABLENS,u'odd-columns'): (
-		(TEXTNS,u'style-name'),
+		(TABLENS,u'style-name'),
 	),
 	(TABLENS,u'odd-rows'): (
-		(TEXTNS,u'style-name'),
+		(TABLENS,u'style-name'),
 	),
 	(TABLENS,u'operation'): (
 		(TABLENS,u'index'),
@@ -3957,16 +4392,18 @@ required_attributes = {
 	),
 	(TABLENS,u'table-source'): (
 		(XLINKNS,u'href'),
+		(XLINKNS,u'type'),
 	),
 	(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'last-row-end-column'), # Deprecated
+#		(TABLENS,u'first-row-end-column'), # Deprecated
+		(TABLENS,u'name'),
+#		(TABLENS,u'last-row-start-column'), # Deprecated
+#		(TABLENS,u'first-row-start-column'), # Deprecated
 	),
 	(TEXTNS,u'a'): (
 		(XLINKNS,u'href'),
+		(XLINKNS,u'type'),
 	),
 # required_attributes
 	(TEXTNS,u'alphabetical-index'): (
@@ -3974,6 +4411,7 @@ required_attributes = {
 	),
 	(TEXTNS,u'alphabetical-index-auto-mark-file'): (
 		(XLINKNS,u'href'),
+		(XLINKNS,u'type'),
 	),
 	(TEXTNS,u'alphabetical-index-entry-template'): (
 		(TEXTNS,u'style-name'),
@@ -4018,7 +4456,7 @@ required_attributes = {
 		(TEXTNS,u'change-id'),
 	),
 	(TEXTNS,u'changed-region'): (
-		(TEXTNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(TEXTNS,u'chapter'): (
 		(TEXTNS,u'display'),
@@ -4096,6 +4534,9 @@ required_attributes = {
 	(TEXTNS,u'list-style'): (
 		(STYLENS,u'name'),
 	),
+	(TEXTNS,u'meta-field'): (
+		(XMLNS,u'id'),
+	),
 # required_attributes
 	(TEXTNS,u'measure'): (
 		(TEXTNS,u'kind'),
@@ -4109,12 +4550,20 @@ required_attributes = {
 	(TEXTNS,u'notes-configuration'): (
 		(TEXTNS,u'note-class'),
 	),
+# required_attributes
+	(TEXTNS,u'numbered-paragraph'): (
+		(TEXTNS,u'list-id'),
+	),
 	(TEXTNS,u'object-index'): (
 		(TEXTNS,u'name'),
 	),
 	(TEXTNS,u'object-index-entry-template'): (
 		(TEXTNS,u'style-name'),
 	),
+# required_attributes
+	(TEXTNS,u'outline-style'): (
+		(STYLENS,u'name'),
+	),
 	(TEXTNS,u'outline-level-style'): (
 		(TEXTNS,u'level'),
 	),
@@ -4387,9 +4836,14 @@ allowed_attributes = {
 		(SMILNS,u'begin'),
 		(SMILNS,u'dur'),
 		(SMILNS,u'end'),
+		(SMILNS,u'fill'),
+		(SMILNS,u'fillDefault'),
 		(SMILNS,u'repeatCount'),
 		(SMILNS,u'repeatDur'),
+		(SMILNS,u'restart'),
+		(SMILNS,u'restartDefault'),
 		(XLINKNS,u'href'),
+		(XMLNS,u'id'),
 	),
 	(ANIMNS,u'command'):(
 		(PRESENTATIONNS,u'node-type'),
@@ -4404,6 +4858,7 @@ allowed_attributes = {
 		(SMILNS,u'targetElement'),
 		(ANIMNS,u'id'),
 		(PRESENTATIONNS,u'master-element'),
+		(XMLNS,u'id'),
 	),
 # allowed_attributes
 	(ANIMNS,u'iterate'):(
@@ -4431,6 +4886,7 @@ allowed_attributes = {
 		(SMILNS,u'restart'),
 		(SMILNS,u'restartDefault'),
 		(SMILNS,u'targetElement'),
+		(XMLNS,u'id'),
 	),
 	(ANIMNS,u'par'):(
 		(PRESENTATIONNS,u'node-type'),
@@ -4453,6 +4909,7 @@ allowed_attributes = {
 		(ANIMNS,u'id'),
 		(SMILNS,u'restart'),
 		(PRESENTATIONNS,u'master-element'),
+		(XMLNS,u'id'),
 	),
 # allowed_attributes
 	(ANIMNS,u'param'):(
@@ -4480,6 +4937,7 @@ allowed_attributes = {
 		(SMILNS,u'repeatDur'),
 		(SMILNS,u'restart'),
 		(SMILNS,u'restartDefault'),
+		(XMLNS,u'id'),
 	),
 	(ANIMNS,u'set'):(
 		(ANIMNS,u'sub-item'),
@@ -4549,15 +5007,34 @@ allowed_attributes = {
 		(SVGNS,u'width'),
 		(CHARTNS,u'style-name'),
 		(CHARTNS,u'class'),
+		(XLINKNS,u'type'),
+		(XLINKNS,u'href'),
+		(XMLNS,u'id'),
+	),
+	(CHARTNS,u'data-label'):(
+		(CHARTNS,u'style-name'),
+		(SVGNS,u'x'),
+		(SVGNS,u'y'),
 	),
 	(CHARTNS,u'data-point'):(
 		(CHARTNS,u'repeated'),
 		(CHARTNS,u'style-name'),
+		(XMLNS,u'id'),
 	),
 	(CHARTNS,u'domain'):(
 		(TABLENS,u'cell-range-address'),
 	),
+# allowed_attributes
+	(CHARTNS,u'equation'):(
+		(CHARTNS,u'display-r-square'),
+		(CHARTNS,u'style-name'),
+		(CHARTNS,u'display-equation'),
+		(SVGNS,u'x'),
+		(SVGNS,u'y'),
+		(CHARTNS,u'automatic-content'),
+	),
 	(CHARTNS,u'error-indicator'):(
+		(CHARTNS,u'dimension'),
 		(CHARTNS,u'style-name'),
 	),
 	(CHARTNS,u'floor'):(
@@ -4575,6 +5052,9 @@ allowed_attributes = {
 		(CHARTNS,u'style-name'),
 		(CHARTNS,u'class'),
 	),
+# allowed_attributes
+	(CHARTNS,u'label-separator'):(
+	),
 	(CHARTNS,u'legend'):(
 		(CHARTNS,u'legend-align'),
 		(STYLENS,u'legend-expansion-aspect-ratio'),
@@ -4588,24 +5068,25 @@ allowed_attributes = {
 		(CHARTNS,u'style-name'),
 	),
 	(CHARTNS,u'plot-area'):(
+		(CHARTNS,u'data-source-has-labels'),
+		(CHARTNS,u'style-name'),
 		(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'projection'),
 		(DR3DNS,u'shade-mode'),
-		(DR3DNS,u'transform'),
 		(DR3DNS,u'shadow-slant'),
+		(DR3DNS,u'transform'),
+		(DR3DNS,u'vpn'),
+		(DR3DNS,u'vrp'),
+		(DR3DNS,u'vup'),
 		(SVGNS,u'height'),
 		(SVGNS,u'width'),
-		(CHARTNS,u'style-name'),
-		(DR3DNS,u'vup'),
-		(SVGNS,u'y'),
 		(SVGNS,u'x'),
-		(DR3DNS,u'vpn'),
+		(SVGNS,u'y'),
 		(TABLENS,u'cell-range-address'),
-		(DR3DNS,u'projection'),
+		(XMLNS,u'id'),
 	),
 	(CHARTNS,u'regression-curve'):(
 		(CHARTNS,u'style-name'),
@@ -4616,6 +5097,7 @@ allowed_attributes = {
 		(CHARTNS,u'values-cell-range-address'),
 		(CHARTNS,u'label-cell-address'),
 		(CHARTNS,u'class'),
+		(XMLNS,u'id'),
 	),
 	(CHARTNS,u'stock-gain-marker'):(
 		(CHARTNS,u'style-name'),
@@ -4668,6 +5150,8 @@ allowed_attributes = {
 	(NUMBERNS,u'boolean'):(
 	),
 	(NUMBERNS,u'boolean-style'):(
+		(NUMBERNS,u'rfc-language-tag'),
+		(NUMBERNS,u'script'),
 		(NUMBERNS,u'transliteration-language'),
 		(STYLENS,u'name'),
 		(STYLENS,u'display-name'),
@@ -4680,24 +5164,32 @@ allowed_attributes = {
 		(NUMBERNS,u'transliteration-country'),
 	),
 	(NUMBERNS,u'currency-style'):(
-		(NUMBERNS,u'transliteration-language'),
-		(STYLENS,u'name'),
-		(STYLENS,u'display-name'),
+		(NUMBERNS,u'rfc-language-tag'),
+		(NUMBERNS,u'script'),
+		(NUMBERNS,u'automatic-order'),
+		(NUMBERNS,u'country'),
 		(NUMBERNS,u'language'),
+		(NUMBERNS,u'rfc-language-tag'),
+		(NUMBERNS,u'script'),
 		(NUMBERNS,u'title'),
-		(NUMBERNS,u'country'),
+		(NUMBERNS,u'transliteration-country'),
 		(NUMBERNS,u'transliteration-format'),
+		(NUMBERNS,u'transliteration-language'),
 		(NUMBERNS,u'transliteration-style'),
+		(STYLENS,u'display-name'),
+		(STYLENS,u'name'),
 		(STYLENS,u'volatile'),
-		(NUMBERNS,u'transliteration-country'),
-		(NUMBERNS,u'automatic-order'),
 	),
 	(NUMBERNS,u'currency-symbol'):(
 		(NUMBERNS,u'country'),
 		(NUMBERNS,u'language'),
+		(NUMBERNS,u'rfc-language-tag'),
+		(NUMBERNS,u'script'),
 	),
 # allowed_attributes
 	(NUMBERNS,u'date-style'):(
+		(NUMBERNS,u'rfc-language-tag'),
+		(NUMBERNS,u'script'),
 		(NUMBERNS,u'transliteration-language'),
 		(STYLENS,u'name'),
 		(STYLENS,u'display-name'),
@@ -4754,6 +5246,8 @@ allowed_attributes = {
 		(NUMBERNS,u'grouping'),
 	),
 	(NUMBERNS,u'number-style'):(
+		(NUMBERNS,u'rfc-language-tag'),
+		(NUMBERNS,u'script'),
 		(NUMBERNS,u'transliteration-language'),
 		(STYLENS,u'name'),
 		(STYLENS,u'display-name'),
@@ -4767,6 +5261,8 @@ allowed_attributes = {
 	),
 # allowed_attributes
 	(NUMBERNS,u'percentage-style'):(
+		(NUMBERNS,u'rfc-language-tag'),
+		(NUMBERNS,u'script'),
 		(NUMBERNS,u'transliteration-language'),
 		(STYLENS,u'name'),
 		(STYLENS,u'display-name'),
@@ -4797,6 +5293,8 @@ allowed_attributes = {
 	(NUMBERNS,u'text-content'):(
 	),
 	(NUMBERNS,u'text-style'):(
+		(NUMBERNS,u'rfc-language-tag'),
+		(NUMBERNS,u'script'),
 		(NUMBERNS,u'transliteration-language'),
 		(STYLENS,u'name'),
 		(STYLENS,u'display-name'),
@@ -4809,6 +5307,8 @@ allowed_attributes = {
 		(NUMBERNS,u'transliteration-country'),
 	),
 	(NUMBERNS,u'time-style'):(
+		(NUMBERNS,u'rfc-language-tag'),
+		(NUMBERNS,u'script'),
 		(NUMBERNS,u'transliteration-language'),
 		(NUMBERNS,u'transliteration-format'),
 		(STYLENS,u'name'),
@@ -4840,6 +5340,7 @@ allowed_attributes = {
 		(PRESENTATIONNS,u'style-name'),
 		(PRESENTATIONNS,u'class-names'),
 		(DRAWNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(DR3DNS,u'extrude'):(
 		(DRAWNS,u'layer'),
@@ -4852,6 +5353,7 @@ allowed_attributes = {
 		(PRESENTATIONNS,u'style-name'),
 		(PRESENTATIONNS,u'class-names'),
 		(DRAWNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(DR3DNS,u'light'):(
 		(DR3DNS,u'diffuse-color'),
@@ -4870,6 +5372,7 @@ allowed_attributes = {
 		(PRESENTATIONNS,u'style-name'),
 		(PRESENTATIONNS,u'class-names'),
 		(DRAWNS,u'id'),
+		(XMLNS,u'id'),
 	),
 # allowed_attributes
 	(DR3DNS,u'scene'):(
@@ -4885,7 +5388,7 @@ allowed_attributes = {
 		(DR3DNS,u'vrp'),
 		(DR3DNS,u'vup'),
 		(DRAWNS,u'id'),
-                (DRAWNS,u'caption-id'),
+		(DRAWNS,u'caption-id'),
 		(DRAWNS,u'layer'),
 		(DRAWNS,u'z-index'),
 		(DRAWNS,u'class-names'),
@@ -4902,7 +5405,9 @@ allowed_attributes = {
 		(TABLENS,u'table-background'),
 		(TEXTNS,u'anchor-page-number'),
 		(TEXTNS,u'anchor-type'),
+		(XMLNS,u'id'),
 	),
+# allowed_attributes
 	(DR3DNS,u'sphere'):(
 		(DRAWNS,u'layer'),
 		(DR3DNS,u'center'),
@@ -4914,6 +5419,7 @@ allowed_attributes = {
 		(PRESENTATIONNS,u'class-names'),
 		(DRAWNS,u'id'),
 		(DR3DNS,u'size'),
+		(XMLNS,u'id'),
 	),
 	(DRAWNS,u'a'):(
 		(OFFICENS,u'name'),
@@ -4924,6 +5430,7 @@ allowed_attributes = {
 		(XLINKNS,u'href'),
 		(XLINKNS,u'type'),
 		(OFFICENS,u'server-map'),
+		(XMLNS,u'id'),
 	),
 	(DRAWNS,u'applet'):(
 		(DRAWNS,u'code'),
@@ -4934,7 +5441,9 @@ allowed_attributes = {
 		(XLINKNS,u'type'),
 		(DRAWNS,u'archive'),
 		(DRAWNS,u'may-script'),
+		(XMLNS,u'id'),
 	),
+# allowed_attributes
 	(DRAWNS,u'area-circle'):(
 		(OFFICENS,u'name'),
 		(XLINKNS,u'show'),
@@ -4975,7 +5484,7 @@ allowed_attributes = {
 	(DRAWNS,u'caption'):(
 		(TABLENS,u'table-background'),
 		(DRAWNS,u'layer'),
-                (DRAWNS,u'caption-id'),
+		(DRAWNS,u'caption-id'),
 		(TABLENS,u'end-cell-address'),
 		(DRAWNS,u'name'),
 		(DRAWNS,u'text-style-name'),
@@ -4997,7 +5506,9 @@ allowed_attributes = {
 		(SVGNS,u'height'),
 		(DRAWNS,u'id'),
 		(TEXTNS,u'anchor-type'),
+		(XMLNS,u'id'),
 	),
+# allowed_attributes
 	(DRAWNS,u'circle'):(
 		(DRAWNS,u'end-angle'),
 		(DRAWNS,u'id'),
@@ -5007,7 +5518,7 @@ allowed_attributes = {
 		(DRAWNS,u'start-angle'),
 		(DRAWNS,u'class-names'),
 		(DRAWNS,u'style-name'),
-                (DRAWNS,u'caption-id'),
+		(DRAWNS,u'caption-id'),
 		(DRAWNS,u'text-style-name'),
 		(DRAWNS,u'transform'),
 		(DRAWNS,u'z-index'),
@@ -5026,36 +5537,42 @@ allowed_attributes = {
 		(TABLENS,u'table-background'),
 		(TEXTNS,u'anchor-page-number'),
 		(TEXTNS,u'anchor-type'),
+		(XMLNS,u'id'),
 	),
+# allowed_attributes
 	(DRAWNS,u'connector'):(
-		(DRAWNS,u'layer'),
+		(DRAWNS,u'caption-id'),
+		(DRAWNS,u'class-names'),
+		(DRAWNS,u'end-glue-point'),
 		(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'layer'),
+		(DRAWNS,u'line-skew'),
+		(DRAWNS,u'name'),
+		(DRAWNS,u'start-glue-point'),
+		(DRAWNS,u'start-shape'),
 		(DRAWNS,u'style-name'),
-		(PRESENTATIONNS,u'class-names'),
-                (DRAWNS,u'caption-id'),
+		(DRAWNS,u'text-style-name'),
+		(DRAWNS,u'transform'),
 		(DRAWNS,u'type'),
-		(DRAWNS,u'start-shape'),
 		(DRAWNS,u'z-index'),
+		(PRESENTATIONNS,u'class-names'),
 		(PRESENTATIONNS,u'style-name'),
-		(DRAWNS,u'start-glue-point'),
-		(SVGNS,u'x2'),
+		(SVGNS,u'd'),
+		(SVGNS,u'viewBox'),
 		(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'line-skew'),
-		(DRAWNS,u'name'),
-		(DRAWNS,u'end-glue-point'),
-		(DRAWNS,u'text-style-name'),
+		(XMLNS,u'id'),
 	),
+# allowed_attributes
 	(DRAWNS,u'contour-path'):(
 		(SVGNS,u'd'),
 		(SVGNS,u'width'),
@@ -5073,7 +5590,7 @@ allowed_attributes = {
 	(DRAWNS,u'control'):(
 		(DRAWNS,u'control'),
 		(DRAWNS,u'layer'),
-                (DRAWNS,u'caption-id'),
+		(DRAWNS,u'caption-id'),
 		(TABLENS,u'end-cell-address'),
 		(DRAWNS,u'name'),
 		(DRAWNS,u'text-style-name'),
@@ -5093,10 +5610,11 @@ allowed_attributes = {
 		(TABLENS,u'end-y'),
 		(DRAWNS,u'id'),
 		(TEXTNS,u'anchor-type'),
+		(XMLNS,u'id'),
 	),
 	(DRAWNS,u'custom-shape'):(
 		(DRAWNS,u'engine'),
-                (DRAWNS,u'caption-id'),
+		(DRAWNS,u'caption-id'),
 		(DRAWNS,u'layer'),
 		(TABLENS,u'end-cell-address'),
 		(DRAWNS,u'name'),
@@ -5118,6 +5636,7 @@ allowed_attributes = {
 		(DRAWNS,u'data'),
 		(DRAWNS,u'id'),
 		(TEXTNS,u'anchor-type'),
+		(XMLNS,u'id'),
 	),
 # allowed_attributes
 	(DRAWNS,u'ellipse'):(
@@ -5138,7 +5657,7 @@ allowed_attributes = {
 		(PRESENTATIONNS,u'class-names'),
 		(DRAWNS,u'end-angle'),
 		(DRAWNS,u'z-index'),
-                (DRAWNS,u'caption-id'),
+		(DRAWNS,u'caption-id'),
 		(PRESENTATIONNS,u'style-name'),
 		(SVGNS,u'height'),
 		(TEXTNS,u'anchor-type'),
@@ -5149,6 +5668,7 @@ allowed_attributes = {
 		(SVGNS,u'y'),
 		(SVGNS,u'x'),
 		(DRAWNS,u'text-style-name'),
+		(XMLNS,u'id'),
 	),
 # allowed_attributes
 	(DRAWNS,u'enhanced-geometry'):(
@@ -5217,6 +5737,7 @@ allowed_attributes = {
 		(DRAWNS,u'frame-name'),
 		(XLINKNS,u'type'),
 		(XLINKNS,u'show'),
+		(XMLNS,u'id'),
 	),
 	(DRAWNS,u'frame'):(
 		(DRAWNS,u'copy-of'),
@@ -5224,7 +5745,7 @@ allowed_attributes = {
 		(DRAWNS,u'layer'),
 		(DRAWNS,u'name'),
 		(DRAWNS,u'class-names'),
-                (DRAWNS,u'caption-id'),
+		(DRAWNS,u'caption-id'),
 		(DRAWNS,u'style-name'),
 		(DRAWNS,u'text-style-name'),
 		(DRAWNS,u'transform'),
@@ -5246,11 +5767,12 @@ allowed_attributes = {
 		(TABLENS,u'table-background'),
 		(TEXTNS,u'anchor-page-number'),
 		(TEXTNS,u'anchor-type'),
+		(XMLNS,u'id'),
 	),
 # allowed_attributes
 	(DRAWNS,u'g'):(
 		(DRAWNS,u'id'),
-                (DRAWNS,u'caption-id'),
+		(DRAWNS,u'caption-id'),
 		(DRAWNS,u'name'),
 		(DRAWNS,u'class-names'),
 		(DRAWNS,u'style-name'),
@@ -5264,6 +5786,7 @@ allowed_attributes = {
 		(TABLENS,u'table-background'),
 		(TEXTNS,u'anchor-page-number'),
 		(TEXTNS,u'anchor-type'),
+		(XMLNS,u'id'),
 	),
 	(DRAWNS,u'glue-point'):(
 		(SVGNS,u'y'),
@@ -5312,6 +5835,7 @@ allowed_attributes = {
 		(XLINKNS,u'type'),
 		(XLINKNS,u'actuate'),
 		(XLINKNS,u'show'),
+		(XMLNS,u'id'),
 	),
 	(DRAWNS,u'image-map'):(
 	),
@@ -5326,7 +5850,7 @@ allowed_attributes = {
 	(DRAWNS,u'line'):(
 		(DRAWNS,u'class-names'),
 		(DRAWNS,u'id'),
-                (DRAWNS,u'caption-id'),
+		(DRAWNS,u'caption-id'),
 		(DRAWNS,u'layer'),
 		(DRAWNS,u'name'),
 		(DRAWNS,u'style-name'),
@@ -5345,6 +5869,7 @@ allowed_attributes = {
 		(TABLENS,u'table-background'),
 		(TEXTNS,u'anchor-page-number'),
 		(TEXTNS,u'anchor-type'),
+		(XMLNS,u'id'),
 	),
 	(DRAWNS,u'marker'):(
 		(SVGNS,u'd'),
@@ -5370,11 +5895,12 @@ allowed_attributes = {
 		(TABLENS,u'end-x'),
 		(TEXTNS,u'anchor-page-number'),
 		(SVGNS,u'y1'),
-                (DRAWNS,u'caption-id'),
+		(DRAWNS,u'caption-id'),
 		(TABLENS,u'end-y'),
 		(SVGNS,u'x1'),
 		(DRAWNS,u'id'),
 		(TEXTNS,u'anchor-type'),
+		(XMLNS,u'id'),
 	),
 	(DRAWNS,u'object'):(
 		(XLINKNS,u'type'),
@@ -5382,6 +5908,7 @@ allowed_attributes = {
 		(DRAWNS,u'notify-on-update-of-ranges'),
 		(XLINKNS,u'actuate'),
 		(XLINKNS,u'show'),
+		(XMLNS,u'id'),
 	),
 	(DRAWNS,u'object-ole'):(
 		(XLINKNS,u'actuate'),
@@ -5389,6 +5916,7 @@ allowed_attributes = {
 		(XLINKNS,u'type'),
 		(DRAWNS,u'class-id'),
 		(XLINKNS,u'show'),
+		(XMLNS,u'id'),
 	),
 	(DRAWNS,u'opacity'):(
 		(DRAWNS,u'style'),
@@ -5411,10 +5939,11 @@ allowed_attributes = {
 		(DRAWNS,u'master-page-name'),
 		(DRAWNS,u'id'),
 		(PRESENTATIONNS,u'use-date-time-name'),
+		(XMLNS,u'id'),
 	),
 	(DRAWNS,u'page-thumbnail'):(
 		(TABLENS,u'table-background'),
-                (DRAWNS,u'caption-id'),
+		(DRAWNS,u'caption-id'),
 		(PRESENTATIONNS,u'user-transformed'),
 		(DRAWNS,u'layer'),
 		(TABLENS,u'end-cell-address'),
@@ -5437,6 +5966,7 @@ allowed_attributes = {
 		(PRESENTATIONNS,u'placeholder'),
 		(PRESENTATIONNS,u'class'),
 		(TEXTNS,u'anchor-type'),
+		(XMLNS,u'id'),
 	),
 	(DRAWNS,u'param'):(
 		(DRAWNS,u'name'),
@@ -5447,7 +5977,7 @@ allowed_attributes = {
 		(TABLENS,u'table-background'),
 		(DRAWNS,u'layer'),
 		(TABLENS,u'end-cell-address'),
-                (DRAWNS,u'caption-id'),
+		(DRAWNS,u'caption-id'),
 		(SVGNS,u'd'),
 		(DRAWNS,u'text-style-name'),
 		(DRAWNS,u'id'),
@@ -5467,16 +5997,19 @@ allowed_attributes = {
 		(TABLENS,u'end-y'),
 		(SVGNS,u'viewBox'),
 		(DRAWNS,u'name'),
+		(XMLNS,u'id'),
 	),
+# allowed_attributes
 	(DRAWNS,u'plugin'):(
+		(DRAWNS,u'mime-type'),
 		(XLINKNS,u'type'),
 		(XLINKNS,u'href'),
-		(DRAWNS,u'mime-type'),
 		(XLINKNS,u'actuate'),
 		(XLINKNS,u'show'),
+		(XMLNS,u'id'),
 	),
 	(DRAWNS,u'polygon'):(
-                (DRAWNS,u'caption-id'),
+		(DRAWNS,u'caption-id'),
 		(TABLENS,u'table-background'),
 		(DRAWNS,u'layer'),
 		(TABLENS,u'end-cell-address'),
@@ -5499,6 +6032,7 @@ allowed_attributes = {
 		(TABLENS,u'end-y'),
 		(SVGNS,u'viewBox'),
 		(TEXTNS,u'anchor-type'),
+		(XMLNS,u'id'),
 	),
 # allowed_attributes
 	(DRAWNS,u'polyline'):(
@@ -5508,7 +6042,7 @@ allowed_attributes = {
 		(DRAWNS,u'name'),
 		(DRAWNS,u'text-style-name'),
 		(DRAWNS,u'id'),
-                (DRAWNS,u'caption-id'),
+		(DRAWNS,u'caption-id'),
 		(DRAWNS,u'transform'),
 		(PRESENTATIONNS,u'style-name'),
 		(SVGNS,u'height'),
@@ -5525,10 +6059,12 @@ allowed_attributes = {
 		(TABLENS,u'end-y'),
 		(SVGNS,u'viewBox'),
 		(TEXTNS,u'anchor-type'),
+		(XMLNS,u'id'),
 	),
+# allowed_attributes
 	(DRAWNS,u'rect'):(
 		(DRAWNS,u'corner-radius'),
-                (DRAWNS,u'caption-id'),
+		(DRAWNS,u'caption-id'),
 		(DRAWNS,u'id'),
 		(DRAWNS,u'layer'),
 		(DRAWNS,u'name'),
@@ -5541,6 +6077,8 @@ allowed_attributes = {
 		(PRESENTATIONNS,u'style-name'),
 		(SVGNS,u'height'),
 		(SVGNS,u'width'),
+		(SVGNS,u'rx'),
+		(SVGNS,u'ry'),
 		(SVGNS,u'x'),
 		(SVGNS,u'y'),
 		(TABLENS,u'end-cell-address'),
@@ -5549,13 +6087,14 @@ allowed_attributes = {
 		(TABLENS,u'table-background'),
 		(TEXTNS,u'anchor-page-number'),
 		(TEXTNS,u'anchor-type'),
+		(XMLNS,u'id'),
 	),
 # allowed_attributes
 	(DRAWNS,u'regular-polygon'):(
 		(TABLENS,u'table-background'),
 		(DRAWNS,u'layer'),
 		(TABLENS,u'end-cell-address'),
-                (DRAWNS,u'caption-id'),
+		(DRAWNS,u'caption-id'),
 		(DRAWNS,u'name'),
 		(DRAWNS,u'text-style-name'),
 		(TEXTNS,u'anchor-page-number'),
@@ -5576,6 +6115,7 @@ allowed_attributes = {
 		(TABLENS,u'end-y'),
 		(DRAWNS,u'id'),
 		(TEXTNS,u'anchor-type'),
+		(XMLNS,u'id'),
 	),
 	(DRAWNS,u'stroke-dash'):(
 		(DRAWNS,u'distance'),
@@ -5594,10 +6134,13 @@ allowed_attributes = {
 		(FONS,u'min-height'),
 		(DRAWNS,u'chain-next-name'),
 		(FONS,u'max-width'),
-                (TEXTNS,u'id'),
+		(TEXTNS,u'id'),
+		(XMLNS,u'id'),
 	),
 # allowed_attributes
 	(FORMNS,u'button'):(
+		(XMLNS,u'id'), # First choice
+		(FORMNS,u'id'),
 		(FORMNS,u'tab-stop'),
 		(FORMNS,u'focus-on-click'),
 		(FORMNS,u'image-align'),
@@ -5610,6 +6153,8 @@ allowed_attributes = {
 		(FORMNS,u'default-button'),
 		(FORMNS,u'value'),
 		(FORMNS,u'label'),
+		(FORMNS,u'delay-for-repeat'),
+		(FORMNS,u'repeat'),
 		(FORMNS,u'disabled'),
 		(FORMNS,u'printable'),
 		(FORMNS,u'image-data'),
@@ -5617,10 +6162,12 @@ allowed_attributes = {
 		(FORMNS,u'toggle'),
 		(FORMNS,u'xforms-submission'),
 		(OFFICENS,u'target-frame'),
-		(FORMNS,u'id'),
 		(FORMNS,u'image-position'),
 	),
 	(FORMNS,u'checkbox'):(
+		(XMLNS,u'id'), # First choice
+		(FORMNS,u'id'),
+		(FORMNS,u'linked-cell'),
 		(FORMNS,u'tab-stop'),
 		(FORMNS,u'image-align'),
 		(FORMNS,u'name'),
@@ -5637,7 +6184,6 @@ allowed_attributes = {
 		(FORMNS,u'printable'),
 		(FORMNS,u'state'),
 		(FORMNS,u'visual-effect'),
-		(FORMNS,u'id'),
 		(FORMNS,u'image-position'),
 	),
 	(FORMNS,u'column'):(
@@ -5646,52 +6192,64 @@ allowed_attributes = {
 		(FORMNS,u'name'),
 		(FORMNS,u'label'),
 	),
+# allowed_attributes
 	(FORMNS,u'combobox'):(
-		(FORMNS,u'convert-empty-to-null'),
-		(FORMNS,u'max-length'),
-		(FORMNS,u'tab-stop'),
-		(FORMNS,u'name'),
-		(FORMNS,u'dropdown'),
+		(XMLNS,u'id'), # First choice
+		(FORMNS,u'auto-complete'),
 		(FORMNS,u'control-implementation'),
-		(XFORMSNS,u'bind'),
+		(FORMNS,u'convert-empty-to-null'),
+		(FORMNS,u'current-value'),
 		(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'dropdown'),
+		(FORMNS,u'id'),
+		(FORMNS,u'linked-cell'),
 		(FORMNS,u'list-source'),
-		(FORMNS,u'title'),
 		(FORMNS,u'list-source-type'),
-		(FORMNS,u'id'),
-		(FORMNS,u'current-value'),
+		(FORMNS,u'max-length'),
+		(FORMNS,u'name'),
+		(FORMNS,u'printable'),
+		(FORMNS,u'readonly'),
 		(FORMNS,u'size'),
+		(FORMNS,u'source-cell-range'),
+		(FORMNS,u'tab-index'),
+		(FORMNS,u'tab-stop'),
+		(FORMNS,u'title'),
+		(FORMNS,u'value'),
+		(XFORMSNS,u'bind'),
 	),
 # 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'),
+		(XMLNS,u'id'), # First choice
 		(FORMNS,u'control-implementation'),
-		(FORMNS,u'min-value'),
+		(FORMNS,u'convert-empty-to-null'),
+		(FORMNS,u'current-value'),
 		(FORMNS,u'data-field'),
-		(FORMNS,u'max-value'),
-		(FORMNS,u'value'),
+		(FORMNS,u'delay-for-repeat'),
 		(FORMNS,u'disabled'),
+		(FORMNS,u'id'),
+		(FORMNS,u'linked-cell'),
+		(FORMNS,u'max-length'),
+		(FORMNS,u'max-value'),
+		(FORMNS,u'min-value'),
+		(FORMNS,u'name'),
 		(FORMNS,u'printable'),
 		(FORMNS,u'readonly'),
-		(XFORMSNS,u'bind'),
+		(FORMNS,u'repeat'),
+		(FORMNS,u'spin-button'),
+		(FORMNS,u'tab-index'),
+		(FORMNS,u'tab-stop'),
 		(FORMNS,u'title'),
-		(FORMNS,u'id'),
-		(FORMNS,u'current-value'),
+		(FORMNS,u'value'),
+		(XFORMSNS,u'bind'),
 	),
 	(FORMNS,u'file'):(
+		(XMLNS,u'id'), # First choice
+		(FORMNS,u'id'),
+		(FORMNS,u'linked-cell'),
 		(FORMNS,u'max-length'),
 		(FORMNS,u'tab-stop'),
 		(FORMNS,u'name'),
@@ -5703,10 +6261,11 @@ allowed_attributes = {
 		(FORMNS,u'disabled'),
 		(FORMNS,u'printable'),
 		(FORMNS,u'readonly'),
-		(FORMNS,u'id'),
 		(FORMNS,u'current-value'),
 	),
 	(FORMNS,u'fixed-text'):(
+		(XMLNS,u'id'), # First choice
+		(FORMNS,u'id'),
 		(FORMNS,u'name'),
 		(FORMNS,u'for'),
 		(FORMNS,u'title'),
@@ -5716,7 +6275,6 @@ allowed_attributes = {
 		(FORMNS,u'label'),
 		(FORMNS,u'disabled'),
 		(FORMNS,u'printable'),
-		(FORMNS,u'id'),
 	),
 # allowed_attributes
 	(FORMNS,u'form'):(
@@ -5744,27 +6302,35 @@ allowed_attributes = {
 		(FORMNS,u'ignore-result'),
 		(FORMNS,u'order'),
 	),
+# allowed_attributes
 	(FORMNS,u'formatted-text'):(
+		(XMLNS,u'id'), # First choice
+		(FORMNS,u'control-implementation'),
 		(FORMNS,u'convert-empty-to-null'),
+		(FORMNS,u'current-value'),
+		(FORMNS,u'data-field'),
+		(FORMNS,u'delay-for-repeat'),
+		(FORMNS,u'disabled'),
+		(FORMNS,u'id'),
+		(FORMNS,u'linked-cell'),
 		(FORMNS,u'max-length'),
-		(FORMNS,u'tab-stop'),
 		(FORMNS,u'max-value'),
+		(FORMNS,u'min-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'repeat'),
+		(FORMNS,u'spin-button'),
+		(FORMNS,u'tab-index'),
+		(FORMNS,u'tab-stop'),
+		(FORMNS,u'title'),
 		(FORMNS,u'validation'),
-		(FORMNS,u'id'),
-		(FORMNS,u'current-value'),
+		(FORMNS,u'value'),
+		(XFORMSNS,u'bind'),
 	),
 	(FORMNS,u'frame'):(
+		(XMLNS,u'id'), # First choice
+		(FORMNS,u'id'),
 		(FORMNS,u'name'),
 		(FORMNS,u'for'),
 		(FORMNS,u'title'),
@@ -5773,16 +6339,18 @@ allowed_attributes = {
 		(FORMNS,u'label'),
 		(FORMNS,u'disabled'),
 		(FORMNS,u'printable'),
-		(FORMNS,u'id'),
 	),
 # allowed_attributes
 	(FORMNS,u'generic-control'):(
+		(XMLNS,u'id'), # First choice
+		(FORMNS,u'id'),
 		(FORMNS,u'control-implementation'),
 		(XFORMSNS,u'bind'),
 		(FORMNS,u'name'),
-		(FORMNS,u'id'),
 	),
 	(FORMNS,u'grid'):(
+		(XMLNS,u'id'), # First choice
+		(FORMNS,u'id'),
 		(FORMNS,u'tab-stop'),
 		(FORMNS,u'name'),
 		(FORMNS,u'tab-index'),
@@ -5791,16 +6359,18 @@ allowed_attributes = {
 		(FORMNS,u'title'),
 		(FORMNS,u'disabled'),
 		(FORMNS,u'printable'),
-		(FORMNS,u'id'),
 	),
 	(FORMNS,u'hidden'):(
+		(XMLNS,u'id'), # First choice
+		(FORMNS,u'id'),
 		(FORMNS,u'control-implementation'),
 		(XFORMSNS,u'bind'),
 		(FORMNS,u'name'),
 		(FORMNS,u'value'),
-		(FORMNS,u'id'),
 	),
 	(FORMNS,u'image'):(
+		(XMLNS,u'id'), # First choice
+		(FORMNS,u'id'),
 		(FORMNS,u'tab-stop'),
 		(FORMNS,u'name'),
 		(FORMNS,u'tab-index'),
@@ -5814,9 +6384,10 @@ allowed_attributes = {
 		(FORMNS,u'printable'),
 		(FORMNS,u'image-data'),
 		(XLINKNS,u'href'),
-		(FORMNS,u'id'),
 	),
 	(FORMNS,u'image-frame'):(
+		(XMLNS,u'id'), # First choice
+		(FORMNS,u'id'),
 		(FORMNS,u'name'),
 		(FORMNS,u'title'),
 		(FORMNS,u'control-implementation'),
@@ -5826,7 +6397,6 @@ allowed_attributes = {
 		(FORMNS,u'disabled'),
 		(FORMNS,u'printable'),
 		(FORMNS,u'image-data'),
-		(FORMNS,u'id'),
 	),
 	(FORMNS,u'item'):(
 		(FORMNS,u'label'),
@@ -5840,42 +6410,51 @@ allowed_attributes = {
 	),
 # allowed_attributes
 	(FORMNS,u'listbox'):(
-		(FORMNS,u'tab-stop'),
+		(XMLNS,u'id'), # First choice
 		(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'dropdown'),
+		(FORMNS,u'id'),
+		(FORMNS,u'linked-cell'),
+		(FORMNS,u'list-linkage-type'),
 		(FORMNS,u'list-source'),
-		(FORMNS,u'title'),
 		(FORMNS,u'list-source-type'),
-		(FORMNS,u'id'),
-		(FORMNS,u'xforms-list-source'),
+		(FORMNS,u'multiple'),
+		(FORMNS,u'name'),
+		(FORMNS,u'printable'),
 		(FORMNS,u'size'),
+		(FORMNS,u'source-cell-range'),
+		(FORMNS,u'tab-index'),
+		(FORMNS,u'tab-stop'),
+		(FORMNS,u'title'),
+		(FORMNS,u'xforms-list-source'),
+		(XFORMSNS,u'bind'),
 	),
 	(FORMNS,u'number'):(
-		(FORMNS,u'convert-empty-to-null'),
-		(FORMNS,u'max-length'),
-		(FORMNS,u'tab-stop'),
-		(FORMNS,u'name'),
-		(FORMNS,u'tab-index'),
+		(XMLNS,u'id'), # First choice
 		(FORMNS,u'control-implementation'),
-		(FORMNS,u'min-value'),
+		(FORMNS,u'convert-empty-to-null'),
+		(FORMNS,u'current-value'),
 		(FORMNS,u'data-field'),
-		(FORMNS,u'max-value'),
-		(FORMNS,u'value'),
+		(FORMNS,u'delay-for-repeat'),
 		(FORMNS,u'disabled'),
+		(FORMNS,u'id'),
+		(FORMNS,u'linked-cell'),
+		(FORMNS,u'max-length'),
+		(FORMNS,u'max-value'),
+		(FORMNS,u'min-value'),
+		(FORMNS,u'name'),
 		(FORMNS,u'printable'),
 		(FORMNS,u'readonly'),
-		(XFORMSNS,u'bind'),
+		(FORMNS,u'repeat'),
+		(FORMNS,u'spin-button'),
+		(FORMNS,u'tab-index'),
+		(FORMNS,u'tab-stop'),
 		(FORMNS,u'title'),
-		(FORMNS,u'id'),
-		(FORMNS,u'current-value'),
+		(FORMNS,u'value'),
+		(XFORMSNS,u'bind'),
 	),
 	(FORMNS,u'option'):(
 		(FORMNS,u'current-selected'),
@@ -5884,6 +6463,9 @@ allowed_attributes = {
 		(FORMNS,u'label'),
 	),
 	(FORMNS,u'password'):(
+		(XMLNS,u'id'), # First choice
+		(FORMNS,u'id'),
+		(FORMNS,u'linked-cell'),
 		(FORMNS,u'convert-empty-to-null'),
 		(FORMNS,u'max-length'),
 		(FORMNS,u'tab-stop'),
@@ -5896,7 +6478,6 @@ allowed_attributes = {
 		(FORMNS,u'disabled'),
 		(FORMNS,u'printable'),
 		(FORMNS,u'echo-char'),
-		(FORMNS,u'id'),
 	),
 	(FORMNS,u'properties'):(
 	),
@@ -5911,6 +6492,9 @@ allowed_attributes = {
 		(OFFICENS,u'time-value'),
 	),
 	(FORMNS,u'radio'):(
+		(XMLNS,u'id'), # First choice
+		(FORMNS,u'id'),
+		(FORMNS,u'linked-cell'),
 		(FORMNS,u'tab-stop'),
 		(FORMNS,u'selected'),
 		(FORMNS,u'image-align'),
@@ -5926,10 +6510,12 @@ allowed_attributes = {
 		(FORMNS,u'printable'),
 		(FORMNS,u'title'),
 		(FORMNS,u'visual-effect'),
-		(FORMNS,u'id'),
 		(FORMNS,u'image-position'),
 	),
 	(FORMNS,u'text'):(
+		(XMLNS,u'id'), # First choice
+		(FORMNS,u'id'),
+		(FORMNS,u'linked-cell'),
 		(FORMNS,u'convert-empty-to-null'),
 		(FORMNS,u'max-length'),
 		(FORMNS,u'tab-stop'),
@@ -5943,10 +6529,12 @@ allowed_attributes = {
 		(FORMNS,u'disabled'),
 		(FORMNS,u'printable'),
 		(FORMNS,u'readonly'),
-		(FORMNS,u'id'),
 		(FORMNS,u'current-value'),
 	),
 	(FORMNS,u'textarea'):(
+		(XMLNS,u'id'), # First choice
+		(FORMNS,u'id'),
+		(FORMNS,u'linked-cell'),
 		(FORMNS,u'convert-empty-to-null'),
 		(FORMNS,u'max-length'),
 		(FORMNS,u'tab-stop'),
@@ -5960,29 +6548,36 @@ allowed_attributes = {
 		(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'),
+		(XMLNS,u'id'), # First choice
 		(FORMNS,u'control-implementation'),
-		(FORMNS,u'min-value'),
+		(FORMNS,u'convert-empty-to-null'),
+		(FORMNS,u'current-value'),
 		(FORMNS,u'data-field'),
-		(FORMNS,u'max-value'),
-		(FORMNS,u'value'),
+		(FORMNS,u'delay-for-repeat'),
 		(FORMNS,u'disabled'),
+		(FORMNS,u'id'),
+		(FORMNS,u'linked-cell'),
+		(FORMNS,u'max-length'),
+		(FORMNS,u'max-value'),
+		(FORMNS,u'min-value'),
+		(FORMNS,u'name'),
 		(FORMNS,u'printable'),
 		(FORMNS,u'readonly'),
-		(XFORMSNS,u'bind'),
+		(FORMNS,u'repeat'),
+		(FORMNS,u'spin-button'),
+		(FORMNS,u'tab-index'),
+		(FORMNS,u'tab-stop'),
 		(FORMNS,u'title'),
-		(FORMNS,u'id'),
-		(FORMNS,u'current-value'),
+		(FORMNS,u'value'),
+		(XFORMSNS,u'bind'),
 	),
 	(FORMNS,u'value-range'):(
+		(XMLNS,u'id'), # First choice
+		(FORMNS,u'id'),
+		(FORMNS,u'linked-cell'),
 		(FORMNS,u'tab-stop'),
 		(FORMNS,u'max-value'),
 		(FORMNS,u'name'),
@@ -5996,8 +6591,8 @@ allowed_attributes = {
 		(FORMNS,u'orientation'),
 		(FORMNS,u'page-step-size'),
 		(FORMNS,u'delay-for-repeat'),
+		(FORMNS,u'repeat'),
 		(FORMNS,u'min-value'),
-		(FORMNS,u'id'),
 		(FORMNS,u'step-size'),
 	),
 	(MANIFESTNS,'algorithm') : (
@@ -6011,7 +6606,9 @@ allowed_attributes = {
 	(MANIFESTNS,'file-entry') : (
 		(MANIFESTNS,'full-path'),
 		(MANIFESTNS,'media-type'),
+		(MANIFESTNS,'preferred-view-mode'),
 		(MANIFESTNS,'size'),
+		(MANIFESTNS,'version'),
 	),
 	(MANIFESTNS,'key-derivation') : (
 		(MANIFESTNS,'key-derivation-name'),
@@ -6079,31 +6676,37 @@ allowed_attributes = {
 		(METANS,u'name'),
 		(METANS,u'value-type'),
 	),
+# allowed_attributes
 	(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'caption-point-x'),
+		(DRAWNS,u'caption-point-y'),
 		(DRAWNS,u'class-names'),
+		(DRAWNS,u'corner-radius'),
+		(DRAWNS,u'id'),
+		(DRAWNS,u'layer'),
+		(DRAWNS,u'name'),
 		(DRAWNS,u'style-name'),
-		(PRESENTATIONNS,u'class-names'),
-		(TABLENS,u'end-x'),
 		(DRAWNS,u'text-style-name'),
+		(DRAWNS,u'transform'),
 		(DRAWNS,u'z-index'),
+		(OFFICENS,u'display'),
+		(OFFICENS,u'name'),
+		(PRESENTATIONNS,u'class-names'),
 		(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'height'),
+		(SVGNS,u'width'),
 		(SVGNS,u'x'),
+		(SVGNS,u'y'),
+		(TABLENS,u'end-cell-address'),
+		(TABLENS,u'end-x'),
 		(TABLENS,u'end-y'),
-		(OFFICENS,u'display'),
+		(TABLENS,u'table-background'),
+		(TEXTNS,u'anchor-page-number'),
+		(TEXTNS,u'anchor-type'),
+		(XMLNS,u'id'),
+	),
+	(OFFICENS,u'annotation-end'): (
+		(OFFICENS,u'name'),
 	),
 	(OFFICENS,u'automatic-styles'):(
 	),
@@ -6115,6 +6718,7 @@ allowed_attributes = {
 	),
 	(OFFICENS,u'chart'):(
 	),
+# allowed_attributes
 	(OFFICENS,u'dde-source'):(
 		(OFFICENS,u'dde-application'),
 		(OFFICENS,u'automatic-update'),
@@ -6126,18 +6730,23 @@ allowed_attributes = {
 	(OFFICENS,u'document'):(
 		(OFFICENS,u'mimetype'),
 		(OFFICENS,u'version'),
+		(GRDDLNS,u'transformation'),
 	),
 	(OFFICENS,u'document-content'):(
 		(OFFICENS,u'version'),
+		(GRDDLNS,u'transformation'),
 	),
 	(OFFICENS,u'document-meta'):(
 		(OFFICENS,u'version'),
+		(GRDDLNS,u'transformation'),
 	),
 	(OFFICENS,u'document-settings'):(
 		(OFFICENS,u'version'),
+		(GRDDLNS,u'transformation'),
 	),
 	(OFFICENS,u'document-styles'):(
 		(OFFICENS,u'version'),
+		(GRDDLNS,u'transformation'),
 	),
 	(OFFICENS,u'drawing'):(
 	),
@@ -6168,6 +6777,7 @@ allowed_attributes = {
 	(OFFICENS,u'spreadsheet'):(
 		(TABLENS,u'structure-protected'),
 		(TABLENS,u'protection-key'),
+		(TABLENS,u'protection-key-digest-algorithm'),
 	),
 	(OFFICENS,u'styles'):(
 	),
@@ -6295,6 +6905,7 @@ allowed_attributes = {
 		(XLINKNS,u'type'),
 		(PRESENTATIONNS,u'play-full'),
 		(XLINKNS,u'show'),
+		(XMLNS,u'id'),
 	),
 # allowed_attributes
 	(SCRIPTNS,u'event-listener'):(
@@ -6315,7 +6926,13 @@ allowed_attributes = {
 		(STYLENS,u'position'),
 		(XLINKNS,u'type'),
 	),
+# allowed_attributes
 	(STYLENS,u'chart-properties'): (
+		(CHARTNS,u'angle-offset'),
+		(CHARTNS,u'auto-position'),
+		(CHARTNS,u'auto-size'),
+		(CHARTNS,u'axis-label-position'),
+		(CHARTNS,u'axis-position'),
 		(CHARTNS,u'connect-bars'),
 		(CHARTNS,u'data-label-number'),
 		(CHARTNS,u'data-label-symbol'),
@@ -6325,16 +6942,23 @@ allowed_attributes = {
 		(CHARTNS,u'error-category'),
 		(CHARTNS,u'error-lower-indicator'),
 		(CHARTNS,u'error-lower-limit'),
+		(CHARTNS,u'error-lower-range'),
 		(CHARTNS,u'error-margin'),
 		(CHARTNS,u'error-percentage'),
 		(CHARTNS,u'error-upper-indicator'),
 		(CHARTNS,u'error-upper-limit'),
+		(CHARTNS,u'error-upper-range'),
 		(CHARTNS,u'gap-width'),
+		(CHARTNS,u'group-bars-per-axis'),
+		(CHARTNS,u'hole-size'),
+		(CHARTNS,u'include-hidden-cells'),
 		(CHARTNS,u'interpolation'),
 		(CHARTNS,u'interval-major'),
 		(CHARTNS,u'interval-minor-divisor'),
 		(CHARTNS,u'japanese-candle-stick'),
 		(CHARTNS,u'label-arrangement'),
+		(CHARTNS,u'label-position'),
+		(CHARTNS,u'label-position-negative'),
 		(CHARTNS,u'lines'),
 		(CHARTNS,u'link-data-style-to-source'),
 		(CHARTNS,u'logarithmic'),
@@ -6346,9 +6970,12 @@ allowed_attributes = {
 		(CHARTNS,u'percentage'),
 		(CHARTNS,u'pie-offset'),
 		(CHARTNS,u'regression-type'),
+		(CHARTNS,u'reverse-direction'),
+		(CHARTNS,u'right-angled-axes'),
 		(CHARTNS,u'scale-text'),
 		(CHARTNS,u'series-source'),
 		(CHARTNS,u'solid-type'),
+		(CHARTNS,u'sort-by-x-values'),
 		(CHARTNS,u'spline-order'),
 		(CHARTNS,u'spline-resolution'),
 		(CHARTNS,u'stacked'),
@@ -6358,10 +6985,12 @@ allowed_attributes = {
 		(CHARTNS,u'symbol-width'),
 		(CHARTNS,u'text-overlap'),
 		(CHARTNS,u'three-dimensional'),
+		(CHARTNS,u'tick-mark-position'),
 		(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'treat-empty-cells'),
 		(CHARTNS,u'vertical'),
 		(CHARTNS,u'visible'),
 		(STYLENS,u'direction'),
@@ -6386,6 +7015,9 @@ allowed_attributes = {
 		(FONS,u'column-count'),
 		(FONS,u'column-gap'),
 	),
+# allowed_attributes
+	(STYLENS,u'default-page-layout'):(
+	),
 	(STYLENS,u'default-style'):(
 		(STYLENS,u'family'),
 	),
@@ -6531,6 +7163,7 @@ allowed_attributes = {
 		(DRAWNS,u'color-mode'),
 		(DRAWNS,u'contrast'),
 		(DRAWNS,u'decimal-places'),
+		(DRAWNS,u'draw-aspect'),
 		(DRAWNS,u'end-guide'),
 		(DRAWNS,u'end-line-spacing-horizontal'),
 		(DRAWNS,u'end-line-spacing-vertical'),
@@ -6621,6 +7254,7 @@ allowed_attributes = {
 		(FONS,u'padding-right'),
 		(FONS,u'padding-top'),
 		(FONS,u'wrap-option'),
+		(STYLENS,u'background-transparency'),
 		(STYLENS,u'border-line-width'),
 		(STYLENS,u'border-line-width-bottom'),
 		(STYLENS,u'border-line-width-left'),
@@ -6640,6 +7274,7 @@ allowed_attributes = {
 		(STYLENS,u'repeat'),
 		(STYLENS,u'run-through'),
 		(STYLENS,u'shadow'),
+		(STYLENS,u'shrink-to-fit'),
 		(STYLENS,u'vertical-pos'),
 		(STYLENS,u'vertical-rel'),
 		(STYLENS,u'wrap'),
@@ -6650,6 +7285,7 @@ allowed_attributes = {
 		(SVGNS,u'fill-rule'),
 		(SVGNS,u'height'),
 		(SVGNS,u'stroke-color'),
+		(SVGNS,u'stroke-linecap'),
 		(SVGNS,u'stroke-opacity'),
 		(SVGNS,u'stroke-width'),
 		(SVGNS,u'width'),
@@ -6709,6 +7345,12 @@ allowed_attributes = {
 	),
 	(STYLENS,u'header-style'):(
 	),
+	(STYLENS,u'list-level-label-alignment'):(
+		(FONS,u'text-indent'),
+		(TEXTNS,u'label-followed-by'),
+		(TEXTNS,u'list-tab-stop-position'),
+		(FONS,u'margin-left'),
+	),
 # allowed_attributes
 	(STYLENS,u'list-level-properties'): (
 		(FONS,u'height'),
@@ -6718,6 +7360,7 @@ allowed_attributes = {
 		(STYLENS,u'vertical-pos'),
 		(STYLENS,u'vertical-rel'),
 		(SVGNS,u'y'),
+		(TEXTNS,u'list-level-position-and-space-mode'),
 		(TEXTNS,u'min-label-distance'),
 		(TEXTNS,u'min-label-width'),
 		(TEXTNS,u'space-before'),
@@ -6766,6 +7409,7 @@ allowed_attributes = {
 		(STYLENS,u'first-page-number'),
 		(STYLENS,u'footnote-max-height'),
 		(STYLENS,u'layout-grid-base-height'),
+		(STYLENS,u'layout-grid-base-width'),
 		(STYLENS,u'layout-grid-color'),
 		(STYLENS,u'layout-grid-display'),
 		(STYLENS,u'layout-grid-lines'),
@@ -6773,6 +7417,8 @@ allowed_attributes = {
 		(STYLENS,u'layout-grid-print'),
 		(STYLENS,u'layout-grid-ruby-below'),
 		(STYLENS,u'layout-grid-ruby-height'),
+		(STYLENS,u'layout-grid-snap-to'),
+		(STYLENS,u'layout-grid-standard-mode'),
 		(STYLENS,u'num-format'),
 		(STYLENS,u'num-letter-sync'),
 		(STYLENS,u'num-prefix'),
@@ -6826,6 +7472,7 @@ allowed_attributes = {
 		(STYLENS,u'border-line-width-right'),
 		(STYLENS,u'border-line-width-top'),
 		(STYLENS,u'font-independent-line-spacing'),
+		(STYLENS,u'join-border'),
 		(STYLENS,u'justify-single-word'),
 		(STYLENS,u'line-break'),
 		(STYLENS,u'line-height-at-least'),
@@ -6862,22 +7509,25 @@ allowed_attributes = {
 		(FONS,u'background-color'),
 		(FONS,u'margin-left'),
 		(FONS,u'margin-right'),
+		(STYLENS,u'editable'),
 		(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'default-outline-level'),
 		(STYLENS,u'display-name'),
+		(STYLENS,u'family'),
+		(STYLENS,u'list-level'),
+		(STYLENS,u'list-style-name'),
+		(STYLENS,u'master-page-name'),
+		(STYLENS,u'name'),
+		(STYLENS,u'next-style-name'),
 		(STYLENS,u'parent-style-name'),
+		(STYLENS,u'percentage-data-style-name'),
 	),
 # allowed_attributes
 	(STYLENS,u'tab-stop'):(
@@ -6927,6 +7577,7 @@ allowed_attributes = {
 		(STYLENS,u'shrink-to-fit'),
 		(STYLENS,u'text-align-source'),
 		(STYLENS,u'vertical-align'),
+		(STYLENS,u'writing-mode'),
 	),
 # allowed_attributes
 	(STYLENS,u'table-column-properties'): (
@@ -6980,6 +7631,7 @@ allowed_attributes = {
 		(FONS,u'hyphenation-remain-char-count'),
 		(FONS,u'language'),
 		(FONS,u'letter-spacing'),
+		(FONS,u'script'),
 		(FONS,u'text-shadow'),
 		(FONS,u'text-transform'),
 		(STYLENS,u'country-asian'),
@@ -7014,6 +7666,11 @@ allowed_attributes = {
 		(STYLENS,u'language-asian'),
 		(STYLENS,u'language-complex'),
 		(STYLENS,u'letter-kerning'),
+		(STYLENS,u'rfc-language-tag'),
+		(STYLENS,u'rfc-language-tag-asian'),
+		(STYLENS,u'rfc-language-tag-complex'),
+		(STYLENS,u'script-asian'),
+		(STYLENS,u'script-complex'),
 		(STYLENS,u'script-type'),
 		(STYLENS,u'text-blinking'),
 		(STYLENS,u'text-combine'),
@@ -7028,6 +7685,11 @@ allowed_attributes = {
 		(STYLENS,u'text-line-through-type'),
 		(STYLENS,u'text-line-through-width'),
 		(STYLENS,u'text-outline'),
+		(STYLENS,u'text-overline-color'),
+		(STYLENS,u'text-overline-mode'),
+		(STYLENS,u'text-overline-style'),
+		(STYLENS,u'text-overline-type'),
+		(STYLENS,u'text-overline-width'),
 		(STYLENS,u'text-position'),
 		(STYLENS,u'text-rotation-angle'),
 		(STYLENS,u'text-rotation-scale'),
@@ -7093,9 +7755,12 @@ allowed_attributes = {
 	(SVGNS,u'title'):(
 	),
 # allowed_attributes
+	(TABLENS,u'background'):(
+		(TABLENS,u'style-name'),
+	),
 	(TABLENS,u'body'):(
-		(TEXTNS,u'paragraph-style-name'),
-		(TEXTNS,u'style-name'),
+		(TABLENS,u'paragraph-style-name'),
+		(TABLENS,u'style-name'),
 	),
 	(TABLENS,u'calculation-settings'):(
 		(TABLENS,u'automatic-find-labels'),
@@ -7103,6 +7768,7 @@ allowed_attributes = {
 		(TABLENS,u'search-criteria-must-apply-to-whole-cell'),
 		(TABLENS,u'precision-as-shown'),
 		(TABLENS,u'use-regular-expressions'),
+		(TABLENS,u'use-wildcards'),
 		(TABLENS,u'null-year'),
 	),
 	(TABLENS,u'cell-address'):(
@@ -7115,6 +7781,7 @@ allowed_attributes = {
 		(TABLENS,u'rejecting-change-id'),
 		(TABLENS,u'acceptance-state'),
 	),
+# allowed_attributes
 	(TABLENS,u'cell-content-deletion'):(
 		(TABLENS,u'id'),
 	),
@@ -7164,18 +7831,24 @@ allowed_attributes = {
 	),
 # 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'string-value'),
+		(OFFICENS,u'time-value'),
+		(OFFICENS,u'value'),
 		(OFFICENS,u'value-type'),
-		(TABLENS,u'number-columns-repeated'),
+		(TABLENS,u'content-validation-name'),
 		(TABLENS,u'formula'),
-		(OFFICENS,u'time-value'),
+		(TABLENS,u'number-columns-repeated'),
+		(TABLENS,u'protect'),
+		(TABLENS,u'protected'),
+		(TABLENS,u'style-name'),
+		(XHTMLNS,u'about'),
+		(XHTMLNS,u'content'),
+		(XHTMLNS,u'datatype'),
+		(XHTMLNS,u'property'),
+		(XMLNS,u'id'),
 	),
 	(TABLENS,u'cut-offs'):(
 	),
@@ -7303,6 +7976,8 @@ allowed_attributes = {
 	(TABLENS,u'dependency'):(
 		(TABLENS,u'id'),
 	),
+	(TABLENS,u'desc'):(
+	),
 	(TABLENS,u'detective'):(
 	),
 	(TABLENS,u'error-macro'):(
@@ -7314,12 +7989,12 @@ allowed_attributes = {
 		(TABLENS,u'title'),
 	),
 	(TABLENS,u'even-columns'):(
-		(TEXTNS,u'paragraph-style-name'),
-		(TEXTNS,u'style-name'),
+		(TABLENS,u'paragraph-style-name'),
+		(TABLENS,u'style-name'),
 	),
 	(TABLENS,u'even-rows'):(
-		(TEXTNS,u'paragraph-style-name'),
-		(TEXTNS,u'style-name'),
+		(TABLENS,u'paragraph-style-name'),
+		(TABLENS,u'style-name'),
 	),
 # allowed_attributes
 	(TABLENS,u'filter'):(
@@ -7339,13 +8014,17 @@ allowed_attributes = {
 	),
 	(TABLENS,u'filter-or'):(
 	),
+# allowed_attributes
+	(TABLENS,u'filter-set-item'):(
+		(TABLENS,u'value'),
+	),
 	(TABLENS,u'first-column'):(
-		(TEXTNS,u'paragraph-style-name'),
-		(TEXTNS,u'style-name'),
+		(TABLENS,u'paragraph-style-name'),
+		(TABLENS,u'style-name'),
 	),
 	(TABLENS,u'first-row'):(
-		(TEXTNS,u'paragraph-style-name'),
-		(TEXTNS,u'style-name'),
+		(TABLENS,u'paragraph-style-name'),
+		(TABLENS,u'style-name'),
 	),
 # allowed_attributes
 	(TABLENS,u'help-message'):(
@@ -7385,12 +8064,12 @@ allowed_attributes = {
 	(TABLENS,u'label-ranges'):(
 	),
 	(TABLENS,u'last-column'):(
-		(TEXTNS,u'paragraph-style-name'),
-		(TEXTNS,u'style-name'),
+		(TABLENS,u'paragraph-style-name'),
+		(TABLENS,u'style-name'),
 	),
 	(TABLENS,u'last-row'):(
-		(TEXTNS,u'paragraph-style-name'),
-		(TEXTNS,u'style-name'),
+		(TABLENS,u'paragraph-style-name'),
+		(TABLENS,u'style-name'),
 	),
 	(TABLENS,u'movement'):(
 		(TABLENS,u'id'),
@@ -7420,12 +8099,12 @@ allowed_attributes = {
 		(TABLENS,u'value-type'),
 	),
 	(TABLENS,u'odd-columns'):(
-		(TEXTNS,u'paragraph-style-name'),
-		(TEXTNS,u'style-name'),
+		(TABLENS,u'paragraph-style-name'),
+		(TABLENS,u'style-name'),
 	),
 	(TABLENS,u'odd-rows'):(
-		(TEXTNS,u'paragraph-style-name'),
-		(TEXTNS,u'style-name'),
+		(TABLENS,u'paragraph-style-name'),
+		(TABLENS,u'style-name'),
 	),
 	(TABLENS,u'operation'):(
 		(TABLENS,u'index'),
@@ -7447,13 +8126,17 @@ allowed_attributes = {
 	),
 	(TABLENS,u'shapes'):(
 	),
+# allowed_attributes
 	(TABLENS,u'sort'):(
 		(TABLENS,u'case-sensitive'),
+		(TABLENS,u'embedded-number-behavior'),
 		(TABLENS,u'algorithm'),
 		(TABLENS,u'target-range-address'),
 		(TABLENS,u'country'),
 		(TABLENS,u'language'),
 		(TABLENS,u'bind-styles-to-content'),
+		(TABLENS,u'rfc-language-tag'),
+		(TABLENS,u'script'),
 	),
 	(TABLENS,u'sort-by'):(
 		(TABLENS,u'field-number'),
@@ -7499,31 +8182,46 @@ allowed_attributes = {
 		(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'name'),
 		(TABLENS,u'print'),
+		(TABLENS,u'print-ranges'),
+		(TABLENS,u'protected'),
 		(TABLENS,u'protection-key'),
+		(TABLENS,u'protection-key-digest-algorithm'),
+		(TABLENS,u'style-name'),
+		(TABLENS,u'template-name'),
+		(TABLENS,u'use-banding-columns-styles'),
+		(TABLENS,u'use-banding-rows-styles'),
+		(TABLENS,u'use-first-column-styles'),
+		(TABLENS,u'use-first-row-styles'),
+		(TABLENS,u'use-last-column-styles'),
+		(TABLENS,u'use-last-row-styles'),
+		(XMLNS,u'id'),
 	),
 	(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'string-value'),
+		(OFFICENS,u'time-value'),
+		(OFFICENS,u'value'),
 		(OFFICENS,u'value-type'),
-		(TABLENS,u'number-rows-spanned'),
-		(TABLENS,u'number-columns-repeated'),
+		(TABLENS,u'content-validation-name'),
 		(TABLENS,u'formula'),
-		(OFFICENS,u'time-value'),
+		(TABLENS,u'number-columns-repeated'),
+		(TABLENS,u'number-columns-spanned'),
+		(TABLENS,u'number-matrix-columns-spanned'),
+		(TABLENS,u'number-matrix-rows-spanned'),
+		(TABLENS,u'number-rows-spanned'),
+		(TABLENS,u'protect'),
+		(TABLENS,u'protected'),
+		(TABLENS,u'style-name'),
+		(XHTMLNS,u'about'),
+		(XHTMLNS,u'content'),
+		(XHTMLNS,u'datatype'),
+		(XHTMLNS,u'property'),
+		(XMLNS,u'id'),
 	),
 # allowed_attributes
 	(TABLENS,u'table-column'):(
@@ -7531,6 +8229,7 @@ allowed_attributes = {
 		(TABLENS,u'default-cell-style-name'),
 		(TABLENS,u'visibility'),
 		(TABLENS,u'number-columns-repeated'),
+		(XMLNS,u'id'),
 	),
 	(TABLENS,u'table-column-group'):(
 		(TABLENS,u'display'),
@@ -7546,6 +8245,7 @@ allowed_attributes = {
 		(TABLENS,u'style-name'),
 		(TABLENS,u'visibility'),
 		(TABLENS,u'default-cell-style-name'),
+		(XMLNS,u'id'),
 	),
 	(TABLENS,u'table-row-group'):(
 		(TABLENS,u'display'),
@@ -7562,12 +8262,13 @@ allowed_attributes = {
 		(XLINKNS,u'type'),
 		(TABLENS,u'refresh-delay'),
 	),
+# allowed_attributes
 	(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'last-row-end-column'),
+		(TABLENS,u'first-row-end-column'),
+		(TABLENS,u'name'),
+		(TABLENS,u'last-row-start-column'),
+		(TABLENS,u'first-row-start-column'),
 	),
 	(TABLENS,u'target-range-address'):(
 		(TABLENS,u'column'),
@@ -7580,6 +8281,8 @@ allowed_attributes = {
 		(TABLENS,u'end-table'),
 		(TABLENS,u'start-column'),
 	),
+	(TABLENS,u'title'):(
+	),
 	(TABLENS,u'tracked-changes'):(
 		(TABLENS,u'track-changes'),
 	),
@@ -7596,10 +8299,12 @@ allowed_attributes = {
 		(XLINKNS,u'type'),
 	),
 	(TEXTNS,u'alphabetical-index'):(
-		(TEXTNS,u'protected'),
-		(TEXTNS,u'style-name'),
 		(TEXTNS,u'name'),
+		(TEXTNS,u'protected'),
 		(TEXTNS,u'protection-key'),
+		(TEXTNS,u'protection-key-digest-algorithm'),
+		(TEXTNS,u'style-name'),
+		(XMLNS,u'id'),
 	),
 	(TEXTNS,u'alphabetical-index-auto-mark-file'):(
 		(XLINKNS,u'href'),
@@ -7632,19 +8337,21 @@ allowed_attributes = {
 		(TEXTNS,u'id'),
 	),
 	(TEXTNS,u'alphabetical-index-source'):(
-		(TEXTNS,u'capitalize-entries'),
+		(FONS,u'country'),
 		(FONS,u'language'),
-		(TEXTNS,u'relative-tab-stop-position'),
+		(FONS,u'script'),
+		(STYLENS,u'rfc-language-tag'),
 		(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'capitalize-entries'),
 		(TEXTNS,u'combine-entries'),
+		(TEXTNS,u'combine-entries-with-dash'),
+		(TEXTNS,u'combine-entries-with-pp'),
 		(TEXTNS,u'comma-separated'),
-		(FONS,u'country'),
+		(TEXTNS,u'ignore-case'),
 		(TEXTNS,u'index-scope'),
 		(TEXTNS,u'main-entry-style-name'),
+		(TEXTNS,u'relative-tab-stop-position'),
+		(TEXTNS,u'sort-algorithm'),
 		(TEXTNS,u'use-keys-as-entries'),
 	),
 # allowed_attributes
@@ -7659,15 +8366,19 @@ allowed_attributes = {
 		(TEXTNS,u'style-name'),
 		(TEXTNS,u'name'),
 		(TEXTNS,u'protection-key'),
+		(TEXTNS,u'protection-key-digest-algorithm'),
+		(XMLNS,u'id'),
 	),
 	(TEXTNS,u'bibliography-configuration'):(
-		(TEXTNS,u'suffix'),
+		(FONS,u'country'),
 		(FONS,u'language'),
+		(FONS,u'script'),
+		(STYLENS,u'rfc-language-tag'),
 		(TEXTNS,u'numbered-entries'),
-		(FONS,u'country'),
-		(TEXTNS,u'sort-by-position'),
-		(TEXTNS,u'sort-algorithm'),
 		(TEXTNS,u'prefix'),
+		(TEXTNS,u'sort-algorithm'),
+		(TEXTNS,u'sort-by-position'),
+		(TEXTNS,u'suffix'),
 	),
 	(TEXTNS,u'bibliography-entry-template'):(
 		(TEXTNS,u'style-name'),
@@ -7712,6 +8423,7 @@ allowed_attributes = {
 	),
 	(TEXTNS,u'bookmark'):(
 		(TEXTNS,u'name'),
+		(XMLNS,u'id'),
 	),
 	(TEXTNS,u'bookmark-end'):(
 		(TEXTNS,u'name'),
@@ -7721,7 +8433,12 @@ allowed_attributes = {
 		(TEXTNS,u'reference-format'),
 	),
 	(TEXTNS,u'bookmark-start'):(
+		(XHTMLNS,u'about'),
+		(XHTMLNS,u'content'),
+		(XHTMLNS,u'datatype'),
+		(XHTMLNS,u'property'),
 		(TEXTNS,u'name'),
+		(XMLNS,u'id'),
 	),
 # allowed_attributes
 	(TEXTNS,u'change'):(
@@ -7735,6 +8452,7 @@ allowed_attributes = {
 	),
 	(TEXTNS,u'changed-region'):(
 		(TEXTNS,u'id'),
+		(XMLNS,u'id'),
 	),
 	(TEXTNS,u'chapter'):(
 		(TEXTNS,u'display'),
@@ -7855,6 +8573,11 @@ allowed_attributes = {
 		(TEXTNS,u'start-value'),
 		(TEXTNS,u'id'),
 		(TEXTNS,u'outline-level'),
+		(XHTMLNS,u'about'),
+		(XHTMLNS,u'content'),
+		(XHTMLNS,u'datatype'),
+		(XHTMLNS,u'property'),
+		(XMLNS,u'id'),
 	),
 	(TEXTNS,u'hidden-paragraph'):(
 		(TEXTNS,u'is-hidden'),
@@ -7870,6 +8593,8 @@ allowed_attributes = {
 		(TEXTNS,u'style-name'),
 		(TEXTNS,u'name'),
 		(TEXTNS,u'protection-key'),
+		(TEXTNS,u'protection-key-digest-algorithm'),
+		(XMLNS,u'id'),
 	),
 	(TEXTNS,u'illustration-index-entry-template'):(
 		(TEXTNS,u'style-name'),
@@ -7889,6 +8614,7 @@ allowed_attributes = {
 	),
 	(TEXTNS,u'index-entry-chapter'):(
 		(TEXTNS,u'style-name'),
+		(TEXTNS,u'outline-level'),
 		(TEXTNS,u'display'),
 	),
 # allowed_attributes
@@ -7924,6 +8650,8 @@ allowed_attributes = {
 		(TEXTNS,u'style-name'),
 		(TEXTNS,u'name'),
 		(TEXTNS,u'protection-key'),
+		(TEXTNS,u'protection-key-digest-algorithm'),
+		(XMLNS,u'id'),
 	),
 	(TEXTNS,u'index-title-template'):(
 		(TEXTNS,u'style-name'),
@@ -7957,11 +8685,17 @@ allowed_attributes = {
 	(TEXTNS,u'list'):(
 		(TEXTNS,u'style-name'),
 		(TEXTNS,u'continue-numbering'),
+		(TEXTNS,u'continue-list'),
+		(XMLNS,u'id'),
 	),
 	(TEXTNS,u'list-header'):(
+		(XMLNS,u'id'),
 	),
+# allowed_attributes
 	(TEXTNS,u'list-item'):(
 		(TEXTNS,u'start-value'),
+		(TEXTNS,u'style-override'),
+		(XMLNS,u'id'),
 	),
 	(TEXTNS,u'list-level-style-bullet'):(
 		(TEXTNS,u'level'),
@@ -7997,6 +8731,19 @@ allowed_attributes = {
 	(TEXTNS,u'measure'):(
 		(TEXTNS,u'kind'),
 	),
+# allowed_attributes
+	(TEXTNS,u'meta'):(
+		(XHTMLNS,u'about'),
+		(XHTMLNS,u'content'),
+		(XMLNS,u'id'),
+		(XHTMLNS,u'property'),
+		(XHTMLNS,u'datatype'),
+	),
+# allowed_attributes
+	(TEXTNS,u'meta-field'):(
+		(STYLENS,u'data-style-name'),
+		(XMLNS,u'id'),
+	),
 	(TEXTNS,u'modification-date'):(
 		(TEXTNS,u'date-value'),
 		(TEXTNS,u'fixed'),
@@ -8043,9 +8790,11 @@ allowed_attributes = {
 	),
 	(TEXTNS,u'numbered-paragraph'):(
 		(TEXTNS,u'continue-numbering'),
-		(TEXTNS,u'style-name'),
-		(TEXTNS,u'start-value'),
 		(TEXTNS,u'level'),
+		(TEXTNS,u'list-id'),
+		(TEXTNS,u'start-value'),
+		(TEXTNS,u'style-name'),
+		(XMLNS,u'id'),
 	),
 	(TEXTNS,u'object-count'):(
 		(STYLENS,u'num-format'),
@@ -8056,6 +8805,8 @@ allowed_attributes = {
 		(TEXTNS,u'style-name'),
 		(TEXTNS,u'name'),
 		(TEXTNS,u'protection-key'),
+		(TEXTNS,u'protection-key-digest-algorithm'),
+		(XMLNS,u'id'),
 	),
 # allowed_attributes
 	(TEXTNS,u'object-index-entry-template'):(
@@ -8081,12 +8832,19 @@ allowed_attributes = {
 		(TEXTNS,u'start-value'),
 	),
 	(TEXTNS,u'outline-style'):(
+		(STYLENS,u'name'),
 	),
+# allowed_attributes
 	(TEXTNS,u'p'):(
-		(TEXTNS,u'cond-style-name'),
-		(TEXTNS,u'style-name'),
 		(TEXTNS,u'class-names'),
+		(TEXTNS,u'cond-style-name'),
 		(TEXTNS,u'id'),
+		(TEXTNS,u'style-name'),
+		(XHTMLNS,u'about'),
+		(XHTMLNS,u'content'),
+		(XHTMLNS,u'datatype'),
+		(XHTMLNS,u'property'),
+		(XMLNS,u'id'),
 	),
 	(TEXTNS,u'page'):(
 		(TEXTNS,u'master-page-name'),
@@ -8154,13 +8912,16 @@ allowed_attributes = {
 		(XLINKNS,u'type'),
 		(SCRIPTNS,u'language'),
 	),
+# allowed_attributes
 	(TEXTNS,u'section'):(
+		(TEXTNS,u'condition'),
+		(TEXTNS,u'display'),
 		(TEXTNS,u'name'),
+		(TEXTNS,u'protected'),
 		(TEXTNS,u'protection-key'),
+		(TEXTNS,u'protection-key-digest-algorithm'),
 		(TEXTNS,u'style-name'),
-		(TEXTNS,u'protected'),
-		(TEXTNS,u'display'),
-		(TEXTNS,u'condition'),
+		(XMLNS,u'id'),
 	),
 	(TEXTNS,u'section-source'):(
 		(TEXTNS,u'filter-name'),
@@ -8262,6 +9023,8 @@ allowed_attributes = {
 		(TEXTNS,u'style-name'),
 		(TEXTNS,u'name'),
 		(TEXTNS,u'protection-key'),
+		(TEXTNS,u'protection-key-digest-algorithm'),
+		(XMLNS,u'id'),
 	),
 	(TEXTNS,u'table-index-entry-template'):(
 		(TEXTNS,u'style-name'),
@@ -8279,6 +9042,8 @@ allowed_attributes = {
 		(TEXTNS,u'style-name'),
 		(TEXTNS,u'name'),
 		(TEXTNS,u'protection-key'),
+		(TEXTNS,u'protection-key-digest-algorithm'),
+		(XMLNS,u'id'),
 	),
 	(TEXTNS,u'table-of-content-entry-template'):(
 		(TEXTNS,u'style-name'),
@@ -8360,6 +9125,8 @@ allowed_attributes = {
 		(TEXTNS,u'style-name'),
 		(TEXTNS,u'name'),
 		(TEXTNS,u'protection-key'),
+		(TEXTNS,u'protection-key-digest-algorithm'),
+		(XMLNS,u'id'),
 	),
 	(TEXTNS,u'user-index-entry-template'):(
 		(TEXTNS,u'style-name'),
@@ -8372,7 +9139,6 @@ allowed_attributes = {
 	),
 	(TEXTNS,u'user-index-mark-end'):(
 		(TEXTNS,u'id'),
-		(TEXTNS,u'outline-level'),
 	),
 	(TEXTNS,u'user-index-mark-start'):(
 		(TEXTNS,u'index-name'),
@@ -8388,6 +9154,7 @@ allowed_attributes = {
 		(TEXTNS,u'use-floating-frames'),
 		(TEXTNS,u'use-graphics'),
 		(TEXTNS,u'use-index-marks'),
+		(TEXTNS,u'use-index-source-styles'),
 		(TEXTNS,u'use-objects'),
 		(TEXTNS,u'use-tables'),
 	),
diff --git a/odf/namespaces.py b/odf/namespaces.py
index 515bebc..4e6afe8 100644
--- a/odf/namespaces.py
+++ b/odf/namespaces.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2006-2010 Søren Roug, European Environment Agency
+# Copyright (C) 2006-2013 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
@@ -17,7 +17,7 @@
 #
 # Contributor(s):
 #
-TOOLSVERSION = u"ODFPY/0.9.6dev"
+TOOLSVERSION = u"ODFPY/1.2.0dev"
 
 ANIMNS         = u"urn:oasis:names:tc:opendocument:xmlns:animation:1.0"
 CHARTNS        = u"urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
diff --git a/odf/office.py b/odf/office.py
index 085e251..2d6b752 100644
--- a/odf/office.py
+++ b/odf/office.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
+# Copyright (C) 2006-2013 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
@@ -26,6 +26,9 @@ from draw import StyleRefElement
 def Annotation(**args):
     return StyleRefElement(qname = (OFFICENS,'annotation'), **args)
 
+def AnnotationEnd(**args):
+    return StyleRefElement(qname = (OFFICENS,'annotation-end'), **args)
+
 def AutomaticStyles(**args):
     return Element(qname = (OFFICENS, 'automatic-styles'), **args)
 
@@ -44,19 +47,19 @@ def Chart(**args):
 def DdeSource(**args):
     return Element(qname = (OFFICENS,'dde-source'), **args)
 
-def Document(version="1.1", **args):
+def Document(version="1.2", **args):
     return Element(qname = (OFFICENS,'document'), version=version, **args)
 
-def DocumentContent(version="1.1", **args):
+def DocumentContent(version="1.2", **args):
     return Element(qname = (OFFICENS, 'document-content'), version=version, **args)
 
-def DocumentMeta(version="1.1", **args):
+def DocumentMeta(version="1.2", **args):
     return Element(qname = (OFFICENS, 'document-meta'), version=version, **args)
 
-def DocumentSettings(version="1.1", **args):
+def DocumentSettings(version="1.2", **args):
     return Element(qname = (OFFICENS, 'document-settings'), version=version, **args)
 
-def DocumentStyles(version="1.1", **args):
+def DocumentStyles(version="1.2", **args):
     return Element(qname = (OFFICENS, 'document-styles'), version=version, **args)
 
 def Drawing(**args):
diff --git a/odf/style.py b/odf/style.py
index f64d7c8..00cf14e 100644
--- a/odf/style.py
+++ b/odf/style.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
+# Copyright (C) 2006-2013 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
@@ -44,6 +44,9 @@ def ColumnSep(**args):
 def Columns(**args):
     return Element(qname = (STYLENS,'columns'), **args)
 
+def DefaultPageLayout(**args):
+    return Element(qname = (STYLENS,'default-page-layout'), **args)
+
 def DefaultStyle(**args):
     return Element(qname = (STYLENS,'default-style'), **args)
 
@@ -86,6 +89,9 @@ def HeaderLeft(**args):
 def HeaderStyle(**args):
     return Element(qname = (STYLENS,'header-style'), **args)
 
+def ListLevelLabelAlignment(**args):
+    return Element(qname = (STYLENS,'list-level-label-alignment'), **args)
+
 def ListLevelProperties(**args):
     return Element(qname = (STYLENS,'list-level-properties'), **args)
 
diff --git a/odf/table.py b/odf/table.py
index 4ba0c36..11662a3 100644
--- a/odf/table.py
+++ b/odf/table.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
+# Copyright (C) 2006-2013 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
@@ -23,6 +23,9 @@ from element import Element
 
 
 # Autogenerated
+def Background(**args):
+    return Element(qname = (TABLENS,'background'), **args)
+
 def Body(**args):
     return Element(qname = (TABLENS,'body'), **args)
 
@@ -140,6 +143,9 @@ def Dependencies(**args):
 def Dependency(**args):
     return Element(qname = (TABLENS,'dependency'), **args)
 
+def Desc(**args):
+    return Element(qname = (TABLENS,'desc'), **args)
+
 def Detective(**args):
     return Element(qname = (TABLENS,'detective'), **args)
 
@@ -167,6 +173,9 @@ def FilterCondition(**args):
 def FilterOr(**args):
     return Element(qname = (TABLENS,'filter-or'), **args)
 
+def FilterSetItem(**args):
+    return Element(qname = (TABLENS,'filter-set-item'), **args)
+
 def FirstColumn(**args):
     return Element(qname = (TABLENS,'first-column'), **args)
 
@@ -302,6 +311,9 @@ def TableTemplate(**args):
 def TargetRangeAddress(**args):
     return Element(qname = (TABLENS,'target-range-address'), **args)
 
+def Title(**args):
+    return Element(qname = (TABLENS,'title'), **args)
+
 def TrackedChanges(**args):
     return Element(qname = (TABLENS,'tracked-changes'), **args)
 
diff --git a/odf/text.py b/odf/text.py
index b55a3a4..3313a86 100644
--- a/odf/text.py
+++ b/odf/text.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2006-2007 Søren Roug, European Environment Agency
+# Copyright (C) 2006-2013 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
@@ -263,6 +263,12 @@ def ListStyle(**args):
 def Measure(**args):
     return Element(qname = (TEXTNS,'measure'), **args)
 
+def Meta(**args):
+    return Element(qname = (TEXTNS,'meta'), **args)
+
+def MetaField(**args):
+    return Element(qname = (TEXTNS,'meta-field'), **args)
+
 def ModificationDate(**args):
     return Element(qname = (TEXTNS,'modification-date'), **args)
 
diff --git a/odflint/odflint b/odflint/odflint
index 9f21c5c..5004bf7 100755
--- a/odflint/odflint
+++ b/odflint/odflint
@@ -34,27 +34,6 @@ except ImportError:
 
 
 extension_attributes = {
-	 "OpenDocument 1.2" : {
-		(OFFICENS,u'document-content'):(
-			(GRDDLNS,u'transformation'),
-		),
-		(OFFICENS,u'document-meta'):(
-			(GRDDLNS,u'transformation'),
-		),
-		(OFFICENS,u'document-styles'):(
-			(GRDDLNS,u'transformation'),
-		),
-		(STYLENS,u'section-properties'): (
-			(STYLENS,u'editable'),
-		),
-		(MANIFESTNS,u'file-entry'): (
-			(MANIFESTNS,u'version'),
-		),
-		(TEXTNS,u'list'): (
-			(TEXTNS,u'continue-list'),
-			(XMLNS,u'id'),
-		),
-	},
 	 "OpenOffice.org" : {
 		(METANS,u'template'): (
 			(XLINKNS,u'role'),
diff --git a/setup.py b/setup.py
index 1ac06a4..41fff03 100644
--- a/setup.py
+++ b/setup.py
@@ -21,7 +21,7 @@
 import platform
 from distutils.core import setup
 
-version = '0.9.6dev'
+version = '1.2.0dev'
 
 if platform.system() in ('Linux','Unix'):
     man1pages = [('share/man/man1', [
diff --git a/tests/testdrawelement.py b/tests/testdrawelement.py
index b45c61a..43ecce0 100644
--- a/tests/testdrawelement.py
+++ b/tests/testdrawelement.py
@@ -47,7 +47,7 @@ class TestDrawElements(unittest.TestCase):
     def testCalls(self):
         """ Simple calls """
         self.assertRaises(TypeError, draw.FillImage, "x", href="y")
-        draw.FillImage(name="x",href="y")
+        draw.FillImage(name="x", href="y", type="simple")
         self.assertRaises(TypeError, draw.Gradient, "x", style="y")
         self.assertRaises(TypeError, draw.Hatch, "x", style="y")
         self.assertRaises(TypeError, draw.Marker, "x",d="y",viewbox="0 0 100 100")
diff --git a/tests/testform.py b/tests/testform.py
index d8fdd81..9a34dfc 100644
--- a/tests/testform.py
+++ b/tests/testform.py
@@ -63,5 +63,28 @@ class TestForm(unittest.TestCase):
         result = unicode(calcdoc.contentxml(),'utf-8')
         self.assertNotEqual(-1, result.find(u'''xmlns:ooo="http://openoffice.org/2004/office"'''))
 
+    def test_form_controls(self):
+        odf.form.Button(id="Button")
+        odf.form.Checkbox(id="Checkbox")
+        odf.form.Combobox(id="Combobox")
+        odf.form.Date(id="Date")
+        odf.form.File(id="File")
+        odf.form.FixedText(id="FixedText")
+        odf.form.FormattedText(id="FormattedText")
+        odf.form.Frame(id="Frame")
+        odf.form.GenericControl(id="GenericControl")
+        odf.form.Grid(id="Grid")
+        odf.form.Hidden(id="Hidden")
+        odf.form.Image(id="Image")
+        odf.form.ImageFrame(id="ImageFrame")
+        odf.form.Listbox(id="Listbox")
+        odf.form.Number(id="Number")
+        odf.form.Password(id="Password")
+        odf.form.Radio(id="Radio")
+        odf.form.Text(id="Text")
+        odf.form.Textarea(id="Textarea")
+        odf.form.Time(id="Time")
+        odf.form.ValueRange(id="ValueRange")
+
 if __name__ == '__main__':
     unittest.main()
diff --git a/tests/testlengths.py b/tests/testlengths.py
index c8c947e..0758646 100644
--- a/tests/testlengths.py
+++ b/tests/testlengths.py
@@ -48,8 +48,8 @@ class TestDrawElements(unittest.TestCase):
         draw.Control( control="1cm", width="0cm" )
         draw.Control( control="1cm", x="0cm" )
         draw.Control( control="1cm", y="0cm" )
-        draw.FillImage( href="1cm", name="1cm", height="0cm" )
-        draw.FillImage( href="1cm", name="1cm", width="0cm" )
+        draw.FillImage( href="1cm", type="simple", name="1cm", height="0cm" )
+        draw.FillImage( href="1cm", type="simple", name="1cm", width="0cm" )
         draw.GluePoint( x="1cm", align="1cm", id="1cm", y="0cm", escapedirection="right" )
         draw.GluePoint( y="1cm", align="1cm", id="1cm", x="0cm", escapedirection="right" )
         draw.Line( x2="1cm", x1="1cm", y2="1cm", y1="0cm" )
diff --git a/tests/teststyleref.py b/tests/teststyleref.py
index fb66298..d35a724 100644
--- a/tests/teststyleref.py
+++ b/tests/teststyleref.py
@@ -69,7 +69,7 @@ class TestStyleRefs(unittest.TestCase):
             dr3d.Sphere(stylename=boldstyle)
             draw.Caption(stylename=boldstyle)
             draw.Circle(stylename=boldstyle)
-            draw.Connector(stylename=boldstyle)
+            draw.Connector(stylename=boldstyle, viewbox="0 0 1000 1000")
             draw.Control(stylename=boldstyle, control="x")
             draw.CustomShape(stylename=boldstyle)
             draw.Ellipse(stylename=boldstyle)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-odf.git



More information about the Python-modules-commits mailing list