# uip maestro bpmn validate

> Syntax and options for `uip maestro bpmn validate`, which structurally validates a single .bpmn or Studio Web XML export file.

`uip maestro bpmn validate` validates a single `.bpmn` file (or a Studio Web BPMN XML export) for structural correctness — well-formed BPMN plus UiPath extensions — without touching any project metadata files. It's registered under the `bpmn` branch.

## Synopsis

```
uip maestro bpmn validate <file>
```

Honors [global options](./global-options.md). Exit codes follow the [standard contract](./exit-codes.md).

## Arguments

- `<file>` *(required)* — path to the `.bpmn` or `.xml` file to validate. This is a single file, not a project directory.

## Examples

```bash
uip maestro bpmn validate process.bpmn
uip maestro bpmn validate export.xml
```

## Data shape (--output json)

```json
{
  "Code": "BpmnValidate",
  "Data": {
    "File": "process.bpmn",
    "Status": "Valid",
    "ProcessCount": 1,
    "StartEventCount": 1,
    "UiPathExtensionCount": 4
  }
}
```

A non-zero exit code is returned when validation fails; the process's own exit code reflects the validator's result rather than always exiting 0.

## See also

- [`uip maestro bpmn init`](./uip-maestro-bpmn-init.md) — scaffold a new project with a valid starter BPMN
- [`uip maestro bpmn refresh`](./uip-maestro-bpmn-refresh.md) — regenerate project metadata from a validated `.bpmn`
- [`uip maestro bpmn pack`](./uip-maestro-bpmn-pack.md) — pack a project for deployment
- [Maestro overview](./uip-maestro-bpmn.md)
