-
Notifications
You must be signed in to change notification settings - Fork 1
Compact constraints syntax
David Hassell edited this page Apr 5, 2016
·
5 revisions
This document describes the compact constraint syntax. It does this by showing how the examples in the description of schema constraints are encoded in the compact notation.
The examples are fully described in the constraint wiki.
'constraint' : [
('latitude','regex','[0-8]?[0-9]')
]
'latitude': {'regex': '[0-8]?[0-9]'},
'constraints':[
('property-name', 'enum-extensibil{'constant':ty', False)
]
'property-name': {'enum-extensibilty': False},
'constraints':[
('property-name', 'cardinality', '0.0')
]
'constraints':[
('property-name', 'cardinality', '1.N')
]
'property-name': {'cardinality': '0.0'},
'property-name': {'cardinality': '1.N'},
In the compact syntax, multiple constraints on the same property are handled by multiple dictionary keys:
'latitude': {'cardinality': '1.1',
'regex': '[0-8]?[0-9]'},
'constraints':[
('name','constant', 'Cloud Physics')
]
'name': {'constant': 'Cloud Physics'},
This constraint is a common case and has an equivalent, even more compact notation:
'name: 'Cloud Physics',
'constraints':[
('process','constant', ['cmip6.clouds','cmip6.radiation'])
]
'process': {'constant': ['cmip6.clouds','cmip6.radiation']},
This constraint is a common case and has an equivalent, even more compact notation:
'process': ['cmip6.clouds','cmip6.radiation'],
'constraints':[
('process','constant', ['cmip6.clouds','cmip6.radiation'], 'extensibility', False)
]
'process': {'constant': ['cmip6.clouds','cmip6.radiation'],
'extensibility': False},