0

SAPI5 in combination with the flag SVSFIsXML allows inserting custom tags, for example in such a form:

 <customtag>Speak this text</customtag>

This tag would be recognized as

FragList->State.eAction == SPVA_ParseUnknownTag

However, when I use the new standard SSML, the following XML code raises the error

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

This is the code:

<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>

And the following XML code raises a different error:

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

This is the code:

<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>

If I remove the customtag, it works fine.

Is there any obvious XML error in my code, or does using custom tags simply not work anymore?

Thank you.

4

2 回答 2

1

语法<customtag="1">不是格式良好的 XML。我不知道您正在使用的工具,但似乎它们允许您创建格式错误的 XML,这显然不会解析。

于 2019-01-08T11:06:36.830 回答
1

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

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

还是使用自定义标签不再起作用?

XML 的全部意义在于允许设计自定义标记语言。

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

'The element "customtag" is invalid' 错误消息表明customtag语音合成文档中不允许出现该错误消息。

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

于 2019-01-08T11:11:56.113 回答