目錄 / Table of Contents

ODF 1.0~1.4 規範支援邊界

本文件說明 OdfKit 對 ODF 規範的實際支援深度。OdfKit 的產品定位是受控的 ZIP/XML 函式庫,不是辦公軟體執行環境;因此「能安全載入、驗證、修改並保留 XML」 不等於「能重現 LibreOffice 或 Microsoft Office 的排版、計算及執行結果」。

狀態定義

狀態 意義
完整支援 在 ZIP/XML 邊界內已有公開 API、正反向測試及來回讀寫證據。
結構性支援 可辨識、驗證、建立或修改規範結構,但不承諾執行該結構的應用程式語意。
僅保留 載入及儲存時保留原始內容;核心不解譯或執行。
外部引擎 由 LibreOffice、瀏覽器、字型 shaping/rendering 或其它專用引擎完成。
刻意不支援 與 ZIP/XML 函式庫定位衝突,核心不會建立同等執行環境。

版本與一致性規範

版本 官方 schema 內建規範 邊界
ODF 1.0 官方 RELAX NG 內建並產生版本化 metadata OasisOdf10 規格尚未採用 1.2 之後的 Strict/Extended 分類;不虛構此分類。
ODF 1.1 官方 RELAX NG 內建並產生版本化 metadata OasisOdf11 同上;manifest:version 不會被錯誤要求。
ODF 1.2 官方 RELAX NG 內建並產生版本化 metadata OasisOdf12StrictOasisOdf12Extended;保留 OasisOdf12 相容入口 Strict 拒絕未定義的 ODF 命名空間內容;Extended 報告外來命名空間隔離風險。
ODF 1.3 官方 RELAX NG 內建並產生版本化 metadata OasisOdf13StrictOasisOdf13Extended;保留 OasisOdf13 相容入口 與 1.2 相同,使用 1.3 schema 與版本限制。
ODF 1.4 官方 RELAX NG 內建並產生版本化 metadata OasisOdf14StrictOasisOdf14Extended 使用 ODF 1.4 正式標準的 schema、封裝與版本限制。

所有版本都以 NamespaceURILocalName 比對 XML,不依賴文件使用的前綴。 版本化文件、manifest 與 dsig schema provider 的來源、日期及輸出由 tools/OdfSchemaGenerator/oasis-odf*-schema.jsonoasis-odf*-manifest-schema.jsonoasis-odf*-dsig-schema.json 管理;外部 Jing corpus 是補充證據, 不是執行期相依套件。

按規格層分解

規格層 支援狀態 已實作 不代表
文件 XML/schema(ODF 1.0~1.4) 結構性支援 版本偵測、官方 RELAX NG metadata、元素/屬性/pattern 驗證、Strict/Extended 命名空間診斷、flat document 驗證。 每一種應用程式語意都有高階 facade,或畫面能像素級一致。
ZIP 封裝與 manifest 完整支援 mimetype、安全相對路徑、重複項目、root file-entry、payload 對應、media type、目錄路徑、加密 metadata、核心 XML 的 office:version 一致性,以及 ODF 1.0~1.4 官方 manifest RNG 機械驗證;ODF 1.2~1.4 另區分一般 Package 與 Extended Package 的 META-INF 規則。 具備任意第三方 RNG 的通用編譯器,也不能破解加密或證明內容沒有惡意行為。manifest schema 版本不必等同內容 XML 版本。
數位簽章 XML 結構性支援 ODF 1.2~1.4 官方 dsig RNG、任意 META-INF/*signatures* 入口驗證、XMLDSIG 建立/驗證、封裝引用與選配指令碼簽署工作流程。 作業系統或企業 PKI 信任;信任政策必須由呼叫端明確提供。ODF 1.0/1.1 規範沒有獨立 dsig RNG。
OpenFormula OdfKit Safe Large 受控評估 ODF 1.2~1.4 的 of:= 與 ODF 1.0/1.1 常見的 oooc:= 語法剖析、參照範圍/交集/聯集、引號標籤、自動交集、文件/工作表/外部名稱、inline array、矩陣公式寫回、複數、Bessel 高階數值、奇數票息、pivot 兩種語法、Small 110/110、Medium 272/272、Large 388/388 累計強制函式名稱覆蓋、交易式重算、安全預算、取消、三種儲存策略,以及執行個體範圍自訂函式與整式後援。 函式名稱覆蓋不等於正式 Small/Medium/Large 一致性;DDE 是唯一明確的 SecurityExcludedFunctions 項目,固定傳回 #N/A 且不求值引數。完整正式一致性仍須以持續擴充的逐函式 corpus 證明所有限制、locale 與極端值。
RDF/metadata 結構性支援 封裝 RDF、文件 metadata 與未知 XML 內容保留。 RDF 推論器、SPARQL 伺服器或網路資源擷取。
指令碼與事件 結構性支援+僅保留 選配 Scripting 套件提供 ODF 1.0~1.4 巨集 CRUD、簽章、靜態政策與診斷。 在核心或 Scripting 套件內執行巨集;實際編譯/執行交由隔離的 LibreOffice/Python worker。
樣式、繪圖、簡報動畫 結構性支援 常用高階 API 與 XML 來回讀寫;未知合法內容盡量保留。 字型 shaping、分頁、動畫播放、SmartArt 佈局或像素級渲染。
資料庫、pivot、外部連結 結構性支援+僅保留 描述結構、連線 metadata、pivot 定義及外部連結的受控讀寫。 啟動資料庫驅動程式、執行 SQL、擷取網路內容或完整 pivot 重算。

刻意不支援

下列功能不是「尚未補完的 XML 節點」,而是刻意不放入核心的執行環境能力:

  • 巨集、Python、Java、UNO、SQL 或嵌入物件的程式碼執行。
  • 任意外部 URI 的自動下載、外部資料來源刷新與連線憑證管理。
  • 未經完整 corpus 證明的正式 OpenFormula Medium/Large 一致性,以及辦公軟體所有實作定義差異;核心已提供 272/272 與 388/388 強制函式名稱派送、矩陣公式寫回、Bessel 高階數值、奇數票息、pivot 兩種語法及資料表替代求值,但 DDE 維持明確的安全拒絕。
  • 字型 shaping、物理分頁、列印、動畫播放及像素級版面配置。
  • 憑證信任、撤銷可用性或惡意程式碼安全性的最終判定。
  • 通用 RELAX NG 編譯器;核心使用由官方 ODF 1.0~1.4 schema 產生的受控 metadata。

需要上述能力時,應使用明確的外部引擎或選配擴充套件,並把它視為不同的安全邊界。 例如 LibreOffice 可用於真機互通、重算及渲染驗收,但其結果不會被包裝成核心 ZIP/XML 驗證已保證的事項。

證據入口

規範來源以 OASIS 正式文本為準:ODF 1.0、1.1、1.2、1.3 及 ODF 1.4 正式標準