Sketch of the MCE processing model (was DR 09-0315 ? MCE: Preprocessing Model)

MURATA Makoto (FAMILY Given) eb2m-mrt at asahi-net.or.jp
Tue Jul 19 03:45:53 CEST 2011


> Step 3: Checking non-understood and non-ignorable namespaces
> 
> Stop normal processing if, for some element E, the @Ignorable of E
> does not contain the namespace of E, and UN does not contain this
> namespace.  (Hmm.  Should this step follow Step 5 so that
> non-understood and non-ignorable elements in unselected options
> can be safely ignored?)

I am now wondering whether non-understood and non-ignorable namespaces
can be safely ignored when they appear in ignorable elements.  For
example, what happes when MCE receives the following input, 
where neither v2 nor v3 is understood?  Note that v3 is NOT an 
ignorable namespace.  Will we have an error?  Or, will we 
safely ignore <v2:Opacity> as well as its child <v3:Luminance/>?

<Circles xmlns="http://schemas.openxmlformats.org/Circles/v1" 
  xmlns:mc="http://schemas.openxmlformats.org/markup- 
  compatibility/2006" 
  xmlns:v2="http://schemas.openxmlformats.org/Circles/v2" 
  xmlns:v3="http://schemas.openxmlformats.org/Circles/v3" 
  mc:Ignorable="v2" >
  <v2:Opacity>
    <v3:Luminance/> 
  </v2:Opacity>
</Circles> 

> Step 4: Removing ignorable elements and attributes
> 
> An element is replaced by its contents (child elements, text chunks, comments
> or PIs) if
> 
>   - UN does not contain the namespace of this element,
> 
>   - the qualified element name of this element does not match any of the
>     qualified element names in the @ProcessContent of this element
> 
> Note: Is <foo:one @Ignorable="foo" @ProcessContent="foo:*"/> ignroed
> or retained?

This step is performed repeatedly for each element.  This repetition 
will discard entire subtrees.

Hmm, what happens when elements of  understood namespaces  appear in 
non-understood and ignorable elements?  In the previous example, 
suppose that v3 is understood.  Will we have

<Circles xmlns="http://schemas.openxmlformats.org/Circles/v1" 
  xmlns:mc="http://schemas.openxmlformats.org/markup- 
  compatibility/2006" 
  xmlns:v2="http://schemas.openxmlformats.org/Circles/v2" 
  xmlns:v3="http://schemas.openxmlformats.org/Circles/v3" 
  mc:Ignorable="v2" >
    <v3:Luminance/> 
</Circles> 

?  Or,

<Circles xmlns="http://schemas.openxmlformats.org/Circles/v1" 
  xmlns:mc="http://schemas.openxmlformats.org/markup- 
  compatibility/2006" 
  xmlns:v2="http://schemas.openxmlformats.org/Circles/v2" 
  xmlns:v3="http://schemas.openxmlformats.org/Circles/v3" 
  mc:Ignorable="v2" >
</Circles> 

?

> Step 5: Handling AlternateContent
> 
> For each AlternateContent element, choose one of the Choice or
> Fallback elements.  This is done by choosing the eldest Choice (if
> any) such that UN contains every namespace in its @Requires or the
> Fallback element.
> 
> Step 6: Checking @MustUnderstand
> 
> If some of the namespaces specified by @MustUndsrand of some element
> is not in UN, report an error and stop normal processing.
> 
> Note: This step has to follow step5 since mustUnderstand occurring in
> unselected options can be safely ignored.
> 

Cheers,
Makoto


More information about the sc34wg4 mailing list