我坚持从 wso2 esb 5.0 创建输出消息。消息的正确形式应该是:
<request lang="11" user="user" pwd="pwd">
<query dateformat="%d-%m-%Y" maxrecords="100">
<tables>
<table tablename="Company"/>
</tables>
<condition>
<cond tablename="Company" fieldname="Upd" op=">" value="10.11.2016"/>
<cond tablename="Company" fieldname="UpdTime" op=">" value="01:00"/>
</condition>
有趣的部分是“>” 在“op”属性中。必须有“>” 而不是“>”。CDATA 和这个字符也不起作用:
&
我尝试使用不同值的有效负载工厂、xslt 转换和脚本中介,但没有成功。我的错误尝试:
<payloadFactory description="Create Request" media-type="xml">
<format>
<request lang="11" user="user" pwd="pwd">
<query dateformat="%d-%m-%Y" maxrecords="100">
<tables>
<table tablename="Company"/>
</tables>
<condition>
<cond tablename="Company" fieldname="Upd" op=">" value="07.10.2016"/>
<cond tablename="Company" fieldname="UpdTime" op=">" value="01:00"/>
</condition>
</query>
</request>
</format>
<args/>
</payloadFactory>
使用 XSLT:
<xslt description="Create Request" key="get-companies"/>
<localEntry key="get-companies" xmlns="http://ws.apache.org/ns/synapse">
<xsl:stylesheet exclude-result-prefixes="ws" version="1.0" xmlns:ws="http://ws.company.com/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output encoding="UTF-8" indent="yes" method="xml" omit-xml-declaration="no"/>
<xsl:template match="/">
<xsl:element name="request">
<xsl:attribute name="lang">11</xsl:attribute>
<xsl:attribute name="user">user</xsl:attribute>
<xsl:attribute name="pwd">pwd</xsl:attribute>
<xsl:element name="query">
<xsl:attribute name="maxrecords">100</xsl:attribute>
<xsl:attribute name="dateformatin">%d-%m-%Y</xsl:attribute>
<tables xmlns="">
<table tablename="Company"/>
</tables>
<condition xmlns="">
<xsl:element name="cond">
<xsl:attribute name="tablename">Company</xsl:attribute>
<xsl:attribute name="fieldname">Upd</xsl:attribute>
<xsl:attribute name="op">></xsl:attribute>
<xsl:attribute name="value">
<xsl:value-of select="07.01.2016"/>
</xsl:attribute>
</xsl:element>
<cond fieldname="UpdTime" op=">" tablename="Company" value="01:00"/>
</condition>
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
脚本中介:
<script language="js"><![CDATA[mc.setPayloadXML(<request lang="11" user="user" pwd="pwd">
<query dateformat="%d-%m-%Y" maxrecords="100">
<tables>
<table tablename="Company"/>
</tables>
<condition>
<cond tablename="Company" fieldname="Upd" op="&gt;" value="07.01.2016"/>
<cond tablename="Company" fieldname="UpdTime" op="&gt;" value="01:00"/>
</condition>
</query>
</request>); ]]></script>
请帮我找到正确的表格。