【发布时间】:2020-11-12 20:51:58
【问题描述】:
假设我有一些 SSML:
<speak>
<p>Now I will read some numbers.</p>
<p>
<say-as interpret-as="digits">369148034</say-as>,
<p>
</speak>
当我使用 AWS PinpointSMSVoice(通过 AWS JS 开发工具包)将其作为语音消息的文本发送时,消息失败并显示“错误请求”。但是,如果我将所有内容合并到一行并将双引号转换为单引号,AWS 会接受它并且它可以工作。
在阅读more about SSML in general 时,我看到以下警告:
不要忘记在属性值周围使用双引号。格式良好、有效的 XML 标准要求属性值用双引号括起来。
我的预感是 AWS JS 开发工具包中存在一个错误,该错误会阻止对带有双引号的多行字符串进行正确编码。我认为它没有正确逃逸,但我不确定。
问题是……这只是 AWS 的一个怪癖吗?或者在实践中,SSML 是否应该对属性使用单引号?或者,双引号?
【问题讨论】:
-
“如果我将所有内容合并到一行并将双引号转换为单引号” ...您必须同时做这两件事吗?
-
@Michael-sqlbot 是的!如果我只做一个,我会收到一个请求错误。有趣的是,如果我将这个带有新行和双引号的常规 SSML 放入 AWS 控制台上的测试器中,它就可以工作。这就是我认为问题出在 SDK 的部分原因。 SDK 文档确实提到了换行问题,但没有提到双引号。但是,他们的示例使用单引号。我以前从未使用过 SSML,所以我只是想完全了解发生了什么。
-
你会从一个简单的可验证示例中展示实际代码,即损坏与工作的东西吗?需要其他人可以运行的代码来复制错误和成功条件。
标签: amazon-web-services aws-pinpoint ssml