解析以 UTF-8 编码的 XML 文档

可以使用类似于解析其他 XML 文档的方式来解析以 Unicode UTF-8 编码的 XML 文档。 但是,存在一些额外需求。

关于此任务

要解析 UTF-8 XML 文档,请按通常用于解析 XML 文档的方式对 XML PARSE 语句进行编码:


XML PARSE xml-document
    PROCESSING PROCEDURE xml-event-handler
    . . .
END-XML
但是,请遵守以下其他要求:
  • 解析数据项 (以上示例中的xml-document ) 必须是类别字母数字,并且 CHAR(EBCDIC) 编译器选项不得生效。
  • 因此, XML 文档将解析为 UTF-8 而不是 ASCII ,请确保至少满足下列其中一个条件:
    • 运行时语言环境是 UTF-8 语言环境。
    • 该文档包含指定 UTF-8 (encoding="UTF-8") 的 XML 编码声明。
    • 文档以 UTF-8 字节顺序标记开头。
  • 文档不得包含任何具有大于 x 'FFFF' 的 Unicode 标量值的字符。 对此类字符使用字符引用 ("&#xhhhhh;")。

解析器返回字母数字专用 寄存器 XML-TEXT中的 XML 文档片段。

UTF-8 字符使用每个字符的可变字节数进行编码。 COBOL 对字母数字数据的大多数操作都采用单字节编码,即每个字符用一个字节编码。 将 UTF-8 字符作为字母数字数据进行操作时,必须确保正确处理数据。 避免可以在字节之间拆分多字节字符的操作 (例如引用修改和涉及截断的移动)。 无法可靠地使用 INSPECT 之类的语句来处理字母数字数据中的多字节字符。

相关参考资料  
CHAR
  
XML文档的编码  
XML解析语句 (COBOL for Linux® on x86 语言参考资料)