class Poco::XML::EntityResolverImpl

Overview

A default implementation of the EntityResolver interface. More…

#include <EntityResolverImpl.h>

class EntityResolverImpl: public Poco::XML::EntityResolver
{
public:
    // construction

    EntityResolverImpl();
    EntityResolverImpl(const Poco::URIStreamOpener& opener);

    // methods

    virtual
    InputSource*
    resolveEntity(
        const XMLString* publicId,
        const XMLString& systemId
        );

    virtual
    void
    releaseInputSource(InputSource* pSource);

protected:
    // methods

    std::istream*
    resolveSystemId(const XMLString& systemId);
};

Inherited Members

public:
    // methods

    virtual
    InputSource*
    resolveEntity(
        const XMLString* publicId,
        const XMLString& systemId
        ) = 0;

    virtual
    void
    releaseInputSource(InputSource* pSource) = 0;

Detailed Documentation

A default implementation of the EntityResolver interface.

The system ID is first interpreted as an URI and the URIStreamOpener is used to create and open an istream for an InputSource.

If the system ID is not a valid URI, it is interpreted as a filesystem path and a Poco::FileInputStream is opened for it.

Construction

EntityResolverImpl()

Creates an EntityResolverImpl that uses the default URIStreamOpener.

EntityResolverImpl(const Poco::URIStreamOpener& opener)

Creates an EntityResolverImpl that uses the given URIStreamOpener.

Methods

virtual
InputSource*
resolveEntity(
    const XMLString* publicId,
    const XMLString& systemId
    )

Tries to use the URIStreamOpener to create and open an istream for the given systemId, which is interpreted as an URI.

If the systemId is not a valid URI, it is interpreted as a local filesystem path and a Poco::FileInputStream is opened for it.

virtual
void
releaseInputSource(InputSource* pSource)

Deletes the InputSource ‘s stream.