Uploaded image for project: 'Xerces-C++'
  1. Xerces-C++
  2. XERCESC-1151

EntityResolver( XMLResourceIdentifier* ) not implemented in XSDDomParser

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Resolution: Fixed
    • 2.5.0
    • None
    • None
    • Operating System: All
      Platform: All
    • 27008

    Description

      Hello,

      I have been experiencing a problem while using Xerces 2.4.0, but as far as i
      know it was already there in at least version 2.3.0.

      I am parsing an XML document, and all DTD/XSD etc. are in memory, and
      handled by our own EntityResolver. I set this entity resolver on the parser,
      and try to parse the document.

      Most of the entities are resolved using our EntityResolver, but from the
      function
      call with the following call stack:

      > xercesc_2_4::XercesDomParser::resolveEntity() Line 270
      xercesc_2_4::ReaderMgr::createReader() Line 535
      xercesc_2_4::IGXMLScanner::scanDocTypeDecl() Line 1503
      xercesc_2_4::XMLScanner::scanProlog() Line 1238
      xercesc_2_4::IGXMLScanner::scanDocument() Line 240
      xercesc_2_4::AbstractDOMParser::parse() Line 461
      xercesc_2_4::TraverseSchema::preprocessImport() Line 764
      xercesc_2_4::TraverseSchema::preprocessChildren() Line 4447
      xercesc_2_4::TraverseSchema::preprocessInclude() Line 621
      xercesc_2_4::TraverseSchema::preprocessChildren() Line 4444
      xercesc_2_4::TraverseSchema::preprocessSchema() Line 416
      xercesc_2_4::TraverseSchema::TraverseSchema() Line 261
      xercesc_2_4::IGXMLScanner::loadXMLSchemaGrammar() Line 1994
      xercesc_2_4::IGXMLScanner::loadGrammar() Line 3091
      xercesc_2_4::XMLScanner::loadGrammar() Line 1725
      xercesc_2_4::SAX2XMLReaderImpl::loadGrammar() Line 1756

      The XercesDomParser::resolveEntity is being called, but the target is a
      XSDDomParser.
      And because of the mapping to fUserEntityResolver... it should call the
      resolveEntity in XSDDomParser.cpp, but the function EntityResolver(
      XMLResourceIdentifier* )
      has not been implemented in the XSDDomParser.

      If i am correct, this should be done, and after i made the changes
      it works. So i can work "offline" again...

      Regards,

      P. van Bruggen
      New Bridges

      Attachments

        1. ASF.LICENSE.NOT.GRANTED--xsd.patch
          1 kB
          Denis Antrushin

        Activity

          People

            Unassigned Unassigned
            piet-van-bruggen@wxs.nl P. van Bruggen
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: