Objetos de modelo de mensaje: herencia de tipos

El lenguaje de esquema XML permite que una definición de tipo se base en otra definición de tipo. De este modo, se puede construir una jerarquía de tipos. Este tema describe los conceptos de herencia de tipo y pone de relieve algunas cuestiones importantes relacionadas con la sustitución.

Se puede encontrar una descripción completa de la herencia de tipo de esquema XML en el sitio Web World Wide Web Consortium (W3C) o en numerosos manuales que tratan sobre el esquema XML.

Restricción y extensión

Un tipo es una restricción del tipo base si los elementos del tipo derivado tienen un rango más pequeño de valores permitidos (o miembros de tipo permitidos) que los elementos del tipo base.

Un tipo es una extensión del tipo base si los elementos del tipo derivado tienen un rango más amplio de valores permitidos (o miembros de tipo permitidos) que los elementos del tipo base.

Se aplican normas especiales a la derivación de tipos simples. Un tipo simple no puede extender otro tipo simple. Esto asegura que las limitaciones impuestas por un tipo simple no se puedan eliminar derivando desde dicho tipo otro tipo simple.

Sin embargo, se permite que un tipo complejo extienda un tipo simple. Esto no afecta al rango de valores permitidos del tipo simple, pero permite añadir atributos. El resultado de la extensión de un tipo simple es siempre un tipo complejo que contiene cero o más atributos.

Control de la herencia de tipo

El atributo final en un tipo complejo puede tomar tres valores, con los efectos siguientes:

Herencia y sustitución de tipo

El esquema XML proporciona dos mecanismos de sustitución diferentes, que utilizan ambos información de herencia de tipo para permitir o prohibir las sustituciones.

La sustitución de elemento la controlan los grupos de sustitución y la sustitución de elemento se puede bloquear o permitir para la extensión y la limitación mediante valores en el propio elemento o en el tipo del elemento.

La sustitución de tipo permite definir el tipo del elemento en el documento de instancia, utilizando el atributo xsi:type en el elemento, de forma que no se conozca el tipo real del elemento hasta que el elemento se haya analizado parcialmente. Este mecanismo también se puede bloquear o permitir basándose en el método de derivación de los tipos implicados.

Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ad10430_