2010-07-23 4 views
2

XML을 Webservice에서 문자열로 보내는 것에 대한 질문이 있습니다. 우리 공급자 중 하나가 사용해야하는 웹 서비스를 개발했습니다. 그들의 웹 서비스는 기본적으로 자신의 요청/응답 메시지를위한 전송 메커니즘입니다. MyRequest 클래스는 웹 서비스에서 setRequest 메서드에 전달 된 JAXB를 사용하여 XML 문자열로 serialize됩니다. 아마도 가장 쉬운 방법 이었거나 응용 프로그램에서 높은 투명성을 원했기 때문일 수 있습니다. 잘 모르겠습니다.JAX-WS 및 문자 인코딩 질문

아무튼. 여기에 내 질문이있다.

문자 인코딩이 ISO_8859-1 인 웹 서비스가 있지만 직렬화 된 XML에 문자 인코딩이 UTF-8 (또는 ISO_8859-1보다 많은 다른 인코딩을 지원하는 다른 인코딩) 인 경우 이러한 코드는 항상 직렬화되고 올바르게 직렬화됩니까? 아니면 문자열의 내용에 대한 정보를 보내야합니까? 그렇다면 어떻게해야합니까?

웹 서비스의 서버 측은 .NET으로 작성됩니다. Java와 .NET의 호환성은 어떻습니까? Java에서 지원되지 않는 .NET의 인코딩이 있습니까? 그 반대의 경우도 있습니까?

/안드레아스

답변

0

그들은 (그리고 당신도 할), 다음, 문자 인코딩에 대해 걱정할 필요가 없습니다 올바르게 웹 서비스를 구현하는 경우 때문에 :

  1. (잘 구성된) XML 내장 된 사용 된 문자 인코딩을 할 수 있습니다 메타 데이터를 정확히 발견하고
  2. XML 때문에 numeric character references
에, 유니 코드 문자가 어떤 인코딩으로 표현 될 수있다

요약하면 : 양측이 유니 코드 사용 가능 환경 (C# 및 Java는 이에 적합합니다)에서 텍스트를 처리하고 올바른 XML 라이브러리를 사용하십시오 (두 환경 모두 함께 제공됨). 수동으로, 당신은 잘되어야합니다.

+0

Okey이므로 웹 서비스의 문자 인코딩이 UTF_8859-1이고 동봉 된 직렬화 된 XML의 문자 인코딩이 UTF-8 인 경우에는 둘러싸인 문자열이 이스케이프됩니다. 그 맞습니까? 동봉 된 직렬화 된 문자열이 CDATA 섹션에 래핑 된 경우 문자 데이터이므로 유효 할 것입니다. 맞습니까? –

+0

아닙니다. 다른 XML 내부의 XML은 실제로 자체 XML 인코딩을 가지고 있지 않습니다. XML은 외부 XML 내부의 유니 코드 텍스트이기 때문에 동일한 인코딩을 사용합니다. out XML 인코딩에서 표현할 수없는 문자는 숫자로 된 문자 참조로 표현됩니다. –