CustomUBL allows to customize UBL schema document by adding simple constraints and co-constraint. The constraints are defined by the CustomUBL using XML Schema 1.1. XML schema 1.1 is a conservative extension of XML Schema 1.0, which introduces in the language the support to co-constraints.
Simple constraints: constraints (not co-constraint) already definable using XML Schema 1.0.
- modify or define the minimum and maximum number of occurrences;
- define the exact number of digits;
- modify or define the maximum number of decimal digits after the decimal point;
- define a default value or a fixed value;
- define the set of possible values;
- define patterns and regular expressions;
- modify or define the minimum, maximum or fixed length;
- modify or define the minimum and maximum value included/excluded;
- ensure that an element/attribute that allows empty content certainly has empty content;
- make required an optional attribute.
Co-constraint: restrictions "dependent on context". Constraints on the existence and the values of an element/attribute in relation to the presence and values of other elements/attributes. Such restrictions can be defined using the extensions provided by XML Schema 1.1.
- mutual dependence constraints: linking the presence/absence of an element/attribute to the presence/absence of another element/attribute;
- restrictions on the open content: to assess the presence/absence of specific elements/attributes in a content model that is not precisely defined;
- Arithmetic and mathematical constraints: allow you to verify that the value of an element or attribute satisfies a mathematics condition calculated on other parts of the document;
- content dependent on the context: bind content model allowed for an element/attribute to the position or the presence/absence of elements/attributes in the rest of the document;
- content dependent on the value: bind content model allowed for an element/attribute to the values of other elements/attributes.