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 (imagen siguiente). Para ver y editar el modelo de contenido de un componente global, pulse el icono "Mostrar diagrama" situado a la izquierda del componente global.
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" situado a la izquierda del elemento Company. A continuación aparecerá el modelo de contenido del elemento Company, que por ahora está vacío (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.
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.)
A continuación aparece un compositor de secuencia, que requiere que los componentes del grupo aparezcan en la secuencia indicada.
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.
5.Haga clic con el botón derecho en el compositor de secuencia y seleccione Agregar secundario | Element. Ahora el elemento Person del diagrama muestra el número de repeticiones permitidas: de 1 a infinito.
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.
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 Agregar secundario | Element. Ponga el nombre Name al componente "element" recién creado. |
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.
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. |