I like your I-D about Sieve in XML and find it is a good idea.
I have two remarks (not very important).
First, why did you choose the W3C Schema language instead of RelaxNG?
I understand it may be a matter of taste, but I'm curious.
Second, to represent Sieve comments, you use XML comments. But a
conforming XML parser MAY ignore comments so there is a risk that
round-trip conversion may lose comments. Moreover, your schema (and
the associated XSL script) forbids to put comments intended for the XML
version only such as:
<!-- Produced by sieve2xml on 2007-11-02. Do not edit. -->
Such comments would be translated back to Sieve, which would be
unfortunate.
I suggest instead to create an element <sieve-comments> to store them.