设计使用本机 XML 驱动程序的报表

本机 XML 驱动程序概述

注意:    目前,本机 XML 驱动程序仅支持英语、法语、德语和日语。请在“开发人员交流区”检查有关其他语言的信息,网址为 http://www.businessobjects.com/ipl/default.asp?destination=developerzone&language=EN&product=CRJavaProducts&edition=Professional&version=10.0&Partner=IBM

用于 Crystal 产品的本机 XML 驱动程序读取 XML 流并根据相应架构 (XSD) 分析其内容,以导出数据的层次表形式。这样,在您创建报表时 Crystal Reports 就会使用此层次表形式。

注意:    当 Crystal Reports 使用 XML 本身时,该层次表形式将根据内部查询定义直接映射回 XML。XML 从不会被解析到关系表模型中。

在分析 XML 流时,必须为要使用的 XML 驱动程序指定架构或文档类型定义 (DTD);该驱动程序使用此架构或 DTD 来确定如何将 XML 数据类型转换为 Crystal 数据类型。有关架构和如何转换数据类型的更多信息,请参见架构

有关本机 XML 驱动程序的更多信息,请访问位于以下网址的 Developer Zone(开发人员专区):

http://www.businessobjects.com/ipl/default.asp?destination=developerzone&language=EN&product=CRJavaProducts&edition=Professional&version=10.0&Partner=IBM

您可在此站点上找到示例和其他信息。有关 XML 的一般概述,请参见 《Crystal Reports 用户指南》

入门

您需要配置 CRDB_JavaServer.ini 文件,然后才能在 Crystal Reports 中使用本机 XML 驱动程序。有关此文件的位置,请参阅必需组件。有关参数及其说明的完整列表,请参见CRDB_JavaServer.ini 参数引用。您必须配置的主要参数有 PathClasspathIORFileLocation

注意:    

XML 数据源访问类型

在通过选择 XML 驱动程序在 Crystal Reports 中创建新连接时,您可以从多个可能的数据源类型中进行选择。本节将逐个介绍每种类型。有关连接时需要完成的步骤,请参见连接到 XML 数据源

本地数据源

本地数据源是本地计算机或网络驱动器上的 XML 文件,您可以通过输入路径和文件名与之连接。XML 驱动程序允许您键入完整路径和文件名,您也可以通过在“打开”对话框中进行搜索来选择文件。如果您有用于 XML 文件的架构 (XSD),则可以指定该架构。有关架构和如何使用它们的更多信息,请参见架构

HTTP(S) 数据源

HTTP(S) 数据源是您可以从 Servlet、ASP 页、JSP 页或动态创建的其他类型的 Web 页访问的 XML 文件或 XML 流。您提供的此类数据源的 URL 可以是 HTTP 也可以是 HTTPS。在使用 HTTPS 时,在 Crystal Reports 或 Crystal Enterprise 中输入的用户 ID 和密码将用于依据基础 HTTP 提供程序进行身份验证。

XML 驱动程序允许您键入 URL 并随后添加身份验证凭据。如果您有用于 XML 文件或 XML 流的架构 (XSD),则可以指定该架构及其身份验证凭据。有关架构和如何使用它们的更多信息,请参见架构

HTTP(S) 数据源也支持 HTTP 参数。有关更多信息,请参阅HTTP 参数

Web Service 数据源

Web Service 数据源可以是本地计算机或网络驱动器上的服务,您可以通过输入路径和文件名与之连接;也可以是从 Servlet 或动态创建的 Web 页访问的服务。您提供的此类数据源的 URL 可以是 HTTP 也可以是 HTTPS。响应 XML 文件的架构是通过 Web Service 框架导出的,而不是手动指定的。

可通过 WSDL(Web Service 描述语言,它是描述 Web 服务的标准格式)访问 Web Service 数据源。指定 WSDL 后,该驱动程序会提示您选择要使用的服务、端口和方法。

架构

在使用 XML 驱动程序时,可以指定您所选择的架构 (XSD) 或文档类型定义 (DTD),也可以使用 XML 文档中嵌入的架构信息。架构用于确定如何在 Crystal Reports 中呈现 XML 数据。

注意:    当您指定用于 XML 文件的架构时,将使用指定的架构,而不是 XML 文件中嵌入的或该文件本身引用的架构信息。

下表显示了本机 XML 驱动程序如何将 XML 数据类型映射为 Crystal 数据类型。

XML 类型 Crystal 类型

string

String

Boolean

Boolean

Decimal

Number

float

Number

Double

Number

duration

String (Duration:duration)

dateTime

DateTime

time

time

date

Date

gYearMonth

Date(每月的第一天)

gYear

Date(每年的每一天)

gMonthDay

Date(当年日期)

gDay

Date(当月/当年日期)

gMonth

Date(当年日期 - 第一天)

hexBinary

BLOB

base64Binary

BLOB

anyURI

String

QName

String

NOTATION

String (Notation:notation)

normalizedString

String

token

String

language

String

NMTOKEN

String

NMTOKENS

String

Name

String

NCName

String

ID

String

IDREF

String

IDREFS

String

ENTITY

String

ENTITIES

String

Integer

Number

nonPositiveInteger

Number

negativeInteger

Number

long

Number

int

Number

short

Number

byte

Number

nonNegativeInteger

Number

unsignedLong

Number

unsignedInt

Number

unsignedShort

Number

unsignedByte

Number

positiveInteger

Number

anySimpleType

String

注意:    名称区分大小写。

XML 驱动程序可处理 XML 属性、名称空间、特定数据类型和标记,如下表所述。

XML 经该驱动程序解析后

属性

属性包含在以 @ 符号为前缀的列名称中(例如,标记 <a attrib="valueofattrib"> 变为字段 A@attrib)。

名称空间

名称空间包含在列名称中(例如,标记 <abc:name> 变为字段 abc:name)。

复杂数据类型

无论复杂类型元素是否有重复的元素,都被解析为 Crystal Reports 中的表。但仅包含单个简单类型元素的复杂类型除外;在这种情况下,元素将作为一个长字符串返回,其中包含以 <CR> 分隔的元素值列表。

List 数据类型

List 数据类型始终被解析为 String 类型。字符串将包含列表。

Union 数据类型

Union 数据类型返回一个包含 Union 内容的字符串。

Mixed 数据类型

定义为 Mixed 的数据类型将作为 XML 片段返回,其中将全部标记内容(包括元素本身的标记)作为 MEMO 字段。

processContents="skip" 属性定义的类型

processContents="skip" 属性定义的类型将作为 XML 片段返回,其中将全部标记内容(包括元素本身的标记)作为 MEMO 字段。

processContents="lax" 属性定义的类型

processContents="lax" 属性定义的类型将通过架构解析;如果无法解析,数据将作为 XML 片段返回,其中将全部标记内容(包括元素本身的标记)作为 MEMO 字段。

Choice 标记

在使用 Choice 标记时,将表示所选路径的枚举选择字段与所有组合选项结合使用。

不包含实际值的标记

当标记是一个简单类型并且不包含实际值时,将返回 NULL 值。NULL 适用于所有数据类型。

当无法确定 XSD 或 DTD 架构的最外层(根)元素时,将显示所有可能的根元素,并且作为数据连接的一部分您必须选择根元素。

HTTP 参数

在选择 HTTP(S) 数据源时,还可以定义 HTTP 参数,以传递给基础 Servlet 或动态创建的 Web 页。这些参数向 Servlet 或 Web 页提供信息以返回正确的 XML 流。这些参数作为 Form 变量传递给基础连接。Form 变量名与 Crystal 参数名相对应(例如,Crystal {?REGION} 参数等同于 Form 变量“REGION”)。

用选定的多个值传递的所有参数都使用同一名称提交多个 Form 变量。请看以下示例:

<p>哪种口味卖得最好?

<input type=checkbox name=flavor value=vanilla>香草<br>

<input type=checkbox name=flavor value=strawberry>草莓<br>

<input type=checkbox name=flavor value=chocolate checked>巧克力<br>

如果您同时选择了巧克力和香草,则将提交两个名为 flavor 的 Form 变量,各个变量的值分别为香草和巧克力,就像在使用 GET 格式的 "http://server/servlet?flavor=Vanilla&flavor=Chocolate" 中一样。通过 Crystal Reports 同时选择了香草和巧克力的{?flavor} 将分别创建相同的 URL 请求。


Business Objects
http://www.china.businessobjects.com

支持服务
http://www.china.businessobjects.com