-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathDOMReader.h
124 lines (106 loc) · 2.56 KB
/
DOMReader.h
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#ifndef DOMREADER_H
#define DOMREADER_H
#include <xercesc/dom/DOM.hpp>
#include <cstdio>
#include <string>
#include "XMLException.h"
#include "UnicodeTools.h"
namespace flux {
namespace xml {
/**
* Schnittstellen-Klasse zum Ansteuern des XML-Parsers. Der Constructor nimmt
* die Initialisierung des XML-DOM-Parsers vor.
*
* @author Michael Weitzel <[email protected]>
*/
class DOMReader
{
protected:
/** Filtern/Auflösen von XInclude-Anweisungen */
bool f_resolve_xinclude_;
public:
/**
* Constructor.
*/
DOMReader() : f_resolve_xinclude_(false) { }
/**
* Virtueller Destructor
*/
virtual ~DOMReader() { }
/**
* Parsen eines FluxML-Dokuments hinter einer angegebenen URI
*
* @param uri URI des FluxML-Dokuments
*/
virtual void parseFromURI(char const * uri) = 0;
/**
* Parsen eines FluxML-Dokuments aus einem String.
*
* @param fluxml ein String mit Content-FluxML
*/
virtual void parseFromMemory(
unsigned char const * buf,
size_t len
) = 0;
/**
* Liest ein FluxML-Dokument von einem Stream (Details der C++-Impl noch
* festzulegen)
*
* @param in_file Stream, von dem das FluxML-Dokument gelesen wird
*/
virtual void parseFromStream(FILE * in_file) = 0;
/**
* Liest ein FluxML-Dokument aus der Standard-Eingabe
*/
virtual void parseFromStdIn() = 0;
/**
* Liest ein FluxML-Dokument aus einer lokalen Datei.
* Diese Methode gibt es in der Java-Implementierung nicht.
*
* @param file_name Dateiname mit vollständigem Pfad
*/
virtual void parseFromFile(char const * file_name) = 0;
/**
* Rückgabe des FluxML-Dokuments
*
* @return geparstes FluxML-Dokument
*/
virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *
getDOMDocument() = 0;
/**
* Rückgabe des DOMImplementation-Objekts.
*
* @return von DOMReader verwendetes DOMImplementation-Objekt
*/
virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementation *
getDOMImplementation() = 0;
/**
* Abbildung einer System-Id auf eine andere System-Id.
*
* @param from Quell-Resource
* @param to Ziel-Resource
*/
virtual bool mapEntity(
char const * from,
char const * to
) = 0;
/**
* Abbildung einer System-Id auf eine andere System-Id.
*
* @param from Quell-Resource
* @param to Ziel-Resource
*/
virtual bool mapEntity(
XMLCh const * from,
XMLCh const * to
) = 0;
/**
* Optionale Auflösung der XInclude Anweisungen
*
* @param tf true, falls XInclude-Anweisungen aufgelöst werden sollen
*/
virtual void setResolveXInclude(bool tf) { f_resolve_xinclude_ = tf; }
};
} // namespace flux::xml
} // namespace flux
#endif