<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Mit Xerces-C++ gegen Schema validieren]]></title><description><![CDATA[<p>Hallo! Ich möchte eine xml Datei gegen eine xsd Datei validieren. Aus der Doku habe ich schon einiges gefunden, aber anscheinend habe ich eine Kleinigkeit vergessen. Mein Code lässt sich wunderbar ausführen, jedoch gibt er keine Fehler aus wenn das Schema nicht zu der XML Datei passt.</p>
<p>Wie kann ich xerces sagen, dass Fehler auf stdout ausgegeben werden sollen?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

#include &lt;xercesc/sax2/XMLReaderFactory.hpp&gt;
#include &lt;xercesc/sax2/SAX2XMLReader.hpp&gt;
#include &lt;xercesc/sax2/DefaultHandler.hpp&gt;
#include &lt;xercesc/validators/common/Grammar.hpp&gt;
#include &lt;xercesc/util/XMLUni.hpp&gt;

XERCES_CPP_NAMESPACE_USE

int main(int argc, char **argv)
{
    try
    {
        XMLPlatformUtils::Initialize();
    }
    catch( XMLException&amp; e )
    {
        char* message = XMLString::transcode( e.getMessage() );
        std::cerr &lt;&lt; &quot;XML toolkit initialization error: &quot; &lt;&lt; message &lt;&lt; std::endl;
        XMLString::release( &amp;message );
    }

    SAX2XMLReader* parser = xercesc::XMLReaderFactory::createXMLReader();
    parser-&gt;setFeature(XMLUni::fgSAX2CoreNameSpaces, true);
    parser-&gt;setFeature(XMLUni::fgSAX2CoreValidation, true);
    parser-&gt;setFeature(XMLUni::fgXercesDynamic, false);
    parser-&gt;setFeature(XMLUni::fgXercesSchema, true);
    parser-&gt;setFeature(XMLUni::fgXercesSchemaFullChecking, true);

    parser-&gt;loadGrammar(argv[2], Grammar::SchemaGrammarType, true);
    parser-&gt;setFeature(XMLUni::fgXercesUseCachedGrammarInParse, true);

    DefaultHandler handler;
    parser-&gt;setContentHandler(&amp;handler);
    parser-&gt;setErrorHandler(&amp;handler);
    parser-&gt;setEntityResolver(&amp;handler);
    parser-&gt;parse(argv[1]);

    delete parser;

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/170207/mit-xerces-c-gegen-schema-validieren</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 07:58:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170207.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 12 Jan 2007 18:33:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mit Xerces-C++ gegen Schema validieren on Fri, 12 Jan 2007 18:33:23 GMT]]></title><description><![CDATA[<p>Hallo! Ich möchte eine xml Datei gegen eine xsd Datei validieren. Aus der Doku habe ich schon einiges gefunden, aber anscheinend habe ich eine Kleinigkeit vergessen. Mein Code lässt sich wunderbar ausführen, jedoch gibt er keine Fehler aus wenn das Schema nicht zu der XML Datei passt.</p>
<p>Wie kann ich xerces sagen, dass Fehler auf stdout ausgegeben werden sollen?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

#include &lt;xercesc/sax2/XMLReaderFactory.hpp&gt;
#include &lt;xercesc/sax2/SAX2XMLReader.hpp&gt;
#include &lt;xercesc/sax2/DefaultHandler.hpp&gt;
#include &lt;xercesc/validators/common/Grammar.hpp&gt;
#include &lt;xercesc/util/XMLUni.hpp&gt;

XERCES_CPP_NAMESPACE_USE

int main(int argc, char **argv)
{
    try
    {
        XMLPlatformUtils::Initialize();
    }
    catch( XMLException&amp; e )
    {
        char* message = XMLString::transcode( e.getMessage() );
        std::cerr &lt;&lt; &quot;XML toolkit initialization error: &quot; &lt;&lt; message &lt;&lt; std::endl;
        XMLString::release( &amp;message );
    }

    SAX2XMLReader* parser = xercesc::XMLReaderFactory::createXMLReader();
    parser-&gt;setFeature(XMLUni::fgSAX2CoreNameSpaces, true);
    parser-&gt;setFeature(XMLUni::fgSAX2CoreValidation, true);
    parser-&gt;setFeature(XMLUni::fgXercesDynamic, false);
    parser-&gt;setFeature(XMLUni::fgXercesSchema, true);
    parser-&gt;setFeature(XMLUni::fgXercesSchemaFullChecking, true);

    parser-&gt;loadGrammar(argv[2], Grammar::SchemaGrammarType, true);
    parser-&gt;setFeature(XMLUni::fgXercesUseCachedGrammarInParse, true);

    DefaultHandler handler;
    parser-&gt;setContentHandler(&amp;handler);
    parser-&gt;setErrorHandler(&amp;handler);
    parser-&gt;setEntityResolver(&amp;handler);
    parser-&gt;parse(argv[1]);

    delete parser;

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1208961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1208961</guid><dc:creator><![CDATA[XML-Freak]]></dc:creator><pubDate>Fri, 12 Jan 2007 18:33:23 GMT</pubDate></item></channel></rss>