473,810 Members | 3,142 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Help with serialization

Hello

I have the following XML string:

<?xml version="1.0" encoding="UTF-8"?>
<bool name="value" val="false" display="OFF" href="/value/"
xmlns="http://MyObj.org/ns/schema/1.0"
xmlns:xsi="http ://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocat ion="http://MyObj.org/ns/schema/1.0 /MyObj/xsd"/>

Then I assign it to a StringReader and deserialize it against the following
class:

[XmlRoot("bool")]
public class MyObjBool
{
[XmlAttribute("n ame")]
public string name;
[XmlAttribute("v al")]
public bool val;
}

The code snippet is:

s1 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><?xml-stylesheet
type='text/xsl' href='/MyObj/xsl'?><bool name=\"value\" val=\"false\"
display=\"OFF\" href=\"/value/\" xmlns=\"http://MyObj.org/ns/schema/1.0\"
xmlns:xsi=\"htt p://www.w3.org/2001/XMLSchema-instance\"
xsi:schemaLocat ion=\"http://MyObj.org/ns/schema/1.0 /MyObj/xsd\"/>";

StringReader sr = new StringReader(s1 );
XmlSerializer xs = new XmlSerializer(t ypeof(MyObjBool ));

try
{
MyObjBool ob = (MyObjBool) xs.Deserialize( sr);
}
catch (Exception e)
{
msg(e.ToString( ));
}

Which is firing the following exception:

System.InvalidO perationExcepti on: There is an error in XML document (1,
92). ---System.InvalidO perationExcepti on: <bool
xmlns='http://MyObj.org/ns/schema/1.0'was not expected.
at
Microsoft.Xml.S erialization.Ge neratedAssembly .XmlSerializati onReaderMyObjBo ol.Read3_bool()
--- End of inner exception stack trace ---
at System.Xml.Seri alization.XmlSe rializer.Deseri alize(XmlReader
xmlReader, String encodingStyle, XmlDeserializat ionEvents events)
at System.Xml.Seri alization.XmlSe rializer.Deseri alize(XmlReader
xmlReader, String encodingStyle)
at System.Xml.Seri alization.XmlSe rializer.Deseri alize(TextReade r
textReader)
at wrap1.Program.M ain(String[] args) in C:\test1\Progra m.cs:line 151
Why?

Why is it when I remove the xmlns attribute the DeSerialize works?

Regards,
Elias
May 22 '07 #1
1 1902
lallous,

With the XmlRoot attribute, you need to set the namespace as well for
the element. Your attribute declaration should look like this:

[XmlRoot(Element Name = "bool", Namespace =
"http://MyObj.org/ns/schema/1.0")]
public class MyObjBool

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"lallous" <la*****@lgwm.o rgwrote in message
news:OG******** ******@TK2MSFTN GP04.phx.gbl...
Hello

I have the following XML string:

<?xml version="1.0" encoding="UTF-8"?>
<bool name="value" val="false" display="OFF" href="/value/"
xmlns="http://MyObj.org/ns/schema/1.0"
xmlns:xsi="http ://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocat ion="http://MyObj.org/ns/schema/1.0 /MyObj/xsd"/>

Then I assign it to a StringReader and deserialize it against the
following class:

[XmlRoot("bool")]
public class MyObjBool
{
[XmlAttribute("n ame")]
public string name;
[XmlAttribute("v al")]
public bool val;
}

The code snippet is:

s1 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><?xml-stylesheet
type='text/xsl' href='/MyObj/xsl'?><bool name=\"value\" val=\"false\"
display=\"OFF\" href=\"/value/\" xmlns=\"http://MyObj.org/ns/schema/1.0\"
xmlns:xsi=\"htt p://www.w3.org/2001/XMLSchema-instance\"
xsi:schemaLocat ion=\"http://MyObj.org/ns/schema/1.0 /MyObj/xsd\"/>";

StringReader sr = new StringReader(s1 );
XmlSerializer xs = new XmlSerializer(t ypeof(MyObjBool ));

try
{
MyObjBool ob = (MyObjBool) xs.Deserialize( sr);
}
catch (Exception e)
{
msg(e.ToString( ));
}

Which is firing the following exception:

System.InvalidO perationExcepti on: There is an error in XML document (1,
92). ---System.InvalidO perationExcepti on: <bool
xmlns='http://MyObj.org/ns/schema/1.0'was not expected.
at
Microsoft.Xml.S erialization.Ge neratedAssembly .XmlSerializati onReaderMyObjBo ol.Read3_bool()
--- End of inner exception stack trace ---
at System.Xml.Seri alization.XmlSe rializer.Deseri alize(XmlReader
xmlReader, String encodingStyle, XmlDeserializat ionEvents events)
at System.Xml.Seri alization.XmlSe rializer.Deseri alize(XmlReader
xmlReader, String encodingStyle)
at System.Xml.Seri alization.XmlSe rializer.Deseri alize(TextReade r
textReader)
at wrap1.Program.M ain(String[] args) in C:\test1\Progra m.cs:line 151
Why?

Why is it when I remove the xmlns attribute the DeSerialize works?

Regards,
Elias

May 22 '07 #2

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
1633
by: Wayne Wengert | last post by:
This is my first attempt to re-write an old VB6 application that exported a CSV file to a .NET application that exports an XML file with the equivelent data. I have limited understanding of OO programming concepts (am trying to learn) and XML serialization is all new ground for me. Anyway, here is what I am trying to accomplish: Goal ---- We sponsor competitions in ehich various teams compete. An "event" is made up of a set of "shows"....
4
3138
by: Jeff T. | last post by:
Hello, I have an existing set of C# classes that encapsulate our application data. They are in a heirachy with each subclass defining more specific types of data. I would like to serialize these data objects as XML but perserve the relationships in the XML document. For example, if my classes were: public class GenericItem { }
1
2866
by: Opa | last post by:
Hi I'm having problem serialization an object instance which contains a public property on the object type My object hierarchy is many levels deep, so for simplicty I created to following which produces the same error Let's say there is a class called ParkingSpot with a public member Vehicle having an object type of object For simplicity, let's say that Vehicle could be anything, hence I create a new object of Car typ and assign it to...
2
1507
by: Tiraman :-\) | last post by:
Hi Everyone, i have the following problem in my client-server Application My server take array and serialize it into the memorystream Dim ns As NetworkStream = client.GetStream() Dim writer As New IO.StreamWriter(ns) Dim bf As New BinaryFormatter Dim mem As New IO.MemoryStream
4
1923
by: Chris | last post by:
I don't know if it's me or .net is just getting more complicated. I am trying to call a sp and pass a parameter and return the data using VB2005. First I couldn't find any docs with samples. Second I tryed this <%@ WebService Language="VB" Class="GetList" %> Imports System.Web Imports System.Web.Services Imports System.Web.Services.Protocols Imports System.Data Imports System.Data.SqlClient
0
992
by: Jeremy Chapman | last post by:
I'm building a class with xml serialization attrbutes. Below I've included the class and the xml it serializes to. It pretty much matches what I want except for the Message property of the ResultValue class. I want it to serialize to <ResultValue><Messages><Message>value</Message><Message>value2</Message></Messages></ResultValue> but it is actually serializing to...
3
10843
by: namewitheldbyrequest | last post by:
"The XML element 'EnableTheming' from namespace 'http://tempuri.org/' is already present in the current scope" I created a Web Service: I imported System.Data.SqlClient so I could access SQL server tables programmatically. The web service builds and deploys with no problems. When I try to add the corresponding Web Reference to the Web Site project I get the error listed below. I am able to create other Web Services on the same server...
13
1987
by: Marc | last post by:
The first part of the below writes the name and location of all buttons on a from to a text file. The second part reads that information back in and recreates the buttons. My problem is reading the location value back in where I marked ?????????????????????. As it wont accept a string value? Private Sub Save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Save.Click
1
11113
by: kikisan | last post by:
I am developing a windows service which utilizes the following classes: interface IPersistable; abstract class PersistableObject : IPersistable;
3
1273
by: Rene | last post by:
OK, I give up, the msdn help for custom serialization: http://msdn2.microsoft.com/en-us/library/ty01x675(VS.90).aspx Hs the following paragraph on it: ----- In addition, you should not use default serialization on a class that is marked with the Serializable attribute and has declarative or imperative security at the class level or on its constructors. Instead, these classes
0
9603
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10644
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10379
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10393
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
10124
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
7664
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6882
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5550
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
4334
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.