Model Validation¶

One of the key functions of the Tool is model validation. It helps users effectively pinpoint the problems and debug the models. The Tool supports both schema-driven validation and rule-based validation. The former checks the conformance between instance document and the governing schema specified in the XSD profile, while the latter checks the domain-specific modeling constrains or restrictions, such as network connectivity logics and voltage regulation schemes. The output of the validation is a validation report enumerating all of the detected incidents. The validation process is illustrated in the following figure.
The Tool leverages XML Schema Definition (XSD) language for specifying the modeling restrictions formally specified in the profiles, such as cardinality. However, some of the supported validations, especially data quality check, is more involved, and cannot be performed in schema-driven approaches. Many domain-specific validation logics cannot be expressed in the formal schema languages. A rule-based approach provides more power and flexibility for CIM validation. It allows the developer to specify validation logic in ad hoc rules, and then relies on an inference engine to apply rules against data. In the Tool, these ad hoc domain-specific model validation rules are specified in the profile as XSD annotations.

Extensibility and Maintainability¶
CIM is still evolving. Almost every CIM-related project requires standard CIM to be extended to meet special project requirements. The Tool is fundamentally a generic infrastructure designed to support CIM-based data engineering and information management. The tool framework is metadata-driven. The domain-specific modeling knowledge, including model schema, modeling restrictions, validation rules, business processing logics, UI presentation style, and user preference etc, is specified in a metadata repository, rather than hard-coded in the software. This metadata-driven architecture makes it extremely easy to maintain and extend the tool. The customization process can be easily and rapidly accomplished by modifying the metadata that define the information models, business processes, and UI presentations..