]> pere.pagekite.me Git - text-free-culture-lessig.git/blob - scripts/verify-indexterm-range
Notes: 162/222.
[text-free-culture-lessig.git] / scripts / verify-indexterm-range
1 #!/usr/bin/python
2 #
3 # Verify the <indexterm> ranges of a docbook document, ensuring
4 # endofrange come after startofrange, and the IDs used by startofrange
5 # are unique.
6
7 from lxml import etree
8 def main():
9 filename = 'freeculture.xml'
10 doc = etree.parse(filename)
11 ids = {}
12 order = 0
13 for it in doc.getroot().xpath('//indexterm'):
14 order = order + 1
15 indextermclass = None
16 id = None
17 if 'class' in it.attrib:
18 indextermclass = it.attrib['class']
19 if 'startofrange' == indextermclass:
20 id=it.attrib['id']
21 if id in ids:
22 print "error: non-unique indexterm id: %s" % id
23 ids[id] = order
24 if 'endofrange' == indextermclass:
25 id = it.attrib['startref']
26 if id not in ids:
27 print "error: indexterm id=\"%s\" not listed before endofrange" % id
28 print indextermclass, id
29
30 if __name__ == "main":
31 main()