本节对返回值标准进行了详细说明,包括返回值相关类型和返回值数据标准。
返回值相关类:
TXmlReturn
public class TXmlReturn { private int frno; private string frmsg; private ArrayList fdatalist; private TStrList fhead; private string fxml; private TStrList fcolumnlist; private DataTable fdatatable; /// <summary> /// 构造函数 /// </summary> /// <param name="rxml">需要解析的已编码数据</param> public TXmlReturn( string rxml ){} /// <summary> /// 将已编码数据进行解码 /// </summary> private void decodeReturn(){}} /// <summary> /// 填充列列表 /// </summary> private void fillFColumnList(){} /// <summary> /// 填充数据列表 /// </summary> private void fillFDataList(){} /// <summary> /// 将数据还原为DataTable类型 /// </summary> private void decodeToDataTable(){} /// <summary> /// 根据数据类型字符串返回系统类型 /// </summary> /// <param name="typestr"></param> /// <returns></returns> private System.Type getTypeByTypeString(string typestr){} /// <summary> /// DataTable类型数据返回值 /// </summary> public DataTable rdatatable{get;} /// <summary> /// 返回状态码 /// </summary> public int rno{get;} /// <summary> /// 返回的状态信息 /// </summary> public string rmsg{get;} /// <summary> /// 返回的数据头部,如果为DataTable序列化数据,则无此项 /// </summary> public TStrList rhead{get;} /// <summary> /// 数据列表,每一项为TStrList类型 /// </summary> public ArrayList rdata{get;} /// <summary> /// 列列表 /// </summary> public TStrList rcolumnlist{get;} /// <summary> /// 数据记录条数 /// </summary> public int DataRowCount{get;} /// <summary> /// 数据列数 /// </summary> public int DataColumnCount{get;} } |
该类对TReturnManager返回的数据进行解析,将字符串型数据还原为包含返回状态码,返回状态信息,返回状态数据的原始数据。
返回值标准
返回数据形式由TReturnManager的XML_TYPE_SCHEMA常量决定,标准如下:
XML_TYPE_SCHEMA = true,DataTable序列化的传输方式
§ 使用标准XML格式
§ 分为状态、dataSchema、data三个节点
§ 状态为必须具备的节点,其他两个节点可选
示例为:
<?xml version="1.0" encoding="UTF-8" ?> <return rno="0" rmsg="成功"> <dataSchema> <xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:Locale="zh-CN"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element name="Table1"> <xs:complexType> <xs:sequence> <xs:element name="id" type="xs:string" minOccurs="0" /> <xs:element name="password" type="xs:string" minOccurs="0" /> <xs:element name="sex" type="xs:string" minOccurs="0" /> <xs:element name="name" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> </dataSchema> <data> <NewDataSet> <Table1> <id>123456</id> <password /> <sex>F</sex> <name>张三</name> </Table1> </NewDataSet> </data> </return> |
其详细说明如下
§ <return>根结点,即状态节点,rno和rmsg两个属性分别表示返回状态码和状态信息。
§ <dataSchema>和<data>为<return>的两个子节点,分别为DataSet的GetXmlSchema和GetXml的数据,以便接收端可以直接将其转换为DataTable
XML_TYPE_SCHEMA = false,TStrList类型传输方式
§ 使用标准XML格式
§ 分为状态、头部、列标题、数据体四个节点
§ 状态为必须具备的节点,其他三个节点可选
示例为:
<?xml version="1.0" encoding="UTF-8" ?> <return rno="0" rmsg="成功"> <head> <param name="title" type="string">测试数据</param> <param name="row" type="int">1</param> </head> <columnlist> <columntitle>rwd_gzlh</columntitle> <columntitle>gzlh</columntitle> </columnlist> <data rowcount="1"> <row title=""> <column name="column1" type="string">测试数据1</column> <column name="column2" type="string">测试数据2</column> </row> </data> </return> |
其详细说明如下:
§ <return>根结点,即状态节点,rno和rmsg两个属性分别表示返回状态码和状态信息。
§ <head>头节点,可选,用于保存返回值额外信息,其每个子节点<param>表示一个参数,其包括name和type两个属性,分别表示参数名和类型。
§ <columnlist>列标题节点,可选(如有<data>节点,则该节点必存在),保存了返回值中各列的名称。<columntitle>节点为其子节点,表示各列标题。
§ <data>数据体节点,可选,保存了二维数据值。子节点<row>表示一行,<row>的子节点<column>表示本行的一列。列子节点表示形式同<head>中的<param>节点。