m_pReader = NULL;
m_pStream = NULL;
- m_pXML = xml_Create( pIntf );
- if( !m_pXML )
+ if( useDTD )
{
- msg_Err( getIntf(), "failed to open XML parser" );
- return;
+ m_pXML = xml_Create( pIntf );
+ if( m_pXML )
+ LoadCatalog();
+ else
+ {
+ msg_Err( getIntf(), "DTD not supported" );
+ useDTD = false;
+ }
}
+ else
+ m_pXML = NULL;
- // Avoid duplicate initialization (mutex needed ?) -> doesn't work
- // Reinitialization required for a new XMLParser
- // if( !m_initialized )
- // {
- // LoadCatalog();
- // m_initialized = true;
- // }
- LoadCatalog();
-
- char* psz_uri = make_URI( rFileName.c_str() );
+ char* psz_uri = make_URI( rFileName.c_str(), NULL );
m_pStream = stream_UrlNew( pIntf, psz_uri );
free( psz_uri );
XMLParser::~XMLParser()
{
- if( m_pReader && m_pXML ) xml_ReaderDelete( m_pXML, m_pReader );
+ if( m_pReader ) xml_ReaderDelete( m_pReader );
if( m_pXML ) xml_Delete( m_pXML );
if( m_pStream ) stream_Delete( m_pStream );
}