XmlException:名称中可能不包含字符“ =”

时间:2019-01-08 02:32:44

标签: xml sapi ssml

SAPI5与标志SVSFIsXML结合使用可以插入自定义标签,例如,采用以下形式:

 <customtag>Speak this text</customtag>

此标签将被识别为

FragList->State.eAction == SPVA_ParseUnknownTag

但是,当我使用新的标准SSML时,以下XML代码会引发错误

Invalid XML content:
Inner Exception: XmlException: The character '=' (hex value 0x3D) may not be contained within a name. Line 1, position 126.

这是代码:

<speak version='1.0' xmlns="http://www.w3.org/2001/10/synthesis" xml:lang='en-US'>
<voice name='Microsoft Sam'>
<customtag="1">
 Speak this text!
</customtag>
</voice>
</speak>

下面的XML代码引发了另一个错误:

System.FormatException: The element "customtag" is invalid.

这是代码:

<speak version='1.0' xmlns="http://www.w3.org/2001/10/synthesis" xml:lang='en-US'>
<voice name='Microsoft Sam'>
<customtag>
 Speak this text!
</customtag>
</voice>
</speak>

如果我删除了自定义标签,则可以正常工作。

我的代码中是否存在任何明显的XML错误,或者使用自定义标记根本无法使用?

谢谢。

2 个答案:

答案 0 :(得分:1)

语法<customtag="1">格式不正确。我不知道您使用的工具是什么,但是似乎它们允许您创建格式不正确的XML,而该XML显然无法解析。

答案 1 :(得分:1)

  

我的代码中是否存在任何明显的XML错误

<customtag="1">是一个明显的错误。元素名称不是属性,不能有值。

  

还是使用自定义标签根本不起作用了?

XML的全部目的是允许设计自定义标记语言。

您似乎有一个语音合成文档,该文档使用了使用XML设计的自定义标记语言。

“元素“ customtag”无效”错误消息指出,语音合成文档中不允许customtag

可以设计语音合成+其他标记语言,但您的工具尚未对此进行测试。它需要一个纯语音合成文件。