假设我有一些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 SDK(将其作为语音消息的文本发送时;错误请求";。然而,如果我将所有内容组合到一行,并将双引号转换为单引号,AWS就会接受它,并且它可以工作。
在阅读更多关于SSML的一般信息时,我看到以下警告:
不要忘记在属性值周围使用双引号。格式良好、有效的XML的标准要求属性值用双引号括起来。
我的预感是,AWS JS SDK中存在一个错误,它阻止了使用双引号对多行字符串进行正确编码。我不认为它能正常逃脱,但我不确定。
问题是…这只是AWS的一个怪癖吗?或者在实践中,SSML是否应该为属性使用单引号?或者,双引号?
谷歌的答案是,这取决于您的实现"您可能需要转义引号";或者如果他们正在对其进行编码,则xml允许"。他们还说";您还应该避免使用诸如"<"、"之类的XML控制字符>','&',将文本中的引号、引号和引号转换为音频";换句话说,可能是无效的XML。
TL;DR;
这取决于情况。