关于WebService的格式问题。

tylrw 2008-09-05 07:06:11
我是新手。

我在开发webservice时,有个疑问:

我从数据库中得到一DataSet,然后返回,.net会自动生成相应的webService格式。
因为我觉得自动生成的webService格式,里面有很多废代码,如下:

<?xml version="1.0" encoding="utf-8" ?>
<DataSet xmlns="http://localhost/myservice">
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Table1">
<xs:complexType>
<xs:sequence>
<xs:element name="ResourceID" type="xs:string" minOccurs="0" />
<xs:element name="ResourceName" type="xs:string" minOccurs="0" />
<xs:element name="ResourceCode" type="xs:string" minOccurs="0" />
<xs:element name="ClassID" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<NewDataSet xmlns="">
<Table1 diffgr:id="Table11" msdata:rowOrder="0" diffgr:hasChanges="inserted">
<ResourceID>32876</ResourceID>
<ResourceName>黄土</ResourceName>
<ResourceCode>00010101C05050033676</ResourceCode>
<ClassID>-999</ClassID>
</Table1>
<Table1 diffgr:id="Table12" msdata:rowOrder="1" diffgr:hasChanges="inserted">
<ResourceID>32877</ResourceID>
<ResourceName>黄土</ResourceName>
<ResourceCode>00010101C05050033677</ResourceCode>
<ClassID>-999</ClassID>
</Table1>

</NewDataSet>
</diffgr:diffgram>
</DataSet>


而如果我生成标准的xml格式,


<?xml version="1.0" encoding="utf-8" ?>
<NewDataSet>
<Rows>
<ResourceID>32876</ResourceID>
<ResourceName>黄土</ResourceName>
<ResourceCode>00010101C05050033676</ResourceCode>
<ClassID>-999</ClassID>
</Rows>
<Rows>
<ResourceID>32877</ResourceID>
<ResourceName>黄土</ResourceName>
<ResourceCode>00010101C05050033677</ResourceCode>
<ClassID>-999</ClassID>

</Rows>
</NewDataSet>
...全文
189 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tylrw 2008-09-05
  • 打赏
  • 举报
回复
string getString = ResponseContent(ClassID.ToString(), ResourceID.ToString());
上面这句是没有用的。不用理他。
tylrw 2008-09-05
  • 打赏
  • 举报
回复

[WebMethod(Description = "得到详细信息,参数(int ClassID,int ResourceID)。")]
public XmlDocument get_test(int ResourceID, int ClassID)
{
string mystr = "<record >";
for (int i = 0; i < 10; i++)
{
mystr += "<class id=\"classID_" + i.ToString() + "\" >";
for (int j = 0; j < 10; j++)
{
mystr += "<field >";
mystr += "<fieldID >" + i.ToString() + "</fieldID>";
mystr += "<fieldName >Name_" + i.ToString() + "</fieldName>";
mystr += "<fieldValue >Value_" + i.ToString() + "</fieldValue>";
mystr += "</field>";
}
mystr += "</class>";
}
mystr += "</record>";

string getString = ResponseContent(ClassID.ToString(), ResourceID.ToString());
XmlDocument xml = new XmlDocument();
xml.LoadXml("<ResourceContent >" + mystr + "</ResourceContent>");

return xml;
}
tylrw 2008-09-05
  • 打赏
  • 举报
回复
哦,为了扩展什么?你是指webservice的接口么》?

我的意思,不是说提供给调用者直接就是xml,而是说,在提供的webservice中返回的内容是纯xml格式。

而不是像dataset中,返回的那样,那么多废代码。
行者无疆-Kevin 2008-09-05
  • 打赏
  • 举报
回复
webservice是为了扩展,使用xsd文件格式化显示等。
tylrw 2008-09-05
  • 打赏
  • 举报
回复
这两种有什么区别?会不会导致webService不能调用?

能不能直接使用xml返回?

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧