Branch 'python/master' - 5 commits - Makefile.am pykolab/contact.py pykolab/raw tests/__init__.py tests/test-contact.py tests/test-default-value-sensitivity.py tests/test-sensitivity-value.py

Jeroen van Meeuwen vanmeeuwen at kolabsys.com
Tue Oct 25 12:59:29 CEST 2011


 Makefile.am                             |    3 
 pykolab/contact.py                      |   31 
 pykolab/raw/format.py                   | 1280 ++++++++++++++++----------------
 tests/__init__.py                       |    8 
 tests/test-contact.py                   |  102 ++
 tests/test-default-value-sensitivity.py |   33 
 tests/test-sensitivity-value.py         |   41 +
 7 files changed, 858 insertions(+), 640 deletions(-)

New commits:
commit ad811c8141267d5ea5821ca3736595d5bc8eb30b
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Tue Oct 25 11:59:15 2011 +0100

    Based on newly generated bindings...

diff --git a/pykolab/raw/format.py b/pykolab/raw/format.py
index ac47798..72f5a68 100644
--- a/pykolab/raw/format.py
+++ b/pykolab/raw/format.py
@@ -1,7 +1,7 @@
 # ./pykolab/raw/format.py
 # PyXB bindings for NamespaceModule
 # NSM:627e20d8ff2455aff19af8f568d2295daed9a405
-# Generated 2011-10-23 17:43:09.571445 by PyXB version 1.1.2
+# Generated 2011-10-25 11:14:34.187182 by PyXB version 1.1.2
 import pyxb
 import pyxb.binding
 import pyxb.binding.saxer
@@ -11,7 +11,7 @@ import pyxb.utils.domutils
 import sys
 
 # Unique identifier for bindings created at the same time
-_GenerationUID = pyxb.utils.utility.UniqueIdentifier('urn:uuid:16db1f1e-fd96-11e0-ad63-001f3c5996b7')
+_GenerationUID = pyxb.utils.utility.UniqueIdentifier('urn:uuid:22a05460-fef2-11e0-8906-001f3c5996b7')
 
 # Import bindings for namespaces imported into schema
 import pyxb.binding.datatypes
@@ -43,6 +43,20 @@ def CreateFromDOM (node, default_namespace=None):
 
 
 # Atomic SimpleTypeDefinition
+class Color (pyxb.binding.datatypes.string):
+
+    """An atomic simple type."""
+
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'Color')
+    _Documentation = None
+Color._CF_length = pyxb.binding.facets.CF_length(value=pyxb.binding.datatypes.nonNegativeInteger(7L))
+Color._CF_pattern = pyxb.binding.facets.CF_pattern()
+Color._CF_pattern.addPattern(pattern=u'#([a-f;0-9]){6}')
+Color._InitializeFacetMap(Color._CF_length,
+   Color._CF_pattern)
+Namespace.addCategoryObject('typeBinding', u'Color', Color)
+
+# Atomic SimpleTypeDefinition
 class Sensitivity (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin):
 
     """An atomic simple type."""
@@ -84,20 +98,6 @@ Cycle._InitializeFacetMap(Cycle._CF_enumeration)
 Namespace.addCategoryObject('typeBinding', u'Cycle', Cycle)
 
 # Atomic SimpleTypeDefinition
-class Color (pyxb.binding.datatypes.string):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'Color')
-    _Documentation = None
-Color._CF_pattern = pyxb.binding.facets.CF_pattern()
-Color._CF_pattern.addPattern(pattern=u'#([a-f;0-9]){6}')
-Color._CF_length = pyxb.binding.facets.CF_length(value=pyxb.binding.datatypes.nonNegativeInteger(7L))
-Color._InitializeFacetMap(Color._CF_pattern,
-   Color._CF_length)
-Namespace.addCategoryObject('typeBinding', u'Color', Color)
-
-# Atomic SimpleTypeDefinition
 class UID (pyxb.binding.datatypes.string):
 
     """An atomic simple type."""
@@ -142,33 +142,115 @@ class PhoneNumber (pyxb.binding.basis.complexTypeDefinition):
 Namespace.addCategoryObject('typeBinding', u'PhoneNumber', PhoneNumber)
 
 
-# Complex type XMLBase with content type ELEMENT_ONLY
-class XMLBase (pyxb.binding.basis.complexTypeDefinition):
+# Complex type SMTPContact with content type ELEMENT_ONLY
+class SMTPContact (pyxb.binding.basis.complexTypeDefinition):
     _TypeDefinition = None
     _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = True
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'XMLBase')
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'SMTPContact')
     # Base type is pyxb.binding.datatypes.anyType
     
-    # Element {http://kolab.org}link-attachment uses Python identifier link_attachment
-    __link_attachment = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'link-attachment'), 'link_attachment', '__httpkolab_org_XMLBase_httpkolab_orglink_attachment', True)
+    # Element {http://kolab.org}display-name uses Python identifier display_name
+    __display_name = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'display-name'), 'display_name', '__httpkolab_org_SMTPContact_httpkolab_orgdisplay_name', False)
 
     
-    link_attachment = property(__link_attachment.value, __link_attachment.set, None, None)
+    display_name = property(__display_name.value, __display_name.set, None, None)
 
     
-    # Element {http://kolab.org}inline-attachment uses Python identifier inline_attachment
-    __inline_attachment = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'inline-attachment'), 'inline_attachment', '__httpkolab_org_XMLBase_httpkolab_orginline_attachment', True)
+    # Element {http://kolab.org}smtp-address uses Python identifier smtp_address
+    __smtp_address = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'smtp-address'), 'smtp_address', '__httpkolab_org_SMTPContact_httpkolab_orgsmtp_address', False)
 
     
-    inline_attachment = property(__inline_attachment.value, __inline_attachment.set, None, None)
+    smtp_address = property(__smtp_address.value, __smtp_address.set, None, None)
+
+
+    _ElementMap = {
+        __display_name.name() : __display_name,
+        __smtp_address.name() : __smtp_address
+    }
+    _AttributeMap = {
+        
+    }
+Namespace.addCategoryObject('typeBinding', u'SMTPContact', SMTPContact)
 
+
+# Complex type Address with content type ELEMENT_ONLY
+class Address (pyxb.binding.basis.complexTypeDefinition):
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'Address')
+    # Base type is pyxb.binding.datatypes.anyType
     
-    # Element {http://kolab.org}categories uses Python identifier categories
-    __categories = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'categories'), 'categories', '__httpkolab_org_XMLBase_httpkolab_orgcategories', False)
+    # Element {http://kolab.org}street uses Python identifier street
+    __street = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'street'), 'street', '__httpkolab_org_Address_httpkolab_orgstreet', False)
 
     
-    categories = property(__categories.value, __categories.set, None, None)
+    street = property(__street.value, __street.set, None, None)
+
+    
+    # Element {http://kolab.org}country uses Python identifier country
+    __country = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'country'), 'country', '__httpkolab_org_Address_httpkolab_orgcountry', False)
+
+    
+    country = property(__country.value, __country.set, None, None)
+
+    
+    # Element {http://kolab.org}postal-code uses Python identifier postal_code
+    __postal_code = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'postal-code'), 'postal_code', '__httpkolab_org_Address_httpkolab_orgpostal_code', False)
+
+    
+    postal_code = property(__postal_code.value, __postal_code.set, None, None)
+
+    
+    # Element {http://kolab.org}locality uses Python identifier locality
+    __locality = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'locality'), 'locality', '__httpkolab_org_Address_httpkolab_orglocality', False)
+
+    
+    locality = property(__locality.value, __locality.set, None, None)
+
+    
+    # Element {http://kolab.org}type uses Python identifier type
+    __type = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'type'), 'type', '__httpkolab_org_Address_httpkolab_orgtype', False, defaultValue=u'home')
+
+    
+    type = property(__type.value, __type.set, None, None)
+
+    
+    # Element {http://kolab.org}region uses Python identifier region
+    __region = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'region'), 'region', '__httpkolab_org_Address_httpkolab_orgregion', False)
+
+    
+    region = property(__region.value, __region.set, None, None)
+
+
+    _ElementMap = {
+        __street.name() : __street,
+        __country.name() : __country,
+        __postal_code.name() : __postal_code,
+        __locality.name() : __locality,
+        __type.name() : __type,
+        __region.name() : __region
+    }
+    _AttributeMap = {
+        
+    }
+Namespace.addCategoryObject('typeBinding', u'Address', Address)
+
+
+# Complex type XMLBase with content type ELEMENT_ONLY
+class XMLBase (pyxb.binding.basis.complexTypeDefinition):
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = True
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'XMLBase')
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Element {http://kolab.org}link-attachment uses Python identifier link_attachment
+    __link_attachment = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'link-attachment'), 'link_attachment', '__httpkolab_org_XMLBase_httpkolab_orglink_attachment', True)
+
+    
+    link_attachment = property(__link_attachment.value, __link_attachment.set, None, None)
 
     
     # Element {http://kolab.org}sensitivity uses Python identifier sensitivity
@@ -185,6 +267,13 @@ class XMLBase (pyxb.binding.basis.complexTypeDefinition):
     body = property(__body.value, __body.set, None, None)
 
     
+    # Element {http://kolab.org}inline-attachment uses Python identifier inline_attachment
+    __inline_attachment = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'inline-attachment'), 'inline_attachment', '__httpkolab_org_XMLBase_httpkolab_orginline_attachment', True)
+
+    
+    inline_attachment = property(__inline_attachment.value, __inline_attachment.set, None, None)
+
+    
     # Element {http://kolab.org}creation-date uses Python identifier creation_date
     __creation_date = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'creation-date'), 'creation_date', '__httpkolab_org_XMLBase_httpkolab_orgcreation_date', False)
 
@@ -213,6 +302,13 @@ class XMLBase (pyxb.binding.basis.complexTypeDefinition):
     last_modification_date = property(__last_modification_date.value, __last_modification_date.set, None, None)
 
     
+    # Element {http://kolab.org}categories uses Python identifier categories
+    __categories = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'categories'), 'categories', '__httpkolab_org_XMLBase_httpkolab_orgcategories', False)
+
+    
+    categories = property(__categories.value, __categories.set, None, None)
+
+    
     # Attribute version uses Python identifier version
     __version = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, u'version'), 'version', '__httpkolab_org_XMLBase_version', pyxb.binding.datatypes.string, fixed=True, unicode_default=u'3.0dev1')
     
@@ -221,14 +317,14 @@ class XMLBase (pyxb.binding.basis.complexTypeDefinition):
 
     _ElementMap = {
         __link_attachment.name() : __link_attachment,
-        __inline_attachment.name() : __inline_attachment,
-        __categories.name() : __categories,
         __sensitivity.name() : __sensitivity,
         __body.name() : __body,
+        __inline_attachment.name() : __inline_attachment,
         __creation_date.name() : __creation_date,
         __uid.name() : __uid,
         __product_id.name() : __product_id,
-        __last_modification_date.name() : __last_modification_date
+        __last_modification_date.name() : __last_modification_date,
+        __categories.name() : __categories
     }
     _AttributeMap = {
         __version.name() : __version
@@ -246,10 +342,6 @@ class Incidence (XMLBase):
     
     # Element link_attachment ({http://kolab.org}link-attachment) inherited from {http://kolab.org}XMLBase
     
-    # Element last_modification_date ({http://kolab.org}last-modification-date) inherited from {http://kolab.org}XMLBase
-    
-    # Element categories ({http://kolab.org}categories) inherited from {http://kolab.org}XMLBase
-    
     # Element sensitivity ({http://kolab.org}sensitivity) inherited from {http://kolab.org}XMLBase
     
     # Element {http://kolab.org}creator uses Python identifier creator
@@ -259,12 +351,9 @@ class Incidence (XMLBase):
     creator = property(__creator.value, __creator.set, None, None)
 
     
-    # Element {http://kolab.org}organizer uses Python identifier organizer
-    __organizer = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'organizer'), 'organizer', '__httpkolab_org_Incidence_httpkolab_orgorganizer', False)
-
+    # Element product_id ({http://kolab.org}product-id) inherited from {http://kolab.org}XMLBase
     
-    organizer = property(__organizer.value, __organizer.set, None, None)
-
+    # Element inline_attachment ({http://kolab.org}inline-attachment) inherited from {http://kolab.org}XMLBase
     
     # Element {http://kolab.org}recurrence uses Python identifier recurrence
     __recurrence = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'recurrence'), 'recurrence', '__httpkolab_org_Incidence_httpkolab_orgrecurrence', False)
@@ -273,13 +362,7 @@ class Incidence (XMLBase):
     recurrence = property(__recurrence.value, __recurrence.set, None, None)
 
     
-    # Element creation_date ({http://kolab.org}creation-date) inherited from {http://kolab.org}XMLBase
-    
-    # Element product_id ({http://kolab.org}product-id) inherited from {http://kolab.org}XMLBase
-    
-    # Element uid ({http://kolab.org}uid) inherited from {http://kolab.org}XMLBase
-    
-    # Element body ({http://kolab.org}body) inherited from {http://kolab.org}XMLBase
+    # Element categories ({http://kolab.org}categories) inherited from {http://kolab.org}XMLBase
     
     # Element {http://kolab.org}attendee uses Python identifier attendee
     __attendee = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'attendee'), 'attendee', '__httpkolab_org_Incidence_httpkolab_orgattendee', False)
@@ -288,7 +371,11 @@ class Incidence (XMLBase):
     attendee = property(__attendee.value, __attendee.set, None, None)
 
     
-    # Element inline_attachment ({http://kolab.org}inline-attachment) inherited from {http://kolab.org}XMLBase
+    # Element uid ({http://kolab.org}uid) inherited from {http://kolab.org}XMLBase
+    
+    # Element body ({http://kolab.org}body) inherited from {http://kolab.org}XMLBase
+    
+    # Element last_modification_date ({http://kolab.org}last-modification-date) inherited from {http://kolab.org}XMLBase
     
     # Element {http://kolab.org}alarm uses Python identifier alarm
     __alarm = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'alarm'), 'alarm', '__httpkolab_org_Incidence_httpkolab_orgalarm', False)
@@ -297,6 +384,13 @@ class Incidence (XMLBase):
     alarm = property(__alarm.value, __alarm.set, None, None)
 
     
+    # Element {http://kolab.org}organizer uses Python identifier organizer
+    __organizer = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'organizer'), 'organizer', '__httpkolab_org_Incidence_httpkolab_orgorganizer', False)
+
+    
+    organizer = property(__organizer.value, __organizer.set, None, None)
+
+    
     # Element {http://kolab.org}location uses Python identifier location
     __location = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'location'), 'location', '__httpkolab_org_Incidence_httpkolab_orglocation', False)
 
@@ -304,6 +398,8 @@ class Incidence (XMLBase):
     location = property(__location.value, __location.set, None, None)
 
     
+    # Element creation_date ({http://kolab.org}creation-date) inherited from {http://kolab.org}XMLBase
+    
     # Element {http://kolab.org}summary uses Python identifier summary
     __summary = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'summary'), 'summary', '__httpkolab_org_Incidence_httpkolab_orgsummary', False)
 
@@ -316,10 +412,10 @@ class Incidence (XMLBase):
     _ElementMap = XMLBase._ElementMap.copy()
     _ElementMap.update({
         __creator.name() : __creator,
-        __organizer.name() : __organizer,
         __recurrence.name() : __recurrence,
         __attendee.name() : __attendee,
         __alarm.name() : __alarm,
+        __organizer.name() : __organizer,
         __location.name() : __location,
         __summary.name() : __summary
     })
@@ -330,252 +426,369 @@ class Incidence (XMLBase):
 Namespace.addCategoryObject('typeBinding', u'Incidence', Incidence)
 
 
-# Complex type Task with content type ELEMENT_ONLY
-class Task (Incidence):
+# Complex type Event with content type ELEMENT_ONLY
+class Event (Incidence):
     _TypeDefinition = None
     _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
     _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'Task')
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'Event')
     # Base type is Incidence
     
-    # Element creator ({http://kolab.org}creator) inherited from {http://kolab.org}Incidence
-    
-    # Element organizer ({http://kolab.org}organizer) inherited from {http://kolab.org}Incidence
+    # Element {http://kolab.org}show-time-as uses Python identifier show_time_as
+    __show_time_as = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'show-time-as'), 'show_time_as', '__httpkolab_org_Event_httpkolab_orgshow_time_as', False)
+
     
-    # Element {http://kolab.org}status uses Python identifier status
-    __status = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'status'), 'status', '__httpkolab_org_Task_httpkolab_orgstatus', False)
+    show_time_as = property(__show_time_as.value, __show_time_as.set, None, None)
 
     
-    status = property(__status.value, __status.set, None, None)
+    # Element {http://kolab.org}end-date uses Python identifier end_date
+    __end_date = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'end-date'), 'end_date', '__httpkolab_org_Event_httpkolab_orgend_date', False)
 
     
-    # Element last_modification_date ({http://kolab.org}last-modification-date) inherited from {http://kolab.org}XMLBase
+    end_date = property(__end_date.value, __end_date.set, None, None)
+
     
-    # Element attendee ({http://kolab.org}attendee) inherited from {http://kolab.org}Incidence
+    # Element creation_date ({http://kolab.org}creation-date) inherited from {http://kolab.org}XMLBase
     
     # Element sensitivity ({http://kolab.org}sensitivity) inherited from {http://kolab.org}XMLBase
     
-    # Element body ({http://kolab.org}body) inherited from {http://kolab.org}XMLBase
-    
-    # Element {http://kolab.org}parent uses Python identifier parent
-    __parent = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'parent'), 'parent', '__httpkolab_org_Task_httpkolab_orgparent', False)
-
-    
-    parent = property(__parent.value, __parent.set, None, None)
-
+    # Element creator ({http://kolab.org}creator) inherited from {http://kolab.org}Incidence
     
-    # Element categories ({http://kolab.org}categories) inherited from {http://kolab.org}XMLBase
+    # Element organizer ({http://kolab.org}organizer) inherited from {http://kolab.org}Incidence
     
     # Element product_id ({http://kolab.org}product-id) inherited from {http://kolab.org}XMLBase
     
-    # Element inline_attachment ({http://kolab.org}inline-attachment) inherited from {http://kolab.org}XMLBase
+    # Element attendee ({http://kolab.org}attendee) inherited from {http://kolab.org}Incidence
     
-    # Element {http://kolab.org}start-date uses Python identifier start_date
-    __start_date = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'start-date'), 'start_date', '__httpkolab_org_Task_httpkolab_orgstart_date', False)
-
+    # Element last_modification_date ({http://kolab.org}last-modification-date) inherited from {http://kolab.org}XMLBase
     
-    start_date = property(__start_date.value, __start_date.set, None, None)
-
+    # Element recurrence ({http://kolab.org}recurrence) inherited from {http://kolab.org}Incidence
     
-    # Element {http://kolab.org}completed uses Python identifier completed
-    __completed = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'completed'), 'completed', '__httpkolab_org_Task_httpkolab_orgcompleted', False)
-
+    # Element categories ({http://kolab.org}categories) inherited from {http://kolab.org}XMLBase
     
-    completed = property(__completed.value, __completed.set, None, None)
-
+    # Element body ({http://kolab.org}body) inherited from {http://kolab.org}XMLBase
     
     # Element uid ({http://kolab.org}uid) inherited from {http://kolab.org}XMLBase
     
-    # Element link_attachment ({http://kolab.org}link-attachment) inherited from {http://kolab.org}XMLBase
+    # Element {http://kolab.org}color-label uses Python identifier color_label
+    __color_label = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'color-label'), 'color_label', '__httpkolab_org_Event_httpkolab_orgcolor_label', False)
+
     
-    # Element recurrence ({http://kolab.org}recurrence) inherited from {http://kolab.org}Incidence
+    color_label = property(__color_label.value, __color_label.set, None, None)
+
     
-    # Element alarm ({http://kolab.org}alarm) inherited from {http://kolab.org}Incidence
+    # Element inline_attachment ({http://kolab.org}inline-attachment) inherited from {http://kolab.org}XMLBase
     
-    # Element creation_date ({http://kolab.org}creation-date) inherited from {http://kolab.org}XMLBase
+    # Element alarm ({http://kolab.org}alarm) inherited from {http://kolab.org}Incidence
     
-    # Element {http://kolab.org}due-date uses Python identifier due_date
-    __due_date = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'due-date'), 'due_date', '__httpkolab_org_Task_httpkolab_orgdue_date', False)
+    # Element {http://kolab.org}start-date uses Python identifier start_date
+    __start_date = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'start-date'), 'start_date', '__httpkolab_org_Event_httpkolab_orgstart_date', False)
 
     
-    due_date = property(__due_date.value, __due_date.set, None, None)
+    start_date = property(__start_date.value, __start_date.set, None, None)
 
     
+    # Element location ({http://kolab.org}location) inherited from {http://kolab.org}Incidence
+    
+    # Element link_attachment ({http://kolab.org}link-attachment) inherited from {http://kolab.org}XMLBase
+    
     # Element summary ({http://kolab.org}summary) inherited from {http://kolab.org}Incidence
     
-    # Element {http://kolab.org}priority uses Python identifier priority
-    __priority = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'priority'), 'priority', '__httpkolab_org_Task_httpkolab_orgpriority', False)
+    # Attribute version inherited from {http://kolab.org}XMLBase
+
+    _ElementMap = Incidence._ElementMap.copy()
+    _ElementMap.update({
+        __show_time_as.name() : __show_time_as,
+        __end_date.name() : __end_date,
+        __color_label.name() : __color_label,
+        __start_date.name() : __start_date
+    })
+    _AttributeMap = Incidence._AttributeMap.copy()
+    _AttributeMap.update({
+        
+    })
+Namespace.addCategoryObject('typeBinding', u'Event', Event)
+
 
+# Complex type Attendee with content type ELEMENT_ONLY
+class Attendee (SMTPContact):
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = True
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'Attendee')
+    # Base type is SMTPContact
     
-    priority = property(__priority.value, __priority.set, None, None)
+    # Element display_name ({http://kolab.org}display-name) inherited from {http://kolab.org}SMTPContact
+    
+    # Element smtp_address ({http://kolab.org}smtp-address) inherited from {http://kolab.org}SMTPContact
+    
+    # Element {http://kolab.org}status uses Python identifier status
+    __status = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'status'), 'status', '__httpkolab_org_Attendee_httpkolab_orgstatus', False)
 
     
-    # Element location ({http://kolab.org}location) inherited from {http://kolab.org}Incidence
+    status = property(__status.value, __status.set, None, None)
+
     
-    # Attribute version inherited from {http://kolab.org}XMLBase
+    # Element {http://kolab.org}role uses Python identifier role
+    __role = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'role'), 'role', '__httpkolab_org_Attendee_httpkolab_orgrole', False)
 
-    _ElementMap = Incidence._ElementMap.copy()
+    
+    role = property(__role.value, __role.set, None, None)
+
+    
+    # Element {http://kolab.org}request-response uses Python identifier request_response
+    __request_response = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'request-response'), 'request_response', '__httpkolab_org_Attendee_httpkolab_orgrequest_response', False)
+
+    
+    request_response = property(__request_response.value, __request_response.set, None, None)
+
+
+    _ElementMap = SMTPContact._ElementMap.copy()
     _ElementMap.update({
         __status.name() : __status,
-        __parent.name() : __parent,
-        __start_date.name() : __start_date,
-        __completed.name() : __completed,
-        __due_date.name() : __due_date,
-        __priority.name() : __priority
+        __role.name() : __role,
+        __request_response.name() : __request_response
     })
-    _AttributeMap = Incidence._AttributeMap.copy()
+    _AttributeMap = SMTPContact._AttributeMap.copy()
     _AttributeMap.update({
         
     })
-Namespace.addCategoryObject('typeBinding', u'Task', Task)
+Namespace.addCategoryObject('typeBinding', u'Attendee', Attendee)
 
 
-# Complex type Address with content type ELEMENT_ONLY
-class Address (pyxb.binding.basis.complexTypeDefinition):
+# Complex type Name with content type ELEMENT_ONLY
+class Name (pyxb.binding.basis.complexTypeDefinition):
     _TypeDefinition = None
     _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
     _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'Address')
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'Name')
     # Base type is pyxb.binding.datatypes.anyType
     
-    # Element {http://kolab.org}street uses Python identifier street
-    __street = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'street'), 'street', '__httpkolab_org_Address_httpkolab_orgstreet', False)
+    # Element {http://kolab.org}prefix uses Python identifier prefix
+    __prefix = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'prefix'), 'prefix', '__httpkolab_org_Name_httpkolab_orgprefix', False)
 
     
-    street = property(__street.value, __street.set, None, None)
+    prefix = property(__prefix.value, __prefix.set, None, None)
 
     
-    # Element {http://kolab.org}country uses Python identifier country
-    __country = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'country'), 'country', '__httpkolab_org_Address_httpkolab_orgcountry', False)
+    # Element {http://kolab.org}middle-names uses Python identifier middle_names
+    __middle_names = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'middle-names'), 'middle_names', '__httpkolab_org_Name_httpkolab_orgmiddle_names', False)
 
     
-    country = property(__country.value, __country.set, None, None)
+    middle_names = property(__middle_names.value, __middle_names.set, None, None)
 
     
-    # Element {http://kolab.org}postal-code uses Python identifier postal_code
-    __postal_code = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'postal-code'), 'postal_code', '__httpkolab_org_Address_httpkolab_orgpostal_code', False)
+    # Element {http://kolab.org}last-name uses Python identifier last_name
+    __last_name = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'last-name'), 'last_name', '__httpkolab_org_Name_httpkolab_orglast_name', False)
 
     
-    postal_code = property(__postal_code.value, __postal_code.set, None, None)
+    last_name = property(__last_name.value, __last_name.set, None, None)
 
     
-    # Element {http://kolab.org}locality uses Python identifier locality
-    __locality = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'locality'), 'locality', '__httpkolab_org_Address_httpkolab_orglocality', False)
+    # Element {http://kolab.org}full-name uses Python identifier full_name
+    __full_name = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'full-name'), 'full_name', '__httpkolab_org_Name_httpkolab_orgfull_name', False)
 
     
-    locality = property(__locality.value, __locality.set, None, None)
+    full_name = property(__full_name.value, __full_name.set, None, None)
 
     
-    # Element {http://kolab.org}type uses Python identifier type
-    __type = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'type'), 'type', '__httpkolab_org_Address_httpkolab_orgtype', False, defaultValue=u'home')
+    # Element {http://kolab.org}suffix uses Python identifier suffix
+    __suffix = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'suffix'), 'suffix', '__httpkolab_org_Name_httpkolab_orgsuffix', False)
 
     
-    type = property(__type.value, __type.set, None, None)
+    suffix = property(__suffix.value, __suffix.set, None, None)
 
     
-    # Element {http://kolab.org}region uses Python identifier region
-    __region = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'region'), 'region', '__httpkolab_org_Address_httpkolab_orgregion', False)
+    # Element {http://kolab.org}initials uses Python identifier initials
+    __initials = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'initials'), 'initials', '__httpkolab_org_Name_httpkolab_orginitials', False)
 
     
-    region = property(__region.value, __region.set, None, None)
+    initials = property(__initials.value, __initials.set, None, None)
+
+    
+    # Element {http://kolab.org}given-name uses Python identifier given_name
+    __given_name = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'given-name'), 'given_name', '__httpkolab_org_Name_httpkolab_orggiven_name', False)
+
+    
+    given_name = property(__given_name.value, __given_name.set, None, None)
 
 
     _ElementMap = {
-        __street.name() : __street,
-        __country.name() : __country,
-        __postal_code.name() : __postal_code,
-        __locality.name() : __locality,
-        __type.name() : __type,
-        __region.name() : __region
+        __prefix.name() : __prefix,
+        __middle_names.name() : __middle_names,
+        __last_name.name() : __last_name,
+        __full_name.name() : __full_name,
+        __suffix.name() : __suffix,
+        __initials.name() : __initials,
+        __given_name.name() : __given_name
     }
     _AttributeMap = {
         
     }
-Namespace.addCategoryObject('typeBinding', u'Address', Address)
+Namespace.addCategoryObject('typeBinding', u'Name', Name)
 
 
-# Complex type Event with content type ELEMENT_ONLY
-class Event (Incidence):
+# Complex type RecurrenceType with content type EMPTY
+class RecurrenceType (pyxb.binding.basis.complexTypeDefinition):
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
+    _Abstract = True
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'RecurrenceType')
+    # Base type is pyxb.binding.datatypes.anyType
+    
+    # Attribute type uses Python identifier type
+    __type = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, u'type'), 'type', '__httpkolab_org_RecurrenceType_type', pyxb.binding.datatypes.string)
+    
+    type = property(__type.value, __type.set, None, None)
+
+
+    _ElementMap = {
+        
+    }
+    _AttributeMap = {
+        __type.name() : __type
+    }
+Namespace.addCategoryObject('typeBinding', u'RecurrenceType', RecurrenceType)
+
+
+# Complex type Recurrence with content type ELEMENT_ONLY
+class Recurrence (pyxb.binding.basis.complexTypeDefinition):
     _TypeDefinition = None
     _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'Event')
-    # Base type is Incidence
+    _Abstract = True
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'Recurrence')
+    # Base type is pyxb.binding.datatypes.anyType
     
-    # Element {http://kolab.org}show-time-as uses Python identifier show_time_as
-    __show_time_as = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'show-time-as'), 'show_time_as', '__httpkolab_org_Event_httpkolab_orgshow_time_as', False)
+    # Element {http://kolab.org}rangetype uses Python identifier rangetype
+    __rangetype = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'rangetype'), 'rangetype', '__httpkolab_org_Recurrence_httpkolab_orgrangetype', False)
 
     
-    show_time_as = property(__show_time_as.value, __show_time_as.set, None, None)
+    rangetype = property(__rangetype.value, __rangetype.set, None, None)
 
     
-    # Element last_modification_date ({http://kolab.org}last-modification-date) inherited from {http://kolab.org}XMLBase
+    # Element {http://kolab.org}interval uses Python identifier interval
+    __interval = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'interval'), 'interval', '__httpkolab_org_Recurrence_httpkolab_orginterval', False)
+
     
-    # Element creation_date ({http://kolab.org}creation-date) inherited from {http://kolab.org}XMLBase
+    interval = property(__interval.value, __interval.set, None, None)
+
     
-    # Element summary ({http://kolab.org}summary) inherited from {http://kolab.org}Incidence
+    # Element {http://kolab.org}exclusion uses Python identifier exclusion
+    __exclusion = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'exclusion'), 'exclusion', '__httpkolab_org_Recurrence_httpkolab_orgexclusion', True)
+
     
-    # Element link_attachment ({http://kolab.org}link-attachment) inherited from {http://kolab.org}XMLBase
+    exclusion = property(__exclusion.value, __exclusion.set, None, None)
+
+
+    _ElementMap = {
+        __rangetype.name() : __rangetype,
+        __interval.name() : __interval,
+        __exclusion.name() : __exclusion
+    }
+    _AttributeMap = {
+        
+    }
+Namespace.addCategoryObject('typeBinding', u'Recurrence', Recurrence)
+
+
+# Complex type Task with content type ELEMENT_ONLY
+class Task (Incidence):
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'Task')
+    # Base type is Incidence
+    
+    # Element creator ({http://kolab.org}creator) inherited from {http://kolab.org}Incidence
+    
+    # Element body ({http://kolab.org}body) inherited from {http://kolab.org}XMLBase
+    
+    # Element organizer ({http://kolab.org}organizer) inherited from {http://kolab.org}Incidence
+    
+    # Element last_modification_date ({http://kolab.org}last-modification-date) inherited from {http://kolab.org}XMLBase
+    
+    # Element alarm ({http://kolab.org}alarm) inherited from {http://kolab.org}Incidence
     
     # Element sensitivity ({http://kolab.org}sensitivity) inherited from {http://kolab.org}XMLBase
     
-    # Element {http://kolab.org}color-label uses Python identifier color_label
-    __color_label = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'color-label'), 'color_label', '__httpkolab_org_Event_httpkolab_orgcolor_label', False)
+    # Element {http://kolab.org}priority uses Python identifier priority
+    __priority = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'priority'), 'priority', '__httpkolab_org_Task_httpkolab_orgpriority', False)
 
     
-    color_label = property(__color_label.value, __color_label.set, None, None)
+    priority = property(__priority.value, __priority.set, None, None)
 
     
-    # Element organizer ({http://kolab.org}organizer) inherited from {http://kolab.org}Incidence
+    # Element {http://kolab.org}parent uses Python identifier parent
+    __parent = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'parent'), 'parent', '__httpkolab_org_Task_httpkolab_orgparent', False)
+
     
-    # Element recurrence ({http://kolab.org}recurrence) inherited from {http://kolab.org}Incidence
+    parent = property(__parent.value, __parent.set, None, None)
+
     
     # Element categories ({http://kolab.org}categories) inherited from {http://kolab.org}XMLBase
     
-    # Element creator ({http://kolab.org}creator) inherited from {http://kolab.org}Incidence
-    
     # Element product_id ({http://kolab.org}product-id) inherited from {http://kolab.org}XMLBase
     
-    # Element body ({http://kolab.org}body) inherited from {http://kolab.org}XMLBase
+    # Element inline_attachment ({http://kolab.org}inline-attachment) inherited from {http://kolab.org}XMLBase
     
-    # Element {http://kolab.org}end-date uses Python identifier end_date
-    __end_date = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'end-date'), 'end_date', '__httpkolab_org_Event_httpkolab_orgend_date', False)
+    # Element creation_date ({http://kolab.org}creation-date) inherited from {http://kolab.org}XMLBase
+    
+    # Element {http://kolab.org}completed uses Python identifier completed
+    __completed = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'completed'), 'completed', '__httpkolab_org_Task_httpkolab_orgcompleted', False)
 
     
-    end_date = property(__end_date.value, __end_date.set, None, None)
+    completed = property(__completed.value, __completed.set, None, None)
 
     
-    # Element attendee ({http://kolab.org}attendee) inherited from {http://kolab.org}Incidence
+    # Element summary ({http://kolab.org}summary) inherited from {http://kolab.org}Incidence
     
-    # Element inline_attachment ({http://kolab.org}inline-attachment) inherited from {http://kolab.org}XMLBase
+    # Element link_attachment ({http://kolab.org}link-attachment) inherited from {http://kolab.org}XMLBase
+    
+    # Element recurrence ({http://kolab.org}recurrence) inherited from {http://kolab.org}Incidence
     
     # Element {http://kolab.org}start-date uses Python identifier start_date
-    __start_date = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'start-date'), 'start_date', '__httpkolab_org_Event_httpkolab_orgstart_date', False)
+    __start_date = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'start-date'), 'start_date', '__httpkolab_org_Task_httpkolab_orgstart_date', False)
 
     
     start_date = property(__start_date.value, __start_date.set, None, None)
 
     
-    # Element alarm ({http://kolab.org}alarm) inherited from {http://kolab.org}Incidence
+    # Element {http://kolab.org}status uses Python identifier status
+    __status = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'status'), 'status', '__httpkolab_org_Task_httpkolab_orgstatus', False)
+
     
-    # Element location ({http://kolab.org}location) inherited from {http://kolab.org}Incidence
+    status = property(__status.value, __status.set, None, None)
+
+    
+    # Element {http://kolab.org}due-date uses Python identifier due_date
+    __due_date = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'due-date'), 'due_date', '__httpkolab_org_Task_httpkolab_orgdue_date', False)
+
+    
+    due_date = property(__due_date.value, __due_date.set, None, None)
+
     
     # Element uid ({http://kolab.org}uid) inherited from {http://kolab.org}XMLBase
     
+    # Element attendee ({http://kolab.org}attendee) inherited from {http://kolab.org}Incidence
+    
+    # Element location ({http://kolab.org}location) inherited from {http://kolab.org}Incidence
+    
     # Attribute version inherited from {http://kolab.org}XMLBase
 
     _ElementMap = Incidence._ElementMap.copy()
     _ElementMap.update({
-        __show_time_as.name() : __show_time_as,
-        __color_label.name() : __color_label,
-        __end_date.name() : __end_date,
-        __start_date.name() : __start_date
+        __priority.name() : __priority,
+        __parent.name() : __parent,
+        __completed.name() : __completed,
+        __start_date.name() : __start_date,
+        __status.name() : __status,
+        __due_date.name() : __due_date
     })
     _AttributeMap = Incidence._AttributeMap.copy()
     _AttributeMap.update({
         
     })
-Namespace.addCategoryObject('typeBinding', u'Event', Event)
+Namespace.addCategoryObject('typeBinding', u'Task', Task)
 
 
 # Complex type Contact with content type ELEMENT_ONLY
@@ -627,12 +840,7 @@ class Contact (XMLBase):
     picture = property(__picture.value, __picture.set, None, None)
 
     
-    # Element {http://kolab.org}name uses Python identifier name
-    __name = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'name'), 'name', '__httpkolab_org_Contact_httpkolab_orgname', False)
-
-    
-    name = property(__name.value, __name.set, None, None)
-
+    # Element sensitivity ({http://kolab.org}sensitivity) inherited from {http://kolab.org}XMLBase
     
     # Element {http://kolab.org}children uses Python identifier children
     __children = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'children'), 'children', '__httpkolab_org_Contact_httpkolab_orgchildren', False)
@@ -648,7 +856,12 @@ class Contact (XMLBase):
     organization = property(__organization.value, __organization.set, None, None)
 
     
-    # Element body ({http://kolab.org}body) inherited from {http://kolab.org}XMLBase
+    # Element {http://kolab.org}free-busy-url uses Python identifier free_busy_url
+    __free_busy_url = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'free-busy-url'), 'free_busy_url', '__httpkolab_org_Contact_httpkolab_orgfree_busy_url', False)
+
+    
+    free_busy_url = property(__free_busy_url.value, __free_busy_url.set, None, None)
+
     
     # Element {http://kolab.org}gender uses Python identifier gender
     __gender = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'gender'), 'gender', '__httpkolab_org_Contact_httpkolab_orggender', False)
@@ -684,7 +897,12 @@ class Contact (XMLBase):
     email = property(__email.value, __email.set, None, None)
 
     
-    # Element sensitivity ({http://kolab.org}sensitivity) inherited from {http://kolab.org}XMLBase
+    # Element {http://kolab.org}name uses Python identifier name
+    __name = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'name'), 'name', '__httpkolab_org_Contact_httpkolab_orgname', False)
+
+    
+    name = property(__name.value, __name.set, None, None)
+
     
     # Element {http://kolab.org}department uses Python identifier department
     __department = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'department'), 'department', '__httpkolab_org_Contact_httpkolab_orgdepartment', False)
@@ -765,12 +983,7 @@ class Contact (XMLBase):
     
     # Element uid ({http://kolab.org}uid) inherited from {http://kolab.org}XMLBase
     
-    # Element {http://kolab.org}free-busy-url uses Python identifier free_busy_url
-    __free_busy_url = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'free-busy-url'), 'free_busy_url', '__httpkolab_org_Contact_httpkolab_orgfree_busy_url', False)
-
-    
-    free_busy_url = property(__free_busy_url.value, __free_busy_url.set, None, None)
-
+    # Element body ({http://kolab.org}body) inherited from {http://kolab.org}XMLBase
     
     # Element {http://kolab.org}nick-name uses Python identifier nick_name
     __nick_name = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'nick-name'), 'nick_name', '__httpkolab_org_Contact_httpkolab_orgnick_name', False)
@@ -788,13 +1001,14 @@ class Contact (XMLBase):
         __birthday.name() : __birthday,
         __anniversary.name() : __anniversary,
         __picture.name() : __picture,
-        __name.name() : __name,
         __children.name() : __children,
         __organization.name() : __organization,
+        __free_busy_url.name() : __free_busy_url,
         __gender.name() : __gender,
         __language.name() : __language,
         __phone.name() : __phone,
         __email.name() : __email,
+        __name.name() : __name,
         __department.name() : __department,
         __address.name() : __address,
         __office_location.name() : __office_location,
@@ -806,235 +1020,44 @@ class Contact (XMLBase):
         __longitude.name() : __longitude,
         __manager_name.name() : __manager_name,
         __assistant.name() : __assistant,
-        __free_busy_url.name() : __free_busy_url,
         __nick_name.name() : __nick_name
     })
-    _AttributeMap = XMLBase._AttributeMap.copy()
-    _AttributeMap.update({
-        
-    })
-Namespace.addCategoryObject('typeBinding', u'Contact', Contact)
-
-
-# Complex type Name with content type ELEMENT_ONLY
-class Name (pyxb.binding.basis.complexTypeDefinition):
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'Name')
-    # Base type is pyxb.binding.datatypes.anyType
-    
-    # Element {http://kolab.org}middle-names uses Python identifier middle_names
-    __middle_names = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'middle-names'), 'middle_names', '__httpkolab_org_Name_httpkolab_orgmiddle_names', False)
-
-    
-    middle_names = property(__middle_names.value, __middle_names.set, None, None)
-
-    
-    # Element {http://kolab.org}given-name uses Python identifier given_name
-    __given_name = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'given-name'), 'given_name', '__httpkolab_org_Name_httpkolab_orggiven_name', False)
-
-    
-    given_name = property(__given_name.value, __given_name.set, None, None)
-
-    
-    # Element {http://kolab.org}last-name uses Python identifier last_name
-    __last_name = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'last-name'), 'last_name', '__httpkolab_org_Name_httpkolab_orglast_name', False)
-
-    
-    last_name = property(__last_name.value, __last_name.set, None, None)
-
-    
-    # Element {http://kolab.org}full-name uses Python identifier full_name
-    __full_name = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'full-name'), 'full_name', '__httpkolab_org_Name_httpkolab_orgfull_name', False)
-
-    
-    full_name = property(__full_name.value, __full_name.set, None, None)
-
-    
-    # Element {http://kolab.org}suffix uses Python identifier suffix
-    __suffix = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'suffix'), 'suffix', '__httpkolab_org_Name_httpkolab_orgsuffix', False)
-
-    
-    suffix = property(__suffix.value, __suffix.set, None, None)
-
-    
-    # Element {http://kolab.org}initials uses Python identifier initials
-    __initials = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'initials'), 'initials', '__httpkolab_org_Name_httpkolab_orginitials', False)
-
-    
-    initials = property(__initials.value, __initials.set, None, None)
-
-    
-    # Element {http://kolab.org}prefix uses Python identifier prefix
-    __prefix = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'prefix'), 'prefix', '__httpkolab_org_Name_httpkolab_orgprefix', False)
-
-    
-    prefix = property(__prefix.value, __prefix.set, None, None)
-
-
-    _ElementMap = {
-        __middle_names.name() : __middle_names,
-        __given_name.name() : __given_name,
-        __last_name.name() : __last_name,
-        __full_name.name() : __full_name,
-        __suffix.name() : __suffix,
-        __initials.name() : __initials,
-        __prefix.name() : __prefix
-    }
-    _AttributeMap = {
-        
-    }
-Namespace.addCategoryObject('typeBinding', u'Name', Name)
-
-
-# Complex type Recurrence with content type ELEMENT_ONLY
-class Recurrence (pyxb.binding.basis.complexTypeDefinition):
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = True
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'Recurrence')
-    # Base type is pyxb.binding.datatypes.anyType
-    
-    # Element {http://kolab.org}rangetype uses Python identifier rangetype
-    __rangetype = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'rangetype'), 'rangetype', '__httpkolab_org_Recurrence_httpkolab_orgrangetype', False)
-
-    
-    rangetype = property(__rangetype.value, __rangetype.set, None, None)
-
-    
-    # Element {http://kolab.org}interval uses Python identifier interval
-    __interval = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'interval'), 'interval', '__httpkolab_org_Recurrence_httpkolab_orginterval', False)
-
-    
-    interval = property(__interval.value, __interval.set, None, None)
-
-    
-    # Element {http://kolab.org}exclusion uses Python identifier exclusion
-    __exclusion = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'exclusion'), 'exclusion', '__httpkolab_org_Recurrence_httpkolab_orgexclusion', True)
-
-    
-    exclusion = property(__exclusion.value, __exclusion.set, None, None)
-
-
-    _ElementMap = {
-        __rangetype.name() : __rangetype,
-        __interval.name() : __interval,
-        __exclusion.name() : __exclusion
-    }
-    _AttributeMap = {
-        
-    }
-Namespace.addCategoryObject('typeBinding', u'Recurrence', Recurrence)
-
-
-# Complex type DailyRecurrence with content type ELEMENT_ONLY
-class DailyRecurrence (Recurrence):
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'DailyRecurrence')
-    # Base type is Recurrence
-    
-    # Element rangetype ({http://kolab.org}rangetype) inherited from {http://kolab.org}Recurrence
-    
-    # Element interval ({http://kolab.org}interval) inherited from {http://kolab.org}Recurrence
-    
-    # Element exclusion ({http://kolab.org}exclusion) inherited from {http://kolab.org}Recurrence
-    
-    # Attribute cycle uses Python identifier cycle
-    __cycle = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, u'cycle'), 'cycle', '__httpkolab_org_DailyRecurrence_cycle', pyxb.binding.datatypes.string, fixed=True, unicode_default=u'daily', required=True)
-    
-    cycle = property(__cycle.value, __cycle.set, None, None)
-
-
-    _ElementMap = Recurrence._ElementMap.copy()
-    _ElementMap.update({
-        
-    })
-    _AttributeMap = Recurrence._AttributeMap.copy()
-    _AttributeMap.update({
-        __cycle.name() : __cycle
-    })
-Namespace.addCategoryObject('typeBinding', u'DailyRecurrence', DailyRecurrence)
-
-
-# Complex type SMTPContact with content type ELEMENT_ONLY
-class SMTPContact (pyxb.binding.basis.complexTypeDefinition):
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'SMTPContact')
-    # Base type is pyxb.binding.datatypes.anyType
-    
-    # Element {http://kolab.org}display-name uses Python identifier display_name
-    __display_name = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'display-name'), 'display_name', '__httpkolab_org_SMTPContact_httpkolab_orgdisplay_name', False)
-
-    
-    display_name = property(__display_name.value, __display_name.set, None, None)
-
-    
-    # Element {http://kolab.org}smtp-address uses Python identifier smtp_address
-    __smtp_address = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'smtp-address'), 'smtp_address', '__httpkolab_org_SMTPContact_httpkolab_orgsmtp_address', False)
-
-    
-    smtp_address = property(__smtp_address.value, __smtp_address.set, None, None)
-
-
-    _ElementMap = {
-        __display_name.name() : __display_name,
-        __smtp_address.name() : __smtp_address
-    }
-    _AttributeMap = {
-        
-    }
-Namespace.addCategoryObject('typeBinding', u'SMTPContact', SMTPContact)
-
-
-# Complex type Attendee with content type ELEMENT_ONLY
-class Attendee (SMTPContact):
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = True
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'Attendee')
-    # Base type is SMTPContact
-    
-    # Element display_name ({http://kolab.org}display-name) inherited from {http://kolab.org}SMTPContact
-    
-    # Element smtp_address ({http://kolab.org}smtp-address) inherited from {http://kolab.org}SMTPContact
-    
-    # Element {http://kolab.org}status uses Python identifier status
-    __status = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'status'), 'status', '__httpkolab_org_Attendee_httpkolab_orgstatus', False)
+    _AttributeMap = XMLBase._AttributeMap.copy()
+    _AttributeMap.update({
+        
+    })
+Namespace.addCategoryObject('typeBinding', u'Contact', Contact)
 
-    
-    status = property(__status.value, __status.set, None, None)
 
+# Complex type DailyRecurrence with content type ELEMENT_ONLY
+class DailyRecurrence (Recurrence):
+    _TypeDefinition = None
+    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
+    _Abstract = False
+    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'DailyRecurrence')
+    # Base type is Recurrence
     
-    # Element {http://kolab.org}role uses Python identifier role
-    __role = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'role'), 'role', '__httpkolab_org_Attendee_httpkolab_orgrole', False)
-
+    # Element rangetype ({http://kolab.org}rangetype) inherited from {http://kolab.org}Recurrence
     
-    role = property(__role.value, __role.set, None, None)
-
+    # Element interval ({http://kolab.org}interval) inherited from {http://kolab.org}Recurrence
     
-    # Element {http://kolab.org}request-response uses Python identifier request_response
-    __request_response = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'request-response'), 'request_response', '__httpkolab_org_Attendee_httpkolab_orgrequest_response', False)
-
+    # Element exclusion ({http://kolab.org}exclusion) inherited from {http://kolab.org}Recurrence
     
-    request_response = property(__request_response.value, __request_response.set, None, None)
+    # Attribute cycle uses Python identifier cycle
+    __cycle = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, u'cycle'), 'cycle', '__httpkolab_org_DailyRecurrence_cycle', pyxb.binding.datatypes.string, fixed=True, unicode_default=u'daily', required=True)
+    
+    cycle = property(__cycle.value, __cycle.set, None, None)
 
 
-    _ElementMap = SMTPContact._ElementMap.copy()
+    _ElementMap = Recurrence._ElementMap.copy()
     _ElementMap.update({
-        __status.name() : __status,
-        __role.name() : __role,
-        __request_response.name() : __request_response
+        
     })
-    _AttributeMap = SMTPContact._AttributeMap.copy()
+    _AttributeMap = Recurrence._AttributeMap.copy()
     _AttributeMap.update({
-        
+        __cycle.name() : __cycle
     })
-Namespace.addCategoryObject('typeBinding', u'Attendee', Attendee)
+Namespace.addCategoryObject('typeBinding', u'DailyRecurrence', DailyRecurrence)
 
 
 # Complex type Note with content type ELEMENT_ONLY
@@ -1052,31 +1075,27 @@ class Note (XMLBase):
     background_color = property(__background_color.value, __background_color.set, None, None)
 
     
-    # Element inline_attachment ({http://kolab.org}inline-attachment) inherited from {http://kolab.org}XMLBase
-    
-    # Element creation_date ({http://kolab.org}creation-date) inherited from {http://kolab.org}XMLBase
-    
-    # Element link_attachment ({http://kolab.org}link-attachment) inherited from {http://kolab.org}XMLBase
-    
     # Element sensitivity ({http://kolab.org}sensitivity) inherited from {http://kolab.org}XMLBase
     
     # Element body ({http://kolab.org}body) inherited from {http://kolab.org}XMLBase
     
-    # Element {http://kolab.org}foreground-color uses Python identifier foreground_color
-    __foreground_color = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'foreground-color'), 'foreground_color', '__httpkolab_org_Note_httpkolab_orgforeground_color', False, defaultValue=u'#ffff00')
+    # Element {http://kolab.org}summary uses Python identifier summary
+    __summary = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'summary'), 'summary', '__httpkolab_org_Note_httpkolab_orgsummary', False)
 
     
-    foreground_color = property(__foreground_color.value, __foreground_color.set, None, None)
+    summary = property(__summary.value, __summary.set, None, None)
 
     
-    # Element {http://kolab.org}summary uses Python identifier summary
-    __summary = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'summary'), 'summary', '__httpkolab_org_Note_httpkolab_orgsummary', False)
+    # Element {http://kolab.org}foreground-color uses Python identifier foreground_color
+    __foreground_color = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'foreground-color'), 'foreground_color', '__httpkolab_org_Note_httpkolab_orgforeground_color', False, defaultValue=u'#ffff00')
 
     
-    summary = property(__summary.value, __summary.set, None, None)
+    foreground_color = property(__foreground_color.value, __foreground_color.set, None, None)
 
     
-    # Element categories ({http://kolab.org}categories) inherited from {http://kolab.org}XMLBase
+    # Element creation_date ({http://kolab.org}creation-date) inherited from {http://kolab.org}XMLBase
+    
+    # Element inline_attachment ({http://kolab.org}inline-attachment) inherited from {http://kolab.org}XMLBase
     
     # Element uid ({http://kolab.org}uid) inherited from {http://kolab.org}XMLBase
     
@@ -1084,13 +1103,17 @@ class Note (XMLBase):
     
     # Element last_modification_date ({http://kolab.org}last-modification-date) inherited from {http://kolab.org}XMLBase
     
+    # Element categories ({http://kolab.org}categories) inherited from {http://kolab.org}XMLBase
+    
+    # Element link_attachment ({http://kolab.org}link-attachment) inherited from {http://kolab.org}XMLBase
+    
     # Attribute version inherited from {http://kolab.org}XMLBase
 
     _ElementMap = XMLBase._ElementMap.copy()
     _ElementMap.update({
         __background_color.name() : __background_color,
-        __foreground_color.name() : __foreground_color,
-        __summary.name() : __summary
+        __summary.name() : __summary,
+        __foreground_color.name() : __foreground_color
     })
     _AttributeMap = XMLBase._AttributeMap.copy()
     _AttributeMap.update({
@@ -1099,29 +1122,6 @@ class Note (XMLBase):
 Namespace.addCategoryObject('typeBinding', u'Note', Note)
 
 
-# Complex type RecurrenceType with content type EMPTY
-class RecurrenceType (pyxb.binding.basis.complexTypeDefinition):
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
-    _Abstract = True
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'RecurrenceType')
-    # Base type is pyxb.binding.datatypes.anyType
-    
-    # Attribute type uses Python identifier type
-    __type = pyxb.binding.content.AttributeUse(pyxb.namespace.ExpandedName(None, u'type'), 'type', '__httpkolab_org_RecurrenceType_type', pyxb.binding.datatypes.string)
-    
-    type = property(__type.value, __type.set, None, None)
-
-
-    _ElementMap = {
-        
-    }
-    _AttributeMap = {
-        __type.name() : __type
-    }
-Namespace.addCategoryObject('typeBinding', u'RecurrenceType', RecurrenceType)
-
-
 # Complex type WeeklyRecurrence with content type ELEMENT_ONLY
 class WeeklyRecurrence (Recurrence):
     _TypeDefinition = None
@@ -1161,9 +1161,7 @@ class MonthlyRecurrence (Recurrence):
     _ExpandedName = pyxb.namespace.ExpandedName(Namespace, u'MonthlyRecurrence')
     # Base type is Recurrence
     
-    # Element exclusion ({http://kolab.org}exclusion) inherited from {http://kolab.org}Recurrence
-    
-    # Element rangetype ({http://kolab.org}rangetype) inherited from {http://kolab.org}Recurrence
+    # Element interval ({http://kolab.org}interval) inherited from {http://kolab.org}Recurrence
     
     # Element {http://kolab.org}day uses Python identifier day
     __day = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'day'), 'day', '__httpkolab_org_MonthlyRecurrence_httpkolab_orgday', False)
@@ -1172,7 +1170,9 @@ class MonthlyRecurrence (Recurrence):
     day = property(__day.value, __day.set, None, None)
 
     
-    # Element interval ({http://kolab.org}interval) inherited from {http://kolab.org}Recurrence
+    # Element exclusion ({http://kolab.org}exclusion) inherited from {http://kolab.org}Recurrence
+    
+    # Element rangetype ({http://kolab.org}rangetype) inherited from {http://kolab.org}Recurrence
     
     # Element {http://kolab.org}daynumber uses Python identifier daynumber
     __daynumber = pyxb.binding.content.ElementUse(pyxb.namespace.ExpandedName(Namespace, u'daynumber'), 'daynumber', '__httpkolab_org_MonthlyRecurrence_httpkolab_orgdaynumber', False)
@@ -1267,12 +1267,12 @@ class YearlyRecurrence (Recurrence):
 Namespace.addCategoryObject('typeBinding', u'YearlyRecurrence', YearlyRecurrence)
 
 
-task = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'task'), Task)
-Namespace.addCategoryObject('elementBinding', task.name().localName(), task)
-
 event = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'event'), Event)
 Namespace.addCategoryObject('elementBinding', event.name().localName(), event)
 
+task = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'task'), Task)
+Namespace.addCategoryObject('elementBinding', task.name().localName(), task)
+
 contact = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'contact'), Contact)
 Namespace.addCategoryObject('elementBinding', contact.name().localName(), contact)
 
@@ -1292,90 +1292,231 @@ PhoneNumber._ContentModel = pyxb.binding.content.ParticleModel(PhoneNumber._Grou
 
 
 
-XMLBase._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'link-attachment'), pyxb.binding.datatypes.string, scope=XMLBase))
+SMTPContact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'display-name'), pyxb.binding.datatypes.string, scope=SMTPContact))
+
+SMTPContact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'smtp-address'), pyxb.binding.datatypes.string, scope=SMTPContact))
+SMTPContact._GroupModel = pyxb.binding.content.GroupSequence(
+    pyxb.binding.content.ParticleModel(SMTPContact._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'smtp-address')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(SMTPContact._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'display-name')), min_occurs=0L, max_occurs=1)
+    )
+SMTPContact._ContentModel = pyxb.binding.content.ParticleModel(SMTPContact._GroupModel, min_occurs=1, max_occurs=1)
+
+
+
+Address._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'street'), pyxb.binding.datatypes.string, scope=Address))
+
+Address._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'country'), pyxb.binding.datatypes.string, scope=Address))
+
+Address._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'postal-code'), pyxb.binding.datatypes.string, scope=Address))
+
+Address._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'locality'), pyxb.binding.datatypes.string, scope=Address))
+
+Address._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'type'), pyxb.binding.datatypes.string, scope=Address))
+
+Address._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'region'), pyxb.binding.datatypes.string, scope=Address))
+Address._GroupModel = pyxb.binding.content.GroupSequence(
+    pyxb.binding.content.ParticleModel(Address._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'type')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Address._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'street')), min_occurs=0L, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Address._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'postal-code')), min_occurs=0L, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Address._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'locality')), min_occurs=0L, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Address._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'region')), min_occurs=0L, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Address._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'country')), min_occurs=0L, max_occurs=1)
+    )
+Address._ContentModel = pyxb.binding.content.ParticleModel(Address._GroupModel, min_occurs=1, max_occurs=1)
+
+
+
+XMLBase._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'link-attachment'), pyxb.binding.datatypes.string, scope=XMLBase))
+
+XMLBase._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'sensitivity'), Sensitivity, scope=XMLBase))
+
+XMLBase._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'body'), pyxb.binding.datatypes.string, scope=XMLBase))
+
+XMLBase._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'inline-attachment'), pyxb.binding.datatypes.string, scope=XMLBase))
+
+XMLBase._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'creation-date'), pyxb.binding.datatypes.dateTime, scope=XMLBase))
+
+XMLBase._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'uid'), UID, scope=XMLBase))
+
+XMLBase._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'product-id'), pyxb.binding.datatypes.string, scope=XMLBase))
+
+XMLBase._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'last-modification-date'), pyxb.binding.datatypes.dateTime, scope=XMLBase))
+
+XMLBase._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'categories'), Category, scope=XMLBase))
+XMLBase._GroupModel = pyxb.binding.content.GroupSequence(
+    pyxb.binding.content.ParticleModel(XMLBase._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'uid')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(XMLBase._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'product-id')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(XMLBase._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'creation-date')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(XMLBase._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'last-modification-date')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(XMLBase._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'sensitivity')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(XMLBase._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'body')), min_occurs=0L, max_occurs=1),
+    pyxb.binding.content.ParticleModel(XMLBase._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'categories')), min_occurs=0L, max_occurs=1),
+    pyxb.binding.content.ParticleModel(XMLBase._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'inline-attachment')), min_occurs=0L, max_occurs=None),
+    pyxb.binding.content.ParticleModel(XMLBase._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'link-attachment')), min_occurs=0L, max_occurs=None)
+    )
+XMLBase._ContentModel = pyxb.binding.content.ParticleModel(XMLBase._GroupModel, min_occurs=1, max_occurs=1)
+
+
+
+Incidence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'creator'), SMTPContact, scope=Incidence))
+
+Incidence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'recurrence'), Recurrence, scope=Incidence))
+
+Incidence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'attendee'), Attendee, scope=Incidence))
+
+Incidence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'alarm'), pyxb.binding.datatypes.string, scope=Incidence))
+
+Incidence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'organizer'), SMTPContact, scope=Incidence))
+
+Incidence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'location'), pyxb.binding.datatypes.string, scope=Incidence))
+
+Incidence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'summary'), pyxb.binding.datatypes.string, scope=Incidence))
+Incidence._GroupModel_ = pyxb.binding.content.GroupSequence(
+    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'uid')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'product-id')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'creation-date')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'last-modification-date')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'sensitivity')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'body')), min_occurs=0L, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'categories')), min_occurs=0L, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'inline-attachment')), min_occurs=0L, max_occurs=None),
+    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'link-attachment')), min_occurs=0L, max_occurs=None)
+    )
+Incidence._GroupModel_2 = pyxb.binding.content.GroupSequence(
+    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'summary')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'location')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'creator')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'organizer')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'alarm')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'recurrence')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'attendee')), min_occurs=1, max_occurs=1)
+    )
+Incidence._GroupModel = pyxb.binding.content.GroupSequence(
+    pyxb.binding.content.ParticleModel(Incidence._GroupModel_, min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Incidence._GroupModel_2, min_occurs=1, max_occurs=1)
+    )
+Incidence._ContentModel = pyxb.binding.content.ParticleModel(Incidence._GroupModel, min_occurs=1, max_occurs=1)
+
+
+
+Event._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'show-time-as'), pyxb.binding.datatypes.string, scope=Event))
+
+Event._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'end-date'), pyxb.binding.datatypes.dateTime, scope=Event))
+
+Event._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'color-label'), pyxb.binding.datatypes.string, scope=Event))
+
+Event._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'start-date'), pyxb.binding.datatypes.dateTime, scope=Event))
+Event._GroupModel_2 = pyxb.binding.content.GroupSequence(
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'uid')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'product-id')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'creation-date')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'last-modification-date')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'sensitivity')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'body')), min_occurs=0L, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'categories')), min_occurs=0L, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'inline-attachment')), min_occurs=0L, max_occurs=None),
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'link-attachment')), min_occurs=0L, max_occurs=None)
+    )
+Event._GroupModel_3 = pyxb.binding.content.GroupSequence(
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'summary')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'location')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'creator')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'organizer')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'alarm')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'recurrence')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'attendee')), min_occurs=1, max_occurs=1)
+    )
+Event._GroupModel_ = pyxb.binding.content.GroupSequence(
+    pyxb.binding.content.ParticleModel(Event._GroupModel_2, min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Event._GroupModel_3, min_occurs=1, max_occurs=1)
+    )
+Event._GroupModel_4 = pyxb.binding.content.GroupSequence(
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'show-time-as')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'color-label')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'start-date')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'end-date')), min_occurs=1, max_occurs=1)
+    )
+Event._GroupModel = pyxb.binding.content.GroupSequence(
+    pyxb.binding.content.ParticleModel(Event._GroupModel_, min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Event._GroupModel_4, min_occurs=1, max_occurs=1)
+    )
+Event._ContentModel = pyxb.binding.content.ParticleModel(Event._GroupModel, min_occurs=1, max_occurs=1)
+
+
 
-XMLBase._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'inline-attachment'), pyxb.binding.datatypes.string, scope=XMLBase))
+Attendee._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'status'), pyxb.binding.datatypes.string, scope=Attendee))
 
-XMLBase._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'categories'), Category, scope=XMLBase))
+Attendee._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'role'), pyxb.binding.datatypes.string, scope=Attendee))
 
-XMLBase._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'sensitivity'), Sensitivity, scope=XMLBase))
+Attendee._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'request-response'), pyxb.binding.datatypes.string, scope=Attendee))
+Attendee._GroupModel_ = pyxb.binding.content.GroupSequence(
+    pyxb.binding.content.ParticleModel(Attendee._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'smtp-address')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Attendee._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'display-name')), min_occurs=0L, max_occurs=1)
+    )
+Attendee._GroupModel_2 = pyxb.binding.content.GroupSequence(
+    pyxb.binding.content.ParticleModel(Attendee._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'status')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Attendee._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'request-response')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Attendee._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'role')), min_occurs=1, max_occurs=1)
+    )
+Attendee._GroupModel = pyxb.binding.content.GroupSequence(
+    pyxb.binding.content.ParticleModel(Attendee._GroupModel_, min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Attendee._GroupModel_2, min_occurs=1, max_occurs=1)
+    )
+Attendee._ContentModel = pyxb.binding.content.ParticleModel(Attendee._GroupModel, min_occurs=1, max_occurs=1)
 
-XMLBase._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'body'), pyxb.binding.datatypes.string, scope=XMLBase))
 
-XMLBase._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'creation-date'), pyxb.binding.datatypes.dateTime, scope=XMLBase))
 
-XMLBase._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'uid'), UID, scope=XMLBase))
+Name._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'prefix'), pyxb.binding.datatypes.string, scope=Name))
 
-XMLBase._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'product-id'), pyxb.binding.datatypes.string, scope=XMLBase))
+Name._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'middle-names'), pyxb.binding.datatypes.string, scope=Name))
 
-XMLBase._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'last-modification-date'), pyxb.binding.datatypes.dateTime, scope=XMLBase))
-XMLBase._GroupModel = pyxb.binding.content.GroupSequence(
-    pyxb.binding.content.ParticleModel(XMLBase._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'uid')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(XMLBase._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'product-id')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(XMLBase._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'creation-date')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(XMLBase._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'last-modification-date')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(XMLBase._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'sensitivity')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(XMLBase._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'body')), min_occurs=0L, max_occurs=1),
-    pyxb.binding.content.ParticleModel(XMLBase._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'categories')), min_occurs=0L, max_occurs=1),
-    pyxb.binding.content.ParticleModel(XMLBase._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'inline-attachment')), min_occurs=0L, max_occurs=None),
-    pyxb.binding.content.ParticleModel(XMLBase._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'link-attachment')), min_occurs=0L, max_occurs=None)
-    )
-XMLBase._ContentModel = pyxb.binding.content.ParticleModel(XMLBase._GroupModel, min_occurs=1, max_occurs=1)
+Name._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'last-name'), pyxb.binding.datatypes.string, scope=Name))
 
+Name._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'full-name'), pyxb.binding.datatypes.string, scope=Name))
 
+Name._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'suffix'), pyxb.binding.datatypes.string, scope=Name))
 
-Incidence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'creator'), SMTPContact, scope=Incidence))
+Name._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'initials'), pyxb.binding.datatypes.string, scope=Name))
 
-Incidence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'organizer'), SMTPContact, scope=Incidence))
+Name._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'given-name'), pyxb.binding.datatypes.string, scope=Name))
+Name._GroupModel = pyxb.binding.content.GroupSequence(
+    pyxb.binding.content.ParticleModel(Name._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'given-name')), min_occurs=0L, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Name._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'middle-names')), min_occurs=0L, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Name._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'last-name')), min_occurs=0L, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Name._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'full-name')), min_occurs=0L, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Name._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'initials')), min_occurs=0L, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Name._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'prefix')), min_occurs=0L, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Name._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'suffix')), min_occurs=0L, max_occurs=1)
+    )
+Name._ContentModel = pyxb.binding.content.ParticleModel(Name._GroupModel, min_occurs=1, max_occurs=1)
 
-Incidence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'recurrence'), Recurrence, scope=Incidence))
 
-Incidence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'attendee'), Attendee, scope=Incidence))
 
-Incidence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'alarm'), pyxb.binding.datatypes.string, scope=Incidence))
+Recurrence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'rangetype'), RecurrenceType, scope=Recurrence))
 
-Incidence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'location'), pyxb.binding.datatypes.string, scope=Incidence))
+Recurrence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'interval'), pyxb.binding.datatypes.string, scope=Recurrence))
 
-Incidence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'summary'), pyxb.binding.datatypes.string, scope=Incidence))
-Incidence._GroupModel_ = pyxb.binding.content.GroupSequence(
-    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'uid')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'product-id')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'creation-date')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'last-modification-date')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'sensitivity')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'body')), min_occurs=0L, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'categories')), min_occurs=0L, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'inline-attachment')), min_occurs=0L, max_occurs=None),
-    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'link-attachment')), min_occurs=0L, max_occurs=None)
-    )
-Incidence._GroupModel_2 = pyxb.binding.content.GroupSequence(
-    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'summary')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'location')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'creator')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'organizer')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'alarm')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'recurrence')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Incidence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'attendee')), min_occurs=1, max_occurs=1)
-    )
-Incidence._GroupModel = pyxb.binding.content.GroupSequence(
-    pyxb.binding.content.ParticleModel(Incidence._GroupModel_, min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Incidence._GroupModel_2, min_occurs=1, max_occurs=1)
+Recurrence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'exclusion'), pyxb.binding.datatypes.string, scope=Recurrence))
+Recurrence._GroupModel = pyxb.binding.content.GroupSequence(
+    pyxb.binding.content.ParticleModel(Recurrence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'interval')), min_occurs=1, max_occurs=1),
+    pyxb.binding.content.ParticleModel(Recurrence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'exclusion')), min_occurs=0L, max_occurs=None),
+    pyxb.binding.content.ParticleModel(Recurrence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'rangetype')), min_occurs=1, max_occurs=1)
     )
-Incidence._ContentModel = pyxb.binding.content.ParticleModel(Incidence._GroupModel, min_occurs=1, max_occurs=1)
+Recurrence._ContentModel = pyxb.binding.content.ParticleModel(Recurrence._GroupModel, min_occurs=1, max_occurs=1)
 
 
 
-Task._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'status'), pyxb.binding.datatypes.string, scope=Task))
+Task._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'priority'), pyxb.binding.datatypes.int, scope=Task))
 
 Task._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'parent'), pyxb.binding.datatypes.string, scope=Task))
 
+Task._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'completed'), pyxb.binding.datatypes.int, scope=Task))
+
 Task._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'start-date'), pyxb.binding.datatypes.dateTime, scope=Task))
 
-Task._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'completed'), pyxb.binding.datatypes.int, scope=Task))
+Task._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'status'), pyxb.binding.datatypes.string, scope=Task))
 
 Task._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'due-date'), pyxb.binding.datatypes.dateTime, scope=Task))
-
-Task._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'priority'), pyxb.binding.datatypes.int, scope=Task))
 Task._GroupModel_2 = pyxb.binding.content.GroupSequence(
     pyxb.binding.content.ParticleModel(Task._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'uid')), min_occurs=1, max_occurs=1),
     pyxb.binding.content.ParticleModel(Task._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'product-id')), min_occurs=1, max_occurs=1),
@@ -1416,74 +1557,6 @@ Task._ContentModel = pyxb.binding.content.ParticleModel(Task._GroupModel, min_oc
 
 
 
-Address._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'street'), pyxb.binding.datatypes.string, scope=Address))
-
-Address._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'country'), pyxb.binding.datatypes.string, scope=Address))
-
-Address._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'postal-code'), pyxb.binding.datatypes.string, scope=Address))
-
-Address._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'locality'), pyxb.binding.datatypes.string, scope=Address))
-
-Address._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'type'), pyxb.binding.datatypes.string, scope=Address))
-
-Address._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'region'), pyxb.binding.datatypes.string, scope=Address))
-Address._GroupModel = pyxb.binding.content.GroupSequence(
-    pyxb.binding.content.ParticleModel(Address._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'type')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Address._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'street')), min_occurs=0L, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Address._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'postal-code')), min_occurs=0L, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Address._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'locality')), min_occurs=0L, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Address._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'region')), min_occurs=0L, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Address._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'country')), min_occurs=0L, max_occurs=1)
-    )
-Address._ContentModel = pyxb.binding.content.ParticleModel(Address._GroupModel, min_occurs=1, max_occurs=1)
-
-
-
-Event._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'show-time-as'), pyxb.binding.datatypes.string, scope=Event))
-
-Event._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'color-label'), pyxb.binding.datatypes.string, scope=Event))
-
-Event._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'end-date'), pyxb.binding.datatypes.dateTime, scope=Event))
-
-Event._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'start-date'), pyxb.binding.datatypes.dateTime, scope=Event))
-Event._GroupModel_2 = pyxb.binding.content.GroupSequence(
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'uid')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'product-id')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'creation-date')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'last-modification-date')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'sensitivity')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'body')), min_occurs=0L, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'categories')), min_occurs=0L, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'inline-attachment')), min_occurs=0L, max_occurs=None),
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'link-attachment')), min_occurs=0L, max_occurs=None)
-    )
-Event._GroupModel_3 = pyxb.binding.content.GroupSequence(
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'summary')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'location')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'creator')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'organizer')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'alarm')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'recurrence')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'attendee')), min_occurs=1, max_occurs=1)
-    )
-Event._GroupModel_ = pyxb.binding.content.GroupSequence(
-    pyxb.binding.content.ParticleModel(Event._GroupModel_2, min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Event._GroupModel_3, min_occurs=1, max_occurs=1)
-    )
-Event._GroupModel_4 = pyxb.binding.content.GroupSequence(
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'show-time-as')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'color-label')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'start-date')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Event._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'end-date')), min_occurs=1, max_occurs=1)
-    )
-Event._GroupModel = pyxb.binding.content.GroupSequence(
-    pyxb.binding.content.ParticleModel(Event._GroupModel_, min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Event._GroupModel_4, min_occurs=1, max_occurs=1)
-    )
-Event._ContentModel = pyxb.binding.content.ParticleModel(Event._GroupModel, min_occurs=1, max_occurs=1)
-
-
-
 Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'spouse-name'), pyxb.binding.datatypes.string, scope=Contact))
 
 Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'im-address'), pyxb.binding.datatypes.string, scope=Contact))
@@ -1494,12 +1567,12 @@ Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Names
 
 Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'picture'), pyxb.binding.datatypes.string, scope=Contact))
 
-Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'name'), Name, scope=Contact))
-
 Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'children'), pyxb.binding.datatypes.string, scope=Contact))
 
 Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'organization'), pyxb.binding.datatypes.string, scope=Contact))
 
+Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'free-busy-url'), pyxb.binding.datatypes.string, scope=Contact))
+
 Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'gender'), pyxb.binding.datatypes.string, scope=Contact))
 
 Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'language'), pyxb.binding.datatypes.string, scope=Contact))
@@ -1508,6 +1581,8 @@ Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Names
 
 Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'email'), SMTPContact, scope=Contact))
 
+Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'name'), Name, scope=Contact))
+
 Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'department'), pyxb.binding.datatypes.string, scope=Contact))
 
 Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'address'), Address, scope=Contact))
@@ -1530,8 +1605,6 @@ Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Names
 
 Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'assistant'), pyxb.binding.datatypes.string, scope=Contact))
 
-Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'free-busy-url'), pyxb.binding.datatypes.string, scope=Contact))
-
 Contact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'nick-name'), pyxb.binding.datatypes.string, scope=Contact))
 Contact._GroupModel_ = pyxb.binding.content.GroupSequence(
     pyxb.binding.content.ParticleModel(Contact._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'uid')), min_occurs=1, max_occurs=1),
@@ -1578,46 +1651,6 @@ Contact._GroupModel = pyxb.binding.content.GroupSequence(
 Contact._ContentModel = pyxb.binding.content.ParticleModel(Contact._GroupModel, min_occurs=1, max_occurs=1)
 
 
-
-Name._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'middle-names'), pyxb.binding.datatypes.string, scope=Name))
-
-Name._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'given-name'), pyxb.binding.datatypes.string, scope=Name))
-
-Name._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'last-name'), pyxb.binding.datatypes.string, scope=Name))
-
-Name._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'full-name'), pyxb.binding.datatypes.string, scope=Name))
-
-Name._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'suffix'), pyxb.binding.datatypes.string, scope=Name))
-
-Name._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'initials'), pyxb.binding.datatypes.string, scope=Name))
-
-Name._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'prefix'), pyxb.binding.datatypes.string, scope=Name))
-Name._GroupModel = pyxb.binding.content.GroupSequence(
-    pyxb.binding.content.ParticleModel(Name._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'given-name')), min_occurs=0L, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Name._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'middle-names')), min_occurs=0L, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Name._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'last-name')), min_occurs=0L, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Name._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'full-name')), min_occurs=0L, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Name._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'initials')), min_occurs=0L, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Name._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'prefix')), min_occurs=0L, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Name._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'suffix')), min_occurs=0L, max_occurs=1)
-    )
-Name._ContentModel = pyxb.binding.content.ParticleModel(Name._GroupModel, min_occurs=1, max_occurs=1)
-
-
-
-Recurrence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'rangetype'), RecurrenceType, scope=Recurrence))
-
-Recurrence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'interval'), pyxb.binding.datatypes.string, scope=Recurrence))
-
-Recurrence._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'exclusion'), pyxb.binding.datatypes.string, scope=Recurrence))
-Recurrence._GroupModel = pyxb.binding.content.GroupSequence(
-    pyxb.binding.content.ParticleModel(Recurrence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'interval')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Recurrence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'exclusion')), min_occurs=0L, max_occurs=None),
-    pyxb.binding.content.ParticleModel(Recurrence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'rangetype')), min_occurs=1, max_occurs=1)
-    )
-Recurrence._ContentModel = pyxb.binding.content.ParticleModel(Recurrence._GroupModel, min_occurs=1, max_occurs=1)
-
-
 DailyRecurrence._GroupModel = pyxb.binding.content.GroupSequence(
     pyxb.binding.content.ParticleModel(DailyRecurrence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'interval')), min_occurs=1, max_occurs=1),
     pyxb.binding.content.ParticleModel(DailyRecurrence._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'exclusion')), min_occurs=0L, max_occurs=None),
@@ -1627,44 +1660,11 @@ DailyRecurrence._ContentModel = pyxb.binding.content.ParticleModel(DailyRecurren
 
 
 
-SMTPContact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'display-name'), pyxb.binding.datatypes.string, scope=SMTPContact))
-
-SMTPContact._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'smtp-address'), pyxb.binding.datatypes.string, scope=SMTPContact))
-SMTPContact._GroupModel = pyxb.binding.content.GroupSequence(
-    pyxb.binding.content.ParticleModel(SMTPContact._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'smtp-address')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(SMTPContact._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'display-name')), min_occurs=0L, max_occurs=1)
-    )
-SMTPContact._ContentModel = pyxb.binding.content.ParticleModel(SMTPContact._GroupModel, min_occurs=1, max_occurs=1)
-
-
-
-Attendee._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'status'), pyxb.binding.datatypes.string, scope=Attendee))
-
-Attendee._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'role'), pyxb.binding.datatypes.string, scope=Attendee))
-
-Attendee._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'request-response'), pyxb.binding.datatypes.string, scope=Attendee))
-Attendee._GroupModel_ = pyxb.binding.content.GroupSequence(
-    pyxb.binding.content.ParticleModel(Attendee._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'smtp-address')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Attendee._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'display-name')), min_occurs=0L, max_occurs=1)
-    )
-Attendee._GroupModel_2 = pyxb.binding.content.GroupSequence(
-    pyxb.binding.content.ParticleModel(Attendee._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'status')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Attendee._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'request-response')), min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Attendee._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'role')), min_occurs=1, max_occurs=1)
-    )
-Attendee._GroupModel = pyxb.binding.content.GroupSequence(
-    pyxb.binding.content.ParticleModel(Attendee._GroupModel_, min_occurs=1, max_occurs=1),
-    pyxb.binding.content.ParticleModel(Attendee._GroupModel_2, min_occurs=1, max_occurs=1)
-    )
-Attendee._ContentModel = pyxb.binding.content.ParticleModel(Attendee._GroupModel, min_occurs=1, max_occurs=1)
-
-
-
 Note._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'background-color'), Color, scope=Note))
 
-Note._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'foreground-color'), Color, scope=Note))
-
 Note._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'summary'), pyxb.binding.datatypes.string, scope=Note))
+
+Note._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, u'foreground-color'), Color, scope=Note))
 Note._GroupModel_ = pyxb.binding.content.GroupSequence(
     pyxb.binding.content.ParticleModel(Note._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'uid')), min_occurs=1, max_occurs=1),
     pyxb.binding.content.ParticleModel(Note._UseForTag(pyxb.namespace.ExpandedName(Namespace, u'product-id')), min_occurs=1, max_occurs=1),


commit 317ef82cf33b69072dbe3a67df5b723a98f431f2
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Tue Oct 25 11:58:44 2011 +0100

    Add our Contact() wrapper

diff --git a/pykolab/contact.py b/pykolab/contact.py
new file mode 100644
index 0000000..c4611fe
--- /dev/null
+++ b/pykolab/contact.py
@@ -0,0 +1,31 @@
+import datetime
+import pykolab.format
+
+class Contact(pykolab.format.Contact):
+    def __init__(self, *args, **kw):
+        if kw.has_key('email'):
+            if isinstance(kw['email'], pykolab.format.SMTPContact):
+                kw['email'] = [ kw['email'] ]
+            elif isinstance(kw['email'], basestring):
+                kw['email'] = [ pykolab.format.SMTPContact(kw['email']) ]
+
+        pykolab.format.Contact.__init__(self, *args, **kw)
+
+        self.uid = pykolab.format.UID("0123456789")
+        self.product_id = "PyKolab Format XML Bindings"
+
+    def set_name(self, given_name=None, middle_names=None, last_name=None, full_name=None, initials=None, prefix=None, suffix=None):
+        self.name = pykolab.format.Name(given_name, middle_names, last_name, full_name, initials, prefix, suffix)
+
+    def set_email(self, smtp_address, display_name=None):
+        self.email = [ pykolab.format.SMTPContact(smtp_address, display_name) ]
+
+    def add_email(self, smtp_address, display_name=None):
+        self.email.append(pykolab.format.SMTPContact(smtp_address, display_name))
+
+    def toxml(self):
+        if not hasattr(self,'creation_date') or self.creation_date == None:
+            self.creation_date = datetime.datetime.now()
+
+        self.last_modification_date = datetime.datetime.now()
+        return pykolab.format.Contact.toxml(self)
\ No newline at end of file


commit 4a36a421a78952541f57ba55b86596c1b79b93ae
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Tue Oct 25 11:58:22 2011 +0100

    Add tests for Contact objects

diff --git a/tests/test-contact.py b/tests/test-contact.py
new file mode 100644
index 0000000..e0196bc
--- /dev/null
+++ b/tests/test-contact.py
@@ -0,0 +1,102 @@
+import pyxb
+
+import sys
+import unittest
+
+from pykolab.contact import Contact
+
+from pykolab.format import Name
+from pykolab.format import SMTPContact
+from pykolab.format import UID
+
+class TestContact(unittest.TestCase):
+    """
+        Test creating / writing a contact
+    """
+    def testContactCreate(self):
+        mycontact = Contact()
+
+        # Test creation
+        self.assertTrue(isinstance(mycontact, Contact))
+
+        # Test values set (or not set) in __init__
+        self.assertFalse(isinstance(mycontact.name, Name))
+        self.assertTrue(isinstance(mycontact.email, list))
+        self.assertEqual(0, len(mycontact.email))
+        self.assertTrue(isinstance(mycontact.uid, UID))
+        self.assertTrue(isinstance(mycontact.product_id, basestring))
+
+        # Test functions callable
+        self.assertTrue(callable(mycontact.set_name))
+        self.assertTrue(callable(mycontact.set_email))
+        self.assertTrue(callable(mycontact.add_email))
+        self.assertTrue(callable(mycontact.toxml))
+
+    def testContactMinimal(self):
+        mycontact = Contact(
+                email="vanmeeuwen at kolabsys.com"
+            )
+
+        # Test creation
+        self.assertTrue(isinstance(mycontact, Contact))
+        self.assertTrue(isinstance(mycontact.email, list))
+        self.assertEqual(1, len(mycontact.email))
+        self.assertTrue(isinstance(mycontact.email[0], SMTPContact))
+        self.assertEqual("vanmeeuwen at kolabsys.com", mycontact.email[0].smtp_address)
+        self.assertEqual(None, mycontact.email[0].display_name)
+
+    def testContactCreateWithDetailsStringEmail(self):
+        mycontact = Contact(
+                email="vanmeeuwen at kolabsys.com"
+            )
+        self.assertTrue(isinstance(mycontact, Contact))
+        self.assertTrue(isinstance(mycontact.email, list))
+        self.assertEqual(1, len(mycontact.email))
+        self.assertTrue(isinstance(mycontact.email[0], SMTPContact))
+        self.assertEqual("vanmeeuwen at kolabsys.com", mycontact.email[0].smtp_address)
+        self.assertEqual(None, mycontact.email[0].display_name)
+
+    def testContactCreateWithDetailsSMTPContactEmailNoList(self):
+        mycontact = Contact(
+                name=Name("Jeroen", last_name="van Meeuwen"),
+                email=SMTPContact("vanmeeuwen at kolabsys.com")
+            )
+
+        # See if creation was successful
+        self.assertTrue(isinstance(mycontact, Contact))
+        # See if the smtp contact (address) got appended to the email attribute
+        self.assertTrue(isinstance(mycontact.email, list))
+        # There should be exactly one value in mycontact.email now
+        self.assertEqual(1, len(mycontact.email))
+        # And it should be an SMTPContact instance
+        self.assertTrue(isinstance(mycontact.email[0], SMTPContact))
+        # And SMTPContact being what it is, ...
+        self.assertEqual("vanmeeuwen at kolabsys.com", mycontact.email[0].smtp_address)
+        self.assertEqual(None, mycontact.email[0].display_name)
+
+        # Also see if the name property has been set correctly
+        self.assertTrue(isinstance(mycontact.name, Name))
+        self.assertEqual("Jeroen", mycontact.name.given_name)
+        self.assertEqual("van Meeuwen", mycontact.name.last_name)
+
+    def testContactCreateWithDetailsSMTPContactEmailList(self):
+        mycontact = Contact(
+                name=Name("Jeroen", last_name="van Meeuwen"),
+                email=[SMTPContact("vanmeeuwen at kolabsys.com", "Jeroen van Meeuwen (Kolab Systems)")]
+            )
+
+        # Test creation
+        self.assertTrue(isinstance(mycontact, Contact))
+        self.assertTrue(isinstance(mycontact.email, list))
+        self.assertEqual(1, len(mycontact.email))
+        self.assertTrue(isinstance(mycontact.email[0], SMTPContact))
+        self.assertEqual("vanmeeuwen at kolabsys.com", mycontact.email[0].smtp_address)
+        self.assertEqual("Jeroen van Meeuwen (Kolab Systems)", mycontact.email[0].display_name)
+
+        # Also see if the name property has been set correctly
+        self.assertTrue(isinstance(mycontact.name, Name))
+        self.assertEqual("Jeroen", mycontact.name.given_name)
+        self.assertEqual("van Meeuwen", mycontact.name.last_name)
+
+if __name__ == '__main__':
+    unittest.main()


commit d0680e31191ef0742dcd2e5f041637ad93effe50
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Tue Oct 25 11:28:53 2011 +0100

    Add tests

diff --git a/tests/__init__.py b/tests/__init__.py
new file mode 100644
index 0000000..d03e763
--- /dev/null
+++ b/tests/__init__.py
@@ -0,0 +1,8 @@
+#!/usr/bin/python
+
+import sys
+
+sys.path.append('.')
+
+# Corrects Namespace handling
+from pykolab.format import *
diff --git a/tests/test-default-value-sensitivity.py b/tests/test-default-value-sensitivity.py
new file mode 100644
index 0000000..6292a14
--- /dev/null
+++ b/tests/test-default-value-sensitivity.py
@@ -0,0 +1,33 @@
+import pyxb
+from pyxb.exceptions_ import *
+
+import sys
+import unittest
+
+from pykolab.format import Contact
+from pykolab.format import Event
+from pykolab.format import Note
+from pykolab.format import Task
+
+class TestDefaultValueSensitivity(unittest.TestCase):
+    """
+        Test whether the default value for sensitivity is set on creation.
+    """
+    def testContact(self):
+        mycontact = Contact()
+        self.assertEqual(mycontact.sensitivity, u'public')
+
+    def testEvent(self):
+        myevent = Event()
+        self.assertEqual(myevent.sensitivity, u'public')
+
+    def testNote(self):
+        mynote = Note()
+        self.assertEqual(mynote.sensitivity, u'public')
+
+    def testTask(self):
+        mytask = Task()
+        self.assertEqual(mytask.sensitivity, u'public')
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/tests/test-sensitivity-value.py b/tests/test-sensitivity-value.py
new file mode 100644
index 0000000..b911ba8
--- /dev/null
+++ b/tests/test-sensitivity-value.py
@@ -0,0 +1,41 @@
+import pyxb
+
+import sys
+import unittest
+
+from pykolab.format import Contact
+from pykolab.format import Event
+from pykolab.format import Note
+from pykolab.format import Task
+
+from pykolab.raw.format import Sensitivity
+
+class TestSensitivityValue(unittest.TestCase):
+    """
+        Test values for sensitivity
+    """
+    def testSensitivityBase(self):
+        self.assertRaises(pyxb.exceptions_.BadTypeValueError, lambda: Sensitivity())
+
+    def testSensitivityCreatePublic(self):
+        mysensitivity = Sensitivity(u'public')
+        self.assertEqual(mysensitivity.__str__(), u'public')
+
+    def testSensitivityCreatePrivate(self):
+        mysensitivity = Sensitivity(u'private')
+        self.assertNotEqual(mysensitivity.__str__(), u'public')
+        self.assertEqual(mysensitivity.__str__(), u'private')
+
+    def testSensitivityAttrs(self):
+        mysensitivity = Sensitivity(u'confidential')
+        self.assertEqual(mysensitivity.public, u'public')
+        self.assertEqual(mysensitivity.private, u'private')
+        self.assertEqual(mysensitivity.confidential, u'confidential')
+
+    def testSensitivityInvalidAttrs(self):
+        mysensitivity = Sensitivity(u'confidential')
+        # Test for invalid values
+        self.assertRaises(AttributeError, lambda: mysensitivity.nosuchvalue)
+
+if __name__ == '__main__':
+    unittest.main()


commit 3e6f85c0eddf1ae8e33f4be43304aefea1def98c
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Tue Oct 25 11:28:42 2011 +0100

    Add a test make target

diff --git a/Makefile.am b/Makefile.am
index a48fcd1..9e42094 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -23,6 +23,9 @@ tarball:
 	git stash
 	make dist
 
+test:
+	@nosetests -v -d tests/
+
 ChangeLog:
 	(GIT_DIR=.git git log > .changelog.tmp && mv .changelog.tmp ChangeLog; rm -f .changelog.tmp) || (touch ChangeLog; echo 'git directory not found: installing possibly empty changelog.' >&2)
 





More information about the commits mailing list