云海顽石 发表于 2008-12-14 11:26:46

在Microsoft Office InfoPath 2003中使用XML标准

<br>  InfoPath 使用和生成的输入与输出文件都符合 XML 标准,以提供与其他系统(包括应用程序、操作系统以及中间层和后端系统)的互操作性。综合地使用这些标准(例如 SOAP)使得与启用 XML Web 服务的系统共享数据变得非常简单。<br>  <br>  XML 标准用于创作从属于自定义 XML 架构的单个 XML 文档,以及设计 InfoPath 表单模板。例如,如图 1 所示,使用 XML 架构可以提供验证和结构化编辑,而使用 XSLT 可以提供能够以不同于 XML 文档的布局来表示 XML 数据的多个视图。<br>  <center> <img src=/bbs/attachments/computer/20081214/2008121411182584377801.gif ></center><br>  <center>图 1. 在编辑过程中如何使用 XML 标准</center><br>  <br>  <b>可扩展标记语言 (XML) 1.0 第二版</b><br>  XML 文档中使用的标记没有进行预定义。相反,万维网联合会 (W3C) XML 推荐指定了一套规则,用于创建自己的有意义的元素和属性集。例如,销售报表、法律表单以及卫生行业的报告都对数据内容和结构有不同的要求。使用 XML 可以针对每个行业的需要适当地定义该数据内容和结构。<br>  <br>  InfoPath 使用 XML 作为其原生数据格式进行输入和输出。在编辑 XML 文档时,InfoPath 允许您添加和删除从属于自定义 XML 架构的有效 XML 元素和属性。当您保存或提交 InfoPath 表单时,XML 文档会根据架构保持有效。使用 XML 标准可以打开和编辑由 XML Web 服务和启用 XML 的系统所使用的 XML 文档。<br>  <br>  XML 输入或输出文档可以是 XML 文件或 SOAP 数据包的一部分。XML 文档指定它基于的表单模板的位置。表单模板包含将 XML 文档用作表单所需的所有信息。<br>  <br>  XML 文档可以本地保存或者作为附件通过电子邮件发送给其他用户。例如,您可以从服务器获得 InfoPath 表单、添加或编辑数据、保存表单并通过电子邮件将其发送给某人以供查看,然后向服务器提交结果。这就启用了集中的端对端工作流,可支持各种业务方案。<br>  <br>  <b>XML 中的命名空间</b><br>  InfoPath 支持在一个 XML 文档中使用多个命名空间。例如,下面的 XML 文档是一个名为 Contoso 的虚拟公司的简化销售报表,说明了使用两个命名空间的情况。 和 元素定义在默认的命名空间中,该命名空间映射到 URI http://schemas.contoso.com/salesReport。 和 元素定义在独立的命名空间中,该命名空间使用 pricing 前缀并映射到 URI http://schemas.contoso.com/pricing。<br>  <br>  &lt;salesReport xmlns="http://schemas.contoso.com/salesReport"<br>  xmlns:pricing="http://schemas.contoso.com/pricing"><br>  &lt;customer><br>  &lt;product>Pentosel&lt;/product><br>  &lt;pricing:unitsSold>100&lt;/pricing:unitsSold><br>  &lt;pricing:pricePerUnit>35&lt;/pricing:pricePerUnit><br>  &lt;/customer><br>  &lt;/salesReport><br>  <br>  在另一个示例中,XML 命名空间用于多信息文本字段。多信息文本字段绑定到引用 XHTML 架构命名空间的 XML 数据元素。有关详细信息,请参阅本文的 XHTML 部分。<br>  <br>  <b>XML 架构 (XSD) 1.0</b><br>  InfoPath 支持 XML 架构 1.0,包括第 1 部分:结构和第 2 部分:数据类型。InfoPath 可以读取和使用自定义的 XML 架构。在设计表单模板时,InfoPath 在三种方案中使用现有的自定义 XML 架构或创建自定义 XML 架构:<br>  <br>  使用现有架构。您可以通过指向由遵循 XML 架构标准的工具所创建的自定义 XML 架构,来开始设计表单。XML 架构显示在 Data Source 任务窗格中。当您从架构节点拖放到布局区域(称为表单区域)时,会自动建议相应的用户界面 (UI) 控件。基于该架构,InfoPath 会生成用于结构化编辑和验证的规则。<br>  <br>  使用 Web 服务的现有架构。使用“数据源安装向导”,您可以从 WSDL 信息读取的 XML 架构开始设计一个表单模板。在读取 XML 架构后,用户界面使您能够创建一个表单模板,该模板可以生成遵循 SOAP 消息中的架构的 XML。当最终用户创建基于表单模板的表单时,该表单将生成适用于架构的 SOAP 消息。<br>  <br>  派生或定义架构。如果使用“数据源安装向导”打开一个 XML 文件,则 InfoPath 将生成一个说明该 XML 文件的 XML 架构。然后,您可以基于该架构创建一个表单模板。或者,您可以从头开始创建一个表单模板,在定义视图的同时定义架构。当您将一个 UI 控件映射到正在设计的架构的节点时,InfoPath 将自动提示您适合该架构节点的数据类型。InfoPath 将生成可用于其他业务进程的简单的标准 XML 架构。<br>  <br>  将数据输入表单时,XML 架构标准用于支持 XML 数据的验证并启用结构化编辑,如以下段落中所述。<br>  <br>  在编辑过程中,对自定义 XML 架构进行验证可以帮助用户创建结构化的 XML 数据,以供需要架构验证的 XML 数据的系统重复使用。InfoPath 可以交互式地对架构进行 XML 文档验证,并防止用户将其提交到处于无效状态的 Web 服务或其他数据源。要提交 XML 文档,它必须是完全有效的,包括数据类型。数据验证错误是由红色虚线框围起来的字段、验证屏幕提示(称为内嵌警报)或验证错误对话框(称为对话框警报)表示的。<br>  <br>  基于自定义 XML 架构的结构化层次编辑提供了一个简单的用户界面,用于添加和删除 XML 元素和属性,而不显示这些元素和属性。InfoPath 用户界面提供了一种编辑 DOM 树的简单方法,包括插入可选的子树、重复子树或者用一个子树代替另一个子树(其中,架构使用 )。在 InfoPath 中,DOM 树的结构始终是有效的。基于 XML 架构,InfoPath 可显示适用于选定字段或字段组的编辑操作。用户可以通过添加重复或可选的字段组、在字段中输入值或输入多信息文本,来编辑 XML 文档。如果架构允许向 DOM 树的节点添加节点,则视图中的字段组将具有一个下拉菜单,用户可以通过此菜单添加字段组或字段。<br>  <br>  <b>XML 路径语言 (XPath) 1.0</b><br>  XPath 标准的使用贯穿于整个 InfoPath,包括用于自定义验证、XSLT 视图、结构化编辑以及脚本化 DOM。<br>  <br>  InfoPath 具有三个验证级别。在编辑 XML 文档时,InfoPath 可根据关联的自定义架构确保文档始终有效。除了这种基于架构的验证以外,InfoPath 还允许您定义使用 XPath 的其他自定义验证规则。您还可以使用脚本编写来定义其他规则和业务逻辑。<br>  <br>  作为使用 XPath 标准定义自定义验证的一个示例,假设在某个销售报表中,您要求 Price 字段中的值不能大于 Maximum Price 字段中的值。假设基本的 XML 数据如下:<br>  <br>  &lt;salesReport><br>  &lt;customers><br>  &lt;customer><br>  &lt;price>1230.00&lt;/price><br>  &lt;/customer><br>  &lt;sales><br>  &lt;maxPrice>1000.00&lt;/maxPrice><br>  &lt;/sales><br>  &lt;/customers><br>  &lt;/salesReport><br>  <br>  您可以在 Price 字段上自动为自定义验证定义 XPath 表达式。自定义验证规则存储在表单模板的清单文件中。要定义该自定义验证,请在视图中选择 Price 字段,然后使用 Data Validation 对话框来选择 架构节点。然后,自定义验证的 XPath 表达式会自动且透明地进行构造,如下所示:<br>  <br>  &lt;xsf:customValidation><br>  &lt;xsf:errorCondition match="/salesReport/customers" expressionContext="customer/price"<br>  expression=". &gt; ../../sales/maxPrice"><br>  &lt;xsf:errorMessage type="modeless" shortMessage="Price exceeds maximum">&lt;/xsf:errorMessage><br>  &lt;/xsf:errorCondition><br>  &lt;/xsf:customValidation><br>  <br>  <b>可扩展样式表语言转换 (XSLT) 1.0</b><br>  XSLT 用于定义和显示 InfoPath 表单中 XML 数据的多个视图。一个表单可以包括多个视图,如概览视图和详细视图。一个视图可以包含字段组,而字段组又可以包含字段、多信息文本字段和其他字段组。字段组表示为嵌套部分,而字段表示为 UI 控件,例如文本框、复选框或下拉列表。InfoPath 生成的每个视图均被存储为独立的标准 XSLT 文件,该文件可以由其他业务进程重复使用。<br>  <br>  视图是基于 XSLT 的 DOM 数据树视图。当最终用户打开表单时,XSL 转换 (XSLT) 就会应用到 DOM 树,生成为用户显示 XML 文档的适当表现形式的各种视图。位于 XML 文档开头的元素可能会显示在视图的底部,也可能会以不同的排列方式显示在另一个视图中。<br>  <br>  当最终用户编辑 XML 文档(如添加可选或重复的字段组)时,DOM 中的数据将被修改。通过只将必需的 XSLT 部分应用到 DOM,InfoPath 能够以一种优化的方式重新显示已更改的视图部分。<br>  <br>  因为由 InfoPath 生成的 XSLT 严格遵循 XSLT 标准,所以任何标准的 XSLT 处理器都可以用来处理服务器上的 XSLT 文件,并且将 InfoPath 表单的只读视图作为 HTML 文档(可以在任何 Web 浏览器中显示)来提供。<br>  <br>  <b>XSLT 作为视图的理想基础</b><br>  视图的内容可以组织得与 XML 数据的结构迥然不同。要以对用户最有意义且易于读取和编辑数据的方式来提供数据,表单模板的设计人员必须能够以不同于 DOM 数据树中的顺序显示数据、忽略视图的某些数据、将相邻的数据树节点重新组织为独立的视图,以及将数据树不同部分的数据收集到单个视图中。<br>  <br>  因此,视图内容的顺序和结构必须独立于 DOM 树节点的顺序和结构。这种表现形式和数据的结构独立性要求视图中的分组字段和 DOM 树中的节点之间具有复杂、动态的绑定或映射关系。<br>  <br>  为了提供视图和数据之间的这种复杂映射,InfoPath 大量使用了 XSLT。XSLT 是一种强大的样式表语言,它支持复杂的数据转换,并用动态、灵活的内容表现形式提供了丰富的视图。在 SGML 和 XML 创作工具中,使用样式表是一种常见 <
页: [1]
查看完整版本: 在Microsoft Office InfoPath 2003中使用XML标准