blob: bfeff4109930dc3e44b5e9c8b4aa4b0cb7768a6f (
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
|
# week 4 deel 1
De criteria in de opdrachtbeschrijving zijn een beetje vaag, dus het
standaardgedrag van de XML parser staat in Doxygen-formaat in ValidXML.h
uitgelegd. De parser controleert letter voor letter of de XML nog geldig is,
waarbij gecontroleerd wordt op hiërarchie (d.m.v. Stack-klasse), en juiste
XML-syntax (geen dubbele `<` of `>`, en geen misplaatste `/`). Juiste
hiërarchie betekent voor deze parser alleen dat een bovenliggende tag niet kan
worden gesloten vóór een onderliggende tag. De main.cpp zorgt ervoor dat de
parser altijd vanuit stdin leest:
```bash
$ make
g++ -c Stack.cpp -o Stack.o
g++ -c ValidXML.cpp -o ValidXML.o
g++ -c main.cpp -o main.o
g++ Stack.o ValidXML.o main.o -lstdc++ -o main
$ cat correct.xml
<persoon>
<naam attr="test">Donald Duck</naam>
<adres>Eendenplein 17</adres>
<woonplaats>Duckstad</woonplaats>
</persoon>
$ cat invalid.xml
<persoon>
<naam><adres>Donald Duck</naam>
Eendenplein 17</adres>
<woonplaats>Duckstad</woonplaats>
$ ./main < correct.xml
XML is valid
$ ./main < invalid.xml
XML is invalid
$
```
|