Xerces-C valida xml com xsd codificado

Estou escrevendo uma biblioteca que pega arquivos xml e os analisa. Para impedir que os usuários alimentem xmls inválidos no meu aplicativo, estou usando o xerces para validar os arquivos xml por meio de um xsd.

No entanto, eu apenas consigo validar contra arquivos xsd. Teoricamente, um usuário pode simplesmente abrir esse arquivo e mexer com ele. É por isso que eu gostaria que meu xsd fosse codificado na minha biblioteca.

Infelizmente ainda não encontrei uma maneira de fazer isso com o XercesC ++.

É assim que está funcionando agora ...

bool XmlParser::validateXml(std::string a_XsdFilename)
{
    xercesc::XercesDOMParser  domParser;
    if (domParser.loadGrammar(a_XsdFilename.c_str(), xercesc::Grammar::SchemaGrammarType) == NULL)
    {
        throw Exceptions::Parser::XmlSchemaNotReadableException();
    }

    XercesParserErrorHandler parserErrorHandler;

    domParser.setErrorHandler(&parserErrorHandler);
    domParser.setValidationScheme(xercesc::XercesDOMParser::Val_Always);
    domParser.setDoNamespaces(true);
    domParser.setDoSchema(true);
    domParser.setValidationSchemaFullChecking(true);

    domParser.parse(m_Filename.c_str());

    return (domParser.getErrorCount() == 0);

}

std::string m_Filename é uma variável de membro que mantém o caminho do xml que eu valido.

std::string a_XsdFilename é o caminho para o xsd contra o qual valido.

XercesParserErrorHandler herda dexercesc::ErrorHandler e faz tratamento de erros.

Como posso substituirstd::string a_XsdFilename com algo comostd::string a_XsdText? Ondestd::string a_XsdText contém a própria definição de esquema em vez de um caminho para um arquivo que contém a definição de esquema.

questionAnswers(1)

yourAnswerToTheQuestion