Skip to main content

Overview

CIMXML is a Java library that parses IEC 61970-552 CIMXML — the RDF/XML interchange format used in the energy sector to exchange power-system network models — into Apache Jena RDF graphs. It provides a specialized, StAX-based parser and a set of CIM-aware data structures for reading, manipulating, and querying both full models and difference models, with profile-driven datatype resolution and automatic UUID normalization.

Features

  • CIMXML parser — a specialized StAX-based parser optimized for CIMXML documents, built on Apache Jena's RDF/XML parsing machinery.
  • CIM version support — handles CIM versions 16, 17, and 18 out of the box, detected automatically from the document's namespace declarations, and any other CIM namespace via the CimNamespaceFactoryRegistry, which lets you map additional namespace URIs to custom CimProfile implementations.
  • Profile management — a registry system for CIM profile ontologies (RDFS schemas) with datatype resolution, so property values are typed from the profiles you register.
  • Model types — full support for both FullModel and DifferenceModel as defined by IEC 61970-552.
  • Graph operations — specialized graph implementations for efficient handling of large CIM models, including difference application without materialization.
  • UUID handling — automatic normalization of CIM UUIDs (with and without underscore prefixes and dashes) into canonical urn:uuid: IRIs.
  • Datatype resolution — automatic resolution of CIM datatypes from registered profiles, plus registration of custom primitive types.
  • Apache Jena integration — full compatibility with Apache Jena 6.1.0, so parsed models are ordinary Jena DatasetGraph/Graph objects ready for SPARQL queries and RDF operations.

The result of parsing is a CimDatasetGraph — an extended Jena DatasetGraph that exposes the CIM model structure (header, body, forward/reverse differences, preconditions) through convenience methods.

Where to next

New to the library? Add it to your build with Installation, then parse your first model in the Quick start. If you are new to CIM/CGMES, start with the CGMES background.