Especificación de las posiciones de los campos en los registros posicionales
Para definir un registro posicional, debe proporcionar información acerca de las posiciones y longitudes de los campos de ese registro. Si el registro contiene un subregistro, las posiciones y longitudes de los campos del subregistro se acumulan a la información del registro que lo contiene.
La suma de los valores especificados para las propiedades Positional Offset y Positional Length para un nodo Field Element o Field Attribute determinado determina el número de caracteres dedicados al campo correspondiente. El conjunto de estas sumas para todos los campos del registro y cualquier subregistro determina los límites de los campos en los registros.
Nota
Cuando la propiedad Count Positions In Bytes del nodo Esquema se establece en Sí, las propiedades Longitud posicional y Desplazamiento de posición especifican bytes en lugar de caracteres.
Consulte más detalles sobre estas propiedades en la guía de la interfaz de usuario y en la referencia del espacio de nombres de la API de desarrolladores.
Propiedad Desplazamiento posicional
Cuando el desensamblador de archivos planos convierte un mensaje de instancia de archivo plano en un mensaje de instancia XML equivalente, el valor especificado para la propiedad Offset posicional define un número de caracteres (o bytes) que se omiten y omiten en esa posición del mensaje de instancia. En otras palabras, cualquier información que se produzca en esa posición y longitud iniciales (la última especificada por la propiedad Desplazamiento posicional ) en el mensaje de instancia de archivo plano no se copiará en la versión XML del mensaje.
Cuando el ensamblador de archivos planos convierte un mensaje de instancia XML en un mensaje de instancia de archivo plano equivalente, el valor especificado para la propiedad Offset posicional define un número de caracteres (o bytes) que se rellenan con caracteres de espacio en esa posición inicial dentro del mensaje de instancia de archivo plano que se está creando. El carácter de espacio siempre se utiliza para rellenar posiciones de desplazamiento; el carácter utilizado no se puede configurar.
La propiedad Desplazamiento posicional proporciona flexibilidad para interpretar el contenido de los registros posicionales. Básicamente, esta propiedad permite omitir cualquier dato de longitud fija que esté situado antes de un campo con un valor distinto de cero para esa propiedad. Los datos de longitud fija pueden ser uno o más campos completos de datos o algún tipo de datos constantes, como una etiqueta asociada al campo, que no es necesario que se incluyan en el equivalente XML del mensaje de instancia de archivo sin formato. Para obtener más información, consulte el ejemplo siguiente.
Propiedad Longitud posicional
Cuando el desensamblador de archivos planos convierte un mensaje de instancia de archivo plano en un mensaje de instancia XML equivalente, el valor especificado para la propiedad Longitud posicional define el número de caracteres (o bytes) que están asociados al campo en esa posición del mensaje de instancia. La información que se produce en esa posición inicial y longitud en el mensaje de instancia de archivo plano constituye los datos del campo, sujeto a la información adicional proporcionada por las propiedades de justificación y caracteres de relleno asociadas. Para obtener más información conceptual sobre la justificación y el relleno de campos, vea Field Justification and Field Padding.
Cuando el ensamblador de archivos planos convierte un mensaje de instancia XML en un mensaje de instancia de archivo plano equivalente, el valor especificado para la propiedad Longitud posicional define un número de caracteres (o bytes) disponibles para escribir los datos asociados a ese campo. Si el número de caracteres de datos es inferior a lo que especifica la longitud del campo, se utiliza el carácter controlador relevante para rellenar la diferencia. Si hay más caracteres de datos que la longitud especificada del campo, el principio o el final de los datos se trunca en función del valor de la propiedad Justification y no se incluye en el mensaje de instancia de archivo plano que se está construyendo.
Nota
La parte final de los datos alineados a la izquierda se trunca y se descarta. La parte inicial de los datos alineados a la derecha se trunca y se descarta.
Ejemplo
Considere las siguientes definiciones de campos de un registro.
Nombre de nodo de campo | Offset | Length | Carácter de relleno | Justificación |
---|---|---|---|---|
Field1 | 0 | 6 | Valor predeterminado (espacio) | Left |
Field2 | 0 | 4 | * | Right |
Field3 | 2 | 6 | * | Left |
Field4 | 4 | 6 | Valor predeterminado (espacio) | Right |
Además, considere que la siguiente secuencia de caracteres se encuentra en el punto de inicio de un registro con estas definiciones de campos (la primera línea sirve para contar las posiciones de carácter).
123456789012345678901234567890123456789012345678901234567890
abc **12345678**skip here
Cuando se aplican estas definiciones de campos a estos datos de registro de ejemplo, el desensamblador de archivos sin formato crea el siguiente XML equivalente (datos mostrados en negrita).
<Field1>abc</Field1>
<Field2>12</Field2>
<Field3>5678</Field3>
<Field4>here</Field4>
Las observaciones siguientes están relacionadas con cómo se analizan estos datos:
Los caracteres asociados a Field1 (longitud 6 sin desplazamiento) son "
abc
", pero los espacios no se incluyen en el XML porque el carácter de espacio es el carácter de panel (predeterminado) para Field1 y Field1 se define como alineado a la izquierda.Los caracteres asociados a Field2 (longitud 4 sin desplazamiento) son "
**12
", pero los asteriscos no se incluyen en el XML porque el carácter asterisco es el carácter de relleno definido para Field2 y Field2 se define como alineado a la derecha.Los caracteres asociados a Field3 (longitud 6 más un desplazamiento de 2) son "
345678**
", pero los 3 y 4 no se incluyen en el XML debido al desplazamiento. Los asteriscos tampoco se incluyen en el XML porque el carácter de asterisco es el carácter controlador establecido para Field2, y Field2 está definido como alineado a la izquierda.Los caracteres asociados a Field4 (longitud 6 más un desplazamiento de 4) son "
skip here
", pero la secuencia de caracteres "skip
" no se incluye en el XML debido al desplazamiento. Los dos caracteres de espacio tampoco se incluyen en el XML porque el carácter de espacio es el carácter controlador (predeterminado) de Field4, y Field4 está definido como alineado a la derecha.Si el XML generado por el desensamblador de archivos planos de este ejemplo se pasa al ensamblador de archivos planos con las mismas definiciones de campo, se generan los mismos datos de archivo plano, con dos excepciones: las secuencias de desplazamiento descartadas 34 y skip se rellenan con caracteres de espacio (indicados con el
^
carácter en la línea que sigue a los datos).
123456789012345678901234567890123456789012345678901234567890
abc **12 5678** here
^^ ^^^^
Consulte también
- Consideraciones sobre campos
- Justificación de campos
- Relleno de campos
- Más información sobre las siguientes propiedades en la guía de la interfaz de usuario y en la referencia del espacio de nombres de la API de desarrolladores:
- Posiciones de recuento en bytes (propiedad Node de esquemas de archivo plano)
- Justificación (propiedad Node de esquemas de archivo plano)
- Carácter de relleno (propiedad Node de esquemas de archivo plano)
- Desplazamiento posicional (propiedad Node de esquemas de archivo plano)
- Longitud posicional (propiedad Node de esquemas de archivo plano)