熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows系統管理 >> 正文

在Microsoft Office InfoPath 2003中使用XML標准

2013-11-11 21:41:29  來源: Windows系統管理 

  InfoPath 使用和生成的輸入與輸出文件都符合 XML 標准以提供與其他系統(包括應用程序操作系統以及中間層和後端系統)的互操作性綜合地使用這些標准(例如 SOAP)使得與啟用 XML Web 服務的系統共享數據變得非常簡單
  
  XML 標准用於創作從屬於自定義 XML 架構的單個 XML 文檔以及設計 InfoPath 表單模板例如如圖 所示使用 XML 架構可以提供驗證和結構化編輯而使用 XSLT 可以提供能夠以不同於 XML 文檔的布局來表示 XML 數據的多個視圖
  
 

  
在編輯過程中如何使用 XML 標准

  
  可擴展標記語言 (XML) 第二版
  XML 文檔中使用的標記沒有進行預定義相反萬維網聯合會 (WC) 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 部分應用到 DOMInfoPath 能夠以一種優化的方式重新顯示已更改的視圖部分
  
  因為由 InfoPath 生成的 XSLT 嚴格遵循 XSLT 標准所以任何標准的 XSLT 處理器都可以用來處理服務器上的 XSLT 文件並且將 InfoPath 表單的只讀視圖作為 HTML 文檔(可以在任何 Web 浏覽器中顯示)來提供
  
  XSLT 作為視圖的理想基礎
  視圖的內容可以組織得與 XML 數據的結構迥然不同要以對用戶最有意義且易於讀取和編輯數據的方式來提供數據表單模板的設計人員必須能夠以不同於 DOM 數據樹中的順序顯示數據忽略視圖的某些數據將相鄰的數據樹節點重新組織為獨立的視圖以及將數據樹不同部分的數據收集到單個視圖中
  
  因此視圖內容的順序和結構必須獨立於 DOM 樹節點的順序和結構這種表現形式和數據的結構獨立性要求視圖中的分組字段和 DOM 樹中的節點之間具有復雜動態的綁定或映射關系
  
  為了提供視圖和數據之間的這種復雜映射InfoPath 大量使用了 XSLTXSLT 是一種強大的樣式表語言它支持復雜的數據轉換並用動態靈活的內容表現形式提供了豐富的視圖在 SGML 和 XML 創作工具中使用樣式表是一種常見
From:http://tw.wingwit.com/Article/os/xtgl/201311/8992.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.