From 2615896faa646e5830abf2c269150e1165c66515 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Fri, 18 Dec 2020 18:48:46 +0300 Subject: Switch to build2 --- libxsd/libxsd/cxx/xml/elements.txx | 71 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 libxsd/libxsd/cxx/xml/elements.txx (limited to 'libxsd/libxsd/cxx/xml/elements.txx') diff --git a/libxsd/libxsd/cxx/xml/elements.txx b/libxsd/libxsd/cxx/xml/elements.txx new file mode 100644 index 0000000..7ef2855 --- /dev/null +++ b/libxsd/libxsd/cxx/xml/elements.txx @@ -0,0 +1,71 @@ +// file : libxsd/cxx/xml/elements.txx +// license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +namespace xsd +{ + namespace cxx + { + namespace xml + { + // properties + // + + template + void properties:: + schema_location (const std::basic_string& ns, + const std::basic_string& loc) + { + if (ns.empty () || loc.empty ()) + throw argument (); + + if (!schema_location_.empty ()) + schema_location_ += C (' '); + + schema_location_ += ns + C (' ') + loc; + } + + template + void properties:: + no_namespace_schema_location (const std::basic_string& loc) + { + if (loc.empty ()) + throw argument (); + + if (!no_namespace_schema_location_.empty ()) + no_namespace_schema_location_ += C (' '); + + no_namespace_schema_location_ += loc; + } + + + // + // + + template + std::basic_string + prefix (const std::basic_string& n) + { + std::size_t i (0); + + while (i < n.length () && n[i] != ':') + ++i; + + return std::basic_string (n, i == n.length () ? i : 0, i); + } + + template + std::basic_string + uq_name (const std::basic_string& n) + { + std::size_t i (0); + + while (i < n.length () && n[i] != ':') + ++i; + + return std::basic_string ( + n.c_str () + (i == n.length () ? 0 : i + 1)); + } + } + } +} + -- cgit v1.1