X-Git-Url: https://pere.pagekite.me/gitweb/text-free-culture-lessig.git/blobdiff_plain/fcba402753dbb5e505efe7a0cd152ae92989e151..750e0b6ba6c352471f7d1f584dc6ac6ddc6d6337:/scripts/verify-indexterm-range diff --git a/scripts/verify-indexterm-range b/scripts/verify-indexterm-range new file mode 100755 index 0000000..19a31a1 --- /dev/null +++ b/scripts/verify-indexterm-range @@ -0,0 +1,31 @@ +#!/usr/bin/python +# +# Verify the ranges of a docbook document, ensuring +# endofrange come after startofrange, and the IDs used by startofrange +# are unique. + +from lxml import etree +def main(): + filename = 'freeculture.xml' + doc = etree.parse(filename) + ids = {} + order = 0 + for it in doc.getroot().xpath('//indexterm'): + order = order + 1 + indextermclass = None + id = None + if 'class' in it.attrib: + indextermclass = it.attrib['class'] + if 'startofrange' == indextermclass: + id=it.attrib['id'] + if id in ids: + print "error: non-unique indexterm id: %s" % id + ids[id] = order + if 'endofrange' == indextermclass: + id = it.attrib['startref'] + if id not in ids: + print "error: indexterm id=\"%s\" not listed before endofrange" % id + print indextermclass, id + +if __name__ == "main": + main()