共用方式為


位置記錄中欄位位置的規格

若要定義序數記錄,您必須提供該記錄中欄位的位置和長度之相關資訊。 若記錄包含子記錄,則子記錄中欄位的位置和長度會納入包含記錄之相關資訊。

您為特定Field 元素Field 屬性節點之Positional OffsetPositional Length屬性指定的值總和,會決定對應欄位專用的字元數。 在記錄及其任何子記錄中所有欄位的這些總和決定記錄中欄位的界限。

注意

[架構] 節點的[Count Positions In Bytes] 屬性設定為 [] 時,[位置長度] 和 [位置位移] 屬性會指定位元組而非字元。

如需這些屬性的詳細資訊,請參閱 UI 指引和開發人員 API 命名空間參考

Positional Offset 屬性

當一般檔案反組譯程式將一般檔案實例訊息轉換成相等的 XML 實例訊息時,您為 Positional Offset 屬性指定的值會定義一些字元 (或位元組) ,這些字元會在實例訊息中忽略和略過該位置。 換句話說,在該開始位置和長度 (後者所指定的任何資訊,) 一般檔案實例訊息中的 Positional Offset 屬性所指定,將不會複製到訊息的 XML 版本。

當一般檔案組合器將 XML 實例訊息轉換成相等的一般檔案實例訊息時,您為 Positional Offset 屬性指定的值會定義一些字元 (或位元組) 填入所建立之一般檔案實例訊息內該開始位置的空白字元。 空白字元永遠用來填滿位移位置,使用的字元無法設定。

Positional Offset屬性提供彈性來解譯位置記錄的內容。 本質上,這個屬性可讓您忽略在設為非零值欄位前的任何固定長度資料。 該固定長度資料可能是一或多個整個欄位資料或某個類型的常數資料,像是與欄位關聯的標記,不需要包含在一般檔案執行個體訊息對等的 XML 中。 如需詳細資訊,請參閱下列範例。

Positional Length 屬性

當一般檔案反組譯程式將一般檔案實例訊息轉換成相等的 XML 實例訊息時,您為 Positional Length 屬性指定的值會定義與實例訊息中該位置欄位相關聯的字元數 (或) 位元組數。 在一般檔案實例訊息中該開始位置和長度所發生的資訊會構成欄位中的資料,受限於相關聯的 JustificationPad Character 屬性所提供的其他資訊。 如需理由和欄位填補的詳細資訊,請參閱 欄位對齊欄位填補

當一般檔案組合器將 XML 實例訊息轉換成相等的一般檔案實例訊息時,您為 Positional Length 屬性指定的值會定義一些字元 (或位元組,) 可用來寫入與該欄位相關聯的資料。 若資料字元少於指定的欄位長度,則使用相關的填補字元填滿差距。 如果資料字元超過欄位的指定長度,則會根據 Justification 屬性的設定來截斷資料的開頭或結尾,而不會包含在所建構的一般檔案實例訊息中。

注意

靠左對齊資料的尾端部分會被截斷並捨棄。 靠右對齊資料的開頭部分會被截斷並捨棄。

範例

考量下列的記錄欄位定義。

欄位節點名稱 Offset 長度 填補字元 理由
Field1 0 6 預設 (空格) Left
Field2 0 4 * Right
Field3 2 6 * Left
Field4 4 6 預設 (空格) Right

具備這些欄位定義之記錄的開始點發生下列字元資料流 (第一行用於計算字元位置)。

123456789012345678901234567890123456789012345678901234567890  
abc   **12345678**skip  here  

當這些欄位定義套用到此範例記錄資料時,一般檔案解譯器會產生以下對等 XML (其資料以粗體字顯示)。

<Field1>abc</Field1>  
<Field2>12</Field2>  
<Field3>5678</Field3>  
<Field4>here</Field4>  

下列觀察與此資料的剖析方式有關:

  • 與 Field1 相關聯的字元 (長度為 6 且沒有位移) 為 「 abc 」,但 XML 中不包含空格,因為空白字元是 Field1 的預設) 板字元 (,而 Field1 會定義為靠左對齊。

  • 與 Field2 關聯的字元長度 4 (長度) 為 「 **12 」,但不會在 XML 中包含星號,因為星號字元是針對 Field2 定義的填補字元,而 Field2 定義為靠右對齊。

  • 與 Field3 相關聯的字元 (長度 6 加上 2) 位移為 「 345678** 」,但 3 和 4 不會包含在 XML 中,因為位移。 XML 中也不包含星號,因為星號字元已定義為 Field2 的填補字元,而 Field2 定義為靠左對齊。

  • 與 Field4 相關聯的字元 (長度 6 加上 4) 位移為 「 skip here 」,但字元序列 「 skip 」 不會包含在 XML 中,因為位移。 XML 中也不包含兩個空白字元,因為空白字元是 Field4 的 (預設) 填補字元,而 Field4 定義為靠右對齊。

    如果此範例中一般檔案反組譯器所產生的 XML 會使用相同的欄位定義傳遞至一般檔案組合器,則會產生相同的一般檔案資料,但有兩個例外狀況:捨棄的位移序列 34 和 skip 會填入空白字元, (資料) 之後的行字元表示 ^

123456789012345678901234567890123456789012345678901234567890  
abc   **12  5678**      here  
          ^^      ^^^^  
  

另請參閱