8namespace Stroika::Foundation::DataExchange::XML::Schema {
15 inline Ptr::Ptr (nullptr_t)
18 inline Ptr::Ptr (shared_ptr<IRep> s)
22 inline optional<URI> Ptr::GetTargetNamespace ()
const
24 return fRep_->GetTargetNamespace ();
26 inline shared_ptr<IRep> Ptr::GetRep ()
const
30#if qStroika_Foundation_DataExchange_XML_SupportDOM
34 template <
typename AS_T>
36#if !qCompilerAndStdLib_RequiresNotMatchInlineOutOfLineForTemplateClassBeingDefined_Buggy
37 requires (same_as<AS_T, String>
38#if qStroika_Foundation_DataExchange_XML_SupportDOM
39 or same_as<AS_T, XML::DOM::Document::Ptr>
41 or same_as<AS_T, Memory::BLOB>)
44 if constexpr (same_as<AS_T, String>) {
45 return Streams::BinaryToText::Reader::New (fRep_->GetData ()).ReadAll ();
47 else if constexpr (same_as<AS_T, Memory::BLOB>) {
48 return fRep_->GetData ();
51 template <
typename AS_T>
52 AS_T Ptr::As (
const Providers::ISchemaProvider& p)
53 requires (same_as<AS_T, XML::Schema::Ptr>)
55 if constexpr (same_as<AS_T, XML::Schema::Ptr>) {
56 return New (p, fRep_->GetData (), fRep_->GetResolver ());
60 XML::DOM::Document::Ptr Ptr::As (
const Providers::IDOMProvider& p);
Document::Ptr is create with Document::New, and is a smart pointer to a DOM document object.