XML 输入文档编码
要使用 XML
PARSE 语句解析 XML 文档,必须以受支持的编码对该文档进行编码。
给定解析操作的受支持编码取决于包含 XML 文档的数据项的类型。 解析器支持以下类型的数据项 和编码:
- 类别 国家或地区数据项,其内容以 小尾数法 格式的 Unicode UTF-16 编码
- 具有以 Unicode UTF-8 或 其中一个受支持的单字节 ASCII 代码页编码的内容的本机字母数字数据项
- 包含以其中一个受支持的单字节 EBCDIC 代码页编码的内容的主机字母数字数据项
在有关 XML 文档编码的相关参考中描述了受支持的代码页。
解析器通过检查 XML 文档的前几个字节来确定 实际文档编码 。 如果实际文档编码是 ASCII 或 EBCDIC ,那么解析器需要特定的代码页信息才能正确解析。 此附加代码页信息是从文档编码声明或从外部代码页信息获取的。
文档编码声明是文档开头的 XML 声明的可选部分。 有关详细信息,请参阅有关指定编码的相关任务。
ASCII XML 文档的 外部代码页 ( 外部 ASCII 代码页) 是当前运行时语言环境所指示的代码页。 EBCDIC XML 文档的外部代码页 ( 外部 EBCDIC 代码页) 是下列其中一项:
- 在 "日期" 环境变量中指定的代码页
- 为当前运行时语言环境选择的缺省 EBCDIC 代码页 (如果未设置该环境变量)
如果指定的编码不是其中一个受支持的编码字符集,那么解析器将在开始解析操作之前对 XML 异常事件发出信号。 如果实际文档编码与指定的编码不匹配,解析器将在开始解析操作后发出相应的 XML 异常信号。
要解析以不受支持的代码页编码的 XML 文档,请首先使用 NATIONAL-OF 内部函数将该文档转换为本地字符数据 (UTF-16)。 您可以使用 DISPLAY-OF 内部函数将传递到专用寄存器 XML-NTEXT 中的处理过程的各个文档文本片段转换回原始代码页。
XML 声明和空格:
仅当 XML 文档没有 XML 声明时,这些文档才能以 空格 开头:
- 如果 XML 文档以 XML 声明开始,文档中的第一个角括号 (<) 必须是文档中的第一个字符。
- 如果 XML 文档未以 XML 声明开头,那么文档中的第一个尖括号只能以空格开头。
空格字符具有下表中显示的十六进制值。
| 空格字符 | EBCDIC | Unicode/ASCII |
|---|---|---|
| 空间 | X'40 ' | X'20 ' |
| 水平制表符 | X'05' | X'09' |
| 回车 | X'0D' | X'0D' |
| 换行符 | X'25 ' | X'0A' |
| 新建行/下一行 | X'15' | X'85 ' |