4#ifndef _Stroika_Foundation_DataExchange_XML_Providers_LibXML2_h_
5#define _Stroika_Foundation_DataExchange_XML_Providers_LibXML2_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
9static_assert (qStroika_HasComponent_libxml2,
"Don't include this file if qStroika_HasComponent_libxml2 not set");
11#include <libxml/parser.h>
12#include <libxml/schemasInternals.h>
13#include <libxml/xmlerror.h>
14#include <libxml/xmlschemas.h>
15#include <libxml/xpath.h>
16#include <libxml/xpathInternals.h>
32namespace Stroika::Foundation::DataExchange::XML::Providers::LibXML2 {
34 using Characters::String;
44 struct ILibXML2SchemaRep : Schema::IRep {
45 virtual xmlSchema* GetSchemaLibRep () = 0;
48 struct ILibXML2DocRep : DOM::Document::IRep {
49 virtual xmlDoc* GetLibXMLDocRep () = 0;
54 struct ILibXML2NodeRep :
virtual DOM::Node::IRep {
55 virtual xmlNode* GetInternalTRep () = 0;
69 const Schema::Ptr& schemaToValidateAgainstWhileReading)
const override;
73 inline const Provider kDefaultProvider;
#define CompileTimeFlagChecker_HEADER(NS_PREFIX, NAME, VALUE)
CompileTimeFlagChecker_HEADER () will generate a LINK ERROR if you ever compile a header with one val...
String libXMLString2String(const xmlChar *s, int len)