有很多應用程式都能夠產生並使用 XML,Adobe InDesign CS5 就是其中一個。 在 InDesign 檔案中標記內容之後,儲存檔案並轉存為 XML,即可在另一個 InDesign 檔案或另一個應用程式中再利用。 同樣地,也可以將 XML 檔案讀入 InDesign,然後指示 InDesign 以所要的任何方式顯示或設定 XML 資料的格式。

關於 XML

XML (延伸標記語言) 是在檔案中再利用資料的一種方法,也可以自動化處理用其他檔案的資料取代檔案中資料。 XML 使用「標記」描述檔案各部分,例如,標題或內文。 這些標記標示資料,讓資料能夠儲存在 XML 檔案中,並在轉存至其他檔案時,適當地進行處理。 您可以將 XML 視為資料的轉譯機制。 XML 標記標示檔案中的文字及其他內容,讓應用程式能夠識別及呈現資料。

延伸式語言

XML 之所以被視為「延伸式」語言,是因為每個人各自建立自己的 XML 標記,也可以為每種要再利用的資訊建立一個標記。 XML 標記本身並不包含有關資料應該如何顯示或設定格式的資訊。 XML 標記完全只是供識別內容之用。

例如,在 InDesign 中,您可以建立 Heading1 標記,然後將它指定給文件中的每個第一層級標題。將文件儲存為 XML 檔案之後,Heading1 內容就能由可讀取 XML 的任何應用程式讀入並加以利用,做為網頁、印刷目錄、名錄、價目表,或資料庫資料表。

有很多應用程式都能夠產生並使用 XML,InDesign 就是其中一個。 在 InDesign 檔案中標記內容之後,儲存檔案並轉存為 XML,即可在另一個 InDesign 檔案或另一個應用程式中再利用。 同樣地,也可以將 XML 檔案讀入 InDesign,然後指示 InDesign 以所要的任何方式顯示或設定 XML 資料的格式。

Adobe InCopy 是眾多可產生並使用 XML 的其中一個應用程式。 在 InCopy 檔案中標記內容之後,儲存檔案並轉存為 XML,即可在另一個 InCopy 檔案、InDesign 檔案,或另一個應用程式中再利用。

在 InDesign 中,即使您沒有使用 XML 的經驗,也可以建立 XML 標記,然後標記文件各部分。InDesign 在幕後處理 XML 程式設計,並在將文件以 XML 格式轉存時,為您建立 XML。

註解:

請不要將 XML 標記與 InDesign 的標記文字混為一談。如需有關標記文字 (這是另一種轉存和讀入 InDesign 內容的方法) 的詳細資訊,請在 www.adobe.com/go/learn_id_taggedtext_cs5_tw (PDF) 中檢視「標記文字 PDF」。

XML 資料結構

「元素」是 XML 資料的建置區塊;元素是已進行標記的資料。 在 XML 檔案中,元素是嵌套在其他元素之內,以建立資料的階層式結構。

您可以在「結構」窗格中看到 XML 資料的結構,以顯示元素的階層架構和順序。 在 XML 結構中,子元素包含於父元素之內,而此父元素本身也可能是子元素。 或者反過來說,父元素包含子元素,而這些子元素本身也可能是其他子元素的父元素。

例如,在下列影像中,您可以看到包含幾種 recipe (步驟卡) 元素 (也就是父元素) 的 chapter (章節) 元素。 而每一種 recipe (步驟卡) 元素也是稱為 recipename (食譜名稱)ingredients (材料)instructions (做法)notes (註解) 以及 servings (份量) 等元素的父元素。 所有元素都包含在 Root (根) 元素內,該元素會出現在「結構」窗格的頂端。

InDesign 中的 XML
XML 在 InDesign 結構窗格 (左) 中以及置入版面 (右) 中的畫面

例如,在下列影像中,您可以看到包含 recipe (步驟卡) 元素 (也就是父元素) 的 chapter (章節) 元素。 而 recipe (步驟卡) 元素則是稱為 recipename (食譜名稱)ingredients (材料) 等元素的父元素。 所有元素都包含在 Story (內文) 元素內,而該元素永遠都出現在「結構」窗格的頂端。

以 XML 標記設定格式的 InCopy 文件
以 XML 標記設定格式的 InCopy 文件

如需在 InDesign 中使用 XML 的詳細資訊,請造訪 www.adobe.com/go/learn_id_XMLscript_tw

XML 工具

InDesign 提供「結構」窗格和「標記」面板來處理 XML 內容。「結構」窗格會顯示文件內的所有元素及其階層架構。 為了協助您識別每個元素,InDesign 會顯示其元素標記,以及表示它所包含內容類型的圖示。此外,「結構」窗格可顯示元素中文字的前幾個字,這些字稱為文字片段,請勿與為了重複使用而儲存物件的程式碼片段檔案混淆。

結構窗格及標記面板
「結構」窗格 (左) 及「標記」面板 (右)

A. 三角形可用來展開或收合元素 B. 元素 (置入版面中) C. 元素 (不在版面中) D. 文字片段 E. 元素標記 
結構窗格及標記面板
「結構」窗格 (左) 及「標記」面板 (右)

A. 三角形可用來展開或收合元素 B. 置入版面中元素 C. 文字片段 D. 元素標記 

「結構」窗格可以讓您檢視、編輯及管理 XML 元素。 處理 XML 時,有許多方式可以使用「結構」窗格。 例如,如果要將讀入的 XML 內容置入版面中,可以把元素從「結構」窗格中直接拖移到頁面。 您可以使用「結構」窗格,調整元素的階層架構。 您可以透過「結構」窗格,加入元素、屬性、注釋及處理指示。

「標記」面板會列出元素的標記。 您可以將標記讀入、轉存、新增、刪除及重新命名。 使用「標記」面板,將元素標記套用至準備要轉存為 XML 的內容,並在讀入 XML 內容之前將標記套用至框架。

「標記」面板會列出元素的標記。 您可以將標記讀入、轉存、新增、刪除及重新命名。 使用「標記」面板,將元素標記套用到準備要轉存為 XML 的內容。

關於 DTD 檔案

如果要與他人共用 XML 資料,必須取得一致共識,建立一組標準的標記名稱和元素屬性,讓群組中所有人都能以相同方式使用及套用標記。 處理 XML 資料共用的其中一個方法,就是使用「文件樣式定義 (DTD)」檔案。

DTD 檔案提供一組元素和屬性,供群組成員使用。 同時也定義有關元素可出現在結構階層中位置的規則。 例如,DTD 檔案可能會要求「標題」元素成為「內文」元素的子代,因為標題應該出現在內文裡面;如果標記標題,而沒有標記標題所屬的內文,DTD 檔案會將「標題」元素標示為無效。 您可以在具 DTD 檔案的 InDesign 檔案中搜尋並標識無效的結構錯誤。 這種處理程序稱為「驗證」。

如果要使用 DTD 檔案 (而文件中並未包含此檔案),請將檔案載入文件中。 這樣就會從 DTD 將元素名稱讀入「標記」面板中。 其他人只要載入相同的 DTD 檔案,都會有相同的元素名稱,可確保群組中所有人都使用相同的元素。 讀入的元素會鎖定,也就是說,除非從文件中刪除 DTD 檔案,否則無法刪除或重新命名讀入的元素。

雖然無法將 DTD 檔案讀入 InCopy 中,但是在 InCopy 中編輯內文時,可以使用讀入 InDesign 中的 DTD 檔案。 您可以在 InCopy 中檢視 DTD 檔案,並依據此檔案驗證內文,以確認已正確套用標記。

開啟 DTD 檔案以供在 InCopy 中檢視
開啟 DTD 檔案以供在 InCopy 中檢視

註解:

您可能會發現群組或業界所建立的 DTD 檔案與您的檔案相似,其中包含了符合您需求的標記及結構。 如需目前登錄過的 DTD 清單,請造訪 www.xml.com/pub/rg/DTD_Repositories (僅英文)。

XML 規則組合

XML 規則組合是以指令碼語言 (例如 JavaScript 或 AppleScript) 撰寫的指示組合,可評估 XML 資料,並在資料符合特定條件時採取特定動作。 每條規則都至少包含一個條件以及至少一個動作。 規則會依條件評估 XML 資料,如果條件符合,則採取適當的動作。 例如,XML 規則可以指定,只要「段落」元素出現在「副標題」元素 (條件) 之下,就會套用特定樣式 (動作);或者,只要「產品」元素 (條件) 出現,就會建立新的框架並讀入產品影像 (動作)。 XML 規則是一項工具,可根據 XML 動態建立版面並設定其格式。

如需有關 XML 規則組合和其他 XML 指令碼資源的詳細資訊,請參閱 www.adobe.com/go/learn_id_XMLscript_tw

準備 K4 或 InCopy 工作流程用的 XML 檔案

若要準備在 K4 或 InDesign/InCopy 工作流程環境中使用的檔案 (內含 XML 標記),您可能必須調整準備這個結構並將 XML 讀入 InDesign 檔的方式。

有兩種方法可以將 XML 讀入為 InDesign:合併和附加。 合併可以取代現有結構,但附加卻會新增至任何現有結構。 在這兩種情況中,根元素一定都要與文字框不相關。您可以根據目前的工作流程或要求,視需要使用名為「Root」的預設元素或重新命名這個元素,但仍要確定它與文字框不相關。

如需有關在 K4 或 InCopy 工作流程中使用 XML 的詳細資訊,請聯絡您的系統管理員。

此産品由 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License 授權  Creative Commons 條款未涵蓋 Twitter™ 與 Facebook 文章。

法律說明   |   線上隱私權政策