Sure. xmllint, which comes with libxml2 (libxml2-utils in Ubuntu), supports RELAX NG these days.
scout:protocol jvolkman$ xmllint --noout --relaxng schema.xml wayland.xml wayland.xml validates -Jeremy 2011/1/27 Kristian Høgsberg <[email protected]> > On Wed, Jan 26, 2011 at 5:09 PM, Jeremy Volkman <[email protected]> > wrote: > > Here's my stab at a Wayland schema written in RELAX NG. It can be > converted > > to a W3C schema if preferred, but RELAX NG provides more functionality. > For > > example, the schema is able to require an "interface" attribute for an > > argument only if the argument type is "object" or "new_id". > > -Jeremy > > Is there a tool that can verify the protocol against the schema? > > Kristian > > > 2011/1/26 Kristian Høgsberg <[email protected]> > >> > >> 2011/1/26 Casey Dahlin <[email protected]>: > >> > On Wed, Jan 26, 2011 at 01:40:25PM -0500, Kristian Høgsberg wrote: > >> >> 2011/1/26 Josh Leverette <[email protected]>: > >> >> > I'm not certain, but I think there could eventually be enough > >> >> > variation for that to be needed. However, even if there isn't, > parsing an > >> >> > XML file might be a better long term solution that weakly linked > functions > >> >> > and things like that. Perhaps we could modify his idea about an XML > profile > >> >> > structure to allow you to delve into each supported profile and > find out > >> >> > more about what it supports without having to hard code acceptable > version > >> >> > numbers into a program. The only problem I foresee is how to modify > the XML > >> >> > file. It's not going to be the end user's job.. but if any program > could > >> >> > modify it there needs to be a fallback system to prevent a rogue > program > >> >> > from deleting other profile advertisements written in by the system > or other > >> >> > programs. > >> >> > >> >> The XML file isn't used at runtime. It's just a convenient mechanism > >> >> to describe the interface. The way it works is that a client > connects > >> >> to the server and the server will then advertise all the global > >> >> objects available by giving their object id, interface name and > >> >> version. A client can then look through the list to see what's > >> >> available and adjust its behaviour accordingly. > >> >> > >> >> Kristian > >> >> > >> > > >> > Does the XML file have a particular schema? > >> > > >> > It might be useful to install it in /usr/share so it could be used by > >> > tools. I'm thinking mostly of a d-feet style introspection tool for > the > >> > Wayland protocol (we could even go as far as dynamically adaptable > >> > bindings for languages like Ruby or Python). > >> > >> I didn't actually write a schema for it, but if somebody with the > >> right XML-fu could do that that would be nice. It's a good point that > >> dynamic languages probably just want to parse the XML directly and > >> generate the bindings on the fly and for that we would need to install > >> the XML. As for introspection/logging/xscope, that's built into the > >> server side library: set WAYLAND_DEBUG=1 and watch the requests and > >> events fly by. > >> > >> Kristian > >> _______________________________________________ > >> wayland-devel mailing list > >> [email protected] > >> http://lists.freedesktop.org/mailman/listinfo/wayland-devel > > > > > > _______________________________________________ > > wayland-devel mailing list > > [email protected] > > http://lists.freedesktop.org/mailman/listinfo/wayland-devel > > > > >
_______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
