4#include "Stroika/Foundation/StroikaPreComp.h"
17using namespace Stroika::Foundation::DataExchange::XML;
18using namespace Stroika::Foundation::DataExchange::XML::Schema;
28#if qStroika_Foundation_DataExchange_XML_SupportDOM
32 return DOM::Document::New (fRep_->GetData ());
38 return DOM::Document::New (p, fRep_->GetData ());
48 return Ptr{p.SchemaFactory (schemaData, resolver)};
51#if qStroika_Foundation_DataExchange_XML_SupportSchema
54 static const XML::Providers::ISchemaProvider* kDefaultProvider_ = XML::Providers::kDefaultProvider ();
55 return New (*kDefaultProvider_, schemaData, resolver);
64#if qStroika_Foundation_DataExchange_XML_SupportSchema and qStroika_Foundation_DataExchange_XML_SupportParsing
65void DataExchange::XML::Schema::ValidateFile (
const filesystem::path& externalFileName,
const Ptr& schema)
67 AssertNotNull (
dynamic_cast<const Providers::ISAXProvider*
> (schema.GetRep ()->GetProvider ()));
68 SAXParse (*
dynamic_cast<const Providers::ISAXProvider*
> (schema.GetRep ()->GetProvider ()),
69 IO::FileSystem::FileInputStream::New (externalFileName),
nullptr, schema);
void SAXParse(const Providers::ISAXProvider &saxProvider, const Streams::InputStream::Ptr< byte > &in, StructuredStreamEvents::IConsumer *callback=nullptr, const Schema::Ptr &schema=nullptr, Execution::ProgressMonitor::Updater progress=nullptr)
Document::Ptr is create with Document::New, and is a smart pointer to a DOM document object.