In my case getColumnNumber returns always the bytes of the "node" in my xml-File, not
the position where the error occurs. I also use 2_4_0 with vc++ 6.0. ATM i dont see a
way to get the position where the error occurs except to "patch" the xerces src :/.
I used the following code:
<snip>
bool bOK = true;
SAX2XMLReader* parser = XMLReaderFactory::createXMLReader();
parser->setFeature(XMLUni::fgSAX2CoreValidation, true);
parser->setFeature(XMLUni::fgXercesDynamic, false);
parser->setFeature(XMLUni::fgSAX2CoreNameSpaces, true);
parser->setFeature(XMLUni::fgSAX2CoreNameSpacePrefixes, true);
parser->setFeature(XMLUni::fgXercesSchema, true);
parser->setFeature(XMLUni::fgXercesCalculateSrcOfs, true);
int errorCount = 0;
try
{
SAX2PrintHandlers handler("LATIN1", XMLFormatter::UnRep_CharRef, false);
parser->setContentHandler(&handler);
parser->setErrorHandler(&handler);
parser->parse(csXmlFile.GetBuffer(0));
errorCount = parser->getErrorCount();
if (errorCount > 0) {
AfxMessageBox(handler.GetFirstError());
int i=0;
while (++i < errorCount)
AfxMessageBox(handler.GetNextError());
}
}
<snap>
and
<snip>
void SAX2PrintHandlers::error(const SAXParseException& e)
{
vReallocErrorList();
StrX poSX = StrX(e.getMessage());
char *z = XMLString::transcode(e.getSystemId());
ppszErrorList[lErrorItems++] = szFormatMessage(e.getLineNumber(),
poSX.Transcode(), e.getColumnNumber());
}
<snap>
Am Mo 15.03.2004 15:02, [EMAIL PROTECTED] schrieb:
> Hi, Kai-Uwe.
>
> I only use the DOM parser, but my errorhandler gets notified about parsing and
> validation problems, and they are reported in form of SAXParseExceptions. Here I can
> call the getColumnNumber()/getLineNumber() methods to find out what caused the
> problem.
>
> If in your case these methods deliver nothing I think there's a bug in the
> implementation....
>
> Hiran
>
> PS: Using Xerces C++ 2.4.0 on VC++ 6....
>
> > -----Original Message-----
> > From: Kai-Uwe Schmidt [mailto:[EMAIL PROTECTED]
> > Sent: Monday, March 15, 2004 2:57 PM
> > To: [EMAIL PROTECTED]
> > Subject: Re: schema validation
> >
> >
> > Can anyone help/comment this ?
> >
> > regards
> > Kai-Uwe
> >
> > Am Do 11.03.2004 20:36, Kai-Uwe Schmidt <[EMAIL PROTECTED]> schrieb:
> >
> > > Hi folks,
> > >
> > > i am trying to parse a xml with a schema included. I have
> > trouble with the informations i get in my errorhandler.
> > > i am missing the attribute name in the case the xml doesnt
> > conform to the xsd.
> > >
> > > The SAXParseException doesnt contain any data about the
> > position of the attribute which caused the error. Is this a
> > misconfiguration of the parse or a bug in my xml/xsd
> > definition ? Or is this feature actually not implemented. I
> > have back traced the parser up to
> > SchemaValidator::validateAttrValue where i can find the
> > attribute name with attDef->getFullName() but it doesnt seem
> > that the following methodes transport this information down
> > to my error handler (at least not with my actuall parser
> > configuration). Cananyone help me out to get the name of the
> > misfitting attribute ?
> > >
> > >
> > > Just for the case its a missing feature.
> > >
> > > The Information can be delivered to the user by modifying
> > the resource String table ID 16430 like this:
> > > Datatype error: Type:{0}, Attribute: {2}, Message:{1}.
> > > and upgrading:
> > > emitError (XMLValid::DatatypeError, idve.getType(),
> > idve.getMessage(),attDef->getFullName());
> > > in SchemaValidator::validateAttrValue.
> > >
> > > No clue how to make this OS independent (but i hope its not
> > such a bad hack).
> > >
> > >
> > > thanks alot
> > > Kai-Uwe
> > >
> > >
> > >
> > >
> > ---------------------------------------------------------------------
> > > 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]
> >
> >
>
> ---------------------------------------------------------------------
> 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]