469,326 Members | 1,478 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,326 developers. It's quick & easy.

XML Deserialization - xmlns not expected

I'm using XmlSerializer in C# to deserialize an xml into classes. First I generated the code from the schema using xsd.exe The error I recieve is:

Exception:There is an error in XML document (2, 2).
Inner Exception: <applications xmlns='urn:xmlns:COMMONCENSUS:CommonFormat:IMSchem a'> was not expected.

I've read numerous threads and realize it is a namespace issue, but none seem to help with this particular problem. I've included the xml, and the Schema file below as well as the code. Thanks in advance.

xml:
Expand|Select|Wrap|Line Numbers
  1. <?xml version="1.0" encoding="utf-8" standalone="yes"?>
  2. <applications xmlns="urn:xmlns:COMMONCENSUS:CommonFormat:IMSchem a" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exportType="T">
  3. <application guid="{9A44D2FF-90EB-45BE-BC88-CF2107B2CA4C}" xmlns="urn:xmlns:COMMONCENSUS:CommonFormat:IMSchem a">
  4. -----
  5. </application>
  6. </applications>
xsd:
Expand|Select|Wrap|Line Numbers
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:xmlns:COMMONCENSUS:CommonFormat:IMSchem a" xmlns:NS="urn:xmlns:COMMONCENSUS:CommonFormat:IMSc hema" targetNamespace="urn:xmlns:COMMONCENSUS:CommonForm at:IMSchema" elementFormDefault="qualified">
  3. <xs:element name="applications">
  4. <xs:complexType>
  5. <xs:sequence>
  6. <xs:element name="application" type="ApplicationType" minOccurs="0" maxOccurs="unbounded">
  7. <xs:key name="personKey">
  8. <xs:selector xpath="persons/person" />
  9. <xs:field xpath="id" />
  10. </xs:key>
  11. <xs:keyref name="applicantKeyRef" refer="personKey">
  12. <xs:selector xpath="applicantID" />
  13. <xs:field xpath="." />
  14. </xs:keyref>
  15. <xs:keyref name="insuredKeyRef" refer="personKey">
  16. <xs:selector xpath="coverages/coverage/insuredID" />
  17. <xs:field xpath="." />
  18. </xs:keyref>
  19. </xs:element>
  20. </xs:sequence>
  21. <xs:attribute name="exportType" type="ExportType" />
  22. </xs:complexType>
  23. </xs:element>
  24. -----
  25. </xs:schema>
Code:
Expand|Select|Wrap|Line Numbers
  1. // Read the xml file
  2. TextReader reader = new StreamReader("C:\\CommonSensusXml\\Policy_87654321 _210_Dion-Paul_WSA.xml");
  3.  
  4. //Application Type
  5. XmlSerializer serializer = new XmlSerializer(typeof(ApplicationType));
  6. ApplicationType appType = (ApplicationType)serializer.Deserialize(reader);
Mar 18 '09 #1
8 29952
jkmyoung
2,057 Expert 2GB
Your namespace URI "urn:xmlns:COMMONCENSUS:CommonFormat:IMSchem a"
is not allowed to have spaces.

Beyond that, I would recommend explicitly assigning the schema, eg like:
xsi:schemaLocation = "urn:xmlns:COMMONCENSUS:CommonFormat:IMSchema SchemaFile.xsd"
Mar 19 '09 #2
Thanks for the reply jkmyoung. Unfortunately, that is a typo and there is no space in the namespace uri. It should read like this: urn:xmlns:COMMONCENSUS:CommonFormat:IMSchema

Any other thoughts?

Thanks...
Mar 19 '09 #3
jkmyoung
2,057 Expert 2GB
Assuming your targetNamespace should also read: targetNamespace="urn:xmlns:COMMONCENSUS:CommonForm at:IMSchema"

See edit to above comment as well.
Mar 19 '09 #4
jkmyoung,
Yes, the target namespace is correct. I tried to explicitly assign the schema like you mentioned but with the same error message as listed in my first post.
To me, the error reads like there is a namespace specified in the xml file where it does not exist in the schema file. As far as I can tell, that's not the case.

Thanks again for your prompt reply...any further advice is much appreciated.
Mar 19 '09 #5
jkmyoung
2,057 Expert 2GB
Just to clarify, targetnamespace should be
"urn:xmlns:COMMONCENSUS:CommonFormat:IMSchema"
not what was posted above.

Accidentally copied/paste, and forgot to replace the offending text.
Mar 20 '09 #6
Thanks again but still the same error. I've noticed that when I copy and paste from the xml into this text editor, it will add spaces in several places.

I am still unable to find a solution for this. Could it be something in the way the schema is structured? The element name 'applications' acts as a parent element in the xml file but in the schema, there are several other elements that stand alone outside of the 'applications' element. If I need to provide more info I can create a mock xml and remove any sensitive data.
Mar 23 '09 #7
Hey, I'm having a very similar problem. Don't know if you got yours fixed but if I find mine, I will post it here.

My hunch is that it has to do with the declaration of the XmlSerializer. There is a constructor that does as follows (from http://msdn.microsoft.com/en-us/libr...(VS.71).aspx):

"Initializes a new instance of the XmlSerializer class that can serialize objects of the specified type into XML documents, and vice versa. Specifies the default namespace for all the XML elements."
.
.
[C#] public XmlSerializer(Type, string);"

-Matt
Apr 21 '09 #8
Ok, here's the fix for me. I was getting the same (2,2) and "was not expected" set of errors.

The section of my XML that was a problem looks like this:

Expand|Select|Wrap|Line Numbers
  1. <ns2:Info xmlns:ns2="http://www.something.org/whatsit-0-3-4">
This is the significant part of the code that xsd.exe generated for me:
ORIGINAL:
Expand|Select|Wrap|Line Numbers
  1. [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.something.org/whatsit-0-3-4")]
  2. [System.Xml.Serialization.XmlRootAttribute("Some_Namespace", Namespace = "http://www.different.org/blah-1-3-2", IsNullable = false)]
FIXED & WORKING:
Expand|Select|Wrap|Line Numbers
  1. [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.something.org/whatsit-0-3-4")]
  2. [System.Xml.Serialization.XmlRootAttribute("Info", Namespace = "http://www.something.org/whatsit-0-3-4", IsNullable = false)]
The problem for me was that the namespace was the root attribute in the feed I was getting, but the root was listed as a different namespace! Once I changed that and recompiled, it was able to deserialize, because it could now understand what it was looking at.

Hope this helps!
Apr 21 '09 #9

Post your reply

Sign in to post your reply or Sign up for a free account.

Similar topics

1 post views Thread by Linus | last post: by
4 posts views Thread by Mike Sarbu | last post: by
reply views Thread by amrendrakr | last post: by
3 posts views Thread by parrot toes | last post: by
7 posts views Thread by PeterW | last post: by
1 post views Thread by John Smith | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by zhoujie | last post: by
reply views Thread by suresh191 | last post: by
reply views Thread by harlem98 | last post: by
reply views Thread by listenups61195 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.