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.