Technical Blog Post
Abstract
XML Toolkit for IBM i 简介
Body
XML Toolkit for IBM i 是IBM i上的软件产品,用于提供在IBM i 上的XML解析及XSL转换的功能。XML Toolkit for IBM i 主要分为两个子产品,分别为5733XT1 和 5733XT2。其中5733XT2是IBM i上版本最新的XML解析器及XSL转换器产品,它比5733XT1提供更稳定,性能更优的服务。5733XT1 在v6r1及以后的系统版本上已不再支持使用,我们推荐用户使用5733XT2作为首选的XML解析器在V5R3以后的IBM i系统上。在这里我们将具体介绍5733XT2的内容。
5733XT2提供了支持C++的XML解析器(XML4C),支持Procedural的XML解析器(XML4PR) 以及支持C++的XS转换器(XSL4C)。在该产品下包含若干个安装选项,每个安装选项中包含若干个Service Program,分别支持不同要求的XML解析器及XSL转换器。产品中所支持的XML解析器及XSL转换器均为符合W3C XML规范的验证解析器(Validating parser )。通过iSeries上的XML4C及XML4PR这两款XML解析器,用户可以在IBM i 上编写可操作XML数据的 ILE RPG, C, COBOL or C++ 应用程序,同样的通过XSL4C转换器,用户可以在IBM i 上编写C,C++程序将XML文档转换成其他格式(如HTML等)。
在完成安装选项4到7后,会有很多新的Service Program,这些新的Service Program提供与选项1 和 2中相同的功能,但是对一些应用能提供更好的性能,不同选项中的Service Program的名字是类似的,有的会有一个后缀字母不同,用来标识teraspace选项是否在改Service Program中支持。需要指出的是,teraspace 版本的Service Program 只在C++ XML解析器和C/C++ XSL转换器中支持,在RPG和Cobolde的应用程序调用以及C XML解析器的调用只支持non-teraspace的模式。 在这里我们列举了一个列表用来帮助用户决定使用哪个Service Program。选项4,5 与 6,7所对应的XML Toolkit的代码是完全一致的,但是选项6,7对应的编译选项已完全转换为IBM i V6R1 及更新版本的OS所对应的要求,虽然选项4,5也能在IBM i V5R3以后的版本中正常使用,但是我们还是推荐在OS版本为V6R1以后的IBM i机器上使用选项6,7.
安装选项 | 支持的系统版本 | 选项描述 | 对应库文件 | 包含的Service Program |
1 | V5R4, V6R1, V7R1 | XML Parser version 5.6 and XSL version 1.10 | QXMLLIB | QXML4C560 QXML4PR560 QXSL4C110 |
2 | XML Parser version 5.6 and XSL version 1.10 开发环境,包含样RPG,Cobol,C,C++示例代码 C/C++ 头文件IFS路径: /qibm/proddata/xmltoolkit2/xml_5_6_0 | QXMLLIB QXMLDEV560 QXSLDEV110 | | |
3 | XML Scripting for IBM System i5 | QXMLLIB | QXMLSCR10 | |
4 | V5R3, V5R4, V6R1, V7R1 | XML Parser version 5.6.3 and XSL version 1.10.2 | QXMLLIBV4 | QXML4C563 QXML4C563T QXML4C563U QXML4PR563 QXSL4C112 QXSL4C112T QXSL4C112U |
5 | XML Parser version 5.6.3 and XSL version 1.10.2 开发环境,包含样RPG,Cobol,C,C++示例代码 C/C++ 头文件IFS路径: /qibm/proddata/xmltoolkitv4/xml_5_6_3 | QXMLLIBV4 QXML563V4 QXSL112V4 | | |
6 | V6R1, V7R1 | XML Parser version 5.6.3 and XSL version 1.10.2 | QXMLLIBV6 | QXML4C563 QXML4C563T QXML4C563U QXML4PR563 QXSL4C112 QXSL4C112T QXSL4C112U |
7 | XML Parser version 5.6 and XSL version 1.10.2 开发环境,包含样RPG,Cobol,C,C++示例代码 C/C++ 头文件IFS路径: /qibm/proddata/xmltoolkitv6/xml_5_6_3 | QXMLLIBV6 QXML563V6 QXSL112V6 | |
Service Program 后缀字母 | 样例 | 意义 |
none | QXML4C563 QXSL4C112 | 这些是标准的 service programs既可以被teraspace模式的 应用程序调用,也可以被 non-teraspace模式的应用程序所调用,但是这些service programs本身并没有使用teraspace的存储模式,也没有应用64位的指针。 |
‘T’ | QXML4C563T QXSL4C112T | 这些是teraspace模式的service program,它们包含了C/C++ 64 位运行环境并且要求调用他们的应用程序也必须使用64bit的运行环境及teraspace相关的编译选项。需要说的是,这些service program在一般情况下能够提供更佳的运行性能。 |
‘U’ | QXML4C563U QXSL4C112U | 这些service program类似与‘T’的那些service program,但是他们并不包含C/C++ 64 位运行环境。它们既可以被teraspace模式的 应用程序调用,也可以被 non-teraspace模式的应用程序所调用。因为他们并不要求用64位的运行环境,也就无法达到与‘T’版本的那些service program一致的运行性能。并且我们推荐在编译调用该service program的应用程序时添加teraspace的编译选项。 |
XML4C
XML4C是用C++的可移植子集实现的带验证的XML解析器,应用程序可以非常方便的通过它实现对XML数据的读写。它包含了一个公共的函数库提供对XML文档的解析,生成,操作和验证等功能。XML4C完全符合XML1.0的要求和其他一些相关的标准规范,在下面会具体列出这些标准:
· XML 1.0(第三版),W3C Recommendation
· XML 1.1(第一版),W3C Recommendation
· DOM Level 1 Specification,W3C Recommendation
· DOM Level 2 Core Specification,W3C Recommendation
· DOM Level 2 Traversal and Range Specification, W3C Recommendation
· SAX 1.0 and SAX 2.0
· Namespaces in XML, W3C Recommendation
· Namespaces in XML 1.1, W3C Recommendation
· XML Schema Part 1: Structure, W3C Recommendation
· XML Schema Part 2: Datatyoes, W3C Recommendation
XML4PR
XML4PR 是一个带验证的XML解析器,它使得Procedural Language可以完成对XML4C解析器接口的调用。通过它ILE C, RPG和COBOL程序可以在iSeries上方便的调用XML解析器,实现对XML文档的读写。XML4PR是一个Service Program提供了对XML文档进行解析,生成,处理和验证的函数接口。它支持DOM level 1 和SAX level 1规范中定义的API,同时也支持部分DOM level 2 和 SAX level 2规范中所定义的API, 它也支持通过XML模式来验证XML文档的正确性。
作者:Wang Ke Wei, Title: Staff Software Engineer
UID
ibm11146034