Formato TDS: Tipos de separación delimitada

Para los tipos de separación delimitada, se utiliza un delimitador para separar los campos de datos, pero no hay códigos. Es necesario proporcionar a los campos de datos el orden correcto en la corriente de bits y no se pueden omitir elementos de la parte central de la corriente de bits.

El tipo de separación Todos los elementos delimitados significa que los campos de datos se delimitan mediante un carácter o una serie de caracteres que se especifica previamente. En este ejemplo, se separan cuatro campos de datos con un delimitador de asterisco (*):
data1*data2*data3*data4
Los tipos de separación delimitada son restrictivos respecto al orden y a la presencia de los elementos:
Después de tener en cuenta las Normas de supresión de delimitador y truncamiento, este tema describe los siguientes tipos de separación delimitada:

Normas de supresión de delimitador y truncamiento

Todos los elementos delimitados

En un tipo de separación de Todos los elementos delimitados, se separan todos los elementos con un delimitador; por ejemplo:
data1*data2*data3*data4*data5
donde Delimitador es *.

Un tipo de separación Todos los elementos delimitados no utilizan códigos ni los parámetros asociados.

Para los elementos textuales, la longitud está determinada por el delimitador y la propiedad Longitud se ignora a menos que la propiedad Observar longitud de elemento esté establecida.

Para los elementos no textuales, la longitud está determinada por el Tipo físico del elemento. Consulte Formato TDS: Determinación de la longitud de valores de datos simples.

Propiedades aplicables

Se utilizan estas propiedades:
  • Indicador de grupo indica el inicio de un grupo o un tipo complejo.
  • Terminador de grupo indica el final de un grupo o un tipo complejo.
  • Delimitador indica el separador entre los elementos de datos en un grupo o un tipo complejo.
  • Suprimir delimitadores de elementos ausentes indica si se permite la supresión de delimitadores (ver más arriba).
Por ejemplo:
{data1*data22222*data3}
donde:
  • El Indicador de grupo es {
  • El Terminador de grupo es }
  • El Delimitador es *

Normas de repetición de elemento

Si es necesario repetir un elemento cuando el tipo de separación es Todos los elementos delimitados, se utiliza el Delimitador de elemento de repetición (RED) para separar los elementos repetidos.

Por ejemplo si se repite data2 5 veces:
data1*data2:data2:data2:data2:data2*data3*data4
donde:
  • El Delimitador es *
  • El Delimitador de elemento de repetición es :
Si la propiedad Suprimir delimitadores de elementos ausentes se establece en Fin de tipo, puede utilizar la supresión de delimitadores. Por lo tanto, si en el ejemplo anterior, sólo el primer elemento data2 estaba presente, la corriente de bits será:
data1*data2*data3*data4
No obstante, si la propiedad Suprimir delimitadores de elementos ausentes se establece en Nunca, la corriente de bits será:
data1*data2::::*data3*data4
Si Delimitador y RED coinciden, habrá dos delimitadores para indicar que la repetición está finalizando. Por consiguiente, si el delimitador y RED son *, la corriente de bits será:
data1*data2**data3*data4

Elementos de longitud variable delimitados

Si un tipo complejo con separación Elementos de longitud variable delimitados, algunos elementos se determinan por su longitud, mientras que otros están delimitados. Esta combinación de un formato delimitado y de un formato de longitud fija sigue las normas asociadas a ambos formatos. Se pueden proporcionar y utilizar longitudes, pero no son obligatorias.
  • Si existe una longitud para un elemento textual, éste se utilizará y no será necesario ningún delimitador para terminar dicho elemento. El elemento debe rellenarse hasta la longitud correcta y no puede exceder dicha longitud.
  • Si no se proporciona ninguna longitud, será necesario el delimitador.
  • Para los elementos no textuales, la longitud está determinada por el Tipo físico del elemento. Consulte Formato TDS: Determinación de la longitud de valores de datos simples.

Un tipo complejo con separación de Elementos de longitud variable delimitados que sólo contenga elementos de longitud variable es parecido a un tipo complejo con separación de Todos los elementos delimitados. Si sólo contiene elementos de longitud fija, es parecido a un tipo de Longitud fija.

Por ejemplo:
data1*data2*data3*data4000data5
donde:
  • El Delimitador es *
  • data4 tiene una longitud de 8

Propiedades aplicables

Se utilizan las propiedades siguientes:
  • Indicador de grupo indica el inicio de un grupo o un tipo complejo.
  • Terminador de grupo indica el final de un grupo o un tipo complejo.
  • Delimitador indica el separador entre los elementos de datos en un grupo o un tipo complejo.
  • Suprimir delimitadores de elementos ausentes indica si se permite la supresión de delimitadores.
  • (Opcionalmente) Longitud o Referencia de longitud indica la longitud de un elemento de texto. Si un elemento textual tiene una longitud, se utiliza dicha longitud. Dado que se conoce la longitud de este elemento, no es necesario poner en la salida ninguno después del mismo. Si no se conoce la longitud, se necesita un delimitador. Un delimitador nunca es necesario para un elemento no textual.
En este ejemplo, el cuarto campo (que contiene data4) tiene una longitud fija de 8 y su carácter de relleno es 0:
{data1*data22222*data3*data4000data5}
donde:
  • El Indicador de grupo es {
  • El Terminador de grupo es }
  • El Delimitador es *

Normas de repetición de elemento

La acción de un elemento de repetición en un entorno de Elementos de longitud variable delimitados depende del número mínimo y máximo de repeticiones y de que el elemento tenga una longitud.

Elemento delimitado de repetición

Si un elemento delimitado (es decir, un elemento sin longitud) se repite, se necesita un Delimitador de elemento de repetición (RED) y se siguen las normas para Todos los elementos delimitados. Por consiguiente, se necesita un delimitador después de la última repetición. También se puede producir la supresión de delimitador de esta repetición.

Por ejemplo, si se repite data2:
data1*data2:data2:data2:data2:data2:data2*data3*data4000data5
donde:
  • El Delimitador es *
  • El Delimitador de elemento de repetición es :
  • data4 tiene una longitud fija de 8

Si el campo Suprimir delimitadores de elementos ausentes se establece en Fin de tipo, puede utilizar la supresión de delimitadores.

Si en el ejemplo anterior sólo está presente el primer data2:
data1*data2*data3*data4000data5
Sin embargo, si Suprimir delimitadores de elementos ausentes se establece en Nunca, la corriente de bits será:
data1*data2:::::*data3*data4000data5
Si el delimitador y el RED coinciden, en la salida habrá dos delimitadores para indicar que la repetición está finalizando. De este modo, si el delimitador y el RED son *, la corriente de bits será:
data1*data2**data3*data4

Esto también se aplica a un tipo complejo o grupo de longitud no fija en un entorno de Elementos de longitud variable delimitados.

Elemento de longitud fija de repetición

Si un elemento con una longitud definida (un elemento de longitud fija) se repite y el número mínimo de apariciones no es igual al máximo de apariciones, no se necesita el RED, pero se necesita un delimitador después de la última repetición. Se puede producir la supresión de delimitador de esta repetición.

Por ejemplo, si data4 (con una longitud fija de 8) se repite y el número mínimo de apariciones es 2, el número máximo de apariciones es 4:
data1*data2*data3*data400data400data400data400*data5
donde el Delimitador es *
O, si sólo hay dos apariciones de data4:
data1*data2*data3*data4000data4000*data5

Si un elemento con una longitud definida (un elemento de longitud fija) se repite y el número mínimo de apariciones es igual al máximo de apariciones, no se necesita ningún RED. Tampoco se necesita ningún delimitador después de la última repetición. No se puede producir ningún truncamiento de esta repetición y tienen que estar presentes todos los elementos.

Por ejemplo, si data4 (con una longitud fija de 8) se repite cuatro veces:
data1*data2*data3*data4000data4000data4000data4000data5
donde el Delimitador es *
O, si sólo hay dos apariciones de data4:
data1*data2*data3*data4000data40000000000000000000data5

Esto también se aplica a un tipo complejo o grupo de longitud no fija en un entorno de Elementos de longitud variable delimitados.

Si un tipo complejo tiene una separación de Elementos de longitud variable delimitados, en la salida siempre hay un delimitador entre un elemento complejo incluido ('hijo') y el elemento siguiente, incluso si la separación del elemento complejo 'hijo' es Longitud fija. En la entrada, el analizador acepta la corriente de bits con o sin un delimitador así.

Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última actualización : 2009-02-16 13:54:12

ad00812_