This document describes the Control System Modeling Language (CSML), which is an extension of the Unified Modeling Language (UML) for modeling control systems. CSML introduces new entities and relationships specific to control systems, such as properties to represent individual controllable points and events to represent device notifications. CSML models can be transformed into different formats using XML and XSL transformations to generate code for various control system frameworks and APIs.