Text File
property.txt

Dublin Core Properties

A dublin core property allows us to use properties from dublin core by simply defining a property as DCProperty.

>>> from zope.dublincore import property
>>> from zope import interface
>>> from zope.annotation.interfaces import IAttributeAnnotatable
>>> class DC(object):
...     interface.implements(IAttributeAnnotatable)
...     title   = property.DCProperty('title')
...     author  = property.DCProperty('creators')
...     authors = property.DCListProperty('creators')
>>> obj = DC()
>>> obj.title = u'My title'
>>> obj.title
u'My title'

Let's see if the title is really stored in dublin core :

>>> from zope.dublincore.interfaces import IZopeDublinCore
>>> IZopeDublinCore(obj).title
u'My title'

Even if a dublin core property is a list property we can set and get the property as scalar type :

>>> obj.author = u'me'
>>> obj.author
u'me'

DCListProperty acts on the list :

>>> obj.authors
(u'me',)
>>> obj.authors = [u'I', u'others']
>>> obj.authors
(u'I', u'others')
>>> obj.author
u'I'