InfoPath 使用和生成的輸入與輸出文件都符合 XML 標准
以提供與其他系統(包括應用程序
操作系統以及中間層和後端系統)的互操作性
綜合地使用這些標准(例如 SOAP)使得與啟用 XML Web 服務的系統共享數據變得非常簡單
XML 標准用於創作從屬於自定義 XML 架構的單個 XML 文檔
以及設計 InfoPath 表單模板
例如
如圖
所示
使用 XML 架構可以提供驗證和結構化編輯
而使用 XSLT 可以提供能夠以不同於 XML 文檔的布局來表示 XML 數據的多個視圖
圖 在編輯過程中如何使用 XML 標准 可擴展標記語言 (XML) 第二版 XML 文檔中使用的標記沒有進行預定義
相反
萬維網聯合會 (W
C) XML 推薦指定了一套規則
用於創建自己的有意義的元素和屬性集
例如
銷售報表
法律表單以及衛生行業的報告都對數據內容和結構有不同的要求
使用 XML 可以針對每個行業的需要適當地定義該數據內容和結構
InfoPath 使用 XML 作為其原生數據格式進行輸入和輸出
在編輯 XML 文檔時
InfoPath 允許您添加和刪除從屬於自定義 XML 架構的有效 XML 元素和屬性
當您保存或提交 InfoPath 表單時
XML 文檔會根據架構保持有效
使用 XML 標准可以打開和編輯由 XML Web 服務和啟用 XML 的系統所使用的 XML 文檔
XML 輸入或輸出文檔可以是 XML 文件或 SOAP 數據包的一部分
XML 文檔指定它基於的表單模板的位置
表單模板包含將 XML 文檔用作表單所需的所有信息
XML 文檔可以本地保存或者作為附件通過電子郵件發送給其他用戶
例如
您可以從服務器獲得 InfoPath 表單
添加或編輯數據
保存表單並通過電子郵件將其發送給某人以供查看
然後向服務器提交結果
這就啟用了集中的端對端工作流
可支持各種業務方案
XML 中的命名空間 InfoPath 支持在一個 XML 文檔中使用多個命名空間
例如
下面的 XML 文檔是一個名為 Contoso 的虛擬公司的簡化銷售報表
說明了使用兩個命名空間的情況
和 元素定義在默認的命名空間中
該命名空間映射到 URI
和 元素定義在獨立的命名空間中
該命名空間使用 pricing 前綴並映射到 URI
<salesReport xmlns=
xmlns:pricing=
>
<customer>
<product>Pentosel</product>
<pricing:unitsSold>
</pricing:unitsSold>
<pricing:pricePerUnit>
</pricing:pricePerUnit>
</customer>
</salesReport>
在另一個示例中
XML 命名空間用於多信息文本字段
多信息文本字段綁定到引用 XHTML 架構命名空間的 XML 數據元素
有關詳細信息
請參閱本文的 XHTML 部分
XML 架構 (XSD) InfoPath 支持 XML 架構
包括第
部分
結構和第
部分
數據類型
InfoPath 可以讀取和使用自定義的 XML 架構
在設計表單模板時
InfoPath 在三種方案中使用現有的自定義 XML 架構或創建自定義 XML 架構
使用現有架構
您可以通過指向由遵循 XML 架構標准的工具所創建的自定義 XML 架構
來開始設計表單
XML 架構顯示在 Data Source 任務窗格中
當您從架構節點拖放到布局區域(稱為表單區域)時
會自動建議相應的用戶界面 (UI) 控件
基於該架構
InfoPath 會生成用於結構化編輯和驗證的規則
使用 Web 服務的現有架構
使用
數據源安裝向導
您可以從 WSDL 信息讀取的 XML 架構開始設計一個表單模板
在讀取 XML 架構後
用戶界面使您能夠創建一個表單模板
該模板可以生成遵循 SOAP 消息中的架構的 XML
當最終用戶創建基於表單模板的表單時
該表單將生成適用於架構的 SOAP 消息
派生或定義架構
如果使用
數據源安裝向導
打開一個 XML 文件
則 InfoPath 將生成一個說明該 XML 文件的 XML 架構
然後
您可以基於該架構創建一個表單模板
或者
您可以從頭開始創建一個表單模板
在定義視圖的同時定義架構
當您將一個 UI 控件映射到正在設計的架構的節點時
InfoPath 將自動提示您適合該架構節點的數據類型
InfoPath 將生成可用於其他業務進程的簡單的標准 XML 架構
將數據輸入表單時
XML 架構標准用於支持 XML 數據的驗證並啟用結構化編輯
如以下段落中所述
在編輯過程中
對自定義 XML 架構進行驗證可以幫助用戶創建結構化的 XML 數據
以供需要架構驗證的 XML 數據的系統重復使用
InfoPath 可以交互式地對架構進行 XML 文檔驗證
並防止用戶將其提交到處於無效狀態的 Web 服務或其他數據源
要提交 XML 文檔
它必須是完全有效的
包括數據類型
數據驗證錯誤是由紅色虛線框圍起來的字段
驗證屏幕提示(稱為內嵌警報)或驗證錯誤對話框(稱為對話框警報)表示的
基於自定義 XML 架構的結構化層次編輯提供了一個簡單的用戶界面
用於添加和刪除 XML 元素和屬性
而不顯示這些元素和屬性
InfoPath 用戶界面提供了一種編輯 DOM 樹的簡單方法
包括插入可選的子樹
重復子樹或者用一個子樹代替另一個子樹(其中
架構使用 )
在 InfoPath 中
DOM 樹的結構始終是有效的
基於 XML 架構
InfoPath 可顯示適用於選定字段或字段組的編輯操作
用戶可以通過添加重復或可選的字段組
在字段中輸入值或輸入多信息文本
來編輯 XML 文檔
如果架構允許向 DOM 樹的節點添加節點
則視圖中的字段組將具有一個下拉菜單
用戶可以通過此菜單添加字段組或字段
XML 路徑語言 (XPath) XPath 標准的使用貫穿於整個 InfoPath
包括用於自定義驗證
XSLT 視圖
結構化編輯以及腳本化 DOM
InfoPath 具有三個驗證級別
在編輯 XML 文檔時
InfoPath 可根據關聯的自定義架構確保文檔始終有效
除了這種基於架構的驗證以外
InfoPath 還允許您定義使用 XPath 的其他自定義驗證規則
您還可以使用腳本編寫來定義其他規則和業務邏輯
作為使用 XPath 標准定義自定義驗證的一個示例
假設在某個銷售報表中
您要求 Price 字段中的值不能大於 Maximum Price 字段中的值
假設基本的 XML 數據如下
<salesReport>
<customers>
<customer>
<price>
</price>
</customer>
<sales>
<maxPrice>
</maxPrice>
</sales>
</customers>
</salesReport>
您可以在 Price 字段上自動為自定義驗證定義 XPath 表達式
自定義驗證規則存儲在表單模板的清單文件中
要定義該自定義驗證
請在視圖中選擇 Price 字段
然後使用 Data Validation 對話框來選擇 架構節點
然後
自定義驗證的 XPath 表達式會自動且透明地進行構造
如下所示
<xsf:customValidation>
<xsf:errorCondition match=
/salesReport/customers
expressionContext=
customer/price
expression=
>
/
/sales/maxPrice
>
<xsf:errorMessage type=
modeless
shortMessage=
Price exceeds maximum
></xsf:errorMessage>
</xsf:errorCondition>
</xsf:customValidation>
可擴展樣式表語言轉換 (XSLT) XSLT 用於定義和顯示 InfoPath 表單中 XML 數據的多個視圖
一個表單可以包括多個視圖
如概覽視圖和詳細視圖
一個視圖可以包含字段組
而字段組又可以包含字段
多信息文本字段和其他字段組
字段組表示為嵌套部分
而字段表示為 UI 控件
例如文本框
復選框或下拉列表
InfoPath 生成的每個視圖均被存儲為獨立的標准 XSLT 文件
該文件可以由其他業務進程重復使用
視圖是基於 XSLT 的 DOM 數據樹視圖
當最終用戶打開表單時
XSL 轉換 (XSLT) 就會應用到 DOM 樹
生成為用戶顯示 XML 文檔的適當表現形式的各種視圖
位於 XML 文檔開頭的元素可能會顯示在視圖的底部
也可能會以不同的排列方式顯示在另一個視圖中
當最終用戶編輯 XML 文檔(如添加可選或重復的字段組)時
DOM 中的數據將被修改
通過只將必需的 XSLT 部分應用到 DOM
InfoPath 能夠以一種優化的方式重新顯示已更改的視圖部分
因為由 InfoPath 生成的 XSLT 嚴格遵循 XSLT 標准
所以任何標准的 XSLT 處理器都可以用來處理服務器上的 XSLT 文件
並且將 InfoPath 表單的只讀視圖作為 HTML 文檔(可以在任何 Web 浏覽器中顯示)來提供
XSLT 作為視圖的理想基礎 視圖的內容可以組織得與 XML 數據的結構迥然不同
要以對用戶最有意義且易於讀取和編輯數據的方式來提供數據
表單模板的設計人員必須能夠以不同於 DOM 數據樹中的順序顯示數據
忽略視圖的某些數據
將相鄰的數據樹節點重新組織為獨立的視圖
以及將數據樹不同部分的數據收集到單個視圖中
因此
視圖內容的順序和結構必須獨立於 DOM 樹節點的順序和結構
這種表現形式和數據的結構獨立性要求視圖中的分組字段和 DOM 樹中的節點之間具有復雜
動態的綁定或映射關系
為了提供視圖和數據之間的這種復雜映射
InfoPath 大量使用了 XSLT
XSLT 是一種強大的樣式表語言
它支持復雜的數據轉換
並用動態
靈活的內容表現形式提供了豐富的視圖
在 SGML 和 XML 創作工具中
使用樣式表是一種常見
From:http://tw.wingwit.com/Article/os/xtgl/201311/8992.html