Specifica delle posizioni dei campi nei record posizionali
Per definire un record posizionale è necessario fornire informazioni sulle posizioni e sulle lunghezze dei campi del record in questione. Se il record contiene sottorecord, vengono considerate anche le posizioni e le lunghezze dei campi del sottorecord, che contribuiranno così alla definizione delle informazioni sul record contenitore.
La somma dei valori specificati per le proprietà Offset posizionale e Lunghezza posizionale per un determinato nodo Elemento campo o attributo campo determina il numero di caratteri dedicati al campo corrispondente. Le serie di queste somme di tutti i campi del record e di eventuali sottorecord determina i limiti dei campi nel record.
Nota
Quando la proprietà Count Position In Byte del nodo Schema è impostata su Sì, le proprietà Positional Length and Position Offset specificano byte anziché caratteri.
Vedere altri dettagli su queste proprietà nella guida per l'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori.
Proprietà Offset di posizione
Quando il disassembler file flat converte un messaggio di istanza di file flat in un messaggio di istanza XML equivalente, il valore specificato per la proprietà Offset posizionale definisce un numero di caratteri (o byte) ignorati e ignorati in tale posizione nel messaggio dell'istanza. In altre parole, tutte le informazioni che si verificano in tale posizione iniziale e lunghezza (quest'ultima come specificata dalla proprietà Positional Offset ) nel messaggio dell'istanza di file flat non verranno copiate nella versione XML del messaggio.
Quando l'assembler file flat converte un messaggio di istanza XML in un messaggio di istanza di file flat equivalente, il valore specificato per la proprietà Offset posizionale definisce un numero di caratteri (o byte) che vengono riempiti con caratteri di spazio in corrispondenza della posizione iniziale all'interno del messaggio dell'istanza del file flat creato. Per riempire le posizioni di offset viene sempre utilizzato il carattere spazio. Non è possibile configurare il carattere da utilizzare.
La proprietà Positional Offset offre flessibilità per interpretare il contenuto dei record posizionali. Questa proprietà consente essenzialmente di ignorare eventuali dati di lunghezza fissa che precedono il campo per cui è stata impostata su un valore diverso da zero. I dati di lunghezza fissa potrebbero essere uno o più campi interi di dati o un tipo di dati costante, ad esempio un tag associato al campo, che non è necessario includere nell'equivalente XML del messaggio di istanza file flat. Per ulteriori informazioni, vedere l'esempio riportato di seguito.
Proprietà Lunghezza posizionale
Quando il disassembler file flat converte un messaggio di istanza di file flat in un messaggio di istanza XML equivalente, il valore specificato per la proprietà Positional Length definisce il numero di caratteri (o byte) associati al campo in tale posizione nel messaggio dell'istanza. Le informazioni che si verificano in corrispondenza di tale posizione iniziale e lunghezza nel messaggio di istanza di file flat costituiscono i dati nel campo, soggetti alle informazioni aggiuntive fornite dalle proprietà Giustificazione e Carattere pad associate. Per altre informazioni concettuali sulla giustificazione e sul riempimento dei campi, vedere Giustificazionecampi e spaziatura interna campo.
Quando l'assembler file flat converte un messaggio di istanza XML in un messaggio di istanza di file flat equivalente, il valore specificato per la proprietà Positional Length definisce un numero di caratteri (o byte) disponibili per scrivere i dati associati a tale campo. Se il numero di caratteri di dati è minore della lunghezza specificata per il campo, per colmare la differenza viene utilizzato il carattere di riempimento pertinente. Se sono presenti più caratteri di dati rispetto alla lunghezza specificata del campo, l'inizio o la fine dei dati viene troncata in base all'impostazione della proprietà Giustificazione e non inclusa nel messaggio dell'istanza di file flat costruita.
Nota
Viene troncata ed eliminata la parte finale dei dati allineati a sinistra. Viene troncata ed eliminata la parte iniziale dei dati allineati a destra.
Esempio
Si considerino le seguenti definizioni di campo per un record.
Nome nodo campo | Offset | Length | Carattere riempimento | Giustificazione |
---|---|---|---|---|
Field1 | 0 | 6 | Predefinito (spazio) | Sinistra |
Field2 | 0 | 4 | * | Destra |
Field3 | 2 | 6 | * | Sinistra |
Field4 | 4 | 6 | Predefinito (spazio) | Destra |
Nel punto iniziale di un record con queste definizioni di campi si incontra il seguente flusso di caratteri (la prima riga è per il conteggio delle posizioni dei caratteri).
123456789012345678901234567890123456789012345678901234567890
abc **12345678**skip here
Quando queste definizioni di campo vengono applicate ai dati del record di esempio, il disassember file flat produce il codice XML equivalente seguente (con i dati visualizzati in grassetto).
<Field1>abc</Field1>
<Field2>12</Field2>
<Field3>5678</Field3>
<Field4>here</Field4>
Di seguito sono riportate alcune osservazioni relative all'analisi di questi dati:
I caratteri associati a Field1 (lunghezza 6 senza offset) sono "
abc
, ma gli spazi non sono inclusi nel codice XML perché il carattere di spazio è il carattere predefinito del pad per Field1 e Field1 viene definito come allineato a sinistra.I caratteri associati a Field2 (lunghezza 4 senza offset) sono "
**12
", ma gli asterischi non sono inclusi nel codice XML perché il carattere asterisco è il carattere del riquadro definito per Field2 e Field2 è definito come allineato a destra.I caratteri associati a Field3 (lunghezza 6 più offset 2) sono "
345678**
", ma i 3 e 4 non sono inclusi nel codice XML a causa dell'offset. Anche gli asterischi non vengono inclusi nel codice XML, perché l'asterisco è il carattere di riempimento definito per Field2 e per Field2 è specificato l'allineamento a sinistra.I caratteri associati a Field4 (lunghezza 6 più offset 4) sono "", ma la sequenza di caratteri "
skip here
skip
" non è inclusa nel codice XML a causa dell'offset. Anche i due caratteri spazio non vengono inclusi nel codice XML, perché il carattere spazio è il carattere di riempimento (predefinito) per Field4 e per Field4 è specificato l'allineamento a destra.Se il file XML prodotto dal disassembler file flat in questo esempio viene passato all'assembler file flat usando le stesse definizioni di campo, vengono generati gli stessi dati dei file flat, con due eccezioni: le sequenze di offset ignorate 34 e skip vengono riempite con caratteri di spazio (indicati con il carattere nella riga che segue i
^
dati).
123456789012345678901234567890123456789012345678901234567890
abc **12 5678** here
^^ ^^^^
Vedere anche
- Considerazioni sui campi
- Giustificazione dei campi
- Riempimento dei campi
- Altre informazioni sulle proprietà seguenti nella guida per l'interfaccia utente e nei riferimenti agli spazi dei nomi delle API per sviluppatori:
- Conteggio posizioni in byte (proprietà node di schemi file flat)
- Giustificazione (proprietà node di schemi file flat)
- Carattere pad (proprietà node di schemi file flat)
- Offset posizionale (proprietà node di schemi file flat)
- Lunghezza posizionale (proprietà node di schemi file flat)