【问题标题】:XmlException: Character '=' may not be contained within a nameXmlException:名称中可能不包含字符“=”
【发布时间】:2019-06-02 17:10:50
【问题描述】:

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>

如果我删除 customtag,它可以正常工作。

我的代码中是否有任何明显的 XML 错误,或者使用自定义标签不再有效?

谢谢。

【问题讨论】:

    标签: xml sapi ssml


    【解决方案1】:

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

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

    或者使用自定义标签不再起作用了?

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

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

    'The element "customtag" is invalid' 错误消息指出,customtag 不允许在语音合成文档中。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多