W3C home > Mailing lists > Public > xmlschema-dev@w3.org > December 2007

Re: when to validate XML while being created programmatically..

From: Andrew Welch <andrew.j.welch@gmail.com>
Date: Thu, 20 Dec 2007 10:23:26 +0000
Message-ID: <74a894af0712200223h50d55097n3c6357af7d033dfd@mail.gmail.com>
To: dave <ceek63@yahoo.com>
Cc: xmlschema-dev@w3.org

On 20/12/2007, dave <ceek63@yahoo.com> wrote:
> This is related to validating a brand new XML instance
> WHILE being created programmatically:
>  Do you generally perform validation at the very end
> of completely creating an XML instance? If Yes, how
> would you correct these validation errors
> programmatically? It looks like a daunting task.

I'm not sure how you'd correct them programamtically - it would be one
special app that could alter itself to generate valid XML after a
change to the schema :)


> Does it even make sense to perform on-the-fly
> validation while constructing a new XML instance? If
> Yes, how would you tell the system when the instance
> is even incrementally valid before turning ON the
> validation. I can imagine there must be an API to
> enable/disable on-the-fly validation during the
> creation of XML instance. I might be wrong as it may
> not make sense

Most validators are streaming validators, so if you provide the XML as
SAX events then you'll be validating on the fly.

If you don't want to do that then create the document first, then
reparse it to validate it.

It depends on your requirements which you do - if the XML is useless
if it fails validation then there's not much point in constructing the
entire document, but equally it can be useful to have well-formed XML
to analyze after a failure.


> Does the application design needs to ensure that the
> generated XML is always valid?

That's what the schema is for, isn't it?


-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/
Received on Thursday, 20 December 2007 10:23:45 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:15:01 GMT