.Net 웹 서비스에서 가장 먼저 이해해야 할 것은 SOAP 프로토콜을 사용한다는 것입니다. 즉, 웹 메서드를 통해 반환하는 모든 형식은 XML로 serialize됩니다. 따라서 반환 된 모든 객체는 호출자에게 다시 전달되는 XML 문자열입니다.
[WebMethod]
public string ReturnXMLString() {
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<root><item>Hello World</item></root>");
return xmlDoc.OuterXML;
}
을하지만 당신은 다음 호출자에게 실제 XML을 반환하려는 경우 :
당신은 여전히 간단하게 다음과 같이 귀하의 웹 서비스에서 서버 측 방법을 만들 실제 문자열 값으로 XML을 반환하고자하는 경우
[WebMethod]
public XmlDocument ReturnXMLString() {
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<root><item>Hello World</item></root>");
return xmlDoc;
}
마지막으로, 당신은 단순히 SOAP 프로토콜을 포장하지 않고 XML 응답을 찾고 XML로 응답을 serialising 경우 다음 맞춘에서 페이지 응답을 시도 : 간단하게 다음과 같이 닷넷은 XML을 serialising을 돌볼 수 있도록 페이지 :
void Page_Load(object sender, EventArgs e) {
XmlDocument xmlDoc= new XmlDocument();
xmlDoc.LoadXml("<root>Hello World</root>");
Response.ContentType ="text/xml";
xmlDoc.Save(Response.Output);
저는 비누가 있어도 괜찮으며 XmlDocument를 반환해도 괜찮습니다. XmlDocument를 반환하면 두 가지 질문이 있습니다. 1. 반환 값은 .Net 이외의 언어에서 어떻게 소비됩니까? 반환 값은 ATL 또는 Java에서 어떻게 보입니까? 닷넷에서는 XmlNode xml = MyService.MyCall(); 2. "string"을 반환하는 다른 서비스를보고 문자열에 xml이 포함되어 있고 WSDL 상태 soap이 사용되었습니다. 그들은 어떻게 그것을 성취합니까? 그들은 1 단계를 수행하고 있으며 나에게 XML이 다시 나타날 때까지는? 감사합니다. – BabelFish
다른 언어가 웹 서비스를 어떻게 소비하는지에 대해 질문하는 것으로 보입니다. 이해해야 할 것은 웹 서비스는 일반적으로 SOAP 기반이라는 것입니다. 이것은 XML을 통해 데이터를 정의하는 플랫폼 독립적 인 방법입니다. .Net 웹 서비스를 읽는 Java 클라이언트가있는 경우 호출자가 공급자 언어 구현을 이해하는지에 대한 의존성없이 일반 중간 언어로 XML을 사용합니다. 이것이 결과를 둘러싼 모든 XML을 감싸는 이유입니다. 이것은 하나의 언어 데이터 유형과 값을 표현하는 설명적인 마크 업입니다. –