DFHLS2SC:高级语言到 XML 模式的转换
DFHLS2SC 编目过程从高级语言结构生成 XML 模式和 XML 绑定文件。 如果要创建可解析或创建 XML 的 CICS 程序,请使用 DFHLS2SC 。
DFHLS2SC 的作业控制语句
- JOB
- 启动作业。
- EXEC
- 指定过程名称 (DFHLS2SC)。
- INPUT.SYSUT1 DD
- 指定输入。 输入参数通常在输入流中指定。 但是,您可以在数据集或分区数据集的成员中定义这些数据集。
符号参数
以下符号参数在 DFHLS2SC:
- JAVADIR = 路径
- 指定 DFHLS2SC使用的 Java™ 目录的名称。 此参数的值将追加到
/usr/lpp/,提供完整路径名/usr/lpp/ path。 - PATHPREF = 前缀
- 指定一个可选前缀,用于扩展其他参数中使用的 z/OS UNIX 目录路径。 缺省值为空字符串。
- SERVICE = 值
- 仅当 IBM 支持人员指示时才使用此参数。
- TMPDIR = tmpdir
- 指定 z/OS UNIX 目录的位置, DFHLS2SC 用作临时工作空间。 作业运行所使用的用户标识必须具有对此目录的读和写许可权。
- TMPFILE = tmpprefix
- 指定 DFHLS2SC 用于构造临时工作空间文件的名称的前缀。
- PATHMAIN =路径
- 指定 UNIX 系统服务文件系统中 CICS TS 目录的名称的主要部分。
- USSDIR = 路径
- 指定 UNIX 系统服务文件系统中 CICS TS 目录的名称。 此参数的值将附加到 PATHMAIN 参数指定的值。
临时工作空间
DFHLS2SC 在运行时创建以下三个临时文件:
tmpdir / tmpprefix .intmpdir / tmpprefix .outtmpdir / tmpprefix .err
tmpdir是 TMPDIR 参数中指定的值。tmpprefix是 TMPFILE 参数中指定的值。
/tmp/LS2SC.in/tmp/LS2SC.out/tmp/LS2SC.err
重要: DFHLS2SC 不会锁定 z/OS UNIX 文件或数据集成员的访问权限。 因此,如果同时运行两个或多个 DFHLS2SC 实例并使用相同的临时工作空间文件,那么当另一个作业正在使用这些文件时,没有任何内容会阻止一个作业覆盖这些工作空间文件,从而导致不可预测的失败。
因此,建议您设计避免此情况的命名约定和操作过程; 例如,可以使用系统符号参数 SYSUID 来生成对单个用户唯一的工作空间文件名。
在作业结束之前,将删除这些临时文件。
重要信息: 实用程序将仅在缺省 USS shell 下运行。 如果您已根据 .profile 配置其他 shell (例如 bash shell) 以启动,那么该实用程序将无法运行,而不会发出任何错误消息。 如果使用其他 shell ,那么在运行实用程序之前,必须更改 .profile 的配置以使用缺省 USS shell。
DFHLS2SC 的输入参数
参数使用
- 您可以按任何顺序指定输入参数。
- 每个参数必须在新行开始。
- 参数 (及其连续字符,如果使用) 不得超出第 72 列; 第 73 至 80 列必须包含空格。
- 如果参数太长,无法适合单行,请在行尾使用星号 (*) 字符来指示该参数在下一行继续。 星号之前的所有内容 (包括空格) 都被视为参数的一部分。 例如:
等同于XSDBIND=/path/xsdbinddir* /app1XSDBIND=/path/xsdbinddir/app1 - 行的第一个字符位置中的 # 字符是注释字符。 将忽略该行。
- 行的最后一个字符位置中的逗号是可选的行分隔符,将被忽略。
参数描述
- BUNDLE = 值
- 指定 z/OS UNIX 上 bundle 目录的路径和名称。 如果指定此值,那么 XML 助手将生成包含 XSD 绑定的捆绑软件。 此参数上的路径信息将覆盖 XSDBIND 参数上的任何路径信息。
- CCSID = 值
- 指定在运行时用于对应用程序数据结构中的字符数据进行编码的 CCSID。 此参数的值将覆盖 LOCALCCSID 系统初始化参数的值。 value 必须是 Java 和 z/OS 转换服务支持的 EBCDIC CCSID。 如果未指定此参数,那么将使用系统初始化参数中指定的 CCSID 对应用程序数据结构进行编码。
可以将此参数与任何映射级别配合使用。
- CHAR-VARYING = { no | NULL | COLLAPSE | BINARY }
- 指定当映射级别为 1.2 或更高时如何映射语言结构中的字符字段。 COBOL 中的字符字段是 X 类型的 Picture 子句;例如,
PIC(X) 10。 C/C++ 中的字符字段是一个字符数组。 该参数不适用于企业和其他 PL/I 语言结构。 您可以选择以下选项:- 否
- 字符字段将映射到
xsd:string并作为固定长度字段进行处理。 数据的最大长度等于字段的长度。 对于映射级别 2.0 及更早的 COBOL 和 PL/I ,"NO "是 CHAR-VARYING 参数的默认值。 - NULL
- 字符字段映射到
xsd:string,并作为以 null 结束的字符串进行处理。 CICS 在从 XML 模式转换时添加终止空字符。 字符串的最大长度计算为比语言结构中指示的长度少一个字符。 对于 C/C++,CHAR-VARYING 参数的缺省值为 NULL。 - COLLAPSE
- 字符字段映射到
xsd:string。 此字段中的尾部空格和嵌入式空格不包含在 XML 模式中; 例如,<space>AB<space><space><space>C<space>变为AB<space>C。 对于 COBOL 和 PL/I ,COLLAPSE 是映射级别 2.1 及以后的 CHAR-VARYING 参数的默认值。 - BINARY
- 字符字段映射为
xsd:base64binary数据类型,并作为固定长度字段进行处理。 CHAR-VARYING 参数上的 BINARY 值 仅在映射级别 2.1 及更高版本上可用。
- CHAR-OCCURS = { string | ARRAY }
- 指定当映射级别为 4.0 或更高时如何映射语言结构中的字符数组。 例如,
PIC X OCCURS 20。 该参数仅供 COBOL 语言使用。- ARRAY
- 字符数组映射到 XML 数组。 这意味着每个字符都映射为单个 XML 元素。 这也是映射级别 3.0 和更低版本的行为。
- 字符串
- 字符数组映射到 XML 字符串。 这意味着整个 COBOL 数组被映射为一个 XML 元素。
- CHAR-USAGE = { N国际 | DBCS }
在 COBOL 中,国家数据类型
PIC N可用于 UTF-16 或 DBCS 数据。 此设置由 NSYMBOL 编译器选项控制。 必须将助手上的 CHAR-USAGE 参数设置为与 NSYMBOL 编译器选项相同的值,以确保正确处理数据。 使用 UTF-16 时,该值通常设置为CHAR-USAGE=NATIONAL。- DBCS
PIC ( n )字段中的数据被视为 DBCS 编码数据。- NATIONAL
PIC ( n )字段中的数据被视为 UTF-16 编码的数据。
- DATA-SCREENING = { enabled | DISABLED }
- 指定是否筛选应用程序提供的数据以查找错误。
- ENABLED
- 将应用程序提供的与语言结构不一致的任何运行时数据视为错误,并发出消息 DFHPI1010 。 系统会向应用程序返回错误响应。
- DISABLED
- 应用程序提供的运行时数据中与语言结构不一致的值将被缺省值替换。 例如,零替换数字字段中的错误值。 未发出消息 DFHPI1010 ,并且将向应用程序返回正常响应。 此功能可用于避免从未初始化的输出字段中生成的 INVALID_PACKED_DEC 和 INVALID_ZONED_DEC 错误响应。
- DATA-TRUNCATION = { disabled | ENABLED }
- 指定在固定长度字段结构中是否容许可变长度数据:
- DISABLED
- 如果数据小于 CICS 期望的固定长度,那么 CICS 将拒绝截断的数据并发出错误消息。
- ENABLED
- 如果数据小于 CICS 期望的固定长度,那么 CICS 会容许截断的数据,并将缺失的数据作为空值处理。
- DATETIME = { 未使用 | PACKED15 }
- 指定是否将高级语言结构中的潜在 ABSTIME 字段映射为时间戳记:
- PACKED15
- 长度为 15(8 字节)的压缩十进制字段被视为 CICS ABSTIME 字段并映射为时间戳记。
- UNUSED
- 长度为 15(8 字节)的压缩十进制字段不会被视为时间戳记。
- LANG = COBOL|PLI-ENTERPRISE|PLI-OTHER|C|CPP
- 指定高级语言结构的编程语言:
- COBOL
- COBOL
- PLI-企业
- Enterprise PL/I
- PLI-其他
- PL/I 以外的级别 Enterprise PL/I
- C
- C
- CPP
- C++
- LOGFILE = 值
- DFHLS2SC 写入活动日志和跟踪信息的文件的完整限定 z/OS UNIX 名称。 DFHLS2SC 创建文件,但不创建目录结构 (如果该文件尚不存在)。
通常情况下,您不会使用该文件,但如果您在 DFHLS2SC 中遇到问题,或在 CICS® 中解析或创建 XML 时, IBM 服务机构可能会要求您使用该文件。
- MAPPING-LEVEL = { 1.0 | 1.1 | 1.2 | 2.0 | 2.1 | 2.2 | 3.0 | 4.0 | 4.1 | 4.2 | 4.3 }
- 指定在生成 XML 绑定和语言结构时要使用的助手的映射级别。 建议您使用可用的最新映射级别。 如果要为 Atom 订阅源创建 XML 绑定,那么必须使用映射级别 3.0。
- MINIMUM-RUNTIME-LEVEL = { 最小值 | 3.0 | 4.0 | 4.1 | 4.2 | 4.3 | CURRENT }
- 指定可将 Web Service 绑定文件部署到的最低 CICS 运行时环境。 如果选择的级别与指定的其他参数不匹配,那么将接收到错误消息。 您可以选择以下选项:
- 最小值
- 将根据您选择的参数自动分配 CICS 的最低可能运行时级别。
- 3.0
- 如果要使用 CICS XML 助手并利用高级数据映射,请指定运行时级别 3.0 或更高版本。
- 4.0
- 生成的 Web 服务绑定文件已成功部署到 CICS TS for z/OS® 5.3 或更高版本的区域中。 使用此运行时级别,您可以为 MAPPING-LEVEL 参数使用 4.0 或更早的映射级别。 可以在此级别使用任何可选参数。
- 4.1
- 生成的 Web 服务绑定文件已成功部署到 CICS TS for z/OS 5.3 或更高版本的区域中。 使用此运行时级别,您可以为 MAPPING-LEVEL 参数使用 4.1 或更早的映射级别。
- 4.2
- 生成的网络服务绑定文件已成功部署到 CICS TS for z/OS, 版本 5.4 或更高位置的区域。 使用此运行时级别,您可以为 MAPPING-LEVEL 参数使用 4.2 或更早的映射级别。
- 4.3
- 生成的网络服务绑定文件已成功部署到 CICS TS for z/OS, 版本 5.4 或更高位置的区域。 使用此运行时级别,您可以为 MAPPING-LEVEL 参数使用 4.3 或更早的映射级别。
- CURRENT
- 生成的 Web Service 绑定文件将成功部署到与您用于生成 Web Service 绑定文件的运行时级别相同的 CICS 区域中。
- NAMESPACE = 值
- 指定要在生成的 XML 模式中使用的 CICS 名称空间。 对于 Atom 订阅源, CICS 在 Atom 订阅源中提供此名称空间以及 Atom 名称空间。
- OVERWRITE-OUTPUT = 否 | YES
- 控制是否可以覆盖文件系统上的现有 CICS BUNDLE。
- PDSCP = 值
- 指定分区数据集成员中使用的代码页,其中 value 是 CCSID 编号或 Java 代码页编号。 如果未指定此参数,那么将使用 z/OS UNIX System Services 代码页。 例如,可以指定
PDSCP=037。 - PDSLIB = 值
- 指定包含要处理的高级语言数据结构的分区数据集的名称。限制: 分区数据集中的记录的固定长度必须为 80 个字节。
- PDSMEM = 值
- 指定包含要处理的高级语言结构的分区数据集成员的名称。
- SCHEMA = 值
- 写入 XML 模式的文件的完全限定 z/OS UNIX 名称。 XML 模式符合 WSDL 2.0 规范。 DFHLS2SC 创建文件,但不创建目录结构 (如果该文件尚不存在)。
- STRUCTURE = { DFHDATA | 数据 }
- C 和 C++ 中顶级数据结构的名称。 缺省值为 DFHDATA。
- TRUNCATE-NULL-ARRAYS = { disabled | ENABLED }
- 指定如何在映射级别 4.1 或更高级别处理结构化数组。 如果启用, CICS 将尝试识别数组中的空记录 (请参阅 TRUNCATE-NULL-ARRAY-VALUES 以获取有关标识空记录的更多信息)。 如果检测到五个连续的空数组记录,那么在生成 XML/JSON 时,将在第一个此类记录处截断该数组。 仅对具有结构化内容的数组启用此截断功能,简单原始字段的数组不进行截断。 数组截断可能导致 JSON/XML 中数据的更简明表示,但这并非没有风险。 如果五个连续的数据记录被错误地识别为未初始化的存储 (可能是因为它们合法地包含低值) ,那么可能会发生数据丢失。 如果已启用 TRUNCATE-NULL-ARRAY ,并且未设置 TRUNCATE-NULL-ARRAY-VALUES ,那么将使用 TRUNCATE-NULL-ARRAY-VALUES 的缺省值。
- TRUNCATE-NULL-ARRAY-VALUES = { 空 | PACKEDZERO |SPACE | ZERO }
- 指定在映射级别 4.1 或更高级别的 TRUNCATE-NULL-ARRAY 处理将哪些值视为空值。 缺省情况下,空值 (0x00或低值) 被视为空值。 如果结构化数组的记录中的所有存储字节都包含空值,那么将整个记录视为空。 可以在以逗号分隔的列表中指定一个或多个 NULL , PACKEDZERO , SPACE 和 ZERO 值。
- NULL
- 暗示空字符 (0x00)。
- 软件包 EDZERO
- 表示正带符号压缩十进制零 (0x0C) ,负带符号压缩十进制零 (0x0D) 或无符号压缩十进制零 (0x0F)。
- 空间
- 暗示 SBCS EBCDIC 空间 (0x40)。
- 零
- 暗示无符号分区十进制零 (0xF0)。
结构化数组记录中所选字节的任何匹配组合都会导致将整个记录被标识为空。
如果 TRUNCATE-NULL-ARRAY-VALUES 定义了值,那么必须启用 TRUNCATE-NULL-ARRAY 。
- XSDBIND = 值
- XSD 绑定的完全合格 z/OS UNIX 名称。 DFHLS2SC 创建文件,但不创建目录结构 (如果该文件尚不存在)。 如果指定了 BUNDLE 参数,请排除路径。 文件扩展名为 .xsdbind。
