Modelo de UML

El modelo de lenguaje de modelado unificado (UML) representa una descripción de tus datos independiente del formato. Su beneficio principal es que define y describe los elementos de datos y cómo se relacionan. Con este enfoque basado en modelos, es más probable que los datos estén bien estructurados y sean tolerantes a las modificaciones.

Relaciones de clases UML

Las clases principales en el modelo UML se representan como elementos principales en tu esquema XML. Los diferentes tipos de relaciones entre las clases de UML determinan cómo se estructuran tus elementos XML en el esquema.

Existen tres relaciones de clases:

Composición dirigida
Ocurre cuando una clase está compuesta por un subelemento o subelementos. Por ejemplo, si creas un informe electoral, este se compone de elecciones. En tu esquema XML, el elemento Election se genera como un subelemento del elemento ElectionReport.
Un “Tipo de” o una “Instancia de”
Esto ocurre cuando una clase abstracta implementa una clase concreta. Por ejemplo, si creas un concurso, se implementa a través de su clase concreta. Esto significa que un concurso de candidato es un tipo de concurso. En tu esquema XML, Contest se genera como un elemento XML abstracto y sirve como una base de extensión del elemento CandidateContest.
Asociación directa
Ocurre cuando un elemento incluye otro que contiene un identificador asociado con el segundo elemento. Por ejemplo, esto sucede si asocias o vinculas a un candidato con un partido. En tu esquema XML, el elemento Candidate incluye un elemento PartyId, que contiene un identificador asociado con un elemento Party.

En el siguiente diagrama, se ilustran los tres tipos de relaciones:

Ejemplos de modelos UML

En el siguiente diagrama, se muestra una entidad Contest y dos tipos de Contest: CandidateContest y PartyContest.

En el siguiente diagrama, se muestra una vista de alto nivel del diagrama de clases de un CandidateContest:

En el siguiente diagrama, se muestra una vista de alto nivel del diagrama de clases de un PartyContest: