以下是我尝试为以下内容创建网络服务的XML格式:
<test a1="a1">
<e1>e1</e1>
<e2 a2="a2">
<e3>e3</e3>
<e3>e3</e3>
</e2>
</test>
我的问题是我不知道如何创建符合XML格式的Coldfusion(cfcomponent)SOAP Web服务。
这就是我的想法:
<cfcomponent style="document" wsversion = 1 >
<cffunction name="test" returntype="String" access="remote">
<cfargument type="String" required="no" name="e1"/>
<cfargument type="xml" required="no" name="e2" />
<cfreturn "ok">
</cffunction>
</cfcomponent>
正如你所看到的,a1,a2和e3被遗漏了,因为我不知道如何在cffunction中定义它们,我不确定将e2作为xml类型是否正确。
感谢任何帮助。
答案 0 :(得分:1)
你必须使用
<cfsavecontent variable="textxml">
<cfoutput>
<test a1="a1">
<e1>e1</e1>
<e2 a2="a2">
<e3>e3</e3>
<e3>e3</e3>
</e2>
</test>
</cfoutput>
</cfsavecontent>
并将testxml变量作为xml类型参数传递给函数。
<cfinvoke method="test" component="compname" xmltest="#textxml#">
无需发送单独的参数e1 e2 ...可以将testxml变量发送给函数。
<cfcomponent >
<cffunction name="test" returntype="String" access="remote">
<cfargument type="xml" required="no" name="xmltest" />
<cfset newXML = XMLParse(arguments.xmltest)>
<cfdump var="#newXML#">
<cfreturn "ok">
</cffunction>
</cfcomponent>