Altova UModel 2024

Este ejemplo aprenderá a modelar un esquema XML nuevo con UModel paso a paso. Una vez haya modelado el esquema de forma visual con UML podrá generar el archivo del esquema. Más concretamente, aprenderá a crear y generar el esquema product.xsd que se ve a continuación.

 

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="https://www.altova.com/umodel" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:prod="https://www.altova.com/umodel">
  <xs:simpleType name="SizeType">
    <xs:restriction base="xs:integer">
        <xs:maxInclusive value="10"/>
        <xs:minInclusive value="1"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ProductType">
    <xs:sequence>
        <xs:element name="number" type="xs:integer">
        </xs:element>
        <xs:element name="size" type="prod:SizeType">
        </xs:element>
    </xs:sequence>
    <xs:attribute name="createdAt" type="xs:date">
    </xs:attribute>
  </xs:complexType>
  <xs:element name="product" type="prod:ProductType">
  </xs:element>
</xs:schema>

product.xsd

Como se aprecia en el código anterior, el esquema product.xsd tiene dos declaraciones de espacio de nombres:

 

1.El espacio de nombres de esquema XML predeterminado http://www.w3.org/2001/XMLSchema, que está asignado al prefijo "xs".

2.El espacio de nombres secundario https://www.altova.com/umodel, que está asignado al prefijo "prod", que también es el espacio de nombres de destino.

 

Asimismo, el esquema XML tiene un elemento global product, un tipo complejo ProductType y un tipo simple SizeType.

 

Declarar espacios de nombres y cifrar archivos

Primero debe crear un proyecto nuevo de UModel. Haga clic con el botón derecho en el paquete Root y seleccione Diagrama nuevo | Diagrama de esquema XML en el menú contextual. Cuando la aplicación le pida que incluya el perfil UModel XSD haga clic en Aceptar.

um-xsd-project-structure

En la ventana Estructura del modelo cambie el nombre de "XMLSchemaDiagram1" a "DiagramaPrincipal". Este es el diagrama en el que crearemos la mayoría de los componentes del esquema, salvo las declaraciones de espacio de nombres.

 

A continuación cambie el nombre de "XSDTargetNamespace" a "https://www.altova.com/umodel" (recuerde que este es el espacio de nombres de destino requerido). De esta forma declara el espacio de nombres de destino del esquema nuevo.

um-xsd-example-00

Para definir los dos espacios de nombres "xmlns" y el cifrado en UTF-8:

 

1.Seleccione el esquema XSDSchema en la Estructura del modelo.

2.En la ventana Propiedades haga clic con el botón derecho en la propiedad xmlns y seleccione Agregar valor etiquetado | xlmns.

3.Edite las propiedades xmlns y encoding como se muestra más abajo.

um-xsd-example-01

También puede generar rápidamente un diagrama de esquema XML nuevo a nivel del espacio de nombres que presente la misma información pero de forma visual:

 

1.En la Estructura del modelo haga clic con el botón derecho en el espacio de nombres "https://www.altova.com/umodel" y seleccione Diagrama nuevo | Diagrama de esquema XML en el menú contextual.

2.Cuando aparezca una caja de texto con el mensaje: "¿Desea agregar el "Diagrama de esquema XML" a un "Esquema XSD" nuevo?" haga clic en No.

3.Arrastre el esquema XML desde la Estructura del modelo hasta el diagrama.

um-xsd-example-02

Como se ve más arriba, el espacio de nombres y el cifrado de almacenan como valores etiquetados y se pueden editar también desde la ventana del diagrama.

 

Agregar un tipo simple

Siga estos pasos para crear un tipo simple SizeType en el esquema XML. Este tipo restringe el tipo base xs:integer; por lo tanto, vamos a añadir también el tipo base al diagrama y a crear una relación de restricción.

 

1.En la Estructura del modelo haga doble clic en DiagramaPrincipal para abrirlo.

2.Haga clic en el botón simpleType XSD um-ic-xsd-simple-type de la barra de herramientas y después haga clic en el diagrama.

3.Cambie el nombre del tipo simple que acaba de añadir a SizeType.

um-xsd-example-04

4.Haga clic dentro de la Estructura del modelo y pulse Ctrl+F. Esto abre el cuadro de diálogo "Buscar". Empiece a escribir "integer" para encontrar el tipo integer del paquete "XSDDataTypes" del perfil XSD.

5.Arrastre el tipo integer hasta el diagrama.

um-xsd-example-05

6.Haga clic en el botón Restricción um-ic-xsd-restriction de la barra de herramientas y arrastre el cursor desde SizeType hasta integer. Con esto se crea una relación de restricción; véase también Crear relaciones entre elementos.

um-xsd-example-06

7.Para definir los valores minInclusive y maxInclusive seleccione el tipo simple y edite las propiedades con el mismo nombre en la ventana Propiedades.

um-xsd-example-07

 

Agregar un tipo complejo

Siga estos pasos para añadir el tipo complejo ProductType al esquema XML. Todos estos pasos se reflejan también en DiagramaPrincipal.

 

1.Haga clic en el botón complexType XSD um-ic-xsd-complex-type de la barra de herramientas y después haga clic en el diagrama.

2.Cambie el nombre del tipo complejo a ProductType.

3.Haga clic con el botón derecho en el tipo complejo y seleccione Nuevo | XSD sequence en el menú contextual.

um-xsd-example-08

4.Arrastre la clase «sequence» desde el tipo complejo hasta el diagrama.

um-xsd-example-09

5.Haga clic con el botón derecho en la secuencia y seleccione Nuevo | XSD Element (local). El tipo integer es un tipo base de esquema XML del perfil XSD. Para ver las instrucciones de cómo definir el tipo de un elemento consulte Finalización automática en clases.

um-xsd-example-10

6.Siga los mismos pasos que acabamos de explicar para crear un elemento size de tipo SizeType. Recuerde que SizeType es el tipo simple que creamos anteriormente.

um-xsd-example-11

7.En el diagrama haga clic con el botón derecho en el tipo complejo y seleccione Nuevo | XSD Attribute (local) en el menú contextual.

8.Cambie el nombre del atributo a createdAt y el tipo a date.

um-xsd-example-12

 

Agregar un elemento

Ahora que ha definido todos los tipos obligatorios del esquema puede añadir un elemento de producto de tipo ProductType:

 

1.Haga clic en el botón Element (global) XSD um-ic-xsd-global-element de la barra de herramientas y después haga clic en el diagrama. Verá que se añaden una clase con el estereotipo  y una propiedad única.

um-xsd-example-13

2.Cambie el nombre de la propiedad a product y su tipo a ProductType.

um-xsd-example-14

 

Diseño completo

Con los pasos del último punto concluye la parte de diseño del esquema. Ahora el esquema que ha diseñado debería tener este aspecto:

um-xsd-example-15

 

Habilitar la ingeniería de código

Con el fin de que se pueda generar un archivo de esquema a partir del modelo, vamos a añadir un componente de ingeniería de código que permite al esquema generar detalles. El componente de ingeniería de código es parecido a otros tipos de proyecto de UModel, véase también Agregar un componente de ingeniería de código.

 

Haga clic con el botón derecho en el paquete "Component View" en la Estructura del modelo y añada un elemento nuevo de tipo Component. Compruebe que cambia las propiedades del componente como explicamos a continuación:

 

1.Debe habilitar la propiedad Utilizar para ingeniería de código.

2.Defina la propiedad lenguaje de código del componente de ingeniería de código como "XSD 1.0".

3.La propiedad archivo de proyecto del componente de ingeniería debe apuntar al archivo de esquema que se quiere generar (en este ejemplo, product.xsd).

um-xsd-example-03
Nota:si falta una propiedad archivo de proyecto, introduzca product.xsd en la propiedad directorio y pulse Entrar. Ahora debería aparecer un cuadro de mensaje que le pide que haga referencia a un archivo de proyecto. Haga clic en para confirmar.

 

Por último, el esquema XML debe realizarlo el componente de ingeniería de código, como se describe en Agregar un componente de ingeniería de código. En este ejemplo la forma más rápida de crear la relación RealizaciónDeComponente es:

 

En la Estructura del modelo arrastre el esquema XSDSchema hasta el componente de ingeniería de código (Component1) y suéltelo cuando aparezca la información rápida:

um-xsd-example-16

Ahora puede generar el archivo del esquema. Para ello puede pulsar F12 o seleccionar el comando de menú Proyecto | Combinación/sobrescritura del código de programa con el proyecto de UModel. Tenga en cuenta que la opción de combinar no es compatible con los esquemas XML; en estos casos en el cuadro de diálogo aparece un mensaje en rojo para informar de ello.

um-xsd-example-17

El esquema XML nuevo se genera en la misma carpeta que el proyecto de UModel.

 

© 2018-2024 Altova GmbH