Types Schema¶
A detailed list of all available Zope Schema field types and their corresponding representation as JSON Schema .
TextLine¶
Zope Schema:
zope.schema.TextLine(
title=u'My field',
description=u'My great field',
default=u'foobar'
)
JSON Schema:
{
'type': 'string',
'title': u'My field',
'description': u'My great field',
'default': u'foobar',
}
Text¶
Zope Schema:
zope.schema.Text(
title=u'My field',
description=u'My great field',
default=u'Lorem ipsum dolor sit amet',
min_length=10,
)
JSON Schema:
{
'type': 'string',
'title': u'My field',
'description': u'My great field',
'widget': 'textarea',
'default': u'Lorem ipsum dolor sit amet',
'minLength': 10,
}
Bool¶
Zope Schema:
zope.schema.Bool(
title=u'My field',
description=u'My great field',
default=False,
)
JSON Schema:
{
'type': 'boolean',
'title': u'My field',
'description': u'My great field',
'default': False,
}
Float¶
Zope Schema:
zope.schema.Float(
title=u'My field',
description=u'My great field',
min=0.0,
max=1.0,
default=0.5,
)
JSON Schema:
{
'minimum': 0.0,
'maximum': 1.0,
'type': 'number',
'title': u'My field',
'description': u'My great field',
'default': 0.5,
}
Decimal¶
Zope Schema:
zope.schema.Decimal(
title=u'My field',
description=u'My great field',
min=Decimal(0),
max=Decimal(1),
default=Decimal(0.5),
)
JSON Schema:
{
'minimum': 0.0,
'maximum': 1.0,
'type': 'number',
'title': u'My field',
'description': u'My great field',
'default': 0.5,
},
Int¶
Zope Schema:
zope.schema.Int(
title=u'My field',
description=u'My great field',
min=0,
max=100,
default=50,
)
JSON Schema:
{
'minimum': 0,
'maximum': 100,
'type': 'integer',
'title': u'My field',
'description': u'My great field',
'default': 50,
}
Choice¶
Zope Schema:
zope.schema.Choice(
title=u'My field',
description=u'My great field',
vocabulary=self.dummy_vocabulary,
)
JSON Schema:
{
'type': 'string',
'title': u'My field',
'description': u'My great field',
'enum': ['foo', 'bar'],
'enumNames': ['Foo', 'Bar'],
'choices': [('foo', 'Foo'), ('bar', 'Bar')],
}
List¶
Zope Schema:
zope.schema.List(
title=u'My field',
description=u'My great field',
min_length=1,
value_type=schema.TextLine(
title=u'Text',
description=u'Text field',
default=u'Default text'
),
default=['foobar'],
)
JSON Schema:
{
'type': 'array',
'title': u'My field',
'description': u'My great field',
'default': ['foobar'],
'minItems': 1,
'uniqueItems': False,
'additionalItems': True,
'items': {
'type': 'string',
'title': u'Text',
'description': u'Text field',
'default': u'Default text',
}
},
Tuple¶
Zope Schema:
field = zope.schema.Tuple(
title=u'My field',
value_type=schema.Int(),
default=(1, 2),
)
JSON Schema:
{
'type': 'array',
'title': u'My field',
'description': u'',
'uniqueItems': True,
'additionalItems': True,
'items': {
'title': u'',
'description': u'',
'type': 'integer',
},
'default': (1, 2),
}
Set¶
Zope Schema:
field = zope.schema.Set(
title=u'My field',
value_type=schema.TextLine(),
)
JSON Schema:
{
'type': 'array',
'title': u'My field',
'description': u'',
'uniqueItems': True,
'additionalItems': True,
'items': {
'title': u'',
'description': u'',
'type': 'string',
}
}
List of Choices¶
Zope Schema:
field = zope.schema.List(
title=u'My field',
value_type=schema.Choice(
vocabulary=self.dummy_vocabulary,
),
)
JSON Schema:
{
'type': 'array',
'title': u'My field',
'description': u'',
'uniqueItems': True,
'additionalItems': True,
'items': {
'title': u'',
'description': u'',
'type': 'string',
'enum': ['foo', 'bar'],
'enumNames': ['Foo', 'Bar'],
'choices': [('foo', 'Foo'), ('bar', 'Bar')],
}
}
Object¶
Zope Schema:
zope.schema.Object(
title=u'My field',
description=u'My great field',
schema=IDummySchema,
)
JSON Schema:
{
'type': 'object',
'title': u'My field',
'description': u'My great field',
'properties': {
'field1': {
'title': u'Foo',
'description': u'',
'type': 'boolean'
},
'field2': {
'title': u'Bar',
'description': u'',
'type': 'string'
},
}
},
RichText (plone.app.textfield)¶
Zope Schema:
from plone.app.textfield import RichText
field = RichText(
title=u'My field',
description=u'My great field',
)
JSON Schema:
{
'type': 'string',
'title': u'My field',
'description': u'My great field',
'widget': 'richtext',
}
Date¶
Zope Schema:
zope.schema.Date(
title=u'My field',
description=u'My great field',
default=date(2016, 1, 1),
)
JSON Schema:
{
'type': 'string',
'title': u'My field',
'description': u'My great field',
'default': date(2016, 1, 1),
'widget': u'date',
}
DateTime¶
Zope Schema:
zope.schema.Datetime(
title=u'My field',
description=u'My great field',
)
JSON Schema:
{
'type': 'string',
'title': u'My field',
'description': u'My great field',
'widget': u'datetime',
}