Base Infrastructure Schema > ec > ec schema validation Edit this page EC Schema Validation The variability and potential magnitude of schema rules lead to the need for quality control and long-term maintainability over EC schemas. EC v3 EC v3 is a more clearly defined and rigorous version of the EC that has been used widely in Bentley over the past 10+ years. An ECSchema describes one "domain"—its primary contents are a closely related set of "ECClasses" of various kinds. Unless noted otherwise, all references to “schema”, “class” and “property” in this document refer to ECSchema, ECClass and ECProperty. Validation Rules EC Schemas are validated against a set of rules. If one rule is violated, the whole schema will fail validation. The rules are broken into the different parts of the Schema they are validated against. General Class Rules EC-100 A class may not not derive from a sealed base class. EC-101 A class may not derive from a base class of a different EC type (i.e. EntityClass => RelationshipClass). EC-102 A abstract class may not derive from a non-abstract base class. CustomAttribute Container Rules EC-500 A CustomAttribute applied to a container must be of a concrete (non-abstract) class. Enumeration Rules EC-700 The type of the enumeration must be either a String or an Integer. Mixin Rules EC-1100 The class that a Mixin is applied to must satisfy the Mixin applies to constraint. Property Rules EC-1300 Property overrides cannot change the property's value type (ie. String, Integer, Boolean, etc.) EC-1301 Property overrides cannot change the property's type (ie. PrimitiveProperty, EnumerationProperty, StructProperty, etc.) EC-1302 Property overrides cannot change the persistence unit. Relationship Class Rules EC-1500 A derived Relationship's abstract constraint must be supported by the base Relationship class constraint(s). EC-1501 A derived Relationship's class constraint(S) must be supported by the base Relationship class constraint(s). EC-1502 The constraints of a RelationshipClass must derive the the abstract constraint class. EC-1600 Relationship constraints must contain at least one constraint class. EC-1601 An abstract constraint is required if a Relationship constraint has multiple constraint classes. Last Updated: 15 June, 2021