aboutsummaryrefslogtreecommitdiff
path: root/libstudxml/content.hxx
blob: f4f44bf6dc2495711c751e4214920e9e4b34ce57 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// file      : libstudxml/content.hxx -*- C++ -*-
// copyright : Copyright (c) 2013-2018 Code Synthesis Tools CC
// license   : MIT; see accompanying LICENSE file

#ifndef LIBSTUDXML_CONTENT_HXX
#define LIBSTUDXML_CONTENT_HXX

#include <libstudxml/details/pre.hxx>

namespace xml
{
  // XML content model. C++11 enum class emulated for C++98.
  //
  struct content
  {
    enum value
    {
               //  element   characters  whitespaces        notes
      empty,   //    no          no        ignored
      simple,  //    no          yes       preserved   content accumulated
      complex, //    yes         no        ignored
      mixed    //    yes         yes       preserved
    };

    content (value v): v_ (v) {};
    operator value () const {return v_;}

  private:
    value v_;
  };
}

#include <libstudxml/details/post.hxx>

#endif // LIBSTUDXML_CONTENT_HXX