Thanks Alberto for the info...
-----Original Message-----
From: Alberto Massari [mailto:[EMAIL PROTECTED]
Sent: Friday, December 31, 2004 8:41 AM
To: [email protected]
Subject: Re: verifying domdocument
Hi Vince,
Xerces doesn't currently perform validation of an in-memory DOM tree;
but
in order to detect validation error you can parse the generated file
right
after you wrote it.
Alberto
At 10.43 30/12/2004 -0500, Jairam, Roopnaraine wrote:
>Hi all,
>
>I have a function that takes a domdocument* and writes it to the xml
file.
>My question is can I verify that the document adheres to my schema
before
>I save it. I have created xml documents that were invalid (while
>debugging) according to my schema, but I didn't know it until I parsed
the
>xml doc.
>
>DWORD XML::writeToFile(xercesc::DOMDocument* document)
>{
> DWORD status = ERROR_SUCCESS;
>
> if (document == NULL)
> return ERROR_INVALID_HANDLE;
>
> XMLCh tempStr[100];
> XMLString::transcode("LS", tempStr, 99);
> DOMImplementation *impl =
> DOMImplementationRegistry::getDOMImplementation(tempStr);
> DOMWriter* theSerializer =
> ((DOMImplementationLS*)impl)->createDOMWriter();
> XMLCh* utf16str = NULL;
> const XMLByte* str = NULL;
>
> // optionally you can set some features on this serializer
> if
> (theSerializer->canSetFeature(XMLUni::fgDOMWRTDiscardDefaultContent,
true))
>
theSerializer->setFeature(XMLUni::fgDOMWRTDiscardDefaultContent,
> true);
>
> if
(theSerializer->canSetFeature(XMLUni::fgDOMWRTFormatPrettyPrint,
> true))
>
theSerializer->setFeature(XMLUni::fgDOMWRTFormatPrettyPrint,
> true);
> LocalFileFormatTarget myFileTarget( m_xmlFileName );
>
> try
> {
> theSerializer->writeNode( &myFileTarget, *document);
>
> }
> catch (const XMLException& toCatch)
> {
> status = ERROR_CANTWRITE;
>
> }
> catch (const DOMException& toCatch)
> {
> status = ERROR_CANTWRITE;
> }
> catch (...)
> {
> status = ERROR_CANTWRITE;
> }
>
> theSerializer->release();
> return status;
>}
>
>Vince.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]