•使用ScriptMethodAttribute进行标记
–ResponseFormat属性设为Xml
–Response的Content-Type将为text/xml
•可以使用字符串拼接出XML并输出
•可以返回Xml相关类型
–XmlDocument、XmlElement
•返回普通对象时将使用XmlSerializer输出
–可以使用.NET中强大的XML序列化功能
aspx
<
form id
=
"
form1
"
runat
=
"
server
"
>
< asp:ScriptManager runat = " server " ID = " ScriptManager1 " ScriptMode = " Debug " >
< Services >
< asp:ServiceReference Path = " Services/ReturnXmlService.asmx " InlineScript = " true " />
</ Services >
</ asp:ScriptManager >
< input type = " button " value = " GetXmlDocument " onclick = " ReturnXmlService.GetXmlDocument(onSucceeded); " />< br />< br />
< input type = " button " value = " GetXmlElement " onclick = " ReturnXmlService.GetXmlElement(onSucceeded); " />< br />< br />
< input type = " button " value = " GetEmployee " onclick = " ReturnXmlService.GetEmployee(onSucceeded); " />< br />< br />
< input type = " button " value = " GetXmlString " onclick = " ReturnXmlService.GetXmlString(onSucceeded); " />< br />< br />
< input type = " button " value = " GetSerializedString " onclick = " ReturnXmlService.GetSerializedString(onSucceeded); " />
< script language = " javascript " type = " text/javascript " >
function onSucceeded(result)
{
alert(result.xml);
}
</ script >
</ form >
< asp:ScriptManager runat = " server " ID = " ScriptManager1 " ScriptMode = " Debug " >
< Services >
< asp:ServiceReference Path = " Services/ReturnXmlService.asmx " InlineScript = " true " />
</ Services >
</ asp:ScriptManager >
< input type = " button " value = " GetXmlDocument " onclick = " ReturnXmlService.GetXmlDocument(onSucceeded); " />< br />< br />
< input type = " button " value = " GetXmlElement " onclick = " ReturnXmlService.GetXmlElement(onSucceeded); " />< br />< br />
< input type = " button " value = " GetEmployee " onclick = " ReturnXmlService.GetEmployee(onSucceeded); " />< br />< br />
< input type = " button " value = " GetXmlString " onclick = " ReturnXmlService.GetXmlString(onSucceeded); " />< br />< br />
< input type = " button " value = " GetSerializedString " onclick = " ReturnXmlService.GetSerializedString(onSucceeded); " />
< script language = " javascript " type = " text/javascript " >
function onSucceeded(result)
{
alert(result.xml);
}
</ script >
</ form >
ReturnXmlService.asmx
<%
@ WebService Language
=
"
C#
"
Class
=
"
ReturnXmlService
"
%>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
using System.Xml;
[WebService(Namespace = " http://tempuri.org/ " )]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class ReturnXmlService : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
public XmlNode GetXmlDocument()
{
XmlDocument doc = new XmlDocument();
doc.LoadXml( " <Employee><Name>Jeffrey Zhao</Name><Salary>1000</Salary></Employee> " );
return doc;
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
public XmlNode GetXmlElement()
{
XmlDocument doc = new XmlDocument();
doc.LoadXml( " <Employee><Name>Jeffrey Zhao</Name><Salary>1000</Salary></Employee> " );
return doc.DocumentElement;
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
public Employee GetEmployee()
{
return new Employee( " Jeffrey Zhao " , 1000 );
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
public string GetXmlString()
{
return " <Employee><Name>Jeffrey Zhao</Name><Salary>1000</Salary></Employee> " ;
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml, XmlSerializeString = true )]
public string GetSerializedString()
{
return " <Employee><Name>Jeffrey Zhao</Name><Salary>1000</Salary></Employee> " ;
}
}
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
using System.Xml;
[WebService(Namespace = " http://tempuri.org/ " )]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class ReturnXmlService : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
public XmlNode GetXmlDocument()
{
XmlDocument doc = new XmlDocument();
doc.LoadXml( " <Employee><Name>Jeffrey Zhao</Name><Salary>1000</Salary></Employee> " );
return doc;
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
public XmlNode GetXmlElement()
{
XmlDocument doc = new XmlDocument();
doc.LoadXml( " <Employee><Name>Jeffrey Zhao</Name><Salary>1000</Salary></Employee> " );
return doc.DocumentElement;
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
public Employee GetEmployee()
{
return new Employee( " Jeffrey Zhao " , 1000 );
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
public string GetXmlString()
{
return " <Employee><Name>Jeffrey Zhao</Name><Salary>1000</Salary></Employee> " ;
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml, XmlSerializeString = true )]
public string GetSerializedString()
{
return " <Employee><Name>Jeffrey Zhao</Name><Salary>1000</Salary></Employee> " ;
}
}