2012-02-15 2 views
2

Я использую веб-службу SOAP из Apex, что SOAP-стек Salesforce не поддерживает, поэтому я рассматриваю его как XML через HTTP.Как я могу отменить отметку значений схемы XML в Apex?

У меня есть значения схемы XML, такие как dateTime 2008-03-30T00:00:00-05:00, что мне нужно, чтобы unmarshall в Apex. Есть ли встроенная поддержка или доступная библиотека, которая может это сделать?

+0

Вы имеете в виду только разбор поддержки для datetime или вы имеете в виду всю энчиладу (схема для класса gen, сериализация и десериализация)? – mmix

+0

Моя текущая забота - это даты. Но более широкий вопрос касается любого примитивного типа схемы XML: http://www.w3.org/TR/xmlschema-2/#built-in-primitive-datatypes –

ответ

1

Там нет простого решения для этого, как вы, вероятно, пытался сразу же, то Datetime.valueOf() мало поможет здесь, вам придется рассекать строку и составляют базовую DATETIME, используя статический метод 6-PARAMS newInstanceGmt, а затем вызвать addHours/addMinutes для компенсации часового пояса.

Даже если мы пренебрегаем губернатором (и я подозреваю, что вы легко столкнетесь с ним, если у вас большой набор с большим количеством дат), другие примитивные типы также потребуют специальной обработки, тогда у вас будет набор предопределенные производные типы, а вверху - все пользовательские производные типы с фасетками. А затем смешайте все вместе, чтобы получить сложные типы. И когда вы все закончите со всем этим, у вас будет собственный стек SOAP в Apex :) Как я могу убедить вас не делать этого :)

У меня были подобные проблемы, но я даже не хотел развлекать идея создания пользовательского SOAP-стека (у меня уже были огромные проблемы с JSON library и лимитером регулятора). Решение, которое я использовал, - это установить прокси-сервер ASMX на сервере компании, близком к исходному (хотя он не должен быть технологией MS, вы можете одинаково создать такой же прокси-сервер с, скажем, Axis), который будет потреблять WSDL в полном объеме принудительные и переупаковывающие операции в детское питание, которое Salesforce SOAP может переваривать. Даже с отставанием от другой веб-службы было еще лучше, чем ничего.

Смежные вопросы