Definir un modelo de contenido

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Tutorial de XMLSpy > Esquemas XML: aspectos básicos >

Definir un modelo de contenido

En la vista general del esquema, ya creó un elemento global llamado Company. Este elemento contendrá un elemento llamado Address y un número ilimitado de elementos llamados Person (que forman su modelo de contenido). Los componentes globales que pueden tener modelos de contenido son los elementos, los tipos complejos y los grupos de elementos.

 

En XMLSpy el modelo de contenido de un componente global se muestra en la vista del modelo de contenido de la vista Esquema (ver imagen siguiente). Para ver y editar el modelo de contenido de un componente global, pulse el icono "Mostrar diagrama" ic_component situado a la izquierda del componente global.

schema_overview

En esta sección creará el modelo de contenido del elemento Company.

 

Crear un modelo de contenido básico

Para crear el modelo de contenido del elemento Company:

 

1.En la vista general del esquema, pulse el icono "Mostrar diagrama" ic_component situado a la izquierda del elemento Company. A continuación aparecerá el modelo de contenido del elemento Company, que por ahora está vacío (ver imagen siguiente). Otra opción es hacer doble clic en el nodo Company en el ayudante de entrada "Componentes" y aparecerá el modelo de contenido.

content_model_empty

2.Un modelo de contenido está formado por compositores y componentes. Los compositores indican la relación que existe entre dos componentes. Para poder añadir un elemento secundario en el modelo de contenido de Company antes debe añadir un compositor. Para agregar un compositor, haga clic con el botón derecho en el elemento Company. En el menú contextual que aparece, seleccione Agregar secundario | Sequence. ("Sequence", "Choice" y "All" son los tres compositores que se pueden utilizar en un modelo de contenido.)

tut_7a

A continuación aparece un compositor de secuencia, que requiere que los componentes del grupo aparezcan en la secuencia indicada.

tut_7b

3.Haga clic con el botón derecho en el compositor de secuencia y seleccione Agregar secundario | Element. A continuación se añade un componente "element" sin nombre.
4.Escriba el nombre Address en el elemento y pulse la tecla Entrar para confirmar.

tut_8a

5.Haga clic con el botón derecho en el elemento Person y seleccione la opción Ilimitado (unbounded) del menú contextual. Ahora el elemento Person del diagrama muestra el número de repeticiones permitidas: de 1 a infinito.

tut_8b

Hasta ahora ha definido un esquema que acepta una dirección (Address) y una persona (Person) por compañía (Company). Ahora debe incrementar el número de elementos Person.

 

6.Haga clic con el botón derecho en el elemento Person y seleccione la opción Ilimitado (unbounded) del menú contextual. Ahora el elemento Person del diagrama muestra el número de repeticiones permitidas: de 1 a infinito.

tut_8c

Otra opción es editar los campos minOcc y maxOcc del ayudante de entrada "Detalles" e indicar el número de repeticiones permitidas, en este caso "1" y "unbounded" respectivamente.

 

Agregar más niveles a la estructura del modelo de contenido

El modelo de contenido básico que ha creado contiene por ahora un solo nivel: un nivel de elementos secundarios para el elemento Company en el que están los elementos secundarios Address y Person. A continuación definiremos el contenido del elemento Address para que contenga los elementos Name, Street y City. Este será el segundo nivel del modelo de contenido. Para ello debemos añadir un compositor en el elemento Address y después los componentes que acabamos de mencionar.

 

Para ello, siga estos pasos:

 

1.Haga clic con el botón derecho en el elemento Address para abrir el menú contextual y seleccione la opción Agregar secundario | Sequence. Esta acción añade el compositor de secuencia.
2.Haga clic con el botón derecho en el compositor de secuencia y seleccione la opción Agregar secundario | Element. Ponga el nombre Name al componente "element" recién creado.

tut_9a

 

Tipos complejos, tipos simples y tipos de datos de XML Schema

Por ahora no hemos definido ningún tipo de elemento. Haga clic en la pestaña Texto para cambiar a la vista Texto del esquema (ver el código que aparece más adelante). Observará que cada vez que insertó un compositor de secuencia, el elemento xs:sequence se insertó dentro del elemento xs:complexType. Es decir, los elementos Company y Address son tipos complejos porque contienen elementos secundarios. Los elementos de tipo complejo son aquellos que contienen atributos o elementos.

 

<xs:element name="Company">

  <xs:annotation>

    <xs:documentation>Root element</xs:documentation>

  </xs:annotation>

  <xs:complexType>

    <xs:sequence>

      <xs:element name="Address">

        <xs:complexType>

          <xs:sequence>

            <xs:element name="Name"/>

          </xs:sequence>

        </xs:complexType>

      </xs:element>

      <xs:element name="Person"/>

    </xs:sequence>

  </xs:complexType>

</xs:element>

 

Los elementos de tipo simple, por el contrario, sólo contienen texto y no tienen atributos. El texto puede ser una cadena de texto, una fecha, números, etc. En nuestro ejemplo queremos que el elemento secundario Name de Address contenga sólo texto. Es un tipo simple cuyo texto queremos restringir a una cadena de texto. Para ello nos serviremos del tipo de datos de XML Schema xs:string.

 

Para definir el tipo de datos del elemento Name:

 

1.Haga clic en la pestaña Esquema para volver a la vista Esquema
2.Haga clic en el elemento Name para seleccionarlo.
3.En el ayudante de entrada "Detalles" seleccione la opción xs:string del menú desplegable de type.

tut_9b

Observe que tanto minOcc como maxOcc tienen el valor 1, lo cual indica que este elemento aparece una sola vez.

 

La representación textual del elemento Name es:

 

 <xs:element name="Name" type="xs:string"/>

 

Nota: los elementos de tipo simple pueden tener uno de los muchos tipos de datos de XML Schema. En todos los casos, en el recuadro del elemento aparecerá un icono que indica que el contenido es sólo texto.

 


© 2019 Altova GmbH