[dfdl-wg] alternate syntax for DFDL annotations

Martin Westhead martinwesthead at yahoo.co.uk
Wed Mar 2 11:16:23 CST 2005


Hi Mike,

This is interesting I wasn't aware you could do this. My concern would 
be if it turned out the schema tools couldn't handle it but I tried XML 
Spy which seems to just ignore the extra annotations.

So I'd be happy to use them. As you point out we will need both these 
and annotations so we are left with a choice. Either we:

   1. Specify some (most) dfdl additions in this non-native attribute 
form and use annotations when required or

   2. We specify everything as annotations but allow this form as a 
systematic short hand.

I think I prefer (2). The sort of thing I have in mind is making the 
annotation syntax look like:

<xs:element name="foo" type="xs:string">
   <annotation>
     <appinfo>
        <dfdl:attributes dfdl:repType="text"
                         dfdl:charset="UTF-8"
                         dfdl:repLength="10"/>
     </appinfo>
   <annotation
</xs:element>

And then this be directly equivalent (and trivially transformed 
into/from) what you had before:

<xs:element name="foo"
             type="xs:string"
             dfdl:repType="text"
             dfdl:charset="UTF-8"
             dfdl:repLength="10"/>

I'm not sure if it matters that much but it seems like it might be 
neater if everything could be represented in the same form.

Also there may be times when you would like to use the annotation form 
because you have a bock of stuff that could be reused multiple times. 
Once your annotations have become attributes in the main schema they are 
more intimately tied to it.

Cheers,

Martin



Mike Beckerle wrote:
> Up til now we've considered DFDL annotations only as inside the appinfo 
> context. However, we should consider whether we should use non-native 
> attributes as well or
> 
> as an alternative: E.g., simple DFDL rep properties could also be 
> expressed like this:
> 
>     <xs:element name="foo"
> 
>                 type="xs:string"
> 
>                 dfdl:repType="text" 
> 
>                 dfdl:charset="UTF-8"
> 
>                 dfdl:repLength="10"/>
> 
>  
> 
> This has the advantages of compactness, and is a fully supported way of 
> extending XML Schema. That is, using non-native attributes is a 
> supported extension idiom. This won't handle things that really need the 
> syntactic support of element structure to express their complexity, 
> e.g., things like specifying text delimiters with quoting and 
> escape-sequence specifications. For those we'll still need to open an 
> appinfo annotation up. However, for basic things like byteOrder and such 
> it is far more attractive syntactically to use non-native attributes 
> than appinfo annotations.
> 
>  
> Comments?
>  
> ...mikeb 
>  





More information about the dfdl-wg mailing list