Hi
I have a little problem with the LibXML2, can you please help me? (windows XP, 
Visual C, Libxml2)
The situation is the following: I have xml-document and external dtd-table for 
it. The Code1 reads DTD and returns error while Code2 reads and does not return 
error, but gives error "No declaration for element" on validation. And the 
Code3 validates successfuly.
but I need to use code1 or code2, where should I use an external file test.dtd.
The question is:
Why parser returns dtd error in Code1 and Code2 while dtd is correct?
i've check dtd file whith Altova XMLSpy
if i take more dufficult xml and dtd documents - the parser returns error in 
dtd file
Can you help me to correct this situation?
PS - XML and DTD are attached

code1
doc_dtd=xmlParseDTD(NULL,(const unsigned char *)"test.dtd");
if (doc_dtd == NULL) {
fprintf(stderr,"empty document\n");
return 0;}


code2
dtd = xmlGetIntSubset(doc);
if (!dtd) {
fprintf(stderr,"document\n");
return 0;
}
...
xmlValidCtxt cvp;
cvp.userData = (void *) stderr;
cvp.error = (xmlValidityErrorFunc) fprintf;
cvp.warning = (xmlValidityWarningFunc) fprintf;
int RetVal = xmlValidateDtd(&cvp, doc, dtd);


code3
const char *mem = "<!ELEMENT ECHO-DOCUMENT EMPTY>";
buf = xmlParserInputBufferCreateStatic (mem, 
strlen(mem),XML_CHAR_ENCODING_ASCII);
dtd = xmlIOParseDTD (NULL, buf, XML_CHAR_ENCODING_ASCII); 
ctx = xmlNewValidCtxt();
if( xmlValidateDtd(ctx, doc, dtd) )
{
xmlFreeValidCtxt(ctx);
xmlFreeDtd(dtd);
return 1;
}
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<!DOCTYPE ECHO-DOCUMENT SYSTEM 'test.dtd'>
<ECHO-DOCUMENT>
		<Patient FirstName='Петров' LastName='ZXCV'/>
	<ToneAudiograms>
		<ToneAudiogram Name='ToneAudiogram01' Binaural='False' Fixed='False' Type='HTL' USH='HeadPhone' FreqRange='Low' StimType='Tone' StimMode='Cont'>
			<ToneCurve Later='Right' ColorIndex='1'>
				<TonePoint Freq='1000' Intens='45' StimType='Tone' StimMode='Cont' Response='Yes'/>
				<TonePoint Freq='2000' Intens='55' StimType='Tone' StimMode='Cont' Response='Yes'/>
				<TonePoint Freq='4000' Intens='65' StimType='Tone' StimMode='Cont' Response='Yes'/>
				<TonePoint Freq='6000' Intens='70' StimType='Tone' StimMode='Cont' Response='Yes'/>
			</ToneCurve>
		</ToneAudiogram>
	</ToneAudiograms>

</ECHO-DOCUMENT>

Attachment: test.dtd
Description: application/xml-dtd

_______________________________________________
gnome-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gnome-list

Reply via email to