Rational Developer para System z, Versión 7.6

Restricciones de valores

Las restricciones de valores refinan un tipo simple definiendo los límites en los valores que puede representar.

A menudo es útil poder restringir los valores que puede tomar un elemento, quizás para asegurar que los mensajes cumplan las normas empresariales. Este tema describe cómo pueden añadirse restricciones de valores a un tipo simple para poder restringir los valores de todos los elementos basados en el mismo.

La mayoría de las restricciones de valores que se describen aquí están modeladas por facetas de esquema XML y están asociados con un tipo simple. Sin embargo, pueden definirse valores predeterminados y valores fijos para un elemento, y estos están asociados con el elemento en sí mismo.

Tipos de restricciones de valores

Valor predeterminado
Si hay un elemento vacío en un mensaje de entrada, se le asignará el valor predeterminado. Si un elemento está completamente ausente de un mensaje de entrada, no se le asignará ningún valor.

Si falta un atributo de un mensaje de entrada, se le asignará el valor predeterminado.

Tenga en cuenta que las restricciones de valores predeterminados están asociadas con el elemento en sí mismo y, por lo tanto, no pueden ser heredadas.

Valor fijo
Si un elemento aparece en un mensaje de entrada, su valor deberá ser el valor fijo especificado. Si un elemento vacío está presente en un mensaje de entrada, se le asignará el valor fijo. Si un elemento falta completamente de un mensaje de entrada, se le asignará el valor fijo.

Si un atributo está presente en un mensaje de entrada, deberá tener el valor fijo. Si un atributo falta de un mensaje de entrada, se le asignará el valor fijo.

Las restricciones de valor fijo están asociadas con el mismo elemento y, por lo tanto, no pueden ser heredadas.

Restricciones de longitud : Longitud, Longitud Mín, Longitud Máx
Al utilizar las restricciones de longitud, la longitud de todos los elementos basados en el tipo simple puede restringirse o incluso limitarse a un único valor.

La restricciones de longitud pueden aplicarse a tipos simples que deriven de xsd:hexBinary, xsd:base64Binary o xsd:string (incluyendo los tipos de esquemas incorporados como xsd:normalisedString).

Las restricciones de longitud se heredan de los tipos ascendentes y cualquier restricción definida para un tipo simple no debe relajar las restricciones impuestas por cualquiera de los tipos ascendentes. Por ejemplo, sería ilegal derivar un tipo 'longString' (Longitud máx=100) de un tipo 'shortString' (Longitud máx=10).

Restricciones de rango : Mín inclusivo, Máx inclusivo, Máx inclusivo
Las restricciones de rangos especifican el rango permitido de valores de todos los elementos que están basados en el tipo simple. Las restricciones inclusivas incluyen los puntos finales en el rango permitido, mientras que las exclusivas no lo permiten. Las restricciones de rangos puede aplicarse a tipos simples que son numéricas o que guardan relación con valores de calendario y de hora. No pueden aplicarse a series, ya que la clasificación de valores de series depende del conjunto de caracteres que se esté utilizando.

Las restricciones de rango se heredan de los tipos de ancestros, y cualquier restricción de rango definida para un tipo simple no debe relajar las restricciones impuestas por cualquiera de sus tipos de ancestro. Por ejemplo, sería ilegal derivar un tipo 'largeNumber' (Máx inclusivo=100) de un tipo 'smallNumber' (Máx inclusivo=10).

El modelo de mensajes no permite que las restricciones exclusivas se apliquen a tipos no integrales (float, decimal, double, dateTime, etc.).

Restricciones de enumeración
Una restricción de enumeración especifica un valor permitido para todos los elementos que se basan en el tipo simple. Puede especificar una lista con los valores permitidos definiendo más de una restricción de enumeración para el mismo tipo simple. Las restricciones de enumeración pueden aplicarse a todos los tipos simples.

Las restricciones de enumeración se heredan de los tipos de ancestros, y cualquier conjunto de restricciones de enumeración definido para un tipo simple no debe aumentar el rango de valores permitidos. Por ejemplo, sería ilegal derivar un tipo 'AllColours' (con enumeraciones de todos los colores del arco iris) de un tipo 'MonoColours' (con sólo enumeraciones para 'negro' y 'blanco').

Restricciones de precisión : Total de dígitos y Fracción de dígitos
Las restricción de precisión sólo afectan a valores decimales. Limitan el número de dígitos significativos (total de dígitos) y el número de lugares decimales (fracción de dígitos) para todos los elementos basados en el tipo simple. Las restricciones de precisión sólo pueden aplicarse a los tipos simples derivados de xsd:decimal.

Las restricciones de precisión se heredan de tipos de ancestros y cualquier precisión de precisión definida para un tipo definido para un tipo simple no debe relajar las restricciones impuestas por cualquiera de sus tipos de ancestro. Por ejemplo, sería ilegal derivar un tipo 'veryPrecise' (Fracción de dígitos=10) de un tipo 'notVeryPrecise' (Fracción de dígitos=1).

Restricciones de patrón
Una restricción de patrón es una expresión regular que especifica un conjunto de valores permitidos para todos los elementos basados en el tipo simple. Pueden definirse varios patrones para el mismo tipo simple, permitiendo que se expresen reglas de validación complejas en partes separadas lógicamente. Cada restricción de patrón en un tipo simple contribuye al conjunto de valores permitidos para los elementos que se basan en el mismo. En otras palabras, todos los patrones se combinan utilizando el booleano OR.

Como con todas las restricciones de valores, un tipo simple puede heredar restricciones de patrón del tipo simple en el que está basado. En este caso, el conjunto de restricciones de patrones al que contribuye cada tipo de ancestro debe satisfacerse así como el conjunto al que contribuye el mismo tipo simple. En otras palabras, los conjuntos de restricciones de patrón de cada nivel en la jerarquía de tipos se combinan utilizando el booleano AND.

Las restricciones de patrón sólo pueden aplicarse a tipos simples que derivan de xsd:string.

restricciones de espacio en blanco
Una restricción de espacio en blanco especifica cómo debe tratar un analizador para todos los elementos que se basan en el tipo simple.

Términos de uso | Comentarios

Este Information Center está basado en tecnología Eclipse. (http://www.eclipse.org)