equal
deleted
inserted
replaced
23 |
23 |
24 namespace relpipe { |
24 namespace relpipe { |
25 namespace in { |
25 namespace in { |
26 namespace xmltable { |
26 namespace xmltable { |
27 |
27 |
|
28 enum class Mode { |
|
29 STRING, |
|
30 BOOLEAN, |
|
31 // TODO: support also XML number, when we have a rational or decimal numbers in Relational pipes |
|
32 RAW_XML, |
|
33 LINE_NUMBER, |
|
34 XPATH |
|
35 }; |
|
36 |
|
37 class XmlElementSkeleton { |
|
38 public: |
|
39 relpipe::writer::string_t name; |
|
40 relpipe::writer::string_t uri; |
|
41 relpipe::writer::string_t prefix; |
|
42 |
|
43 XmlElementSkeleton() { |
|
44 } |
|
45 |
|
46 XmlElementSkeleton(relpipe::writer::string_t name, relpipe::writer::string_t uri = L"", relpipe::writer::string_t prefix = L"") : name(name), uri(uri), prefix(prefix) { |
|
47 } |
|
48 |
|
49 virtual ~XmlElementSkeleton() { |
|
50 } |
|
51 }; |
|
52 |
28 class AttributeRecipe { |
53 class AttributeRecipe { |
29 public: |
54 public: |
30 |
55 |
31 virtual ~AttributeRecipe() { |
56 virtual ~AttributeRecipe() { |
32 } |
57 } |
33 |
58 |
34 relpipe::writer::string_t name; |
59 relpipe::writer::string_t name; |
35 relpipe::writer::TypeId type; |
60 relpipe::writer::TypeId type; |
36 relpipe::writer::string_t xpath; |
61 relpipe::writer::string_t xpath; |
|
62 Mode mode = Mode::STRING; |
|
63 XmlElementSkeleton rawXmlNodeListWrapper; |
|
64 XmlElementSkeleton rawXmlAttributeWrapper; |
|
65 |
37 }; |
66 }; |
38 |
67 |
39 class RelationConfiguration { |
68 class RelationConfiguration { |
40 public: |
69 public: |
41 |
70 |
44 |
73 |
45 relpipe::writer::string_t relation; |
74 relpipe::writer::string_t relation; |
46 relpipe::writer::boolean_t nameIsXPath = false; |
75 relpipe::writer::boolean_t nameIsXPath = false; |
47 relpipe::writer::string_t xpath; |
76 relpipe::writer::string_t xpath; |
48 std::vector<AttributeRecipe> attributes; |
77 std::vector<AttributeRecipe> attributes; |
49 |
78 |
|
79 // Defaults/templates for AttributeRecipe: |
|
80 Mode mode = Mode::STRING; |
|
81 XmlElementSkeleton rawXmlNodeListWrapper; |
|
82 XmlElementSkeleton rawXmlAttributeWrapper = {L"attribute"}; |
50 }; |
83 }; |
51 |
84 |
52 class Configuration { |
85 class Configuration { |
53 public: |
86 public: |
54 std::vector<RelationConfiguration> relationConfigurations; |
87 std::vector<RelationConfiguration> relationConfigurations; |