ANNOUNCEMENT: Live Wireshark University & Allegro Packets online APAC Wireshark Training Session
April 17th, 2024 | 14:30-16:00 SGT (UTC+8) | Online

Wireshark-dev: [Wireshark-dev] XML dissector with DTD

From: Fam Dijns <dijns@xxxxxxx>
Date: Mon, 17 May 2010 21:54:35 +0200
Hi,

I am using the XML dissector and use the DTD from the xml wiki

<?wireshark:protocol proto_name="this" hierarchy="yes" ?>
<!DOCTYPE this [
  <!ELEMENT that (other|another|#PCDATA) >
  <!ATTLIST that 
     one CDATA #REQUIRED
     two CDATA #IMPLIED  >

  <!ELEMENT other (#PCDATA) >
  <!ELEMENT another (#PCDATA) >
]>

This creates the filters :
"this", "this.that", "this.that.one", "this.that.two", "this.that.other",
"this.that.another", "this.other", "this.anothor".

As I understand the DTD right, "other" and "another" are children of "that",
and so the last 2 filters are incorrect. Am I right? If not, how can I avoid
the last 2 filters. In my XML "this.other" and "this.another" elements are
definitely incorrect. Can this be done in the DTD or should I adapt the
wireshark source code.

When I am looking into the source code, the filters are build in
packet-xml.c at line 1086 and further. If I should adapt the code, shall I
use the hierarchy flag or do I need to create a new flag, to be backwards
compatible?

I hope somebody has some answer on the questions above.

Thanks in advance
Richard