LibMusicXML 3.22
xmlreader.h
1/*
2 MusicXML Library
3 Copyright (C) Grame 2006-2013
4
5 This Source Code Form is subject to the terms of the Mozilla Public
6 License, v. 2.0. If a copy of the MPL was not distributed with this
7 file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
9 Grame Research Laboratory, 11, cours de Verdun Gensoul 69002 Lyon - France
10 research@grame.fr
11*/
12
13#ifndef __xmlreader__
14#define __xmlreader__
15
16#include <stack>
17#include <stdio.h>
18#include "exports.h"
19#include "xmlfile.h"
20#include "reader.h"
21
22namespace MusicXML2
23{
24
25//______________________________________________________________________________
26class EXP xmlreader : public reader
27{
28 std::stack<Sxmlelement> fStack;
29 SXMLFile fFile;
30
31 public:
32 xmlreader() {}
33 virtual ~xmlreader() {}
34
35 SXMLFile readbuff(const char* file);
36 SXMLFile read(const char* file);
37 SXMLFile read(FILE* file);
38
39 bool xmlDecl (const char* version, const char *encoding, int standalone);
40 bool docType (const char* start, bool status, const char *pub, const char *sys);
41
42 void newComment (const char* comment);
43 void newProcessingInstruction (const char* pi);
44 bool newElement (const char* eltName);
45 bool newAttribute (const char* eltName, const char *val);
46 void setValue (const char* value);
47 bool endElement (const char* eltName);
48 void error (const char* s, int lineno);
49};
50
51}
52
53#endif