Ethereal-dev: RE: [Ethereal-dev] New protocol WBXML
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Biot Olivier <Olivier.Biot@xxxxxxxxxxxxxxx>
Date: Fri, 7 Feb 2003 21:09:57 +0100
> > If you want, WMLC is a WBXML application.
>
> So the relationship between WBXML and WMLC is somewhat like the
> relationship between SGML and HTML, in that WBXML and SGML
> aren't markup
> languages that define specific tags, they're types of "meta-languages"
> that, when combined with a DTD or whatever, result in
> languages that are
> applications of the underlying "meta-language".
>
> If so, then might there be a WMLC dissector that, for
> instance, uses the
> common WBXML code but supplies some additional information to
> allow the
> WMLC semantics to be understood - and possibly dissectors for
> the other
> WBXML applications as well?
Well, the way I was looking at it was to parse the WBXML content
in 2 "steps". First, the WBXML "skeleton" is constructed, and then
the content-specific (WMLC, SIC, ...) mapping of application-specific
elements on top of the WBXML "skeleton" is performed.
This mapping can occur automatically, e.g., by referring to an array
of value_string arrays when doing the proto_tree_add_XXX () magic.
Depending on the content type, the mapping will be performed (if
it is available). One could also take a fallback mapping table in
case that specific content did not have a matching value_string array
yet. In this situation, a structure with tag and attribute names like
"tag_6", "attr_start_45" and "attr_value_22" would be defined.
It would be possible to set preference parameters for enabling/disabling
both WBXML in-depth parsing and WBXML application "rendering", in order
to significantly change memory and CPU consumption while E.g., doing
live captures.
The final output in Ethereal might look like:
Tag with Content: <wml>
Tag with Attributes and Content: <card
Attribute-Start: title=
STR_I "Google"
END of Attribute List: >
Tag with Attributes and Content: <do
Attribute-Start: type="accept"
Attribute-Start: label=
STR_I "OK"
END of Attribute List: >
Empty Tag: <noop/>
END of Tag: </do>
Tag with Attributes and Content: <do
Attribute-Start: type="options"
Attribute-Start: label=
STR_I "Terug"
END of Attribute List: >
Empty Tag: <prev/>
END of Tag: </do>
[ . . . ]
One could put both WBXML "skeleton" and WBXML application "rendering"
either next to each other as shown in the example above, or in two
separate (sub)trees of the WBXML tree:
[+] Data
[+] WBXML skeleton
[+] WML rendering
(in case the content is WMLC).
Unfortunately, the rendering of the content will require recursion
(when tag content is a tag: see indentation of example), otherwise
we can only parse single WBXML tokens.
Regards,
Olivier
- Prev by Date: Re: [Ethereal-dev] Patch to packet-ppp.c
- Next by Date: Re: [Ethereal-dev] tap
- Previous by thread: Re: [Ethereal-dev] New protocol WBXML
- Next by thread: [Ethereal-dev] Re: [Ethereal-cvs] cvs commit: ethereal packet-tns.c
- Index(es):





