Petter Reinholdtsen wrote: > When checking docbook XML files, there are a few errors in the indexterm > entries that are undetected. It will detect if there is a endofrange > entry without the corresponding startofrange.
That is becausing an IDREF must refer to an existing ID. > It will also detect if > there are two startofrange with the same ID. IDs must be unique inside an XML document. So ditto. xmllint can easily check for these kind of issues. > But it will not detect > > (1) if there is a startofrange without a endofrange. This one cannot be expressed using a DTD. > (2) if there are two endofrange with the same ID. The second refers not to IDs in the meaning of what is an ID in an XML file. The DTD says, that startref is an IDREF. Therefor it is allowed by the DTD, that two or more indexterms of class 'endofrange' exist using the same IDREF, even if this is not the expected content of an DB file. IMO there is no way to make xmllint check for these kind of issues using the DocBook DTD. There are some rewrites of the DocBook DTD using RelaxNG and XSD. Maybe one of them has the abilities to express the conditions you are looking for (I don't know it). For RelaxNG I'd recommend jing-trang for validation. xmllint AFAIK has some issues in validating RelaxNG when using larger RNG definition files. Maybe better ask on the appropriate docbook list. Regards, Daniel -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

