Skip to content

Repository files navigation

X-Splinter

X-Splinter is a .NET 10 command-line tool that splits a monolithic XMI export into separate, per-package XMI files. Cross-package references become cross-file href="targetFile.xmi#id" references, so the resulting files load independently while types still resolve across them. Built on UML4NET.

Quality Gate Status Code Smells Coverage Duplicated Lines (%) Lines of Code Maintainability Rating Reliability Rating Security Rating Technical Debt Vulnerabilities

Usage

Requires the .NET 10 SDK.

dotnet build X-Splinter.sln
dotnet run --project XSplinter/XSplinter.csproj -- <input.xmi> <config.json> [--output <dir>]
  • <input.xmi> — the monolithic XMI file exported from Enterprise Architect.
  • <config.json> — the splitter configuration (see below).
  • --output <dir> — output directory (optional; defaults to the current directory).

Configuration

{
  "rootPackageName": "5. Data Structure",
  "packages": [
    { "name": "Primitives", "outputFile": "CSharp_Primitives.xmi", "convertToLibrary": true },
    { "name": "Forge", "outputFile": "Forge.xmi" },
    { "name": "FunctionalData", "outputFile": "FunctionalData.xmi" }
  ]
}
  • rootPackageNameoptional; the root container package to scope the search to. Omit it when the packages sit directly under the model.
  • modelNameoptional; the name of the uml:Model wrapper written around each extracted package. Defaults to the name of the model enclosing the package in the source document.
  • packages[] — the packages to extract, each with a name, an outputFile and an optional convertToLibrary flag. When true, the package is written as a plain uml:Package without the EA model wrapper or extension metadata; when false (default), the full EA model structure is preserved.

A sample is available in example/packages.json.

Any UML XMI is supported. Enterprise Architect exports additionally get their xmi:Extension filtered per package; the UML namespace, the uml:Model wrapper and the presence of an extension are all taken from the source document.

Build Status

Branch Build Status
Development Build Status

License

X-Splinter is provided to the community under the Apache License 2.0. See the LICENSE file for the full text.

About

Splits a monolithic Enterprise Architect XMI export into per-package XMI files with cross-file references.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages