Is this an MCE syntax error?

John Haug johnhaug at exchange.microsoft.com
Wed Sep 26 00:37:01 CEST 2012


One potential case that comes to mind (purely speculative on my part - I'm not speaking about any particular Microsoft product!) is that the non-MCE markup inside an ACB wrapper should simply appear in place in the post-processed markup.

I *think* this is a conceptually valid scenario...  Say I have a markup specification that has had changes from one version to another.  In v1, the foo element comes after the bar element.  In v2, the foo element comes before the bar element.

<mce:AlterateContent>
  <mce:Choice>
    <v2:foo> ... </v1:foo>
  </mce:Choice>
  <v1:bar> ... </v1:bar>
  <mce:Fallback>
    <v1:foo> ... </v1:foo>
  </mce:Fallback>
</mce:AlterateContent>

I can check with the folks who designed this to see what scenario they had in mind for the text Murata-san quoted below.

I'm not sure whether tightening MCE to now disallow non-mce elements as children of AlternateContent will break anything.  Certainly, it's theoretically possible.  As with other cases where we've wanted to tighten the spec, perhaps the right (safest) thing to do is recommend against it as "deprecated" behavior without making it syntactically invalid.

John

-----Original Message-----
From: Francis Cave [mailto:francis at franciscave.com] 
Sent: Saturday, September 22, 2012 11:17 AM
To: 'SC34'
Subject: RE: Is this an MCE syntax error?

Murata-san

Thank you for your further explanation. I now agree with you. If the MCE processor only understands the MCE namespace, and in addition to that only knows whether another namespace is understood or not (i.e. is in the configuration or not), the four cases that you mention are the only possible interpretations. The standard does not specify what an MCE processor should do with the element <foo:bar/> in your example, if it is understood, so its behaviour is unspecified.

I think we have to hope that we can prohibit <foo:bar/> in this position within an ACB. It does not make any sense for only non-understood elements to be allowed in this position. That would not serve any useful purpose.

Francis



	
> -----Original Message-----
> From: eb2mmrt at gmail.com [mailto:eb2mmrt at gmail.com] On Behalf Of MURATA 
> Makoto
> Sent: 22 September 2012 09:28
> To: SC34
> Subject: Re: Is this an MCE syntax error?
> 
> 2012/9/21 Francis Cave <francis at franciscave.com>:
> > Presumably, if the MCE processor understands namespace 'foo', it 
> > will
> know
> 
> Actually, the MCE processor understands the MCE namespace only.
> But it will behave as instructed by a given configuration, which is a 
> set of namespaces understood by the application program.
> 
> Do you mean that the foo namespace is included in the given 
> configuration?  (In other words, the application program understand
> it.)
> 
> > what to do with your example, which will presumably be to replace 
> > the
> entire
> > ACB with something else that is syntactically correct.
> 
> But such a behavior is never specified.
> 
> If the ns for foo is included in the given configuration, what should 
> happen?
> Is this an error?  My understanding of the spec is as follows:
> 
> Case 1: understood and ignorable
>             I have no ideas.
> Case 2: understood and  non-ignorable
>             I have no ideas.
> Case 3: not understood and ignorable
>              not an error
> Case 4: not understood and non-ignorable
>              error
> 
> I think that this should be an error for all these cases.
> 
> Regards,
> Makoto
> 
> 
> > But what that might
> > be is completely unknowable, because <foo:bar/> might say something
> like: if
> > you understand 'foo', change the choices and the fallback in some
> specified
> > way.
> >
> > In effect, the namespace 'foo' would contain extensions to the MCE
> namespace
> > itself.
> >
> > Francis
> >
> >
> >
> >> -----Original Message-----
> >> From: eb2mmrt at gmail.com [mailto:eb2mmrt at gmail.com] On Behalf Of
> MURATA
> >> Makoto
> >> Sent: 20 September 2012 16:29
> >> To: SC34
> >> Subject: Is this an MCE syntax error?
> >>
> >> Dear colleagues,
> >>
> >> Consider
> >>
> >> <mce:AlternateContent>
> >>   <foo:bar/>
> >>   <mce:Choice ...>..</mce:Choice   ... >
> >> </mce:AtternateContent>
> >>
> >> where mce and foo are prefixes for the MCE namespace and an
> ignorable
> >> namespace.Does this fragment have an error?
> >>
> >> Suppose that an application program understands the namespace foo.
> >> Then, this document has an MCE syntax error. Suppose that it does
> not.
> >> Then, there are no MCE errors.
> >>
> >> This is because of the following text in 10.2.1 of Part 3.
> >>
> >> AlternateContent elements might have ignored attributes or contain 
> >> ignored child elements. Markup consumers shall not generate an 
> >> error when encountering such attributes or child elements. However, 
> >> markup consumers shall generate an error when encountering an 
> >> attribute or child element of the AlternateContent element that 
> >> belongs to a namespace that is neither understood nor ignorable. 
> >> [Note:  In
> addition
> >> to Choice and Fallback elements, an ignored element can occur as a 
> >> child of AlternateContent. end note]
> >>
> >> I hate this design.  Syntactical correctness of data shouldn't
> depend
> >> on application programs.
> >>
> >>
> >> Regards,
> >> Makoto
> >
> 
> 
> 
> --
> 
> Praying for the victims of the Japan Tohoku earthquake
> 
> Makoto



More information about the sc34wg4 mailing list