.Net Web サービスについて最初に理解すべきことは、それらが SOAP プロトコルを使用していたことです。これは、Web メソッドを介して返される型が何であれ、XML にシリアル化されることを意味します。したがって、返されるすべてのオブジェクトは、呼び出し元に返される XML 文字列になります。
XML を実際の文字列値として返すだけの場合は、次のように Web サービス内にサーバー側のメソッドを作成します。
[WebMethod]
public string ReturnXMLString() {
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<root><item>Hello World</item></root>");
return xmlDoc.OuterXML;
}
ただし、実際の XML を呼び出し元に返そうとする場合は、次のように .Net に XML のシリアライズを任せます。
[WebMethod]
public XmlDocument ReturnXMLString() {
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<root><item>Hello World</item></root>");
return xmlDoc;
}
最後に、SOAP プロトコルを使用せずに単純に XML 応答を探している場合は、応答を XML としてラップしてシリアライズし、特注のページからページ応答を試してください。
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);