2014-07-22 3 views
0

내 회사의 플랫폼과 웹 서비스의 파트너 세트 사이의 인터페이스 계층을 구현하고는 XML에서 때문에 네임 스페이스

시나리오의 역 직렬화 할 수 없습니다. 이러한 서비스는 XML이지만 SOAP가 아닌 https를 통해 노출됩니다.

각 서비스에는 관련 클래스를 만든 XSD 파일이 있습니다.

파트너에게는 프로덕션 환경과 sanbox 환경이 있습니다. XSD 파일의 네임 스페이스는 프로덕션 환경을 독점적으로 나타냅니다. XSD를 도구와 XSD 파일을 사용하여 만든 그래서 모든 클래스 프로덕션 환경을 참조 있어요 특성이있다 : 나는 샌드 박스 환경에서 비즈니스 로직을 테스트하고 이제

[System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://url/to/production/environment/getnewsalesresult")] 

문제를 . 웹 서비스 XML 응답이 샌드 박스 네임 스페이스를 참조 : 대상 클래스는 샌드 박스를 모르기 때문에

There is an error in XML document (5, 2). ---> System.InvalidOperationException: <getnewsalesresult xmlns='http://url/to/sandbox/environment/getnewsalesresult'> was not expected. 

:

xmlns="http://url/to/sandbox/environment/getnewsalesresult" 

을 결국 해당 클래스에 응답을 역 직렬화 할 때,이 오류가 발생합니다 네임 스페이스 !!

나는 샌드 박스 응답 및 생산 네임 스페이스 참조와 샌드 박스 네임 스페이스 참조를 교체에 따라 가짜 XML 응답을 생성 한

증거. 이 응답을 해당 클래스로 성공적으로 역 직렬화했습니다.

[System.Xml.Serialization.XmlTypeAttribute(Namespace = myProgrammaticallySetNamespaceValue)] 
+0

- 파트너가 반환되는 XML의 네임 스페이스에 따라 다를 경우를 환경이 그것들을 생산한다면, 그것은 결국 그들의 논리적 오류 일 것입니다. 그들은 XML을 이해하지 못합니다. –

답변