是否可以添加类似的内容:
<?xml version="1.0" encoding="UTF-8"?>
到内联部分的WSO2 XML Formatter? 我看到标签总是在标签&#34; eventFormatter&#34; 之前添加,但是当我通过CEP传递事件并且我在队列中得到答案时,输出XML不会有这个标签。
如果我想在内嵌部分添加它,我会收到此错误:
Failed to update event formatter, Exception: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[7,10] Message: The processing instruction target matching "[xX][mM][lL]" is not allowed.
// UDPATE
我的格式化程序如下:
<?xml version="1.0" encoding="UTF-8"?>
<eventFormatter name="Formatter_XML_Out" statistics="disable"
trace="disable" xmlns="http://wso2.org/carbon/eventformatter">
<from streamName="Test_stream_out_xml" version="1.0.0"/>
<mapping customMapping="enable" type="xml">
<inline>
<Event>
<Name>{{Name}}</Name>
<Surname>{{Surname}}</Surname>
</Event>
</inline>
</mapping>
<to eventAdaptorName="ActiveMQ_Output" eventAdaptorType="jms">
<property name="transport.jms.Destination">myQueue</property>
</to>
</eventFormatter>
我在输出消息中得到了这个:
<Event>
<Name>XXXX</Name>
<Surname>YYYYY</Surname>
</Event>
为什么此标记<?xml version="1.0" encoding="UTF-8"?>
已消失?
答案 0 :(得分:1)
在使用带有<?xml version="1.0" encoding="UTF-8"?>
标记的XML映射时,似乎WSO2CEP 3.x无法格式化消息。
解决方法是使用文本映射,如下所示
<?xml version="1.0" encoding="UTF-8"?>
<eventFormatter name="Formatter_XML_Out" statistics="disable"
trace="disable" xmlns="http://wso2.org/carbon/eventformatter">
<from streamName="Test_stream_out_xml" version="1.0.0"/>
<mapping customMapping="enable" type="text">
<inline>
<![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<Event>
<Name>{{Name}}</Name>
<Surname>{{Surname}}</Surname>
</Event>
]]>
</inline>
</mapping>
<to eventAdaptorName="ActiveMQ_Output" eventAdaptorType="jms">
<property name="transport.jms.Destination">myQueue</property>
</to>
</eventFormatter>
在这里使用 type =“text”。
答案 1 :(得分:0)
没有。 ?xml
text declaration必须出现在文档的开头:
文本声明绝不能出现在外部解析实体开头以外的任何位置。
这是由XML解析器强制执行的。
在编辑中,您希望输出文档包含声明。控制它的唯一方法是通过外部eventFormatter
配置。 documentation doesn't show a way to do this。
但是,没有必要 - 在没有声明的情况下UTF-8已经是默认值,因此可以省略。