xml - 为什么 COBOL 生成的 XML 中缺少编码属性?
问题描述
以下程序的预期输出和实际输出不同的原因可能是什么?实际输出缺少编码。
IDENTIFICATION DIVISION.
PROGRAM-ID. FOO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 doc PIC X(512).
01 Greeting.
05 msg PIC X(80) VALUE "Hello, world!".
PROCEDURE DIVISION.
XML GENERATE doc FROM Greeting
WITH ENCODING 1208
WITH XML-DECLARATION
END-XML
DISPLAY doc.
STOP RUN.
代码编译成功。我正在使用Micro Focus的Visual COBOL 5.0。
预期输出:
<?xml version="1.0" encoding="UTF-8"?>
<Greeting><msg>Hello, world!</msg>
</Greeting>
实际输出:
<?xml version="1.0" ?><Greeting>
<msg>Hello, world!</msg></Greeting>
解决方案
XML 只接受两种编码,utf-8 和 utf-16,utf-8 是默认值。从文档看来,只有在不是 utf-8 时才需要编码。由于将其排除在外是合法的,因此不会生成该子句。
对于 utf-16 编码,将 doc 更改为
01 doc PIC n(512) usage national.
如果您查看https://www.microfocus.com/documentation/visual-cobol/VC232/EclWin/HRLHLHPDFC0G.html(MicroFocus XML GENERATE 的网页),它说 ENCODING 语句只是记录性的,因此不会生成任何代码。
推荐阅读
- matlab - 在子类中使用带有测试的设置函数
- jenkins - 如何在 jenkins.HOST.com 上配置 jenkins url 以供团队远程访问,以便他们可以看到仪表板
- amazon-web-services - Quarkus amazon lambda JAX-RS 集成
- vue.js - 混合类型页面的 Nuxtjs 应用结构
- tsql - 您好,我需要表格首次上传/推送与创建/修改的初始日期
- python - 使用 Selenium(Python)在网页上查找按钮时遇到动态(更改)XPath 问题
- javascript - Rails:在 1 个动作中多次更新视图
- javascript - 显示选定按钮的新值
- angular - 如何在角度模块中动态设置 API 密钥
- python - 有没有更好的方法来合并具有子列表的元组的项目,而无需创建如下所示的新函数?