pb9中数据窗口为XML 分类:雕虫小技2008.3.5 23:58 作者:笑熬糨糊 | 评论:0 | 阅读:0 从pb9开始,DataWindow开始支持直接从XML文档中导入数据,将检索到的数据保存为XML文档,以及使用XSL格式对象(XSL-FO) 的新功能。本文根据XML Features in PowerBuilder® 9.0相关内容节选翻译。这是第一部分。 1、 数据窗口导出引擎(DataWindow Export Engine) 它是数据窗口新增的组件,主要利用导出模板(Export Templates)作为基础结构来转换行数据到XML格式数据。引擎通过分析模板内容格式化数据,然后输出到XML形式。因为模板本身也是XML文档,所以它首先也需要被解析。导出引擎通过XML解析器(XML Parser)的服务来分析模板文件。在低层,XML解析通过C 和Apache Xerces实现,利用一个适配器接口(pbxerces90.dll)来访问Xerces解析器。 2、导出模板(Export Templates)一个导出模板定义了数据窗口元素(DataWindow elements)和XML对应关系。 下面的数据窗口对象可以使用在导出模板: • 列(Column) • 计算列(Computed Column) • 文本(Text Control) • 计算域(Computed Field) • 内嵌报表(Nested Report) 上面的数据窗口对象可以被映射到以下的XML构造 • 元素(Element) • 属性 (Attribute) 注意:注释(comments)和处理指令(processing instructions)可以被添加到模板的任意部分,但是不能和其建立映射。CDATA可以被添加到任何元素之内,但是也不能被映射。内嵌报表(Nested Report)只能和元素建立映射,不能是属性。 当导出引擎分析XML模板内容时,根据模板中已经定义的映射关系,将元素映射到实际的数据窗口控件和它们的文本内容。在映射操作成功完成后,引擎将借助XML Parser/Generator Engine的帮助,实现最后的XML语法生成。 导出引擎是数据窗口定义的一部分。一个数据窗口可以定义多个导出模板,模板作为数据窗口一个关联的对象被保存在PBL和SRD当中。这里引入一个新的数据窗口属性:Export.XML.UseTemplate,用来指定在某次导出操作中使用的模板对象名称。在程序运行(runtime)和设计(designtime)时都可以修改这个属性。XML导出模板的语法见列表1: 列表1: XML export template syntax (indented for clarity) export.xml( usetemplate="t_orders" metadatatype=2 savemetadata=1 template=( omment="Order items with external DTD" name="t_orders" publicid="c:\xmldw\orders.dtd" xml="
<!--l version=~"1.0~"
encoding=~"UTF-8~"
standalone=~"no~--> <!--CTYPE Orde-->
<!-- omitted for brevity -->
" ) ) 在PowerBuilder 9.0中数据窗口编辑画板新增了定义和编辑XML导出模板的视图。视图中用TreeView展示模板的结构,XML实体(entities)被表示成树的节点,并利用不同的图标和字体颜色区别实体的类型。文本数据被显示为各自元素节点的子节点,在这里,元素的结束标签(end-tags)以及标签定界符(Markup delimiters)被隐藏了,但都是存在的。 编辑时候,仅仅只有一个导出模板可以在视图中打开。 图1:数据窗口画板中的新建XML导出模板视图 表1:列举了导出模板中所有可能的XML构造 通过在treeview的右键点击弹出菜单操作,可以对模板进行新建、打开、编辑、删除等操作。 个别菜单项说明: 根节点弹出菜单项中: Schema Options… :弹出对话框,可以编辑当使用内嵌XML schema 模式的根节点元素 以及命名空间(namespace)的前缀(prefix)和URI. 导出模板细节部分(Export Template Detail Section) 如图1,我们可以看到一条灰线,该灰线的作用是分隔出模板的header section和detail section,有些类似于数据窗口编辑画板中的细带(detail band)。通过选择某个元素节点的“'Starts Detail”右键菜单项,该条线可以被重新定位到该位置。此元素节点就被指定为Detail 开始元素. 只有一个元素可以被指定为Detail 开始元素。根节点不能成为Detail 开始元素。在默认情况下,根节点元素的第一个子节点被指定为Detail 开始元素。在导出时候,只有Detail 开始元素以及它的兄弟和子节点会逐行迭代的生成,这个特点和数据窗口的header和detail区域类似。 在数据窗口元素和XML节点间建立映射(Mapping DataWindow Elements to XML Nodes) 当目标导出XML文档的结构确定后,就可以创建模板了。当选择New Default菜单项时,新建的模板将自动将元素映射到数据窗口列和计算列上。如果你想导出的XML文档的结构与默认模板不同,就需要自定义或者修改导出模板,方法是先修改节点标签,然后定位在某个节点上,在“DataWindow Control reference dialog”弹出对话框中选择对应的数据窗口控件对象。 注意:任何映射到XML元素的数据值,都会被当作字符,无视对应列其实际的数据类型(number, date等等)。 一、pb9中数据窗口的XML特性(三、导出XML) dataWindow 或者DataStore中的数据都可以导出到XML形式,方法和导出PSR或者TXT等格式类似。具体可以使用以下几种方法: 1、在数据窗口画板编辑状态,当Preview视图打开时候,选择Save Rows As菜单项; 2、使用SaveAs()函数 dw_1.SaveAs( "c:\foo\bar.xml", XML!, TRUE ) 3、使用数据窗口点符号属性方式 ls_xml = dw_1.object.datawindow.data.xml 4、使用数据窗口Describle函数 ls_xml = dw_1.Describe( "datawindow.data.xml") 二、与导出XML有关的DataWindow属性数据窗口XML相关属性决定了导出XML文档的相关形式,有以下属性: 1、导出时候使用哪一个模板 dw_1.Object.DataWindow.Export.XML.UseTemplate = "value" 2、导出时候元数据的类型(MetaDataExternal!, MetaDataInternal!),即DTD\Schema是内签在导出XML文件中,还是以单独的文件存在 dw_1.Object.DataWindow.Export.XML.MetaDataType = "value" 3、导出时候那种元数据的将被同时保存(XMLDTD!, XMLSchema!, XMLNone!) 注: DTD和XML Schema都用来定义XML中数据表示的语法格式。 dw_1.Object.DataWindow.Export.XML.SaveMetaData = "value" 4、导出时候XML header data在detail rows中是否重复(类似于按header data分组) dw_1.Object.DataWindow.Export.XML.HeadGroups = "value" 5、导出文件是否允许空白(white space)存在 dw_1.Object.DataWindow.Export.XML.IncludeWhiteSpace = "value" 一、导入XML方法(Importing XML) 符合格式的XML数据可以导入到DataWindow或者DataStore中,具体方法如下: 1、从XML文件中导入 dw_1.ImportFile( XML!, "c:\foo\bar.xml" {*} ) 2、从包含XML的字符串中导入 dw_1.ImportString( XML!, ls_xml {*} ) 3、从剪贴板中导入XML数据 ls_xml = dw_1.ImportClipboard() {*} 指函数的可选参数 二、与导入XML有关的DataWindow属性 1、Import.XML.UseTemplate 导入时候XML必须匹配哪一个模板 2、Import.XML.Trace 导入时是否将trace信息记录到文件中 3、Import.XML.TraceFile 导入时产生的trace信息所保存的文件名 如果Trace选项打开,而TraceFile没有定义,则产生的trace信息自动记录到当前目录下的pbxmtrc.log文件。 三、判断XML是否格式良好(well formed)和符合特定语法(complies with a specified grammar)可以在导入之前使用XMLParseFile 、XMLParseString 方法来判断XML是否well formed。 long ll_ret ll_ret = XMLParseFile("c:\temp\mydoc.xml") if ll_ret = 0 then dw_1.ImportFile("c:\temp\mydoc.xml")
分享到:
相关推荐
标题中的“PB解析XML字符串 把XML 变为数据窗口”指的是使用PowerBuilder(PB)这一编程工具,处理XML格式的数据,并将其转换成数据窗口对象的过程。数据窗口是PowerBuilder中的一个核心组件,用于显示、编辑和管理...
标题中的“PB9解析xml”指的是使用PowerBuilder 9(简称PB9)这一编程工具来解析XML文件。PowerBuilder是一款可视化的、面向对象的开发工具,尤其在数据窗口设计方面有较强的优势。XML(eXtensible Markup Language...
- PB9.0引入了一些新的样式和控件,如果数据窗口中使用了这些新特性,可能需要调整或替换为PB8.0支持的样式和控件。 5. **脚本兼容性**: - 检查数据窗口的脚本部分,确保所有的函数调用、变量声明和逻辑判断在PB...
这个PBL可能包含了执行PB数据窗口到XML转换的核心函数和对象。 3. gpl.txt:这个文件可能是GNU General Public License的文本,表明这个程序或库遵循GPL许可,这意味着软件源代码是开放的,允许用户自由使用、修改和...
这种方法对于需要将数据库中的数据转换为XML格式,以便于数据交换、报告生成或者接口通信的情况非常有用。XML(eXtensible Markup Language)是一种标记语言,它允许数据以结构化的方式存储和传输。 在描述中提到,...
在这种情况下,理解如何将PB9中的数据窗口导出并转换为PB7格式就显得尤为重要。 ### 转换步骤详解 #### 步骤一:准备PB9数据窗口导出文件 在进行转换之前,需要先准备好PB9的数据窗口导出文件。通常,这一步涉及...
数据窗口所属PB的版本号,如果想把高版本的datawindow导入低版本的PB中要修改此数字; 2.datawindow()行 通常用修改processing属性,可以把你的数据窗口由grid变成freeform或其它类型 例:freeform:0 grid:1 3.header...
本教程将详细讲解如何在PB9中操作XML,以实现数据的读取、写入和解析。 1. **XML基础**: - XML的结构:XML文档由元素、属性、文本内容、注释和处理指令组成。元素是XML文档的核心,它们通过开始标签和结束标签...
1. **版本声明**:首先,文件开头会声明使用的PB版本,如“release12”,这有助于确保所编辑的数据窗口能够在目标PB环境中正确运行。 ```plaintext ݴԴ(d_dbit_example.srd,ݿΪPBԴEASDemoDBV120)1.һ:release...
本资源“pb9数据窗口美化源码.rar”是针对PowerBuilder 9(简称PB9)的一个实用示例,它涉及到数据窗口(DataWindow)的美化技术,特别是对于grid数据窗口的改进。数据窗口是PowerBuilder中的核心组件,用于展示和...
PB11.5版本数据窗口转word 用法:f_dw2doc(dw) 使用时直接import到项目中即可
PB11.5是PowerBuilder的一个版本,它是一款强大的数据窗口和数据库应用程序开发工具。在PB11.5中,XML(eXtensible Markup Language)解析是一个重要的功能,允许开发者处理XML数据并将其集成到应用程序中。XML是一...
通过数据窗口的XML功能,可以将数据窗口的对象转换为XML,或将XML数据导入到数据窗口。 8. **性能优化**:由于XML文件可能很大,处理时需要注意性能优化,如分批读取、缓存策略、合理设计XML结构以减少解析复杂度等...
"标签"中的“pb11 webservice 数据窗口”进一步强调了这个工具的核心功能,即在PB11环境下,对Web服务和数据窗口之间的交互进行优化。这意味着该工具可以帮助开发者更方便地整合PB11的数据窗口与Web服务接口,使得...
通过XML导入,开发者可以将XML文件中的数据转换为数据窗口可以理解的格式,方便进一步处理。 3. **XML导入到DataWindow**:这是一个具体的过程,涉及将XML文件中的数据映射到数据窗口对象。首先,需要创建一个数据...
数据窗口是PB中的一个重要组件,用于显示和编辑数据库数据,但在处理XML时,它也可以作为一个数据源,将XML数据转换为表格形式,方便用户交互。 3. **PB9与PBDOM**:“pb9应用pbdom,急 - PowerBuilder - 开发者参考...
这个“pb12.6数据窗口直接生成Word excel例子(源码).zip”压缩包提供了关于如何利用PowerBuilder 12.6的数据窗口功能创建Word文档和Excel表格的示例代码。下面我们将详细探讨这个知识点。 1. **数据窗口...
通过设置数据窗口的源类型为XML,可以将XML数据加载到数据窗口中,然后进行显示、编辑或保存操作。 4. **PB的XML函数**:PB提供了多种内置函数,如`XMLParse()`、`XMLGetNodeValue()`、`XMLCreateNode()`等,用于...
- **对象**:数据窗口中的每个数据项都可以被视为一个对象,这些对象可以被单独控制和操作。 - **控件**:数据窗口控件用于增强用户界面的功能,如按钮、文本框等。 ##### 1.4 控件与对象交互 数据窗口中的控件与...
本话题将深入探讨“数据窗口导出工具”,这是一种专门针对PB数据窗口设计的实用软件,能够帮助用户方便地将数据窗口中的数据导出为各种格式,以满足数据分析、报告生成或数据共享的需求。 首先,我们来理解一下数据...