Update: small dtd tweak - change avp name from IDREF to ID will eliminate one set of issues related to missing reference, but it will generate hundred of errors for every reuse of names like "Unassigned", "Reserved" etc. ====================================================================== I am adding diameter dictionary to wireshark Version 1.8.4 (SVN Rev 46250 from /trunk-1.8). I would like to run xmllint validation. I tried unchanged directory first and I see that it could not find types and vendor-ids, defined in base. I suppose I am missing something. Example failures from running command: 'xmllint --dtdvalid dictionary.dtd dictionary.xml sip.xml' sip.xml:39: element type: validity error : IDREF attribute type-name references an unknown ID "Unsigned32" sip.xml:42: element type: validity error : IDREF attribute type-name references an unknown ID "Unsigned32" asked 06 Feb '15, 08:35 alex4747 edited 19 Feb '15, 06:42 |
2 Answers:
Well, my only thought would be: the Diameter dictionary is more XML-like than proper XML. Wireshark has its own custom parser for reading the Diameter dictionaries so I'm not sure xmllint is going to help you much anyway. answered 18 Feb '15, 07:29 JeffMorriss ♦ |
Make three small tweaks in dictionary.dtd:
Add missing types (Float32, Flag64, Address) to dictionary.xml And you will see xmllint validation pass. answered 19 Feb '15, 20:02 alex4747 |
Perhaps you should tell us what problem you are trying to fix by running xmllint - like your custom .xml not beeing loaded or something like that...
Custom xml is being loaded but one would never know whether all the parts were loaded or not - I could not find a way to get wireshark diagnostic on dictionary loads.
It seems that I am very naive to assume dictionary.dtd file implied compliance check.