Rick Jelliffe <rjelliffe@allette.com.au> wrote on 12/04/2008 10:14:59 AM:
> Costello, Roger L. wrote:
> >
> >> http://www.w3.org/TR/xmlschema-patterns/
> >>
> >> The gist is in Appendix F
> >>
> >
> > Thanks Rick!
> >
> > Let me see if I understand correctly:
> >
> > Want to create an XML Schema that is broadly adopted?
> >
> > Some of your users will use data binding tools to map the XML
> Schema constructs into data structures in an imperative programming language?
> >
> > Then don't use any of the XML Schema constructs listed below.
> >
> Yes.The abstract says "This specification provides a set of basic [XML
> Schema 1.0] <http://www.w3.org/TR/xmlschema-patterns/#XMLSchema>
> patterns known to be interoperable between state of the art databinding
> implementations."
>
> I would say "check whether your implementation supports these elements"
> or "substitute less strong requirements" (e.g. use built-in primitives
> rather than built-in derived types.) "Don't use these" is not
> necessarily the can-do response.
>
> Also, one of the points is that some elements are only used in some
> circumstances or with certain values (hence all those patterns), so it
> is not as easy as simply ruling some in and some out. (For example,
> IIRC at one stage there was talk that maxOccurs should only be 1 or
> unbounded (sorry I didn't check this) because implementations may
> implement a value maxOccurs="1000" by reserving 1000 objects or rows or
> whatever, blowing out memory I guess.)
If you're talking about schema processors, Xerces (and perhaps other implementations) have overcome this, at least for the common cases, where it uses a counter to process maxOccurs instead of creating a gigantic state machine.
> Some of them are surprising. For example, <all> is just a trivial
> transform of a sequence with optionality, that is allowed. So I am
> really surprised that it is in the poo-pile.
>
> Cheers
> Rick Jelliffe
Thanks.
Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: mrglavas@ca.ibm.com
E-mail: mrglavas@apache.org