Re: Registration of media type application/calendar+xml Fri, 10 September 2010 17:39 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 5CB143A6A6B for <>; Fri, 10 Sep 2010 10:39:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.37
X-Spam-Status: No, score=-2.37 tagged_above=-999 required=5 tests=[AWL=0.229, BAYES_00=-2.599]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id ayyq6bAQC-mY for <>; Fri, 10 Sep 2010 10:39:22 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 11D7A3A6A62 for <IETF@IETF.ORG>; Fri, 10 Sep 2010 10:39:04 -0700 (PDT)
Received: from by (PMDF V6.1-1 #35243) id <> for IETF@IETF.ORG; Fri, 10 Sep 2010 10:39:29 -0700 (PDT)
Received: from by (PMDF V6.1-1 #35243) id <> (original mail from for IETF@IETF.ORG; Fri, 10 Sep 2010 10:39:22 -0700 (PDT)
Message-id: <>
Date: Fri, 10 Sep 2010 10:12:15 -0700 (PDT)
Subject: Re: Registration of media type application/calendar+xml
In-reply-to: "Your message dated Fri, 10 Sep 2010 18:04:43 +0200" <>
MIME-version: 1.0
Content-type: TEXT/PLAIN; format=flowed
References: <> <> <> <> <> <>
To: Julian Reschke <>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;; s=mauve; t=1284139195;; bh=TZX05lMYymerjnMn2Ve5SqdyeemsZB5+lTG56G6wsYo=; h=From:Cc:Message-id:Date:Subject:In-reply-to:MIME-version: Content-type:References:To; b=UoP9GL1HjVaDsDWaydPJXcn3dQailwaDpv7YKnfyS0XrE4NKaN8/LYl3OMfQdnrVy afYsRsjFCAA2IvzlumvPyhEM5csNwqgzYP4a7xHQtNbm7kGQ+Z9olXupetqjrdE5j/ 9wVl86BQhpxPuO60ieFA1097Naz3yP6/kswahdh8=
Cc: Ned Freed <>, Douglass Mike <>, "Cyrus Daboo \(\)" <>, Keith Moore <>,, Steven Lees <>, IETF@IETF.ORG
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: IETF-Discussion <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 10 Sep 2010 17:39:30 -0000

> On 10.09.2010 16:48, Ned Freed wrote:
> > ...
> > Unfortunately, now that I've had a chance to look at
> > draft-daboo-et-al-icalendar-in-xml-06.txt a little more, I find that it doesn't
> > do this well. For example, instead of mapping a property like dtstamp to
> > something like:
> >
> >      <property name="dtstart">
> >        <date-time>20080205T191224Z</date-time>
> >      </property>
> >
> > it maps it to:
> >
> >         <dtstamp><date-time>20080205T191224Z</date-time></dtstamp>
> >
> > This means that additional properties will necessitate a schema update. Not
> > good, and I believe this needs to be fixed.
> > ...

> Not really. How is adding a new allowed value to an XML attribute any
> different from adding a new element name (assuming a schema language
> than can express both constraints?).

First of all, there are many situations where you don't get to pick your schema
lannguage. (In fact I'd say it's the rule rather than the exception.) So even
there are Schema languages that support "any element can appear here" - the
fact that XML Schema doesn't allow this (xs:any has far too many restrictions
placed on it to be usefullly usable) means you shouldn't be defining things
this way.

Second, it is of course possible to impose restrictions on the values that can
appear in an attribute value (or element content for that matter). But just
because you can doesn't mean you should. And these sorts of mappings are
exactly the place where you shouldn't be doing this, at all, ever, because when
you do you end up having to change the schema for each extension that adds
properties (in the case of iCal) or actions/tests/controls (in the case of

Furthermore, in the case of Sieve at least, there are cases where it is
entirely valid to specify tests and actions in a script that the implementation
you're currently using doesn't support. For example:

    require "ihave";
    if ihave "ereject" { ereject "I hate this message"; }
    elsif ihave "reject" { reject "I still hate this message";}
    else { discard; }


    require "ihave";
    if ihave "x-private-extension-nobody-else-has-heard-of" {
      if bletch "bar" "foo" { frob :zing "foo" 1 "bar";}

If I've mapped actions and tests to elements here I'm screwed - there's no way
to make this work properly in XML Schema without either adding a ton of
superfluous bracketing elements all over the place (and we already have too
many of these), or creating a false distinction between extensions and base
elements that is, if anything, even uglier.

It's also easy to show that full script validity checking here requires solving
the satisfiability problem, which means its in NP. I'm pretty sure that exceeds
the capabilities of most schema languages ;-)

I believe similar issues exist in iCal and probably vCard.