2012-02-15 3 views
2

저는 Salesforce의 SOAP 스택이 지원하지 않는 Apex의 SOAP 웹 서비스를 사용하고 있습니다. 따라서 HTTP를 통해 XML로 처리하고 있습니다.Apex에서 XML 스키마 값을 언 마샬링 할 수 있습니까?

필자는 Apex에 언 마샬해야하는 dateTime 2008-03-30T00:00:00-05:00과 같은 XML 스키마 값을 가지고 있습니다. 내장 된 지원이나 이것을 할 수있는 라이브러리가 있습니까?

+0

당신은 datetime에 대한 지원을 구문 분석하는 것을 의미합니까, 아니면 전체 enchilada (클래스 gen, 직렬화 및 비 직렬화 스키마)를 의미합니까? – mmix

+0

현재 관심사는 날짜입니다. 그러나 더 광범위한 질문은 원시 XML 스키마 유형에 관한 것입니다. http://www.w3.org/TR/xmlschema-2/#built-in-primitive-datatypes –

답변

1

이에 대한 쉬운 해결책은 당신이 아마 지금 당장 시도 같이 Datetime.valueOf() 당신이 문자열을 해부 6 PARAMS newInstanceGmt 정적 방법을 사용하여 기본 날짜 시간을 구성해야합니다, 여기에 약간의 도움이있다, 없다, 다음 addHours 전화/addMinutes을 사용하여 시간대를 보정하십시오.

거버너를 소홀히해도 (많은 날짜가있는 큰 세트가있는 경우 쉽게 실행될 것으로 생각됩니다) 다른 기본 유형에도 특수 처리가 필요합니다. 미리 정의 된 파생 형식을 사용하고 패싯을 사용하여 모든 사용자 지정 파생 형식의 맨 위에 배치 할 수 있습니다. 그런 다음 모두 함께 혼합하여 복잡한 유형을 얻습니다. 그리고이 모든 작업을 끝내면 Apex에 사용자 정의 SOAP 스택이 생깁니다. 어떻게하지 않을지 확신 할 수 있습니다. :)

나는 비슷한 문제가 있었지만, 커스텀 SOAP 스택을 빌드하는 아이디어 (나는 이미 JSON library과 거버너 리미터로 큰 문제를 안고 있었다). 내가 사용한 솔루션은 소스에 가까운 회사의 서버에 ASMX "프록시"를 설치하는 것입니다 (MS 기술 일 필요는 없지만 Axis와 동일한 프록시를 똑같이 구축 할 수는 있지만). WSDL을 완전히 소비합니다. 세일즈 포스 SOAP이 소화 할 수있는 유아식에 작업을 강제하고 재 포장하십시오. 다른 웹 서비스를 피기 백하는 것의 지연에도 불구하고 여전히 아무것도 아닌 것보다 더 나았습니다.

관련 문제