Home All Groups Group Topic Archive Search About

Validate XML before using it

Author
15 Aug 2006 5:56 AM
Bob
I am receiving XML (not a full document, just a node tree) from a remote
party and then inserting it into my bigger XML document using
XmlWriter.WriteRaw().  The problem is that sometimes the XML from the remote
party has invalid characters (such as \x17, \x08, etc).  It is a known bug
and they are working on it.  But I need a quick solution ASAP to validate
their XML before passing it into my WriteRaw because it puts my XmlWriter
into a bad state (and it may take weeks for them to fix their code).

Basically I just want to detect whether or not their XML is invalid, and if
so, ignore it.  What is the best way to do this?

Thanks

Author
15 Aug 2006 1:39 PM
Jim Wooley
Create a schema definition and have them validate to that schema.
Jim Wooley
http://devauthority.com/blogs/jwooley/default.aspx

Show quote
> I am receiving XML (not a full document, just a node tree) from a
> remote party and then inserting it into my bigger XML document using
> XmlWriter.WriteRaw().  The problem is that sometimes the XML from the
> remote party has invalid characters (such as \x17, \x08, etc).  It is
> a known bug and they are working on it.  But I need a quick solution
> ASAP to validate their XML before passing it into my WriteRaw because
> it puts my XmlWriter into a bad state (and it may take weeks for them
> to fix their code).
>
> Basically I just want to detect whether or not their XML is invalid,
> and if so, ignore it.  What is the best way to do this?
>
> Thanks
>
Author
15 Aug 2006 5:15 PM
Michael Nemtsev
Hello Bob,

Just to add to Jim see samples over there http://msdn.microsoft.com/library/en-us/cpguide/html/cpconvalidationofxmlwithschemas.asp

B> I am receiving XML (not a full document, just a node tree) from a
B> remote party and then inserting it into my bigger XML document using
B> XmlWriter.WriteRaw().  The problem is that sometimes the XML from the
B> remote party has invalid characters (such as \x17, \x08, etc).  It is
B> a known bug and they are working on it.  But I need a quick solution
B> ASAP to validate their XML before passing it into my WriteRaw because
B> it puts my XmlWriter into a bad state (and it may take weeks for them
B> to fix their code).
B>
B> Basically I just want to detect whether or not their XML is invalid,
B> and if so, ignore it.  What is the best way to do this?
B>
B> Thanks
B>
---
WBR,
Michael  Nemtsev :: blog: http://spaces.msn.com/laflour

"At times one remains faithful to a cause only because its opponents do not
cease to be insipid." (c) Friedrich Nietzsche
Author
16 Aug 2006 12:34 AM
Bob
Yeah they are fixing the problem.  The thing is I need a work-around, like,
right now, while they are working on it.  I've tried stuff like setting
CheckCharacters=false on the reader and writer.  This causes the writer to
no longer throw when writing, but the reader still throws.

Show quote
"Michael Nemtsev" <nemt***@msn.com> wrote in message
news:9cc1c863a74d08c88ec720aa70c0@msnews.microsoft.com...
> Hello Bob,
>
> Just to add to Jim see samples over there
> http://msdn.microsoft.com/library/en-us/cpguide/html/cpconvalidationofxmlwithschemas.asp
>
> B> I am receiving XML (not a full document, just a node tree) from a
> B> remote party and then inserting it into my bigger XML document using
> B> XmlWriter.WriteRaw().  The problem is that sometimes the XML from the
> B> remote party has invalid characters (such as \x17, \x08, etc).  It is
> B> a known bug and they are working on it.  But I need a quick solution
> B> ASAP to validate their XML before passing it into my WriteRaw because
> B> it puts my XmlWriter into a bad state (and it may take weeks for them
> B> to fix their code).
> B> B> Basically I just want to detect whether or not their XML is invalid,
> B> and if so, ignore it.  What is the best way to do this?
> B> B> Thanks
> B> ---
> WBR,
> Michael  Nemtsev :: blog: http://spaces.msn.com/laflour
>
> "At times one remains faithful to a cause only because its opponents do
> not cease to be insipid." (c) Friedrich Nietzsche
>
>
Author
16 Aug 2006 8:11 AM
Bob
I solved the problem by making a NullStream class derived from Stream,
making a new XmlWriter directed to that stream, and first testing
XmlWriter.WriteRaw() on the null stream to validate whether or not the input
XML is valid.  Seems to work OK.

Show quote
"Bob" <nob***@nowhere.com> wrote in message
news:%23H$vHvMwGHA.4868@TK2MSFTNGP02.phx.gbl...
> Yeah they are fixing the problem.  The thing is I need a work-around,
> like, right now, while they are working on it.  I've tried stuff like
> setting CheckCharacters=false on the reader and writer.  This causes the
> writer to no longer throw when writing, but the reader still throws.
>
> "Michael Nemtsev" <nemt***@msn.com> wrote in message
> news:9cc1c863a74d08c88ec720aa70c0@msnews.microsoft.com...
>> Hello Bob,
>>
>> Just to add to Jim see samples over there
>> http://msdn.microsoft.com/library/en-us/cpguide/html/cpconvalidationofxmlwithschemas.asp
>>
>> B> I am receiving XML (not a full document, just a node tree) from a
>> B> remote party and then inserting it into my bigger XML document using
>> B> XmlWriter.WriteRaw().  The problem is that sometimes the XML from the
>> B> remote party has invalid characters (such as \x17, \x08, etc).  It is
>> B> a known bug and they are working on it.  But I need a quick solution
>> B> ASAP to validate their XML before passing it into my WriteRaw because
>> B> it puts my XmlWriter into a bad state (and it may take weeks for them
>> B> to fix their code).
>> B> B> Basically I just want to detect whether or not their XML is
>> invalid,
>> B> and if so, ignore it.  What is the best way to do this?
>> B> B> Thanks
>> B> ---
>> WBR,
>> Michael  Nemtsev :: blog: http://spaces.msn.com/laflour
>>
>> "At times one remains faithful to a cause only because its opponents do
>> not cease to be insipid." (c) Friedrich Nietzsche
>>
>>
>
>

AddThis Social Bookmark Button