2.2.1、XML
XML 的 基 本 觀 念 , 簡 言 之 就 是 文 件 內 容 由 一 組 元 素 單 位 所 構 成。這 些 元 素 單 位 係 以 一 系 列 的 標 籤<tag>加 以 界 定, XML 就 是 附 帶 一 系 列 標 籤 和 夾 雜 資 料 內 容 的 文 件 。 標 籤 的 使 用 , 類 似 HTML,然 而 由 於 HTML 的 設 計 只 為 了 文 件 在 瀏 覽 器 上 的 呈 現 , 其 標 籤 是 固 定 的 , 而 XML 的 標 籤 是 可 以 自 行 不 斷 延 伸 及 定 義 的 。XML 中 的 ”X”, 所 指 的 就 是 延 伸 的 可 能 性 [5]。
目 前 XML 語 言 的 應 用 已 是 資 訊 界 的 趨 勢 , 尤 其 在 企 業 界 , 企 業 的 資 訊 系 統 在 應 用 上 , 常 需 要 從 各 個 不 同 的 地 方 收 集 或 分 散 各 種 資 料 , 這 些 不 同 的 系 統 彼 此 互 相 連 接 , 彼 此 交 換 及 共 享 資 料 。 而 企 業 之 所 以 使 用 XML, 最 主 要 是 因 為 XML 提 供 了 下 列 兩 大 功 能 :
1. 不 同 應 用 系 統 間 的 資 料 分 享 與 溝 通 。 2. 能 自 訂 資 料 的 表 現 方 式 。
企 業 資 訊 系 統 發 展 已 有 多 年 , 但 在 過 去 的 發 展 當 中 , 不 論 是 採 用 單 層 式 或 多 層 式 的 架 構 , 系 統 和 系 統 之 間 卻 很 難 進 行 溝 通 , 而 造 成 一 座 座 的 「 資 訊 孤 島 」。 然 而 , 隨 著 企 業 的 大 型 化 及 電 子 商 務 的 發 展 , 建 立 一 套 系 統 與 系 統 之 間 能 交 換 資 料 的 方
法,變 成 是 一 種 迫 切 的 需 求。在 以 往 同 一 供 應 鏈 的 企 業 使 用 EDI 的 方 式 彼 此 交 換 資 料,但 EDI 仍 是 一 種 封 閉 式 的 交 換 方 式,而 且 所 需 的 軟 、 硬 體 設 備 成 本 高 昂 , 並 非 一 般 企 業 所 能 接 受 , 而 XML 的 提 出 , 無 疑 的 讓 電 子 商 務 的 未 來 充 滿 希 望 。 XML 有 別
於 EDI, 因 它 是 一 種 開 放 式 的 架 構 , 兩 系 統 之 間 只 要 依 循 相 同 的 結 構 定 義(DTD, XML Schema),彼 此 便 能 互 相 交 換 資 料。因 此 , 和 EDI 相 較 之 下 , 顯 得 相 當 的 有 彈 性 。 而 且 , 使 用 XML 並 不 需 要 額 外 的 硬 體 成 本 , 只 需 要 一 個 XML 的 剖 析 器 , 就 可 以 進 行 XML 的 解 析 工 作 , 這 也 是 XML 另 一 個 誘 人 的 地 方 [6]。
雖 然 ,XML 有 許 多 的 好 處 , 可 是 要 把 現 有 的 資 料 庫 及 資 訊 系 統 轉 換 成 XML-Based,確 實 有 相 當 的 困 難。但 是 要 讓 現 有 的 資 料 庫 及 資 訊 系 統 「 慬 XML」, 卻 不 是 一 件 困 難 的 事 。 XML 資 料 是 高 度 結 構 性 的 , 從 簡 單 的 單 一 元 素 , 到 複 雜 、 多 層 次 的 結 構。透 過 剖 析 器 的 轉 換,可 以 將 現 有 結 構 化 的 資 料,轉 換 成 XML 的 格 式 傳 送 , 同 樣 的 , 通 訊 之 彼 方 也 可 以 將 之 轉 換 成 另 一 種 可 接 受 的 型 式 , 而 達 到 資 料 分 享 與 溝 通 的 工 作[7]。
XML 尚 可 以 透 過 XSL 處 理 器 及 格 式 化 物 件 (Formatting Object), 將 XML 資 料 轉 換 成 各 種 客 戶 所 想 要 的 形 式 呈 現 , 使 得 資 料 的 管 理 顯 得 非 常 有 彈 性 及 效 率 , 同 時 這 也 是 XML 在 電
子 商 務 上 達 到 客 製 化 的 重 要 技 術[8]。
本 研 究 採 用 XML 作 為 建 築 物 生 命 週 期 共 享 資 訊 模 型 的 主 要 原 因 有 :
a.XML 具 物 件 導 向 的 特 質:在 描 述 建 築 物 生 命 週 期 中 各 項 資 訊 的 關 係 及 建 構 資 訊 模 型 時 , 更 能 切 合 實 際 。
b.XML 符 合 網 際 網 路 傳 輸 協 定:XML 即 專 為 資 料 要 在 網 際 網 路 上 跨 平 台 互 相 交 換 而 發 展 出 來 的。因 此,XML 文 件 可 以 輕 易 的 穿 透 防 火 牆 , 而 不 用 修 改 現 有 的 網 路 安 全 政 策 。
c.XML 只 描 述 資 料 : XML 是 一 種 中 性 的 母 語 言 (Metadata), 除 了 能 表 達 資 訊 的 語 意 以 外 , 不 需 額 外 的 訊 息 。
2.2.2 XML Schema
如 前 一 節 所 述 兩 個 資 訊 系 統 間 只 要 使 用 相 同 的 結 構 描 述 , 便 可 以 互 相 進 行 資 訊 溝 通 , 由 此 可 知 相 同 的 結 構 描 述 是 溝 通 的 基 礎 , 結 構 描 述 是 供 資 訊 溝 通 進 行 中 的 一 個 驗 證 機 制 。 早 期 在 XML 1.0 的 時 候 [9], 文 件 的 結 構 描 述 是 透 過 DTD 來 進 行,DTD 雖 然 提 供 了 強 大 的 基 礎,但 其 本 身 並 非 根 源 於 XML,
這 也 使 得 其 在 運 用 上 產 生 缺 陷 。 所 以 ,W3C 制 定 了 較 DTD 更 完 備 的 XML Schema 定 義 語 言 [10,11,12], XML Schema 除 了 提 供 原 來 DTD 的 功 能 之 外 , XML Schema 本 身 也 是 一 份 遵 循 XML 語 法 格 式 的 XML 文 件,所 以 XML Schema 本 身 也 可 以 接 受 驗 證 。
其 實 資 訊 科 技 早 就 運 用 到 Schema 的 技 術 理 念 [13], 例 如 資 料 庫 的 運 用。 在 以 往 格 式 的 檢 查 上 大 都 必 須 經 由 應 用 程 式 本 身 進 行 驗 證 , 但 這 造 成 了 資 訊 的 無 法 共 享 , 因 為 除 了 所 使 用 的 特 定 應 用 程 式 外 , 沒 有 人 會 知 道 它 的 文 件 格 式 為 何 。XML Schema 的 功 能 即 在 此 透 過 使 用 相 同 的 XML Schema, 透 過 適 當 的 宣 告 及 剖 析 器 的 運 作 , 不 同 的 應 用 程 式 可 以 知 道 , 並 對 不 同 的 文 件 進 行 查 驗 工 作 , 進 而 構 成 資 訊 的 互 換 及 共 享 。XML Schema 的 運 用 , 也 是 本 研 究 在 進 行 時 的 重 點 。 以 下 即 為 本 研 究 所 建 置 的 XML Schema 的 一 小 部 份 :
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="" id="base">
<xs:complexType name="日期">
<xs:sequence>
<xs:element name="年" type="xs:gYear"/>
<xs:element name="月" type="xs:gMonth"/>
<xs:element name="日" type="xs:gDay"/>
</xs:sequence>
</xs:complexType>
………
除 此 之 外 ,XML Schema 規 格 中 尚 包 含 了 在 XML 文 件 中 關 連 至 不 同 元 素 或 屬 性 的 能 力 , 就 像 關 聯 式 資 料 庫 透 過 主 鍵 與 外 來 鍵 的 限 制 提 供 了 聯 結 資 料 表 的 能 力 一 樣 。 這 些 功 能 是 透 過 unique、 key、 keyref、 selector、 firld 等 元 素 來 達 成 [14]。
2.2.3、XPATH
如 果 想 要 利 用 XML 做 事 , 第 一 件 事 就 是 必 須 要 找 到 所 要 的 資 料 , 而 XML 中 XPath 是 擔 任 此 一 功 能 的 重 要 角 色 , 在 XPath 尚 未 發 展 之 前,所 有 XML 的 應 用 都 只 是 在 資 料 描 述 上 。
因 此 ,XPath 是 XML 在 實 務 運 用 上 , 相 當 重 要 的 一 環 。 利 用 XPath 可 以 找 到 XML 文 件 中 的 文 字 資 料 、 元 素 、 屬 性 、 和 其
他 資 訊[15]。 Xpath 是 一 種 精 細 而 複 雜 的 語 言 , 提 供 詳 細 的 資 料 查 詢 機 制 , 它 將 成 為 XML 系 統 裡 的 基 石 。 XPath 除 了 提 供 資 料 查 詢 定 位 的 功 能 之 外,很 多 的 時 候 與 XSL 的 運 作,有 很 大 的 關 連 性 。 在 文 件 樣 式 套 用 的 過 程 中 , 合 理 的 做 法 是 先 要 找 到 被 參 考 到 的 那 一 章 節 之 後 , 再 將 樣 式 表 套 用 上 去 , 而 「 找 」 的 過 程 , 就 必 須 借 助 XPath 的 功 能 了 。 另 外 , 如 果 我 要 對 一 份 XML 文 件 進 行 運 算,也 必 須 要 能「 找 」到 相 關 的 資 料,才 能 進
行 運 算 。 由 此 可 見 ,XPath 在 XML 的 運 用 上 是 非 常 重 要 的 。 了 解 XPath 對 於 本 研 究 在 進 行 系 統 設 計 之 時,相 關 的 查 詢 及 格 式 化 工 作 , 將 有 很 大 的 助 益 。
在 XPath 的 運 作 上, XML 文 件 係 被 視 為 一 個 家 族,其 中 有 父 元 素 也 有 子 元 素 , 父 子 之 間 有 繼 承 關 係 存 在 , 透 過 對 家 族 的 分 類 ,XPath 可 以 在 XML 文 件 中 進 行 巡 覽 及 定 位 , 以 找 到 文 件 中 的 特 定 資 訊。而 其 路 徑 的 表 示 方 法,和 Windows 及 UNIX 的 路 徑 表 示 法 是 非 常 類 似 的 。 例 如 :
/建築物/id/起造人/*
表 示 建 築 物 節 點 下 的 id 節 點 下 的 起 造 人 節 點 下 的 所 有 屬 性。餘 此 類 推,同 時 XPath 亦 提 供 許 多 的 運 算 函 數,使 得 XPath 的 功 能 就 如 同 的 一 個 小 型 的 程 式 語 言 一 般,關 於 XPath 的 文 獻 相 當 多 , 詳 請 參 照 W3C 公 佈 的 相 關 文 件 。