Alberto (and team)

Note: The problem I am having only occurs if the document node is an
abstract type. It passes validation if the abstract type is embedded within
another element.

I have tried to debug the problem further by delving in the Xerces source.

It would appear that although I have set 'fgXercesSchema', for the document
element IGXMLScanner::fValidator is of type DTDValidator. When we then
process a child element, its is of type SchemaValidator. (I'm observing a
break point in IGXMLScanner::scanRawAttrListforNameSpaces)

DTDValidataor::handlesSchema returns false, and this has the effect that
this line (IGXMLScanner2.cpp:1264):

        if (fValidator && fValidator->handlesSchema())

evaluates to false and the XsiType is not copied into the SchemaValidator
which would then be picked up later.

Does this make sense? Can you comment further?


> Thanks for your reply, Alberto.
>
> Please note I am using the DOM Level 3 DOMBuilder class, which does not
have
> setValidationScheme() method. According to the DOMCount sample this should
> correspond to the XMLUni::fgDOMValidation feature - which I am setting to
> true.
>
> To clarify I am setting these features in the following order:
>
>   parser->setFeature(XMLUni::fgDOMNamespaces, true);
>   parser->setFeature(XMLUni::fgDOMValidation, true);
>
>   parser->setFeature(XMLUni::fgXercesSchema, true);
>   parser->setFeature(XMLUni::fgXercesSchemaFullChecking, true);
>   parser->setFeature(XMLUni::fgXercesValidationErrorAsFatal, true);
>
>  // parser->loadGrammar( Wrapper4InputSource(&XsdInputSrc, false),
>
>   parser->setFeature(XMLUni::fgXercesUseCachedGrammarInParse, true);

> I also tried changing the order of 'fgDOMValidation', but that didn't seem
>to affect things



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to