![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
| Welcome to Windows Vista Forums. Our forum is dedicated to helping you find solutions with any problems, errors or issues you are experiencing with Windows Vista. The Vista forum also covers news and updates and has an extensive Windows Vista tutorial section that covers a wide range of tips and tricks. |
| |||||||
![]() |
| |
| | #1 (permalink) |
| | q1 ??? This is probably easy, but I have spent several hours trying to get it to work with no luck. I'm just using the XmlSerializer class to write an XML file: XmlSerializer s = new XmlSerializer(typeof(myType));; XmlSerializerNamespaces n = new XmlSerializerNamespaces(); n.Add(string.Empy, string.Empy); Stream fs = new FileStream(name, FileMode.Create); XmlTextWriter tw = new XmlTextWriter(fs, Encoding.UTF8); tw.Formatting = Formatting.None; s.Serialize(tw, myObject, n); tw.Close(); Anyway, the above works almost to what I want, but it produces the following XML file: <?xml version="1.0" encoding="utf-8" ?> <q1:myObjElement1 xmlns:q1="myXSD.xsd"> <MyElement2> <MyElement3> </MyElement3> </MyElement2> </q1:myObjeElement1> My problem is that I want to get rid of that "q1:" string, and just serialize my object into XML. What is the "q1:" string anyway, and why is it there? I can get rid of the "q1:" string by changing the following attribute in my code from: [System.Xml.Serialization.XmlRootAttribute(IsNullable = false, Namespace="myXSD.xsd")]; to: [System.Xml.Serialization.XmlRootAttribute(IsNullable = false)]; However, if I do that, then I get: <?xml version="1.0" encoding="utf-8" ?> <myObjElement1> <MyElement2> <MyElement3> </MyElement3> </MyElement2> </myObjeElement1> The problem here is that I need the line: <myObjElement1> to really read: <myObjElement1 xmlns="myXSD.xsd"> So in short: How can I get rid of the "q1:" string and keep the xmlns attribute in my root element? Thank you. |
My System Specs![]() |
| | #2 (permalink) |
| | Re: q1 ??? "Tom" <johnthompson1@xxxxxx> wrote in message news:A9705A0F-A43A-411A-A012-1B8B97526748@xxxxxx Quote: > This is probably easy, but I have spent several hours trying to get it to > work with no luck. > > I'm just using the XmlSerializer class to write an XML file: > > XmlSerializer s = new XmlSerializer(typeof(myType));; > XmlSerializerNamespaces n = new XmlSerializerNamespaces(); > n.Add(string.Empy, string.Empy); > Stream fs = new FileStream(name, FileMode.Create); > XmlTextWriter tw = new XmlTextWriter(fs, Encoding.UTF8); > tw.Formatting = Formatting.None; > s.Serialize(tw, myObject, n); > tw.Close(); > > Anyway, the above works almost to what I want, but it produces the > following XML file: > > <?xml version="1.0" encoding="utf-8" ?> > <q1:myObjElement1 xmlns:q1="myXSD.xsd"> > <MyElement2> > <MyElement3> > </MyElement3> > </MyElement2> > </q1:myObjeElement1> > > My problem is that I want to get rid of that "q1:" string, and just > serialize my object into XML. What is the "q1:" string anyway, and why is > it there? > > I can get rid of the "q1:" string by changing the following attribute in > my code from: > > [System.Xml.Serialization.XmlRootAttribute(IsNullable = false, > Namespace="myXSD.xsd")]; > > to: > > [System.Xml.Serialization.XmlRootAttribute(IsNullable = false)]; > > However, if I do that, then I get: > <?xml version="1.0" encoding="utf-8" ?> > <myObjElement1> > <MyElement2> > <MyElement3> > </MyElement3> > </MyElement2> > </myObjeElement1> > > The problem here is that I need the line: > > <myObjElement1> > > to really read: > > <myObjElement1 xmlns="myXSD.xsd"> > > > So in short: > How can I get rid of the "q1:" string and keep the xmlns attribute in my > root element? > > Thank you. > > > attribute after I created the file: XmlDocument d = new XmlDocument(); XmlElement e; FileStream fs = new FileStream("myFile", FileMode.Open, FileMode.Read, FileMode.Read); XmlTextReader tr = new XmlTextReader(fs); d.Load(tr); tr.Close(); e = d.DocumentElement; e.SetAttribute("xmlns", "myNamespace"); d.Save("myFile"); |
My System Specs![]() |
| | #3 (permalink) |
| | Re: q1 ??? "Tom" <johnthompson1@xxxxxx> wrote in message news:A9705A0F-A43A-411A-A012-1B8B97526748@xxxxxx Quote: > This is probably easy, but I have spent several hours trying to get it to > work with no luck. > > I'm just using the XmlSerializer class to write an XML file: > > XmlSerializer s = new XmlSerializer(typeof(myType));; > XmlSerializerNamespaces n = new XmlSerializerNamespaces(); > n.Add(string.Empy, string.Empy); > Stream fs = new FileStream(name, FileMode.Create); > XmlTextWriter tw = new XmlTextWriter(fs, Encoding.UTF8); > tw.Formatting = Formatting.None; > s.Serialize(tw, myObject, n); > tw.Close(); > > Anyway, the above works almost to what I want, but it produces the > following XML file: > > <?xml version="1.0" encoding="utf-8" ?> > <q1:myObjElement1 xmlns:q1="myXSD.xsd"> > <MyElement2> > <MyElement3> > </MyElement3> > </MyElement2> > </q1:myObjeElement1> > > My problem is that I want to get rid of that "q1:" string, and just > serialize my object into XML. What is the "q1:" string anyway, and why is > it there? > > I can get rid of the "q1:" string by changing the following attribute in > my code from: > > [System.Xml.Serialization.XmlRootAttribute(IsNullable = false, > Namespace="myXSD.xsd")]; > > to: > > [System.Xml.Serialization.XmlRootAttribute(IsNullable = false)]; > > However, if I do that, then I get: > <?xml version="1.0" encoding="utf-8" ?> > <myObjElement1> > <MyElement2> > <MyElement3> > </MyElement3> > </MyElement2> > </myObjeElement1> > > The problem here is that I need the line: > > <myObjElement1> > > to really read: > > <myObjElement1 xmlns="myXSD.xsd"> > > > So in short: > How can I get rid of the "q1:" string and keep the xmlns attribute in my > root element? > > Thank you. > > It shouldn't matter to other processes whether it has a prefix or is a default namespace. However: [XmlRoot(Namespace ="myXSD.xsd", ElementName = "myObjElement1")] should get you <myObjElement1 xmlns="myXSD.xsd"> -- Joe Fawcett (MVP - XML) http://joe.fawcett.name |
My System Specs![]() |