Dear all,
I have a set of c# data classes which i need to fill their data from xml
files. serialization looks to be the best way to accomplish this task.
Since the data classes are compiled and i don't have control on the xml
structure, I tried using the xmlAttributeOverrides class, to instruct the
serializer.
I was able to override the attributes for the root element, but I'm having
problems understanding how to deserialize arrays.
I would be delitaed if you could take a look at the code, and try to figure
out what's wrong there.
Thanks in advance,
Zion.
The data class to be deserialized:
public class Bead
{
private Point[] m_points;
private double m_id;
public Bead(){}
public double BeadID
{
get{return m_id;}
set{m_id = value;}
}
public Point[] Points
{
get{return m_points;}
set{m_points = value;}
}
}
public class Point
{
private string m_x;
private string m_y;
public Point(){}
public Point(string x, string y)
{
this.X = x;
this.Y = y;
}
public string X
{
get {return m_x;}
set {m_x = value;}
}
public string Y
{
get {return m_y;}
set {m_y = value;}
}
}
The input xml:
<BeadType BeadID="17"><Point ID="1" X="1" Y="0.02026"/><Point ID="2" X="2"
Y="0.02172"/><Point ID="3" X="3" Y="0.0233"/></BeadType>
The deserializing function:
private void button1_Click(object sender, System.EventArgs e)
{
FileStream fs = new FileStream(txtFile.Text, FileMode.Open);
XmlReader reader = new XmlTextReader(fs);
Type type = typeof(Bead);
XmlAttributeOverrides attOverrides = new XmlAttributeOverrides();
//Define the root element in the XML
XmlAttributes beadAtts = new XmlAttributes();
beadAtts.XmlRoot = new XmlRootAttribute("BeadType");
attOverrides.Add(type, beadAtts);
//
XmlAttributes beadIdAtts = new XmlAttributes();
XmlAttributeAttribute beadIDAtt = new XmlAttributeAttribute();
beadIDAtt.DataType = "double";
beadIDAtt.AttributeName = "BeadID";
beadIdAtts.XmlAttribute = beadIDAtt;
attOverrides.Add(type, "BeadID", beadIdAtts);
XmlAttributes atts = new XmlAttributes();
//XmlArrayAttribute aa = new XmlArrayAttribute("Point");
//atts.XmlArray = aa;
//attOverrides.Add(type, "Points", atts);
XmlArrayItemAttribute pointArrayItem = new XmlArrayItemAttribute();
pointArrayItem.ElementName = "Point";
pointArrayItem.DataType = "Point";
atts.XmlArrayItems.Add(pointArrayItem);
attOverrides.Add(typeof(Point), "Points", atts);
XmlSerializer serializer = new XmlSerializer(type, attOverrides);
object obj = serializer.Deserialize(reader);
reader.Close();
} 4 1526
Normally I would add attributes to the class to help the XmlSerializer to
deserialize the data which I've included below:
using System;
using System.Xml;
using System.Xml.Serialization;
public class XmlDeserializationDemo
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
private static void Main(string[] args)
{
Bead b = Deserialize(@"..\..\Bead.xml");
PrintBead(b);
}
private static void PrintBead(Bead b)
{
Console.WriteLine("Bead BeadID = {0}", b.BeadID);
foreach(Point point in b.Points)
{
Console.WriteLine("\tPoint x={0} y={1}", point.X, point.Y);
}
}
private static Bead Deserialize(string fileName)
{
XmlTextReader reader = new XmlTextReader(fileName);
XmlSerializer serializer = new XmlSerializer(typeof(Bead));
return serializer.Deserialize(reader) as Bead;
}
}
[XmlRoot("BeadType", Namespace="", IsNullable=false)]
public class Bead
{
private Point[] m_points;
private double m_id;
public Bead()
{
}
[XmlAttribute("BeadID")]
public double BeadID
{
get { return m_id; }
set { m_id = value; }
}
[XmlElement("Point")]
public Point[] Points
{
get { return m_points; }
set { m_points = value; }
}
}
public class Point
{
private string m_x;
private string m_y;
public Point()
{
}
public Point(string x, string y)
{
this.X = x;
this.Y = y;
}
[XmlAttribute("X")]
public string X
{
get { return m_x; }
set { m_x = value; }
}
[XmlAttribute("Y")]
public string Y
{
get { return m_y; }
set { m_y = value; }
}
}
Hope that helps
"Zion Zadik" wrote: Dear all,
I have a set of c# data classes which i need to fill their data from xml files. serialization looks to be the best way to accomplish this task. Since the data classes are compiled and i don't have control on the xml structure, I tried using the xmlAttributeOverrides class, to instruct the serializer. I was able to override the attributes for the root element, but I'm having problems understanding how to deserialize arrays.
I would be delitaed if you could take a look at the code, and try to figure out what's wrong there.
Thanks in advance, Zion.
The data class to be deserialized: public class Bead { private Point[] m_points; private double m_id;
public Bead(){}
public double BeadID { get{return m_id;} set{m_id = value;} }
public Point[] Points { get{return m_points;} set{m_points = value;} } } public class Point { private string m_x; private string m_y;
public Point(){}
public Point(string x, string y) { this.X = x; this.Y = y; }
public string X { get {return m_x;} set {m_x = value;} }
public string Y { get {return m_y;} set {m_y = value;} } }
The input xml: <BeadType BeadID="17"><Point ID="1" X="1" Y="0.02026"/><Point ID="2" X="2" Y="0.02172"/><Point ID="3" X="3" Y="0.0233"/></BeadType>
The deserializing function:
private void button1_Click(object sender, System.EventArgs e) { FileStream fs = new FileStream(txtFile.Text, FileMode.Open); XmlReader reader = new XmlTextReader(fs);
Type type = typeof(Bead);
XmlAttributeOverrides attOverrides = new XmlAttributeOverrides();
//Define the root element in the XML XmlAttributes beadAtts = new XmlAttributes(); beadAtts.XmlRoot = new XmlRootAttribute("BeadType"); attOverrides.Add(type, beadAtts);
// XmlAttributes beadIdAtts = new XmlAttributes(); XmlAttributeAttribute beadIDAtt = new XmlAttributeAttribute(); beadIDAtt.DataType = "double"; beadIDAtt.AttributeName = "BeadID"; beadIdAtts.XmlAttribute = beadIDAtt; attOverrides.Add(type, "BeadID", beadIdAtts);
XmlAttributes atts = new XmlAttributes(); //XmlArrayAttribute aa = new XmlArrayAttribute("Point"); //atts.XmlArray = aa; //attOverrides.Add(type, "Points", atts);
XmlArrayItemAttribute pointArrayItem = new XmlArrayItemAttribute(); pointArrayItem.ElementName = "Point"; pointArrayItem.DataType = "Point"; atts.XmlArrayItems.Add(pointArrayItem); attOverrides.Add(typeof(Point), "Points", atts);
XmlSerializer serializer = new XmlSerializer(type, attOverrides);
object obj = serializer.Deserialize(reader); reader.Close();
}
Thanks for your reply.
I'm sorry if I wasn't clear enough.
I don't want to add attributes in my class code. I only want to deserialize
the Xml using Attribute Overrides.
This way I don't need to re-compile my data classes with each change to the
XML (Which I don't have any control of).
Thanks,
Zion.
"Jorge Matos" <matos_jorge(NOSPAM)@hotmail.com> wrote in message
news:EA**********************************@microsof t.com... Normally I would add attributes to the class to help the XmlSerializer to deserialize the data which I've included below:
using System; using System.Xml; using System.Xml.Serialization;
public class XmlDeserializationDemo { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] private static void Main(string[] args) { Bead b = Deserialize(@"..\..\Bead.xml"); PrintBead(b); }
private static void PrintBead(Bead b) { Console.WriteLine("Bead BeadID = {0}", b.BeadID); foreach(Point point in b.Points) { Console.WriteLine("\tPoint x={0} y={1}", point.X, point.Y); } }
private static Bead Deserialize(string fileName) { XmlTextReader reader = new XmlTextReader(fileName); XmlSerializer serializer = new XmlSerializer(typeof(Bead)); return serializer.Deserialize(reader) as Bead; } }
[XmlRoot("BeadType", Namespace="", IsNullable=false)] public class Bead { private Point[] m_points; private double m_id;
public Bead() { }
[XmlAttribute("BeadID")] public double BeadID { get { return m_id; } set { m_id = value; } }
[XmlElement("Point")] public Point[] Points { get { return m_points; } set { m_points = value; } } }
public class Point { private string m_x; private string m_y;
public Point() { }
public Point(string x, string y) { this.X = x; this.Y = y; }
[XmlAttribute("X")] public string X { get { return m_x; } set { m_x = value; } }
[XmlAttribute("Y")] public string Y { get { return m_y; } set { m_y = value; } } }
Hope that helps
"Zion Zadik" wrote:
Dear all,
I have a set of c# data classes which i need to fill their data from xml files. serialization looks to be the best way to accomplish this task. Since the data classes are compiled and i don't have control on the xml structure, I tried using the xmlAttributeOverrides class, to instruct the serializer. I was able to override the attributes for the root element, but I'm having problems understanding how to deserialize arrays.
I would be delitaed if you could take a look at the code, and try to figure out what's wrong there.
Thanks in advance, Zion.
The data class to be deserialized: public class Bead { private Point[] m_points; private double m_id;
public Bead(){}
public double BeadID { get{return m_id;} set{m_id = value;} }
public Point[] Points { get{return m_points;} set{m_points = value;} } } public class Point { private string m_x; private string m_y;
public Point(){}
public Point(string x, string y) { this.X = x; this.Y = y; }
public string X { get {return m_x;} set {m_x = value;} }
public string Y { get {return m_y;} set {m_y = value;} } }
The input xml: <BeadType BeadID="17"><Point ID="1" X="1" Y="0.02026"/><Point ID="2" X="2" Y="0.02172"/><Point ID="3" X="3" Y="0.0233"/></BeadType>
The deserializing function:
private void button1_Click(object sender, System.EventArgs e) { FileStream fs = new FileStream(txtFile.Text, FileMode.Open); XmlReader reader = new XmlTextReader(fs);
Type type = typeof(Bead);
XmlAttributeOverrides attOverrides = new XmlAttributeOverrides();
//Define the root element in the XML XmlAttributes beadAtts = new XmlAttributes(); beadAtts.XmlRoot = new XmlRootAttribute("BeadType"); attOverrides.Add(type, beadAtts);
// XmlAttributes beadIdAtts = new XmlAttributes(); XmlAttributeAttribute beadIDAtt = new XmlAttributeAttribute(); beadIDAtt.DataType = "double"; beadIDAtt.AttributeName = "BeadID"; beadIdAtts.XmlAttribute = beadIDAtt; attOverrides.Add(type, "BeadID", beadIdAtts);
XmlAttributes atts = new XmlAttributes(); //XmlArrayAttribute aa = new XmlArrayAttribute("Point"); //atts.XmlArray = aa; //attOverrides.Add(type, "Points", atts);
XmlArrayItemAttribute pointArrayItem = new XmlArrayItemAttribute(); pointArrayItem.ElementName = "Point"; pointArrayItem.DataType = "Point"; atts.XmlArrayItems.Add(pointArrayItem); attOverrides.Add(typeof(Point), "Points", atts);
XmlSerializer serializer = new XmlSerializer(type, attOverrides);
object obj = serializer.Deserialize(reader); reader.Close();
}
Gotcha!
Here you go:
using System;
using System.Xml;
using System.Xml.Serialization;
public class XmlDeserializationDemo
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
private static void Main(string[] args)
{
Bead b = Deserialize(@"..\..\Bead.xml");
PrintBead(b);
}
private static void PrintBead(Bead b)
{
Console.WriteLine("Bead BeadID = {0}", b.BeadID);
foreach(Point point in b.Points)
{
Console.WriteLine("\tPoint x={0} y={1}", point.X, point.Y);
}
}
private static Bead Deserialize(string fileName)
{
XmlTextReader reader = new XmlTextReader(fileName);
XmlAttributeOverrides overrides = new XmlAttributeOverrides();
XmlAttributes beadClassAttributes = new XmlAttributes();
XmlAttributes beadIDAttributes = new XmlAttributes();
XmlAttributes pointsArrayAttributes = new XmlAttributes();
XmlAttributes pointClassXAttributes = new XmlAttributes();
pointClassXAttributes.XmlAttribute = new XmlAttributeAttribute("X");
XmlAttributes pointClassYAttributes = new XmlAttributes();
pointClassYAttributes.XmlAttribute = new XmlAttributeAttribute("Y");
beadClassAttributes.XmlRoot = new XmlRootAttribute("BeadType");
beadIDAttributes.XmlAttribute = new XmlAttributeAttribute("BeadID");
pointsArrayAttributes.XmlElements.Add(new XmlElementAttribute("Point"));
overrides.Add(typeof(Bead), beadClassAttributes);
overrides.Add(typeof(Bead), "BeadID", beadIDAttributes);
overrides.Add(typeof(Bead), "Points", pointsArrayAttributes);
overrides.Add(typeof(Point), "X", pointClassXAttributes);
overrides.Add(typeof(Point), "Y", pointClassYAttributes);
XmlSerializer serializer = new XmlSerializer(typeof(Bead), overrides);
return serializer.Deserialize(reader) as Bead;
}
}
public class Bead
{
private Point[] m_points;
private double m_id;
public Bead()
{
}
public double BeadID
{
get { return m_id; }
set { m_id = value; }
}
public Point[] Points
{
get { return m_points; }
set { m_points = value; }
}
}
public class Point
{
private string m_x;
private string m_y;
public Point()
{
}
public Point(string x, string y)
{
this.X = x;
this.Y = y;
}
public string X
{
get { return m_x; }
set { m_x = value; }
}
public string Y
{
get { return m_y; }
set { m_y = value; }
}
}
Hope that helps!
"Zion Zadik" wrote: Thanks for your reply.
I'm sorry if I wasn't clear enough. I don't want to add attributes in my class code. I only want to deserialize the Xml using Attribute Overrides. This way I don't need to re-compile my data classes with each change to the XML (Which I don't have any control of).
Thanks, Zion.
"Jorge Matos" <matos_jorge(NOSPAM)@hotmail.com> wrote in message news:EA**********************************@microsof t.com... Normally I would add attributes to the class to help the XmlSerializer to deserialize the data which I've included below:
using System; using System.Xml; using System.Xml.Serialization;
public class XmlDeserializationDemo { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] private static void Main(string[] args) { Bead b = Deserialize(@"..\..\Bead.xml"); PrintBead(b); }
private static void PrintBead(Bead b) { Console.WriteLine("Bead BeadID = {0}", b.BeadID); foreach(Point point in b.Points) { Console.WriteLine("\tPoint x={0} y={1}", point.X, point.Y); } }
private static Bead Deserialize(string fileName) { XmlTextReader reader = new XmlTextReader(fileName); XmlSerializer serializer = new XmlSerializer(typeof(Bead)); return serializer.Deserialize(reader) as Bead; } }
[XmlRoot("BeadType", Namespace="", IsNullable=false)] public class Bead { private Point[] m_points; private double m_id;
public Bead() { }
[XmlAttribute("BeadID")] public double BeadID { get { return m_id; } set { m_id = value; } }
[XmlElement("Point")] public Point[] Points { get { return m_points; } set { m_points = value; } } }
public class Point { private string m_x; private string m_y;
public Point() { }
public Point(string x, string y) { this.X = x; this.Y = y; }
[XmlAttribute("X")] public string X { get { return m_x; } set { m_x = value; } }
[XmlAttribute("Y")] public string Y { get { return m_y; } set { m_y = value; } } }
Hope that helps
"Zion Zadik" wrote:
Dear all,
I have a set of c# data classes which i need to fill their data from xml files. serialization looks to be the best way to accomplish this task. Since the data classes are compiled and i don't have control on the xml structure, I tried using the xmlAttributeOverrides class, to instruct the serializer. I was able to override the attributes for the root element, but I'm having problems understanding how to deserialize arrays.
I would be delitaed if you could take a look at the code, and try to figure out what's wrong there.
Thanks in advance, Zion.
The data class to be deserialized: public class Bead { private Point[] m_points; private double m_id;
public Bead(){}
public double BeadID { get{return m_id;} set{m_id = value;} }
public Point[] Points { get{return m_points;} set{m_points = value;} } } public class Point { private string m_x; private string m_y;
public Point(){}
public Point(string x, string y) { this.X = x; this.Y = y; }
public string X { get {return m_x;} set {m_x = value;} }
public string Y { get {return m_y;} set {m_y = value;} } }
The input xml: <BeadType BeadID="17"><Point ID="1" X="1" Y="0.02026"/><Point ID="2" X="2" Y="0.02172"/><Point ID="3" X="3" Y="0.0233"/></BeadType>
The deserializing function:
private void button1_Click(object sender, System.EventArgs e) { FileStream fs = new FileStream(txtFile.Text, FileMode.Open); XmlReader reader = new XmlTextReader(fs);
Type type = typeof(Bead);
XmlAttributeOverrides attOverrides = new XmlAttributeOverrides();
//Define the root element in the XML XmlAttributes beadAtts = new XmlAttributes(); beadAtts.XmlRoot = new XmlRootAttribute("BeadType"); attOverrides.Add(type, beadAtts);
// XmlAttributes beadIdAtts = new XmlAttributes(); XmlAttributeAttribute beadIDAtt = new XmlAttributeAttribute(); beadIDAtt.DataType = "double"; beadIDAtt.AttributeName = "BeadID"; beadIdAtts.XmlAttribute = beadIDAtt; attOverrides.Add(type, "BeadID", beadIdAtts);
XmlAttributes atts = new XmlAttributes(); //XmlArrayAttribute aa = new XmlArrayAttribute("Point"); //atts.XmlArray = aa; //attOverrides.Add(type, "Points", atts);
XmlArrayItemAttribute pointArrayItem = new XmlArrayItemAttribute(); pointArrayItem.ElementName = "Point"; pointArrayItem.DataType = "Point"; atts.XmlArrayItems.Add(pointArrayItem); attOverrides.Add(typeof(Point), "Points", atts);
XmlSerializer serializer = new XmlSerializer(type, attOverrides);
object obj = serializer.Deserialize(reader); reader.Close();
}
Thanks Jorge!
Now everything looks so easy and obvious :-)
I really appreciate you spending the time on this,
Zion.
"Jorge Matos" <matos_jorge(NOSPAM)@hotmail.com> wrote in message
news:9F**********************************@microsof t.com... Gotcha!
Here you go:
using System; using System.Xml; using System.Xml.Serialization;
public class XmlDeserializationDemo { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] private static void Main(string[] args) { Bead b = Deserialize(@"..\..\Bead.xml"); PrintBead(b); }
private static void PrintBead(Bead b) { Console.WriteLine("Bead BeadID = {0}", b.BeadID); foreach(Point point in b.Points) { Console.WriteLine("\tPoint x={0} y={1}", point.X, point.Y); } }
private static Bead Deserialize(string fileName) { XmlTextReader reader = new XmlTextReader(fileName);
XmlAttributeOverrides overrides = new XmlAttributeOverrides();
XmlAttributes beadClassAttributes = new XmlAttributes(); XmlAttributes beadIDAttributes = new XmlAttributes(); XmlAttributes pointsArrayAttributes = new XmlAttributes();
XmlAttributes pointClassXAttributes = new XmlAttributes(); pointClassXAttributes.XmlAttribute = new XmlAttributeAttribute("X");
XmlAttributes pointClassYAttributes = new XmlAttributes(); pointClassYAttributes.XmlAttribute = new XmlAttributeAttribute("Y");
beadClassAttributes.XmlRoot = new XmlRootAttribute("BeadType"); beadIDAttributes.XmlAttribute = new XmlAttributeAttribute("BeadID"); pointsArrayAttributes.XmlElements.Add(new XmlElementAttribute("Point"));
overrides.Add(typeof(Bead), beadClassAttributes); overrides.Add(typeof(Bead), "BeadID", beadIDAttributes); overrides.Add(typeof(Bead), "Points", pointsArrayAttributes); overrides.Add(typeof(Point), "X", pointClassXAttributes); overrides.Add(typeof(Point), "Y", pointClassYAttributes);
XmlSerializer serializer = new XmlSerializer(typeof(Bead), overrides);
return serializer.Deserialize(reader) as Bead; } }
public class Bead { private Point[] m_points; private double m_id;
public Bead() { }
public double BeadID { get { return m_id; } set { m_id = value; } }
public Point[] Points { get { return m_points; } set { m_points = value; } } }
public class Point { private string m_x; private string m_y;
public Point() { }
public Point(string x, string y) { this.X = x; this.Y = y; }
public string X { get { return m_x; } set { m_x = value; } }
public string Y { get { return m_y; } set { m_y = value; } } }
Hope that helps!
"Zion Zadik" wrote:
Thanks for your reply.
I'm sorry if I wasn't clear enough. I don't want to add attributes in my class code. I only want to deserialize the Xml using Attribute Overrides. This way I don't need to re-compile my data classes with each change to the XML (Which I don't have any control of).
Thanks, Zion.
"Jorge Matos" <matos_jorge(NOSPAM)@hotmail.com> wrote in message news:EA**********************************@microsof t.com... > Normally I would add attributes to the class to help the XmlSerializer > to > deserialize the data which I've included below: > > using System; > using System.Xml; > using System.Xml.Serialization; > > public class XmlDeserializationDemo > { > /// <summary> > /// The main entry point for the application. > /// </summary> > [STAThread] > private static void Main(string[] args) > { > Bead b = Deserialize(@"..\..\Bead.xml"); > PrintBead(b); > } > > private static void PrintBead(Bead b) > { > Console.WriteLine("Bead BeadID = {0}", b.BeadID); > foreach(Point point in b.Points) > { > Console.WriteLine("\tPoint x={0} y={1}", point.X, point.Y); > } > } > > private static Bead Deserialize(string fileName) > { > XmlTextReader reader = new XmlTextReader(fileName); > XmlSerializer serializer = new XmlSerializer(typeof(Bead)); > return serializer.Deserialize(reader) as Bead; > } > } > > [XmlRoot("BeadType", Namespace="", IsNullable=false)] > public class Bead > { > private Point[] m_points; > private double m_id; > > public Bead() > { > } > > [XmlAttribute("BeadID")] > public double BeadID > { > get { return m_id; } > set { m_id = value; } > } > > [XmlElement("Point")] > public Point[] Points > { > get { return m_points; } > set { m_points = value; } > } > } > > public class Point > { > private string m_x; > private string m_y; > > public Point() > { > } > > public Point(string x, string y) > { > this.X = x; > this.Y = y; > } > > [XmlAttribute("X")] > public string X > { > get { return m_x; } > set { m_x = value; } > } > > [XmlAttribute("Y")] > public string Y > { > get { return m_y; } > set { m_y = value; } > } > } > > Hope that helps > > "Zion Zadik" wrote: > >> Dear all, >> >> I have a set of c# data classes which i need to fill their data from >> xml >> files. serialization looks to be the best way to accomplish this task. >> Since the data classes are compiled and i don't have control on the >> xml >> structure, I tried using the xmlAttributeOverrides class, to instruct >> the >> serializer. >> I was able to override the attributes for the root element, but I'm >> having >> problems understanding how to deserialize arrays. >> >> I would be delitaed if you could take a look at the code, and try to >> figure >> out what's wrong there. >> >> Thanks in advance, >> Zion. >> >> The data class to be deserialized: >> public class Bead >> { >> private Point[] m_points; >> private double m_id; >> >> public Bead(){} >> >> public double BeadID >> { >> get{return m_id;} >> set{m_id = value;} >> } >> >> public Point[] Points >> { >> get{return m_points;} >> set{m_points = value;} >> } >> } >> public class Point >> { >> private string m_x; >> private string m_y; >> >> public Point(){} >> >> public Point(string x, string y) >> { >> this.X = x; >> this.Y = y; >> } >> >> public string X >> { >> get {return m_x;} >> set {m_x = value;} >> } >> >> public string Y >> { >> get {return m_y;} >> set {m_y = value;} >> } >> } >> >> The input xml: >> <BeadType BeadID="17"><Point ID="1" X="1" Y="0.02026"/><Point ID="2" >> X="2" >> Y="0.02172"/><Point ID="3" X="3" Y="0.0233"/></BeadType> >> >> The deserializing function: >> >> private void button1_Click(object sender, System.EventArgs e) >> { >> FileStream fs = new FileStream(txtFile.Text, FileMode.Open); >> XmlReader reader = new XmlTextReader(fs); >> >> Type type = typeof(Bead); >> >> XmlAttributeOverrides attOverrides = new XmlAttributeOverrides(); >> >> //Define the root element in the XML >> XmlAttributes beadAtts = new XmlAttributes(); >> beadAtts.XmlRoot = new XmlRootAttribute("BeadType"); >> attOverrides.Add(type, beadAtts); >> >> // >> XmlAttributes beadIdAtts = new XmlAttributes(); >> XmlAttributeAttribute beadIDAtt = new XmlAttributeAttribute(); >> beadIDAtt.DataType = "double"; >> beadIDAtt.AttributeName = "BeadID"; >> beadIdAtts.XmlAttribute = beadIDAtt; >> attOverrides.Add(type, "BeadID", beadIdAtts); >> >> >> XmlAttributes atts = new XmlAttributes(); >> //XmlArrayAttribute aa = new XmlArrayAttribute("Point"); >> //atts.XmlArray = aa; >> //attOverrides.Add(type, "Points", atts); >> >> XmlArrayItemAttribute pointArrayItem = new XmlArrayItemAttribute(); >> pointArrayItem.ElementName = "Point"; >> pointArrayItem.DataType = "Point"; >> atts.XmlArrayItems.Add(pointArrayItem); >> attOverrides.Add(typeof(Point), "Points", atts); >> >> XmlSerializer serializer = new XmlSerializer(type, attOverrides); >> >> object obj = serializer.Deserialize(reader); >> reader.Close(); >> >> } >> >> >> >> >> >> This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Anthony Bouch |
last post by:
Hi
I've been reading using the XmlSerializer with custom collections.
I've discovered that when serializing a custom collection (a class that...
|
by: Bob Rock |
last post by:
Hello,
when serializing an array of elements of a class Classname using
XmlSerializer.Serialize() I get an XML like the following:
<?xml...
|
by: Jamus Sprinson |
last post by:
Before I continue, I'm going to begin by saying I'm not by any means
an expert- I've been using .NET with C# for about 4 months now, and
basically...
|
by: SJD |
last post by:
I've just read Christoph Schittko's article on XmlSerializer:
...
|
by: Don McNamara |
last post by:
Hi,
I've hit quite a strange problem with XmlSerializer on my W2K3 server. When
I serialize/deserialize using an exe on my local computer (XP),...
|
by: Zion Zadik |
last post by:
Dear all,
I have a set of c# data classes wich i need to fill their data from xml files. serialization looks to be the best way to accomplish this...
|
by: Daniel Lindros via .NET 247 |
last post by:
Hi!
I am currently trying to learn C#, and have started by developinga simple messaging application with a client and server. Byusing callback...
|
by: Zion Zadik |
last post by:
Dear all,
I have a set of c# data classes which i need to fill their data from xml
files. serialization looks to be the best way to accomplish...
|
by: Phil Galey |
last post by:
I'm using XMLSerializer to serialize a hierarchy of class-based objects to
XML. So far, this is working successfully by employing arrays to handle...
|
by: Kemmylinns12 |
last post by:
Blockchain technology has emerged as a transformative force in the business world, offering unprecedented opportunities for innovation and...
|
by: antdb |
last post by:
Ⅰ. Advantage of AntDB: hyper-convergence + streaming processing engine
In the overall architecture, a new "hyper-convergence" concept was...
|
by: Matthew3360 |
last post by:
Hi there. I have been struggling to find out how to use a variable as my location in my header redirect function.
Here is my code.
...
|
by: Matthew3360 |
last post by:
Hi, I have a python app that i want to be able to get variables from a php page on my webserver. My python app is on my computer. How would I make it...
|
by: AndyPSV |
last post by:
HOW CAN I CREATE AN AI with an .executable file that would suck all files in the folder and on my computerHOW CAN I CREATE AN AI with an .executable...
|
by: Arjunsri |
last post by:
I have a Redshift database that I need to use as an import data source. I have configured the DSN connection using the server, port, database, and...
|
by: WisdomUfot |
last post by:
It's an interesting question you've got about how Gmail hides the HTTP referrer when a link in an email is clicked. While I don't have the specific...
|
by: Matthew3360 |
last post by:
Hi,
I have been trying to connect to a local host using php curl. But I am finding it hard to do this. I am doing the curl get request from my web...
|
by: Rahul1995seven |
last post by:
Introduction:
In the realm of programming languages, Python has emerged as a powerhouse. With its simplicity, versatility, and robustness, Python...
| |