Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,14 @@ The `uml4net` core project is predominantly auto-generated from the UML 2.5.1 sp
- `uml4net/AutoGenInterfaces/` — UML element interfaces
- `uml4net/AutoGenEnumeration/` — UML enumerations
- `uml4net.xmi/AutoGenXmiReaders/` — XMI element reader classes
- `uml4net.xmi/AutoGenXmiWriters/` — XMI element writer classes (regenerate via the `[Explicit]` test `XmiWriterGeneratorTestFixture.Regenerate_AutoGenXmiWriters_of_uml4net_xmi`)

Generated files contain the marker: `THIS IS AN AUTOMATICALLY GENERATED FILE. ANY MANUAL CHANGES WILL BE OVERWRITTEN!`

### Key Types & Patterns

- **Entry point**: `XmiReaderBuilder.Create().Build()` returns an `IXmiReader`
- **Entry point (reading)**: `XmiReaderBuilder.Create().Build()` returns an `IXmiReader`
- **Entry point (writing)**: `XmiWriterBuilder.Create().Build()` returns an `IXmiWriter`; `IXmiWriterSettings.ExternalReferenceResolution` selects href vs include handling of external references
- **IElement** is the root interface for all UML elements
- **IContainerList\<T\>** manages owned element collections
- **IXmiElementCache** provides element lookup by XMI ID
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@

# Introduction

Uml4net is a suite of dotnet core libraries and tools that are used to deserialize (read) a UML version 2.5.1 model in XMI form. Uml4net is typically used to support opinionated template based code-generation and is a part of `modeltopia`. Uml4net porivdes a number of libraries that are described in the following sections.
Uml4net is a suite of dotnet core libraries and tools that are used to deserialize (read) and serialize (write) a UML version 2.5.1 model in XMI form. Uml4net is typically used to support opinionated template based code-generation and is a part of `modeltopia`. Uml4net porivdes a number of libraries that are described in the following sections.

## uml4net

The core library that contains all the class definitions as they appear in the UML 2.5.1 specification. Together with uml4net.xmi it provides the capability to to read UML models and make them available as an in-memory object graph.
The core library that contains all the class definitions as they appear in the UML 2.5.1 specification. Together with uml4net.xmi it provides the capability to to read and write UML models and make them available as an in-memory object graph.

## uml4net.Extensions

The **uml4net.Extensions** library provides extensions methods to the uml4net library to support code generation. This library is part of the uml4net ecosystem.

## uml4net.xmi

The **uml4net.xmi** library provides an XMI reader implementation to read UML XMI model files.
The **uml4net.xmi** library provides an XMI reader implementation to read UML XMI model files and an XMI writer implementation to write UML models to XMI. The writer supports writing a selected `Package`, where references to elements outside the selected package are either written as `href` references to the original document or the containing root packages are included in the written document, resulting in a self-contained XMI file.

> To learn more about how to read an UML model, read about it [here](https://github.com/STARIONGROUP/uml4net/wiki/uml4net.xmi.project)

Expand Down
Loading
Loading