處理指示概述
處理指示 (PI) 與具有屬性的元素不同,因為它們不會被視為文件內容的一部份。處理指示可以位於文件中的任意位置,其中包括文件 (外層) 元素之前和之後。但處理指示不可以位於內容模型宣告為 CDATA 或 RCDATA 的元素內或 CDATA 及 RCDATA 標記部份內。
一般而言,PI 為產品所專屬。Arbortext Editor 具有其可辨識的處理指示,其他產品也有其自己可辨識的處理指示。雖然 Arbortext Editor 不會處理其他產品的專屬 PI,但會將它們保留下來。
Arbortext Editor 使用類似標籤的結構來代表文件中某些類型的 PI。對於這些 PI,oid_name 函數會傳回作為 Arbortext Editor 辨識 PI 依據的名稱。通常,接受標籤名稱或 OID 名稱的 ACL 指令和函數將會使用這些名稱。您可以使用 > 在您的文件中查找這些處理指示。
其他 PI (如那些記錄游標位置的 PI 或元素詳細資訊呈縮疊狀的 PI) 不以標籤表示,因此無法藉由 > 來查找。相關主題中為這些 PI 增加了標誌。
以下是關於在 Arbortext Editor 中處理處理指示的部份資訊:
• PI 標籤始終以下底線 (“_”) 開頭,如此通常可避免與元素產生名稱衝突。
• 某些 PI 的屬性可使用與屬性有關的 ACL 函數和指令來設定。
• 某些 PI 是成對的,因為它們具有必須一起放置的起始與結尾標籤。Arbortext Editor 要求這些標籤的嵌套方式必須正確 (即彷彿它們是包含內容的元素一般)。其他 PI 是單一的 (與空白元素相似)。
• 您可以透過這種方式來檢視 PI 來源:反白包含 PI 的區域並選擇 > 或 > 。您也可以選取該區域,然後在 Arbortext Editor 指令行中鍵入 eval $selection。
在 SGML 中,PI 的語法為 <? ... >。在 XML 中,其語法則是 <?...?>。
• 您使用 write -nopi 指令幾乎可以移除文件中的所有 PI。此選項不會移除泛用 PI 或方程式 PI。
將處理指示寫入文件時
要將哪個處理指示寫入文件由 set writepi 進階偏好設定的設定決定。
無論 writepi 設定為何 (即使是 writepi = off),都會寫入下列 Arbortext Editor 處理指示:
• <?Pub Tag atict:xxx?> - SGML 文件的 PTC Arbortext 變更追蹤標籤
• <?Pub Doctype?> - 將 SGML 文件儲存為 XML 時的文件類型提示
• <?Pub Eqn?> - 指示方程式的開頭 (在 6.0 發行版中已不再需要,但是出於向後相容的目的,還是保留下來)
• <?Pub PI UdtName contents?> - 非 Arbortext Editor 處理指示的使用者定義標籤
當 writepi = structural 時,會寫入下列處理指示:
• <?Pub Schema?> - 為沒有以根標籤開頭之文件片段的關聯架構提供提示
• <?Pub UDT?> - 使用者定義標籤宣告
• <?Pub Sty?>
• <?Pub EntList?> - 宣告的字元實體
• <?Pub CX?> - 前後關聯字串
• <?APT?> - 換行處理指示,用來為較長行的實體參照換行
• <?Pub (UdtName)?> - 使用者定義處理指示
• <?PubTbl?> - 表格內容
• <?PubTbl table xxx?> - 表格邊界格式
• <?PubTbl row xxx?> - 表格列格式
• <?PubTbl cell xxx?> - 表格字元格格式
• <?Pub Tag atipl:xxx?> - SGML 的 PTC Arbortext 頁面配置標籤
• <?Pub Tag atidm:xxx?> - SGML 的 PTC Arbortext 資料合併標籤
• <?Pub _xxx?> - 各種 PTC Arbortext 標籤,例如 _font、_cellfont、_bookmark、_kern、_newline 等
• <?Pub Lcl?> - 指示虛擬屬性
• <?Pub Asis?> - 指示 asis 區段
• <?Pub ListProp?>、<?Pub StrProp?> 與 <?Pub NumProp?> - 文件內容
當 writepi = touchup 時,會寫入下列處理指示:
• <?Pub _font?> - 指示 PTC Arbortext 字型修改
• <?Pub _newcolumn?> - 指示 PTC Arbortext 新欄修改
• <?Pub _newline?> - 指示 PTC Arbortext 新行修改
• <?Pub _newpage?> - 指示 PTC Arbortext 新頁面修改
• <?Pub _nolinebreak?> - 指示 PTC Arbortext 無換行修改
當 writepi = default 時,會寫入下列處理指示:
• <?Pub Caret?> - 指示工作階段間游標的位置
• <?Pub Dtl?> - 指示元素是否在工作階段之間縮疊
• <?Pub Inc?> - 指示在最後一次完整度檢查時文件是否不完整
當 writepi = on 時,會寫入下列處理指示:
• <?Pub _display?>