本人欲与某高人用Java作的Web Service之间传递数据,高人定义了数据表的XML DTD文件如下:
<!ELEMENT DBSET (ROW*) >
<!ATTLIST DBSET RESULT #IMPLIED>
<!ELEMENT ROW (COL+) >
<!ELEMENT COL (#PCDATA) >
<!ATTLIST COL NAME #REQUIRED >
嵌套使用示例如下:
<DBSET>
<ROW>
<COL NAME="ID1">1</COL>
<COL NAME="省份">湖北省</COL>
<COL NAME="所辖市">
<DBSET>
<ROW>
<COL NAME="ID2">1</COL>
<COL NAME="城市">武汉市</COL>
</ROW>
</DBSET>
</COL>
</ROW>
</DBSET>请问在C#使用如何通过序列化来实现?能用DataSet实现吗?
<!ELEMENT DBSET (ROW*) >
<!ATTLIST DBSET RESULT #IMPLIED>
<!ELEMENT ROW (COL+) >
<!ELEMENT COL (#PCDATA) >
<!ATTLIST COL NAME #REQUIRED >
嵌套使用示例如下:
<DBSET>
<ROW>
<COL NAME="ID1">1</COL>
<COL NAME="省份">湖北省</COL>
<COL NAME="所辖市">
<DBSET>
<ROW>
<COL NAME="ID2">1</COL>
<COL NAME="城市">武汉市</COL>
</ROW>
</DBSET>
</COL>
</ROW>
</DBSET>请问在C#使用如何通过序列化来实现?能用DataSet实现吗?
一、先定义几个类:
[XmlType(TypeName="DBSET")]
public class DbSet
{
public DbSet()
{
m_Rows=new Row[2];
for(int i=0;i<2;i++)
m_Rows[i]=new Row();
} private Row[] m_Rows;
[XmlElement(ElementName="ROW")]//数组序列化为平面的XML序列
public Row[] Rows
{
get{ return m_Rows;}
set{ m_Rows=value;}
}
} [XmlType(TypeName="ROW")]
public class Row
{
public Row()
{
m_Columns=new Column[3];
for(int i=0;i<3;i++)
{
m_Columns[i]=new Column();
m_Columns[i].FieldName="字段"+i.ToString();
m_Columns[i].FieldValue="值"+i.ToString();
}
} private Column[] m_Columns;
[XmlElement(ElementName="COL")]//数组序列化为平面的XML序列
public Column[] Columns
{
get{ return m_Columns;}
set{ m_Columns=value;}
}
} [XmlType(TypeName="COL")]
public class Column
{
public Column()
{
}
public Column(string strName,string strValue)
{
m_strFieldName=strName;
m_strFieldValue=strValue;
} private string m_strFieldName;
[XmlAttribute(AttributeName="NAME",DataType="string")]
public string FieldName
{
get{ return m_strFieldName;}
set{ m_strFieldName=value;}
} private string m_strFieldValue;
[XmlText()]
public string FieldValue
{
get{ return m_strFieldValue;}
set{ m_strFieldValue=value;}
}
}
二、将DataSet转化为自定义的类
过程略。过程麻烦了点,希望有高人进一步指定。结贴。