Salesforce 如何在Apex中解组XML模式值?

Salesforce 如何在Apex中解组XML模式值?,salesforce,apex-code,force.com,Salesforce,Apex Code,Force.com,我正在使用来自Apex的SOAP web服务,salesforce的SOAP堆栈不支持该服务,因此我将其视为HTTP上的XML 我有XML模式值,比如dateTime2008-03-30T00:00:00-05:00,我需要将其解组到Apex中。是否有内置的支持或可用的库可以做到这一点?对此没有简单的解决方案,因为您可能马上就尝试过,Datetime.valueOf()在这里没有什么帮助,您必须使用6参数newInstanceGmt静态方法解析字符串并合成基本日期时间,然后调用addHours/

我正在使用来自Apex的SOAP web服务,salesforce的SOAP堆栈不支持该服务,因此我将其视为HTTP上的XML


我有XML模式值,比如dateTime
2008-03-30T00:00:00-05:00
,我需要将其解组到Apex中。是否有内置的支持或可用的库可以做到这一点?

对此没有简单的解决方案,因为您可能马上就尝试过,
Datetime.valueOf()
在这里没有什么帮助,您必须使用6参数
newInstanceGmt
静态方法解析字符串并合成基本日期时间,然后调用
addHours
/
addMinutes
来补偿时区

即使我们忽略了调控器(我怀疑如果你有一个包含大量日期的大型集合,你会很容易遇到调控器),其他基本类型也需要特殊处理,然后你会有一组预定义的派生类型,并在所有自定义派生类型的顶部加上刻面。然后将它们混合在一起,得到复杂的类型。当您完成所有这些之后,您将在Apex中拥有一个自定义SOAP堆栈:)我如何才能说服您不要这样做:)


我也有类似的问题,但我甚至不想考虑构建自定义SOAP堆栈的想法(我已经有了和调速器限制器的巨大问题)。我使用的解决方案是在公司服务器上靠近源代码的位置安装一个ASMX“代理”(虽然它不一定是MS tech,但您也可以使用Axis构建一个相同的代理),该代理将完全使用WSDL,并将操作重新打包到salesforce SOAP可以消化的婴儿食品中。即使有另一个web服务的延迟,它仍然比没有要好得多。

你是说仅仅解析对datetime的支持,还是指整个enchilada(从模式到类gen,序列化和反序列化)?我当前关心的是日期。但更广泛的问题是关于任何原始XML模式类型: