Modello UML

Il modello UML (Unified Modeling Language) rappresenta una descrizione dei dati indipendente dal formato. Il suo vantaggio principale è che definisce e descrive gli elementi di dati e la loro correlazione. Con questo approccio basato su modelli, i dati hanno maggiori probabilità di essere ben strutturati e tolleranti alle modifiche.

Relazioni delle classi UML

Le classi principali nel modello UML sono rappresentate come elementi principali nello schema XML. I diversi tipi di relazioni tra le classi UML determinano come sono strutturati gli elementi XML nello schema.

Ci sono tre relazioni di classe:

Composizione diretta
Si verifica quando una classe è composta da uno o più elementi secondari. Ad esempio, se crei un report sulle elezioni, questo sarà composto dalle elezioni. Nello schema XML, l'elemento Election viene generato come elemento secondario dell'elemento ElectionReport.
Un campo "Tipo di" o "Istanza di"
Questo è il caso in cui una classe astratta implementa una classe concreta. Ad esempio, se crei un concorso, questo viene implementato dalla sua classe concreta. Significa che un contesto di candidati è un tipo di concorso. Nello schema XML, Contest viene generato come elemento XML astratto e funge da base di estensione per l'elemento CandidateContest.
Associazione diretta
Questo si verifica quando un elemento include un altro elemento che contiene un identificatore associato al secondo elemento. Ad esempio, questo accade se associ o colleghi un candidato a un partito. Nel tuo schema XML, l'elemento Candidate include un elemento PartyId, contenente un identificatore associato a un elemento Party.

Il seguente diagramma illustra i tre tipi di relazioni:

Esempi di modelli UML

Il seguente diagramma mostra un'entità Contest e due tipi di Contest: CandidateContest e PartyContest.

Il seguente diagramma mostra una visualizzazione generale del diagramma della classe per un CandidateContest:

Il seguente diagramma mostra una visualizzazione generale del diagramma della classe per un PartyContest: