Servigistics InService 發佈與載入 > 其他資訊 > TAL 自訂 > 在導覽期間變更排序
  
在導覽期間變更排序
排序在 IS、PS 與 PH「類型」內容 XML 檔案的元素 NodeOrderingMapping 下定義。您可以設定多個排序組態,其中一個可在執行時期使用。
排序機制會執行下列兩項操作︰
根據在類型定義中定義的 XPATH 規則排序節點的所選子項 (順序會在 TAL 期間定義,而非在執行時期定義)。
如果子節點有多個值,它會根據在執行時期傳遞的參數選取其中一個值。
這會在語言回退機制中使用,它只會針對子節點根據回退設定傳回一個 TITLE。
排序會針對所有語言中的所有值全域建構。它以所有標題都有全域排序演算法這樣一個假設為基礎。只有在執行時期才會為每個節點選取正確標題。
排序的定義可讓您自由定義。在定義中,您可以決定下列事項︰
將由排序傳回的節點 (在目錄範例中,它是 NODE 元素)
將用於排序的一或多個節點 (在目錄範例中,它是 linenumberTITLE/Desc 元素)
將在有多個值時用於選取正確節點的字串值 (在目錄範例中,它是標題的語言)
以下是在「類型」中編碼定義的方式範例︰
在此範例中︰
排序名稱是 folderdoc
傳回的節點以下列順序排序︰
如果存在行號,則根據行號顯示節點
接下來顯示資料夾,然後顯示文件
資料夾與文件會以字母順序顯示
如果存在,針對每個節點選取正確值的字串值是 <DESC> 元素上的 xml:lang 屬性值,如果不存在則是一些預設,或屬於 <NODE> 元素的 AuthoredDocLang 屬性值 (第八到第二十三行)。
您可在「類型」內容中定義任意數量的排序。只要您能夠在 XSL 中表達對應規則,您也可以將每個類型對應至您想要之任意層級的任意內容類型。
但是,對於 IS 與 PS,Java SDK 使用三種預先定義的排序方式︰
doc - 用於僅萃取文件子項
folder - 用於僅萃取資料夾子項
folderdoc - 用於萃取文件與資料夾子項