Here&#39;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 &quot;interface&quot; attribute for an argument only if the argument type is &quot;object&quot; or &quot;new_id&quot;.<div>
<br></div><div>-Jeremy<br><br><div class="gmail_quote">2011/1/26 Kristian Høgsberg <span dir="ltr">&lt;<a href="mailto:krh@bitplanet.net">krh@bitplanet.net</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
2011/1/26 Casey Dahlin &lt;<a href="mailto:cdahlin@redhat.com">cdahlin@redhat.com</a>&gt;:<br>
<div class="im">&gt; On Wed, Jan 26, 2011 at 01:40:25PM -0500, Kristian Høgsberg wrote:<br>
&gt;&gt; 2011/1/26 Josh Leverette &lt;<a href="mailto:coder543@gmail.com">coder543@gmail.com</a>&gt;:<br>
&gt;&gt; &gt; I&#39;m not certain, but I think there could eventually be enough variation for that to be needed. However, even if there isn&#39;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&#39;s not going to be the end user&#39;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.<br>

&gt;&gt;<br>
&gt;&gt; The XML file isn&#39;t used at runtime.  It&#39;s just a convenient mechanism<br>
&gt;&gt; to describe the interface.  The way it works is that a client connects<br>
&gt;&gt; to the server and the server will then advertise all the global<br>
&gt;&gt; objects available by giving their object id, interface name and<br>
&gt;&gt; version.  A client can then look through the list to see what&#39;s<br>
&gt;&gt; available and adjust its behaviour accordingly.<br>
&gt;&gt;<br>
&gt;&gt; Kristian<br>
&gt;&gt;<br>
&gt;<br>
&gt; Does the XML file have a particular schema?<br>
&gt;<br>
&gt; It might be useful to install it in /usr/share so it could be used by<br>
&gt; tools. I&#39;m thinking mostly of a d-feet style introspection tool for the<br>
&gt; Wayland protocol (we could even go as far as dynamically adaptable<br>
&gt; bindings for languages like Ruby or Python).<br>
<br>
</div>I didn&#39;t actually write a schema for it, but if somebody with the<br>
right XML-fu could do that that would be nice.  It&#39;s a good point that<br>
dynamic languages probably just want to parse the XML directly and<br>
generate the bindings on the fly and for that we would need to install<br>
the XML.  As for introspection/logging/xscope, that&#39;s built into the<br>
server side library: set WAYLAND_DEBUG=1 and watch the requests and<br>
events fly by.<br>
<font color="#888888"><br>
Kristian<br>
</font><div><div></div><div class="h5">_______________________________________________<br>
wayland-devel mailing list<br>
<a href="mailto:wayland-devel@lists.freedesktop.org">wayland-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/wayland-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/wayland-devel</a><br>
</div></div></blockquote></div><br></div>