

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# SSML 中的预留字符
<a name="escapees"></a>

有五种预定义字符通常无法在 SSML 语句中使用。这些实体根据语言规范予以预留。这些字符如下：


| Name | Character | 转义代码 | 
| --- | --- | --- | 
| 引号（双引号） | " | &quot; | 
| 表示和的符号 | & | &amp; | 
| 撇号或单引号 | ' | &apos; | 
| 小于号 | < | &lt; | 
| 大于号 | > | &gt; | 

由于 SSML 会将这些字符用在其代码中，要在 SSML 中使用这些符号，您必须在使用时*转义*该字符。您使用转义码而不是实际字符，以便在仍然创建有效的 SSML 文档时正确显示。例如，以下句子

```
We're using the lawyer at Peabody & Chambers, attorneys-at-law.
```

在 SSML 中将转义为 

```
<speak>
We&apos;re using the lawyer at Peabody &amp; Chambers, attorneys-at-law.
</speak>
```

在这种情况下，撇号和表示和的符号的特殊字符将被转义，因此 SSML 文档仍然有效。

对于 **&**、**<** 和 **>** 符号，使用 SSML 时始终需要转义码。另外，当您使用撇号/单引号 (**'**) 作为撇号时，也必须使用转义码。

但是，当使用双引号 (**“**) 或 apostrophe/single 引号 (**'**) 作为引号时，是否使用转义码取决于上下文。

双引号 
+ 在由双引号界定的属性值中必须进行转义。例如，在以下 AWS CLI 代码中 

  ```
  --text "Pete &quot;Maverick&quot; Mitchell"
  ```
+ 在文本上下文中不需要进行转义。例如，在下面的上下文中

  ```
  He said, "Turn right at the corner."
  ```
+ 在由单引号界定的属性值中时，不需要进行转义。例如，在下面的 AWS CLI 代码中 

  ```
  --text 'Pete "Maverick" Mitchell'
  ```

单引号 
+ 用作撇号时必须进行转义。例如，在下面的上下文中 

  ```
  We&apos;ve got to leave quickly.
  ```
+ 在文本上下文中不需要进行转义。例如，在下面的上下文中

  ```
  "And then I said, 'Don't quote me.'"
  ```
+ 在由双引号界定的代码属性中，不需要进行转义。例如，在下面的 AWS CLI 代码中 

  ```
  --text "Pete 'Maverick' Mitchell"
  ```